From 5b6a252bb1e3797e64a0814274028ff9fdb8a360 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Mon, 3 Mar 2025 10:12:35 +0100 Subject: [PATCH 1/6] Add own callPackage definition Signed-off-by: Matthias Beyer --- flake.nix | 11 ++++++++++- lib/cargo-dylint.nix | 1 + lib/default.nix | 7 +++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index e4379ba..a43ad3a 100644 --- a/flake.nix +++ b/flake.nix @@ -21,7 +21,16 @@ overlays = [ inputs.rust-overlay.overlays.default ]; }; - lib = import ./lib { inherit inputs; }; + callPackage = pkgs.lib.callPackageWith ( + pkgs + // { + inherit + inputs + ; + } + ); + + lib = callPackage ./lib {}; in { inherit lib; diff --git a/lib/cargo-dylint.nix b/lib/cargo-dylint.nix index aeb7798..66d991a 100644 --- a/lib/cargo-dylint.nix +++ b/lib/cargo-dylint.nix @@ -1,5 +1,6 @@ { inputs, + ... }: { diff --git a/lib/default.nix b/lib/default.nix index 6109231..b33f207 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,5 +1,8 @@ { - + callPackage, + ... }: - +{ + cargo-dylint = callPackage ./cargo-dylint {}; +} From 45adb5ba2068662c662f2e7bd4411cf04d0c9e8f Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Mon, 3 Mar 2025 10:14:00 +0100 Subject: [PATCH 2/6] Add packages of the flake itself in pkgs Signed-off-by: Matthias Beyer --- flake.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index a43ad3a..408d714 100644 --- a/flake.nix +++ b/flake.nix @@ -18,7 +18,12 @@ let pkgs = import inputs.nixpkgs { inherit system; - overlays = [ inputs.rust-overlay.overlays.default ]; + overlays = let + selfOverlay = _: _: inputs.self.packages."${system}" or {}; + in [ + selfOverlay + inputs.rust-overlay.overlays.default + ]; }; callPackage = pkgs.lib.callPackageWith ( From a154eccfedd5ab7818b7278b3b593b93835edd13 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Mon, 3 Mar 2025 10:15:19 +0100 Subject: [PATCH 3/6] Inherit all packages from lib into flake outputs Signed-off-by: Matthias Beyer --- flake.nix | 9 ++++++++- lib/default.nix | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index 408d714..8e8138d 100644 --- a/flake.nix +++ b/flake.nix @@ -35,11 +35,18 @@ } ); - lib = callPackage ./lib {}; + lib = import ./lib { + inherit + inputs + callPackage + ; + }; in { inherit lib; + packages = lib.packages; + devShells.default = pkgs.mkShell { nativeBuildInputs = [ pkgs.rust-bin.nightly.latest.default diff --git a/lib/default.nix b/lib/default.nix index b33f207..7a3b434 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -4,5 +4,7 @@ }: { - cargo-dylint = callPackage ./cargo-dylint {}; + packages = { + cargo-dylint = callPackage ./cargo-dylint.nix {}; + }; } From 05e39da57e0eb5012f62121bf3aee17f77847578 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Mon, 3 Mar 2025 10:24:46 +0100 Subject: [PATCH 4/6] WIP: Package cargo-dylint --- flake.nix | 4 ++++ lib/cargo-dylint.nix | 24 ++++++++++++++++++++++-- rust-toolchain.toml | 2 ++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 rust-toolchain.toml diff --git a/flake.nix b/flake.nix index 8e8138d..925ca26 100644 --- a/flake.nix +++ b/flake.nix @@ -26,11 +26,15 @@ ]; }; + rustTarget = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; + craneLib = (inputs.crane.mkLib pkgs).overrideToolchain rustTarget; + callPackage = pkgs.lib.callPackageWith ( pkgs // { inherit inputs + craneLib ; } ); diff --git a/lib/cargo-dylint.nix b/lib/cargo-dylint.nix index 66d991a..ab8cefe 100644 --- a/lib/cargo-dylint.nix +++ b/lib/cargo-dylint.nix @@ -1,8 +1,28 @@ { - inputs, + pkgs, + craneLib, ... }: -{ +let + pname = "cargo-dylint"; + version = "4.0.0"; + src = pkgs.fetchFromGitHub { + owner = "trailofbits"; + repo = "dylint"; + tag = "v${version}"; + sha256 = "sha256-Z8uuewp7Buoadayc0oTafmfvwNT36KukWKiHxL/mQfI="; + }; + + cargoArtifacts = craneLib.buildDepsOnly { + inherit pname version src; + }; +in craneLib.buildPackage { + inherit + cargoArtifacts + pname + version + src + ; } diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..168d4fd --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "nightly-2025-03-01" From c242bdbc1ef169687f453c2fea10f4c61de3a85e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Mon, 3 Mar 2025 10:54:42 +0100 Subject: [PATCH 5/6] Ignore nix result directory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 92b2793..2bbdbfe 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .direnv +result From f37542d964db362f7e39231c845e8591fda669ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Mon, 3 Mar 2025 10:54:55 +0100 Subject: [PATCH 6/6] Make cargo-dylint build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- flake.nix | 24 ++++++------------------ lib/cargo-dylint.nix | 23 +++++++++++++++++------ lib/default.nix | 13 +++++++++---- 3 files changed, 32 insertions(+), 28 deletions(-) diff --git a/flake.nix b/flake.nix index 925ca26..fede805 100644 --- a/flake.nix +++ b/flake.nix @@ -18,10 +18,7 @@ let pkgs = import inputs.nixpkgs { inherit system; - overlays = let - selfOverlay = _: _: inputs.self.packages."${system}" or {}; - in [ - selfOverlay + overlays = [ inputs.rust-overlay.overlays.default ]; }; @@ -29,27 +26,18 @@ rustTarget = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; craneLib = (inputs.crane.mkLib pkgs).overrideToolchain rustTarget; - callPackage = pkgs.lib.callPackageWith ( - pkgs - // { - inherit - inputs - craneLib - ; - } - ); - lib = import ./lib { inherit inputs - callPackage + craneLib + pkgs ; }; in { - inherit lib; - - packages = lib.packages; + packages = lib // { + rust = rustTarget; + }; devShells.default = pkgs.mkShell { nativeBuildInputs = [ diff --git a/lib/cargo-dylint.nix b/lib/cargo-dylint.nix index ab8cefe..8c6aa17 100644 --- a/lib/cargo-dylint.nix +++ b/lib/cargo-dylint.nix @@ -1,7 +1,9 @@ { pkgs, craneLib, - ... + + pkg-config, + openssl, }: let @@ -14,15 +16,24 @@ let tag = "v${version}"; sha256 = "sha256-Z8uuewp7Buoadayc0oTafmfvwNT36KukWKiHxL/mQfI="; }; +in - cargoArtifacts = craneLib.buildDepsOnly { - inherit pname version src; - }; -in craneLib.buildPackage { +craneLib.buildPackage { inherit - cargoArtifacts pname version src ; + + buildInputs = [ + openssl + ]; + + nativeBuildInputs = [ + pkg-config + ]; + + RUSTUP_TOOLCHAIN = "nightly-2025-02-28"; + + doCheck = false; } diff --git a/lib/default.nix b/lib/default.nix index 7a3b434..ef77125 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,10 +1,15 @@ { - callPackage, + pkgs, + inputs, + craneLib, ... }: -{ +let + callPackage = pkgs.lib.callPackageWith (pkgs // packages // { inherit inputs craneLib; }); packages = { - cargo-dylint = callPackage ./cargo-dylint.nix {}; + cargo-dylint = callPackage ./cargo-dylint.nix { }; }; -} + +in +packages