diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2018-05-30T15·40+0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2018-05-30T15·40+0200 |
commit | 7c3c635d4fa27a36fcba239b7cb980bab06ce482 (patch) | |
tree | 93834e2f72b244164cb474feb30fa5edb8970900 | |
parent | 4caaa4c5fe889be65932183e11556ee4d1fcfcac (diff) |
release.nix: Generate the installer script
-rw-r--r-- | release.nix | 21 | ||||
-rw-r--r-- | scripts/install.in | 14 |
2 files changed, 28 insertions, 7 deletions
diff --git a/release.nix b/release.nix index 37deb8e7ee38..321f1688367a 100644 --- a/release.nix +++ b/release.nix @@ -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. release = pkgs.releaseTools.aggregate { name = "nix-${tarball.version}"; @@ -284,14 +302,17 @@ let build.i686-linux build.x86_64-darwin build.x86_64-linux + build.aarch64-linux binaryTarball.i686-linux binaryTarball.x86_64-darwin binaryTarball.x86_64-linux + binaryTarball.aarch64-linux tests.remoteBuilds tests.nix-copy-closure tests.binaryTarball tests.evalNixpkgs tests.evalNixOS + installerScript ]; }; diff --git a/scripts/install.in b/scripts/install.in index 32cd2494225b..26ab85ba0992 100644 --- a/scripts/install.in +++ b/scripts/install.in @@ -23,22 +23,22 @@ require_util() { } case "$(uname -s).$(uname -m)" in - Linux.x86_64) system=x86_64-linux; hash=[%nix_hash_x86_64_linux%];; - Linux.i?86) system=i686-linux; hash=[%nix_hash_i686_linux%];; - Linux.aarch64) system=aarch64-linux; hash=[%nix_hash_aarch64_linux%];; - Darwin.x86_64) system=x86_64-darwin; hash=[%nix_hash_x86_64_darwin%];; + Linux.x86_64) system=x86_64-linux; hash=@binaryTarball_x86_64-linux@;; + Linux.i?86) system=i686-linux; hash=@binaryTarball_i686-linux@;; + Linux.aarch64) system=aarch64-linux; hash=@binaryTarball_aarch64-linux@;; + Darwin.x86_64) system=x86_64-darwin; hash=@binaryTarball_x86_64-darwin@;; *) oops "sorry, there is no binary distribution of Nix for your platform";; 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 bzcat "decompress 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'" if type sha256sum > /dev/null 2>&1; then |