gnu: ungoogled-chromium: Update to 139.0.7258.154.

Fixes #1272 and #2052.  Supersedes #2261.

* gnu/packages/chromium.scm: Remove libevent and regex imports;  Import rust and
rust-apps.
(%preserved-third-party-files): Remove: base/third_party/dynamic_annotations,
  base/third_party/xdg_mime,
  chrome/third_party/mozilla_security_manager,
  courgette/third_party/bsdiff,
  courgette/third_party/divsufsort,
  third_party/devtools-frontend/src/front_end/third_party/lodash-isequal,
  third_party/devtools-frontend/src/third_party/typescript,
  third_party/distributed_point_functions,
  third_party/iccjpeg,
  third_party/jstemplate,
  third_party/libavif,
  third_party/libudev,
  third_party/mesa_headers,
  third_party/openscreen/src/third_party/mozilla,
  third_party/pdfium/third_party/base,
  third_party/pdfium/third_party/skia_shared,
  third_party/qcms,
  third_party/tflite/src/third_party/eigen3,
  third_party/web-animations-js,
  third_party/webrtc/rtc_base/third_party/base64,
  third_party/widevine/cdm/widevine_cdm_version.h,
  v8/src/third_party/siphash,
  v8/src/third_party/utf8-decoder,
  v8/src/third_party/valgrind;
  - Add: third_party/anonymous_tokens,
  third_party/compiler-rt,
  third_party/compiler-rt/src/lib,
  third_party/compiler-rt/src/lib/builtins,
  third_party/crabbyavif,
  third_party/crabbyavif/src/sys/dav1d-sys,
  third_party/crabbyavif/src/sys/aom-sys,
  third_party/crabbyavif/src/sys/libgav1-sys,
  third_party/crabbyavif/src/sys/libyuv-sys,
  third_party/crabbyavif/src/sys/ndk-sys,
  third_party/devtools-frontend/src/front_end,
  third_party/devtools-frontend/src/front_end/third_party,
  third_party/devtools-frontend/src/front_end/third_party/json5,
  third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party,
  third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/mitt,
  third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/parsel,
  third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/rxjs,
  third_party/devtools-frontend/src/front_end/third_party/puppeteer-replay,
  third_party/devtools-frontend/src/front_end/third_party/third-party-web,
  third_party/dragonbox,
  third_party/d3,
  third_party/fast_float,
  third_party/ffmpeg,
  third_party/fp16,
  third_party/ink,
  third_party/ink_stroke_modeler,
  third_party/jsoncpp,
  third_party/lens_server_proto,
  third_party/libdrm,
  third_party/libtess2,
  third_party/lit,
  third_party/lit/v3_0,
  third_party/lzma_sdk,
  third_party/ml_dtypes,
  third_party/protobuf/third_party/utf8_range,
  third_party/puffin,
  third_party/rapidhash,
  third_party/readability,
  third_party/re2,
  third_party/rust,
  third_party/search_engines_data,
  third_party/simdutf,
  third_party/simplejson,
  third_party/spirv-headers,
  third_party/spirv-tools,
  third_party/tensorflow_models,
  third_party/tflite/src/third_party/xla",
  third_party/tflite/src/third_party/xla/xla,
  third_party/tflite/src/third_party/xla/xla/tsl/framework,
  third_party/tflite/src/third_party/xla/xla/tsl/lib/random,
  third_party/tflite/src/third_party/xla/xla/tsl/platform,
  third_party/tflite/src/third_party/xla/xla/tsl/protobuf,
  third_party/tflite/src/third_party/xla/xla/tsl/util,
  third_party/tflite/src/third_party/xla/third_party/tsl,
  third_party/tflite/src/third_party/xla/third_party/tsl/tsl,
  third_party/tflite/src/third_party/xla/third_party/tsl/tsl/platform,
  third_party/tflite/src/third_party/xla/third_party/tsl/tsl/profiler,
  third_party/ungoogled-chromium,
  third_party/vulkan-headers,
  third_party/vulkan-loader,
  third_party/vulkan-tools,
  third_party/vulkan-validation-layers,
  third_party/vulkan-utility-libraries,
  third_party/wasm_tts_engine,
  third_party/zstd,
  v8/third_party/rapidhash-v8,
  v8/third_party/siphash,
  v8/third_party/utf8-decoder,
  v8/third_party/valgrind,
  v8/third_party/v8/codegen.
(%chromium-version): Update to 139.0.7258.154.
(%debian-revision): Change it to concatenation of 'debian/' and
%ungoogled-revision.
(%arch-revision): Remove it.
(%ungoogled-origin) [origin] <uri>: Change to current project URL and update
hash.
(%debian-patches): Add bookworm/clang19.patch,
  bookworm/foreach.patch,
  disable/node-version-ck.patch,
  fixes/rust-clanglib.patch,
  trixie/adler1.patch,
  trixie/libxml-parseerr.patch.
  - Remove: fixes/clang-and-gcc11.patch and system/zlib.patch.
(arch-patch, %reverse-patches, %arch-patches): Remove them.
(%guix-patches): Add ungoogled-chromium-nullptr_t.patch;
Remove: ungoogled-chromium-ffmpeg-compat.patch and
  ungoogled-chromium-system-ffmpeg.patch;  Change indentation.
(%patches): Remove %arch-patches.  Change indentation.
(ungoogled-chromium-snippet): Remove reverse-patches function;
  replace_gn_files.py invokation: Remove references to ffmpeg, jsoncpp, libdrm,
  libevent and re2 which were causing build failures.
(lld-as-ld-wrapper-19): New variable.
(ungoogled-chromium) [origin] <uri>: Use the lite tarball; Update hash.
[arguments]<#:configure-flags>: Set optimize_webui,
  safe_browsing_use_unrar,
  enable_enterprise_companion,
  enable_glic,
  enable_iterator_debugging,
  enable_hangout_services_extension,
  angle_has_histograms,
  angle_build_tests,
  build_angle_perftests,
  use_qt5,
  use_qt6,
  is_cfi and
  v8_enable_backtrace to false;
  - Unset clang_warning_suppression_file;
  - Set symbol_level to zero
  - Set clang_version, rust_sysroot_absolute, rust_bindgen_root and
  rustc_version.
  - Remove use_system_libdrm, media_use_ffmpeg,
  media_use_libvpx,
  media_use_openh264,
  rtc_use_h264,
  rtc_link_pipewire,
  rtc_build_json,
  rtc_jsoncpp_root,
  rtc_build_libevent,
  rtc_build_libvpx,
  rtc_build_opus,
  rtc_build_libsrtp,
  rtc_build_ssl and related comments.
<#:phases> 'patch-stuff: Fix compiler-rt and clang libs location; Remove unknown
compiler flags for clang.  Remove code for minizip, valgrind, jsoncpp and vulkan.
'add-absolute-references: Remove code for vulkan and libudev.
'adjust-CPLUS_INCLUDE_PATH: New phase.
'prepare-build-environment: Set CXXFLAGS, LDFLAGS, CLANG_MVERS and
RUSTC_BOOTSTRAP to appropriate values.
'install: remove code for vulkan.
[native-inputs]: Add clang-19, clang-runtime-19, clang-toolchain-19,
lld-as-ld-wrapper-19, llvm-19, rust, rust-bindgen-cli and rust-cbindgen;
Remove clang-15 and lld-as-ld-wrapper-15.
[inputs]: Add libcxx and qtbase; Remove ffmpeg-4, jsoncpp, libevent, qtbase-5,
re2, vulkan-headers and vulkan-loader.
[home-page]: Set it to current project's page.
* gnu/packages/patches/ungoogled-chromium-ffmpeg-compat.patch: Delete it.
* gnu/packages/patches/ungoogled-chromium-system-ffmpeg.patch: Same.
* gnu/packages/patches/ungoogled-chromium-nullptr_t.patch: Add it.
* gnu/packages/patches/ungoogled-chromium-extension-search-path.patch: Adjust it.
* gnu/packages/patches/ungoogled-chromium-system-nspr.patch: Same.
* gnu/packages/patches/ungoogled-chromium-RUNPATH.patch: Same.
* gnu/local.mk (dist_patch_DATA): Register and unregister the above.

