diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 5d59f7514c60..36576df4b732 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -11,7 +11,7 @@ , nspr, systemd, kerberos , utillinux, alsaLib , bison, gperf -, glib, gtk2, gtk3, dbus-glib +, glib, gtk3, dbus-glib , glibc , libXScrnSaver, libXcursor, libXtst, libGLU_combined , protobuf, speechd, libXdamage, cups @@ -104,7 +104,7 @@ let else result; base = rec { - name = "${packageName}-${version}"; + name = "${packageName}-unwrapped-${version}"; inherit (upstream-info) version; inherit packageName buildType buildPath; @@ -120,7 +120,7 @@ let nspr nss systemd utillinux alsaLib bison gperf kerberos - glib gtk2 gtk3 dbus-glib + glib gtk3 dbus-glib libXScrnSaver libXcursor libXtst libGLU_combined pciutils protobuf speechd libXdamage at-spi2-core ] ++ optional gnomeKeyringSupport libgnome-keyring3 @@ -132,6 +132,8 @@ let patches = optional enableWideVine ./patches/widevine.patch ++ [ ./patches/nix_plugin_paths_68.patch ./patches/remove-webp-include-69.patch + ./patches/jumbo-sorted.patch + ./patches/no-build-timestamps.patch # Unfortunately, chromium regularly breaks on major updates and # then needs various patches backported in order to be compiled with GCC. diff --git a/pkgs/applications/networking/browsers/chromium/patches/jumbo-sorted.patch b/pkgs/applications/networking/browsers/chromium/patches/jumbo-sorted.patch new file mode 100644 index 000000000000..cdf0f695f761 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/jumbo-sorted.patch @@ -0,0 +1,11 @@ +--- chromium-70.0.3538.67/build/config/merge_for_jumbo.py.old 2018-10-25 19:15:54.578222230 +0300 ++++ chromium-70.0.3538.67/build/config/merge_for_jumbo.py 2018-10-25 19:20:44.397613032 +0300 +@@ -132,6 +132,8 @@ + assert not inputs + continue + ++ inputs.sort() ++ outputs.sort() + write_jumbo_files(inputs, outputs, written_input_set, written_output_set) + + assert set(args.outputs) == written_output_set, "Did not fill all outputs" diff --git a/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch b/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch new file mode 100644 index 000000000000..e06d848095c8 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch @@ -0,0 +1,17 @@ +--- chromium-70.0.3538.67/build/compute_build_timestamp.py.orig 2018-11-02 16:00:34.368933077 +0200 ++++ chromium-70.0.3538.67/build/compute_build_timestamp.py 2018-11-08 04:06:21.658105129 +0200 +@@ -94,6 +94,14 @@ + 'build_type', help='The type of build', choices=('official', 'default')) + args = argument_parser.parse_args() + ++ # I don't trust LASTCHANGE magic, and I definelly want something deterministic here ++ SOURCE_DATE_EPOCH = os.getenv("SOURCE_DATE_EPOCH", None) ++ if SOURCE_DATE_EPOCH is not None: ++ print SOURCE_DATE_EPOCH ++ return 0 ++ else: ++ raise RuntimeError("SOURCE_DATE_EPOCH not set") ++ + # The mtime of the revision in build/util/LASTCHANGE is stored in a file + # next to it. Read it, to get a deterministic time close to "now". + # That date is then modified as described at the top of the file so that