]> git.scottworley.com Git - auto-upgrade-with-pinch/commitdiff
When becoming other users, cd to /
authorScott Worley <scottworley@scottworley.com>
Sat, 21 Dec 2024 04:23:06 +0000 (20:23 -0800)
committerScott Worley <scottworley@scottworley.com>
Sat, 21 Dec 2024 04:23:06 +0000 (20:23 -0800)
When building '<nixpkgs>', nix-build checks to see if there is a file
literally called '<nixpkgs>' in the current directory (why?! it doesn't
use it if there is one).  If it can't access the current directory to
do this check, it fails with the error message:

  error: filesystem error: symlink_status: Permission denied [/home/alice/<nixpkgs>]

So we cd to a place where it can read the current directory.

modules/auto-upgrade.nix

index a80aa5cdf56fe51ebdfedee0bdcf5e0f4ab3c608..f3089bd7f75ff210017dd574d624b88ef79b9fb2 100644 (file)
@@ -183,7 +183,7 @@ let
         # Build
         in_tmpdir hydrate ${config.system.build.nixos-rebuild}/bin/nixos-rebuild build
         while read user;do
         # Build
         in_tmpdir hydrate ${config.system.build.nixos-rebuild}/bin/nixos-rebuild build
         while read user;do
-          hydrate /run/wrappers/bin/sudo -u "$user" \
+          hydrate /run/wrappers/bin/sudo -u "$user" -D / \
             ${pkgs.nix}/bin/nix-build --no-out-link '<nixpkgs>' -A "$(userenv_query "$user" .package)"
         done < <( config_query '.userEnvironments | keys []' )
 
             ${pkgs.nix}/bin/nix-build --no-out-link '<nixpkgs>' -A "$(userenv_query "$user" .package)"
         done < <( config_query '.userEnvironments | keys []' )