Last active
November 8, 2017 22:52
-
-
Save taktoa/4ec8b0cb6d07857400b07a830ad99558 to your computer and use it in GitHub Desktop.
Portably bootstrap nixpkgs without fetchTarball nonsense
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ system ? builtins.currentSystem }: | |
# In order to update `nixpkgs.json` to a specific revision, run: | |
# | |
# ```bash | |
# $ nix-prefetch-git https://github.com/NixOS/nixpkgs.git "${REVISION}" > nixpkgs.json | |
# ``` | |
with rec { | |
builtin-paths = import <nix/config.nix>; | |
nixpkgs-json = builtins.fromJSON (builtins.readFile ./nixpkgs.json); | |
# The nixpkgs to use when bootstrapping. This shouldn't matter except insofar | |
# as it needs to have fetchFromGitHub and ideally the binary cache should be | |
# populated for this. | |
hashes = { | |
commit = "788ce6e3df12bb0cf19fb9ccf8ffa75558b551ba"; | |
sha = "0ywvp5y6slff5xg1g63afhjywvqyz2pjxk3i203xph7fz3srpx2x"; | |
}; | |
stage1-tarball = import <nix/fetchurl.nix> { | |
url = "https://github.com/NixOS/nixpkgs/archive/${hashes.commit}.tar.gz"; | |
sha256 = hashes.sha; | |
}; | |
stage1-path = builtins.derivation { | |
name = "nixpkgs-bootstrap-stage1"; | |
builder = builtin-paths.shell; | |
args = [ | |
(builtins.toFile "nixpkgs-unpacker" '' | |
"$coreutils/mkdir" -p "$out" | |
cd "$out" | |
"$gzip" -c -d "$tarball" > temporary.tar | |
"$tar" -xf temporary.tar --strip-components=1 | |
"$coreutils/rm" temporary.tar | |
'') | |
]; | |
inherit system; | |
inherit (builtin-paths) tar gzip coreutils; | |
tarball = stage1-tarball; | |
}; | |
stage1 = import stage1-path { config = {}; inherit system; }; | |
}; | |
stage1.fetchFromGitHub { | |
owner = "NixOS"; | |
repo = "nixpkgs"; | |
inherit (nixpkgs-json) rev sha256; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"url": "https://github.com/NixOS/nixpkgs.git", | |
"rev": "7ae9da426924537755ce9164fd5b5f81ce16a1c3", | |
"date": "2017-01-31T10:35:58-06:00", | |
"sha256": "1fcvc066c270dd2yfir8cpj0gcslsbvw7grnk2fayb06rkppjxrf" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment