Daniel Stone <[EMAIL PROTECTED]> writes: > On Wed, Aug 02, 2006 at 12:44:57PM +0100, Roger Leigh wrote:
>> That looks like an outright bug. dsc_md5sums should, IMO, return an >> empty hashref on failure, but doesn't currently. > > Correct. The patch is actually attached this time. -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/ `- GPG Public Key: 0x25BFB848 Please sign and encrypt your mail.
Index: debian/changelog
===================================================================
--- debian/changelog (revision 978)
+++ debian/changelog (working copy)
@@ -3,8 +3,13 @@
* debian/copyright: Add Alioth file download location.
* chroot/add_sbuild_user: Fix chrapt command examples in output to use
correct option syntax, thanks to Matthias Julius (Closes: #381186).
+ * sbuild:
+ - dsc_md5sums: Return an empty hashref on failure.
+ - verify_md5sums: Only run md5sum if there is one or more md5sum to
+ verify, to prevent md5sum waiting forever on stdin if there are no
+ files to check. Thanks to Daniel Stone (Closes: #381118).
- -- Roger Leigh <[EMAIL PROTECTED]> Thu, 3 Aug 2006 18:38:02 +0100
+ -- Roger Leigh <[EMAIL PROTECTED]> Thu, 3 Aug 2006 18:51:08 +0100
sbuild (0.49) unstable; urgency=low
Index: sbuild
===================================================================
--- sbuild (revision 969)
+++ sbuild (working copy)
@@ -2947,7 +2947,8 @@
print STDERR " $dir$fields[3]: $fields[1]\n" if $conf::debug;
}
}
- close( DSC ) or print PLOG "Failed to close $dsc\n" && return 1;
+ close( DSC ) or print PLOG "Failed to close $dsc\n" &&
+ return \();
}
return \%dsc_md5;
@@ -2957,26 +2958,29 @@
my $exp_md5 = shift; # Hashref of filenames and expected MD5sums.
my %obs_md5 = (); # Observed MD5sums.
- open(OBS, '-|', "$conf::md5sum", keys %$exp_md5) or return 1;
- while (<OBS>) {
- chomp;
- if (/^[a-z0-9]{32}/) {
- my @fields = split( /\s+/, $_ );
- $obs_md5{$fields[1]} = $fields[0];
+ if (scalar keys %$exp_md5 > 0) {
+
+ open(OBS, '-|', "$conf::md5sum", keys %$exp_md5) or return 1;
+ while (<OBS>) {
+ chomp;
+ if (/^[a-z0-9]{32}/) {
+ my @fields = split( /\s+/, $_ );
+ $obs_md5{$fields[1]} = $fields[0];
+ }
}
- }
- close( OBS ) or
- print PLOG "Failed to close m5sum\n" && return 1;
+ close( OBS ) or
+ print PLOG "Failed to close m5sum\n" && return 1;
- foreach (sort keys %$exp_md5) {
- if (defined $exp_md5->{$_} && defined $obs_md5{$_}) {
- if ($exp_md5->{$_} ne $obs_md5{$_}) {
- print PLOG "$_: MD5SUM mismatch ($exp_md5->{$_} cf $obs_md5{$_}\n";
+ foreach (sort keys %$exp_md5) {
+ if (defined $exp_md5->{$_} && defined $obs_md5{$_}) {
+ if ($exp_md5->{$_} ne $obs_md5{$_}) {
+ print PLOG "$_: MD5SUM mismatch ($exp_md5->{$_} cf $obs_md5{$_}\n";
+ return 1;
+ }
+ } else {
+ print PLOG "$_: Missing file\n";
return 1;
}
- } else {
- print PLOG "$_: Missing file\n";
- return 1;
}
}
pgpLndHlUu0Su.pgp
Description: PGP signature

