%global numjobs %{_smp_build_ncpus} %global chromebuilddir out/Release %global _default_patch_fuzz 2 %global chromium_name trivalent %global debug_package %{nil} Source69: chromium-version.txt Name: %{chromium_name}-subresource-filter Requires: %{chromium_name} BuildArch: noarch License: Apache-2.0 Summary: Subresource filter for %{chromium_name} %{lua: local f = io.open(macros['_sourcedir']..'/chromium-version.txt', 'r') local version_tag = f:read "*all" -- This will dynamically set the version based on chromium's latest stable release channel print("Version: "..version_tag.."\n") -- This will automatically increment the release every ~1 hour print("Release: "..(os.time() // 4000).."\n") } Source0: chromium-%{version}-clean.tar.xz Source1: install_filter.sh %{lua: if posix.getenv("HOME") == "/builddir" then filters = rpm.glob('/builddir/build/SOURCES/filter-*.txt') else filters = rpm.glob(macros['_sourcedir']..'/filter-*.txt') end local count = 1 for f in ipairs(filters) do local altcount=count+1 os.execute("echo 'Adding source in "..filters[f].."'") printSource = "Source"..altcount..": filter-"..count..".txt" rpm.execute("echo", printSource) print(printSource.."\n") count = count + 1 end rpm.define("_filterCount "..count-1) } ExclusiveArch: x86_64 aarch64 # Dependencies required BuildRequires: nss-devel >= 3.26 BuildRequires: glib2-devel BuildRequires: %{__python3} BuildRequires: cups-devel BuildRequires: libxkbcommon-devel BuildRequires: libudev-devel BuildRequires: dbus-devel BuildRequires: libdrm-devel BuildRequires: atk-devel BuildRequires: libcurl-devel BuildRequires: at-spi2-atk-devel BuildRequires: pango-devel BuildRequires: mesa-libgbm-devel BuildRequires: gtk3-devel BuildRequires: mesa-libGL-devel BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(Qt6Core) BuildRequires: pkgconfig(Qt6Widgets) BuildRequires: libva-devel BuildRequires: libatomic BuildRequires: pipewire-devel # One of the python scripts invokes git to look for a hash. So helpful. BuildRequires: git-core Patch0: use-cwd-for-gclient-path.patch Patch1: 151-fix-dep-definition.patch %description Filter used by %{chromium_name} to provide content blocking. %prep %setup -q -n chromium-%{version} %patch -P0 -p1 -b .use-cwd-for-gclient-path %patch -P1 -p1 -b .151-fix-dep-definition %build FLAGS=' -Wno-deprecated-declarations -Wno-unknown-warning-option -Wno-unused-command-line-argument' FLAGS+=' -Wno-unused-but-set-variable -Wno-unused-result -Wno-unused-function -Wno-unused-variable' FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration -Wno-unknown-attributes -Wno-unknown-pragmas' CFLAGS="$FLAGS" CXXFLAGS="$FLAGS" LDFLAGS="-Wl,-z,now -Wl,-z,pack-relative-relocs" RUSTFLAGS=${RUSTFLAGS/--cap-lints/-Clink-arg=-Wl,-z,pack-relative-relocs --cap-lints} RUSTFLAGS=${RUSTFLAGS/debuginfo=?/debuginfo=0} export CC=clang export CXX=clang++ export AR=llvm-ar export NM=llvm-nm export READELF=llvm-readelf export CFLAGS export CXXFLAGS export LDFLAGS export RUSTFLAGS export RUSTC_BOOTSTRAP=1 mkdir -p %{chromebuilddir} declare -r present_source_dir="$PWD" # add internal gn to PATH for build PATH="$PATH:$present_source_dir/buildtools/linux64" export PATH # Disable libcxx modules sed -i -e "s/use_libcxx_modules = is_clang/use_libcxx_modules = false/g" $present_source_dir/build/config/BUILDCONFIG.gn CHROMIUM_GN_DEFINES="" CHROMIUM_GN_DEFINES+=' system_libdir="%{_lib}"' CHROMIUM_GN_DEFINES+=' is_clang=true' CHROMIUM_GN_DEFINES+=' use_sysroot=false' CHROMIUM_GN_DEFINES+=' treat_warnings_as_errors=false' export CHROMIUM_GN_DEFINES mkdir -p %{chromebuilddir} # Build the converter tool gn --script-executable=%{__python3} gen --args="$CHROMIUM_GN_DEFINES" %{chromebuilddir} %{__python3} $present_source_dir/third_party/depot_tools/autoninja.py -C %{chromebuilddir} subresource_filter_tools # copy the filters over and generate the string of said filters for filter in %{_sourcedir}/filter-*.txt; do cp $filter . done filters="" for filter in filter-*.txt; do filters="$filters$filter," done # Run the tool to generate the blocklist ./%{chromebuilddir}/ruleset_converter --input_format=filter-list --output_format=unindexed-ruleset --input_files=${filters::-1} --output_file=%{chromium_name}-blocklist > /dev/null cp %{chromium_name}-blocklist ../ # Cleanup rm -r %{chromebuilddir} %install INSTALL_DIR="%{buildroot}%{_sysconfdir}/%{chromium_name}/filter" SCRIPT_DIR="%{buildroot}%{_libdir}/%{chromium_name}/" mkdir -p "$INSTALL_DIR" mkdir -p "$SCRIPT_DIR" install -m 0644 %{chromium_name}-blocklist "$INSTALL_DIR/%{chromium_name}-blocklist" install -m 0755 %{SOURCE1} "$SCRIPT_DIR/install_filter.sh" echo "%{release}" > $INSTALL_DIR/%{chromium_name}-blocklist-version.txt chmod a+r $INSTALL_DIR/%{chromium_name}-blocklist-version.txt %files %{_sysconfdir}/%{chromium_name}/filter/%{chromium_name}-blocklist %{_sysconfdir}/%{chromium_name}/filter/%{chromium_name}-blocklist-version.txt %{_libdir}/%{chromium_name}/install_filter.sh %changelog # Changelog entries automatically generated from Copr builds * Thu Aug 13 2026 secureblue - 151.0.7922.137-446648 * Mon Aug 10 2026 secureblue - 151.0.7922.108-446583 * Fri Aug 07 2026 secureblue - 151.0.7922.108-446519 * Thu Aug 06 2026 secureblue - 151.0.7922.75-446511 * Tue Jul 28 2026 secureblue - 150.0.7871.186-446303 * Sat Jul 25 2026 secureblue - 150.0.7871.186-446239 * Wed Jul 22 2026 secureblue - 150.0.7871.181-446174 * Sun Jul 19 2026 secureblue - 150.0.7871.128-446109 * Thu Jul 16 2026 secureblue - 150.0.7871.124-446045 * Wed Jul 15 2026 secureblue - 150.0.7871.124-446019 * Mon Jul 13 2026 secureblue - 150.0.7871.114-445980 * Fri Jul 10 2026 secureblue - 150.0.7871.114-445915 * Fri Jul 10 2026 secureblue - 150.0.7871.114-445910 * Tue Jul 07 2026 secureblue - 150.0.7871.100-445863 * Tue Jul 07 2026 secureblue - 150.0.7871.46-445851 * Mon Jul 06 2026 secureblue - 150.0.7871.46-445841 * Sun Jun 28 2026 secureblue - 149.0.7827.200-445654 * Mon Jun 22 2026 secureblue - 149.0.7827.155-445524 * Fri Jun 19 2026 secureblue - 149.0.7827.155-445459 * Thu Jun 18 2026 secureblue - 149.0.7827.155-445451 * Tue Jun 16 2026 secureblue - 149.0.7827.114-445411 * Sat Jun 13 2026 secureblue - 149.0.7827.114-445330 * Wed Jun 10 2026 secureblue - 149.0.7827.102-445265 * Sun Jun 07 2026 secureblue - 149.0.7827.53-445200 * Thu Jun 04 2026 secureblue - 149.0.7827.53-445135 * Wed Jun 03 2026 secureblue - 149.0.7827.53-445114 * Tue May 19 2026 secureblue - 148.0.7778.178-444807 * Tue May 19 2026 secureblue - 148.0.7778.167-444790 * Sat May 16 2026 secureblue - 148.0.7778.167-444725 * Wed May 13 2026 secureblue - 148.0.7778.167-444660 * Tue May 12 2026 secureblue - 148.0.7778.167-444654 * Sun May 10 2026 secureblue - 148.0.7778.96-444595 * Thu May 07 2026 secureblue - 148.0.7778.96-444530 * Wed May 06 2026 secureblue - 148.0.7778.96-444507 * Mon May 04 2026 secureblue - 147.0.7727.137-444466 * Fri May 01 2026 secureblue - 147.0.7727.137-444401 * Tue Apr 28 2026 secureblue - 147.0.7727.137-444353 * Tue Apr 28 2026 secureblue - 147.0.7727.116-444336 * Sat Apr 25 2026 secureblue - 147.0.7727.116-444271 * Wed Apr 22 2026 secureblue - 146.0.7680.75-444222 * Wed Apr 22 2026 secureblue - 147.0.7727.101-444206 * Sun Apr 19 2026 secureblue - 147.0.7727.101-444142 * Thu Apr 16 2026 secureblue - 147.0.7727.101-444077 * Mon Apr 13 2026 secureblue - 147.0.7727.55-444012 * Fri Apr 10 2026 secureblue - 147.0.7727.55-443947 * Tue Apr 07 2026 secureblue - 147.0.7727.55-443900 * Tue Apr 07 2026 secureblue - 146.0.7680.177-443882 * Sat Apr 04 2026 secureblue - 146.0.7680.177-443817 * Wed Apr 01 2026 secureblue - 146.0.7680.177-443753 * Tue Mar 31 2026 secureblue - 146.0.7680.177-443747