release.nix: Generate the installer script

This commit is contained in:
Eelco Dolstra 2018-05-30 17:40:08 +02:00
parent 4caaa4c5fe
commit 7c3c635d4f
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
2 changed files with 28 additions and 7 deletions

View file

@ -275,6 +275,24 @@ let
''; '';
installerScript =
pkgs.runCommand "installer-script"
{ buildInputs = [ build.x86_64-linux ];
}
''
mkdir -p $out/nix-support
substitute ${./scripts/install.in} $out/install \
${pkgs.lib.concatMapStrings
(system: "--replace '@binaryTarball_${system}@' $(nix hash-file --type sha256 ${binaryTarball.${system}}/*.tar.bz2) ")
[ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ]
} \
--replace '@nixVersion@' ${build.x86_64-linux.src.version}
echo "file installer $out/install" >> $out/nix-support/hydra-build-products
'';
# Aggregate job containing the release-critical jobs. # Aggregate job containing the release-critical jobs.
release = pkgs.releaseTools.aggregate { release = pkgs.releaseTools.aggregate {
name = "nix-${tarball.version}"; name = "nix-${tarball.version}";
@ -284,14 +302,17 @@ let
build.i686-linux build.i686-linux
build.x86_64-darwin build.x86_64-darwin
build.x86_64-linux build.x86_64-linux
build.aarch64-linux
binaryTarball.i686-linux binaryTarball.i686-linux
binaryTarball.x86_64-darwin binaryTarball.x86_64-darwin
binaryTarball.x86_64-linux binaryTarball.x86_64-linux
binaryTarball.aarch64-linux
tests.remoteBuilds tests.remoteBuilds
tests.nix-copy-closure tests.nix-copy-closure
tests.binaryTarball tests.binaryTarball
tests.evalNixpkgs tests.evalNixpkgs
tests.evalNixOS tests.evalNixOS
installerScript
]; ];
}; };

View file

@ -23,22 +23,22 @@ require_util() {
} }
case "$(uname -s).$(uname -m)" in case "$(uname -s).$(uname -m)" in
Linux.x86_64) system=x86_64-linux; hash=[%nix_hash_x86_64_linux%];; Linux.x86_64) system=x86_64-linux; hash=@binaryTarball_x86_64-linux@;;
Linux.i?86) system=i686-linux; hash=[%nix_hash_i686_linux%];; Linux.i?86) system=i686-linux; hash=@binaryTarball_i686-linux@;;
Linux.aarch64) system=aarch64-linux; hash=[%nix_hash_aarch64_linux%];; Linux.aarch64) system=aarch64-linux; hash=@binaryTarball_aarch64-linux@;;
Darwin.x86_64) system=x86_64-darwin; hash=[%nix_hash_x86_64_darwin%];; Darwin.x86_64) system=x86_64-darwin; hash=@binaryTarball_x86_64-darwin@;;
*) oops "sorry, there is no binary distribution of Nix for your platform";; *) oops "sorry, there is no binary distribution of Nix for your platform";;
esac esac
url="https://nixos.org/releases/nix/nix-[%latestNixVersion%]/nix-[%latestNixVersion%]-$system.tar.bz2" url="https://nixos.org/releases/nix/nix-@nixVersion@/nix-@nixVersion@-$system.tar.bz2"
tarball="$tmpDir/$(basename "$tmpDir/nix-[%latestNixVersion%]-$system.tar.bz2")" tarball="$tmpDir/$(basename "$tmpDir/nix-@nixVersion@-$system.tar.bz2")"
require_util curl "download the binary tarball" require_util curl "download the binary tarball"
require_util bzcat "decompress the binary tarball" require_util bzcat "decompress the binary tarball"
require_util tar "unpack the binary tarball" require_util tar "unpack the binary tarball"
echo "downloading Nix [%latestNixVersion%] binary tarball for $system from '$url' to '$tmpDir'..." echo "downloading Nix @nixVersion@ binary tarball for $system from '$url' to '$tmpDir'..."
curl -L "$url" -o "$tarball" || oops "failed to download '$url'" curl -L "$url" -o "$tarball" || oops "failed to download '$url'"
if type sha256sum > /dev/null 2>&1; then if type sha256sum > /dev/null 2>&1; then