2006-03-01 07:15:33 -05:00
|
|
|
source common.sh
|
|
|
|
|
2004-06-18 14:09:32 -04:00
|
|
|
echo "NIX_STORE_DIR=$NIX_STORE_DIR NIX_DB_DIR=$NIX_DB_DIR"
|
|
|
|
|
2004-05-04 08:15:30 -04:00
|
|
|
test -n "$TEST_ROOT"
|
|
|
|
if test -d "$TEST_ROOT"; then
|
|
|
|
chmod -R u+w "$TEST_ROOT"
|
|
|
|
rm -rf "$TEST_ROOT"
|
|
|
|
fi
|
|
|
|
mkdir "$TEST_ROOT"
|
|
|
|
|
|
|
|
mkdir "$NIX_STORE_DIR"
|
|
|
|
mkdir "$NIX_DATA_DIR"
|
2005-02-01 12:50:48 -05:00
|
|
|
mkdir "$NIX_LOCALSTATE_DIR"
|
2005-02-18 03:40:52 -05:00
|
|
|
mkdir -p "$NIX_LOG_DIR"/drvs
|
2004-05-04 08:15:30 -04:00
|
|
|
mkdir "$NIX_STATE_DIR"
|
|
|
|
mkdir "$NIX_DB_DIR"
|
2005-02-15 04:39:12 -05:00
|
|
|
mkdir "$NIX_CONF_DIR"
|
2004-05-04 08:15:30 -04:00
|
|
|
|
2005-01-25 12:08:52 -05:00
|
|
|
mkdir $NIX_BIN_DIR
|
2006-03-01 07:51:18 -05:00
|
|
|
ln -s $nixstore $NIX_BIN_DIR/
|
|
|
|
ln -s $nixinstantiate $NIX_BIN_DIR/
|
|
|
|
ln -s $nixhash $NIX_BIN_DIR/
|
2006-09-21 14:54:08 -04:00
|
|
|
ln -s $nixenv $NIX_BIN_DIR/
|
2007-08-13 10:56:40 -04:00
|
|
|
ln -s $nixworker $NIX_BIN_DIR/
|
2010-11-17 10:30:07 -05:00
|
|
|
ln -s $TOP/src/bsdiff-*/bsdiff $NIX_BIN_DIR/
|
|
|
|
ln -s $TOP/src/bsdiff-*/bspatch $NIX_BIN_DIR/
|
2005-01-25 12:08:52 -05:00
|
|
|
ln -s $TOP/scripts/nix-prefetch-url $NIX_BIN_DIR/
|
2005-01-27 12:48:50 -05:00
|
|
|
ln -s $TOP/scripts/nix-collect-garbage $NIX_BIN_DIR/
|
2006-03-01 08:49:12 -05:00
|
|
|
ln -s $TOP/scripts/nix-build $NIX_BIN_DIR/
|
2006-09-21 14:54:08 -04:00
|
|
|
ln -s $TOP/scripts/nix-install-package $NIX_BIN_DIR/
|
2007-09-04 11:38:09 -04:00
|
|
|
ln -s $TOP/scripts/nix-push $NIX_BIN_DIR/
|
2006-09-21 14:54:08 -04:00
|
|
|
ln -s $TOP/scripts/nix-pull $NIX_BIN_DIR/
|
2010-12-05 12:36:02 -05:00
|
|
|
ln -s $TOP/scripts/nix-generate-patches $NIX_BIN_DIR/
|
2005-01-25 12:08:52 -05:00
|
|
|
mkdir $NIX_BIN_DIR/nix
|
2008-11-20 09:14:35 -05:00
|
|
|
ln -s $bzip2_bin_test/bzip2 $NIX_BIN_DIR/nix/
|
|
|
|
ln -s $bzip2_bin_test/bunzip2 $NIX_BIN_DIR/nix/
|
2008-07-18 16:03:12 -04:00
|
|
|
ln -s $TOP/scripts/copy-from-other-stores.pl $NIX_BIN_DIR/nix/
|
2005-01-25 12:08:52 -05:00
|
|
|
ln -s $TOP/scripts/download-using-manifests.pl $NIX_BIN_DIR/nix/
|
2010-12-05 12:36:02 -05:00
|
|
|
ln -s $TOP/scripts/GeneratePatches.pm $NIX_BIN_DIR/nix/
|
2010-12-05 12:50:29 -05:00
|
|
|
ln -s $TOP/scripts/NixManifest.pm $NIX_BIN_DIR/nix/
|
2005-01-25 12:08:52 -05:00
|
|
|
|
2005-02-15 04:39:12 -05:00
|
|
|
cat > "$NIX_CONF_DIR"/nix.conf <<EOF
|
|
|
|
gc-keep-outputs = false
|
|
|
|
gc-keep-derivations = false
|
|
|
|
env-keep-derivations = false
|
2010-02-24 08:12:57 -05:00
|
|
|
fsync-metadata = false
|
2005-02-15 04:39:12 -05:00
|
|
|
EOF
|
|
|
|
|
2005-01-25 12:08:52 -05:00
|
|
|
mkdir $NIX_DATA_DIR/nix
|
2005-03-21 11:28:58 -05:00
|
|
|
cp -pr $TOP/corepkgs $NIX_DATA_DIR/nix/
|
2010-11-17 10:30:07 -05:00
|
|
|
# Bah, scripts have the prefix hard-coded. This is really messy stuff
|
2005-01-28 06:05:56 -05:00
|
|
|
# (and likely to fail).
|
2005-01-27 14:15:12 -05:00
|
|
|
for i in \
|
|
|
|
$NIX_DATA_DIR/nix/corepkgs/nar/nar.sh \
|
2005-01-25 12:08:52 -05:00
|
|
|
$NIX_BIN_DIR/nix/download-using-manifests.pl \
|
2008-07-18 16:03:12 -04:00
|
|
|
$NIX_BIN_DIR/nix/copy-from-other-stores.pl \
|
2005-01-25 12:08:52 -05:00
|
|
|
$NIX_BIN_DIR/nix-prefetch-url \
|
2005-01-27 12:48:50 -05:00
|
|
|
$NIX_BIN_DIR/nix-collect-garbage \
|
2006-03-01 08:49:12 -05:00
|
|
|
$NIX_BIN_DIR/nix-build \
|
2006-09-21 14:54:08 -04:00
|
|
|
$NIX_BIN_DIR/nix-install-package \
|
2007-09-04 11:38:09 -04:00
|
|
|
$NIX_BIN_DIR/nix-push \
|
2006-09-21 14:54:08 -04:00
|
|
|
$NIX_BIN_DIR/nix-pull \
|
2010-12-05 12:36:02 -05:00
|
|
|
$NIX_BIN_DIR/nix-generate-patches \
|
2010-12-05 12:50:29 -05:00
|
|
|
$NIX_BIN_DIR/nix/NixManifest.pm \
|
2010-12-05 12:36:02 -05:00
|
|
|
$NIX_BIN_DIR/nix/GeneratePatches.pm \
|
2005-01-25 12:08:52 -05:00
|
|
|
; do
|
|
|
|
sed < $i > $i.tmp \
|
2008-11-20 10:44:59 -05:00
|
|
|
-e "s^$REAL_BIN_DIR/nix-store^$NIX_BIN_DIR/nix-store^" \
|
|
|
|
-e "s^$REAL_BIN_DIR/nix-hash^$NIX_BIN_DIR/nix-hash^" \
|
2005-01-25 12:08:52 -05:00
|
|
|
-e "s^$REAL_LIBEXEC_DIR^$NIX_LIBEXEC_DIR^" \
|
|
|
|
-e "s^$REAL_LOCALSTATE_DIR^$NIX_LOCALSTATE_DIR^" \
|
|
|
|
-e "s^$REAL_DATA_DIR^$NIX_DATA_DIR^" \
|
2005-01-28 06:05:56 -05:00
|
|
|
-e "s^$REAL_STORE_DIR\([^/]\)^$NIX_STORE_DIR\1^"
|
2005-01-25 12:08:52 -05:00
|
|
|
mv $i.tmp $i
|
|
|
|
chmod +x $i
|
|
|
|
done
|
|
|
|
|
2005-07-25 03:25:18 -04:00
|
|
|
# Another ugly hack.
|
2006-05-29 17:53:58 -04:00
|
|
|
sed "s|^$|PATH='$PATH'|" < $NIX_DATA_DIR/nix/corepkgs/nar/nar.sh > tmp
|
2005-07-25 03:25:18 -04:00
|
|
|
chmod +x tmp
|
|
|
|
mv tmp $NIX_DATA_DIR/nix/corepkgs/nar/nar.sh
|
|
|
|
|
2007-12-14 09:15:30 -05:00
|
|
|
# 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
|
|
|
|
# binaries sets DYLD_LIBRARY_PATH so that Perl finds Nix's (completely
|
|
|
|
# different) libutil --- so it barfs. So generate a shell wrapper
|
|
|
|
# around download-using-manifests that clears DYLD_LIBRARY_PATH.
|
|
|
|
mv $NIX_BIN_DIR/nix/download-using-manifests.pl $NIX_BIN_DIR/nix/download-using-manifests.pl.real
|
|
|
|
cat > $NIX_BIN_DIR/nix/download-using-manifests.pl <<EOF
|
|
|
|
#! $SHELL -e
|
|
|
|
export DYLD_LIBRARY_PATH=
|
|
|
|
exec $NIX_BIN_DIR/nix/download-using-manifests.pl.real "\$@"
|
|
|
|
EOF
|
|
|
|
chmod +x $NIX_BIN_DIR/nix/download-using-manifests.pl
|
|
|
|
|
2008-07-18 16:03:12 -04:00
|
|
|
mkdir -p $NIX_BIN_DIR/nix/substituters
|
|
|
|
mv $NIX_BIN_DIR/nix/copy-from-other-stores.pl $NIX_BIN_DIR/nix/substituters/copy-from-other-stores.pl
|
|
|
|
mv $NIX_BIN_DIR/nix/download-using-manifests.pl $NIX_BIN_DIR/nix/substituters/download-using-manifests.pl
|
|
|
|
|
2004-05-04 08:15:30 -04:00
|
|
|
# Initialise the database.
|
2006-03-01 07:51:18 -05:00
|
|
|
$nixstore --init
|
2004-05-04 08:15:30 -04:00
|
|
|
|
|
|
|
# Did anything happen?
|
2010-02-18 11:51:27 -05:00
|
|
|
test -e "$NIX_DB_DIR"/db.sqlite
|
2008-12-03 11:15:38 -05:00
|
|
|
|
|
|
|
echo 'Hello World' > ./dummy
|