Change-Id: Idc5e90d82f2d6cc7e23cb093d66a6cadb19cecfb
This commit is contained in:
André Batista 2025-09-04 18:35:11 -03:00 committed by Leo Famulari
parent 47220369ca
commit be44a20ea7
No known key found for this signature in database
GPG key ID: 6AAC1963757F47FF
8 changed files with 277 additions and 274 deletions

View file

@ -2385,9 +2385,8 @@ dist_patch_DATA = \
%D%/packages/patches/uftrace-fix-tests.patch \ %D%/packages/patches/uftrace-fix-tests.patch \
%D%/packages/patches/ultrastar-deluxe-no-freesans.patch \ %D%/packages/patches/ultrastar-deluxe-no-freesans.patch \
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \ %D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
%D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch \ %D%/packages/patches/ungoogled-chromium-nullptr_t.patch \
%D%/packages/patches/ungoogled-chromium-RUNPATH.patch \ %D%/packages/patches/ungoogled-chromium-RUNPATH.patch \
%D%/packages/patches/ungoogled-chromium-system-ffmpeg.patch \
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \ %D%/packages/patches/ungoogled-chromium-system-nspr.patch \
%D%/packages/patches/unknown-horizons-python-3.8-distro.patch \ %D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
%D%/packages/patches/unknown-horizons-python-3.9.patch \ %D%/packages/patches/unknown-horizons-python-3.9.patch \

View file

