Blob Blame History Raw
# common macros, yet to be defined. see:
# https://fedoraproject.org/wiki/User:Kalev/MozillaExtensionsDraft
%global ext_id uBlock0@raymondhill.net

%global firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
%global firefox_inst_dir %{_datadir}/mozilla/extensions/%{firefox_app_id}

Name:           mozilla-ublock-origin
Version:        1.57.0
Release:        1%{?dist}
Summary:        An efficient blocker for Firefox

License:        GPLv3 and MIT and OFL and Unlicense
URL:            https://github.com/gorhill/uBlock
Source0:        https://github.com/gorhill/uBlock/archive/%{version}/uBlock-%{version}.tar.gz
Source1:        mozilla-ublock-origin.metainfo.xml
Source2:        uAssets-%{version}.tar.gz
# uAssets tarball contains non-free filter lists
# thirdparties/mirror1.malwaredomains.com - http://www.malwaredomains.com/?page_id=1508
# thirdparties/pgl.yoyo.org - https://pgl.yoyo.org/license/
# generate a free one with the mktarball.sh script below
Source10:       uAssets-mktarball.sh
Patch0:         %{name}-nonfree.patch

Requires:       mozilla-filesystem
BuildArch:      noarch
# wabt doesn't work correctly on big-endian
ExcludeArch:    ppc64 s390x
BuildRequires:  binaryen
BuildRequires:  libappstream-glib
BuildRequires:  nodejs
BuildRequires:  python3
BuildRequires:  wabt
# lib/csstree https://github.com/csstree/csstree MIT
Provides:       bundled(npm-css-tree) = 2.2.1
# img/fontawesome/fontawesome-defs.svg http://fontawesome.io/ OFL
Provides:       bundled(fontawesome-fonts) = 4.7.0
# css/fonts/Inter/Inter-*.woff2 https://github.com/rsms/inter OFL
Provides:       bundled(inter-fonts)
# css/fonts/Metropolis/Metropolis-*.woff2 https://github.com/chrismsimpson/Metropolis Unlicense
Provides:       bundled(metropolis-fonts)
# lib/js-beautify https://github.com/beautify-web/js-beautify MIT
Provides:       bundled(js-beautify) = 1.14.7
# lib/punycode.js https://mths.be/punycode MIT
Provides:       bundled(js-punycode) = 1.3.2
# lib/diff https://github.com/Swatinem/diff LGPLv3
Provides:       bundled(js-github-swatinem-diff)
# lib/codemirror http://codemirror.net MIT
Provides:       bundled(js-codemirror) = 5.59.2
# lib/lz4 https://github.com/gorhill/lz4-wasm BSD
Provides:       bundled(lz4-wasm)
# lib/regexanalyzer https://github.com/foo123/RegexAnalyzer Copyleft
Provides:       bundled(js-regexanalyzer) = 1.2.0
# lib/hsluv https://github.com/hsluv/hsluv/ MIT
Provides:       bundled(js-hsluv) = 0.1.0
# usually much newer than Fedora's publicsuffix-list package
# easy to unbundle, but might affect security
# assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat
Provides:       bundled(publicsuffix-list) = 20220330

%description
An efficient blocker: easy on memory and CPU footprint, and yet can load and
enforce thousands more filters than other popular blockers out there.

Flexible, it's more than an "ad blocker": it can also read and create filters
from hosts files.

