From f2a3582c7713704a18296b1815811c92e9f4ecdc Mon Sep 17 00:00:00 2001 From: seth Date: Mon, 8 Jan 2024 15:02:36 -0500 Subject: [PATCH] nix/deployment: pre-select system in crossPkgsFor --- nix/deployment.nix | 55 ++++++++++++++++++++++++---------------------- nix/dev.nix | 3 ++- 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/nix/deployment.nix b/nix/deployment.nix index 84044fc..49cd465 100644 --- a/nix/deployment.nix +++ b/nix/deployment.nix @@ -9,28 +9,30 @@ lib, pkgs, system, - config, + self', inputs', ... }: let - crossPkgsFor = lib.fix (finalAttrs: { - "x86_64-linux" = { - "x86_64" = pkgs.pkgsStatic; - "aarch64" = pkgs.pkgsCross.aarch64-multiplatform.pkgsStatic; - }; + crossPkgsFor = + rec { + x86_64-linux = { + x86_64 = pkgs.pkgsStatic; + aarch64 = pkgs.pkgsCross.aarch64-multiplatform.pkgsStatic; + }; - "aarch64-linux" = { - "x86_64" = pkgs.pkgsCross.musl64; - "aarch64" = pkgs.pkgsStatic; - }; + aarch64-linux = { + x86_64 = pkgs.pkgsCross.musl64; + aarch64 = pkgs.pkgsStatic; + }; - "x86_64-darwin" = { - "x86_64" = pkgs.pkgsCross.musl64; - "aarch64" = pkgs.pkgsCross.aarch64-multiplatform.pkgsStatic; - }; + x86_64-darwin = { + x86_64 = pkgs.pkgsCross.musl64; + aarch64 = pkgs.pkgsCross.aarch64-multiplatform.pkgsStatic; + }; - "aarch64-darwin" = finalAttrs."x86_64-darwin"; - }); + aarch64-darwin = x86_64-darwin; + } + .${system}; exeFor = arch: let target = "${arch}-unknown-linux-musl"; @@ -49,21 +51,22 @@ rustc = toolchain; }; - refraction = config.packages.refraction.override { + refraction = self'.packages.refraction.override { naersk = naersk'; optimizeSize = true; }; - inherit (crossPkgsFor.${system}.${arch}.stdenv) cc; + newAttrs = lib.fix (finalAttrs: { + CARGO_BUILD_TARGET = target; + "CC_${target'}" = "${cc}/bin/${cc.targetPrefix}cc"; + "CARGO_TARGET_${targetUpper}_RUSTFLAGS" = "-C target-feature=+crt-static"; + "CARGO_TARGET_${targetUpper}_LINKER" = finalAttrs."CC_${target'}"; + }); + + inherit (crossPkgsFor.${arch}.stdenv) cc; in lib.getExe ( - refraction.overrideAttrs (_: - lib.fix (finalAttrs: { - CARGO_BUILD_TARGET = target; - "CC_${target'}" = "${cc}/bin/${cc.targetPrefix}cc"; - "CARGO_TARGET_${targetUpper}_RUSTFLAGS" = "-C target-feature=+crt-static"; - "CARGO_TARGET_${targetUpper}_LINKER" = finalAttrs."CC_${target'}"; - })) + refraction.overrideAttrs (_: newAttrs) ); containerFor = arch: @@ -73,7 +76,7 @@ contents = [pkgs.dockerTools.caCertificates]; config.Cmd = [(exeFor arch)]; - architecture = crossPkgsFor.${system}.${arch}.go.GOARCH; + architecture = crossPkgsFor.${arch}.go.GOARCH; }; in { legacyPackages = { diff --git a/nix/dev.nix b/nix/dev.nix index 9697dac..9591def 100644 --- a/nix/dev.nix +++ b/nix/dev.nix @@ -3,6 +3,7 @@ lib, pkgs, config, + self', ... }: { pre-commit.settings.hooks = { @@ -38,7 +39,7 @@ rust-analyzer # nix - config.formatter + self'.formatter nil ];