summaryrefslogtreecommitdiff
path: root/gnu/packages/chromium.scm
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2021-10-12 16:50:47 +0000
committerMathieu Othacehe <othacehe@gnu.org>2021-10-12 17:46:23 +0000
commita1eca979fb8da842e73c42f4f53be29b169810f2 (patch)
tree681c7283e412bb8a29c2531c4408b49c3e184764 /gnu/packages/chromium.scm
parent48d86a9ec6d8d2e97da2299ea41a03ef4cdaab83 (diff)
parent371aa5777a3805a3886f3feea5f1960fe3fe4219 (diff)
downloadguix-patches-a1eca979fb8da842e73c42f4f53be29b169810f2.tar
guix-patches-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.scm113
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