Subject: Re: [bug#28004] Chromium 66 + status update

From: Marius Bakke <[email-masked]>
Date: Fri, 04 May 2018 14:10:35 +0200

Nils Gillmann <[email-masked]> writes:

> Marius Bakke transcribed 69K bytes:
>> Christopher Lemmer Webber <[email-masked]> writes:
>> 
>> > Hello!  I'd like to speak up in favor of getting Chromium merged into
>> > Guix master.  As a web developer, sometimes I have to test things
>> > against multiple browsers.  Having Chromium in GuixSD would help me out
>> > a lot.
>> >
>> > It looks like a mountain of hard work has been put into this.  Could we
>> > get it merged rather than have that work languish?
>> 
>> Hello!
>> 
>> I use this browser a lot, so it's hardly languishing.
>> 
>> There was a recent discussion[0] about the Pale Moon browser, where it
>> was pointed out that the FSDG[1] requires that any third-party
>> repositories must be committed to only free software.
>> 
>> [0] https://lists.gnu.org/archive/html/guix-devel/2018-03/msg00319.html
>> [1] https://www.gnu.org/distros/free-system-distribution-guidelines.html#license-rules
>> 
>> Unfortunately there are UI links to the Chrome "Web Store" still.  It's
>> not possible to install from it without setting the
>> CHROMIUM_ENABLE_WEB_STORE variable, but I'm not sure if that is
>> sufficient.  It's unfortunate if an unsuspecting user stumbles into the
>> Web Store and tries to install something (free or not) and only then
>> finds out that it does not work.
>> 
>> The other remaining issue is that some data is sent to Google whenever
>> you start the browser for the first time.  I don't think that's a
>> blocker, but it's certainly something we should aim to fix.
>> 
>> Attached are updates for 66.  The first is an interdiff from the
>> previous 65 patch; the other is the full "squashed" patch for
>> convenience.
>> 
>> New in this version:
>> 
>> * The snippet will now error if a preserved directory is not present.
>> * Chromium again requires a git revision of libvpx.
>> * The "safe browsing" feature requires the nonfree "unrar" program(!!),
>>   as such it has been compiled out.  Luckily "Inox" already had a patch
>>   to make the thing actually build with that flag disabled.
>> * Cosmetic rearrangement of patches to follow Debian and Inox patch order.
>> 
>
>> From a6ce5ebc121f129c3097f1f105b6a4de925b43e9 Mon Sep 17 00:00:00 2001
>> From: Marius Bakke <[email-masked]>
>> Date: Tue, 17 Apr 2018 03:54:56 +0200
>> Subject: [PATCH] Chromium 66 update.
>  > 
>
> Good progress :)
>
> However, I'm a friend of bundling patches. Patches you have in a known location
> don't run away, like "addmissingblinktools":
>
> Starting download of /gnu/store/1djisy58jqjajbfcrd32vf7hrg9qvzwa-add-missing-blink-tools.patch
> From https://bazaar.launchpad.net/~chromium-team/chromium-browser/bionic-stable/download/head:/addmissingblinktools-20180416203514-02f50sz15c2mn6ei-1/add-missing-blink-tools.patch...
> download failed "https://bazaar.launchpad.net/~chromium-team/chromium-browser/bionic-stable/download/head:/addmissingblinktools-20180416203514-02f50sz15c2mn6ei-1/add-missing-blink-tools.patch" 404 "Not Found"
>
> Starting download of /gnu/store/1djisy58jqjajbfcrd32vf7hrg9qvzwa-add-missing-blink-tools.patch
> From http://mirror.hydra.gnu.org/file/add-missing-blink-tools.patch/sha256/1im2l1g6g9mangpfphbkg6zxyglbfwbkm5jxv122yxqgm6vxzz6s...
> download failed "http://mirror.hydra.gnu.org/file/add-missing-blink-tools.patch/sha256/1im2l1g6g9mangpfphbkg6zxyglbfwbkm5jxv122yxqgm6vxzz6s" 404 "Not Found"
>
> Starting download of /gnu/store/1djisy58jqjajbfcrd32vf7hrg9qvzwa-add-missing-blink-tools.patch
> From http://tarballs.nixos.org/sha256/1im2l1g6g9mangpfphbkg6zxyglbfwbkm5jxv122yxqgm6vxzz6s...
> download failed "http://tarballs.nixos.org/sha256/1im2l1g6g9mangpfphbkg6zxyglbfwbkm5jxv122yxqgm6vxzz6s" 404 "Not Found"
> failed to download "/gnu/store/1djisy58jqjajbfcrd32vf7hrg9qvzwa-add-missing-blink-tools.patch" from "https://bazaar.launchpad.net/~chromium-team/chromium-browser/bionic-stable/download/head:/addmissingblinktools-20180416203514-02f50sz15c2mn6ei-1/add-missing-blink-tools.patch"
> builder for `/gnu/store/5hbv5vgnla974qiw6kakc28a4k35h96n-add-missing-blink-tools.patch.drv' failed to produce output path `/gnu/store/1djisy58jqjajbfcrd32vf7hrg9qvzwa-add-missing-blink-tools.patch'
> cannot build derivation `/gnu/store/2z8i7b4l4l0p5b3pj4swdl2pvbdj5q24-chromium-66.0.3359.117.tar.xz.drv': 1 dependencies couldn't be built
> cannot build derivation `/gnu/store/4fxkp0aa1vr2b9fbl9kw8l8ijw0zrd25-chromium-66.0.3359.117.drv': 1 dependencies couldn't be built
> guix package: error: build failed: build of `/gnu/store/4fxkp0aa1vr2b9fbl9kw8l8ijw0zrd25-chromium-66.0.3359.117.drv' failed

Whoops.  I'm not used to constructing stable Bazaar URLs.

However this patch is not needed for the latest tarball.

Here's a diff to the 66 patch updating to the latest Chromium.  I also
removed some inputs and third party directories that were not needed.

diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index a6f9fec0f..59c90f869 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -31,7 +31,6 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
-  #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
@@ -52,7 +51,6 @@
   #:use-module (gnu packages ninja)
   #:use-module (gnu packages node)
   #:use-module (gnu packages pciutils)
-  #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
@@ -63,7 +61,6 @@
   #:use-module (gnu packages speech)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
-  #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
@@ -150,19 +147,6 @@
                 %debian-revision
                 "1qf2y7jmaya43k9rbsxjjpkp5manzmbkhjj5hvfyqcdylhy30swj"))
 
-;; Some files were missing in the Chromium 66 release tarball.
-;; See <https://crbug.com/832283>.
-(define %chromium-add-blink-tools.patch
-  (origin
-    (method url-fetch)
-    (uri (string-append "https://bazaar.launchpad.net/~chromium-team"
-                        "/chromium-browser/bionic-stable/download/head:"
-                        "/addmissingblinktools-20180416203514-02f50sz15c2mn6ei-1"
-                        "/add-missing-blink-tools.patch"))
-    (sha256
-     (base32
-      "1im2l1g6g9mangpfphbkg6zxyglbfwbkm5jxv122yxqgm6vxzz6s"))))
-
 ;; Fix an assignment bug when using Clang and libstdc++.
 (define %chromium-clang-assignment.patch
   (gentoo-patch "chromium-clang-r4.patch"
@@ -342,7 +326,7 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
 (define-public chromium
   (package
     (name "chromium")
-    (version "66.0.3359.117")
+    (version "66.0.3359.139")
     (synopsis "Graphical web browser")
     (source (origin
               (method url-fetch)
@@ -351,14 +335,12 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1mlfavs0m0lf60s42krqxqiyx73hdfd4r1mkjwv31p2gchsa7ibp"))
+                "1ck4wbi28702p1lfs4sz894ysbgm7fj79wrqj8srsy65z2ssaxdy"))
               (patches (list %chromium-gn-libcxx.patch
                              %chromium-disable-api-keys-warning.patch
                              %chromium-system-nspr.patch
                              %chromium-system-libevent.patch
 
-                             %chromium-add-blink-tools.patch
-
                              %chromium-clang-assignment.patch
                              %chromium-ffmpeg.patch
 
@@ -385,14 +367,13 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
                            "base/third_party/dmg_fp"
                            "base/third_party/dynamic_annotations"
                            "base/third_party/icu"
-                           "base/third_party/libevent"
-                           "base/third_party/nspr"
                            "base/third_party/superfasthash"
-                           "base/third_party/symbolize" ;glog
+                           "base/third_party/symbolize"
                            "base/third_party/xdg_mime"
                            "base/third_party/xdg_user_dirs"
                            "chrome/third_party/mozilla_security_manager"
-                           "courgette/third_party"
+                           "courgette/third_party/bsdiff"
+                           "courgette/third_party/divsufsort"
                            "net/third_party/mozilla_security_manager"
                            "net/third_party/nss"
                            "third_party/adobe/flash/flapper_version.h"
@@ -439,7 +420,6 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
                            (string-append "third_party/google_input_tools/third_party"
                                           "/closure_library/third_party/closure")
                            "third_party/googletest"
-                           "third_party/harfbuzz-ng"
                            "third_party/hunspell"
                            "third_party/iccjpeg"
                            "third_party/inspector_protocol"
@@ -472,7 +452,11 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
                            "third_party/ots"
                            ;; TODO: Build as extension.
                            "third_party/pdfium"
-                           "third_party/pdfium/third_party"
+                           "third_party/pdfium/third_party/agg23"
+                           "third_party/pdfium/third_party/base"
+                           "third_party/pdfium/third_party/bigint"
+                           "third_party/pdfium/third_party/libopenjpeg20"
+                           "third_party/pdfium/third_party/skia_shared"
                            (string-append "third_party/pdfium/third_party/freetype"
                                           "/include/pstables.h")
                            "third_party/ply"
@@ -488,7 +472,8 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
                            "third_party/speech-dispatcher"
                            "third_party/sqlite"
                            "third_party/swiftshader"
-                           "third_party/swiftshader/third_party"
+                           "third_party/swiftshader/third_party/llvm-subzero"
+                           "third_party/swiftshader/third_party/subzero"
                            "third_party/s2cellid"
                            "third_party/usb_ids"
                            "third_party/usrsctp"
@@ -864,7 +849,6 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
     (native-inputs
      `(("bison" ,bison)
        ("clang-toolchain" ,chromium-clang-toolchain)
-       ("git" ,git)                     ;last_commit_position.py
        ("gperf" ,gperf)
        ("ninja" ,ninja)
        ("node" ,node)
@@ -889,7 +873,6 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
        ("freetype" ,freetype)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)
-       ("gtk+-2" ,gtk+-2)
        ("gtk+" ,gtk+)
        ("harfbuzz" ,harfbuzz)
        ("icu4c" ,icu4c)
@@ -899,6 +882,7 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
        ("libffi" ,libffi)
        ("libjpeg-turbo" ,libjpeg-turbo)
        ("libpng" ,libpng)
+       ;;("libsecret" ,libsecret)
        ("libusb" ,libusb)
        ("libvpx" ,libvpx+experimental)
        ("libwebp" ,libwebp)
@@ -931,7 +915,7 @@ includes Clang, the Guix ld wrapper, glibc, a C++ library, and Binutils.")
        ("re2" ,re2)
        ("snappy" ,snappy)
        ("speech-dispatcher" ,speech-dispatcher)
-       ("sqlite" ,sqlite)
+       ;;("sqlite" ,sqlite)
        ("udev" ,eudev)
        ("valgrind" ,valgrind)))
     (home-page "https://www.chromium.org/")