summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorAndré Batista <nandre@riseup.net>2026-04-14 11:07:24 -0300
committerAndreas Enge <andreas@enge.fr>2026-04-15 13:10:02 +0200
commit10ea4f874e5f1ff57df840a60195a073b1b0b898 (patch)
tree34450b01f20a23c6981387be9ba20954c2a5688d /gnu
parentc5280fd612d8ec079ace414fac70878474f732b4 (diff)
gnu: ungoogled-chromium: Update to 147.0.7727.55.
Fixes various CVEs, too many to list. * gnu/packages/chromium.scm (%preserved-third-party-files): Add base/third_party/nspr, buildtools/third_party/libc++, buildtools/third_party/libc++abi, third_party/catapult/third_party/beautifulsoup4-4.9.3, third_party/catapult/third_party/html5lib-1.1, third_party/catapult/third_party/typ, third_party/dawn/third_party/renderdoc, third_party/dawn/third_party/webgpu-headers, third_party/devscripts, third_party/devtools-frontend/src/front_end/third_party/csp_evaluator, third_party/devtools-frontend/src/front_end/third_party/legacy-javascript, third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec, third_party/federated_compute/chromium/fcp/confidentialcompute, third_party/freetype, third_party/fxdiv, third_party/hyphenation-patterns, third_party/icu, third_party/libc++, third_party/libpfm4, third_party/libpng, third_party/libx11, third_party/libxcb-keysyms, third_party/llvm-libc, third_party/neon_2_sse, third_party/opus, third_party/pdfium/third_party/lcms, third_party/pdfium/third_party/libopenjpeg, third_party/perfetto/protos/third_party/pprof, third_party/perfetto/protos/third_party/primes, third_party/perfetto/protos/third_party/simpleperf, third_party/pyyaml, third_party/sentencepiece, third_party/sentencepiece/src/third_party/darts_clone, third_party/six and third_party/skia/include/third_party/vulkan. Remove: net/third_party/nss, third_party/compiler-rt/src/lib, third_party/libaom/source/libaom/third_party/SVT-AV1, third_party/skia/third_party/vulkanmemoryallocator and third_party/webrtc/rtc_base/third_party/sigslot. (%chromium-version): Update to 147.0.7727.55. (%ungoogled-origin, %debian-origin): Update hashes. (%debian-patches): Add debianization/safe-libcxx.patch, disable/enterprise-tests.patch, disable/rustc-allow-features.patch, fixes/bytemuck.patch, fixes/libpng-testonly.patch, llvm-19/clang19.patch (move from bookwork), llvm-19/clone-traits.patch, llvm-19/keyfactory.patch, llvm-19/value-or.patch, llvm-22/ignore-for-ubsan.patch, trixie/cookie-string-view.patch and trixie/nodejs-main.patch. Remove trixie/rust-no-alloc-shim.patch. (%guix-patches): Add ungoogled-chromium-custom-compiler.patch and ungoogled-chromium-empty-parsed-rustc-args.patch. Remove ungoogled-chromium-unbundle-icu-target.patch which was merged upstream. (ungoogled-chromium-snippet): Remove icu from replace_gn_files args. Our icu does not have ucmndata.h, umapfile.h and putilimp.h which are required to build now. (ungoogled-chromium) [arguments] <#:configure-flags>: Add is_component_build, webnn_use_tflite, fatal_linker_warnings, enable_perfetto_unittests, skia_enable_skshapper_tests, tint_build_unittests, enable_nocompile_tests, enable_screen_ai_browsertests flags and set them to false. Set use_system_icu to false. Remove enable_glic, enable_js_type_check and removed_rust_stdlib_libs. The first two were removed and the last one is not necessary any longer. Add blink_symbol_level and v8_symbol_level and set them to zero. [arguments] <#:phases> {patch-stuff}: Remove compiler substitution which is not needed anymore. Adjust rustfmt_path to guix. {include-pthreadpool}: New phase. {adjust-CPLUS_INCLUDE_PATH}: Help clang find gcc's bits/c++config.h. [inputs]: icu-77 is required now, even though we're not using it this time. * gnu/packages/patches/ungoogled-chromium-custom-compiler.patch: Add it. * gnu/packages/patches/ungoogled-chromium-empty-parsed-rustc-args.patch: Same. * gnu/packages/patches/ungoogled-chromium-unbundle-icu-target.patch: Remove it. * gnu/local.mk: (Un)register the above patches. Change-Id: I597b69b15368e9b410fa3d29342700d9ea0b0d82 Signed-off-by: Andreas Enge <andreas@enge.fr>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk3
-rw-r--r--gnu/packages/chromium.scm174
-rw-r--r--gnu/packages/patches/ungoogled-chromium-custom-compiler.patch299
-rw-r--r--gnu/packages/patches/ungoogled-chromium-empty-parsed-rustc-args.patch46
-rw-r--r--gnu/packages/patches/ungoogled-chromium-unbundle-icu-target.patch21
5 files changed, 455 insertions, 88 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 17d4af244bf..c5e5f07ec23 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2522,10 +2522,11 @@ dist_patch_DATA = \
2522 %D%/packages/patches/ultrastar-deluxe-no-freesans.patch \ 2522 %D%/packages/patches/ultrastar-deluxe-no-freesans.patch \
2523 %D%/packages/patches/unity-test-set-subdir-correctly.patch \ 2523 %D%/packages/patches/unity-test-set-subdir-correctly.patch \
2524 %D%/packages/patches/unity-test-support-int64.patch \ 2524 %D%/packages/patches/unity-test-support-int64.patch \
2525 %D%/packages/patches/ungoogled-chromium-custom-compiler.patch \
2526 %D%/packages/patches/ungoogled-chromium-empty-parsed-rustc-args.patch \
2525 %D%/packages/patches/ungoogled-chromium-extension-search-path.patch \ 2527 %D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
2526 %D%/packages/patches/ungoogled-chromium-RUNPATH.patch \ 2528 %D%/packages/patches/ungoogled-chromium-RUNPATH.patch \
2527 %D%/packages/patches/ungoogled-chromium-system-nspr.patch \ 2529 %D%/packages/patches/ungoogled-chromium-system-nspr.patch \
2528 %D%/packages/patches/ungoogled-chromium-unbundle-icu-target.patch \
2529 %D%/packages/patches/unknown-horizons-python-3.8-distro.patch \ 2530 %D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
2530 %D%/packages/patches/unknown-horizons-python-3.9.patch \ 2531 %D%/packages/patches/unknown-horizons-python-3.9.patch \
2531 %D%/packages/patches/unknown-horizons-python-3.10.patch \ 2532 %D%/packages/patches/unknown-horizons-python-3.10.patch \
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index ee46688d0f3..c6186ff7056 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -79,11 +79,13 @@
79 '("base/third_party/cityhash" ;Expat 79 '("base/third_party/cityhash" ;Expat
80 "base/third_party/double_conversion" ;BSD-3 80 "base/third_party/double_conversion" ;BSD-3
81 "base/third_party/icu" ;Unicode, X11-style 81 "base/third_party/icu" ;Unicode, X11-style
82 "base/third_party/nspr" ;MPL-2.0
82 "base/third_party/superfasthash" ;BSD-3 83 "base/third_party/superfasthash" ;BSD-3
83 "base/third_party/symbolize" ;BSD-3 84 "base/third_party/symbolize" ;BSD-3
84 "base/third_party/xdg_user_dirs" ;Expat 85 "base/third_party/xdg_user_dirs" ;Expat
86 "buildtools/third_party/libc++" ;BSD
87 "buildtools/third_party/libc++abi" ;BSD
85 "net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+ 88 "net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
86 "net/third_party/nss" ;MPL-2.0
87 "net/third_party/quiche" ;BSD-3 89 "net/third_party/quiche" ;BSD-3
88 "net/third_party/uri_template" ;ASL2.0 90 "net/third_party/uri_template" ;ASL2.0
89 "third_party/abseil-cpp" ;ASL2.0 91 "third_party/abseil-cpp" ;ASL2.0
@@ -104,8 +106,11 @@
104 "third_party/catapult" ;BSD-3 106 "third_party/catapult" ;BSD-3
105 "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0 107 "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
106 "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0 108 "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
109 "third_party/catapult/third_party/beautifulsoup4-4.9.3" ;Expat
110 "third_party/catapult/third_party/html5lib-1.1" ;Expat
107 "third_party/catapult/third_party/polymer" ;BSD-3 111 "third_party/catapult/third_party/polymer" ;BSD-3
108 "third_party/catapult/third_party/six" ;Expat 112 "third_party/catapult/third_party/six" ;Expat
113 "third_party/catapult/third_party/typ" ;ASL2.0
109 ;; XXX: This is a minified version of <https://d3js.org/>. 114 ;; XXX: This is a minified version of <https://d3js.org/>.
110 "third_party/catapult/tracing/third_party/d3" ;BSD-3 115 "third_party/catapult/tracing/third_party/d3" ;BSD-3
111 "third_party/catapult/tracing/third_party/gl-matrix" ;Expat 116 "third_party/catapult/tracing/third_party/gl-matrix" ;Expat
@@ -120,19 +125,12 @@
120 "third_party/cld_3" ;ASL2.0 125 "third_party/cld_3" ;ASL2.0
121 "third_party/closure_compiler" ;ASL2.0 126 "third_party/closure_compiler" ;ASL2.0
122 "third_party/compiler-rt" ;ASL2.0 127 "third_party/compiler-rt" ;ASL2.0
123 "third_party/compiler-rt/src/lib" ;ASL2.0
124 "third_party/compiler-rt/src/lib/builtins" ;ASL2.0
125 "third_party/content_analysis_sdk" ;BSD-3 128 "third_party/content_analysis_sdk" ;BSD-3
126 "third_party/cpuinfo" ;BSD-2 129 "third_party/cpuinfo" ;BSD-2
127 "third_party/crabbyavif" ;ASL2.0 130 "third_party/crabbyavif" ;ASL2.0
128 "third_party/crabbyavif/src/sys/dav1d-sys" ;ASL2.0
129 "third_party/crabbyavif/src/sys/aom-sys" ;ASL2.0
130 "third_party/crabbyavif/src/sys/libgav1-sys" ;ASL2.0
131 "third_party/crabbyavif/src/sys/libyuv-sys" ;ASL2.0
132 "third_party/crabbyavif/src/sys/ndk-sys" ;ASL2.0
133 "third_party/crashpad" ;ASL2.0 131 "third_party/crashpad" ;ASL2.0
134 "third_party/crashpad/crashpad/third_party/lss" ;ASL2.0 132 "third_party/crashpad/crashpad/third_party/lss" ;ASL2.0
135 "third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib 133 "third_party/crashpad/crashpad/third_party/zlib" ;Zlib
136 "third_party/crc32c" ;BSD-3 134 "third_party/crc32c" ;BSD-3
137 "third_party/cros_system_api" ;BSD-3 135 "third_party/cros_system_api" ;BSD-3
138 "third_party/dav1d" ;BSD-2 136 "third_party/dav1d" ;BSD-2
@@ -140,19 +138,25 @@
140 ;; TODO: can likely be unbundled when Vulkan is updated. 138 ;; TODO: can likely be unbundled when Vulkan is updated.
141 "third_party/dawn/third_party/khronos" ;ASL2.0 139 "third_party/dawn/third_party/khronos" ;ASL2.0
142 "third_party/dawn/third_party/gn/webgpu-cts" ;BSD-3 140 "third_party/dawn/third_party/gn/webgpu-cts" ;BSD-3
141 "third_party/dawn/third_party/renderdoc" ;Expat
142 "third_party/dawn/third_party/webgpu-headers" ;BSD-3
143 "third_party/depot_tools" ;BSD-3
144 "third_party/devscripts" ;GPL2.0
143 "third_party/devtools-frontend" ;BSD-3 145 "third_party/devtools-frontend" ;BSD-3
144 "third_party/devtools-frontend/src/front_end" 146 "third_party/devtools-frontend/src/front_end"
145 "third_party/devtools-frontend/src/front_end/third_party" 147 "third_party/devtools-frontend/src/front_end/third_party"
146 "third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat 148 "third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
147 "third_party/devtools-frontend/src/front_end/third_party\ 149 "third_party/devtools-frontend/src/front_end/third_party\
148/additional_readme_paths.json" ;no explicit license; trivial 150/additional_readme_paths.json" ;no explicit license; trivial
149 "third_party/devtools-frontend/src/front_end/third_party/json5" ;Expat
150 "third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0 151 "third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
151 "third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3 152 "third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
152 "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat 153 "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
154 "third_party/devtools-frontend/src/front_end/third_party/csp_evaluator" ;BSD-3
153 "third_party/devtools-frontend/src/front_end/third_party/diff" ;ASL2.0 155 "third_party/devtools-frontend/src/front_end/third_party/diff" ;ASL2.0
154 "third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0 156 "third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0
155 "third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3 157 "third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
158 "third_party/devtools-frontend/src/front_end/third_party/json5" ;Expat
159 "third_party/devtools-frontend/src/front_end/third_party/legacy-javascript" ;ASL-2.0
156 "third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0 160 "third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
157 "third_party/devtools-frontend/src/front_end/third_party/lit" ;BSD-3 161 "third_party/devtools-frontend/src/front_end/third_party/lit" ;BSD-3
158 "third_party/devtools-frontend/src/front_end/third_party/marked" ;Expat, BSD-3 162 "third_party/devtools-frontend/src/front_end/third_party/marked" ;Expat, BSD-3
@@ -164,10 +168,12 @@
164 "third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/parsel" ; Expat 168 "third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/parsel" ; Expat
165 "third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/rxjs" ; ASL2.0 169 "third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/rxjs" ; ASL2.0
166 "third_party/devtools-frontend/src/front_end/third_party/puppeteer-replay" ;ASL2.0 170 "third_party/devtools-frontend/src/front_end/third_party/puppeteer-replay" ;ASL2.0
171 "third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec" ;BSD-3
167 "third_party/devtools-frontend/src/front_end/third_party\ 172 "third_party/devtools-frontend/src/front_end/third_party\
168/vscode.web-custom-data" ;Expat 173/vscode.web-custom-data" ;Expat
169 "third_party/devtools-frontend/src/front_end/third_party/third-party-web" ;Expat 174 "third_party/devtools-frontend/src/front_end/third_party/third-party-web" ;Expat
170 "third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0 175 "third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0
176 "third_party/devtools-frontend/src/front_end/third_party/web-vitals" ;Expat
171 "third_party/devtools-frontend/src/third_party/i18n" ;ASL2.0 177 "third_party/devtools-frontend/src/third_party/i18n" ;ASL2.0
172 "third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0 178 "third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
173 179
@@ -179,6 +185,7 @@
179 "third_party/farmhash" ;Expat 185 "third_party/farmhash" ;Expat
180 "third_party/fast_float" ;ASL2.0, Boost1.0, Expat 186 "third_party/fast_float" ;ASL2.0, Boost1.0, Expat
181 "third_party/fdlibm" ;non-copyleft 187 "third_party/fdlibm" ;non-copyleft
188 "third_party/federated_compute/chromium/fcp/confidentialcompute" ;ASL2.0
182 "third_party/federated_compute/src/fcp/base" ;ASL2.0 189 "third_party/federated_compute/src/fcp/base" ;ASL2.0
183 "third_party/federated_compute/src/fcp/confidentialcompute" ;ASL2.0 190 "third_party/federated_compute/src/fcp/confidentialcompute" ;ASL2.0
184 "third_party/federated_compute/src/fcp/protos/confidentialcompute" ;ASL2.0 191 "third_party/federated_compute/src/fcp/protos/confidentialcompute" ;ASL2.0
@@ -187,7 +194,9 @@
187 "third_party/fft2d" ;non-copyleft 194 "third_party/fft2d" ;non-copyleft
188 "third_party/flatbuffers" ;ASL2.0 195 "third_party/flatbuffers" ;ASL2.0
189 "third_party/fp16" ;Expat 196 "third_party/fp16" ;Expat
197 "third_party/freetype" ;GPL2.0
190 "third_party/fusejs" ;ASL2.0 198 "third_party/fusejs" ;ASL2.0
199 "third_party/fxdiv" ;Expat
191 "third_party/gemmlowp" ;ASL2.0 200 "third_party/gemmlowp" ;ASL2.0
192 "third_party/google_input_tools" ;ASL2.0 201 "third_party/google_input_tools" ;ASL2.0
193 "third_party/google_input_tools/third_party/closure_library" ;ASL2.0 202 "third_party/google_input_tools/third_party/closure_library" ;ASL2.0
@@ -196,6 +205,9 @@
196 "third_party/harfbuzz-ng" ;Expat 205 "third_party/harfbuzz-ng" ;Expat
197 "third_party/highway" ;ASL2.0 206 "third_party/highway" ;ASL2.0
198 "third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+ 207 "third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
208 "third_party/hyphenation-patterns" ;Expat
209 ;; FIXME: Our icu does not have some headers such as udatamem.h.
210 "third_party/icu" ;Unicode3.0
199 "third_party/ink" ;ASL2.0 211 "third_party/ink" ;ASL2.0
200 "third_party/ink_stroke_modeler" ;ASL2.0 212 "third_party/ink_stroke_modeler" ;ASL2.0
201 "third_party/inspector_protocol" ;BSD-3 213 "third_party/inspector_protocol" ;BSD-3
@@ -208,12 +220,14 @@
208 "third_party/libaddressinput" ;ASL2.0 220 "third_party/libaddressinput" ;ASL2.0
209 "third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0" 221 "third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
210 "third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3 222 "third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3
211 "third_party/libaom/source/libaom/third_party/SVT-AV1" ;BSD-3
212 "third_party/libaom/source/libaom/third_party/vector" ;Expat 223 "third_party/libaom/source/libaom/third_party/vector" ;Expat
213 "third_party/libaom/source/libaom/third_party/x86inc" ;ISC 224 "third_party/libaom/source/libaom/third_party/x86inc" ;ISC
225 "third_party/libc++" ;Expat
214 "third_party/libdrm" ; Expat 226 "third_party/libdrm" ; Expat
215 "third_party/libgav1" ;ASL2.0 227 "third_party/libgav1" ;ASL2.0
216 "third_party/libjingle_xmpp" ;BSD-3 228 "third_party/libjingle_xmpp" ;BSD-3
229 "third_party/libpfm4" ;BSD
230 "third_party/libpng" ;PNG2.0
217 "third_party/libphonenumber" ;ASL2.0 231 "third_party/libphonenumber" ;ASL2.0
218 "third_party/libsecret" ;LGPL2.1+ 232 "third_party/libsecret" ;LGPL2.1+
219 "third_party/libsrtp" ;BSD-3 233 "third_party/libsrtp" ;BSD-3
@@ -227,11 +241,15 @@
227 "third_party/libvpx/source/libvpx/third_party/x86inc" ;Expat 241 "third_party/libvpx/source/libvpx/third_party/x86inc" ;Expat
228 242
229 "third_party/libwebm" ;BSD-3 243 "third_party/libwebm" ;BSD-3
244 "third_party/libx11" ;BSD
245 "third_party/libxcb-keysyms" ;BSD
230 "third_party/libxml/chromium" ;BSD-3 246 "third_party/libxml/chromium" ;BSD-3
231 "third_party/libyuv" ;BSD-3 247 "third_party/libyuv" ;BSD-3
232 "third_party/libzip" ;BSD-3 248 "third_party/libzip" ;BSD-3
233 "third_party/lit" ;BSD-3 249 "third_party/lit" ;BSD-3
234 "third_party/lit/v3_0" ;BSD-3 250 "third_party/lit/v3_0" ;BSD-3
251 "third_party/llvm-libc" ;ASL2.0
252 "third_party/llvm-libc/src/shared" ;ASL2.0
235 "third_party/lottie" ;Expat 253 "third_party/lottie" ;Expat
236 "third_party/lss" ;BSD-3 254 "third_party/lss" ;BSD-3
237 "third_party/lzma_sdk" ;public domain 255 "third_party/lzma_sdk" ;public domain
@@ -244,6 +262,7 @@
244 "third_party/modp_b64" ;BSD-3 262 "third_party/modp_b64" ;BSD-3
245 "third_party/nasm" ;BSD-2 263 "third_party/nasm" ;BSD-2
246 "third_party/nearby" ;ASL2.0 264 "third_party/nearby" ;ASL2.0
265 "third_party/neon_2_sse" ;BSD-2
247 "third_party/node" ;Expat 266 "third_party/node" ;Expat
248 "third_party/oak/chromium/proto" ;ASL2.0 267 "third_party/oak/chromium/proto" ;ASL2.0
249 "third_party/oak/chromium/proto/attestation" ;ASL2.0 268 "third_party/oak/chromium/proto/attestation" ;ASL2.0
@@ -251,14 +270,20 @@
251 "third_party/one_euro_filter" ;BSD-3 270 "third_party/one_euro_filter" ;BSD-3
252 "third_party/openscreen" ;BSD-3 271 "third_party/openscreen" ;BSD-3
253 "third_party/openscreen/src/third_party/tinycbor" ;Expat 272 "third_party/openscreen/src/third_party/tinycbor" ;Expat
273 "third_party/opus" ;BSD-3
254 "third_party/ots" ;BSD-3 274 "third_party/ots" ;BSD-3
255 "third_party/pdfium" ;BSD-3 275 "third_party/pdfium" ;BSD-3
256 "third_party/pdfium/third_party/agg23" ;Expat 276 "third_party/pdfium/third_party/agg23" ;Expat
257 "third_party/pdfium/third_party/bigint" ;Public domain, BSD-3 277 "third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
278 "third_party/pdfium/third_party/lcms" ;Expat
279 "third_party/pdfium/third_party/libopenjpeg" ;BDS-2
258 "third_party/pdfium/third_party/libtiff" ;non-copyleft 280 "third_party/pdfium/third_party/libtiff" ;non-copyleft
259 "third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType 281 "third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
260 "third_party/perfetto" ;ASL2.0 282 "third_party/perfetto" ;ASL2.0
261 "third_party/perfetto/protos/third_party/chromium" ;BSD-3 283 "third_party/perfetto/protos/third_party/chromium" ;BSD-3
284 "third_party/perfetto/protos/third_party/pprof" ;ASL2.0
285 "third_party/perfetto/protos/third_party/primes" ;ASL2.0
286 "third_party/perfetto/protos/third_party/simpleperf" ;ASL2.0
262 "third_party/pffft" ;the "FFTPACK" license 287 "third_party/pffft" ;the "FFTPACK" license
263 "third_party/ply" ;BSD-3 288 "third_party/ply" ;BSD-3
264 "third_party/polymer" ;BSD-3 289 "third_party/polymer" ;BSD-3
@@ -268,6 +293,7 @@
268 "third_party/protobuf/third_party/utf8_range" ; Expat 293 "third_party/protobuf/third_party/utf8_range" ; Expat
269 "third_party/pthreadpool" ;BSD-2 294 "third_party/pthreadpool" ;BSD-2
270 "third_party/puffin" ;Non-copyleft 295 "third_party/puffin" ;Non-copyleft
296 "third_party/pyyaml" ;Expat
271 "third_party/pyjson5" ;ASL2.0 297 "third_party/pyjson5" ;ASL2.0
272 "third_party/rapidhash" ;BSD-2 298 "third_party/rapidhash" ;BSD-2
273 "third_party/readability" ;ASL2.0 299 "third_party/readability" ;ASL2.0
@@ -279,11 +305,14 @@
279 "third_party/search_engines_data" ;BSD-3 305 "third_party/search_engines_data" ;BSD-3
280 "third_party/securemessage" ;ASL2.0 306 "third_party/securemessage" ;ASL2.0
281 "third_party/selenium-atoms" ;ASL2.0 307 "third_party/selenium-atoms" ;ASL2.0
308 "third_party/sentencepiece" ;ASL2.0
309 "third_party/sentencepiece/src/third_party/darts_clone" ;BSD-3
282 "third_party/shell-encryption" ;ASL2.0 310 "third_party/shell-encryption" ;ASL2.0
283 "third_party/simdutf" ;Non-copyleft 311 "third_party/simdutf" ;Non-copyleft
284 "third_party/simplejson" ; Non-copyleft 312 "third_party/simplejson" ; Non-copyleft
313 "third_party/six" ;Expat
285 "third_party/skia" ;BSD-3 314 "third_party/skia" ;BSD-3
286 "third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat 315 "third_party/skia/include/third_party/vulkan" ;BSD-3
287 "third_party/smhasher" ;Expat, public domain 316 "third_party/smhasher" ;Expat, public domain
288 317
289 ;; FIXME: the snappy "replacement" shim (see replace_gn_files.py below) does 318 ;; FIXME: the snappy "replacement" shim (see replace_gn_files.py below) does
@@ -338,7 +367,6 @@
338 "third_party/webrtc/modules/third_party/fft" ;Non-copyleft 367 "third_party/webrtc/modules/third_party/fft" ;Non-copyleft
339 "third_party/webrtc/modules/third_party/g711" ;Public domain 368 "third_party/webrtc/modules/third_party/g711" ;Public domain
340 "third_party/webrtc/modules/third_party/g722" ;Public domain 369 "third_party/webrtc/modules/third_party/g722" ;Public domain
341 "third_party/webrtc/rtc_base/third_party/sigslot" ;Public domain
342 "third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3 370 "third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
343 "third_party/woff2" ;ASL2.0 371 "third_party/woff2" ;ASL2.0
344 "third_party/wuffs" ;ASL2.0 372 "third_party/wuffs" ;ASL2.0
@@ -372,7 +400,7 @@
372 ;; run the Blink performance tests, just remove everything to save ~70MiB. 400 ;; run the Blink performance tests, just remove everything to save ~70MiB.
373 '("third_party/blink/perf_tests")) 401 '("third_party/blink/perf_tests"))
374 402
375(define %chromium-version "141.0.7390.65") 403(define %chromium-version "147.0.7727.55")
376(define %ungoogled-revision (string-append %chromium-version "-1")) 404(define %ungoogled-revision (string-append %chromium-version "-1"))
377(define %debian-revision (string-append "debian/" %ungoogled-revision)) 405(define %debian-revision (string-append "debian/" %ungoogled-revision))
378 406
@@ -384,7 +412,7 @@
384 (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) 412 (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
385 (sha256 413 (sha256
386 (base32 414 (base32
387 "1hk4rww2gccly1qv0xnswd77haj02rlza82403dxdjm8fkdfndy6")))) 415 "0l6v4wf16067igawjlh90f3d287mkw0cq4j5lvrxxy17y1skynzc"))))
388 416
389(define %debian-origin 417(define %debian-origin
390 (origin 418 (origin
@@ -397,7 +425,7 @@
397 ((_ version) version)))) 425 ((_ version) version))))
398 (sha256 426 (sha256
399 (base32 427 (base32
400 "06s3kvwb3490xb28n6r3q5n1c0ylsvchiw6s4h1rrp8jqzwjbmc6")))) 428 "0gqarll08i7rcs1amapciv263xvzglc8p44ikavq3xd12yyvcd98"))))
401 429
402(define (origin-file origin file) 430(define (origin-file origin file)
403 (computed-file 431 (computed-file
@@ -410,26 +438,38 @@
410 438
411(define %debian-patches 439(define %debian-patches
412 (map debian-patch 440 (map debian-patch
413 '("bookworm/clang19.patch" 441 '("bookworm/foreach.patch"
414 "bookworm/foreach.patch" 442 "debianization/safe-libcxx.patch"
443 "disable/enterprise-tests.patch"
415 "disable/node-version-ck.patch" 444 "disable/node-version-ck.patch"
445 "disable/rustc-allow-features.patch"
446 "fixes/bytemuck.patch"
416 "fixes/gentoo-stylesheet.patch" 447 "fixes/gentoo-stylesheet.patch"
417 "fixes/libcpp-headers.patch" 448 "fixes/libcpp-headers.patch"
449 "fixes/libpng-testonly.patch"
418 "fixes/rust-clanglib.patch" 450 "fixes/rust-clanglib.patch"
451 "llvm-19/clang19.patch"
452 "llvm-19/clone-traits.patch"
453 "llvm-19/keyfactory.patch"
454 "llvm-19/value-or.patch"
455 "llvm-22/ignore-for-ubsan.patch"
419 "system/openjpeg.patch" 456 "system/openjpeg.patch"
420 ;; Remove after rust is past 457 "trixie/cookie-string-view.patch"
421 ;; <https://github.com/rust-lang/rust/pull/141061>. 458 "trixie/nodejs-main.patch")))
422 "trixie/rust-no-alloc-shim.patch")))
423 459
424(define %guix-patches 460(define %guix-patches
425 (list (local-file 461 (list (local-file
426 (assume-valid-file-name 462 (assume-valid-file-name
427 (search-patch 463 (search-patch
428 "ungoogled-chromium-extension-search-path.patch"))) 464 "ungoogled-chromium-custom-compiler.patch")))
465 (local-file
466 (assume-valid-file-name
467 (search-patch
468 "ungoogled-chromium-empty-parsed-rustc-args.patch")))
429 (local-file 469 (local-file
430 (assume-valid-file-name 470 (assume-valid-file-name
431 (search-patch 471 (search-patch
432 "ungoogled-chromium-unbundle-icu-target.patch"))) 472 "ungoogled-chromium-extension-search-path.patch")))
433 (local-file 473 (local-file
434 (assume-valid-file-name 474 (assume-valid-file-name
435 (search-patch 475 (search-patch
@@ -500,9 +540,8 @@
500 "#if 0")) 540 "#if 0"))
501 (invoke "python" "build/linux/unbundle/replace_gn_files.py" 541 (invoke "python" "build/linux/unbundle/replace_gn_files.py"
502 "--system-libraries" "flac" "fontconfig" "freetype" 542 "--system-libraries" "flac" "fontconfig" "freetype"
503 "harfbuzz-ng" "icu" "libjpeg" 543 "harfbuzz-ng" "libjpeg" "libpng" "libwebp" "libxml"
504 "libpng" "libwebp" "libxml" "libxslt" "openh264" "opus" 544 "libxslt" "openh264" "opus" "zlib")))))
505 "zlib")))))
506 545
507(define opus+custom 546(define opus+custom
508 (package/inherit opus 547 (package/inherit opus
@@ -531,7 +570,7 @@
531 %chromium-version "-lite.tar.xz")) 570 %chromium-version "-lite.tar.xz"))
532 (sha256 571 (sha256
533 (base32 572 (base32
534 "09iwglswnr6d45zz3zsjw7jpm1xlwwkxlz9h5nlhqxyd933a04fq")) 573 "1salvlw5sykx3zmsbp7cgmf7y8yy6jlgb4b4zswzsbjrprk4jnap"))
535 (modules '((guix build utils))) 574 (modules '((guix build utils)))
536 (snippet (force ungoogled-chromium-snippet)))) 575 (snippet (force ungoogled-chromium-snippet))))
537 (build-system gnu-build-system) 576 (build-system gnu-build-system)
@@ -548,6 +587,7 @@
548 ;; directory for an exhaustive list of supported flags. 587 ;; directory for an exhaustive list of supported flags.
549 ;; (Note: The 'configure' phase will do that for you.) 588 ;; (Note: The 'configure' phase will do that for you.)
550 #~(list "is_debug=false" 589 #~(list "is_debug=false"
590 "is_component_build=false"
551 ;; Use the "official" release optimizations, as opposed to 591 ;; Use the "official" release optimizations, as opposed to
552 ;; a developer build. 592 ;; a developer build.
553 "is_official_build=true" 593 "is_official_build=true"
@@ -555,6 +595,7 @@
555 "use_clang_modules=false" 595 "use_clang_modules=false"
556 "use_custom_libcxx=false" ; support for this is deprecated and to be removed. 596 "use_custom_libcxx=false" ; support for this is deprecated and to be removed.
557 "optimize_webui=false" 597 "optimize_webui=false"
598 "webnn_use_tflite=false"
558 "safe_browsing_use_unrar=false" 599 "safe_browsing_use_unrar=false"
559 "chrome_pgo_phase=0" 600 "chrome_pgo_phase=0"
560 "use_sysroot=false" 601 "use_sysroot=false"
@@ -572,12 +613,10 @@
572 "enable_service_discovery=false" 613 "enable_service_discovery=false"
573 "enable_vr=false" 614 "enable_vr=false"
574 "enable_enterprise_companion=false" 615 "enable_enterprise_companion=false"
575 "enable_glic=false"
576 "enable_iterator_debugging=false" 616 "enable_iterator_debugging=false"
577 "enable_hangout_services_extension=false" 617 "enable_hangout_services_extension=false"
578 "enable_widevine=false" 618 "enable_widevine=false"
579 ;; Disable type-checking for the Web UI to avoid a Java dependency. 619 "fatal_linker_warnings=false"
580 "enable_js_type_check=false"
581 ;; Disable code using TensorFlow until it has been scrutinized 620 ;; Disable code using TensorFlow until it has been scrutinized
582 ;; by the ungoogled project. 621 ;; by the ungoogled project.
583 "build_with_tflite_lib=false" 622 "build_with_tflite_lib=false"
@@ -589,6 +628,11 @@
589 "angle_has_histograms=false" 628 "angle_has_histograms=false"
590 "angle_build_tests=false" 629 "angle_build_tests=false"
591 "build_angle_perftests=false" 630 "build_angle_perftests=false"
631 "enable_perfetto_unittests=false"
632 "skia_enable_skshapper_tests=false"
633 "tint_build_unittests=false"
634 "enable_nocompile_tests=false"
635 "enable_screen_ai_browsertests=false"
592 636
593 "clang_warning_suppression_file=\"\"" 637 "clang_warning_suppression_file=\"\""
594 638
@@ -597,6 +641,8 @@
597 "is_cfi=false" 641 "is_cfi=false"
598 642
599 "symbol_level=0" 643 "symbol_level=0"
644 "blink_symbol_level=0"
645 "v8_symbol_level=0"
600 "v8_enable_backtrace=false" 646 "v8_enable_backtrace=false"
601 647
602 ;; Define a custom toolchain that simply looks up CC, AR and 648 ;; Define a custom toolchain that simply looks up CC, AR and
@@ -628,26 +674,10 @@
628 ;; invokation and fails if it's just the version number. 674 ;; invokation and fails if it's just the version number.
629 " (f6e511eec 2024-10-15) (built from a source tarball)\"") 675 " (f6e511eec 2024-10-15) (built from a source tarball)\"")
630 676
631 ;; Chromium's build/rust/std/BUILD.gn has a hardcoded
632 ;; list of stdlib rlibs (stdlib_files) that GN uses to
633 ;; declare build outputs. GN requires static output
634 ;; declarations, so the list must exactly match what
635 ;; rlibs exist in the Rust sysroot. Chromium's list
636 ;; includes unicode_width because their bundled
637 ;; toolchain (Rust 1.89) ships it as a dependency of
638 ;; getopts 0.2.23. Our Rust 1.93 has getopts 0.2.24
639 ;; which dropped that dependency, so unicode_width is
640 ;; not in our sysroot. This GN arg removes it from
641 ;; the list. (Chromium's own use of unicode_width via
642 ;; codespan-reporting is a separate vendored copy under
643 ;; third_party/rust/chromium_crates_io/ and is
644 ;; unaffected.)
645 "removed_rust_stdlib_libs=[\"unicode_width\"]"
646
647 ;; Prefer system libraries. 677 ;; Prefer system libraries.
648 "use_system_freetype=true" 678 "use_system_freetype=true"
649 "use_system_harfbuzz=true" 679 "use_system_harfbuzz=true"
650 "use_system_icu=true" 680 "use_system_icu=false"
651 "use_system_lcms2=true" 681 "use_system_lcms2=true"
652 "use_system_libffi=true" 682 "use_system_libffi=true"
653 "use_system_libjpeg=true" 683 "use_system_libjpeg=true"
@@ -713,9 +743,9 @@
713 743
714 ;; Many files try to include ICU headers from "third_party/icu/...". 744 ;; Many files try to include ICU headers from "third_party/icu/...".
715 ;; Remove the "third_party/" prefix to use system headers instead. 745 ;; Remove the "third_party/" prefix to use system headers instead.
716 (substitute* (find-files "chrome" "\\.cc$") 746 ;(substitute* (find-files "chrome" "\\.cc$")
717 (("third_party/icu/source/(common|i18n)/") 747 ; (("third_party/icu/source/(common|i18n)/")
718 "")) 748 ; ""))
719 749
720 ;; XXX: Should be unnecessary when use_system_lcms2=true. 750 ;; XXX: Should be unnecessary when use_system_lcms2=true.
721 (substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h" 751 (substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h"
@@ -732,16 +762,19 @@
732 (("include \"third_party/curl") 762 (("include \"third_party/curl")
733 "include \"curl")) 763 "include \"curl"))
734 764
735 ;; Unknown flags as of clang-19, can be removed when building with 765 ;; Our clang libs and rustfmt are not under bindgen root directory.
736 ;; newer clang. 766 (substitute* '("build/rust/rust_bindgen_generator.gni"
737 (substitute* "build/config/compiler/BUILD.gn" 767 "build/rust/rust_bindgen.gni")
738 (("-gsimple-template-names") ""))
739
740 ;; Clang libs are not under bindgen root directory.
741 (substitute* "build/rust/rust_bindgen_generator.gni"
742 (("(_libclang_path = )rust_bindgen_root" _ libclang) 768 (("(_libclang_path = )rust_bindgen_root" _ libclang)
743 (string-append libclang "clang_base_path")))))) 769 (string-append libclang "clang_base_path"))
744 (add-after 'patch-stuff 'add-absolute-references 770 (("(_rustfmt_path = \")\\$\\{rust_bindgen_root\\}" _ rustfmt)
771 (string-append rustfmt "${rust_sysroot_absolute}"))))))
772 (add-after 'patch-stuff 'include-pthreadpool
773 ;; FIXME: Somehow the build system cannot locate this header.
774 (lambda _
775 (copy-file "third_party/pthreadpool/src/include/pthreadpool.h"
776 "pthreadpool.h")))
777 (add-after 'include-pthreadpool 'add-absolute-references
745 (lambda* (#:key inputs #:allow-other-keys) 778 (lambda* (#:key inputs #:allow-other-keys)
746 (let ((cups-config (search-input-file inputs "/bin/cups-config")) 779 (let ((cups-config (search-input-file inputs "/bin/cups-config"))
747 (libnssckbi.so (search-input-file inputs 780 (libnssckbi.so (search-input-file inputs
@@ -763,13 +796,22 @@
763 (add-after 'add-absolute-references 'adjust-CPLUS_INCLUDE_PATH 796 (add-after 'add-absolute-references 'adjust-CPLUS_INCLUDE_PATH
764 ;; The libcxx include/c++/v1 directory is not exposed via 797 ;; The libcxx include/c++/v1 directory is not exposed via
765 ;; CPLUS_INCLUDE_PATH by default, causing errors like 798 ;; CPLUS_INCLUDE_PATH by default, causing errors like
766 ;; "fatal error: 'format' file not found". 799 ;; "fatal error: 'format' file not found". Also clang is
800 ;; unable to find gcc's bits/c++config.h which is machine
801 ;; dependent.
767 (lambda* (#:key native-inputs inputs #:allow-other-keys) 802 (lambda* (#:key native-inputs inputs #:allow-other-keys)
768 (setenv "CPLUS_INCLUDE_PATH" 803 (let* ((libcxx-v1 (search-input-directory inputs
769 (string-append 804 "include/c++/v1"))
770 (search-input-directory inputs 805 (target-system #$(nix-system->gnu-triplet
771 "/include/c++/v1") 806 (or (%current-target-system)
772 ":" (getenv "CPLUS_INCLUDE_PATH"))))) 807 (%current-system))))
808 (target-include (string-append "include/c++/"
809 target-system))
810 (gcc-bits (search-input-directory inputs
811 target-include)))
812 (setenv "CPLUS_INCLUDE_PATH"
813 (string-append libcxx-v1 ":" gcc-bits ":"
814 (getenv "CPLUS_INCLUDE_PATH"))))))
773 (add-before 'configure 'prepare-build-environment 815 (add-before 'configure 'prepare-build-environment
774 (lambda* (#:key native-inputs inputs #:allow-other-keys) 816 (lambda* (#:key native-inputs inputs #:allow-other-keys)
775 (let ((node (search-input-file (or native-inputs inputs) 817 (let ((node (search-input-file (or native-inputs inputs)
@@ -955,7 +997,7 @@
955 glib 997 glib
956 gtk+ 998 gtk+
957 harfbuzz 999 harfbuzz
958 icu4c 1000 icu4c-77
959 lcms 1001 lcms
960 libcxx 1002 libcxx
961 libffi 1003 libffi
diff --git a/gnu/packages/patches/ungoogled-chromium-custom-compiler.patch b/gnu/packages/patches/ungoogled-chromium-custom-compiler.patch
new file mode 100644
index 00000000000..c14d3349e43
--- /dev/null
+++ b/gnu/packages/patches/ungoogled-chromium-custom-compiler.patch
@@ -0,0 +1,299 @@
1From 7a372a6914e9d9d6f0c914a1ca8cdff592c40593 Mon Sep 17 00:00:00 2001
2From: Matt Jolly <kangie@gentoo.org>
3Date: Thu, 12 Mar 2026 11:57:11 +1000
4Subject: [PATCH] Update compiler patch for M147 beta
5
6Signed-off-by: Matt Jolly <kangie@gentoo.org>
7--- a/build/config/compiler/BUILD.gn
8+++ b/build/config/compiler/BUILD.gn
9@@ -367,9 +367,6 @@ config("compiler") {
10
11 configs += [
12 # See the definitions below.
13- ":clang_revision",
14- ":rustc_revision",
15- ":compiler_cpu_abi",
16 ":compiler_codegen",
17 ":compiler_deterministic",
18 ":clang_warning_suppression",
19@@ -1690,43 +1687,6 @@ config("compiler_deterministic") {
20 }
21 }
22
23- # Makes builds independent of absolute file path.
24- if (is_clang && strip_absolute_paths_from_debug_symbols) {
25- # If debug option is given, clang includes $cwd in debug info by default.
26- # For such build, this flag generates reproducible obj files even we use
27- # different build directory like "out/feature_a" and "out/feature_b" if
28- # we build same files with same compile flag.
29- # Other paths are already given in relative, no need to normalize them.
30-
31- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
32- # and -fcoverage-compilation-dir=.
33- cflags += [ "-ffile-compilation-dir=." ]
34-
35- # Convert absolute paths to relative paths. Expands to, for example:
36- # -file-prefix-map /path/to/chromium/src=../..
37- swiftflags += [
38- "-file-prefix-map",
39- rebase_path("//.", "") + "=" + rebase_path("//.", root_build_dir),
40- ]
41- if (!is_win) {
42- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
43- asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
44- }
45-
46- if (is_win && use_lld) {
47- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
48- # Absolutize source file paths for PDB. Pass the real build directory
49- # if the pdb contains source-level debug information and if linker
50- # reproducibility is not critical.
51- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
52- } else {
53- # Use a fake fixed base directory for paths in the pdb to make the pdb
54- # output fully deterministic and independent of the build directory.
55- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
56- }
57- }
58- }
59-
60 # Tells the compiler not to use absolute paths when passing the default
61 # paths to the tools it invokes. We don't want this because we don't
62 # really need it and it can mess up the RBE cache entries.
63@@ -1759,88 +1719,6 @@ config("compiler_deterministic") {
64 }
65 }
66
67-config("clang_revision") {
68- if (is_clang && clang_base_path == default_clang_base_path &&
69- current_os != "zos") {
70- _perform_consistency_checks = current_toolchain == default_toolchain
71- if (llvm_force_head_revision) {
72- _head_revision_stamp_path = "//third_party/llvm-build/force_head_revision"
73- _head_revision = ""
74- if (path_exists(_head_revision_stamp_path)) {
75- _head_revision = read_file(_head_revision_stamp_path, "trim string")
76- }
77- assert(
78- _head_revision != "",
79- "llvm_force_head_revision=true, but no locally built version was detected.")
80- _clang_revision = _head_revision
81- } else {
82- _clang_revision = read_file(
83- "//third_party/llvm-build/Release+Asserts/cr_build_revision",
84- "trim string")
85-
86- # Ensure that the synced clang version matches what's in git.
87- if (_perform_consistency_checks) {
88- # Parse the clang version from the Python script.
89- _clang_version_lines = filter_include(
90- read_file("//tools/clang/scripts/update.py", "list lines"),
91- [ "CLANG_*REVISION = *" ])
92- _py_revision =
93- string_replace(_clang_version_lines[0], "CLANG_REVISION = '", "")
94- _py_revision = string_replace(_py_revision, "'", "")
95- _py_subrevision =
96- string_replace(_clang_version_lines[1], "CLANG_SUB_REVISION = ", "")
97- _expected_clang_revision = "$_py_revision-$_py_subrevision"
98-
99- # TODO(agrieve): Change filter_include to _clang_revision ==
100- # _expected_clang_revision once angle & webrtc use a GCS DEPS entry
101- # rather than a update.py runhook.
102- assert(
103- filter_include([ _clang_revision ],
104- [
105- _expected_clang_revision,
106- "$_expected_clang_revision,*",
107- ]) != [],
108- "clang_revision=\"$_clang_revision\" but update.py expected \"$_expected_clang_revision\". Did you forget to gclient sync?")
109- }
110- }
111-
112- if (_perform_consistency_checks) {
113- # Ensure that the revision matches the version major expected by GN.
114- _versions_match = filter_include([ _clang_revision ],
115- [ "llvmorg-$clang_version-*" ]) != []
116- assert(
117- _versions_match,
118- "clang_revision=\"$_clang_revision\" but clang_version=\"$clang_version\". clang_version in build/toolchain/toolchain.gni is likely outdated.")
119- }
120-
121- if (toolchain_has_rust && _perform_consistency_checks &&
122- !rust_force_head_revision) {
123- # Ensure that the synced rust version matches what's in git.
124- _rust_revision_lines =
125- filter_include(read_file("//tools/rust/update_rust.py", "list lines"),
126- [ "RUST_*REVISION = *" ])
127- _py_revision =
128- string_replace(_rust_revision_lines[0], "RUST_REVISION = '", "")
129- _py_revision = string_replace(_py_revision, "'", "")
130- _py_subrevision =
131- string_replace(_rust_revision_lines[1], "RUST_SUB_REVISION = ", "")
132- _expected_rust_revision = "$_py_revision-$_py_subrevision"
133-
134- # Ensure the rust version matches the clang version.
135- assert(
136- filter_include([ rustc_revision ],
137- [ "*-$_expected_rust_revision-*" ]) != [],
138- "rustc_revision=\"$rustc_revision\" but update_rust.py expected \"$_expected_rust_revision\". Run \"gclient sync\"?")
139- }
140-
141- # This is here so that all files get recompiled after a clang roll and
142- # when turning clang on or off. (defines are passed via the command line,
143- # and build system rebuild things when their commandline changes). Nothing
144- # should ever read this define.
145- defines = [ "CR_CLANG_REVISION=\"$_clang_revision\"" ]
146- }
147-}
148-
149 # Controls the usage of a warning suppression mapping (WSM) file to suppress
150 # warnings based on the path of the file they come from. It's controlled by the
151 # `clang_warning_suppression_file` gn argument , which points to a text file
152@@ -1896,18 +1774,6 @@ config("sanitize_c_array_bounds") {
153 }
154 }
155
156-config("rustc_revision") {
157- if (rustc_revision != "") {
158- # Similar to the `clang_revision` config, this is here so that all `.rs`
159- # sources get recompiled after a rustc roll. Nothing should ever read this
160- # cfg. This will not be set if a custom toolchain is used.
161- rustflags = [
162- "--cfg",
163- "cr_rustc_revision=\"$rustc_revision\"",
164- ]
165- }
166-}
167-
168 config("compiler_arm_fpu") {
169 if (current_cpu == "arm" && !is_ios) {
170 cflags = [ "-mfpu=neon" ]
171@@ -2386,11 +2252,7 @@ config("chromium_code") {
172 defines = [ "_HAS_NODISCARD" ]
173 }
174 } else {
175- cflags = [ "-Wall" ]
176- if (is_clang) {
177- # Enable extra warnings for chromium_code when we control the compiler.
178- cflags += [ "-Wextra" ]
179- }
180+ cflags = []
181
182 # In Chromium code, we define __STDC_foo_MACROS in order to get the
183 # C99 macros on Mac and Linux.
184@@ -2399,32 +2261,6 @@ config("chromium_code") {
185 "__STDC_FORMAT_MACROS",
186 ]
187
188- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
189- current_cpu != "ppc64" && current_cpu != "mips" &&
190- current_cpu != "mips64" && current_cpu != "riscv64" &&
191- current_cpu != "loong64") {
192- # Non-chromium code is not guaranteed to compile cleanly with
193- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
194- # disabled, so only do that for Release build.
195- fortify_level = "2"
196-
197- # ChromeOS's toolchain supports a high-quality _FORTIFY_SOURCE=3
198- # implementation with a few custom glibc patches. Use that if it's
199- # available.
200- if (is_chromeos_device) {
201- fortify_level = "3"
202- }
203-
204- # _FORTIFY_SOURCE=3 is available in glibc 2.34+. Enable it when building
205- # with the sysroot where support is guaranteed. Clang is also required since
206- # the system gcc is often patched to add _FORTIFY_SOURCE=2 which would conflict
207- # with our definition.
208- if (use_sysroot && is_clang) {
209- fortify_level = "3"
210- }
211- defines += [ "_FORTIFY_SOURCE=" + fortify_level ]
212- }
213-
214 if (is_apple) {
215 cflags_objc = [ "-Wimplicit-retain-self" ]
216 cflags_objcc = [ "-Wimplicit-retain-self" ]
217@@ -2848,7 +2684,8 @@ config("default_stack_frames") {
218 # [0]: https://pinpoint-dot-chromeperf.appspot.com/job/147634a8be0000
219 # [1]: https://pinpoint-dot-chromeperf.appspot.com/job/132bc772be0000
220 # [2]: https://crrev.com/c/5447532
221-config("optimize") {
222+config("optimize") { }
223+config("xoptimize") {
224 if (is_win) {
225 # clang-cl's /O2 corresponds to clang's -O3, and really want -O2 for
226 # consistency with the other platforms.
227@@ -2897,7 +2734,8 @@ config("optimize") {
228 }
229
230 # Turn off optimizations.
231-config("no_optimize") {
232+config("no_optimize") { }
233+config("xno_optimize") {
234 if (is_win) {
235 cflags = [
236 "/Od", # Disable optimization.
237@@ -2932,7 +2770,8 @@ config("no_optimize") {
238 # Turns up the optimization level. Used to explicitly enable -O2 instead of
239 # -Os for select targets on platforms that use optimize_for_size. No-op
240 # elsewhere.
241-config("optimize_max") {
242+config("optimize_max") { }
243+config("xoptimize_max") {
244 ldflags = common_optimize_on_ldflags
245 if (is_win) {
246 # Favor speed over size, /O2 must be before the common flags.
247@@ -2953,7 +2792,8 @@ config("optimize_max") {
248 #
249 # TODO(crbug.com/41259697) - rework how all of these configs are related
250 # so that we don't need this disclaimer.
251-config("optimize_speed") {
252+config("optimize_speed") { }
253+config("xoptimize_speed") {
254 ldflags = common_optimize_on_ldflags
255 if (is_win) {
256 # Favor speed over size, /O2 must be before the common flags.
257@@ -2970,7 +2810,8 @@ config("optimize_speed") {
258 rustflags = [ "-Copt-level=3" ]
259 }
260
261-config("optimize_fuzzing") {
262+config("optimize_fuzzing") { }
263+config("xoptimize_fuzzing") {
264 cflags = [ "-O1" ] + common_optimize_on_cflags
265 rustflags = [ "-Copt-level=1" ]
266 ldflags = common_optimize_on_ldflags
267@@ -3115,7 +2956,8 @@ config("split_dwarf") {
268 }
269
270 # Full symbols.
271-config("symbols") {
272+config("symbols") { }
273+config("xsymbols") {
274 rustflags = []
275 configs = []
276 if (is_win) {
277@@ -3275,7 +3117,8 @@ config("symbols") {
278 # Minimal symbols.
279 # This config guarantees to hold symbol for stack trace which are shown to user
280 # when crash happens in unittests running on buildbot.
281-config("minimal_symbols") {
282+config("minimal_symbols") { }
283+config("xminimal_symbols") {
284 configs = []
285 rustflags = []
286 if (is_win) {
287@@ -3355,7 +3198,8 @@ config("minimal_symbols") {
288 # This configuration contains function names only. That is, the compiler is
289 # told to not generate debug information and the linker then just puts function
290 # names in the final debug information.
291-config("no_symbols") {
292+config("no_symbols") { }
293+config("xno_symbols") {
294 if (is_win) {
295 ldflags = [ "/DEBUG" ]
296
297--
2982.52.0
299
diff --git a/gnu/packages/patches/ungoogled-chromium-empty-parsed-rustc-args.patch b/gnu/packages/patches/ungoogled-chromium-empty-parsed-rustc-args.patch
new file mode 100644
index 00000000000..d88cc292c67
--- /dev/null
+++ b/gnu/packages/patches/ungoogled-chromium-empty-parsed-rustc-args.patch
@@ -0,0 +1,46 @@
1From da37bd781c0371e02ffc4877c3ac1b5f2020c207 Mon Sep 17 00:00:00 2001
2From: Matt Jolly <kangie@gentoo.org>
3Date: Tue, 17 Feb 2026 15:45:01 +1000
4Subject: [PATCH] Handle case where `parsed_rustc_args.cfg` is empty
5
6This may occur when (for example) using the unbundle toolchain
7
8Signed-off-by: Matt Jolly <kangie@gentoo.org>
9--- a/third_party/rust/cxx/chromium_integration/run_cxxbridge.py
10+++ b/third_party/rust/cxx/chromium_integration/run_cxxbridge.py
11@@ -44,18 +44,20 @@ def calculate_cxxbridge_args(unrecognized_script_args, rustc_print_cfg_path):
12 parser.add_argument("--cfg", action="append"),
13 parsed_rustc_args, _other_args = parser.parse_known_args(
14 args=unrecognized_script_args[:rustflags_separator])
15- for cfg_arg in parsed_rustc_args.cfg:
16- if "=" not in cfg_arg: # `buildflag_header.gni` only supports bool flags.
17- # TODO(https://crbug.com/436606652): Stop using `_BUILDFLAG_NOT_SET_`
18- # prefix and instead use `--check-cfg` in `run_cxxbridge.py` to
19- # detect buildflag names.
20- FALSE_PREFIX = "_BUILDFLAG_NOT_SET_"
21- if cfg_arg.startswith(FALSE_PREFIX):
22- flagname = cfg_arg[len(FALSE_PREFIX):]
23- cxxbridge_args.append(f"--cfg={flagname}=false")
24- else:
25- flagname = cfg_arg
26- cxxbridge_args.append(f"--cfg={flagname}=true")
27+ # Unbundled toolchain may not have any `--cfg` flags
28+ if parsed_rustc_args.cfg:
29+ for cfg_arg in parsed_rustc_args.cfg:
30+ if "=" not in cfg_arg: # `buildflag_header.gni` only supports bool flags.
31+ # TODO(https://crbug.com/436606652): Stop using `_BUILDFLAG_NOT_SET_`
32+ # prefix and instead use `--check-cfg` in `run_cxxbridge.py` to
33+ # detect buildflag names.
34+ FALSE_PREFIX = "_BUILDFLAG_NOT_SET_"
35+ if cfg_arg.startswith(FALSE_PREFIX):
36+ flagname = cfg_arg[len(FALSE_PREFIX):]
37+ cxxbridge_args.append(f"--cfg={flagname}=false")
38+ else:
39+ flagname = cfg_arg
40+ cxxbridge_args.append(f"--cfg={flagname}=true")
41
42 with open(rustc_print_cfg_path, 'r') as file:
43 for line in file:
44--
452.52.0
46
diff --git a/gnu/packages/patches/ungoogled-chromium-unbundle-icu-target.patch b/gnu/packages/patches/ungoogled-chromium-unbundle-icu-target.patch
deleted file mode 100644
index 618750f13f1..00000000000
--- a/gnu/packages/patches/ungoogled-chromium-unbundle-icu-target.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1From a665875b4013eed997bd042326a038e24f3296e7 Mon Sep 17 00:00:00 2001
2From: Matt Jolly <kangie@gentoo.org>
3Date: Thu, 10 Oct 2024 14:36:51 +1000
4Subject: [PATCH] unbundle: add missing icu target
5
6--- a/build/linux/unbundle/icu.gn
7+++ b/build/linux/unbundle/icu.gn
8@@ -65,6 +65,10 @@ group("icuuc_public") {
9 public_deps = [ ":icuuc" ]
10 }
11
12+group("icui18n_hidden_visibility") {
13+ public_deps = [ ":icuuc" ]
14+}
15+
16 shim_headers("icui18n_shim") {
17 root_path = "source/i18n"
18 headers = [
19--
202.46.2
21