diff --git a/default.nix b/default.nix index 3fdb27f..a390fff 100644 --- a/default.nix +++ b/default.nix @@ -1,46 +1,3 @@ let - lock = builtins.fromJSON (builtins.readFile ./flake.lock); - lockedPkgs = import (fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/${lock.nodes.nixpkgs.locked.rev}.tar.gz"; - sha256 = lock.nodes.nixpkgs.locked.narHash; - }) {}; -in { - pkgs ? lockedPkgs, -}: let - inherit (pkgs) lib stdenv rustPlatform installShellFiles; -in rustPlatform.buildRustPackage rec { - pname = "colmena"; - version = "0.3.0-pre"; - - src = lib.cleanSourceWith { - filter = name: type: !(type == "directory" && builtins.elem (baseNameOf name) [ "target" "manual" "integration-tests" ]); - src = lib.cleanSource ./.; - }; - - cargoSha256 = "sha256-UUDKAY5zOm/okdRN9Bh+1OgPJFnd1Gw5VMd/+/P46jQ="; - - nativeBuildInputs = [ installShellFiles ]; - - postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' - installShellCompletion --cmd colmena \ - --bash <($out/bin/colmena gen-completions bash) \ - --zsh <($out/bin/colmena gen-completions zsh) \ - --fish <($out/bin/colmena gen-completions fish) - ''; - - # Recursive Nix is not stable yet - doCheck = false; - - passthru = { - # We guarantee CLI and Nix API stability for the same minor version - apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version)); - }; - - meta = with lib; { - description = "A simple, stateless NixOS deployment tool"; - homepage = "https://zhaofengli.github.io/colmena/${passthru.apiVersion}"; - license = licenses.mit; - maintainers = with maintainers; [ zhaofengli ]; - platforms = platforms.linux ++ platforms.darwin; - }; -} + flake = import ./flake-compat.nix; +in flake.defaultNix diff --git a/flake.nix b/flake.nix index 4e2430e..9f712b6 100644 --- a/flake.nix +++ b/flake.nix @@ -19,7 +19,7 @@ # We still maintain the expression in a Nixpkgs-acceptable form defaultPackage = self.packages.${system}.colmena; packages = rec { - colmena = import ./default.nix { inherit pkgs; }; + colmena = pkgs.callPackage ./package.nix { }; # Full user manual manual = let @@ -59,9 +59,7 @@ }; }) // { overlay = final: prev: { - colmena = import ./default.nix { - pkgs = final; - }; + colmena = final.callPackage ./package.nix { }; }; }; } diff --git a/integration-tests/nixpkgs.nix b/integration-tests/nixpkgs.nix index 32781ba..fd4b9c0 100644 --- a/integration-tests/nixpkgs.nix +++ b/integration-tests/nixpkgs.nix @@ -1,13 +1,7 @@ let - lock = builtins.fromJSON (builtins.readFile ../flake.lock); - pinned = fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/${lock.nodes.nixpkgs.locked.rev}.tar.gz"; - sha256 = lock.nodes.nixpkgs.locked.narHash; - }; -in import pinned { + flake = (import ../flake-compat.nix).defaultNix; +in import flake.inputs.nixpkgs.outPath { overlays = [ - (final: prev: { - colmena = final.callPackage ../default.nix { }; - }) + flake.overlay ]; } diff --git a/package.nix b/package.nix new file mode 100644 index 0000000..4c005ee --- /dev/null +++ b/package.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, rustPlatform, installShellFiles }: + +rustPlatform.buildRustPackage rec { + pname = "colmena"; + version = "0.3.0-pre"; + + src = lib.cleanSourceWith { + filter = name: type: !(type == "directory" && builtins.elem (baseNameOf name) [ "target" "manual" "integration-tests" ]); + src = lib.cleanSource ./.; + }; + + cargoSha256 = "sha256-UUDKAY5zOm/okdRN9Bh+1OgPJFnd1Gw5VMd/+/P46jQ="; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' + installShellCompletion --cmd colmena \ + --bash <($out/bin/colmena gen-completions bash) \ + --zsh <($out/bin/colmena gen-completions zsh) \ + --fish <($out/bin/colmena gen-completions fish) + ''; + + # Recursive Nix is not stable yet + doCheck = false; + + passthru = { + # We guarantee CLI and Nix API stability for the same minor version + apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version)); + }; + + meta = with lib; { + description = "A simple, stateless NixOS deployment tool"; + homepage = "https://zhaofengli.github.io/colmena/${passthru.apiVersion}"; + license = licenses.mit; + maintainers = with maintainers; [ zhaofengli ]; + platforms = platforms.linux ++ platforms.darwin; + }; +}