guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 5aef3b016bd899e69a40efcf35588ac3dca47cc0
Author: Danny Milosavljevic <[email protected]>
AuthorDate: Sat Mar 21 18:56:21 2026 +0100
gnu: ungoogled-chromium: Fix build with Rust 1.93.
* gnu/packages/chromium.scm (%debian-patches): Remove adler2.
(lld-as-ld-wrapper-19): Delete variable.
(lld-as-ld-wrapper-21): New variable.
(ungoogled-chromium)[arguments]<#:configure-flags>: Use clang-21.
Update GN output declarations for Rust 1.93.
[native-inputs]: Remove clang-19, replace by clang-21.
Remove clang-runtime-19, replace by clang-runtime-21.
Remove clang-toolchain-19, replace by clang-toolchain-21.
Remove lld-as-ld-wrapper-19, replace by lld-as-ld-wrapper-21.
Change-Id: If4d780db79fccd6fb6d2213141b3819f75f5585c
---
gnu/packages/chromium.scm | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 12b4517987..ee46688d0f 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -417,8 +417,6 @@
"fixes/libcpp-headers.patch"
"fixes/rust-clanglib.patch"
"system/openjpeg.patch"
- ;; adler2 is not part of our rust toolchain, check on next version.
- "trixie/adler1.patch"
;; Remove after rust is past
;; <https://github.com/rust-lang/rust/pull/141061>.
"trixie/rust-no-alloc-shim.patch")))
@@ -518,8 +516,8 @@
`(cons "--enable-custom-modes"
,flags))))))
-(define lld-as-ld-wrapper-19
- (make-lld-wrapper lld-19 #:lld-as-ld? #t))
+(define lld-as-ld-wrapper-21
+ (make-lld-wrapper lld-21 #:lld-as-ld? #t))
(define-public ungoogled-chromium
(package
@@ -612,7 +610,7 @@
"\"")
(string-append "clang_version="
- #$(version-major (package-version clang-19)))
+ #$(version-major (package-version clang-21)))
(string-append "rust_sysroot_absolute=\""
(dirname (dirname (search-input-file %build-inputs
@@ -630,6 +628,22 @@
;; invokation and fails if it's just the version
number.
" (f6e511eec 2024-10-15) (built from a source
tarball)\"")
+ ;; Chromium's build/rust/std/BUILD.gn has a hardcoded
+ ;; list of stdlib rlibs (stdlib_files) that GN uses to
+ ;; declare build outputs. GN requires static output
+ ;; declarations, so the list must exactly match what
+ ;; rlibs exist in the Rust sysroot. Chromium's list
+ ;; includes unicode_width because their bundled
+ ;; toolchain (Rust 1.89) ships it as a dependency of
+ ;; getopts 0.2.23. Our Rust 1.93 has getopts 0.2.24
+ ;; which dropped that dependency, so unicode_width is
+ ;; not in our sysroot. This GN arg removes it from
+ ;; the list. (Chromium's own use of unicode_width via
+ ;; codespan-reporting is a separate vendored copy under
+ ;; third_party/rust/chromium_crates_io/ and is
+ ;; unaffected.)
+ "removed_rust_stdlib_libs=[\"unicode_width\"]"
+
;; Prefer system libraries.
"use_system_freetype=true"
"use_system_harfbuzz=true"
@@ -777,7 +791,7 @@
(string-append " -stdlib=libc++"
" -Wl,--stats"))
(setenv "CLANG_MVERS" #$(version-major
- (package-version clang-19)))
+ (package-version clang-21)))
(setenv "RUSTC_BOOTSTRAP" "1")
;; TODO: pre-compile instead. Avoids a race condition.
@@ -905,13 +919,13 @@
'("24" "48" "64" "128" "256")))))))))
(native-inputs
(list bison
- clang-19
- clang-runtime-19
- clang-toolchain-19
+ clang-21
+ clang-runtime-21
+ clang-toolchain-21
gn
gperf
- lld-as-ld-wrapper-19
- llvm-19
+ lld-as-ld-wrapper-21
+ llvm-21
ninja
node-lts
pkg-config