* Include the size of the bzipped archive (necessary for computing the
cheapest download path), as well as the hash of the contents of the path (necessary for checking patch applicability).
This commit is contained in:
parent
862f4c154e
commit
e3b051aeeb
2 changed files with 23 additions and 9 deletions
|
@ -6,10 +6,14 @@ export PATH=/bin:/usr/bin
|
|||
echo "packing $path into $out..."
|
||||
mkdir $out
|
||||
dst=$out/$(basename $path).nar.bz2
|
||||
@bindir@/nix-store --dump "$path" | @bzip2@ > $dst
|
||||
@bindir@/nix-store --dump "$path" > tmp
|
||||
|
||||
if test "${PIPESTATUS[0]}" != "0"; then exit 1; fi
|
||||
@bzip2@ < tmp > $dst
|
||||
|
||||
md5=$(md5sum -b $dst | cut -c1-32)
|
||||
narHash=$(md5sum -b tmp | cut -c1-32)
|
||||
if test $? != 0; then exit 1; fi
|
||||
echo $md5 > $out/md5
|
||||
echo $narHash > $out/nar-hash
|
||||
|
||||
narbz2Hash=$(md5sum -b $dst | cut -c1-32)
|
||||
if test $? != 0; then exit 1; fi
|
||||
echo $narbz2Hash > $out/narbz2-hash
|
||||
|
|
|
@ -125,16 +125,26 @@ for (my $n = 0; $n < scalar @storepaths; $n++) {
|
|||
(-f $narfile) or die "narfile for $storepath not found";
|
||||
push @nararchives, $narfile;
|
||||
|
||||
open MD5, "$nardir/md5" or die "cannot open hash";
|
||||
my $hash = <MD5>;
|
||||
chomp $hash;
|
||||
$hash =~ /^[0-9a-z]{32}$/ or die "invalid hash";
|
||||
open MD5, "$nardir/narbz2-hash" or die "cannot open narbz2-hash";
|
||||
my $narbz2Hash = <MD5>;
|
||||
chomp $narbz2Hash;
|
||||
$narbz2Hash =~ /^[0-9a-z]{32}$/ or die "invalid hash";
|
||||
close MD5;
|
||||
|
||||
open MD5, "$nardir/nar-hash" or die "cannot open nar-hash";
|
||||
my $narHash = <MD5>;
|
||||
chomp $narHash;
|
||||
$narHash =~ /^[0-9a-z]{32}$/ or die "invalid hash";
|
||||
close MD5;
|
||||
|
||||
my $size = (stat $narfile)[7];
|
||||
|
||||
print MANIFEST "{\n";
|
||||
print MANIFEST " StorePath: $storepath\n";
|
||||
print MANIFEST " NarURL: $archives_get_url/$narname\n";
|
||||
print MANIFEST " MD5: $hash\n";
|
||||
print MANIFEST " MD5: $narbz2Hash\n";
|
||||
print MANIFEST " NarHash: $narHash\n";
|
||||
print MANIFEST " Size: $size\n";
|
||||
|
||||
if ($storepath =~ /\.store$/) {
|
||||
open PREDS, "@bindir@/nix-store --query --predecessors $storepath |" or die "cannot run nix";
|
||||
|
|
Loading…
Reference in a new issue