This is an automated email from the git hooks/post-receive script.

abe pushed a commit to branch master
in repository debsums.

commit 11d21c761b6e71bb9a740923af49ae771ed583f3
Author: Ryan Niebur <ryanrya...@gmail.com>
Date:   Sun Aug 2 17:07:32 2009 -0700

    add --ignore-persmissions option for use by reportbug (Closes: #536576)
---
 debian/changelog |  4 +++-
 debsums.in       | 37 ++++++++++++++++++++++++++++++++-----
 2 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index ae052f0..2260500 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,8 +9,10 @@ debsums (2.0.47) UNRELEASED; urgency=low
   * document the solution to bug #74033
   * document the possible outcomes (Closes: #469774)
   * patch from sgran to fix rmtree usage (Closes: #487317)
+  * add --ignore-persmissions option for use by reportbug (Closes:
+    #536576)
 
- -- Ryan Niebur <ryanrya...@gmail.com>  Sun, 02 Aug 2009 15:58:11 -0700
+ -- Ryan Niebur <ryanrya...@gmail.com>  Sun, 02 Aug 2009 17:03:23 -0700
 
 debsums (2.0.46) unstable; urgency=low
 
diff --git a/debsums.in b/debsums.in
index 86b2275..1385322 100755
--- a/debsums.in
+++ b/debsums.in
@@ -15,6 +15,7 @@ use Fcntl qw/O_RDONLY O_NONBLOCK O_NOATIME/;
 use Getopt::Long qw/:config bundling/;
 use Digest::MD5;
 use constant ELF_MAGIC => "\177ELF";
+use Errno;
 
 (my $self = $0) =~ s!.*/!!;
 my $version = <<EOT;
@@ -68,11 +69,24 @@ GetOptions (
     'generate=s'       => \$gen_opt,
     'locale-purge!'    => \my $localepurge,
     'prelink!'         => \my $prelink,
+    'ignore-permissions' => \my $ignore_permissions,
     g                  => sub { $gen_opt = 'missing' },
     help               => sub { print $help; exit },
     version            => sub { print $version; exit },
 ) or die "Try '$self --help' for more information.\n";
 
+sub can_ignore {
+  return $!{EACCES} && $ignore_permissions;
+}
+
+sub warn_or_die {
+  if(can_ignore()) {
+    warn $_[0];
+  } else {
+    die $_[0];
+  }
+}
+
 $root ||= '';
 $admindir ||= '/var/lib/dpkg';
 my $DPKG = $root . $admindir;
@@ -183,12 +197,15 @@ for (`/usr/sbin/dpkg-divert --list`)
 my %debsum;
 if ($md5sums)
 {
-    open F, $md5sums or die "$self: can't open sums file '$md5sums' ($!)\n";
+    open F, $md5sums or warn_or_die "$self: can't open sums file '$md5sums' 
($!)\n";
+    if(fileno(F)) {
     while (<F>)
     {
        my ($sum, $deb) = split;
        $debsum{$deb} = $sum;
     }
+    close F;
+    }
 }
 
 my $digest = Digest::MD5->new;
@@ -262,7 +279,11 @@ sub is_replaced
                and !$locales{$1};
 
            warn "$self: can't open $pack file $root/$path ($!)\n";
-           return 2;
+            if(can_ignore()) {
+              return 0;
+            } else {
+              return 2;
+            }
        }
 
        unless (-f F)
@@ -458,9 +479,11 @@ for (@ARGV)
        {
            if (exists $debsum{$deb})
            {
-               open F, $deb or die "$self: can't open $deb ($!)\n";
+               open F, $deb or warn_or_die "$self: can't open $deb ($!)\n";
+                if(fileno(F)) {
                $digest->addfile(\*F);
                close F;
+                }
 
                unless ($digest->hexdigest eq $debsum{$deb})
                {
@@ -522,9 +545,11 @@ for (@ARGV)
 
            find sub {
                return if -l or ! -f;
-               open F, $_ or die "$self: can't open $_ ($!)\n";
+               open F, $_ or warn_or_die "$self: can't open $_ ($!)\n";
+                if(fileno(F)) {
                $digest->addfile(\*F);
                close F;
+                }
                my $md5 = $digest->hexdigest;
                my $path = substr $File::Find::name, $skip;
                if (delete $conf{$path})
@@ -561,7 +586,8 @@ for (@ARGV)
 
     unless ($config)
     {
-       open SUMS, $sums or die "$self: can't open $sums ($!)\n";
+       open SUMS, $sums or warn_or_die "$self: can't open $sums ($!)\n";
+        if(fileno(SUMS)) {
        while (<SUMS>)
        {
            chomp;
@@ -578,6 +604,7 @@ for (@ARGV)
        }
 
        close SUMS;
+      }
     }
 
     next unless ($all or $config) and %$conffiles;

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/debsums.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to