public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: - refresh patches for aarch64
@ 2026-08-07 16:06 Than Ngo
  0 siblings, 0 replies; only message in thread
From: Than Ngo @ 2026-08-07 16:06 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/chromium
            Branch : epel9-next
            Commit : 172edf5cd41edc4fb8db24bef3adcb164cff9091
            Author : Than Ngo <than@redhat.com>
            Date   : 2024-07-26T17:13:08+02:00
            Stats  : +191/-104 in 9 file(s)
            URL    : https://src.fedoraproject.org/rpms/chromium/c/172edf5cd41edc4fb8db24bef3adcb164cff9091?branch=epel9-next

            Log:
            - refresh patches for aarch64
- add workaround for build error on aarch64 (highway)
- update chromium-latest.py (removing unused sttuffs)
- add bindgen for el8 build
- add upstream patch to fix build dep in crabbyavif

---
diff --git a/.gitignore b/.gitignore
index f1ff222..6a2d41a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,3 +35,4 @@
 /node-v20.6.1-linux-x64.tar.xz
 /linux-arm64-0.19.2.tgz
 /linux-x64-0.19.2.tgz
+/v0.69.4.tar.gz

diff --git a/chromium-124-rust-clang_lib.patch b/chromium-124-rust-clang_lib.patch
deleted file mode 100644
index cc152ec..0000000
--- a/chromium-124-rust-clang_lib.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff -up chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib chromium-121.0.6167.57/build/config/clang/BUILD.gn
---- chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib	2024-01-10 16:43:01.000000000 +0100
-+++ chromium-121.0.6167.57/build/config/clang/BUILD.gn	2024-01-20 19:51:38.481992799 +0100
-@@ -112,6 +112,7 @@ template("clang_lib") {
-       _prefix = "lib"
-       _suffix = ""
-       _ext = "a"
-+      _libprefix = ""
-       if (is_win) {
-         _dir = "windows"
-         _prefix = ""
-@@ -127,7 +128,33 @@ template("clang_lib") {
-         }
-       } else if (is_apple) {
-         _dir = "darwin"
--      } else if (is_linux || is_chromeos) {
-+      } else if (is_linux) {
-+        if (current_cpu == "x64") {
-+          _dir = "x86_64-redhat-linux-gnu"
-+          _suffix ="-x86_64"
-+        } else if (current_cpu == "x86") {
-+          _dir = "i386-redhat-linux-gnu"
-+          _suffix = "-i386"
-+        } else if (current_cpu == "arm64") {
-+          _dir = "aarch64-redhat-linux-gnu"
-+          _suffix = "-aarch64"
-+        } else if (current_cpu == "arm") {
-+          _dir = "armhf-redhat-linux-gnu"
-+          _suffix = "-armhf"
-+        } else if (current_cpu == "ppc64") {
-+          _dir = "ppc64le-redhat-linux-gnu"
-+          _suffix = "-ppc64le"
-+        } else {
-+          assert(false)  # Unhandled cpu type
-+        }
-+        # different clang lib dir in fedora/epel
-+        if (clang_version == "17" || clang_version == "18") {
-+          _suffix = ""
-+        } else if (clang_version == "14" || clang_version == "15" || clang_version == "16") {
-+          _libprefix = "64"
-+          _dir = ""
-+        }
-+      } else if (is_chromeos) {
-         if (current_cpu == "x64") {
-           _dir = "x86_64-unknown-linux-gnu"
-         } else if (current_cpu == "x86") {
-@@ -166,7 +193,7 @@ template("clang_lib") {
-         assert(false)  # Unhandled target platform
-       }
- 
--      _clang_lib_dir = "$clang_base_path/lib/clang/$clang_version/lib"
-+      _clang_lib_dir = "$clang_base_path/lib${_libprefix}/clang/$clang_version/lib"
-       _lib_file = "${_prefix}clang_rt.${_libname}${_suffix}.${_ext}"
-       libs = [ "$_clang_lib_dir/$_dir/$_lib_file" ]
-     }

diff --git a/chromium-126-el8-ifunc-header.patch b/chromium-126-el8-ifunc-header.patch
deleted file mode 100644
index 72368df..0000000
--- a/chromium-126-el8-ifunc-header.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h
---- chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me	2024-06-12 13:09:47.539620293 -0400
-+++ chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h	2024-06-12 13:12:10.570739701 -0400
-@@ -10,9 +10,11 @@
- #include "partition_alloc/build_config.h"
- #include "partition_alloc/partition_alloc_buildflags.h"
- 
-+#if 0
- #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
- #define HAS_HW_CAPS
- #endif
-+#endif
- 
- #if defined(ARCH_CPU_ARM64) && defined(HAS_HW_CAPS)
- #include <asm/hwcap.h>

diff --git a/chromium-127-crabbyavif.patch b/chromium-127-crabbyavif.patch
new file mode 100644
index 0000000..a72200e
--- /dev/null
+++ b/chromium-127-crabbyavif.patch
@@ -0,0 +1,38 @@
+commit 89dcd2d419755421290f85e32617acabdd81cac1
+Author: lauren n. liberda <lauren@selfisekai.rocks>
+Date:   Thu Jun 20 18:55:57 2024 +0000
+
+    unbundle: add missing dav1d targets
+    
+    fixes "ERROR Unresolved dependencies.
+    //third_party/crabbyavif:crabbyavif_dav1d_bindings(//build/toolchain/linux/unbundle:default)
+      needs //third_party/dav1d:dav1d_config(//build/toolchain/linux/unbundle:default)
+    //third_party/crabbyavif:crabbyavif_dav1d_bindings(//build/toolchain/linux/unbundle:default)
+      needs //third_party/dav1d:dav1d_headers(//build/toolchain/linux/unbundle:default)"
+    
+    Change-Id: I85442e5fb67a804985354570fba453cc619c83d7
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5642761
+    Reviewed-by: Lei Zhang <thestig@chromium.org>
+    Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+    Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1317534}
+
+diff --git a/build/linux/unbundle/dav1d.gn b/build/linux/unbundle/dav1d.gn
+index 3d65158bc6144..a6d005a6622e3 100644
+--- a/build/linux/unbundle/dav1d.gn
++++ b/build/linux/unbundle/dav1d.gn
+@@ -21,3 +21,14 @@ source_set("dav1d") {
+   deps = [ ":dav1d_shim" ]
+   public_configs = [ ":system_dav1d" ]
+ }
++
++group("dav1d_headers") {
++  public_deps = [ ":dav1d_shim" ]
++}
++
++config("dav1d_config") {
++  configs = [
++    ":system_dav1d",
++    ":dav1d_shim_config",
++  ]
++}

diff --git a/chromium-127-el8-ifunc-header.patch b/chromium-127-el8-ifunc-header.patch
new file mode 100644
index 0000000..985b118
--- /dev/null
+++ b/chromium-127-el8-ifunc-header.patch
@@ -0,0 +1,15 @@
+diff -up chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h
+--- chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me	2024-07-25 23:58:19.751616508 +0200
++++ chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h	2024-07-26 00:01:46.391800969 +0200
+@@ -10,9 +10,11 @@
+ #include "partition_alloc/build_config.h"
+ #include "partition_alloc/partition_alloc_buildflags.h"
+ 
++#if 0
+ #if PA_BUILDFLAG(IS_ANDROID) || PA_BUILDFLAG(IS_LINUX)
+ #define HAS_HW_CAPS
+ #endif
++#endif
+ 
+ #if PA_BUILDFLAG(PA_ARCH_CPU_ARM64) && defined(HAS_HW_CAPS)
+ #include <asm/hwcap.h>

diff --git a/chromium-127-rust-clanglib.patch b/chromium-127-rust-clanglib.patch
new file mode 100644
index 0000000..55b3ce7
--- /dev/null
+++ b/chromium-127-rust-clanglib.patch
@@ -0,0 +1,67 @@
+diff -up chromium-127.0.6533.72/build/rust/rust_bindgen.gni.me chromium-127.0.6533.72/build/rust/rust_bindgen.gni
+--- chromium-127.0.6533.72/build/rust/rust_bindgen.gni.me	2024-07-25 16:11:18.754551595 +0200
++++ chromium-127.0.6533.72/build/rust/rust_bindgen.gni	2024-07-25 16:11:33.997837660 +0200
+@@ -22,7 +22,7 @@ _libclang_path = rust_bindgen_root
+ if (host_os == "win") {
+   _libclang_path += "/bin"
+ } else {
+-  _libclang_path += "/lib"
++  _libclang_path += "/lib64"
+ }
+ 
+ # Template to build Rust/C bindings with bindgen.
+diff -up chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib chromium-121.0.6167.57/build/config/clang/BUILD.gn
+--- chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib	2024-01-10 16:43:01.000000000 +0100
++++ chromium-121.0.6167.57/build/config/clang/BUILD.gn	2024-01-20 19:51:38.481992799 +0100
+@@ -112,6 +112,7 @@ template("clang_lib") {
+       _prefix = "lib"
+       _suffix = ""
+       _ext = "a"
++      _libprefix = ""
+       if (is_win) {
+         _dir = "windows"
+         _prefix = ""
+@@ -127,7 +128,33 @@ template("clang_lib") {
+         }
+       } else if (is_apple) {
+         _dir = "darwin"
+-      } else if (is_linux || is_chromeos) {
++      } else if (is_linux) {
++        if (current_cpu == "x64") {
++          _dir = "x86_64-redhat-linux-gnu"
++          _suffix ="-x86_64"
++        } else if (current_cpu == "x86") {
++          _dir = "i386-redhat-linux-gnu"
++          _suffix = "-i386"
++        } else if (current_cpu == "arm64") {
++          _dir = "aarch64-redhat-linux-gnu"
++          _suffix = "-aarch64"
++        } else if (current_cpu == "arm") {
++          _dir = "armhf-redhat-linux-gnu"
++          _suffix = "-armhf"
++        } else if (current_cpu == "ppc64") {
++          _dir = "ppc64le-redhat-linux-gnu"
++          _suffix = "-ppc64le"
++        } else {
++          assert(false)  # Unhandled cpu type
++        }
++        # different clang lib dir in fedora/epel
++        if (clang_version == "17" || clang_version == "18") {
++          _suffix = ""
++        } else if (clang_version == "14" || clang_version == "15" || clang_version == "16") {
++          _libprefix = "64"
++          _dir = ""
++        }
++      } else if (is_chromeos) {
+         if (current_cpu == "x64") {
+           _dir = "x86_64-unknown-linux-gnu"
+         } else if (current_cpu == "x86") {
+@@ -166,7 +193,7 @@ template("clang_lib") {
+         assert(false)  # Unhandled target platform
+       }
+ 
+-      _clang_lib_dir = "$clang_base_path/lib/clang/$clang_version/lib"
++      _clang_lib_dir = "$clang_base_path/lib${_libprefix}/clang/$clang_version/lib"
+       _lib_file = "${_prefix}clang_rt.${_libname}${_suffix}.${_ext}"
+       libs = [ "$_clang_lib_dir/$_dir/$_lib_file" ]
+     }

diff --git a/chromium-latest.py b/chromium-latest.py
index eb2d3f0..e06be49 100755
--- a/chromium-latest.py
+++ b/chromium-latest.py
@@ -315,7 +315,11 @@ if __name__ == '__main__':
     nacl_versions(chromium_version)
 
   if (args.cleansources):
-    junk_dirs = ['build/linux/debian_bullseye_amd64-sysroot', 'build/linux/debian_bullseye_i386-sysroot']
+    junk_dirs = ['build/linux/debian_bullseye_amd64-sysroot',
+                 'build/linux/debian_bullseye_i386-sysroot',
+                 'third_party/node/linux/node-linux-x64',
+                 'third_party/rust-toolchain',
+                 'third_party/rust-src']
 
     # First, the dirs:
     for directory in junk_dirs:

diff --git a/chromium.spec b/chromium.spec
index 47fe68e..9c07391 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -197,8 +197,22 @@
 %global bundlelibaom 1
 %global bundlelibavif 1
 %global bundlesnappy 1
+%global bundlezstd 1
 %global bundleicu 1
 %global bundledav1d 1
+%global bundlebrotli 1
+%global bundlelibwebp 1
+%global bundlecrc32c 1
+%global bundleharfbuzz 1
+%global bundlelibpng 1
+%global bundlelibjpeg 1
+%global bundlefreetype 1
+%global bundlelibdrm 1
+%global bundlefontconfig 1
+%global bundleffmpegfree 1
+%global bundlelibopenjpeg2 1
+%global bundlelibtiff 1
+%global bundlelibxml 1
 %global bundlepylibs 0
 %global bundlelibxslt 0
 %global bundleflac 0
@@ -211,7 +225,11 @@
 %global bundleopus 0
 %global bundlelcms2 0
 
-# RHEL 7.9 dropped minizip.
+# workaround for build error on aarch64
+%ifarch aarch64
+%global bundlehighway 1
+%endif
+
 # enable bundleminizip for Fedora > 39 due to switch to minizip-ng
 # which breaks the build
 %global bundleminizip 0
@@ -219,44 +237,21 @@
 %global bundleminizip 1
 %endif
 
-%if 0%{?rhel} == 8
-%global bundleharfbuzz 1
-%global bundlelibwebp 1
-%global bundlelibpng 1
-%global bundlelibjpeg 1
-%global bundlefreetype 1
-%global bundlelibdrm 1
-%global bundlefontconfig 1
-%global bundleffmpegfree 1
-%global bundlebrotli 1
-%global bundlelibopenjpeg2 1
-%global bundlelibtiff 1
-%global bundlecrc32c 1
-%global bundlelibxml 1
-%global bundledav1d 1
-%else
-%if 0%{?fedora} > 38 || 0%{?rhel} > 9
+%if 0%{?fedora} >= 39 || 0%{?rhel} > 9
 %global bundlebrotli 0
 %global bundlelibwebp 0
-%else
-%global bundlebrotli 1
-%global bundlelibwebp 1
-%endif
+%global bundlezstd 0
+%global bundlecrc32c 0
+%global bundleharfbuzz 0
+%global bundlefontconfig 0
+%global bundledav1d 0
 %global bundlelibpng 0
 %global bundlelibjpeg 0
 %global bundlelibdrm 0
-%global bundlefontconfig 0
 %global bundleffmpegfree 0
 %global bundlefreetype 0
 %global bundlelibopenjpeg2 0
 %global bundlelibtiff 0
-%if 0%{?rhel} == 9
-%global bundlecrc32c 1
-%global bundleharfbuzz 1
-%else
-%global bundlecrc32c 0
-%global bundleharfbuzz 0
-%endif
 %global bundlelibxml 0
 %endif
 
@@ -371,7 +366,7 @@ Patch150: chromium-124-qt6.patch
 # disable memory tagging (epel8 on aarch64) due to new feature IFUNC-Resolver
 # it is not supported in old glibc < 2.30, error: fatal error: 'sys/ifunc.h' file not found
 Patch305: chromium-124-el8-arm64-memory_tagging.patch
-Patch306: chromium-126-el8-ifunc-header.patch
+Patch306: chromium-127-el8-ifunc-header.patch
 # build error: unknown architectural extension on aarch64 (epel8)
 Patch307: chromium-124-el8-libdav1d-aarch64.patch
 # 64kpage support on aarch64 (el8)
@@ -395,7 +390,7 @@ Patch354: chromium-126-split-threshold-for-reg-with-hint.patch
 Patch355: chromium-126-system-libstdc++.patch
 
 # set clang_lib path
-Patch358: chromium-124-rust-clang_lib.patch
+Patch358: chromium-127-rust-clanglib.patch
 
 # PowerPC64 LE support
 # Timothy Pearson's patchset
@@ -475,6 +470,7 @@ Patch501: chromium-127-ninja-1.21.1-deps-part0.patch
 Patch502: chromium-127-ninja-1.21.1-deps-part1.patch
 Patch503: chromium-127-ninja-1.21.1-deps-part2.patch
 Patch504: chromium-127-ninja-1.21.1-deps-part3.patch
+Patch505: chromium-127-crabbyavif.patch
 
 # Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
 # http://build.chromium.org/buildbot/official/
@@ -509,6 +505,9 @@ Source14: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-%{esbuild_ve
 Source15: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-%{esbuild_version}.tgz
 %endif
 
+# bindgen for epel8
+Source16: https://github.com/rust-lang/rust-bindgen/archive/refs/tags/v0.69.4.tar.gz
+
 # esbuild binary from fedora
 %if 0%{?fedora}
 BuildRequires: golang-github-evanw-esbuild
@@ -535,6 +534,16 @@ BuildRequires: binutils
 %endif
 
 BuildRequires: rustc
+%if 0%{?rhel} == 8
+# need to build bindgen on el8
+BuildRequires: cargo
+%else
+BuildRequires: bindgen-cli
+%endif
+
+%if ! %{bundlezstd}
+BuildRequires: libzstd-devel
+%endif
 
 # build with system ffmpeg-free
 %if ! %{bundleffmpegfree}
@@ -1191,13 +1200,13 @@ Qt6 UI for chromium.
 %patch -P503 -p1 -b .ninja-1.21.1-deps
 %patch -P504 -p1 -b .ninja-1.21.1-deps
 %endif
+%patch -P505 -p1 -b .crabbyavif
 
 # Change shebang in all relevant files in this directory and all subdirectories
 # See `man find` for how the `-exec command {} +` syntax works
 find -type f \( -iname "*.py" \) -exec sed -i '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{chromium_pybin}=' {} +
 
 # Add correct path for nodejs binary
-rm -rf third_party/node/linux/node-linux-x64*
 %if ! %{system_nodejs}
   pushd third_party/node/linux
 %ifarch x86_64
@@ -1258,6 +1267,18 @@ cp -a third_party/dav1d/version/version.h third_party/dav1d/libdav1d/include/dav
 %endif
 
 %build
+# build bindgen on el8
+%if 0%{?rhel} == 8
+%__rpmuncompress -x %{SOURCE16}
+pushd rust-bindgen-0.69.4
+cargo build
+mkdir -p ..%{_bindir} ..%{_libdir}
+cp target/debug/bindgen ..%{_bindir}
+pushd ..%{_libdir}
+ln -fs %{_libdir}/libclang* .
+popd
+popd
+%endif
 
 # reduce warnings
 %if %{clang}
@@ -1314,6 +1335,12 @@ export RUSTC_BOOTSTRAP=1
 
 # set rustc version
 rustc_version="$(rustc --version)"
+# set rust bindgen root
+%if 0%{?rhel} == 8
+rust_bindgen_root="$PWD%{_prefix}"
+%else
+rust_bindgen_root="%{_prefix}"
+%endif
 
 # set clang version
 clang_version="$(clang --version | sed -n 's/clang version //p' | cut -d. -f1)"
@@ -1363,6 +1390,7 @@ CHROMIUM_CORE_GN_DEFINES+=' use_lld=false'
 
 # enable system rust
 CHROMIUM_CORE_GN_DEFINES+=' rust_sysroot_absolute="%{_prefix}"'
+CHROMIUM_CORE_GN_DEFINES+=" rust_bindgen_root=\"$rust_bindgen_root\""
 CHROMIUM_CORE_GN_DEFINES+=" rustc_version=\"$rustc_version\""
 
 CHROMIUM_CORE_GN_DEFINES+=' use_sysroot=false'
@@ -1568,6 +1596,9 @@ system_libs=()
 %if ! %{bundleflac}
 	system_libs+=(flac)
 %endif
+%if ! %{bundlezstd}
+	system_libs+=(zstd)
+%endif
 %if 0%{?noopenh264}
 	system_libs+=(openh264)
 %endif

diff --git a/sources b/sources
index 1e661e9..60b93c8 100644
--- a/sources
+++ b/sources
@@ -3,3 +3,4 @@ SHA512 (node-v20.6.1-linux-x64.tar.xz) = 7e15c05041a9a50f0046266aadb2e092a5aefbe
 SHA512 (linux-arm64-0.19.2.tgz) = 8a0d8fec6786fffcd6954d00820037a55d61e60762c74300df0801f8db27057562c221a063bedfb8df56af9ba80abb366336987e881782c5996e6f871abd3dc6
 SHA512 (linux-x64-0.19.2.tgz) = a31cc74c4bfa54f9b75d735a1cfc944d3b5efb7c06bfba9542da9a642ae0b2d235ea00ae84d3ad0572c406405110fe7b61377af0fd15803806ef78d20fc6f05d
 SHA512 (chromium-127.0.6533.72-clean.tar.xz) = 6faa0b0df800bafb31acb003d23f62e5eeea12c49ed3b9bf52c2e4f7ef3a7d7f6069f41026092bcb1e222dcbf4f0a3a0595e9be52502375f0b1094551cc7a98c
+SHA512 (v0.69.4.tar.gz) = a493474c89255c801c6fd4eb44e6a94f4d23830dc13c0bbae08c46e5c364e0df176fc00174d6462b70239578d0821e9ff1aaf127d8c60688f38a50a62cf292f4

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-07 16:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 16:06 [rpms/chromium] epel9-next: - refresh patches for aarch64 Than Ngo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox