From 08f32ca62a14a9da87a0a085860b436c70e071ea Mon Sep 17 00:00:00 2001 From: Nicolas Pierron Date: Sat, 7 Mar 2009 18:01:26 +0000 Subject: [PATCH] * Make nix-channel and nix-env work when chroots are enabled. Author: eelco @ rev 14271 svn path=/nixos/branches/fix-style/; revision=14443 --- upstart-jobs/nix.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/upstart-jobs/nix.nix b/upstart-jobs/nix.nix index c46b721a2a0..61ddbfbe80f 100644 --- a/upstart-jobs/nix.nix +++ b/upstart-jobs/nix.nix @@ -190,16 +190,22 @@ in # other paths in the store, we need the closure of /bin/sh # in `build-chroot-dirs' - otherwise any builder that uses # /bin/sh won't work. - refs = pkgs.writeReferencesToFile binsh; + binshDeps = pkgs.writeReferencesToFile binsh; + + # Likewise, if chroots are turned on, we need Nix's own + # closure in the chroot. Otherwise nix-channel and nix-env + # won't work because the dependencies of its builders (like + # coreutils and Perl) aren't visible. Sigh. + nixDeps = pkgs.writeReferencesToFile config.environment.nix; in pkgs.runCommand "nix.conf" {} '' - binshDeps=$(for i in $(cat ${refs}); do if test -d $i; then echo $i; fi; done) + extraPaths=$(for i in $(cat ${binshDeps} ${nixDeps}); do if test -d $i; then echo $i; fi; done) cat > $out <