From 1cac5b98c87fc56998ba7348ff933115ab268682 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Mon, 5 Aug 2024 12:30:05 +0200 Subject: [PATCH] chore(refactor): clean up Nix configuration for better readability This commit includes a restructuring of the Nix configuration files to make them easier to read and manage. The 'teepotCrate' reference usage has been revised and the explicit src inheritance has been removed. Signed-off-by: Harald Hoyer --- flake.nix | 21 ++++++++++++--- packages/cargoClippy/default.nix | 6 ++--- packages/cargoDeny/default.nix | 4 +-- packages/cargoFmt/default.nix | 4 +-- packages/teepot/default.nix | 17 +++--------- .../teepotCrate/default.nix | 27 ++++++------------- 6 files changed, 36 insertions(+), 43 deletions(-) rename teepot-crate.nix => packages/teepotCrate/default.nix (67%) diff --git a/flake.nix b/flake.nix index 6177e31e..eab4c08a 100644 --- a/flake.nix +++ b/flake.nix @@ -28,9 +28,24 @@ }; outputs = inputs: - let src = ./.; in + let + src = ./.; + crate_src = lib: with lib.fileset; toSource { + root = src; + fileset = unions [ + ./Cargo.lock + ./Cargo.toml + ./bin + ./crates + ./rust-toolchain.toml + ./deny.toml + ./taplo.toml + ]; + }; + inputs_with_src = inputs // { inherit crate_src; }; + in inputs.snowfall-lib.mkFlake { - inherit inputs; + inputs = inputs_with_src; inherit src; snowfall.namespace = "teepot"; @@ -43,8 +58,6 @@ nixsgx-flake.overlays.default vault-auth-tee-flake.overlays.default rust-overlay.overlays.default - # somehow the original `src` is not available anymore - (final: prev: { teepotCrate = prev.pkgs.callPackage ./teepot-crate.nix { inherit inputs; inherit src; }; }) ]; alias = { diff --git a/packages/cargoClippy/default.nix b/packages/cargoClippy/default.nix index 9fd7ca75..2bc62103 100644 --- a/packages/cargoClippy/default.nix +++ b/packages/cargoClippy/default.nix @@ -1,8 +1,8 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright (c) 2024 Matter Labs -{ teepotCrate }: teepotCrate.craneLib.cargoClippy ( - teepotCrate.commonArgs // { +{ teepot }: teepot.teepotCrate.craneLib.cargoClippy ( + teepot.teepotCrate.commonArgs // { pname = "teepot"; - inherit (teepotCrate) cargoArtifacts NIX_OUTPATH_USED_AS_RANDOM_SEED; + inherit (teepot.teepotCrate) cargoArtifacts NIX_OUTPATH_USED_AS_RANDOM_SEED; } ) diff --git a/packages/cargoDeny/default.nix b/packages/cargoDeny/default.nix index e4c400a0..175c5c4f 100644 --- a/packages/cargoDeny/default.nix +++ b/packages/cargoDeny/default.nix @@ -1,7 +1,7 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright (c) 2024 Matter Labs -{ teepotCrate }: teepotCrate.craneLib.cargoDeny ( - teepotCrate.commonArgs // { +{ teepot }: teepot.teepotCrate.craneLib.cargoDeny ( + teepot.teepotCrate.commonArgs // { pname = "teepot"; } ) diff --git a/packages/cargoFmt/default.nix b/packages/cargoFmt/default.nix index cc8e631c..04d2ce9f 100644 --- a/packages/cargoFmt/default.nix +++ b/packages/cargoFmt/default.nix @@ -1,7 +1,7 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright (c) 2024 Matter Labs -{ teepotCrate }: teepotCrate.craneLib.cargoFmt ( - teepotCrate.commonArgs // { +{ teepot }: teepot.teepotCrate.craneLib.cargoFmt ( + teepot.teepotCrate.commonArgs // { pname = "teepot"; } ) diff --git a/packages/teepot/default.nix b/packages/teepot/default.nix index 1a8745c4..eee81302 100644 --- a/packages/teepot/default.nix +++ b/packages/teepot/default.nix @@ -1,21 +1,11 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright (c) 2024 Matter Labs -{ teepotCrate }: teepotCrate.craneLib.buildPackage ( - teepotCrate.commonArgs // { +{ teepot }: teepot.teepotCrate.craneLib.buildPackage ( + teepot.teepotCrate.commonArgs // { pname = "teepot"; - inherit (teepotCrate) cargoArtifacts + inherit (teepot.teepotCrate) cargoArtifacts NIX_OUTPATH_USED_AS_RANDOM_SEED; - - passthru = { - inherit (teepotCrate) rustPlatform - rustVersion - commonArgs - craneLib - cargoArtifacts; - NIX_OUTPATH_USED_AS_RANDOM_SEED = "aaaaaaaaaa"; - }; - outputs = [ "out" "tee_key_preexec" @@ -30,6 +20,7 @@ "vault_unseal" "verify_attestation" ]; + postInstall = '' removeReferencesToVendoredSources "$out" "$cargoVendorDir" mkdir -p $out/nix-support diff --git a/teepot-crate.nix b/packages/teepotCrate/default.nix similarity index 67% rename from teepot-crate.nix rename to packages/teepotCrate/default.nix index e0769b1b..32d3de36 100644 --- a/teepot-crate.nix +++ b/packages/teepotCrate/default.nix @@ -1,17 +1,18 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright (c) 2024 Matter Labs +# +# Common teepot crate build parameters shared across cargo* checks and main teepot build +# { lib +, pkgs , inputs , makeRustPlatform , nixsgx , pkg-config , rust-bin -, pkgs -, src -, ... }: let - rustVersion = rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; + rustVersion = rust-bin.fromRustupToolchainFile ../../rust-toolchain.toml; rustPlatform = makeRustPlatform { cargo = rustVersion; rustc = rustVersion; @@ -31,19 +32,7 @@ let strictDeps = true; - - src = with lib.fileset; toSource { - root = src; - fileset = unions [ - ./Cargo.lock - ./Cargo.toml - ./bin - ./crates - ./rust-toolchain.toml - ./deny.toml - ./taplo.toml - ]; - }; + src = inputs.crate_src lib; checkType = "debug"; }; @@ -58,6 +47,6 @@ in rustVersion commonArgs craneLib - cargoArtifacts; - NIX_OUTPATH_USED_AS_RANDOM_SEED = "aaaaaaaaaa"; + cargoArtifacts + NIX_OUTPATH_USED_AS_RANDOM_SEED; }