I had not cleaned the source package before producing the patch sent 
previously. Please disregard that one and consider the attached one 
instead.

Sorry for the confusion.

Javier
diff -Nru debsums-2.0.13/debian/changelog debsums-2.0.13.1/debian/changelog
--- debsums-2.0.13/debian/changelog     2004-12-05 19:41:51.000000000 +0100
+++ debsums-2.0.13.1/debian/changelog   2005-01-29 16:08:46.000000000 +0100
@@ -1,3 +1,14 @@
+debsums (2.0.13.1) unstable; urgency=low
+
+  * Will not warn on locale purged files if /etc/locale.nopurge
+    exists, unless --no-locale-purge is given (Closes: #149029)
+  * Print full path when printing file paths (Closes: #210970)
+  * Document that the manpage example will not work for CD-ROM and
+    local sources, see #191840
+  * Added an option to check only configuration files (Closes: #261123)
+
+ -- Javier Fernandez-Sanguino Pen~a <[EMAIL PROTECTED]>  Sat, 29 Jan 2005 
15:40:13 +0100
+
 debsums (2.0.13) unstable; urgency=low
 
   * Add template translation [nl] from Luk Claes (closes: #274903).
diff -Nru debsums-2.0.13/debsums.1 debsums-2.0.13.1/debsums.1
--- debsums-2.0.13/debsums.1    2002-09-09 14:37:22.000000000 +0200
+++ debsums-2.0.13.1/debsums.1  2005-01-29 16:08:09.000000000 +0100
@@ -11,12 +11,25 @@
 .RI [ package | deb ]
 \&...
 .SH DESCRIPTION
-Verify installed Debian package files against MD5 checksum lists.
+.I debsums
+will verify installed Debian package files against MD5 checksum lists and
+provide a list of those files that hold a different MD5 checksum as
+opposed to the checksum listed provided in
+.RI /var/lib/dpkg/info/ package .md5sums.
+.P
+.I debsums
+can generate the checksum list for packages that don't provide one. It is 
+also aware of
+.I locale-purge
+and will not check purged locale files.
 .SH OPTIONS
 .TP
 .BR \-a ", " \-\-all
 Also check configuration files (normally excluded).
 .TP
+.BR \-e ", " \-\-config
+\fBOnly\fR check configuration files.
+.TP
 .BR \-c ", " \-\-changed
 Report changed file list to stdout (implies
 .BR \-s ).
@@ -51,6 +64,9 @@
 .IP
 may be used to populate the cache with any debs not already in the
 cache.
+.I Note:
+This will not work for CD-ROM and other local sources as there is no
+cache file for them under \fI/var/cache\fR.
 .TP
 .BR \-g ", " \-\-generate =[ missing | all ][, keep [, nocheck ]]
 Generate MD5 sums from deb contents.  If the argument is a package
@@ -84,6 +100,10 @@
 is equivalent to
 .BR \-\-generate=missing .
 .LP
+.BR \-\-no\-locale\-purge
+.PD
+Will print debsums errors for purged locale.
+.TP
 .B \-\-help
 .PD 0
 .TP
@@ -144,6 +164,12 @@
 from known safe media (such as a bootable rescue CD, see the \-\-root
 option) and the checksums are take from debs (\-\-generate=all) which
 are either on that media or validated using the \-\-md5sums option.
+.PP
+If you are looking for an integrity checkers that can run from safe
+media, do integrity checks on checksum databases and can be easily
+configured to run periodically to warn the admin of changes you should
+better look at other tools like: \fIaide\fR, \fIintegrit\fR, 
+\fIsamhain\fR, or \fItripwire\fR.
 .SH AUTHOR
 Written by Brendan O'Dea <[EMAIL PROTECTED]>.
 .br
diff -Nru debsums-2.0.13/debsums.in debsums-2.0.13.1/debsums.in
--- debsums-2.0.13/debsums.in   2004-07-24 10:47:55.000000000 +0200
+++ debsums-2.0.13.1/debsums.in 2005-01-29 16:07:28.000000000 +0100
@@ -34,6 +34,7 @@
 
 Options:
  -a, --all                    check configuration files (normally excluded)
+ -e, --config                 check only configuration files
  -c, --changed                report changed files (implies -s)
  -l, --list-missing           list packages which don't have an md5sums file
  -s, --silent                 only report errors
@@ -43,6 +44,7 @@
  -p, --deb-path=DIR[:DIR...]  search path for debs
  -g, --generate=[all][,keep[,nocheck]]
                              generate md5sums from deb contents
+     --no-locale-purge        warn on locale files even if locale-purge is used
      --help                   print this help, then exit
      --version                print version number, then exit
 EOT
@@ -50,6 +52,7 @@
 my $gen_opt;
 GetOptions (
     'a|all'            => \my $all,
+    'e|config'         => \my $config,
     'c|changed'                => \my $changed,
     'l|list-missing'    => \my $missing,
     's|silent'         => \my $silent,
@@ -58,6 +61,7 @@
     'd|admindir=s'     => \my $admindir,
     'p|deb-path=s'     => \my $debpath,
     'generate=s'       => \$gen_opt,
+    'nolocalepurge'    => \my $nolocalepurge,
     g                  => sub { $gen_opt = 'missing' },
     help               => sub { print $help; exit },
     version            => sub { print $version; exit },
@@ -67,6 +71,19 @@
 $admindir ||= '/var/lib/dpkg';
 my $DPKG = $root . $admindir;
 
+my $localepurges = "";
+
+if( -r "/etc/locale.nopurge") {
+       open(LOCALE, "/etc/locale.nopurge");
+       my $line;
+       foreach $line (<LOCALE>) {
+               chop $line;
+               $localepurges .= $line."|" if $line=~ /^[a-z].+/;
+       }
+       close LOCALE;
+       $localepurges =~ s/\|$//;
+}
+
 $silent++ if $changed;
 
 my @debpath = '.';
@@ -215,7 +232,16 @@
 
        unless (open F, "$root/$path")
        {
-           warn "$self: can't open $pack file $path ($!)\n";
+          return 0 if ( ! $nolocalepurge && $localepurges ne "" 
+                   && ( ($path =~ /^usr\/share\/man\/[^\/]+?\/man[0-9]\// &&
+                    $path !~ /^usr\/share\/man\/($localepurges)\/man[0-9]\//
+                   ) ||
+                   ($path =~ /^usr\/share\/locale\/[^\/]+?\// &&
+                    $path !~ /^usr\/share\/locale\/($localepurges)\// )||
+                    0)
+                  );
+
+           warn "$self: can't open $pack file $root/$path ($!)\n";
            return 0;
        }
 
@@ -225,29 +251,29 @@
        my $s = $digest->hexdigest;
        if ($s eq $sum)
        {
-           printf "%-*s OK\n", $width, $path unless $silent;
+           printf "%-*s OK\n", $width, "$root/$path" unless $silent;
            return 1;
        }
 
        if (is_replaced $pack, $path, $s)
        {
-           printf "%-*s REPLACED\n", $width - 6, $path unless $silent;
+           printf "%-*s REPLACED\n", $width - 6, "$root/$path" unless $silent;
            return 1;
        }
 
        if ($changed)
        {
-           print $path, "\n";
+           print $root, "/", $path, "\n";
            return 1;
        }
 
        if ($silent)
        {
-           warn "$self: checksum mismatch $pack file $path\n";
+           warn "$self: checksum mismatch $pack file $root/$path\n";
        }
        else
        {
-           printf "%-*s FAILED\n", $width - 4, $path;
+           printf "%-*s FAILED\n", $width - 4, "$root/$path";
        }
 
        return 0;
@@ -491,13 +517,18 @@
            next;
        }
 
-       next if exists $conffiles->{$path};
-       $status = 1 unless check $pack, $path, $sum;
+       if ($config) {
+           next if ! exists $conffiles->{$path};
+           $status = 1 unless check $pack, $path, $sum;
+       } else  {
+           next if exists $conffiles->{$path};
+           $status = 1 unless check $pack, $path, $sum;
+       }
     }
 
     close SUMS;
 
-    next unless $all and %$conffiles;
+    next unless ! $config and $all and %$conffiles;
     while (my ($path, $sum) = each %$conffiles)
     {
        $status = 1 unless check $pack, $path, $sum;

Attachment: signature.asc
Description: Digital signature

Reply via email to