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 <[email protected]> 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 <[email protected]> Sun, 02 Aug 2009 15:58:11 -0700 + -- Ryan Niebur <[email protected]> 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 [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits
