[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: