Ubuntu dpkg 1.14.24ubuntu2
This e-mail has been sent due to an upload to Ubuntu that contains Ubuntu
changes. It contains the difference between the new version and the
previous version of the same source package in Ubuntu.
Format: 1.7
Date: Wed, 29 Apr 2009 00:26:36 +0100
Source: dpkg
Binary: dpkg dpkg-dev dselect
Architecture: source
Version: 1.14.24ubuntu2
Distribution: karmic
Urgency: low
Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Changed-By: Colin Watson <cjwatson@ubuntu.com>
Description:
dpkg - Debian package management system
dpkg-dev - Debian package development tools
dselect - Debian package management front-end
Closes: 523329
Changes:
dpkg (1.14.24ubuntu2) karmic; urgency=low
.
* Backport from unstable (we'll merge soon enough, but I'm waiting for
1.15.1):
- Fix dpkg-source to not die when uncompressor processes are killed by
SIGPIPE due to tar closing the pipe without exhausting all the data
available. Closes: #523329
Files:
a617804e23a0639f13b7a985eeb628c5 1383 admin required dpkg_1.14.24ubuntu2.dsc
0bb0c66dd5a92dc67632ba0c8ec7ed43 6862500 admin required dpkg_1.14.24ubuntu2.tar.gz
Original-Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
diff -pruN 1.14.24ubuntu1/debian/changelog 1.14.24ubuntu2/debian/changelog
--- 1.14.24ubuntu1/debian/changelog 2009-01-07 12:11:14.000000000 +0000
+++ 1.14.24ubuntu2/debian/changelog 2009-04-29 00:26:38.000000000 +0100
@@ -1,3 +1,13 @@
+dpkg (1.14.24ubuntu2) karmic; urgency=low
+
+ * Backport from unstable (we'll merge soon enough, but I'm waiting for
+ 1.15.1):
+ - Fix dpkg-source to not die when uncompressor processes are killed by
+ SIGPIPE due to tar closing the pipe without exhausting all the data
+ available. Closes: #523329
+
+ -- Colin Watson <cjwatson@ubuntu.com> Wed, 29 Apr 2009 00:26:36 +0100
+
dpkg (1.14.24ubuntu1) jaunty; urgency=low
* Resynchronise with Debian. Remaining changes:
diff -pruN 1.14.24ubuntu1/scripts/Dpkg/Source/CompressedFile.pm 1.14.24ubuntu2/scripts/Dpkg/Source/CompressedFile.pm
--- 1.14.24ubuntu1/scripts/Dpkg/Source/CompressedFile.pm 2008-12-26 04:49:01.000000000 +0000
+++ 1.14.24ubuntu2/scripts/Dpkg/Source/CompressedFile.pm 2009-04-29 00:25:53.000000000 +0100
@@ -23,6 +23,7 @@ use Dpkg::Compression;
use Dpkg::Source::Compressor;
use Dpkg::Gettext;
use Dpkg::ErrorHandling qw(error syserr warning);
+use POSIX;
# Object methods
sub new {
@@ -35,6 +36,7 @@ sub new {
$self->{"compressor"} = Dpkg::Source::Compressor->new();
$self->{"add_comp_ext"} = $args{"add_compression_extension"} ||
$args{"add_comp_ext"} || 0;
+ $self->{"allow_sigpipe"} = 0;
if (exists $args{"filename"}) {
$self->set_filename($args{"filename"});
}
@@ -126,6 +128,7 @@ sub open_for_read {
if ($self->use_compression()) {
$self->{'compressor'}->uncompress(to_pipe => \$handle,
from_file => $self->get_filename());
+ $self->{'allow_sigpipe'} = 1;
} else {
open($handle, '<', $self->get_filename()) ||
syserr(_g("cannot read %s"), $self->get_filename());
@@ -135,7 +138,12 @@ sub open_for_read {
sub cleanup_after_open {
my ($self) = @_;
- $self->{"compressor"}->wait_end_process();
+ $self->{"compressor"}->wait_end_process(nocheck => $self->{'allow_sigpipe'});
+ if ($self->{'allow_sigpipe'}) {
+ unless (($? == 0) || (WIFSIGNALED($?) && (WTERMSIG($?) == SIGPIPE))) {
+ subprocerr($self->{"compressor"}{"cmdline"});
+ }
+ }
}
1;
diff -pruN 1.14.24ubuntu1/scripts/Dpkg/Source/Compressor.pm 1.14.24ubuntu2/scripts/Dpkg/Source/Compressor.pm
--- 1.14.24ubuntu1/scripts/Dpkg/Source/Compressor.pm 2008-12-26 04:49:01.000000000 +0000
+++ 1.14.24ubuntu2/scripts/Dpkg/Source/Compressor.pm 2009-04-29 00:25:24.000000000 +0100
@@ -122,8 +122,9 @@ sub uncompress {
}
sub wait_end_process {
- my ($self) = @_;
- wait_child($self->{"pid"}, cmdline => $self->{"cmdline"}) if $self->{'pid'};
+ my ($self, %opts) = @_;
+ $opts{"cmdline"} ||= $self->{"cmdline"};
+ wait_child($self->{"pid"}, %opts) if $self->{'pid'};
delete $self->{"pid"};
delete $self->{"cmdline"};
}
Reply to: