summary refs log tree commit diff
path: root/gnu/packages/chromium.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/chromium.scm')
-rw-r--r--gnu/packages/chromium.scm84
1 files changed, 55 insertions, 29 deletions
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 49ad8de84c..0b3d19a428 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -37,7 +37,6 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -49,6 +48,7 @@
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages ninja)
   #:use-module (gnu packages node)
@@ -70,7 +70,8 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
-  #:use-module (ice-9 match))
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1))
 
 (define %preserved-third-party-files
   '("base/third_party/cityhash" ;Expat
@@ -106,10 +107,6 @@
     "third_party/blink" ;BSD-3, LGPL2+
     "third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC)
     "third_party/boringssl/src/third_party/fiat" ;Expat
-    "third_party/boringssl/src/third_party/sike" ;Expat
-    ;; XXX: these files are generated by fp-$arch.pl in the above directory.
-    "third_party/boringssl/linux-aarch64/crypto/third_party/sike/asm/fp-armv8.S"
-    "third_party/boringssl/linux-x86_64/crypto/third_party/sike/asm/fp-x86_64.S"
     "third_party/breakpad" ;BSD-3
     "third_party/brotli" ;Expat
     "third_party/cacheinvalidation" ;ASL2.0
@@ -117,11 +114,14 @@
     "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/polymer" ;BSD-3
+    ;; XXX: This is a minified version of <https://d3js.org/>.
     "third_party/catapult/tracing/third_party/d3" ;BSD-3
     "third_party/catapult/tracing/third_party/gl-matrix" ;Expat
+    ;; XXX: Minified version of <https://github.com/Stuk/jszip>.
     "third_party/catapult/tracing/third_party/jszip" ;Expat or GPL3
     "third_party/catapult/tracing/third_party/mannwhitneyu" ;Expat
     "third_party/catapult/tracing/third_party/oboe" ;BSD-2
+    ;; XXX: Minified version of <https://github.com/nodeca/pako>.
     "third_party/catapult/tracing/third_party/pako" ;Expat
     "third_party/ced" ;BSD-3
     "third_party/cld_3" ;ASL2.0
@@ -134,6 +134,9 @@
     "third_party/dav1d" ;BSD-2
     "third_party/dawn" ;ASL2.0
     "third_party/depot_tools/owners.py" ;BSD-3
+    "third_party/devtools-frontend" ;BSD-3
+    "third_party/devtools-frontend/src/third_party/axe-core" ;MPL2.0
+    "third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
     "third_party/dom_distiller_js" ;BSD-3
     "third_party/emoji-segmenter" ;ASL2.0
     "third_party/flatbuffers" ;ASL2.0
@@ -154,6 +157,7 @@
     "third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
     "third_party/libaom/source/libaom/third_party/vector" ;Expat
     "third_party/libaom/source/libaom/third_party/x86inc" ;ISC
+    "third_party/libgifcodec" ;MPL1.1/GPL2+/LGPL2.1+, BSD-3, BSD-2
     "third_party/libjingle_xmpp" ;BSD-3
     "third_party/libphonenumber" ;ASL2.0
     "third_party/libsecret" ;LGPL2.1+
@@ -181,6 +185,7 @@
     "third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
     "third_party/pdfium/third_party/skia_shared" ;BSD-3
     "third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
+    "third_party/perfetto" ;ASL2.0
     "third_party/pffft" ;the "FFTPACK" license, similar to BSD-3
     "third_party/ply" ;BSD-3
     "third_party/polymer" ;BSD-3
@@ -194,7 +199,6 @@
     "third_party/sfntly" ;ASL2.0
     "third_party/skia" ;BSD-3
     "third_party/skia/include/third_party/skcms" ;BSD-3
-    "third_party/skia/third_party/gif" ;MPL1.1/GPL2+/LGPL2.1+
     "third_party/skia/third_party/skcms" ;BSD-3
     "third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat
     "third_party/smhasher" ;Expat, public domain
@@ -243,9 +247,9 @@ from forcing GEXP-PROMISE."
                       #:system system
                       #:guile-for-build guile)))
 
-(define %chromium-version "79.0.3945.130")
-(define %ungoogled-revision "e2fae994d786b6716fb473a47b0c880bcfdc2497")
-(define %debian-revision "debian/79.0.3945.130-2")
+(define %chromium-version "80.0.3987.132")
+(define %ungoogled-revision "7e68f18f1d16a132fe7d913a176daf79897eaa58")
+(define %debian-revision "debian/80.0.3987.116-1")
 (define package-revision "0")
 (define %package-version (string-append %chromium-version "-"
                                         package-revision "."
@@ -259,7 +263,7 @@ from forcing GEXP-PROMISE."
                         %chromium-version ".tar.xz"))
     (sha256
      (base32
-      "183vz3lf1588cr9s5vlnj65qvbmz36s8cg8k7dvr64cxmcqk86an"))))
+      "00f2hpi2d0n15yw29dv3dli566cgi7qh55bfpziag9a6j02i401c"))))
 
 (define %ungoogled-origin
   (origin
@@ -270,7 +274,7 @@ from forcing GEXP-PROMISE."
                               (string-take %ungoogled-revision 7)))
     (sha256
      (base32
-      "15vmc07iba1zmzn4j7c5n2hyvyxzwwf9hc3kyym0m4jajlsyxr5f"))))
+      "196rr3nly42pzl2bap22vzw4d8x87yl3zy1wq2fla5z8iy4x8ym1"))))
 
 (define %debian-origin
   (origin
@@ -284,7 +288,7 @@ from forcing GEXP-PROMISE."
                                 (_ (string-take %debian-revision 7)))))
     (sha256
      (base32
-      "1rbzxcwfp7v0c6rkvn9jl9by7p363cnbdyqazwiak1z03kmw3nkz"))))
+      "1cc5sp566dd8f2grgr770xwbxgxf58dk1w7q3s8pmv4js5h3pwq8"))))
 
 ;; This is a "computed" origin that does the following:
 ;; *) Runs the Ungoogled scripts on a pristine Chromium tarball.
