* Refactoring: Get rid of a few subdirectories in corepkgs/, and some
other simplifications. * Use <nix/...> to locate the corepkgs. This allows them to be overriden through $NIX_PATH. * Use bash's pipefail option in the NAR builder so that we don't need to create a temporary file.
This commit is contained in:
		
							parent
							
								
									93e71e6ab6
								
							
						
					
					
						commit
						48cea0d01e
					
				
					 15 changed files with 52 additions and 84 deletions
				
			
		|  | @ -9,7 +9,6 @@ if ! NIX_STORE_DIR=$(readlink -f $TEST_ROOT/store 2> /dev/null); then | |||
|     export NIX_IGNORE_SYMLINK_STORE=1 | ||||
|     NIX_STORE_DIR=$TEST_ROOT/store | ||||
| fi | ||||
| export NIX_DATA_DIR=$TEST_ROOT/data | ||||
| export NIX_LOCALSTATE_DIR=$TEST_ROOT/var | ||||
| export NIX_LOG_DIR=$TEST_ROOT/var/log/nix | ||||
| export NIX_STATE_DIR=$TEST_ROOT/var/nix | ||||
|  | @ -19,15 +18,11 @@ export NIX_BIN_DIR=$TEST_ROOT/bin | |||
| export NIX_LIBEXEC_DIR=$TEST_ROOT/bin | ||||
| export NIX_MANIFESTS_DIR=$TEST_ROOT/var/nix/manifests | ||||
| export NIX_ROOT_FINDER= | ||||
| export NIX_PATH=nix=$TOP/corepkgs | ||||
| export SHARED=$TEST_ROOT/shared | ||||
| 
 | ||||
| export PATH=$NIX_BIN_DIR:$TOP/scripts:$PATH | ||||
| 
 | ||||
| export REAL_BIN_DIR=@bindir@ | ||||
| export REAL_LIBEXEC_DIR=@libexecdir@ | ||||
| export REAL_LOCALSTATE_DIR=@localstatedir@ | ||||
| export REAL_DATA_DIR=@datadir@ | ||||
| export REAL_STORE_DIR=@storedir@ | ||||
| export NIX_BUILD_HOOK= | ||||
| export PERL=perl | ||||
| export PERL5LIB=$TOP/perl/lib:$PERL5LIB | ||||
|  |  | |||
|  | @ -10,7 +10,6 @@ fi | |||
| mkdir "$TEST_ROOT" | ||||
| 
 | ||||
| mkdir "$NIX_STORE_DIR" | ||||
| mkdir "$NIX_DATA_DIR" | ||||
| mkdir "$NIX_LOCALSTATE_DIR" | ||||
| mkdir -p "$NIX_LOG_DIR"/drvs | ||||
| mkdir "$NIX_STATE_DIR" | ||||
|  | @ -39,29 +38,6 @@ env-keep-derivations = false | |||
| fsync-metadata = false | ||||
| EOF | ||||
| 
 | ||||
| mkdir $NIX_DATA_DIR/nix | ||||
| cp -pr $TOP/corepkgs $NIX_DATA_DIR/nix/ | ||||
| # Bah, scripts have the prefix hard-coded.  This is really messy stuff | ||||
| # (and likely to fail). | ||||
| for i in \ | ||||
|     $NIX_DATA_DIR/nix/corepkgs/nar/nar.sh \ | ||||
|     ; do | ||||
|     sed < $i > $i.tmp \ | ||||
|         -e "s^$REAL_BIN_DIR/nix-store^$NIX_BIN_DIR/nix-store^" \ | ||||
|         -e "s^$REAL_BIN_DIR/nix-hash^$NIX_BIN_DIR/nix-hash^" \ | ||||
|         -e "s^$REAL_LIBEXEC_DIR^$NIX_LIBEXEC_DIR^" \ | ||||
|         -e "s^$REAL_LOCALSTATE_DIR^$NIX_LOCALSTATE_DIR^" \ | ||||
|         -e "s^$REAL_DATA_DIR^$NIX_DATA_DIR^" \ | ||||
|         -e "s^$REAL_STORE_DIR\([^/]\)^$NIX_STORE_DIR\1^" | ||||
|     mv $i.tmp $i | ||||
|     chmod +x $i | ||||
| done | ||||
| 
 | ||||
| # Another ugly hack. | ||||
| sed "s|^$|PATH='$PATH'|" < $NIX_DATA_DIR/nix/corepkgs/nar/nar.sh > tmp | ||||
| chmod +x tmp | ||||
| mv tmp $NIX_DATA_DIR/nix/corepkgs/nar/nar.sh | ||||
| 
 | ||||
| # An uberhack for Mac OS X 10.5: download-using-manifests uses Perl, | ||||
| # and Perl links against Darwin's libutil.dylib (in /usr/lib), but | ||||
| # when running "make check", the libtool wrapper script around the Nix | ||||
|  |  | |||
|  | @ -40,7 +40,7 @@ for i in lang/eval-okay-*.nix; do | |||
|         if test -e lang/$i.flags; then | ||||
|             flags=$(cat lang/$i.flags) | ||||
|         fi | ||||
|         if ! NIX_PATH=lang/dir3:lang/dir4 nix-instantiate $flags --eval-only --strict lang/$i.nix > lang/$i.out; then | ||||
|         if ! NIX_PATH=lang/dir3:lang/dir4:$NIX_PATH nix-instantiate $flags --eval-only --strict lang/$i.nix > lang/$i.out; then | ||||
|             echo "FAIL: $i should evaluate" | ||||
|             fail=1 | ||||
|         elif ! diff lang/$i.out lang/$i.exp; then | ||||
|  |  | |||
|  | @ -1,3 +1,3 @@ | |||
| assert builtins.pathExists <nix/buildenv>; | ||||
| assert builtins.pathExists <nix/buildenv.nix>; | ||||
| 
 | ||||
| import <a.nix> + import <b.nix> + import <c.nix> + import <dir5/c.nix> | ||||
|  |  | |||
|  | @ -36,7 +36,7 @@ nix-env -p $profiles/test -q '*' | grep -q foo-2.0pre1 | |||
| test "$($profiles/test/bin/foo)" = "foo-2.0pre1" | ||||
| 
 | ||||
| # Upgrade "foo": should install foo-2.0. | ||||
| NIX_PATH=nixpkgs=./user-envs.nix nix-env -p $profiles/test -f '<nixpkgs>' -u foo | ||||
| NIX_PATH=nixpkgs=./user-envs.nix:$NIX_PATH nix-env -p $profiles/test -f '<nixpkgs>' -u foo | ||||
| 
 | ||||
| # Query installed: should contain foo-2.0 now. | ||||
| test "$(nix-env -p $profiles/test -q '*' | wc -l)" -eq 1 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue