diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix index c5cbee196521..c23a8cead3a7 100644 --- a/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix @@ -82,6 +82,5 @@ mkChromiumDerivation (base: rec { platforms = platforms.linux; hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else []; timeout = 172800; # 48 hours (increased from the Hydra default of 10h) - broken = channel == "dev"; # Blocked on https://bugs.chromium.org/p/chromium/issues/detail?id=1141896 }; }) diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix index 2accb1a7ab21..17814c26caa4 100644 --- a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix @@ -18,20 +18,14 @@ , ffmpeg, libxslt, libxml2, at-spi2-core , jre8 , pipewire_0_2 +, libva # optional dependencies , libgcrypt ? null # gnomeSupport || cupsSupport -, libva ? null # useVaapi , libdrm ? null, wayland ? null, mesa ? null, libxkbcommon ? null # useOzone # package customization -, useOzone ? false -, useVaapi ? !(useOzone || stdenv.isAarch64) # Built if supported, but disabled in the wrapper -# VA-API TODOs: -# - Ozone: M81 fails to build due to "ozone_platform_gbm = false" -# - Possible solutions: Write a patch to fix the build (wrong gn dependencies) -# or build with minigbm -# - AArch64: Causes serious regressions (https://github.com/NixOS/nixpkgs/pull/85253#issuecomment-614405879) +, useOzone ? true , gnomeSupport ? false, gnome ? null , gnomeKeyringSupport ? false, libgnome-keyring3 ? null , proprietaryCodecs ? true @@ -148,8 +142,8 @@ let pciutils protobuf speechd libXdamage at-spi2-core jre pipewire_0_2 - ] ++ optional useVaapi libva - ++ optional gnomeKeyringSupport libgnome-keyring3 + libva + ] ++ optional gnomeKeyringSupport libgnome-keyring3 ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] ++ optionals cupsSupport [ libgcrypt cups ] ++ optional pulseSupport libpulseaudio @@ -159,9 +153,6 @@ let ./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 (versionRange "68" "72") ( githubPatch "" "0000000000000000000000000000000000000000000000000000000000000000" ) - ] ++ optionals (useVaapi && versionRange "86" "87") [ - # Check for enable-accelerated-video-decode on Linux: - (githubPatch "54deb9811ca9bd2327def5c05ba6987b8c7a0897" "11jvxjlkzz1hm0pvfyr88j7z3zbwzplyl5idkx92l2lzv4459c8d") ]; postPatch = '' @@ -234,9 +225,8 @@ let custom_toolchain = "//build/toolchain/linux/unbundle:default"; host_toolchain = "//build/toolchain/linux/unbundle:default"; is_official_build = true; - is_debug = false; - proprietary_codecs = false; + use_vaapi = !stdenv.isAarch64; # TODO: Remove once M88 is released use_sysroot = false; use_gnome_keyring = gnomeKeyringSupport; use_gio = gnomeSupport; @@ -252,7 +242,6 @@ let rtc_use_pipewire = true; treat_warnings_as_errors = false; - is_clang = stdenv.cc.isClang; clang_use_chrome_plugins = false; blink_symbol_level = 0; symbol_level = 0; @@ -270,14 +259,11 @@ let proprietary_codecs = true; enable_hangout_services_extension = true; ffmpeg_branding = "Chrome"; - } // optionalAttrs useVaapi { - use_vaapi = true; } // optionalAttrs pulseSupport { use_pulseaudio = true; link_pulseaudio = true; } // optionalAttrs useOzone { use_ozone = true; - ozone_platform_gbm = false; use_xkbcommon = true; use_glib = true; use_gtk = true; @@ -286,6 +272,7 @@ let use_system_libdrm = true; system_wayland_scanner_path = "${wayland}/bin/wayland-scanner"; } // optionalAttrs ungoogled { + chrome_pgo_phase = 0; enable_hangout_services_extension = false; enable_js_type_check = false; enable_mdns = false; diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix index b02c91c6e230..b75d271ace55 100644 --- a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix @@ -16,7 +16,6 @@ , enableWideVine ? false , enableVaapi ? false # Disabled by default due to unofficial support , ungoogled ? true -, useOzone ? false , cupsSupport ? true , pulseSupport ? config.pulseaudio or stdenv.isLinux , commandLineArgs ? "" @@ -35,7 +34,7 @@ let mkChromiumDerivation = callPackage ./common.nix ({ inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs - cupsSupport pulseSupport useOzone; + cupsSupport pulseSupport; inherit ungoogled; gnChromium = gn.overrideAttrs (oldAttrs: { inherit (upstream-info.deps.gn) version; @@ -43,9 +42,6 @@ let inherit (upstream-info.deps.gn) url rev sha256; }; }); - } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "87") { - useOzone = true; # YAY: https://chromium-review.googlesource.com/c/chromium/src/+/2382834 \o/ - useVaapi = !stdenv.isAarch64; # TODO: Might be best to not set use_vaapi anymore (default is fine) }); browser = callPackage ./browser.nix { inherit channel enableWideVine; }; diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix index 73c9796aaa96..26f2f730a41d 100644 --- a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix @@ -1,6 +1,6 @@ { - "86.0.4240.183" = { - rev = "86.0.4240.183-1"; - sha256 = "0528l2wr5bpl1cwsxzl5zxz1gw91kffkh5j1kzmc5n7m4mscqxyc"; + "87.0.4280.88" = { + rev = "87.0.4280.88-1"; + sha256 = "0w2137w8hfcgl6f938hqnb4ffp33v5r8vdzxrvs814w7dszkiqgg"; }; } diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/update.py b/pkgs/applications/networking/browsers/ungoogled-chromium/update.py index b404ca555bff..9e1f0aec598d 100755 --- a/pkgs/applications/networking/browsers/ungoogled-chromium/update.py +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/update.py @@ -38,6 +38,20 @@ def get_file_revision(revision, file_path): with urlopen(url) as http_response: return http_response.read() +def get_matching_chromedriver(version): + # See https://chromedriver.chromium.org/downloads/version-selection + build = re.sub('.[0-9]+$', '', version) + chromedriver_version_url = f'https://chromedriver.storage.googleapis.com/LATEST_RELEASE_{build}' + with urlopen(chromedriver_version_url) as http_response: + chromedriver_version = http_response.read().decode() + def get_chromedriver_url(system): + return f'https://chromedriver.storage.googleapis.com/{chromedriver_version}/chromedriver_{system}.zip' + return { + 'version': chromedriver_version, + 'sha256_linux': nix_prefetch_url(get_chromedriver_url('linux64')), + 'sha256_darwin': nix_prefetch_url(get_chromedriver_url('mac64')) + } + def get_channel_dependencies(channel): deps = get_file_revision(channel['version'], 'DEPS') gn_pattern = b"'gn_version': 'git_revision:([0-9a-f]{40})'" @@ -85,6 +99,8 @@ with urlopen(HISTORY_URL) as resp: continue channel['deps'] = get_channel_dependencies(channel) + if channel_name == 'stable': + channel['chromedriver'] = get_matching_chromedriver(channel['version']) channels[channel_name] = channel diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json index 565f884c5102..6343dd4b2468 100644 --- a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json @@ -1,21 +1,8 @@ { "stable": { - "version": "86.0.4240.183", - "sha256": "1g39i82js7fm4fqb8i66d6xs0kzqjxzi4vzvvwz5y9rkbikcc4ma", - "sha256bin64": "1r0dxqsx6j19hgwr3v2sdlb2vd7gb961c4wba4ymd8wy8j8pzly9", - "deps": { - "gn": { - "version": "2020-08-07", - "url": "https://gn.googlesource.com/gn", - "rev": "e327ffdc503815916db2543ec000226a8df45163", - "sha256": "0kvlfj3www84zp1vmxh76x8fdjm9hyk8lkh2vdsidafpmm75fphr" - } - } - }, - "beta": { - "version": "87.0.4280.40", - "sha256": "07xh76fl257np68way6i5rf64qbvirkfddy7m5gvqb0fzcqd7dp3", - "sha256bin64": "1b2z0aqlh28pqrk6dmabxp1d4mvp9iyfmi4kqmns4cdpg0qgaf41", + "version": "87.0.4280.88", + "sha256": "1h09g9b2zxad85vd146ymvg3w2kpngpi78yig3dn1vrmhwr4aiiy", + "sha256bin64": "0n3fm6wf8zfkv135d50xl8xxrnng3q55vyxkck1da8jyvh18bijb", "deps": { "gn": { "version": "2020-09-09", @@ -23,18 +10,36 @@ "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2", "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk" } + }, + "chromedriver": { + "version": "87.0.4280.88", + "sha256_linux": "141mr2jiy3nslwd3s43m4i6plkv9wv5fgi78cn7mz0ac9x6fpcgx", + "sha256_darwin": "048hsqp6575r980m769lzznvxypmfcwn89f1d3ik751ymzmb5r78" + } + }, + "beta": { + "version": "88.0.4324.27", + "sha256": "0mciiyh3sn2zrl8g6znylc2pm9sb0wzsclgavf7mmlknri5sjblc", + "sha256bin64": "0qf2j1j3p94s724rwh8fydpjn88cs9yxxhjf5axvqwi7q3h35cfx", + "deps": { + "gn": { + "version": "2020-11-05", + "url": "https://gn.googlesource.com/gn", + "rev": "53d92014bf94c3893886470a1c7c1289f8818db0", + "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9" + } } }, "dev": { - "version": "88.0.4300.0", - "sha256": "00cfs2rp4h8ybn2snr1d8ygg635hx7q5gv2aqriy1j6f8a1pgh1b", - "sha256bin64": "110r1m14h91212nx6pfhn8wkics7wlwx1608l5cqsxxcpvpzl3pv", + "version": "89.0.4343.0", + "sha256": "0jmc1l0lysl5zax98fjhzsfq3c1sqh3n3xscidafflx362wcfpwa", + "sha256bin64": "1v6xik8kf531y0g5xj0c8szjmak0qvh77kwkw7p7hqxqmnwwp06d", "deps": { "gn": { - "version": "2020-09-09", + "version": "2020-11-05", "url": "https://gn.googlesource.com/gn", - "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2", - "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk" + "rev": "53d92014bf94c3893886470a1c7c1289f8818db0", + "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9" } } }