diff options
author | Alyssa Ross <hi@alyssa.is> | 2024-02-13 12:25:07 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2024-02-13 12:25:07 +0100 |
commit | a5e1520e4538e29ecfbd4b168306f890566d7bfd (patch) | |
tree | 28099c268b5d4b1e33c2b29f0714c45f0b961382 /nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix | |
parent | 822f7c15c04567fbdc27020e862ea2b70cfbf8eb (diff) | |
parent | 3560d1c8269d0091b9aae10731b5e85274b7bbc1 (diff) | |
download | nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.gz nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.bz2 nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.lz nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.xz nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.tar.zst nixlib-a5e1520e4538e29ecfbd4b168306f890566d7bfd.zip |
Merge branch 'nixos-unstable-small' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/nixos/modules/services/mail/rss2email.nix nixpkgs/pkgs/build-support/go/module.nix
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix index 0798be9372e9..45fc2054c103 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix @@ -236,6 +236,11 @@ let commit = "b9bef8e9555645fc91fab705bec697214a39dbc1"; hash = "sha256-CJ1v/qc8+nwaHQR9xsx08EEcuVRbyBfCZCm/G7hRY+4="; }) + ] ++ lib.optionals (chromiumVersionAtLeast "121") [ + # M121 is the first version to require the new rust toolchain. + # Partial revert of https://github.com/chromium/chromium/commit/3687976b0c6d36cf4157419a24a39f6770098d61 + # allowing us to use our rustc and our clang. + ./patches/chromium-121-rust.patch ]; postPatch = '' @@ -400,11 +405,15 @@ let # (ld.lld: error: unable to find library -l:libffi_pic.a): use_system_libffi = true; # Use nixpkgs Rust compiler instead of the one shipped by Chromium. - # We do intentionally not set rustc_version as nixpkgs will never do incremental - # rebuilds, thus leaving this empty is fine. rust_sysroot_absolute = "${buildPackages.rustc}"; - # Building with rust is disabled for now - this matches the flags in other major distributions. + # Rust is enabled for M121+, see next section: enable_rust = false; + } // lib.optionalAttrs (chromiumVersionAtLeast "121") { + # M121 the first version to actually require a functioning rust toolchain + enable_rust = true; + # While we technically don't need the cache-invalidation rustc_version provides, rustc_version + # is still used in some scripts (e.g. build/rust/std/find_std_rlibs.py). + rustc_version = buildPackages.rustc.version; } // lib.optionalAttrs (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) { # https://www.mail-archive.com/v8-users@googlegroups.com/msg14528.html arm_control_flow_integrity = "none"; @@ -419,6 +428,13 @@ let } // lib.optionalAttrs ungoogled (lib.importTOML ./ungoogled-flags.toml) // (extraAttrs.gnFlags or {})); + # We cannot use chromiumVersionAtLeast in mkDerivation's env attrset due + # to infinite recursion when chromium.override is used (e.g. electron). + # To work aroud this, we use export in the preConfigure phase. + preConfigure = lib.optionalString (chromiumVersionAtLeast "121") '' + export RUSTC_BOOTSTRAP=1 + ''; + configurePhase = '' runHook preConfigure |