* Don't decompress the manifests in /nix/var/nix/manifest. This saves

disk space, and, since they're typically only decompressed once (to
  fill the manifest cache), doesn't make things slower.
This commit is contained in:
Eelco Dolstra 2011-11-16 16:25:38 +00:00
parent 63ee5e4d2a
commit d7d7910ba4
2 changed files with 9 additions and 12 deletions

View file

@ -53,8 +53,14 @@ sub addPatch {
sub readManifest_ { sub readManifest_ {
my ($manifest, $addNAR, $addPatch) = @_; my ($manifest, $addNAR, $addPatch) = @_;
# Decompress the manifest if necessary.
if ($manifest =~ /\.bz2$/) {
open MANIFEST, "$Nix::Config::bzip2 -d < $manifest |"
or die "cannot decompress `$manifest': $!";
} else {
open MANIFEST, "<$manifest" open MANIFEST, "<$manifest"
or die "cannot open `$manifest': $!"; or die "cannot open `$manifest': $!";
}
my $inside = 0; my $inside = 0;
my $type; my $type;

View file

@ -59,16 +59,7 @@ sub processURL {
# First see if a bzipped manifest is available. # First see if a bzipped manifest is available.
if (system("$Nix::Config::curl --fail --silent --head '$url'.bz2 > /dev/null") == 0) { if (system("$Nix::Config::curl --fail --silent --head '$url'.bz2 > /dev/null") == 0) {
print "fetching list of Nix archives at `$url.bz2'...\n"; print "fetching list of Nix archives at `$url.bz2'...\n";
my $bzipped = downloadFile "$url.bz2"; $manifest = downloadFile "$url.bz2";
$manifest = "$tmpDir/MANIFEST";
system("$Nix::Config::bzip2 -d < $bzipped > $manifest") == 0
or die "cannot decompress manifest";
$manifest = (`$Nix::Config::binDir/nix-store --add $manifest`
or die "cannot copy $manifest to the store");
chomp $manifest;
} }
# Otherwise, just get the uncompressed manifest. # Otherwise, just get the uncompressed manifest.