diff --git a/release.nix b/release.nix index 5819d4e6..a44b0d79 100644 --- a/release.nix +++ b/release.nix @@ -211,14 +211,29 @@ let # System tests. - tests.remote_builds = (import ./tests/remote-builds.nix rec { + tests.remoteBuilds = (import ./tests/remote-builds.nix rec { nix = build.x86_64-linux; system = "x86_64-linux"; }); - tests.nix_copy_closure = (import ./tests/nix-copy-closure.nix rec { + tests.nix-copy-closure = (import ./tests/nix-copy-closure.nix rec { nix = build.x86_64-linux; system = "x86_64-linux"; }); + tests.binaryTarball = + with import { system = "x86_64-linux"; }; + vmTools.runInLinuxImage (runCommand "nix-binary-tarball-test" + { diskImage = vmTools.diskImages.ubuntu1204x86_64; + } + '' + useradd -m alice + su - alice -c 'tar xf ${binaryTarball.x86_64-linux}/*.tar.*' + mount -t tmpfs none /nix # Provide a writable /nix. + chown alice /nix + su - alice -c '_NIX_INSTALLER_TEST=1 ./nix-*/install' + su - alice -c 'nix-store --verify' + su - alice -c 'nix-store -qR ${build.x86_64-linux}' + ''); # */ + # Aggregate job containing the release-critical jobs. release = pkgs.releaseTools.aggregate { @@ -248,8 +263,9 @@ let rpm_fedora19x86_64 rpm_fedora20i386 rpm_fedora20x86_64 - tests.remote_builds - tests.nix_copy_closure + tests.remoteBuilds + tests.nix-copy-closure + tests.binaryTarball ]; }; diff --git a/scripts/install-nix-from-closure.sh b/scripts/install-nix-from-closure.sh index ef561499..60ec1ea9 100644 --- a/scripts/install-nix-from-closure.sh +++ b/scripts/install-nix-from-closure.sh @@ -17,7 +17,7 @@ if [ -z "$USER" ]; then fi if [ "$(id -u)" -eq 0 ]; then - echo "warning: installing Nix as root is not recommended" >&2 + printf '\e[1;31mwarning: installing Nix as root is not supported by this script!\e[0m\n' fi echo "performing a single-user installation of Nix..." >&2 @@ -79,7 +79,9 @@ if ! $nix/bin/nix-channel --list | grep -q "^nixpkgs "; then $nix/bin/nix-channel --add http://nixos.org/channels/nixpkgs-unstable fi fi -$nix/bin/nix-channel --update nixpkgs +if [ -z "$_NIX_INSTALLER_TEST" ]; then + $nix/bin/nix-channel --update nixpkgs +fi # Install an SSL certificate bundle. $nix/bin/nix-env -iA nixpkgs.cacert || true