diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-04-28 14:39:00 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-06-10 08:52:36 +0000 |
commit | 693e64ef7421374338ddb1dc12b9573feec75972 (patch) | |
tree | 2526ac075d248699c35d63e04499890ee4381f5f /nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix | |
parent | 7014df2256694d97093d6f2bb1db340d346dea88 (diff) | |
parent | 8e4fe32876ca15e3d5eb3ecd3ca0b224417f5f17 (diff) | |
download | nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.gz nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.bz2 nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.lz nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.xz nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.zst nixlib-693e64ef7421374338ddb1dc12b9573feec75972.zip |
Merge commit '8e4fe32876ca15e3d5eb3ecd3ca0b224417f5f17'
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix | 57 |
1 files changed, 36 insertions, 21 deletions
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix index 8d0a59f29190..b08ff1ac7c14 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix @@ -7,7 +7,7 @@ , xdg-utils, yasm, nasm, minizip, libwebp , libusb1, pciutils, nss, re2 -, python2Packages, perl, pkg-config +, python2Packages, python3Packages, perl, pkg-config , nspr, systemd, libkrb5 , util-linux, alsaLib , bison, gperf @@ -42,6 +42,16 @@ with lib; let jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 + # TODO: Python 3 support is incomplete and "python3 ../../build/util/python2_action.py" + # currently doesn't work due to mixed Python 2/3 dependencies: + pythonPackages = if chromiumVersionAtLeast "93" + then python3Packages + else python2Packages; + forcePython3Patch = (githubPatch + # Reland #8 of "Force Python 3 to be used in build."": + "a2d3c362802d9e6b62f895fcda75a3695b77b1b8" + "1r9spr2wmjk9x9l3m1gzn6692mlvbxdz0r5hlr5rfwiwr900rxi2" + ); # The additional attributes for creating derivations based on the chromium # source tree. @@ -100,16 +110,19 @@ let buildPath = "out/${buildType}"; libExecPath = "$out/libexec/${packageName}"; + warnObsoleteVersionConditional = min-version: result: + let ungoogled-version = (importJSON ./upstream-info.json).ungoogled-chromium.version; + in if versionAtLeast ungoogled-version min-version + then warn "chromium: ungoogled version ${ungoogled-version} is newer than a conditional bounded at ${min-version}. You can safely delete it." + result + else result; chromiumVersionAtLeast = min-version: - versionAtLeast upstream-info.version 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; - ungoogled-version = (importJSON ./upstream-info.json).ungoogled-chromium.version; - in if versionAtLeast ungoogled-version upto-version - then warn "chromium: ungoogled version ${ungoogled-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it." - result - else result; + in warnObsoleteVersionConditional upto-version result; ungoogler = ungoogled-chromium { inherit (upstream-info.deps.ungoogled-patches) rev sha256; @@ -127,9 +140,9 @@ let nativeBuildInputs = [ llvmPackages.lldClang.bintools - ninja which python2Packages.python perl pkg-config - python2Packages.ply python2Packages.jinja2 nodejs - gnutar python2Packages.setuptools + ninja which pythonPackages.python perl pkg-config + pythonPackages.ply pythonPackages.jinja2 nodejs + gnutar pythonPackages.setuptools ]; buildInputs = defaultDependencies ++ [ @@ -138,6 +151,7 @@ let bison gperf libkrb5 glib gtk3 dbus-glib libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL + mesa # required for libgbm pciutils protobuf speechd libXdamage at-spi2-core jre pipewire @@ -151,14 +165,18 @@ let 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 (versionRange "68" "72") (githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000") - ] ++ optional (versionRange "89" "90.0.4402.0") (githubPatch - # To fix the build of chromiumBeta and chromiumDev: - "b5b80df7dafba8cafa4c6c0ba2153dfda467dfc9" # add dependency on opus in webcodecs - "1r4wmwaxz5xbffmj5wspv2xj8s32j9p6jnwimjmalqg3al2ba64x" - ); - - postPatch = '' + # Fix the build by adding a missing dependency (s. https://crbug.com/1197837): + ./patches/fix-missing-atspi2-dependency.patch + ] ++ optionals (chromiumVersionAtLeast "91") [ + ./patches/closure_compiler-Use-the-Java-binary-from-the-system.patch + ]; + + postPatch = lib.optionalString (chromiumVersionAtLeast "91") '' + # Required for patchShebangs (unsupported): + chmod -x third_party/webgpu-cts/src/tools/deno + '' + optionalString (chromiumVersionAtLeast "92") '' + patch -p1 --reverse < ${forcePython3Patch} + '' + '' # remove unused third-party for lib in ${toString gnSystemLibraries}; do if [ -d "third_party/$lib" ]; then @@ -262,12 +280,9 @@ let } // optionalAttrs pulseSupport { use_pulseaudio = true; link_pulseaudio = true; - } // optionalAttrs (chromiumVersionAtLeast "89") { - rtc_pipewire_version = "0.3"; # TODO: Can be removed once ungoogled-chromium is at M90 # Disable PGO (defaults to 2 since M89) because it fails without additional changes: # error: Could not read profile ../../chrome/build/pgo_profiles/chrome-linux-master-1610647094-405a32bcf15e5a84949640f99f84a5b9f61e2f2e.profdata: Unsupported instrumentation profile format version chrome_pgo_phase = 0; - } // optionalAttrs (chromiumVersionAtLeast "90") { # Disable build with TFLite library because it fails without additional changes: # ninja: error: '../../chrome/test/data/simple_test.tflite', needed by 'test_data/simple_test.tflite', missing and no known rule to make it # Note: chrome/test/data/simple_test.tflite is in the Git repository but not in chromium-90.0.4400.8.tar.xz |