Bladeren bron

dpkg-scanpackages: Properly detect spurious overrides

The detection was being done too late as no overriden information is
kept if the packages is not on the archive.
Guillem Jover 17 jaren geleden
bovenliggende
commit
8e3f26ad2d
2 gewijzigde bestanden met toevoegingen van 6 en 3 verwijderingen
  1. 1 0
      debian/changelog
  2. 5 3
      scripts/dpkg-scanpackages.pl

+ 1 - 0
debian/changelog

@@ -3,6 +3,7 @@ dpkg (1.15.3) UNRELEASED; urgency=low
   [ Guillem Jover ]
   [ Guillem Jover ]
   * Unset TAR_OPTIONS when extracting .deb archives. Closes: #530860
   * Unset TAR_OPTIONS when extracting .deb archives. Closes: #530860
   * Use default compressor values in dpkg-source from Dpkg::Source::Compressor.
   * Use default compressor values in dpkg-source from Dpkg::Source::Compressor.
+  * Fix dpkg-scanpackages to properly detect spurious overrides.
 
 
   [ Raphael Hertzog ]
   [ Raphael Hertzog ]
   * Unset TAR_OPTIONS when creating/extracting tar archives for source
   * Unset TAR_OPTIONS when creating/extracting tar archives for source

+ 5 - 3
scripts/dpkg-scanpackages.pl

@@ -14,6 +14,7 @@ use Dpkg::Version qw(compare_versions);
 textdomain("dpkg-dev");
 textdomain("dpkg-dev");
 
 
 my (@samemaint, @changedmaint);
 my (@samemaint, @changedmaint);
+my @spuriousover;
 my %packages;
 my %packages;
 my %overridden;
 my %overridden;
 
 
@@ -85,7 +86,10 @@ sub load_override
 
 
 	my ($p, $priority, $section, $maintainer) = split(/\s+/, $_, 4);
 	my ($p, $priority, $section, $maintainer) = split(/\s+/, $_, 4);
 
 
-	next unless defined($packages{$p});
+	if (not defined($packages{$p})) {
+	    push(@spuriousover, $p);
+	    next;
+	}
 
 
 	for my $package (@{$packages{$p}}) {
 	for my $package (@{$packages{$p}}) {
 	    if ($maintainer) {
 	    if ($maintainer) {
@@ -268,8 +272,6 @@ for my $p (sort keys %packages) {
 }
 }
 close(STDOUT) or syserr(_g("Couldn't close stdout"));
 close(STDOUT) or syserr(_g("Couldn't close stdout"));
 
 
-my @spuriousover= grep(!defined($packages{$_}),sort keys %overridden);
-
 writelist(_g("** Packages in archive but missing from override file: **"),
 writelist(_g("** Packages in archive but missing from override file: **"),
           @missingover);
           @missingover);
 if (@changedmaint) {
 if (@changedmaint) {