summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--default.nix15
-rw-r--r--pkgs/darwin-installer/default.nix16
-rw-r--r--pkgs/darwin-uninstaller/default.nix14
3 files changed, 34 insertions, 11 deletions
diff --git a/default.nix b/default.nix
index 0cc16cd..79085aa 100644
--- a/default.nix
+++ b/default.nix
@@ -24,6 +24,17 @@ let
# Was moved in nixpkgs #82751, so both need to be handled here until 20.03 is deprecated.
# https://github.com/NixOS/nixpkgs/commits/dcdd232939232d04c1132b4cc242dd3dac44be8c
_module = eval._module or eval.config._module;
+
+ # The source code of this repo needed by the [un]installers.
+ nix-darwin = pkgs.lib.cleanSource (
+ pkgs.lib.cleanSourceWith {
+ # We explicitly specify a name here otherwise `cleanSource` will use the
+ # basename of ./. which might be different for different clones of this
+ # repo leading to non-reproducible outputs.
+ name = "nix-darwin";
+ src = ./.;
+ }
+ );
in
{
@@ -32,6 +43,6 @@ in
system = eval.config.system.build.toplevel;
- installer = pkgs.callPackage ./pkgs/darwin-installer {};
- uninstaller = pkgs.callPackage ./pkgs/darwin-uninstaller {};
+ installer = pkgs.callPackage ./pkgs/darwin-installer { inherit nix-darwin; };
+ uninstaller = pkgs.callPackage ./pkgs/darwin-uninstaller { inherit nix-darwin; };
}
diff --git a/pkgs/darwin-installer/default.nix b/pkgs/darwin-installer/default.nix
index 8b05d2a..f2c18e4 100644
--- a/pkgs/darwin-installer/default.nix
+++ b/pkgs/darwin-installer/default.nix
@@ -1,10 +1,16 @@
-{ stdenv, writeScript, nix, pkgs }:
+{ stdenv, writeScript, nix, pkgs, nix-darwin }:
let
+ configuration = builtins.path {
+ name = "nix-darwin-installer-configuration";
+ path = ./.;
+ filter = name: _type: name != toString ./default.nix;
+ };
+
nixPath = stdenv.lib.concatStringsSep ":" [
- "darwin-config=${toString ./configuration.nix}"
- "darwin=${toString ../..}"
- "nixpkgs=${toString pkgs.path}"
+ "darwin-config=${configuration}/configuration.nix"
+ "darwin=${nix-darwin}"
+ "nixpkgs=${pkgs.path}"
"$HOME/.nix-defexpr/channels"
"/nix/var/nix/profiles/per-user/root/channels"
"$NIX_PATH"
@@ -52,7 +58,7 @@ stdenv.mkDerivation {
if ! test -f "$config"; then
echo "copying example configuration.nix" >&2
mkdir -p "$HOME/.nixpkgs"
- cp "${toString ../../modules/examples/simple.nix}" "$config"
+ cp "${../../modules/examples/simple.nix}" "$config"
chmod u+w "$config"
# Enable nix-daemon service for multi-user installs.
diff --git a/pkgs/darwin-uninstaller/default.nix b/pkgs/darwin-uninstaller/default.nix
index 13e4c08..088bf1d 100644
--- a/pkgs/darwin-uninstaller/default.nix
+++ b/pkgs/darwin-uninstaller/default.nix
@@ -1,10 +1,16 @@
-{ stdenv, nix, pkgs }:
+{ stdenv, nix, pkgs, nix-darwin }:
let
+ configuration = builtins.path {
+ name = "nix-darwin-uninstaller-configuration";
+ path = ./.;
+ filter = name: _type: name != toString ./default.nix;
+ };
+
nixPath = stdenv.lib.concatStringsSep ":" [
- "darwin-config=${toString ./configuration.nix}"
- "darwin=${toString ../..}"
- "nixpkgs=${toString pkgs.path}"
+ "darwin-config=${configuration}/configuration.nix"
+ "darwin=${nix-darwin}"
+ "nixpkgs=${pkgs.path}"
"$NIX_PATH"
];
in