diff options
author | Mathieu Othacehe <othacehe@gnu.org> | 2021-10-12 16:50:47 +0000 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2021-10-12 17:46:23 +0000 |
commit | a1eca979fb8da842e73c42f4f53be29b169810f2 (patch) | |
tree | 681c7283e412bb8a29c2531c4408b49c3e184764 /gnu/packages/chromium.scm | |
parent | 48d86a9ec6d8d2e97da2299ea41a03ef4cdaab83 (diff) | |
parent | 371aa5777a3805a3886f3feea5f1960fe3fe4219 (diff) | |
download | guix-a1eca979fb8da842e73c42f4f53be29b169810f2.tar.gz |
Merge remote-tracking branch 'origin/master' into core-updates-frozen.
Diffstat (limited to 'gnu/packages/chromium.scm')
-rw-r--r-- | gnu/packages/chromium.scm | 113 |
1 files changed, 68 insertions, 45 deletions
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 2b018d95f6..534b9a4ad9 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -58,6 +58,8 @@ #:use-module (gnu packages protobuf) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages regex) #:use-module (gnu packages serialization) #:use-module (gnu packages speech) @@ -95,7 +97,6 @@ "third_party/angle/src/common/third_party/base" ;BSD-3 "third_party/angle/src/common/third_party/smhasher" ;Public domain "third_party/angle/src/common/third_party/xxhash" ;BSD-2 - "third_party/angle/src/third_party/compiler" ;BSD-2 "third_party/angle/src/third_party/libXNVCtrl" ;Expat "third_party/angle/src/third_party/trace_event" ;BSD-3 "third_party/angle/src/third_party/volk" ;Expat @@ -109,8 +110,6 @@ "third_party/catapult" ;BSD-3 "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0 "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0 - "third_party/catapult/third_party/beautifulsoup4" ;Expat - "third_party/catapult/third_party/html5lib-python" ;Expat "third_party/catapult/third_party/polymer" ;BSD-3 "third_party/catapult/third_party/six" ;Expat ;; XXX: This is a minified version of <https://d3js.org/>. @@ -133,6 +132,7 @@ "third_party/cros_system_api" ;BSD-3 "third_party/dav1d" ;BSD-2 "third_party/dawn" ;ASL2.0 + "third_party/dawn/third_party/tint" "third_party/depot_tools/owners.py" ;BSD-3 "third_party/devtools-frontend" ;BSD-3 "third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat @@ -249,6 +249,11 @@ "third_party/skia/third_party/skcms" ;BSD-3 "third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat "third_party/smhasher" ;Expat, public domain + + ;; FIXME: the snappy "replacement" shim (see replace_gn_files.py below) does + ;; not declare a library dependency added in M93, causing a link failure. + "third_party/snappy" ;BSD-3 + "third_party/speech-dispatcher" ;GPL2+ "third_party/sqlite" ;Public domain "third_party/swiftshader" ;ASL2.0 @@ -300,7 +305,6 @@ "third_party/zlib/google" ;BSD-3 "third_party/zxcvbn-cpp" ;Expat - "tools/grit/third_party/six" ;Expat "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 @@ -314,6 +318,14 @@ ;; run the Blink performance tests, just remove everything to save ~70MiB. '("third_party/blink/perf_tests")) +(define* (arch-patch name hash #:optional (revision %arch-revision)) + (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/archlinux" + "/svntogit-packages/" revision "/trunk/" name)) + (file-name (string-append "ungoogled-chromium-" name)) + (sha256 (base32 hash)))) + (define* (debian-patch name hash #:optional (revision %debian-revision)) (origin (method url-fetch) @@ -324,17 +336,24 @@ (string-append "ungoogled-chromium-" category "-" name)))) (sha256 (base32 hash)))) -(define %chromium-version "92.0.4515.159") +(define %chromium-version "94.0.4606.81") +(define %ungoogled-revision "94.0.4606.81-1") +(define %arch-revision "db2157b84924ce84201a8245e68a02f7d55f6491") (define %debian-revision "debian/90.0.4430.85-1") -;; Note: use 'git describe --long' even for exact tags to placate the -;; custom version format for ungoogled-chromium. -(define %ungoogled-revision "92.0.4515.159-1-8-g8164c91") + +(define %arch-patches + (list (arch-patch "chromium-94-ffmpeg-roll.patch" + "1kiskdjr9v3d491sq0wdjxliflh2vq5700gbygcixayj8gkvdb2n") + (arch-patch "replace-blacklist-with-ignorelist.patch" + "0ddvbyks7s8nijmg2nmirpwdv08dqx0z99sb6c1d4vlckfilnd6k") + (arch-patch "add-a-TODO-about-a-missing-pnacl-flag.patch" + "0mf4zn94ckd3vxzw441wka7ak4aajq1x33h4dqd78blgacba4gfm") + (arch-patch "use-ffile-compilation-dir.patch" + "0vk0vyxr55c716vkn4y4yhhrxb4zng4ni2y6fsz30pxbiz6i044j"))) (define %debian-patches (list (debian-patch "fixes/nomerge.patch" "0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3") - (debian-patch "system/nspr.patch" - "1gdirn1k1i841l8zp8xgr95kl16b5nx827am9rcxj8sfkm8hgkn3") (debian-patch "system/zlib.patch" "0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv") (debian-patch "system/openjpeg.patch" @@ -348,12 +367,18 @@ (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (sha256 (base32 - "0wbcbjzh5ak4nciahqw4yvxc4x8ik4x0iz9h4kfy0m011sxzy174")))) + "113abybh8kkw9a92lj6jww6dl6rc1sv5x7a7a1gjwsihzd2r0cik")))) (define %guix-patches (list (local-file (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-ffmpeg-compat.patch"))) + (local-file + (assume-valid-file-name + (search-patch "ungoogled-chromium-system-nspr.patch"))))) ;; This is a source 'snippet' that does the following: ;; *) Applies various patches for unbundling purposes and libstdc++ compatibility. @@ -378,6 +403,13 @@ patch "--no-backup-if-mismatch")) (append '#+%debian-patches '#+%guix-patches)) + ;; These patches are "reversed"; i.e. they represent changes + ;; already present in the source, but which should be reverted. + (for-each (lambda (patch) + (invoke "patch" "-Rp1" "--force" "--input" + patch "--no-backup-if-mismatch")) + '#$%arch-patches) + (with-directory-excursion #+%ungoogled-origin (format #t "Ungooglifying...~%") (force-output) @@ -397,7 +429,7 @@ (format #t "Pruning third party files...~%") (force-output) - (apply invoke (string-append #+python-2 "/bin/python") + (apply invoke "python" "build/linux/unbundle/remove_bundled_libraries.py" "--do-remove" '#$%preserved-third-party-files) @@ -414,7 +446,7 @@ "--system-libraries" "ffmpeg" "flac" "fontconfig" "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent" "libjpeg" "libpng" "libwebp" "libxml" "libxslt" - "openh264" "opus" "snappy" "zlib"))))) + "openh264" "opus" "zlib"))))) (define opus+custom (package/inherit opus @@ -428,22 +460,6 @@ `(cons "--enable-custom-modes" ,flags)))))) -;; WebRTC in Chromium 88 requires an unreleased version of libvpx. Use the -;; commit mentioned in "third_party/libvpx/README.chromium". -(define libvpx/chromium - (package - (inherit libvpx) - (version "1.9.0-147-g61edec1ef") - (source (origin - (inherit (package-source libvpx)) - (uri (git-reference - (url "https://chromium.googlesource.com/webm/libvpx") - (commit (string-append "v" version)))) - (file-name (git-file-name "libvpx" version)) - (sha256 - (base32 - "0mw13y7j2lg8jj3alm9367c3b40b6s218fdz3nn1m2k85c78wzr7")))))) - ;; 'make-ld-wrapper' can only work with an 'ld' executable, so we need ;; this trick to make it wrap 'lld'. (define (make-lld-wrapper lld) @@ -472,10 +488,12 @@ (define-public ungoogled-chromium (package (name "ungoogled-chromium") - (version (string-append %chromium-version "-0." - (match (string-split %ungoogled-revision #\-) - ((version revision commits g+short) - (string-drop g+short 1))))) + (version (if (string-prefix? %chromium-version %ungoogled-revision) + %ungoogled-revision + ;; ungoogled-chromium version tags always have a "-1" suffix, + ;; so we can hijack "-0" in cases where the Chromium source + ;; is newer than the latest available tag. + (string-append %chromium-version "-0"))) (synopsis "Graphical web browser") (source (origin (method url-fetch) @@ -484,7 +502,7 @@ %chromium-version ".tar.xz")) (sha256 (base32 - "04gxgimg5ygzx6nvfws5y9dppdfjg1fhyl8zbykmksbh1myk6zfr")) + "16755mfqxxmvslm9ix060safrnml91ckj5p85960jj5g5hmslwbh")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) @@ -506,6 +524,8 @@ ;; a developer build. "is_official_build=true" "clang_use_chrome_plugins=false" + "is_cfi=false" ;requires Clang 13 + "use_thin_lto=false" ;XXX ICE with Clang+LLD 12.0.1 "chrome_pgo_phase=0" "use_sysroot=false" "goma_dir=\"\"" @@ -514,7 +534,7 @@ "use_unofficial_version_number=false" "treat_warnings_as_errors=false" "use_official_google_api_keys=false" - "fieldtrial_testing_like_official_build=true" + "disable_fieldtrial_testing_config=true" "safe_browsing_mode=0" "enable_mdns=false" "enable_one_click_signin=false" @@ -529,6 +549,8 @@ ;; Disable code using TensorFlow until it has been scrutinized ;; by the ungoogled project. "build_with_tflite_lib=false" + ;; Avoid dependency on code formatting tools. + "blink_enable_generated_code_formatting=false" ;; Define a custom toolchain that simply looks up CC, AR and ;; friends from the environment. @@ -823,21 +845,20 @@ '("24" "48" "64" "128" "256"))))))))) (native-inputs `(("bison" ,bison) - ("clang" ,clang-11) + ("clang" ,clang-12) ("gn" ,gn) ("gperf" ,gperf) ("ld-wrapper" ,(make-lld-wrapper lld)) ("ninja" ,ninja) - ("node" ,node) + ("node" ,node-lts) ("pkg-config" ,pkg-config) ("which" ,which) + ;; This file contains defaults for new user profiles. ("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json")) - ;; Try unbundling these when upstream has completed its Python 3 transition. - ;; ("python-beautifulsoup4" ,python-beautifulsoup4) - ;; ("python-html5lib" ,python-html5lib) - ("python2" ,python-2) + ("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-html5lib" ,python-html5lib) ("python" ,python-wrapper) ("wayland-scanner" ,wayland))) (inputs @@ -854,7 +875,7 @@ ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib) ("gtk+" ,gtk+) - ("harfbuzz" ,harfbuzz) + ("harfbuzz" ,harfbuzz-3.0) ("icu4c" ,icu4c) ("lcms" ,lcms) ("libevent" ,libevent) @@ -862,7 +883,7 @@ ("libjpeg-turbo" ,libjpeg-turbo) ("libpng" ,libpng) ("libva" ,libva) - ("libvpx" ,libvpx/chromium) + ("libvpx" ,libvpx) ("libwebp" ,libwebp) ("libx11" ,libx11) ("libxcb" ,libxcb) @@ -915,7 +936,9 @@ (home-page "https://github.com/Eloston/ungoogled-chromium") (description "Ungoogled-Chromium is the Chromium web browser, with some functionality -disabled in order to protect the users privacy.") +disabled in order to protect the users privacy. This package also includes +the @command{chromedriver} command, which can be useful for automated web +testing.") ;; Chromium is developed as BSD-3, but bundles a large number of third-party ;; components with other licenses. For full information, see chrome://credits. (license (list license:bsd-3 |