mirror of
https://github.com/NixOS/nix
synced 2025-06-29 23:13:14 +02:00
* 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