aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-11-29 09:26:05 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-11-29 09:26:05 +0000
commit9737a7eba0844e317591f16092879696c4f3feae (patch)
tree6feaaa6a5f97402f66fc0c99151bbb8e7dc30495 /scripts
parentbd48fd97f646f068ae2725b5b2f048d45866119b (diff)
* Don't generate patches if the system type differs.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/generate-patches.pl.in9
-rw-r--r--scripts/readmanifest.pm.in6
2 files changed, 13 insertions, 2 deletions
diff --git a/scripts/generate-patches.pl.in b/scripts/generate-patches.pl.in
index 3be30be00..05bf65093 100755
--- a/scripts/generate-patches.pl.in
+++ b/scripts/generate-patches.pl.in
@@ -228,6 +228,13 @@ foreach my $p (keys %dstOutPaths) {
if ($name eq $name2) {
+ my $srcSystem = @{$dstNarFiles{$p}}[0]->{system};
+ my $dstSystem = @{$srcNarFiles{$q}}[0]->{system};
+ if (defined $srcSystem && defined $dstSystem && $srcSystem ne $dstSystem) {
+ print " SKIPPING $q due to different systems ($srcSystem vs. $dstSystem)\n";
+ next;
+ }
+
# If the sizes differ too much, then skip. This
# disambiguates between, e.g., a real component and a
# wrapper component (cf. Firefox in Nixpkgs).
@@ -238,7 +245,7 @@ foreach my $p (keys %dstOutPaths) {
# print " SIZE $srcSize $dstSize $ratio $q\n";
if ($ratio >= 3) {
- print " SKIPPING $q due to size ratio $ratio ($srcSize $dstSize)\n";
+ print " SKIPPING $q due to size ratio $ratio ($srcSize vs. $dstSize)\n";
next;
}
diff --git a/scripts/readmanifest.pm.in b/scripts/readmanifest.pm.in
index c2c4be89b..82a01e5ab 100644
--- a/scripts/readmanifest.pm.in
+++ b/scripts/readmanifest.pm.in
@@ -34,7 +34,7 @@ sub readManifest {
my $manifestVersion = 2;
my ($storePath, $url, $hash, $size, $basePath, $baseHash, $patchType);
- my ($narHash, $narSize, $references, $deriver, $hashAlgo, $copyFrom);
+ my ($narHash, $narSize, $references, $deriver, $hashAlgo, $copyFrom, $system);
while (<MANIFEST>) {
chomp;
@@ -56,6 +56,7 @@ sub readManifest {
undef $basePath;
undef $baseHash;
undef $patchType;
+ undef $system;
$references = "";
$deriver = "";
$hashAlgo = "md5";
@@ -83,6 +84,7 @@ sub readManifest {
, narHash => $narHash, narSize => $narSize
, references => $references
, deriver => $deriver, hashAlgo => $hashAlgo
+ , system => $system
};
}
@@ -128,6 +130,7 @@ sub readManifest {
elsif (/^\s*References:\s*(.*)\s*$/) { $references = $1; }
elsif (/^\s*Deriver:\s*(\S+)\s*$/) { $deriver = $1; }
elsif (/^\s*ManifestVersion:\s*(\d+)\s*$/) { $manifestVersion = $1; }
+ elsif (/^\s*System:\s*(\S+)\s*$/) { $system = $1; }
# Compatibility;
elsif (/^\s*NarURL:\s*(\S+)\s*$/) { $url = $1; }
@@ -165,6 +168,7 @@ sub writeManifest {
if defined $narFile->{references} && $narFile->{references} ne "";
print MANIFEST " Deriver: $narFile->{deriver}\n"
if defined $narFile->{deriver} && $narFile->{deriver} ne "";
+ print MANIFEST " System: $narFile->{system}\n" if defined $narFile->{system};
print MANIFEST "}\n";
}
}