@@ -344,7 +348,7 @@ from forcing GEXP-PROMISE."
 
                    (with-directory-excursion chromium-dir
 
-                     (format #t "applying Debian patches...~%")
+                     (format #t "Applying Debian patches...~%")
                      (force-output)
                      (let* ((debian  #+debian-source)
                             (patches (string-append debian "/debian/patches"))
@@ -423,6 +427,18 @@ from forcing GEXP-PROMISE."
         `(cons "--enable-custom-modes"
                ,flags))))))
 
+;; Add a custom ld wrapper that supports quoted strings in response files.
+;; To be merged with 'ld-wrapper' in a future rebuild cycle.
+(define-public ld-wrapper-next
+  (let ((orig (car (assoc-ref (%final-inputs) "ld-wrapper"))))
+    (package
+      (inherit orig)
+      (name "ld-wrapper-next")
+      (inputs
+       `(("wrapper" ,(search-path %load-path
+                                  "gnu/packages/ld-wrapper-next.in"))
+         ,@(alist-delete "wrapper" (package-inputs orig)))))))
+
 (define-public ungoogled-chromium
   (package
     (name "ungoogled-chromium")
@@ -446,8 +462,10 @@ from forcing GEXP-PROMISE."
        ;; directory for an exhaustive list of supported flags.
        ;; (Note: The 'configure' phase will do that for you.)
        (list "is_debug=false"
+             "is_cfi=false"
              "use_gold=false"
              "use_lld=false"
+             "clang_use_chrome_plugins=false"
              "linux_use_bundled_binutils=false"
              "use_custom_libcxx=false"
              "use_sysroot=false"
@@ -477,18 +495,6 @@ from forcing GEXP-PROMISE."
              ;; friends from the environment.
              "custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
              "host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-             ;; Don't assume it's clang.
-             "is_clang=false"
-             ;; Disable debugging features to save space.  These are normally
-             ;; pulled in by "is_official_build", but that requires "is_clang".
-             "enable_iterator_debugging=false"
-             "exclude_unwind_tables=true"
-             ;; Optimize for building everything at once, as opposed to
-             ;; incrementally for development.  See "docs/jumbo.md".
-             "use_jumbo_build=true"
-             ;; The default file merge limit of 50 requires huge amounts of RAM.
-             ;; Cap it to make sure the build succeeds on commodity hardware.
-             "jumbo_file_merge_limit=8"
 
              ;; Prefer system libraries.
              "use_system_freetype=true"
@@ -584,6 +590,10 @@ from forcing GEXP-PROMISE."
              (substitute* "third_party/webrtc/rtc_base/strings/json.h"
                (("#include \"third_party/jsoncpp/") "#include \"json/"))
 
+             (substitute* "gpu/config/gpu_util.cc"
+               (("third_party/vulkan/include/")
+                ""))
+
              (substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
                             "components/viz/common/resources/resource_format_utils.h")
                (("third_party/vulkan/include/") ""))
@@ -636,14 +646,19 @@ from forcing GEXP-PROMISE."
 
              ;; Make sure the right build tools are used.
              (setenv "AR" "ar") (setenv "NM" "nm")
-             (setenv "CC" "gcc") (setenv "CXX" "g++")
+             (setenv "CC" "clang") (setenv "CXX" "clang++")
 
-             ;; Prevent GCC from optimizing away null pointer safety checks.
+             ;; Do not optimize away null pointer safety checks.
              (setenv "CXXFLAGS" "-fno-delete-null-pointer-checks")
 
              ;; TODO: pre-compile instead. Avoids a race condition.
              (setenv "PYTHONDONTWRITEBYTECODE" "1")
 
+             (substitute*
+                 ;; From Debians 'system/node.patch'.
+                 "third_party/devtools-frontend/src/scripts/devtools_paths.py"
+               (("/usr/bin/nodejs") (which "node")))
+
              ;; XXX: How portable is this.
              (mkdir-p "third_party/node/linux/node-linux-x64")
              (symlink (string-append (assoc-ref inputs "node") "/bin")
@@ -748,9 +763,10 @@ from forcing GEXP-PROMISE."
                #t))))))
     (native-inputs
      `(("bison" ,bison)
-       ("gcc" ,gcc-8)
+       ("clang" ,clang-9)
        ("gn" ,gn)
        ("gperf" ,gperf)
+       ("ld-wrapper" ,ld-wrapper-next)
        ("ninja" ,ninja)
        ("node" ,node)
        ("pkg-config" ,pkg-config)
@@ -852,6 +868,16 @@ disabled in order to protect the users privacy.")
        ,@(package-inputs ungoogled-chromium)))
     (arguments
      (substitute-keyword-arguments (package-arguments ungoogled-chromium)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'add-ozone-patch
+             (lambda _
+               ;; Add missing include statement required when using libstdc++,
+               ;; Clang and Ozone.  Fixed in M81.
+               (substitute* "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc"
+                 (("#include \"base/logging\\.h" all)
+                  (string-append "#include <algorithm>\n" all)))
+               #t))))
        ((#:configure-flags flags)
         `(append (list "use_ozone=true"
                        "ozone_platform_wayland=true"