%prep
# https://github.com/gorhill/uBlock/tree/master/dist#build-instructions-for-developers
%setup -q -n uBlock-%{version}
mkdir -p dist/build/uAssets
tar -xz -C dist/build/uAssets -f %{SOURCE2}
pushd dist/build/uAssets/main
tools/make-ublock.sh
popd
%patch 0 -p1
rm src/{js/wasm,lib/{lz4,publicsuffixlist/wasm}}/*.wasm
mv src/css/fonts/Inter/LICENSE.txt LICENSE.Inter.txt
mv src/img/fontawesome/LICENSE.txt LICENSE.fontawesome.txt
mv src/lib/js-beautify/LICENSE LICENSE.js-beautify.txt
mv src/lib/codemirror/LICENSE LICENSE.codemirror.txt

%build
for d in src/{js/wasm,lib/{lz4,publicsuffixlist/wasm}} ; do
    pushd $d
        for f in *.wat ; do
            wat2wasm $f
        done
    popd
done
pushd src/lib/lz4
wasm-opt ./lz4-block-codec.wasm -O4 -o ./lz4-block-codec.wasm
popd
./tools/make-firefox.sh all

%install
install -Dpm644 dist/build/uBlock0.firefox.xpi %{buildroot}%{firefox_inst_dir}/%{ext_id}.xpi

install -Dpm644 %{SOURCE1} %{buildroot}%{_metainfodir}/%{name}.metainfo.xml
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{name}.metainfo.xml

%files
%license LICENSE.txt
%license LICENSE.codemirror.txt
%license LICENSE.fontawesome.txt
%license LICENSE.js-beautify.txt
%license LICENSE.Inter.txt
%license src/css/fonts/Metropolis/UNLICENSE
%{firefox_inst_dir}/%{ext_id}.xpi
%{_metainfodir}/%{name}.metainfo.xml

%changelog
* Fri Apr 05 2024 Dominik Mierzejewski <dominik@greysector.net> - 1.57.0-1
- update to 1.57.0 (#2272273)

* Wed Mar 06 2024 Dominik Mierzejewski <dominik@greysector.net> - 1.56.0-1
- update to 1.56.0 (#2256730)

* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.54.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.54.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Tue Nov 28 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.54.0-1
- update to 1.54.0 (#2251068)

* Tue Nov 21 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.53.0-1
- update to 1.53.0 (#2247578)

* Fri Sep 29 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.52.2-1
- update to 1.52.2 (#2238126)

* Thu Aug 31 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.51.0-1
- update to 1.51.0 (#2224682)
- new bundled dependency: js-beautify

* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.50.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Mon Jun 12 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.50.0-1
- update to 1.50.0 (#2213457)
- match upstream build process for uAssets to avoid missing timestamps
- fix deprecated patchN macro usage

* Sat May 06 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.49.2-1
- update to 1.49.2 (#2180855)

* Mon Mar 13 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.47.4-1
- update to 1.47.4 (#2172525)

* Fri Feb 17 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.47.0-1
- update to 1.47.0 (#2170209)

* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.46.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Tue Dec 27 2022 Dominik Mierzejewski <dominik@greysector.net> - 1.46.0-1
- update to 1.46.0 (#2156059)

* Mon Dec 05 2022 Dominik Mierzejewski <dominik@greysector.net> - 1.45.2-1
- update to 1.45.2 (#2141681)

* Tue Oct 04 2022 Dominik Mierzejewski <dominik@greysector.net> - 1.44.4-1
- update to 1.44.4 (#2118741)
- drop obsolete patch

* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.43.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Mon Jun 13 2022 Dominik Mierzejewski <dominik@greysector.net> - 1.43.0-1
- update to 1.43.0 (#2095350)

* Sun May 22 2022 Dominik Mierzejewski <dominik@greysector.net> - 1.42.4-1
- update to 1.42.4 (#2070185)
- new bundled library: hsluv
- fix build with wabt 1.0.25+

* Fri Mar 11 2022 Dominik Mierzejewski <dominik@greysector.net> - 1.41.8-1
- update to 1.41.8 (#2055291)

* Tue Feb 15 2022 Dominik Mierzejewski <rpm@greysector.net> - 1.41.2-1
- update to 1.41.2 (#2052004)

* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.40.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Fri Jan 14 2022 Dominik Mierzejewski <rpm@greysector.net> - 1.40.8-1
- update to 1.40.8 (#2034966)

* Sat Dec 04 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.39.2-1
- update to 1.39.2 (#2025622)

* Fri Oct 15 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.38.6-1
- update to 1.38.6 (#2009380)

* Tue Sep 21 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.38.0-1
- update to 1.38.0 (#2005514)
- drop obsolete patch

* Wed Jul 28 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.37.2-1
- update to 1.37.2 (#1986999)

* Sat Jul 24 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.37.0-1
- update to 1.37.0 (#1985343)

* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.36.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Sat Jul 17 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.36.2-1
- update to 1.36.2 (#1979628)

* Mon Jul 05 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.36.0-1
- update to 1.36.0 (#1974010)
- update declared version of bundled publicsuffix-list

* Tue Jun 08 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.35.2-1
- update to 1.35.2 (#1954349)

* Fri Apr 23 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.35.0-1
- update to 1.35.0 (#1946869)

* Thu Apr 01 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.34.0-1
- update to 1.34.0 (#1925264)

* Tue Feb 02 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.33.2-1
- update to 1.33.2 (#1922482)

* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.32.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Wed Jan 20 2021 Dominik Mierzejewski <rpm@greysector.net> - 1.32.4-1
- update to 1.32.4 (#1918447)

* Thu Aug 20 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.29.0-1
- update to 1.29.0 (#1867396)
- optimize lz4 wasm code per upstream docs

* Thu Aug 06 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.28.4-2
- fix invalid JSON after Patch0 (caught by Raymond Hill)

* Wed Aug 05 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.28.4-1
- update to 1.28.4 (#1857445)
- avoid building on big-endian, wabt doesn't work there

* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.28.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Mon Jul 13 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.28.2-3
- add missing explicit BR on python3

* Mon Jul 13 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.28.2-2
- use python3 in build script explicitly

* Sun Jul 12 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.28.2-1
- update to 1.28.2 (#1835275)
- "build" from upstream "source" directly
- drop non-free components from upstream uAssets tarball

* Sun May 03 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.26.2-1
- update to 1.26.2 (#1825039)

* Sun Apr 12 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.26.0-1
- update to 1.26.0 (#1820622)

* Sat Mar 14 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.25.2-1
- update to 1.25.2 (#1797341)

* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.24.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Sun Dec 01 2019 Dominik Mierzejewski <rpm@greysector.net> - 1.24.2-1
- update to 1.24.2 (#1763778)

* Sat Sep 28 2019 Dominik Mierzejewski <rpm@greysector.net> - 1.22.4-1
- update to 1.22.4 (#1756060)

* Wed Sep 11 2019 Dominik Mierzejewski <rpm@greysector.net> - 1.22.2-2
- fix wrong fileid (was pointing to 1.20.0 instead of 1.22.2)

* Mon Sep 09 2019 Dominik Mierzejewski <rpm@greysector.net> - 1.22.2-1
- update to 1.22.2 (#1713383)

* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.19.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Mon May 13 2019 Dominik Mierzejewski <rpm@greysector.net> - 1.19.2-1
- update to 1.19.2 (#1689200)

* Thu Mar 14 2019 Dominik Mierzejewski <rpm@greysector.net> - 1.18.6-1
- update to 1.18.6 (#1680421)
- drop conditionals that are true in F26+

* Wed Feb 20 2019 Dominik Mierzejewski <rpm@greysector.net> - 1.18.4-1
- update to 1.18.4 (#1669295)
- update bundled fontawesome version

* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Sat Oct 27 2018 Dominik Mierzejewski <rpm@greysector.net> - 1.17.2-1
- update to 1.17.2

* Mon Jul 30 2018 Dominik Mierzejewski <rpm@greysector.net> - 1.16.14-1
- update to 1.16.14 (#1598265)

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Fri Jun 29 2018 Dominik Mierzejewski <rpm@greysector.net> - 1.16.12-1
- update to 1.16.12 (#1567576)

* Wed May 23 2018 Dominik Mierzejewski <rpm@greysector.net> - 1.16.6-1
- update to 1.16.6 (#1567576)
- update bundled codemirror version

* Fri Apr 13 2018 Dominik Mierzejewski <rpm@greysector.net> - 1.15.24-1
- update to 1.15.24
- use correct path for metainfo file
- update bundled components list and license tag
- include license texts in the standard location, too

* Tue Feb 20 2018 Dominik Mierzejewski <rpm@greysector.net> - 1.15.10-1
- update to 1.15.10

* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.24-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Thu Feb 01 2018 Dominik Mierzejewski <rpm@greysector.net> - 1.14.24-1
- update to 1.14.24

* Fri Dec 29 2017 Dominik 'Rathann' Mierzejewski <rpm@greysector.net> - 1.14.22-1
- update to 1.14.22
- install the appdata metainfo file into correct place

* Wed Nov 29 2017 Dominik 'Rathann' Mierzejewski <rpm@greysector.net> - 1.14.18-1
- Initial package