diff options
author | Alex <alex@adnab.me> | 2024-02-08 22:29:25 +0000 |
---|---|---|
committer | Alex <alex@adnab.me> | 2024-02-08 22:29:25 +0000 |
commit | 8061bf5e1c250ff9234894f7a63910fedef1357b (patch) | |
tree | 46c462fa8de931ff296596921bdd4bcb9715ed19 | |
parent | 304a89c57b1e951481cd0bf2e56582b41b6d73e4 (diff) | |
parent | 8724aabdf5463c3baedff5bfbfa9e0f71510ef96 (diff) | |
download | garage-8061bf5e1c250ff9234894f7a63910fedef1357b.tar.gz garage-8061bf5e1c250ff9234894f7a63910fedef1357b.zip |
Merge pull request 'Use only oxalica/rust-overlay toolchain and not nixpkgs' (#710) from oxalica-toolchain-only into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/710
-rw-r--r-- | nix/compile.nix | 23 | ||||
-rw-r--r-- | nix/toolchain.nix | 22 |
2 files changed, 2 insertions, 43 deletions
diff --git a/nix/compile.nix b/nix/compile.nix index c51188fe..1e712710 100644 --- a/nix/compile.nix +++ b/nix/compile.nix @@ -19,30 +19,9 @@ let overlays = [ cargo2nixOverlay ]; }; - /* Cargo2nix is built for rustOverlay which installs Rust from Mozilla releases. - This is fine for 64-bit platforms, but for 32-bit platforms, we need our own Rust - to avoid incompatibilities with time_t between different versions of musl - (>= 1.2.0 shipped by NixOS, < 1.2.0 with which rustc was built), which lead to compilation breakage. - So we want a Rust release that is bound to our Nix repository to avoid these problems. - See here for more info: https://musl.libc.org/time64.html - Because Cargo2nix does not support the Rust environment shipped by NixOS, - we emulate the structure of the Rust object created by rustOverlay. - In practise, rustOverlay ships rustc+cargo in a single derivation while - NixOS ships them in separate ones. We reunite them with symlinkJoin. - */ - toolchainOptions = if target == null || target == "x86_64-unknown-linux-musl" - || target == "aarch64-unknown-linux-musl" then { + toolchainOptions = { rustVersion = "1.73.0"; extraRustComponents = [ "clippy" ]; - } else { - rustToolchain = pkgs.symlinkJoin { - name = "rust-static-toolchain-${target}"; - paths = [ - pkgs.rustPlatform.rust.cargo - pkgs.rustPlatform.rust.rustc - # clippy not needed, it only runs on amd64 - ]; - }; }; buildEnv = (drv: diff --git a/nix/toolchain.nix b/nix/toolchain.nix index 532db74e..c4fef9ab 100644 --- a/nix/toolchain.nix +++ b/nix/toolchain.nix @@ -3,29 +3,9 @@ with import ./common.nix; let - platforms = [ - #"x86_64-unknown-linux-musl" - "i686-unknown-linux-musl" - #"aarch64-unknown-linux-musl" - "armv6l-unknown-linux-musleabihf" - ]; - pkgsList = builtins.map (target: - import pkgsSrc { - inherit system; - crossSystem = { - config = target; - isStatic = true; - }; - overlays = [ cargo2nixOverlay ]; - }) platforms; pkgsHost = import pkgsSrc { }; - lib = pkgsHost.lib; kaniko = (import ./kaniko.nix) pkgsHost; winscp = (import ./winscp.nix) pkgsHost; manifestTool = (import ./manifest-tool.nix) pkgsHost; -in lib.flatten (builtins.map (pkgs: [ - pkgs.rustPlatform.rust.rustc - pkgs.rustPlatform.rust.cargo - pkgs.buildPackages.stdenv.cc -]) pkgsList) ++ [ kaniko winscp manifestTool ] +in [ kaniko winscp manifestTool ] |