nix-support/binary-tarball.nix: Pass through root paths

Passing through root paths allows external programs to see
which nix and cacert are in a binary tarball,
e.g. to recreate it from substituters

Change-Id: I27431134df53bbc6623484f8a0822004b51f7c87
This commit is contained in:
Artemis Tosini 2024-07-13 23:22:43 +00:00
parent a8f443d960
commit 201e8b6994
Signed by: artemist
GPG key ID: EE5227935FE3FF18

View file

@ -5,29 +5,33 @@
system, system,
}: }:
let let
installerClosureInfo = buildPackages.closureInfo { rootPaths = [
rootPaths = [ nix
nix cacert
cacert ];
]; installerClosureInfo = buildPackages.closureInfo { inherit rootPaths; };
};
meta.description = "Distribution-independent Lix bootstrap binaries for ${system}"; meta.description = "Distribution-independent Lix bootstrap binaries for ${system}";
in in
buildPackages.runCommand "lix-binary-tarball-${nix.version}" { inherit meta; } '' buildPackages.runCommand "lix-binary-tarball-${nix.version}"
cp ${installerClosureInfo}/registration $TMPDIR/reginfo {
inherit meta;
passthru.rootPaths = rootPaths;
}
''
cp ${installerClosureInfo}/registration $TMPDIR/reginfo
dir=lix-${nix.version}-${system} dir=lix-${nix.version}-${system}
fn=$out/$dir.tar.xz fn=$out/$dir.tar.xz
mkdir -p $out/nix-support mkdir -p $out/nix-support
echo "file binary-dist $fn" >> $out/nix-support/hydra-build-products echo "file binary-dist $fn" >> $out/nix-support/hydra-build-products
tar cvfJ $fn \ tar cvfJ $fn \
--owner=0 --group=0 --mode=u+rw,uga+r \ --owner=0 --group=0 --mode=u+rw,uga+r \
--mtime='1970-01-01' \ --mtime='1970-01-01' \
--absolute-names \ --absolute-names \
--hard-dereference \ --hard-dereference \
--transform "s,$TMPDIR/reginfo,$dir/.reginfo," \ --transform "s,$TMPDIR/reginfo,$dir/.reginfo," \
--transform "s,$NIX_STORE,$dir/store,S" \ --transform "s,$NIX_STORE,$dir/store,S" \
$TMPDIR/reginfo \ $TMPDIR/reginfo \
$(cat ${installerClosureInfo}/store-paths) $(cat ${installerClosureInfo}/store-paths)
'' ''