@ -3,6 +3,8 @@
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2025 Andre Batista <nandre@riseup.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -46,7 +48,6 @@
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi) #:use-module (gnu packages libffi)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
@ -62,7 +63,8 @@
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages regex) #:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages serialization) #:use-module (gnu packages serialization)
#:use-module (gnu packages speech) #:use-module (gnu packages speech)
#:use-module (gnu packages valgrind) #:use-module (gnu packages valgrind)
@ -76,15 +78,10 @@
(define %preserved-third-party-files (define %preserved-third-party-files
'("base/third_party/cityhash" ;Expat '("base/third_party/cityhash" ;Expat
"base/third_party/double_conversion" ;BSD-3 "base/third_party/double_conversion" ;BSD-3
"base/third_party/dynamic_annotations" ;BSD-2
"base/third_party/icu" ;Unicode, X11-style "base/third_party/icu" ;Unicode, X11-style
"base/third_party/superfasthash" ;BSD-3 "base/third_party/superfasthash" ;BSD-3
"base/third_party/symbolize" ;BSD-3 "base/third_party/symbolize" ;BSD-3
"base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0
"base/third_party/xdg_user_dirs" ;Expat "base/third_party/xdg_user_dirs" ;Expat
"chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"courgette/third_party/bsdiff" ;BSD-2, BSD protection license
"courgette/third_party/divsufsort" ;Expat
"net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+ "net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"net/third_party/nss" ;MPL-2.0 "net/third_party/nss" ;MPL-2.0
"net/third_party/quiche" ;BSD-3 "net/third_party/quiche" ;BSD-3
@ -94,8 +91,8 @@
"third_party/angle/src/common/third_party/xxhash" ;BSD-2 "third_party/angle/src/common/third_party/xxhash" ;BSD-2
"third_party/angle/src/third_party/ceval" ;Expat "third_party/angle/src/third_party/ceval" ;Expat
"third_party/angle/src/third_party/libXNVCtrl" ;Expat "third_party/angle/src/third_party/libXNVCtrl" ;Expat
"third_party/angle/src/third_party/systeminfo" ;BSD-2
"third_party/angle/src/third_party/volk" ;Expat "third_party/angle/src/third_party/volk" ;Expat
"third_party/anonymous_tokens" ;ASL2.0
"third_party/apple_apsl" ;APSL2.0 "third_party/apple_apsl" ;APSL2.0
"third_party/axe-core" ;MPL2.0 "third_party/axe-core" ;MPL2.0
"third_party/bidimapper" ;ASL2.0 "third_party/bidimapper" ;ASL2.0
@ -122,8 +119,17 @@
"third_party/ced" ;BSD-3 "third_party/ced" ;BSD-3
"third_party/cld_3" ;ASL2.0 "third_party/cld_3" ;ASL2.0
"third_party/closure_compiler" ;ASL2.0 "third_party/closure_compiler" ;ASL2.0
"third_party/compiler-rt" ;ASL2.0
"third_party/compiler-rt/src/lib" ;ASL2.0
"third_party/compiler-rt/src/lib/builtins" ;ASL2.0
"third_party/content_analysis_sdk" ;BSD-3 "third_party/content_analysis_sdk" ;BSD-3
"third_party/cpuinfo" ;BSD-2 "third_party/cpuinfo" ;BSD-2
"third_party/crabbyavif" ;ASL2.0
"third_party/crabbyavif/src/sys/dav1d-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/aom-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/libgav1-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/libyuv-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/ndk-sys" ;ASL2.0
"third_party/crashpad" ;ASL2.0 "third_party/crashpad" ;ASL2.0
"third_party/crashpad/crashpad/third_party/lss" ;ASL2.0 "third_party/crashpad/crashpad/third_party/lss" ;ASL2.0
"third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib "third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
@ -135,9 +141,12 @@
"third_party/dawn/third_party/khronos" ;ASL2.0 "third_party/dawn/third_party/khronos" ;ASL2.0
"third_party/dawn/third_party/gn/webgpu-cts" ;BSD-3 "third_party/dawn/third_party/gn/webgpu-cts" ;BSD-3
"third_party/devtools-frontend" ;BSD-3 "third_party/devtools-frontend" ;BSD-3
"third_party/devtools-frontend/src/front_end"
"third_party/devtools-frontend/src/front_end/third_party"
"third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat "third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
"third_party/devtools-frontend/src/front_end/third_party\ "third_party/devtools-frontend/src/front_end/third_party\
/additional_readme_paths.json" ;no explicit license; trivial /additional_readme_paths.json" ;no explicit license; trivial
"third_party/devtools-frontend/src/front_end/third_party/json5" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0 "third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
"third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3 "third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
@ -146,25 +155,34 @@
"third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3 "third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0 "third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/lit" ;BSD-3 "third_party/devtools-frontend/src/front_end/third_party/lit" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/lodash-isequal" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/marked" ;Expat, BSD-3 "third_party/devtools-frontend/src/front_end/third_party/marked" ;Expat, BSD-3
"third_party/devtools-frontend/src/front_end/third_party/puppeteer" ;ASL2.0 "third_party/devtools-frontend/src/front_end/third_party/puppeteer" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party"
"third_party/devtools-frontend/src/front_end/third_party/puppeteer\ "third_party/devtools-frontend/src/front_end/third_party/puppeteer\
/package/lib/esm/third_party/mitt" ;Expat /package/lib/esm/third_party/mitt" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/mitt" ; Expat
"third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/parsel" ; Expat
"third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/rxjs" ; ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/puppeteer-replay" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party\ "third_party/devtools-frontend/src/front_end/third_party\
/vscode.web-custom-data" ;Expat /vscode.web-custom-data" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/third-party-web" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0 "third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0
"third_party/devtools-frontend/src/third_party/i18n" ;ASL2.0 "third_party/devtools-frontend/src/third_party/i18n" ;ASL2.0
"third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0 "third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
"third_party/devtools-frontend/src/third_party/typescript" ;ASL2.0
"third_party/distributed_point_functions" ;ASL2.0
"third_party/dom_distiller_js" ;BSD-3 "third_party/dom_distiller_js" ;BSD-3
"third_party/dragonbox" ;ASL2.0, Boost1.0
"third_party/d3" ;Non-copyleft
"third_party/eigen3" ;MPL2.0 "third_party/eigen3" ;MPL2.0
"third_party/emoji-segmenter" ;ASL2.0 "third_party/emoji-segmenter" ;ASL2.0
"third_party/farmhash" ;Expat "third_party/farmhash" ;Expat
"third_party/fast_float" ;ASL2.0, Boost1.0, Expat
"third_party/fdlibm" ;non-copyleft "third_party/fdlibm" ;non-copyleft
"third_party/ffmpeg" ; LGPL2.1+, GPL2.0+, Expat and BSD
"third_party/fft2d" ;non-copyleft "third_party/fft2d" ;non-copyleft
"third_party/flatbuffers" ;ASL2.0 "third_party/flatbuffers" ;ASL2.0
"third_party/fp16" ;Expat
"third_party/fusejs" ;ASL2.0 "third_party/fusejs" ;ASL2.0
"third_party/gemmlowp" ;ASL2.0 "third_party/gemmlowp" ;ASL2.0
"third_party/google_input_tools" ;ASL2.0 "third_party/google_input_tools" ;ASL2.0
@ -174,27 +192,29 @@
"third_party/harfbuzz-ng" ;Expat "third_party/harfbuzz-ng" ;Expat
"third_party/highway" ;ASL2.0 "third_party/highway" ;ASL2.0
"third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+ "third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
"third_party/iccjpeg" ;IJG "third_party/ink" ;ASL2.0
"third_party/ink_stroke_modeler" ;ASL2.0
"third_party/inspector_protocol" ;BSD-3 "third_party/inspector_protocol" ;BSD-3
"third_party/ipcz" ;BSD-3 "third_party/ipcz" ;BSD-3
"third_party/jinja2" ;BSD-3 "third_party/jinja2" ;BSD-3
"third_party/jstemplate" ;ASL2.0 "third_party/jsoncpp" ; Public domain, Expat
"third_party/khronos" ;Expat, SGI "third_party/khronos" ;Expat, SGI
"third_party/lens_server_proto" ;Non-copyleft
"third_party/leveldatabase" ;BSD-3 "third_party/leveldatabase" ;BSD-3
"third_party/libavif" ;BSD-2
"third_party/libaddressinput" ;ASL2.0 "third_party/libaddressinput" ;ASL2.0
"third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0" "third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
"third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3 "third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3
"third_party/libaom/source/libaom/third_party/SVT-AV1" ;BSD-3 "third_party/libaom/source/libaom/third_party/SVT-AV1" ;BSD-3
"third_party/libaom/source/libaom/third_party/vector" ;Expat "third_party/libaom/source/libaom/third_party/vector" ;Expat
"third_party/libaom/source/libaom/third_party/x86inc" ;ISC "third_party/libaom/source/libaom/third_party/x86inc" ;ISC
"third_party/libdrm" ; Expat
"third_party/libgav1" ;ASL2.0 "third_party/libgav1" ;ASL2.0
"third_party/libjingle_xmpp" ;BSD-3 "third_party/libjingle_xmpp" ;BSD-3
"third_party/libphonenumber" ;ASL2.0 "third_party/libphonenumber" ;ASL2.0
"third_party/libsecret" ;LGPL2.1+ "third_party/libsecret" ;LGPL2.1+
"third_party/libsrtp" ;BSD-3 "third_party/libsrtp" ;BSD-3
"third_party/libsync" ;ASL2.0 "third_party/libsync" ;ASL2.0
"third_party/libudev" ;LGPL2.1+ "third_party/libtess2" ;SGIFreeB2.0
"third_party/liburlpattern" ;Expat "third_party/liburlpattern" ;Expat
"third_party/libva_protected_content" ;Expat "third_party/libva_protected_content" ;Expat
@ -206,14 +226,17 @@
"third_party/libxml/chromium" ;BSD-3 "third_party/libxml/chromium" ;BSD-3
"third_party/libyuv" ;BSD-3 "third_party/libyuv" ;BSD-3
"third_party/libzip" ;BSD-3 "third_party/libzip" ;BSD-3
"third_party/lit" ;BSD-3
"third_party/lit/v3_0" ;BSD-3
"third_party/lottie" ;Expat "third_party/lottie" ;Expat
"third_party/lss" ;BSD-3 "third_party/lss" ;BSD-3
"third_party/lzma_sdk" ;public domain
"third_party/mako" ;Expat "third_party/mako" ;Expat
"third_party/markupsafe" ;BSD-3 "third_party/markupsafe" ;BSD-3
"third_party/material_color_utilities" ;ASL2.0 "third_party/material_color_utilities" ;ASL2.0
"third_party/mesa_headers" ;Expat, SGI
"third_party/metrics_proto" ;BSD-3 "third_party/metrics_proto" ;BSD-3
"third_party/minigbm" ;BSD-3 "third_party/minigbm" ;BSD-3
"third_party/ml_dtypes" ;ASL2.0
"third_party/modp_b64" ;BSD-3 "third_party/modp_b64" ;BSD-3
"third_party/nasm" ;BSD-2 "third_party/nasm" ;BSD-2
"third_party/nearby" ;ASL2.0 "third_party/nearby" ;ASL2.0
@ -222,14 +245,11 @@
"third_party/one_euro_filter" ;BSD-3 "third_party/one_euro_filter" ;BSD-3
"third_party/openscreen" ;BSD-3 "third_party/openscreen" ;BSD-3
"third_party/openscreen/src/third_party/tinycbor" ;Expat "third_party/openscreen/src/third_party/tinycbor" ;Expat
"third_party/openscreen/src/third_party/mozilla" ;MPL1.1/GPL2+/LGPL2.1+, BSD-3
"third_party/ots" ;BSD-3 "third_party/ots" ;BSD-3
"third_party/pdfium" ;BSD-3 "third_party/pdfium" ;BSD-3
"third_party/pdfium/third_party/agg23" ;Expat "third_party/pdfium/third_party/agg23" ;Expat
"third_party/pdfium/third_party/base" ;BSD-3
"third_party/pdfium/third_party/bigint" ;Public domain, BSD-3 "third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
"third_party/pdfium/third_party/libtiff" ;non-copyleft "third_party/pdfium/third_party/libtiff" ;non-copyleft
"third_party/pdfium/third_party/skia_shared" ;BSD-3
"third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType "third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
"third_party/perfetto" ;ASL2.0 "third_party/perfetto" ;ASL2.0
"third_party/perfetto/protos/third_party/chromium" ;BSD-3 "third_party/perfetto/protos/third_party/chromium" ;BSD-3
@ -239,15 +259,23 @@
"third_party/private_membership" ;ASL2.0 "third_party/private_membership" ;ASL2.0
"third_party/private-join-and-compute" ;ASL2.0 "third_party/private-join-and-compute" ;ASL2.0
"third_party/protobuf" ;BSD-3 "third_party/protobuf" ;BSD-3
"third_party/protobuf/third_party/utf8_range" ; Expat
"third_party/pthreadpool" ;BSD-2 "third_party/pthreadpool" ;BSD-2
"third_party/puffin" ;Non-copyleft
"third_party/pyjson5" ;ASL2.0 "third_party/pyjson5" ;ASL2.0
"third_party/qcms" ;Expat "third_party/rapidhash" ;BSD-2
"third_party/readability" ;ASL2.0
"third_party/re2" ;Non-copyleft
"third_party/rnnoise" ;BSD-3 "third_party/rnnoise" ;BSD-3
"third_party/rust" ; Expat
"third_party/ruy" ;ASL2.0 "third_party/ruy" ;ASL2.0
"third_party/s2cellid" ;ASL2.0 "third_party/s2cellid" ;ASL2.0
"third_party/search_engines_data" ;BSD-3
"third_party/securemessage" ;ASL2.0 "third_party/securemessage" ;ASL2.0
"third_party/selenium-atoms" ;ASL2.0 "third_party/selenium-atoms" ;ASL2.0
"third_party/shell-encryption" ;ASL2.0 "third_party/shell-encryption" ;ASL2.0
"third_party/simdutf" ;Non-copyleft
"third_party/simplejson" ; Non-copyleft
"third_party/skia" ;BSD-3 "third_party/skia" ;BSD-3
"third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat "third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat
"third_party/smhasher" ;Expat, public domain "third_party/smhasher" ;Expat, public domain
@ -257,6 +285,8 @@
"third_party/snappy" ;BSD-3 "third_party/snappy" ;BSD-3
"third_party/speech-dispatcher" ;GPL2+ "third_party/speech-dispatcher" ;GPL2+
"third_party/spirv-headers" ;ASL2.0
"third_party/spirv-tools" ;ASL2.0
"third_party/sqlite" ;Public domain "third_party/sqlite" ;Public domain
"third_party/swiftshader" ;ASL2.0 "third_party/swiftshader" ;ASL2.0
"third_party/swiftshader/third_party/astc-encoder" ;ASL2.0 "third_party/swiftshader/third_party/astc-encoder" ;ASL2.0
@ -267,17 +297,34 @@
"third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style "third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style
"third_party/swiftshader/third_party/SPIRV-Tools" ;ASL2.0 "third_party/swiftshader/third_party/SPIRV-Tools" ;ASL2.0
"third_party/tensorflow-text" ;ASL2.0 "third_party/tensorflow-text" ;ASL2.0
"third_party/tensorflow_models" ;ASL2.0
"third_party/tflite" ;ASL2.0 "third_party/tflite" ;ASL2.0
"third_party/tflite/src/third_party/eigen3" ;MPL2.0
"third_party/tflite/src/third_party/fft2d" ;ASL2.0 "third_party/tflite/src/third_party/fft2d" ;ASL2.0
"third_party/tflite/src/third_party/xla" ;ASL2.0
"third_party/tflite/src/third_party/xla/xla" ;ASL2.0
"third_party/tflite/src/third_party/xla/xla/tsl/framework" ;ASL2.0
"third_party/tflite/src/third_party/xla/xla/tsl/lib/random" ;ASL2.0
"third_party/tflite/src/third_party/xla/xla/tsl/platform" ;ASL2.0
"third_party/tflite/src/third_party/xla/xla/tsl/protobuf" ;ASL2.0
"third_party/tflite/src/third_party/xla/xla/tsl/util" ;ASL2.0
"third_party/tflite/src/third_party/xla/third_party/tsl" ;ASL2.0
"third_party/tflite/src/third_party/xla/third_party/tsl/tsl" ;ASL2.0
"third_party/tflite/src/third_party/xla/third_party/tsl/tsl/platform" ;ASL2.0
"third_party/tflite/src/third_party/xla/third_party/tsl/tsl/profiler" ;ASL2.0
"third_party/ukey2" ;ASL2.0 "third_party/ukey2" ;ASL2.0
"third_party/ungoogled-chromium" ;BSD-3
"third_party/usb_ids" ;BSD-3 "third_party/usb_ids" ;BSD-3
"third_party/utf" ;Expat "third_party/utf" ;Expat
"third_party/vulkan-deps" ;ASL2.0, BSD-3, Expat "third_party/vulkan-deps" ;ASL2.0, BSD-3, Expat
"third_party/vulkan-headers" ;ASL2.0
"third_party/vulkan-loader" ;ASL2.0
"third_party/vulkan_memory_allocator" ;Expat "third_party/vulkan_memory_allocator" ;Expat
"third_party/vulkan-tools" ;ASL2.0
"third_party/vulkan-validation-layers" ;ASL2.0
"third_party/vulkan-utility-libraries" ;ASL2.0
"third_party/wasm_tts_engine" ; ASL2.0, Non-copyleft
"third_party/wayland" ;BSD-3, Expat "third_party/wayland" ;BSD-3, Expat
"third_party/wayland-protocols" ;Expat "third_party/wayland-protocols" ;Expat
"third_party/web-animations-js" ;ASL2.0
"third_party/webdriver" ;ASL2.0 "third_party/webdriver" ;ASL2.0
"third_party/webgpu-cts" ;BSD-3 "third_party/webgpu-cts" ;BSD-3
"third_party/webrtc" ;BSD-3 "third_party/webrtc" ;BSD-3
@ -286,9 +333,7 @@
"third_party/webrtc/modules/third_party/fft" ;Non-copyleft "third_party/webrtc/modules/third_party/fft" ;Non-copyleft
"third_party/webrtc/modules/third_party/g711" ;Public domain "third_party/webrtc/modules/third_party/g711" ;Public domain
"third_party/webrtc/modules/third_party/g722" ;Public domain "third_party/webrtc/modules/third_party/g722" ;Public domain
"third_party/webrtc/rtc_base/third_party/base64" ;Non-copyleft
"third_party/webrtc/rtc_base/third_party/sigslot" ;Public domain "third_party/webrtc/rtc_base/third_party/sigslot" ;Public domain
"third_party/widevine/cdm/widevine_cdm_version.h" ;BSD-3
"third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3 "third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
"third_party/woff2" ;ASL2.0 "third_party/woff2" ;ASL2.0
"third_party/wuffs" ;ASL2.0 "third_party/wuffs" ;ASL2.0
@ -303,14 +348,18 @@
"third_party/x11proto/keysymdef.h" ;X11 "third_party/x11proto/keysymdef.h" ;X11
"third_party/zlib/google" ;BSD-3 "third_party/zlib/google" ;BSD-3
"third_party/zstd" ;BSD
"third_party/zxcvbn-cpp" ;Expat "third_party/zxcvbn-cpp" ;Expat
"url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+ "url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
"v8/src/third_party/siphash" ;Public domain
"v8/src/third_party/utf8-decoder" ;Expat
"v8/src/third_party/valgrind" ;BSD-4
"v8/third_party/glibc/src/sysdeps/ieee754/dbl-64" ;LGPL2.1+ "v8/third_party/glibc/src/sysdeps/ieee754/dbl-64" ;LGPL2.1+
"v8/third_party/inspector_protocol" ;BSD-3 "v8/third_party/inspector_protocol" ;BSD-3
"v8/third_party/v8/builtins")) ;PSFL "v8/third_party/rapidhash-v8" ;BSD-2
"v8/third_party/siphash" ;CC0 1.0
"v8/third_party/utf8-decoder" ;Non-copyleft
"v8/third_party/valgrind" ;BSD
"v8/third_party/v8/builtins" ;PSFL2.0
"v8/third_party/v8/codegen" ;Expat
))
(define %blacklisted-files (define %blacklisted-files
;; 'third_party/blink/perf_tests/resources/svg/HarveyRayner.svg' carries a ;; 'third_party/blink/perf_tests/resources/svg/HarveyRayner.svg' carries a
@ -318,20 +367,19 @@
;; run the Blink performance tests, just remove everything to save ~70MiB. ;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests")) '("third_party/blink/perf_tests"))
(define %chromium-version "112.0.5615.165") (define %chromium-version "139.0.7258.154")
(define %ungoogled-revision (string-append %chromium-version "-1")) (define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision "debian/110.0.5481.177-1") (define %debian-revision (string-append "debian/" %ungoogled-revision))
(define %arch-revision "a0b214b3bdfbc7ee3d9004a70494a2b9e3da2c80")
(define %ungoogled-origin (define %ungoogled-origin
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium") (uri (git-reference (url "https://github.com/ungoogled-software/ungoogled-chromium")
(commit %ungoogled-revision))) (commit %ungoogled-revision)))
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256 (sha256
(base32 (base32
"1q2870z4k2hkn3jh24xc0xiadd1sxc4apn1jz740yzlwsi6jmcgw")))) "12z1qqwqkxd34xwkfc6hc873rsj545zg4rkdsvr4nk4w9898fsqq"))))
(define %debian-origin (define %debian-origin
(origin (origin
@ -344,7 +392,7 @@
((_ version) version)))) ((_ version) version))))
(sha256 (sha256
(base32 (base32
"02cvdrr3s3v7v107284n8w9zpdmdl42rgjjvqjdjxb1gyk546kvg")))) "0zs7z0kk5ni01qgc85lwr045pmgn5sghp15scp7x79i8i8a5rfcq"))))
(define (origin-file origin file) (define (origin-file origin file)
(computed-file (computed-file
@ -357,49 +405,36 @@
(define %debian-patches (define %debian-patches
(map debian-patch (map debian-patch
'("fixes/clang-and-gcc11.patch" '("bookworm/clang19.patch"
"system/zlib.patch" "bookworm/foreach.patch"
"system/openjpeg.patch"))) "disable/node-version-ck.patch"
"fixes/rust-clanglib.patch"
(define (arch-patch revision name hash) "system/openjpeg.patch"
(origin ;; adler2 is not part of our rust toolchain, check on next version.
(method url-fetch) "trixie/adler1.patch"
(uri (string-append "https://raw.githubusercontent.com/archlinux" "trixie/libxml-parseerr.patch")))
"/svntogit-packages/" revision "/trunk/" name))
(sha256 (base32 hash))))
(define %reverse-patches
(list
;; These patches revert changes that require an unreleased ffmpeg.
(arch-patch %arch-revision "REVERT-roll-src-third_party-ffmpeg-m102.patch"
"0i7crn6fcwq09kd6a4smqnffaldyv61lmv2p0drcnpfrwalmkprh")
(arch-patch %arch-revision "REVERT-roll-src-third_party-ffmpeg-m106.patch"
"0li10cvxnppmmmsc7w77b1s7z02s5bzd39zsal9x768708fx64jc")))
(define %arch-patches
(list
(arch-patch %arch-revision "disable-GlobalMediaControlsCastStartStop.patch"
"00m361ka38d60zpbss7qnfw80vcwnip2pjcz3wf46wd2sqi1nfvz")))
(define %guix-patches (define %guix-patches
(list (local-file (list (local-file
(assume-valid-file-name (assume-valid-file-name
(search-patch "ungoogled-chromium-extension-search-path.patch"))) (search-patch
"ungoogled-chromium-extension-search-path.patch")))
(local-file
(assume-valid-file-name
(search-patch
"ungoogled-chromium-nullptr_t.patch")))
(local-file (local-file
(assume-valid-file-name (assume-valid-file-name
(search-patch "ungoogled-chromium-RUNPATH.patch"))) (search-patch
"ungoogled-chromium-RUNPATH.patch")))
(local-file (local-file
(assume-valid-file-name (assume-valid-file-name
(search-patch "ungoogled-chromium-ffmpeg-compat.patch"))) (search-patch
(local-file "ungoogled-chromium-system-nspr.patch")))))
(assume-valid-file-name
(search-patch "ungoogled-chromium-system-ffmpeg.patch")))
(local-file
(assume-valid-file-name
(search-patch "ungoogled-chromium-system-nspr.patch")))))
(define %patches (define %patches
(append %debian-patches %arch-patches %guix-patches)) (append %debian-patches
%guix-patches))
;; This is a source 'snippet' that does the following: ;; This is a source 'snippet' that does the following:
;; *) Applies various patches for unbundling purposes and libstdc++ compatibility. ;; *) Applies various patches for unbundling purposes and libstdc++ compatibility.
@ -424,12 +459,6 @@
patch "--no-backup-if-mismatch")) patch "--no-backup-if-mismatch"))
'#+%patches) '#+%patches)
;; These patches are "reversed", i.e. their changes should be undone.
(for-each (lambda (patch)
(invoke "patch" "-Rp1" "-F3" "--force" "--input"
patch "--no-backup-if-mismatch"))
'#+%reverse-patches)
(with-directory-excursion #+%ungoogled-origin (with-directory-excursion #+%ungoogled-origin
(format #t "Ungooglifying...~%") (format #t "Ungooglifying...~%")
(force-output) (force-output)
@ -463,9 +492,9 @@
(("#if defined\\(OFFICIAL_BUILD\\)") (("#if defined\\(OFFICIAL_BUILD\\)")
"#if 0")) "#if 0"))
(invoke "python" "build/linux/unbundle/replace_gn_files.py" (invoke "python" "build/linux/unbundle/replace_gn_files.py"
"--system-libraries" "ffmpeg" "flac" "fontconfig" "freetype" "--system-libraries" "flac" "fontconfig" "freetype"
"harfbuzz-ng" "icu" "jsoncpp" "libdrm" "libevent" "libjpeg" "harfbuzz-ng" "icu" "libjpeg"
"libpng" "libwebp" "libxml" "libxslt" "openh264" "opus" "re2" "libpng" "libwebp" "libxml" "libxslt" "openh264" "opus"
"zlib"))))) "zlib")))))
(define opus+custom (define opus+custom
@ -480,6 +509,9 @@
`(cons "--enable-custom-modes" `(cons "--enable-custom-modes"
,flags)))))) ,flags))))))
(define lld-as-ld-wrapper-19
(make-lld-wrapper lld-19 #:lld-as-ld? #t))
(define-public ungoogled-chromium (define-public ungoogled-chromium
(package (package
(name "ungoogled-chromium") (name "ungoogled-chromium")
@ -489,10 +521,10 @@
(method url-fetch) (method url-fetch)
(uri (string-append "https://commondatastorage.googleapis.com" (uri (string-append "https://commondatastorage.googleapis.com"
"/chromium-browser-official/chromium-" "/chromium-browser-official/chromium-"
%chromium-version ".tar.xz")) %chromium-version "-lite.tar.xz"))
(sha256 (sha256
(base32 (base32
"1zbrgkzcb211y1mvi9g35421dnp5bskkczwnpygzja7lm7z6530n")) "0bgnay6g2qbl6jxzr7kzl4nf0k2a27k0h7nhcj1if9plm611jzn9"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet)))) (snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -513,7 +545,9 @@
;; a developer build. ;; a developer build.
"is_official_build=true" "is_official_build=true"
"clang_use_chrome_plugins=false" "clang_use_chrome_plugins=false"
"use_custom_libcxx=false" "use_custom_libcxx=false" ; support for this is deprecated and to be removed.
"optimize_webui=false"
"safe_browsing_use_unrar=false"
"chrome_pgo_phase=0" "chrome_pgo_phase=0"
"use_sysroot=false" "use_sysroot=false"
"goma_dir=\"\"" "goma_dir=\"\""
@ -529,6 +563,10 @@
"enable_reporting=false" "enable_reporting=false"
"enable_service_discovery=false" "enable_service_discovery=false"
"enable_vr=false" "enable_vr=false"
"enable_enterprise_companion=false"
"enable_glic=false"
"enable_iterator_debugging=false"
"enable_hangout_services_extension=false"
"enable_widevine=false" "enable_widevine=false"
;; Disable type-checking for the Web UI to avoid a Java dependency. ;; Disable type-checking for the Web UI to avoid a Java dependency.
"enable_js_type_check=false" "enable_js_type_check=false"
@ -540,6 +578,19 @@
;; Don't bother building Dawn tests. ;; Don't bother building Dawn tests.
"build_dawn_tests=false" "build_dawn_tests=false"
"angle_has_histograms=false"
"angle_build_tests=false"
"build_angle_perftests=false"
"clang_warning_suppression_file=\"\""
"use_qt5=false"
"use_qt6=false"
"is_cfi=false"
"symbol_level=0"
"v8_enable_backtrace=false"
;; Define a custom toolchain that simply looks up CC, AR and ;; Define a custom toolchain that simply looks up CC, AR and
;; friends from the environment. ;; friends from the environment.
"custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" "custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
@ -550,11 +601,29 @@
"/bin/clang"))) "/bin/clang")))
"\"") "\"")
(string-append "clang_version="
#$(version-major (package-version clang-19)))
(string-append "rust_sysroot_absolute=\""
(dirname (dirname (search-input-file %build-inputs
"/bin/rustc")))
"\"")
(string-append "rust_bindgen_root=\""
(dirname (dirname (search-input-file %build-inputs
"/bin/bindgen")))
"\"")
(string-append "rustc_version=\"rustc "
#$(package-version rust)
;; These are 'don't care', but chromium's build parses
;; the whole string as if returned from 'rustc --version'
;; invokation and fails if it's just the version number.
" (f6e511eec 2024-10-15) (built from a source tarball)\"")
;; Prefer system libraries. ;; Prefer system libraries.
"use_system_freetype=true" "use_system_freetype=true"
"use_system_harfbuzz=true" "use_system_harfbuzz=true"
"use_system_lcms2=true" "use_system_lcms2=true"
"use_system_libdrm=true"
"use_system_libffi=true" "use_system_libffi=true"
"use_system_libjpeg=true" "use_system_libjpeg=true"
"use_system_libopenjpeg2=true" "use_system_libopenjpeg2=true"
@ -566,68 +635,37 @@
"link_pulseaudio=true" "link_pulseaudio=true"
"icu_use_data_file=false" "icu_use_data_file=false"
;; FIXME: Using system protobuf with "is_official_build" causes an
;; invalid opcode and "protoc-gen-plugin: Plugin killed by signal 4".
;;"perfetto_use_system_protobuf=true"
;; VA-API acceleration is currently only supported on x86_64-linux. ;; VA-API acceleration is currently only supported on x86_64-linux.
#$@(if (string-prefix? "x86_64" (or (%current-target-system) #$@(if (string-prefix? "x86_64" (or (%current-target-system)
(%current-system))) (%current-system)))
'("use_vaapi=true") '("use_vaapi=true")
'()) '())
"media_use_ffmpeg=true"
"media_use_libvpx=true"
"media_use_openh264=true"
;; Do not artificially restrict formats supported by system ffmpeg. ;; Do not artificially restrict formats supported by system ffmpeg.
"proprietary_codecs=true" "proprietary_codecs=true"
"ffmpeg_branding=\"Chrome\"" "ffmpeg_branding=\"Chrome\""
;; WebRTC stuff. "rtc_use_pipewire=true")
"rtc_use_h264=true"
"rtc_use_pipewire=true"
"rtc_link_pipewire=true"
;; Don't use bundled sources.
"rtc_build_json=false"
(string-append "rtc_jsoncpp_root=\""
(search-input-directory %build-inputs
"include/json")
"\"")
"rtc_build_libevent=false"
;; XXX: Use the bundled libvpx for WebRTC because unbundling
;; currently fails (see above), and the versions must match.
"rtc_build_libvpx=true"
"rtc_build_opus=false"
"rtc_build_libsrtp=true" ;FIXME: fails to find headers
"rtc_build_ssl=true") ;XXX: requires BoringSSL
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-stuff (add-after 'unpack 'patch-stuff
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs native-inputs #:allow-other-keys)
(let* ((libopenjp2 (search-input-file inputs "lib/libopenjp2.so")) (let* ((libopenjp2 (search-input-file inputs "lib/libopenjp2.so"))
(openjpeg (dirname (dirname libopenjp2)))) (openjpeg (dirname (dirname libopenjp2)))
(compiler-rt-path (dirname
(dirname
(search-input-file (or native-inputs inputs)
"/bin/hwasan_symbolize")))))
;; This works on top of debian's 'rust-clanglib.patch'.
(substitute* "build/config/clang/BUILD.gn"
(("\\$clang_base_path/lib/clang/\\$clang_version")
compiler-rt-path))
(substitute* "third_party/pdfium/BUILD.gn" (substitute* "third_party/pdfium/BUILD.gn"
;; This include path is added by Debians openjpeg patch. ;; This include path is added by Debians openjpeg patch.
(("/usr/include/openjpeg-") (("/usr/include/openjpeg-")
(string-append openjpeg "/include/openjpeg-"))) (string-append openjpeg "/include/openjpeg-")))
;; Adjust minizip header inclusions.
(substitute* (find-files "third_party/tflite_support\
/src/tensorflow_lite_support/metadata/cc")
(("third_party/zlib/contrib/minizip/")
"minizip/"))
(substitute*
'("base/process/launch_posix.cc"
"base/third_party/dynamic_annotations/dynamic_annotations.c"
"sandbox/linux/seccomp-bpf/sandbox_bpf.cc"
"sandbox/linux/services/credentials.cc"
"sandbox/linux/services/namespace_utils.cc"
"sandbox/linux/services/syscall_wrappers.cc"
"sandbox/linux/syscall_broker/broker_host.cc")
(("include \"base/third_party/valgrind/") "include \"valgrind/"))
(substitute* (substitute*
(append (append
'("media/audio/audio_opus_encoder.h") '("media/audio/audio_opus_encoder.h")
@ -648,10 +686,6 @@
(("\"third_party/opus/src/include/([a-z_-]+\\.h)\"" _ header) (("\"third_party/opus/src/include/([a-z_-]+\\.h)\"" _ header)
(string-append "<opus/" header ">"))) (string-append "<opus/" header ">")))
(substitute* "third_party/webrtc/rtc_base/strings/json.h"
(("#include \"third_party/jsoncpp/")
"#include \"json/"))
;; Many files try to include ICU headers from "third_party/icu/...". ;; Many files try to include ICU headers from "third_party/icu/...".
;; Remove the "third_party/" prefix to use system headers instead. ;; Remove the "third_party/" prefix to use system headers instead.
(substitute* (find-files "chrome" "\\.cc$") (substitute* (find-files "chrome" "\\.cc$")
@ -673,22 +707,20 @@
(("include \"third_party/curl") (("include \"third_party/curl")
"include \"curl")) "include \"curl"))
(substitute* '("components/viz/common/gpu/vulkan_context_provider.h" ;; Unknown flags as of clang-19, can be removed when building with
"components/viz/common/resources/resource_format_utils.h" ;; newer clang.
"gpu/config/gpu_util.cc") (substitute* "build/config/compiler/BUILD.gn"
(("third_party/vulkan_headers/include/") "")) (("-gsimple-template-names") ""))
(substitute* "third_party/skia/include/private/gpu/vk/SkiaVulkan.h" ;; Clang libs are not under bindgen root directory.
(("include/third_party/vulkan/") ""))))) (substitute* "build/rust/rust_bindgen_generator.gni"
(("(_libclang_path = )rust_bindgen_root" _ libclang)
(string-append libclang "clang_base_path"))))))
(add-after 'patch-stuff 'add-absolute-references (add-after 'patch-stuff 'add-absolute-references
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((cups-config (search-input-file inputs "/bin/cups-config")) (let ((cups-config (search-input-file inputs "/bin/cups-config"))
(libnssckbi.so (search-input-file inputs (libnssckbi.so (search-input-file inputs
"/lib/nss/libnssckbi.so")) "/lib/nss/libnssckbi.so"))
(libudev.so.1 (search-input-file inputs "/lib/libudev.so.1"))
(libvulkan.so.1 (search-input-file inputs
"/lib/libvulkan.so.1"))
(icd.d (search-input-directory inputs "share/vulkan/icd.d"))
(gtk-libs '("libgio-2.0.so.0" (gtk-libs '("libgio-2.0.so.0"
"libgdk_pixbuf-2.0.so.0" "libgdk_pixbuf-2.0.so.0"
"libgdk-3.so.0" "libgdk-3.so.0"
@ -702,19 +734,17 @@
(("cups_config =.*") (("cups_config =.*")
(string-append "cups_config = '" cups-config "'\n"))) (string-append "cups_config = '" cups-config "'\n")))
(substitute* "crypto/nss_util.cc" (substitute* "crypto/nss_util.cc"
(("libnssckbi\\.so") libnssckbi.so)) (("libnssckbi\\.so") libnssckbi.so)))))
(substitute* "device/udev_linux/udev1_loader.cc" (add-after 'add-absolute-references 'adjust-CPLUS_INCLUDE_PATH
(("libudev\\.so\\.1") libudev.so.1)) ;; The libcxx include/c++/v1 directory is not exposed via
;; CPLUS_INCLUDE_PATH by default, causing errors like
(substitute* "content/gpu/gpu_sandbox_hook_linux.cc" ;; "fatal error: 'format' file not found".
(("/usr/share/vulkan/icd\\.d") icd.d)) (lambda* (#:key native-inputs inputs #:allow-other-keys)
(setenv "CPLUS_INCLUDE_PATH"
;; Add the libvulkan directory to dawn built-in search paths. (string-append
(substitute* "third_party/dawn/src/dawn/native/Instance.cpp" (search-input-directory inputs
(("^([[:blank:]]+)mRuntimeSearchPaths\\.push_back\\(\"\"\\);" "/include/c++/v1")
all indent) ":" (getenv "CPLUS_INCLUDE_PATH")))))
(string-append indent "mRuntimeSearchPaths.push_back(\""
(dirname libvulkan.so.1) "/\");\n" all))))))
(add-before 'configure 'prepare-build-environment (add-before 'configure 'prepare-build-environment
(lambda* (#:key native-inputs inputs #:allow-other-keys) (lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((node (search-input-file (or native-inputs inputs) (let ((node (search-input-file (or native-inputs inputs)
@ -723,6 +753,22 @@
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm") (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
(setenv "CC" "clang") (setenv "CXX" "clang++") (setenv "CC" "clang") (setenv "CXX" "clang++")
(setenv "CXXFLAGS"
(string-append " -Wno-conversion"
" -Wno-unused-function"
" -Wno-unused-variable"
" -Wno-unused-private-field"
" -Wno-deprecated-declarations"
" -Wno-unknown-pragmas"
" -fno-delete-null-pointer-checks"
" -stdlib=libc++"))
(setenv "LDFLAGS"
(string-append " -stdlib=libc++"
" -Wl,--stats"))
(setenv "CLANG_MVERS" #$(version-major
(package-version clang-19)))
(setenv "RUSTC_BOOTSTRAP" "1")
;; TODO: pre-compile instead. Avoids a race condition. ;; TODO: pre-compile instead. Avoids a race condition.
(setenv "PYTHONDONTWRITEBYTECODE" "1") (setenv "PYTHONDONTWRITEBYTECODE" "1")
@ -797,7 +843,6 @@
(gtk (dirname (dirname (gtk (dirname (dirname
(search-input-file inputs "lib/libgtk-3.so")))) (search-input-file inputs "lib/libgtk-3.so"))))
(mesa (dirname (search-input-file inputs "lib/libGL.so"))) (mesa (dirname (search-input-file inputs "lib/libGL.so")))
(vulkan (dirname (search-input-file inputs "lib/libvulkan.so")))
(xdg-utils (dirname (search-input-file inputs "bin/xdg-open")))) (xdg-utils (dirname (search-input-file inputs "bin/xdg-open"))))
(substitute* '("chrome/app/resources/manpage.1.in" (substitute* '("chrome/app/resources/manpage.1.in"
@ -838,7 +883,7 @@
;; Provide libGL and libvulkan without patching all references. ;; Provide libGL and libvulkan without patching all references.
;; XXX: How to add on RUNPATH instead of this hack? ;; XXX: How to add on RUNPATH instead of this hack?
`("LD_LIBRARY_PATH" ":" prefix `("LD_LIBRARY_PATH" ":" prefix
(,(string-append mesa ":" vulkan))) (,mesa))
;; Ensure xdg-open et al. is found. ;; Ensure xdg-open et al. is found.
`("PATH" ":" prefix (,xdg-utils)))) `("PATH" ":" prefix (,xdg-utils))))
@ -853,10 +898,13 @@
'("24" "48" "64" "128" "256"))))))))) '("24" "48" "64" "128" "256")))))))))
(native-inputs (native-inputs
(list bison (list bison
clang-15 clang-19
clang-runtime-19
clang-toolchain-19
gn gn
gperf gperf
lld-as-ld-wrapper-15 lld-as-ld-wrapper-19
llvm-19
ninja ninja
node-lts node-lts
pkg-config pkg-config
@ -865,6 +913,9 @@
python-html5lib python-html5lib
python-pyyaml python-pyyaml
python-wrapper python-wrapper
rust
rust-bindgen-cli
rust-cbindgen
wayland)) wayland))
(inputs (inputs
(list alsa-lib (list alsa-lib
@ -875,7 +926,6 @@
dbus dbus
expat expat
flac flac
ffmpeg-4
fontconfig fontconfig
fp16 fp16
freetype freetype
@ -885,9 +935,8 @@
gtk+ gtk+
harfbuzz harfbuzz
icu4c icu4c
jsoncpp
lcms lcms
libevent libcxx
libffi libffi
libjpeg-turbo libjpeg-turbo
libpng libpng
@ -919,14 +968,11 @@
pciutils pciutils
pipewire pipewire
pulseaudio pulseaudio
qtbase-5 qtbase
re2
snappy snappy
speech-dispatcher speech-dispatcher
eudev eudev
valgrind/pinned valgrind/pinned
vulkan-headers
vulkan-loader
wayland wayland
xdg-utils)) xdg-utils))
(native-search-paths (native-search-paths
@ -942,7 +988,7 @@
(max-silent-time . 7200) (max-silent-time . 7200)
(cpe-name . "chrome"))) (cpe-name . "chrome")))
(home-page "https://github.com/Eloston/ungoogled-chromium") (home-page "https://ungoogled-software.github.io/")
(description (description
"Ungoogled-Chromium is the Chromium web browser, with some functionality "Ungoogled-Chromium is the Chromium web browser, with some functionality
disabled in order to protect the users privacy. This package also includes disabled in order to protect the users privacy. This package also includes

View file

@ -4,7 +4,7 @@ search path (and the 'validate-runpath' phase can do its work).
diff --git a/build/config/gcc/BUILD.gn b/build/config/gcc/BUILD.gn diff --git a/build/config/gcc/BUILD.gn b/build/config/gcc/BUILD.gn
--- a/build/config/gcc/BUILD.gn --- a/build/config/gcc/BUILD.gn
+++ b/build/config/gcc/BUILD.gn +++ b/build/config/gcc/BUILD.gn
@@ -99,7 +99,14 @@ config("executable_config") { @@ -101,7 +101,14 @@
] ]
} }

