From c3798535b8e00b91e869e75d97865a1328b6444a Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Wed, 25 Aug 2021 19:28:56 +0100 Subject: [PATCH 01/19] mc: 4.8.26 -> 4.8.27 (cherry picked from commit 326209f03708f07545c13f5970cc3ae8a42053e1) --- pkgs/tools/misc/mc/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/mc/default.nix b/pkgs/tools/misc/mc/default.nix index 6cbe693fb60..82898a145c6 100644 --- a/pkgs/tools/misc/mc/default.nix +++ b/pkgs/tools/misc/mc/default.nix @@ -21,11 +21,11 @@ stdenv.mkDerivation rec { pname = "mc"; - version = "4.8.26"; + version = "4.8.27"; src = fetchurl { url = "https://www.midnight-commander.org/downloads/${pname}-${version}.tar.xz"; - sha256 = "sha256-xt6txQWV8tmiLcbCmanyizk+NYNG6/bKREqEadwWbCc="; + sha256 = "sha256-Mb5ZIl/6mSCBbpqLO+CrIloW0Z5Pr0aJDyW9/6AqT/Q="; }; nativeBuildInputs = [ pkg-config autoreconfHook unzip ] From d14b18dd6951766d607b83aebe0d86c6e9e9f2b0 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Wed, 4 Aug 2021 11:14:45 +0200 Subject: [PATCH 02/19] chromiumDev: Fix the build Note: I've only tested this with llvmPackages_git but it should work with llvmPackages_13 as well. fieldtrial_testing_like_official_build was renamed to disable_fieldtrial_testing_config: https://github.com/chromium/chromium/commit/486e9d58c0980be0d50054064e0b7d79446de071 (cherry picked from commit 1e372f40047912013568d731208655bd9dab526c) --- .../networking/browsers/chromium/common.nix | 5 ++++- .../networking/browsers/chromium/default.nix | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 269645977cb..b42e59db89c 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -252,7 +252,6 @@ let clang_use_chrome_plugins = false; blink_symbol_level = 0; symbol_level = 0; - fieldtrial_testing_like_official_build = true; # Google API key, see: https://www.chromium.org/developers/how-tos/api-keys # Note: The API key is for NixOS/nixpkgs use ONLY. @@ -273,6 +272,10 @@ let enable_widevine = true; # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture: rtc_use_pipewire = true; + } // optionalAttrs (!chromiumVersionAtLeast "94") { + fieldtrial_testing_like_official_build = true; + } // optionalAttrs (chromiumVersionAtLeast "94") { + disable_fieldtrial_testing_config = true; } // optionalAttrs proprietaryCodecs { # enable support for the H.264 codec proprietary_codecs = true; diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index c7be4663bbe..c157b64de64 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -1,5 +1,5 @@ { newScope, config, stdenv, fetchurl, makeWrapper -, llvmPackages_11, llvmPackages_12, ed, gnugrep, coreutils, xdg-utils +, llvmPackages_12, llvmPackages_13, ed, gnugrep, coreutils, xdg-utils , glib, gtk3, gnome, gsettings-desktop-schemas, gn, fetchgit , libva, pipewire, wayland , gcc, nspr, nss, runCommand @@ -19,7 +19,7 @@ }: let - llvmPackages = llvmPackages_11; + llvmPackages = llvmPackages_12; stdenv = llvmPackages.stdenv; callPackage = newScope chromium; @@ -38,9 +38,9 @@ let inherit (upstream-info.deps.gn) url rev sha256; }; }); - } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "90") { - llvmPackages = llvmPackages_12; - stdenv = llvmPackages_12.stdenv; + } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "94") rec { + llvmPackages = llvmPackages_13; + stdenv = llvmPackages.stdenv; }); browser = callPackage ./browser.nix { inherit channel enableWideVine ungoogled; }; From c803b6f93a64c2619da85e2e2ef172d5b3a0c73d Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Thu, 5 Aug 2021 11:23:19 +0200 Subject: [PATCH 03/19] chromiumBeta: 93.0.4577.18 -> 93.0.4577.25 (cherry picked from commit 39d95aa8e96f5508a9ffabf96513fc17151e2e81) --- .../networking/browsers/chromium/upstream-info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 4c54a13e9ff..d9745c41d80 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -18,9 +18,9 @@ } }, "beta": { - "version": "93.0.4577.18", - "sha256": "1h1ppyizj5vbnrv11iy9vlcpcv8mgb9r8m2zmz6vp7q1ch6w0w4x", - "sha256bin64": "1s5qj0pd79qbchq3awhxc86l9vmi6304z7sd9ls9f8q138789cha", + "version": "93.0.4577.25", + "sha256": "09v7wyy9xwrpzmsa030j8jjww30jps3lbvlq4bzppdg04fk6rbsn", + "sha256bin64": "1l86aqym4dxsrp81ppv5cwyki4wnh7cpqy4dw88kdxgqbiwwii27", "deps": { "gn": { "version": "2021-07-08", From 4c19443f541bee0cfe849ba9dd09ed8a71ed6007 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Mon, 9 Aug 2021 11:57:15 +0200 Subject: [PATCH 04/19] chromium: Restructure the code This should make it a little bit easier to read. The (native) build inputs and options now have a consistent order, defaultDependencies and yasm aren't required anymore, and this adds some brief comments. Note: The third_party/node/linux/node-linux-x64/bin/node change causes rebuilds. (cherry picked from commit 4a5b36725919c002751228515d518f23772f988e) --- .../networking/browsers/chromium/common.nix | 94 ++++++++++--------- 1 file changed, 51 insertions(+), 43 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index b42e59db89c..781d1c09207 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -1,40 +1,49 @@ -{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, fetchurl +{ stdenv, lib, fetchurl, fetchpatch +# Channel data: +, channel, upstream-info -# default dependencies -, gnutar, bzip2, flac, speex, libopus +# Native build inputs: +, ninja, pkg-config +, python2, python3, perl +, gnutar, which +, llvmPackages +# postPatch: +, pkgsBuildHost +# configurePhase: +, gnChromium + +# Build inputs: +, libpng +, bzip2, flac, speex, libopus , libevent, expat, libjpeg, snappy -, libpng, libcap -, xdg-utils, yasm, nasm, minizip, libwebp -, libusb1, pciutils, nss, re2 - -, python2, python3, perl, pkg-config -, nspr, systemd, libkrb5 +, libcap +, xdg-utils, minizip, libwebp +, libusb1, re2 +, ffmpeg, libxslt, libxml2 +, nasm +, nspr, nss, systemd , util-linux, alsa-lib -, bison, gperf +, bison, gperf, libkrb5 , glib, gtk3, dbus-glib -, glibc , libXScrnSaver, libXcursor, libXtst, libxshmfence, libGLU, libGL -, protobuf, speechd, libXdamage, cups -, ffmpeg, libxslt, libxml2, at-spi2-core -, jre8 +, mesa +, pciutils, protobuf, speechd, libXdamage, at-spi2-core , pipewire , libva -, libdrm, wayland, mesa, libxkbcommon # Ozone +, libdrm, wayland, libxkbcommon # Ozone , curl +# postPatch: +, glibc # gconv + locale -# optional dependencies -, libgcrypt ? null # gnomeSupport || cupsSupport - -# package customization +# Package customization: , gnomeSupport ? false, gnome2 ? null , gnomeKeyringSupport ? false, libgnome-keyring3 ? null +, cupsSupport ? true, cups ? null , proprietaryCodecs ? true -, cupsSupport ? true , pulseSupport ? false, libpulseaudio ? null , ungoogled ? false, ungoogled-chromium - -, channel -, upstream-info +# Optional dependencies: +, libgcrypt ? null # gnomeSupport || cupsSupport }: buildFun: @@ -91,17 +100,6 @@ let withCustomModes = true; }; - defaultDependencies = [ - (libpng.override { apngSupport = false; }) # https://bugs.chromium.org/p/chromium/issues/detail?id=752403 - bzip2 flac speex opusWithCustomModes - libevent expat libjpeg snappy - libcap - xdg-utils minizip libwebp - libusb1 re2 - ffmpeg libxslt libxml2 - nasm - ]; - # build paths and release info packageName = extraAttrs.packageName or extraAttrs.name; buildType = "Release"; @@ -136,12 +134,20 @@ let nativeBuildInputs = [ ninja pkg-config - python2WithPackages python3WithPackages perl nodejs + python2WithPackages python3WithPackages perl gnutar which llvmPackages.bintools ]; - buildInputs = defaultDependencies ++ [ + buildInputs = [ + (libpng.override { apngSupport = false; }) # https://bugs.chromium.org/p/chromium/issues/detail?id=752403 + bzip2 flac speex opusWithCustomModes + libevent expat libjpeg snappy + libcap + xdg-utils minizip libwebp + libusb1 re2 + ffmpeg libxslt libxml2 + nasm nspr nss systemd util-linux alsa-lib bison gperf libkrb5 @@ -153,14 +159,16 @@ let libva libdrm wayland mesa.drivers libxkbcommon curl - ] ++ optional gnomeKeyringSupport libgnome-keyring3 - ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ] + ] ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ] + ++ optional gnomeKeyringSupport libgnome-keyring3 ++ optionals cupsSupport [ libgcrypt cups ] ++ optional pulseSupport libpulseaudio; patches = [ - ./patches/no-build-timestamps.patch # Optional patch to use SOURCE_DATE_EPOCH in compute_build_timestamp.py (should be upstreamed) - ./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags + # Optional patch to use SOURCE_DATE_EPOCH in compute_build_timestamp.py (should be upstreamed): + ./patches/no-build-timestamps.patch + # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags: + ./patches/widevine-79.patch # Fix the build by adding a missing dependency (s. https://crbug.com/1197837): ./patches/fix-missing-atspi2-dependency.patch ] ++ lib.optionals (chromiumVersionAtLeast "93") [ @@ -226,8 +234,8 @@ let patchShebangs . # Link to our own Node.js and Java (required during the build): mkdir -p third_party/node/linux/node-linux-x64/bin - ln -s "$(command -v node)" third_party/node/linux/node-linux-x64/bin/node - ln -s "${jre8}/bin/java" third_party/jdk/current/bin/ + ln -s "${pkgsBuildHost.nodejs}/bin/node" third_party/node/linux/node-linux-x64/bin/node + ln -s "${pkgsBuildHost.jre8}/bin/java" third_party/jdk/current/bin/ # Allow building against system libraries in official builds sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py @@ -259,9 +267,9 @@ let google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI"; # Optional features: - use_cups = cupsSupport; use_gio = gnomeSupport; use_gnome_keyring = gnomeKeyringSupport; + use_cups = cupsSupport; # Feature overrides: # Native Client support was deprecated in 2020 and support will end in June 2021: From 905b1242d890507a3c4b58048066ae92fcb00123 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Wed, 11 Aug 2021 22:59:11 +0200 Subject: [PATCH 05/19] chromiumDev: 94.0.4595.0 -> 94.0.4603.0 (cherry picked from commit 624cb8bc2b4fd38db3eff105be197d5b875bc61d) --- .../networking/browsers/chromium/upstream-info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index d9745c41d80..b70b4e9aae9 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -31,9 +31,9 @@ } }, "dev": { - "version": "94.0.4595.0", - "sha256": "0ksd7vqpbiplbg2xpm566z7p7qp57r27a3pk6ss1qz8v18490092", - "sha256bin64": "1kibyhgwcgby3hnhjdg2vrgbj4dvvbicqlcj4id9761zw1jhz8r4", + "version": "94.0.4603.0", + "sha256": "1mhb7y7mhjbi5m79izcqvc6pjmgxvlk9vvr273k29gr2zq2m2fv3", + "sha256bin64": "1rqprc2vkyygwwwjk25xa2av30bqbx5dzs6nwhnzsdqwic5wdbbz", "deps": { "gn": { "version": "2021-07-31", From 3670f55599ccfccd0b1bb673949348a64ea1a478 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Wed, 11 Aug 2021 22:57:23 +0200 Subject: [PATCH 06/19] chromiumBeta: Build with LLVM 13 (cherry picked from commit 403ce1a9a3624e7b87606b99ea15f531fa17f8e7) --- pkgs/applications/networking/browsers/chromium/common.nix | 8 -------- .../applications/networking/browsers/chromium/default.nix | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 781d1c09207..37e43298df1 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -171,14 +171,6 @@ let ./patches/widevine-79.patch # Fix the build by adding a missing dependency (s. https://crbug.com/1197837): ./patches/fix-missing-atspi2-dependency.patch - ] ++ lib.optionals (chromiumVersionAtLeast "93") [ - # We need to revert this patch to build M93 with LLVM 12. - (githubPatch { - # Reland "Replace 'blacklist' with 'ignorelist' in ./tools/msan/." - commit = "9d080c0934b848ee4a05013c78641e612fcc1e03"; - sha256 = "1bxdhxmiy6h4acq26lq43x2mxx6rawmfmlgsh5j7w8kyhkw5af0c"; - revert = true; - }) ]; postPatch = '' diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index c157b64de64..db11bda740b 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -38,7 +38,7 @@ let inherit (upstream-info.deps.gn) url rev sha256; }; }); - } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "94") rec { + } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "93") rec { llvmPackages = llvmPackages_13; stdenv = llvmPackages.stdenv; }); From f2e895536624c64ade6f7a0b196c83cc8e077391 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Thu, 12 Aug 2021 22:47:41 +0200 Subject: [PATCH 07/19] chromiumBeta: 93.0.4577.25 -> 93.0.4577.42 (cherry picked from commit badee4e70a70b126830fb3964c90e72edfafa1bc) --- .../networking/browsers/chromium/upstream-info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index b70b4e9aae9..3df391e5dbf 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -18,9 +18,9 @@ } }, "beta": { - "version": "93.0.4577.25", - "sha256": "09v7wyy9xwrpzmsa030j8jjww30jps3lbvlq4bzppdg04fk6rbsn", - "sha256bin64": "1l86aqym4dxsrp81ppv5cwyki4wnh7cpqy4dw88kdxgqbiwwii27", + "version": "93.0.4577.42", + "sha256": "180lywcimhlcwbxmn37814hd96bqnqrp3whbzv6ln3hwca2da4hl", + "sha256bin64": "19px9h9vf9p2ipirv8ryaxvhfkls0nfiw7jz1d4h61r3r6ay5fc4", "deps": { "gn": { "version": "2021-07-08", From 1ec8df7a950fc024ab0e3fa62fb92c5a13184817 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Sat, 14 Aug 2021 12:18:58 +0200 Subject: [PATCH 08/19] chromiumDev: Fix the installation phase (cherry picked from commit dd36a7c487f03d8673bd41bd9fda72d0d8252675) --- pkgs/applications/networking/browsers/chromium/browser.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index a86a82fcb5f..26c2909da54 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -16,7 +16,8 @@ mkChromiumDerivation (base: rec { cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/" cp -v "$buildPath/icudtl.dat" "$libExecPath/" cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" - cp -v "$buildPath/crashpad_handler" "$libExecPath/" + ${lib.optionalString (channel != "dev") ''cp -v "$buildPath/crashpad_handler" "$libExecPath/"''} + ${lib.optionalString (channel == "dev") ''cp -v "$buildPath/chrome_crashpad_handler" "$libExecPath/"''} cp -v "$buildPath/chrome" "$libExecPath/$packageName" # Swiftshader From d3f6410eff0ff38b988510e72b355a4850e70bc5 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Sat, 14 Aug 2021 12:15:24 +0200 Subject: [PATCH 09/19] chromium: Document the main gn build flags (cherry picked from commit a1fdebcef0befd3c81955e5a3d11292a819f84fc) --- .../networking/browsers/chromium/common.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 37e43298df1..1fa11acb8a4 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -243,15 +243,28 @@ let gnFlags = mkGnFlags ({ # Main build and toolchain settings: + # Create an official and optimized release build (only official builds + # should be distributed to users, as non-official builds are intended for + # development and may not be configured appropriately for production, + # e.g. unsafe developer builds have developer-friendly features that may + # weaken or disable security measures like sandboxing or ASLR): is_official_build = true; + # Build Chromium using the system toolchain (for Linux distributions): custom_toolchain = "//build/toolchain/linux/unbundle:default"; host_toolchain = "//build/toolchain/linux/unbundle:default"; + # Don't build against a sysroot image downloaded from Cloud Storage: use_sysroot = false; + # The default value is hardcoded instead of using pkg-config: system_wayland_scanner_path = "${wayland}/bin/wayland-scanner"; + # Because we use a different toolchain / compiler version: treat_warnings_as_errors = false; + # We aren't compiling with Chrome's Clang (would enable Chrome-specific + # plugins for enforcing coding guidelines, etc.): clang_use_chrome_plugins = false; - blink_symbol_level = 0; + # Disable symbols (they would negatively affect the performance of the + # build since the symbols are large and dealing with them is slow): symbol_level = 0; + blink_symbol_level = 0; # Google API key, see: https://www.chromium.org/developers/how-tos/api-keys # Note: The API key is for NixOS/nixpkgs use ONLY. From 3fa4af5d2963d6d96a259ff98784778b11712c4d Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Thu, 19 Aug 2021 10:49:23 +0200 Subject: [PATCH 10/19] chromiumBeta: 93.0.4577.42 -> 93.0.4577.51 (cherry picked from commit 2834fea828e632b4152b7f14b74d729eacceec66) --- .../networking/browsers/chromium/upstream-info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 3df391e5dbf..f54eaae0344 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -18,9 +18,9 @@ } }, "beta": { - "version": "93.0.4577.42", - "sha256": "180lywcimhlcwbxmn37814hd96bqnqrp3whbzv6ln3hwca2da4hl", - "sha256bin64": "19px9h9vf9p2ipirv8ryaxvhfkls0nfiw7jz1d4h61r3r6ay5fc4", + "version": "93.0.4577.51", + "sha256": "0b3mx5ns4pbrwc7s2iz8ffv8lhay6p9gj0dnsd1qzxgqwgrv37h5", + "sha256bin64": "1b8ypv14c5ky789dm17czv4yf7v21lwhnf2ygkdzryvd3i056nsz", "deps": { "gn": { "version": "2021-07-08", From d3e31a97e3ea4fda714584b60dc279b4a3794f7d Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Fri, 20 Aug 2021 10:12:40 +0200 Subject: [PATCH 11/19] chromiumDev: 94.0.4603.0 -> 94.0.4606.12 I've upstreamed fix-missing-atspi2-dependency.patch. (cherry picked from commit 6ca181b3608eba3d21325ed32c1958536fa7b7df) --- .../networking/browsers/chromium/common.nix | 1 + .../networking/browsers/chromium/upstream-info.json | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 1fa11acb8a4..8a14225c151 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -169,6 +169,7 @@ let ./patches/no-build-timestamps.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags: ./patches/widevine-79.patch + ] ++ lib.optionals (versionRange "91" "94") [ # Fix the build by adding a missing dependency (s. https://crbug.com/1197837): ./patches/fix-missing-atspi2-dependency.patch ]; diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index f54eaae0344..3012fdba1f5 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -31,15 +31,15 @@ } }, "dev": { - "version": "94.0.4603.0", - "sha256": "1mhb7y7mhjbi5m79izcqvc6pjmgxvlk9vvr273k29gr2zq2m2fv3", - "sha256bin64": "1rqprc2vkyygwwwjk25xa2av30bqbx5dzs6nwhnzsdqwic5wdbbz", + "version": "94.0.4606.12", + "sha256": "1yv34wahg1f0l35kvlm3x17wvqdg8yyzmjj6naz2lnl5qai89zr8", + "sha256bin64": "19z9yzj6ig5ym8f9zzs8b4yixkspc0x62sz526r39803pbgs7s7i", "deps": { "gn": { - "version": "2021-07-31", + "version": "2021-08-11", "url": "https://gn.googlesource.com/gn", - "rev": "eea3906f0e2a8d3622080127d2005ff214d51383", - "sha256": "1wc969jrivb502c45wdcbgh0c5888nqxla05is9bimkrk9rqppw3" + "rev": "69ec4fca1fa69ddadae13f9e6b7507efa0675263", + "sha256": "031znmkbm504iim5jvg3gmazj4qnkfc7zg8aymjsij18fhf7piz0" } } }, From 9e0211b13cacbbec91f22fc6761601b12dd0ba30 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Fri, 20 Aug 2021 13:48:07 +0200 Subject: [PATCH 12/19] google-chrome-dev: Fix the build crashpad_handler was renamed to chrome_crashpad_handler. (cherry picked from commit 88336eea953611be8e7da63661000ec7eb9f6032) --- .../networking/browsers/google-chrome/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix index 61d304becfd..34cc5bb9160 100644 --- a/pkgs/applications/networking/browsers/google-chrome/default.nix +++ b/pkgs/applications/networking/browsers/google-chrome/default.nix @@ -75,6 +75,10 @@ let suffix = if channel != "stable" then "-" + channel else ""; + crashpadHandlerBinary = if lib.versionAtLeast version "94" + then "chrome_crashpad_handler" + else "crashpad_handler"; + in stdenv.mkDerivation { inherit version; @@ -146,7 +150,7 @@ in stdenv.mkDerivation { --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ --add-flags ${escapeShellArg commandLineArgs} - for elf in $out/share/google/$appname/{chrome,chrome-sandbox,crashpad_handler,nacl_helper}; do + for elf in $out/share/google/$appname/{chrome,chrome-sandbox,${crashpadHandlerBinary},nacl_helper}; do patchelf --set-rpath $rpath $elf patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf done From 3de9ca8a8df50ffffe1e31f614ea2d1d97eb29b7 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Tue, 24 Aug 2021 21:54:31 +0200 Subject: [PATCH 13/19] chromiumBeta: 93.0.4577.51 -> 93.0.4577.58 (cherry picked from commit d0dad3f519117db63fa2f101c47c7c8e206a294a) --- .../networking/browsers/chromium/upstream-info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 3012fdba1f5..00731c0c399 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -18,9 +18,9 @@ } }, "beta": { - "version": "93.0.4577.51", - "sha256": "0b3mx5ns4pbrwc7s2iz8ffv8lhay6p9gj0dnsd1qzxgqwgrv37h5", - "sha256bin64": "1b8ypv14c5ky789dm17czv4yf7v21lwhnf2ygkdzryvd3i056nsz", + "version": "93.0.4577.58", + "sha256": "1i9ygy99lg9h0qyl46c02id9d1ig3brkvr8va0blpf7h8pg9251s", + "sha256bin64": "16cyn74sxz8lwdyb7x3z115czk9xvs67bb2bbnhrhnaszhhrzs4j", "deps": { "gn": { "version": "2021-07-08", From dd2d264062772bd9443ce9afe9f53c26315b3510 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Wed, 25 Aug 2021 22:49:01 +0200 Subject: [PATCH 14/19] chromiumDev: 94.0.4606.12 -> 94.0.4606.20 (cherry picked from commit 5bb4a67959cebbe8b24021c0a583a614245a2e20) --- .../networking/browsers/chromium/upstream-info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 00731c0c399..9404851247b 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -31,9 +31,9 @@ } }, "dev": { - "version": "94.0.4606.12", - "sha256": "1yv34wahg1f0l35kvlm3x17wvqdg8yyzmjj6naz2lnl5qai89zr8", - "sha256bin64": "19z9yzj6ig5ym8f9zzs8b4yixkspc0x62sz526r39803pbgs7s7i", + "version": "94.0.4606.20", + "sha256": "0wp9fdw7jkrzhaz8dils7k1ssd6v7kkiz4y9l81s37xxi3xj1drg", + "sha256bin64": "059rn0jj2cajrxx57gmr0ndkgixgfqazb73rxbprqj4857w4d5da", "deps": { "gn": { "version": "2021-08-11", From 2af37d53bd6f0c3d2458e16cfb2eeff75ef2aeb8 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Fri, 27 Aug 2021 20:47:29 +0200 Subject: [PATCH 15/19] chromiumBeta: 93.0.4577.58 -> 94.0.4606.20 (cherry picked from commit 33a4dae995e39360da9b70024da3e1267318ff84) --- .../networking/browsers/chromium/upstream-info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 9404851247b..93fcf621f93 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -18,15 +18,15 @@ } }, "beta": { - "version": "93.0.4577.58", - "sha256": "1i9ygy99lg9h0qyl46c02id9d1ig3brkvr8va0blpf7h8pg9251s", - "sha256bin64": "16cyn74sxz8lwdyb7x3z115czk9xvs67bb2bbnhrhnaszhhrzs4j", + "version": "94.0.4606.20", + "sha256": "0wp9fdw7jkrzhaz8dils7k1ssd6v7kkiz4y9l81s37xxi3xj1drg", + "sha256bin64": "0ahc09qv78vmx72kqhjj2lwcniqn9q73vkc1b9lyv184ai3269sq", "deps": { "gn": { - "version": "2021-07-08", + "version": "2021-08-11", "url": "https://gn.googlesource.com/gn", - "rev": "24e2f7df92641de0351a96096fb2c490b2436bb8", - "sha256": "1lwkyhfhw0zd7daqz466n7x5cddf0danr799h4jg3s0yvd4galjl" + "rev": "69ec4fca1fa69ddadae13f9e6b7507efa0675263", + "sha256": "031znmkbm504iim5jvg3gmazj4qnkfc7zg8aymjsij18fhf7piz0" } } }, From dae2c39b9e24478a0f9f6355bd3fc7ff2c6381c3 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Fri, 27 Aug 2021 20:47:30 +0200 Subject: [PATCH 16/19] chromiumDev: 94.0.4606.20 -> 95.0.4621.4 (cherry picked from commit 04fa5e852a0c467cfa29dce74500705ed5d21e0c) --- .../networking/browsers/chromium/upstream-info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 93fcf621f93..7ea33766001 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -31,9 +31,9 @@ } }, "dev": { - "version": "94.0.4606.20", - "sha256": "0wp9fdw7jkrzhaz8dils7k1ssd6v7kkiz4y9l81s37xxi3xj1drg", - "sha256bin64": "059rn0jj2cajrxx57gmr0ndkgixgfqazb73rxbprqj4857w4d5da", + "version": "95.0.4621.4", + "sha256": "06fgdyg3bychqhf31fikk7s4qp3rc7hmsvm6p2bj9ascd6kzjzx8", + "sha256bin64": "1bvkdrc7cznb9xrnld642qj3z7vbyin9xbq0pp6kqva4gck41cyn", "deps": { "gn": { "version": "2021-08-11", From 21edf9c42f6e2da542fa82a533afb95e83a75a35 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Sat, 28 Aug 2021 23:12:27 +0200 Subject: [PATCH 17/19] chromium: Move the version helper functions into default.nix Those functions can be required anywhere in the Nix expressions for Chromium and therefore they should be defined in default.nix and inherited where necessary. This fixes the chromiumBeta build which failed because I forgot to update the channel conditional when the beta channel advanced to M94. This is exactly why the version based conditionals should be used everywhere. (cherry picked from commit 186315def77d62b53ad6ccdf57ec9593edbe8bc3) --- .../networking/browsers/chromium/browser.nix | 9 ++++-- .../networking/browsers/chromium/common.nix | 14 ++------- .../networking/browsers/chromium/default.nix | 30 +++++++++++++++---- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index 26c2909da54..8b80f8f8a6e 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -1,4 +1,7 @@ -{ lib, mkChromiumDerivation, channel, enableWideVine, ungoogled }: +{ lib, mkChromiumDerivation +, channel, chromiumVersionAtLeast +, enableWideVine, ungoogled +}: with lib; @@ -16,8 +19,8 @@ mkChromiumDerivation (base: rec { cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/" cp -v "$buildPath/icudtl.dat" "$libExecPath/" cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" - ${lib.optionalString (channel != "dev") ''cp -v "$buildPath/crashpad_handler" "$libExecPath/"''} - ${lib.optionalString (channel == "dev") ''cp -v "$buildPath/chrome_crashpad_handler" "$libExecPath/"''} + ${lib.optionalString (!chromiumVersionAtLeast "94") ''cp -v "$buildPath/crashpad_handler" "$libExecPath/"''} + ${lib.optionalString (chromiumVersionAtLeast "94") ''cp -v "$buildPath/chrome_crashpad_handler" "$libExecPath/"''} cp -v "$buildPath/chrome" "$libExecPath/$packageName" # Swiftshader diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 8a14225c151..9e174707e40 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -1,6 +1,8 @@ { stdenv, lib, fetchurl, fetchpatch # Channel data: , channel, upstream-info +# Helper functions: +, chromiumVersionAtLeast, versionRange # Native build inputs: , ninja, pkg-config @@ -106,18 +108,6 @@ let buildPath = "out/${buildType}"; libExecPath = "$out/libexec/${packageName}"; - warnObsoleteVersionConditional = min-version: result: - let ungoogled-version = (importJSON ./upstream-info.json).ungoogled-chromium.version; - in warnIf (versionAtLeast ungoogled-version min-version) "chromium: ungoogled version ${ungoogled-version} is newer than a conditional bounded at ${min-version}. You can safely delete it." - result; - chromiumVersionAtLeast = min-version: - let result = versionAtLeast upstream-info.version min-version; - in warnObsoleteVersionConditional min-version result; - versionRange = min-version: upto-version: - let inherit (upstream-info) version; - result = versionAtLeast version min-version && versionOlder version upto-version; - in warnObsoleteVersionConditional upto-version result; - ungoogler = ungoogled-chromium { inherit (upstream-info.deps.ungoogled-patches) rev sha256; }; diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index db11bda740b..86ee33f3510 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -22,15 +22,31 @@ let llvmPackages = llvmPackages_12; stdenv = llvmPackages.stdenv; + upstream-info = (lib.importJSON ./upstream-info.json).${channel}; + + # Helper functions for changes that depend on specific versions: + warnObsoleteVersionConditional = min-version: result: + let ungoogled-version = (lib.importJSON ./upstream-info.json).ungoogled-chromium.version; + in lib.warnIf + (lib.versionAtLeast ungoogled-version min-version) + "chromium: ungoogled version ${ungoogled-version} is newer than a conditional bounded at ${min-version}. You can safely delete it." + result; + chromiumVersionAtLeast = min-version: + let result = lib.versionAtLeast upstream-info.version min-version; + in warnObsoleteVersionConditional min-version result; + versionRange = min-version: upto-version: + let inherit (upstream-info) version; + result = lib.versionAtLeast version min-version && lib.versionOlder version upto-version; + in warnObsoleteVersionConditional upto-version result; + callPackage = newScope chromium; chromium = rec { - inherit stdenv llvmPackages; - - upstream-info = (lib.importJSON ./upstream-info.json).${channel}; + inherit stdenv llvmPackages upstream-info; mkChromiumDerivation = callPackage ./common.nix ({ - inherit channel gnome2 gnomeSupport gnomeKeyringSupport proprietaryCodecs + inherit channel chromiumVersionAtLeast versionRange; + inherit gnome2 gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport ungoogled; gnChromium = gn.overrideAttrs (oldAttrs: { inherit (upstream-info.deps.gn) version; @@ -38,12 +54,14 @@ let inherit (upstream-info.deps.gn) url rev sha256; }; }); - } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "93") rec { + } // lib.optionalAttrs (chromiumVersionAtLeast "93") rec { llvmPackages = llvmPackages_13; stdenv = llvmPackages.stdenv; }); - browser = callPackage ./browser.nix { inherit channel enableWideVine ungoogled; }; + browser = callPackage ./browser.nix { + inherit channel chromiumVersionAtLeast enableWideVine ungoogled; + }; ungoogled-chromium = callPackage ./ungoogled.nix {}; }; From 3bfe8801e3d79a1104135f1ee47da638d60d773a Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Thu, 2 Sep 2021 11:12:42 +0200 Subject: [PATCH 18/19] chromiumBeta: 94.0.4606.20 -> 94.0.4606.31 (cherry picked from commit 55e9fc96666eecd1d4fba29a37b6f474b60667c4) --- .../networking/browsers/chromium/upstream-info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 7ea33766001..b6f81f77a21 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -18,9 +18,9 @@ } }, "beta": { - "version": "94.0.4606.20", - "sha256": "0wp9fdw7jkrzhaz8dils7k1ssd6v7kkiz4y9l81s37xxi3xj1drg", - "sha256bin64": "0ahc09qv78vmx72kqhjj2lwcniqn9q73vkc1b9lyv184ai3269sq", + "version": "94.0.4606.31", + "sha256": "1f5hk2acd9lj88m2acz8ik85fh5h3giz65p19dpfg92zsyly54nf", + "sha256bin64": "1ypf9j51a4kmx27x3s9izzbd2r094idz194gwhbdly75l1x8hk4z", "deps": { "gn": { "version": "2021-08-11", From b0c90ba71b3bb151ae7ad7203d3caa213369d46e Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Fri, 3 Sep 2021 11:49:46 +0200 Subject: [PATCH 19/19] chromiumDev: 95.0.4621.4 -> 95.0.4628.3 (cherry picked from commit 79725cdc4d81395191a3603a61fdb14eb739b9cf) --- .../networking/browsers/chromium/upstream-info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index b6f81f77a21..34d9dcf73a8 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -31,9 +31,9 @@ } }, "dev": { - "version": "95.0.4621.4", - "sha256": "06fgdyg3bychqhf31fikk7s4qp3rc7hmsvm6p2bj9ascd6kzjzx8", - "sha256bin64": "1bvkdrc7cznb9xrnld642qj3z7vbyin9xbq0pp6kqva4gck41cyn", + "version": "95.0.4628.3", + "sha256": "04r2db9kl77lp4jyyj01pc70jkxrifbnz5hic4r91lf8m2gf1fa3", + "sha256bin64": "1ssf8jdk6gn2mrnyvgz2c9nkk70rsidd5y26w2kx3s0cllfr7d96", "deps": { "gn": { "version": "2021-08-11",