From 2e8e1d2f85acbca673a6865b61503874278b3792 Mon Sep 17 00:00:00 2001 From: Norbert Melzer Date: Sun, 24 Mar 2024 10:10:45 +0100 Subject: [PATCH] home-manger: fix runtime closure Without this fix a `nix-buid . -A home-manager` would successfully create a `home-manager`. And one could use the included binary until the next garbage collection, after that it would fail with an error that it can not find the `home-manager` sources. Similarily a `nix-copy-closure`d `home-manager` would fail with the same error on the copies target machine. This problem existed on both, the flake as well as the non-flake build of `home-manager`. --- default.nix | 12 +++++++++--- flake.nix | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/default.nix b/default.nix index 541a5a388..7df2dbd43 100644 --- a/default.nix +++ b/default.nix @@ -1,6 +1,12 @@ { pkgs ? import { } }: -rec { +let + path = builtins.path { + path = ./.; + name = "home-manager-source"; + }; + +in rec { docs = let releaseInfo = pkgs.lib.importJSON ./release.json; in with import ./docs { inherit pkgs; @@ -12,12 +18,12 @@ rec { jsonModuleMaintainers = jsonModuleMaintainers; # Unstable, mainly for CI. }; - home-manager = pkgs.callPackage ./home-manager { path = toString ./.; }; + home-manager = pkgs.callPackage ./home-manager { inherit path; }; install = pkgs.callPackage ./home-manager/install.nix { inherit home-manager; }; nixos = import ./nixos; - path = ./.; + inherit path; } diff --git a/flake.nix b/flake.nix index 3a90f89c0..baf18461a 100644 --- a/flake.nix +++ b/flake.nix @@ -111,7 +111,7 @@ inherit pkgs; inherit (releaseInfo) release isReleaseBranch; }; - hmPkg = pkgs.callPackage ./home-manager { path = "${./.}"; }; + hmPkg = pkgs.callPackage ./home-manager { path = "${self}"; }; testPackages = let tests = import ./tests { inherit pkgs; };