diff --git a/flake.lock b/flake.lock index cddde5e..c1763fb 100644 --- a/flake.lock +++ b/flake.lock @@ -1,6 +1,60 @@ { "nodes": { + "crane": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1668993159, + "narHash": "sha256-9BVTtPFrHRh0HbeEm2bmXsoIWRj1tKM6Nvfl7VMK/X8=", + "owner": "ipetkov", + "repo": "crane", + "rev": "c61d98aaea5667607a36bafe5a6fa87fe5bb2c7e", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-utils": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "locked": { "lastModified": 1659877975, "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", @@ -97,15 +151,41 @@ }, "root": { "inputs": { + "crane": "crane", "naersk": "naersk", "nixpkgs": "nixpkgs_2", "nixpkgs-test": "nixpkgs-test", - "rust-overlay": "rust-overlay" + "rust-overlay": "rust-overlay_2" } }, "rust-overlay": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": [ + "crane", + "flake-utils" + ], + "nixpkgs": [ + "crane", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1667487142, + "narHash": "sha256-bVuzLs1ZVggJAbJmEDVO9G6p8BH3HRaolK70KXvnWnU=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "cf668f737ac986c0a89e83b6b2e3c5ddbd8cf33b", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { + "inputs": { + "flake-utils": "flake-utils_2", "nixpkgs": "nixpkgs_3" }, "locked": { diff --git a/flake.nix b/flake.nix index 3edf51f..11f3619 100644 --- a/flake.nix +++ b/flake.nix @@ -3,12 +3,18 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + + crane = { + url = "github:ipetkov/crane"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixpkgs-test.url = "github:RaitoBezarius/nixpkgs/experimental-secureboot"; rust-overlay.url = "github:oxalica/rust-overlay"; naersk.url = "github:nix-community/naersk"; }; - outputs = { self, nixpkgs, nixpkgs-test, rust-overlay, naersk }: + outputs = { self, nixpkgs, crane, nixpkgs-test, rust-overlay, naersk }: let pkgs = import nixpkgs { system = "x86_64-linux"; @@ -20,6 +26,7 @@ lib = pkgs.lib; rust-nightly = pkgs.rust-bin.fromRustupToolchainFile ./rust/lanzaboote/rust-toolchain.toml; + craneLib = crane.lib.x86_64-linux.overrideToolchain rust-nightly; naersk-nightly = pkgs.callPackage naersk { cargo = rust-nightly; @@ -47,9 +54,12 @@ lanzaboote = buildRustEfiApp ./rust/lanzaboote; - lanzatool-unwrapped = naersk-nightly.buildPackage { - src = ./rust/lanzatool; - buildInputs = [ pkgs.binutils ]; + lanzatool-unwrapped-src = craneLib.cleanCargoSource ./rust/lanzatool; + lanzatool-unwrapped-deps = craneLib.buildDepsOnly { src = lanzatool-unwrapped-src; }; + + lanzatool-unwrapped = craneLib.buildPackage { + src = lanzatool-unwrapped-src; + cargoArtifacts = lanzatool-unwrapped-deps; }; lanzatool = pkgs.runCommand "lanzatool" {