From 268600e6b787fb6310634a2ab48e541c6357b0e9 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Sat, 30 Jan 2021 19:03:45 +0100 Subject: ungoogled-chromium: 87.0.4280.141 -> 88.0.4324.104 Unfortunately this requires a crazy hack to support building with Google's proprietary Widevine DRM technology as that requires fetching the Google Chrome sources (see also 86ff1e45cec). The hack is required because ungoogled-chromium doesn't always use tags that correspond to a Google Chrome release. --- .../networking/browsers/chromium/default.nix | 25 +++++++++++++++------- .../networking/browsers/chromium/update.py | 15 ++++++++++--- .../browsers/chromium/upstream-info.json | 16 +++++++------- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index f8eee605b8ef..9454347af368 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -55,14 +55,23 @@ let pkgSuffix = if channel == "dev" then "unstable" else (if channel == "ungoogled-chromium" then "stable" else channel); pkgName = "google-chrome-${pkgSuffix}"; - chromeSrc = fetchurl { - urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [ - "https://dl.google.com/linux/chrome/deb/pool/main/g" - "http://95.31.35.30/chrome/pool/main/g" - "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g" - "http://repo.fdzh.org/chrome/deb/pool/main/g" - ]; - sha256 = chromium.upstream-info.sha256bin64; + chromeSrc = + let + # Use the latest stable Chrome version if necessary: + version = if chromium.upstream-info.sha256bin64 != null + then chromium.upstream-info.version + else (lib.importJSON ./upstream-info.json).stable.version; + sha256 = if chromium.upstream-info.sha256bin64 != null + then chromium.upstream-info.sha256bin64 + else (lib.importJSON ./upstream-info.json).stable.sha256bin64; + in fetchurl { + urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [ + "https://dl.google.com/linux/chrome/deb/pool/main/g" + "http://95.31.35.30/chrome/pool/main/g" + "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g" + "http://repo.fdzh.org/chrome/deb/pool/main/g" + ]; + inherit sha256; }; mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}"; diff --git a/pkgs/applications/networking/browsers/chromium/update.py b/pkgs/applications/networking/browsers/chromium/update.py index ec656ef8527f..d6788fa41927 100755 --- a/pkgs/applications/networking/browsers/chromium/update.py +++ b/pkgs/applications/networking/browsers/chromium/update.py @@ -166,9 +166,18 @@ with urlopen(HISTORY_URL) as resp: f'{DEB_URL}/google-chrome-{google_chrome_suffix}/' + f'google-chrome-{google_chrome_suffix}_{build["version"]}-1_amd64.deb') except subprocess.CalledProcessError: - # This build isn't actually available yet. Continue to - # the next one. - continue + if (channel_name == 'ungoogled-chromium' and 'sha256' in channel and + build['version'].split('.')[0] == last_channels['stable']['version'].split('.')[0]): + # Sometimes ungoogled-chromium is updated to a newer tag than + # the latest stable Chromium version. In this case we'll set + # sha256bin64 to null and the Nixpkgs code will fall back to + # the latest stable Google Chrome (only required for + # Widevine/DRM which is disabled by default): + channel['sha256bin64'] = None + else: + # This build isn't actually available yet. Continue to + # the next one. + continue channel['deps'] = get_channel_dependencies(channel['version']) if channel_name == 'stable': diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index a2d19900d8c8..46228e2b27d0 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -44,19 +44,19 @@ } }, "ungoogled-chromium": { - "version": "87.0.4280.141", - "sha256": "0x9k809m36pfirnw2vnr9pk93nxdbgrvna0xf1rs3q91zkbr2x8l", - "sha256bin64": "0wq3yi0qyxzcid390w5rh4xjq92fjajvlifjl70g6sqnbk6vgvdp", + "version": "88.0.4324.104", + "sha256": "0iq1rmfiqmxsj6skbi17g007zqgjsb50b59slfni2n4mz06xmgbx", + "sha256bin64": null, "deps": { "gn": { - "version": "2020-09-09", + "version": "2020-11-05", "url": "https://gn.googlesource.com/gn", - "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2", - "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk" + "rev": "53d92014bf94c3893886470a1c7c1289f8818db0", + "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9" }, "ungoogled-patches": { - "rev": "87.0.4280.141-1", - "sha256": "0r09d27jrdz01rcwifchbq7ksh2bac15h8svq18jx426mr56dzla" + "rev": "88.0.4324.104-1", + "sha256": "09x6kxd99a274mln3k3ckly6swyp5qdnkkp8p6grs9nr5jrgqqx5" } } } -- cgit v1.2.3