1/*
2 Build a channel tarball. These contain, in addition to the nixpkgs
3 expressions themselves, files that indicate the version of nixpkgs
4 that they represent.
5*/
6{
7 pkgs,
8 nixpkgs,
9 version,
10 versionSuffix,
11}:
12
13pkgs.releaseTools.makeSourceTarball {
14 name = "nixos-channel";
15
16 src = nixpkgs;
17
18 officialRelease = false; # FIXME: fix this in makeSourceTarball
19 inherit version versionSuffix;
20
21 buildInputs = [ pkgs.nix ];
22
23 distPhase = ''
24 rm -rf .git
25 echo -n $VERSION_SUFFIX > .version-suffix
26 echo -n ${nixpkgs.rev or nixpkgs.shortRev} > .git-revision
27 releaseName=nixos-$VERSION$VERSION_SUFFIX
28 mkdir -p $out/tarballs
29 cp -prd . ../$releaseName
30 chmod -R u+w ../$releaseName
31 ln -s . ../$releaseName/nixpkgs # hack to make ‘<nixpkgs>’ work
32 NIX_STATE_DIR=$TMPDIR nix-env -f ../$releaseName/default.nix -qaP --meta --show-trace --xml \* > /dev/null
33 cd ..
34 chmod -R u+w $releaseName
35 tar cfJ $out/tarballs/$releaseName.tar.xz $releaseName
36 '';
37}