forked from lix-project/lix
* 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
|
@ -6,10 +6,14 @@ export PATH=/bin:/usr/bin
|
||||||
echo "packing $path into $out..."
|
echo "packing $path into $out..."
|
||||||
mkdir $out
|
mkdir $out
|
||||||
dst=$out/$(basename $path).nar.bz2
|
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
|
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";
|
(-f $narfile) or die "narfile for $storepath not found";
|
||||||
push @nararchives, $narfile;
|
push @nararchives, $narfile;
|
||||||
|
|
||||||
open MD5, "$nardir/md5" or die "cannot open hash";
|
open MD5, "$nardir/narbz2-hash" or die "cannot open narbz2-hash";
|
||||||
my $hash = <MD5>;
|
my $narbz2Hash = <MD5>;
|
||||||
chomp $hash;
|
chomp $narbz2Hash;
|
||||||
$hash =~ /^[0-9a-z]{32}$/ or die "invalid hash";
|
$narbz2Hash =~ /^[0-9a-z]{32}$/ or die "invalid hash";
|
||||||
close MD5;
|
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 "{\n";
|
||||||
print MANIFEST " StorePath: $storepath\n";
|
print MANIFEST " StorePath: $storepath\n";
|
||||||
print MANIFEST " NarURL: $archives_get_url/$narname\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$/) {
|
if ($storepath =~ /\.store$/) {
|
||||||
open PREDS, "@bindir@/nix-store --query --predecessors $storepath |" or die "cannot run nix";
|
open PREDS, "@bindir@/nix-store --query --predecessors $storepath |" or die "cannot run nix";
|
||||||
|
|
Loading…
Reference in a new issue