View file

@ -3,22 +3,22 @@ Look for extensions in $CHROMIUM_EXTENSION_DIRECTORY instead of
--- a/chrome/common/chrome_paths.cc --- a/chrome/common/chrome_paths.cc
+++ b/chrome/common/chrome_paths.cc +++ b/chrome/common/chrome_paths.cc
@@ -4,6 +4,7 @@ @@ -6,6 +6,7 @@
#include "chrome/common/chrome_paths.h" #include <optional>
+#include "base/environment.h" +#include "base/environment.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h" #include "base/files/file_util.h"
#include "base/logging.h" #include "base/no_destructor.h"
#include "base/native_library.h" @@ -522,7 +523,13 @@
@@ -511,7 +512,13 @@
#endif #endif
#if defined(OS_LINUX) || defined(OS_CHROMEOS) #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
case chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS: { case chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS: {
- cur = base::FilePath(kFilepathSinglePrefExtensions); - cur = base::FilePath(kFilepathSinglePrefExtensions);
+ std::unique_ptr<base::Environment> environment(base::Environment::Create()); + std::unique_ptr<base::Environment> environment(base::Environment::Create());
+ std::string extension_dir; + if (environment->GetVar("CHROMIUM_EXTENSION_DIRECTORY")) {
+ if (environment->GetVar("CHROMIUM_EXTENSION_DIRECTORY", &extension_dir)) { + auto extension_dir = environment->GetVar("CHROMIUM_EXTENSION_DIRECTORY").value();
+ cur = base::FilePath(extension_dir); + cur = base::FilePath(extension_dir);
+ } else { + } else {
+ cur = base::FilePath(kFilepathSinglePrefExtensions); + cur = base::FilePath(kFilepathSinglePrefExtensions);

View file

@ -1,68 +0,0 @@
The bundled ffmpeg in Chromium is newer than the one in Guix. Patch so
we can build with the new and old ffmpeg versions.
Taken from Gentoo:
https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-93-fix-build-with-system-ffmpeg.patch
diff --git a/media/filters/audio_decoder_unittest.cc b/media/filters/audio_decoder_unittest.cc
--- a/media/filters/audio_decoder_unittest.cc
+++ b/media/filters/audio_decoder_unittest.cc
@@ -109,7 +109,11 @@ void SetDiscardPadding(AVPacket* packet,
}
// If the timestamp is positive, try to use FFmpeg's discard data.
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int skip_samples_size = 0;
+#else
size_t skip_samples_size = 0;
+#endif
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -427,11 +427,19 @@ void FFmpegDemuxerStream::EnqueuePacket(
scoped_refptr<DecoderBuffer> buffer;
if (type() == DemuxerStream::TEXT) {
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int id_size = 0;
+#else
size_t id_size = 0;
+#endif
uint8_t* id_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int settings_size = 0;
+#else
size_t settings_size = 0;
+#endif
uint8_t* settings_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
@@ -443,7 +451,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
side_data.data(), side_data.size());
} else {
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int side_data_size = 0;
+#else
size_t side_data_size = 0;
+#endif
uint8_t* side_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
@@ -504,7 +516,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
packet->size - data_offset);
}
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int skip_samples_size = 0;
+#else
size_t skip_samples_size = 0;
+#endif
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));

View file

@ -0,0 +1,44 @@
Maybe not needed with libc++. With libstdc++ we get these errors:
../../third_party/perfetto/src/trace_processor/dataframe/impl/types.h:142:36: error: unknown type name 'nullptr_t'; did you mean 'std::nullptr_t'?
142 | using DataPointer = std::variant<nullptr_t,
| ^~~~~~~~~
| std::nullptr_t
/gnu/store/jb4szkjkmlqdc92nnhxvm9ypq6hvk9vw-gcc-14.3.0/include/c++/x86_64-unknown-linux-gnu/bits/c++config.h:314:29: note: 'std::nullptr_t' declared here
314 | typedef decltype(nullptr) nullptr_t;
| ^
In file included from ../../third_party/perfetto/src/trace_processor/trace_processor_storage.cc:20:
In file included from ../../third_party/perfetto/src/trace_processor/trace_processor_storage_impl.h:23:
In file included from ../../third_party/perfetto/src/trace_processor/importers/common/trace_file_tracker.h:23:
In file included from ../../third_party/perfetto/src/trace_processor/storage/trace_storage.h:46:
In file included from gen/third_party/perfetto/src/trace_processor/tables/android_tables_py.h:25:
../../third_party/perfetto/src/trace_processor/dataframe/typed_cursor.h:50:64: error: unknown type name 'nullptr_t'; did you mean 'std::nullptr_t'?
50 | static const Type kNull = base::variant_index<FilterValue, nullptr_t>();
| ^~~~~~~~~
| std::nullptr_t
/gnu/store/jb4szkjkmlqdc92nnhxvm9ypq6hvk9vw-gcc-14.3.0/include/c++/x86_64-unknown-linux-gnu/bits/c++config.h:314:29: note: 'std::nullptr_t' declared here
314 | typedef decltype(nullptr) nullptr_t;
| ^
--- a/third_party/perfetto/src/trace_processor/dataframe/impl/types.h
+++ b/third_party/perfetto/src/trace_processor/dataframe/impl/types.h
@@ -139,7 +139,7 @@
using Double = FlexVector<double>;
using String = FlexVector<StringPool::Id>;
- using DataPointer = std::variant<nullptr_t,
+ using DataPointer = std::variant<std::nullptr_t,
const uint32_t*,
const int32_t*,
const int64_t*,
--- a/third_party/perfetto/src/trace_processor/dataframe/typed_cursor.h
+++ b/third_party/perfetto/src/trace_processor/dataframe/typed_cursor.h
@@ -47,7 +47,7 @@
static const Type kInt64 = base::variant_index<FilterValue, int64_t>();
static const Type kDouble = base::variant_index<FilterValue, double>();
static const Type kString = base::variant_index<FilterValue, const char*>();
- static const Type kNull = base::variant_index<FilterValue, nullptr_t>();
+ static const Type kNull = base::variant_index<FilterValue, std::nullptr_t>();
int64_t GetInt64Value(uint32_t col) const {
return base::unchecked_get<int64_t>(filter_values_[col]);
}

View file

@ -1,18 +0,0 @@
Alias the av_stream_get_first_dts definition added by Chromium in
their bundled fork.
Taken from Arch Linux:
https://github.com/archlinux/svntogit-packages/blob/38fd5d2f2e0ade932aa7a80b7dea26215fc41854/trunk/unbundle-ffmpeg-av_stream_get_first_dts.patch
diff --git a/build/linux/unbundle/ffmpeg.gn b/build/linux/unbundle/ffmpeg.gn
--- a/build/linux/unbundle/ffmpeg.gn
+++ b/build/linux/unbundle/ffmpeg.gn
@@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") {
"libavformat",
"libavutil",
]
+ defines = [ "av_stream_get_first_dts(stream)=stream->first_dts" ]
}
buildflag_header("ffmpeg_features") {

View file

@ -6,7 +6,7 @@ https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/sys
diff --git a/base/BUILD.gn b/base/BUILD.gn diff --git a/base/BUILD.gn b/base/BUILD.gn
--- a/base/BUILD.gn --- a/base/BUILD.gn
+++ b/base/BUILD.gn +++ b/base/BUILD.gn
@@ -184,6 +184,12 @@ buildflag_header("ios_cronet_buildflags") { @@ -159,6 +159,12 @@
flags = [ "CRONET_BUILD=$is_cronet_build" ] flags = [ "CRONET_BUILD=$is_cronet_build" ]
} }
@ -16,18 +16,18 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
+ ] + ]
+} +}
+ +
use_epoll = is_linux || is_chromeos || is_android
# Base and everything it depends on should be a static library rather than # Base and everything it depends on should be a static library rather than
# a source set. Base is more of a "library" in the classic sense in that many @@ -809,8 +815,6 @@
# small parts of it are used in many different contexts. This combined with a "task/updateable_sequenced_task_runner.h",
@@ -838,8 +844,6 @@ mixed_component("base") { "test/scoped_logging_settings.h",
"third_party/cityhash_v103/src/city_v103.cc", "test/spin_wait.h",
"third_party/cityhash_v103/src/city_v103.h",
"third_party/icu/icu_utf.h",
- "third_party/nspr/prtime.cc", - "third_party/nspr/prtime.cc",
- "third_party/nspr/prtime.h", - "third_party/nspr/prtime.h",
"third_party/superfasthash/superfasthash.c",
"thread_annotations.h", "thread_annotations.h",
"threading/hang_watcher.cc", "threading/hang_watcher.cc",
"threading/hang_watcher.h",
diff --git a/base/time/pr_time_unittest.cc b/base/time/pr_time_unittest.cc diff --git a/base/time/pr_time_unittest.cc b/base/time/pr_time_unittest.cc
--- a/base/time/pr_time_unittest.cc --- a/base/time/pr_time_unittest.cc
+++ b/base/time/pr_time_unittest.cc +++ b/base/time/pr_time_unittest.cc
@ -43,12 +43,12 @@ diff --git a/base/time/pr_time_unittest.cc b/base/time/pr_time_unittest.cc
diff --git a/base/time/time.cc b/base/time/time.cc diff --git a/base/time/time.cc b/base/time/time.cc
--- a/base/time/time.cc --- a/base/time/time.cc
+++ b/base/time/time.cc +++ b/base/time/time.cc
@@ -21,7 +21,7 @@ @@ -15,7 +15,7 @@
#include <utility> #include "base/check.h"
#include "base/format_macros.h"
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
-#include "base/third_party/nspr/prtime.h" -#include "base/third_party/nspr/prtime.h"
+#include <nspr/prtime.h> +#include <nspr/prtime.h>
#include "base/time/time_override.h" #include "base/time/time_override.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "third_party/abseil-cpp/absl/types/optional.h"