--- dpkg-scanpackages	2008-10-16 07:52:48.000000000 +0100
+++ dpkg-scanpackages.new	2008-10-16 09:08:46.000000000 +0100
@@ -68,7 +68,7 @@
 
 sub usage {
     printf _g(
-"Usage: %s [<option> ...] <binarypath> <overridefile> [<pathprefix>] > Packages
+"Usage: %s [<option> ...] <binarypath> [<overridefile>] [<pathprefix>] > Packages
 
 Options:
   -u, --udeb               scan for udebs.
@@ -96,8 +96,10 @@
 my ($binarydir, $override, $pathprefix) = @ARGV;
 -d $binarydir or die sprintf(_g("Binary dir %s not found"),
                              $binarydir)."\n";
--e $override or die sprintf(_g("Override file %s not found"),
-                            $override)."\n";
+if (defined $override) {
+     -e $override or die sprintf(_g("Override file %s not found"),
+                                 $override)."\n";
+}
 
 $pathprefix = '' if not defined $pathprefix;
 
@@ -206,39 +208,41 @@
 
 
 my %overridden;
-my $override_fh = new IO::File $override,'r'
-    or die sprintf(_g("Couldn't open override file %s: %s"), $override, $!)."\n";
-while (<$override_fh>) {
-    s/\#.*//;
-    s/\s+$//;
-    next unless $_;
-    my ($p,$priority,$section,$maintainer)= split(/\s+/,$_,4);
-    next unless defined($packages{$p});
-    for my $package (@{$packages{$p}}) {
-	 if ($maintainer) {
-	      if ($maintainer =~ m/(.+?)\s*=\>\s*(.+)/) {
-		   my $oldmaint= $1;
-		   my $newmaint= $2;
-		   my $debmaint= $$package{Maintainer};
-		   if (!grep($debmaint eq $_, split(m:\s*//\s*:, $oldmaint))) {
-			push(@changedmaint,
-			     "  $p (package says $$package{Maintainer}, not $oldmaint)\n");
+if (defined $override) {
+    my $override_fh = new IO::File $override,'r'
+	or die sprintf(_g("Couldn't open override file %s: %s"), $override, $!)."\n";
+    while (<$override_fh>) {
+	s/\#.*//;
+	s/\s+$//;
+	next unless $_;
+	my ($p,$priority,$section,$maintainer)= split(/\s+/,$_,4);
+	next unless defined($packages{$p});
+	for my $package (@{$packages{$p}}) {
+	     if ($maintainer) {
+		  if ($maintainer =~ m/(.+?)\s*=\>\s*(.+)/) {
+		       my $oldmaint= $1;
+		       my $newmaint= $2;
+		       my $debmaint= $$package{Maintainer};
+		       if (!grep($debmaint eq $_, split(m:\s*//\s*:, $oldmaint))) {
+			    push(@changedmaint,
+				 "  $p (package says $$package{Maintainer}, not $oldmaint)\n");
+		       } else {
+			    $$package{Maintainer}= $newmaint;
+		       }
+		   } elsif ($$package{Maintainer} eq $maintainer) {
+		       push(@samemaint,"  $p ($maintainer)\n");
 		   } else {
-			$$package{Maintainer}= $newmaint;
+		       printf(STDERR _g(" * Unconditional maintainer override for %s *")."\n", $p) || die $!;
+		       $$package{Maintainer}= $maintainer;
 		   }
-	       } elsif ($$package{Maintainer} eq $maintainer) {
-		   push(@samemaint,"  $p ($maintainer)\n");
-	       } else {
-		   printf(STDERR _g(" * Unconditional maintainer override for %s *")."\n", $p) || die $!;
-		   $$package{Maintainer}= $maintainer;
-	       }
-	  }
-	 $$package{Priority}= $priority;
-	 $$package{Section}= $section;
+	      }
+	     $$package{Priority}= $priority;
+	     $$package{Section}= $section;
+	}
+	$overridden{$p} = 1;
     }
-    $overridden{$p} = 1;
+    close($override_fh);
 }
-close($override_fh);
 
 my @missingover=();
 
@@ -262,8 +266,10 @@
 
 my @spuriousover= grep(!defined($packages{$_}),sort keys %overridden);
 
-&writelist(_g("** Packages in archive but missing from override file: **"),
-           @missingover);
+if (defined $override) {
+    &writelist(_g("** Packages in archive but missing from override file: **"),
+               @missingover);
+}
 if (@changedmaint) {
     print(STDERR
           _g(" ++ Packages in override file with incorrect old maintainer value: ++")."\n",
