diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-12-13T16·56+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-12-13T16·56+0000 |
commit | e3b051aeeb968528d918b6af6c1e1df0bd7de958 (patch) | |
tree | 19f659c9a99bc6bc9516a1ce6d50210c694f65b9 | |
parent | 862f4c154e883611ba9dfefe921c87e6423075ea (diff) |
* 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).
-rw-r--r-- | corepkgs/nar/nar.sh.in | 12 | ||||
-rw-r--r-- | scripts/nix-push.in | 20 |
2 files changed, 23 insertions, 9 deletions
diff --git a/corepkgs/nar/nar.sh.in b/corepkgs/nar/nar.sh.in index 11344f7fffbd..11598e6a98f0 100644 --- a/corepkgs/nar/nar.sh.in +++ b/corepkgs/nar/nar.sh.in @@ -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 diff --git a/scripts/nix-push.in b/scripts/nix-push.in index fc44d02c6cba..9f1d5d22b459 100644 --- a/scripts/nix-push.in +++ b/scripts/nix-push.in @@ -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"; |