On Tue, May 25, 2010 at 09:39:49AM +0200, Salvatore Bonaccorso wrote:
> Package: libgnupg-perl
> Version: 0.16-1
> Severity: serious
> Justification: FTBFS
> 
> Hi
> 
> This is a 'blocker' serious bug, to prevent that 0.16 will migrate to
> testing. libgnupg-perl has on some cirumstances a still unresolved
> issue, that test hangs:
> 
> http://rt.cpan.org/Public/Bug/Display.html?id=56723

One clear problem is that cpr_send() signals a wrong process
because of an intervening shell. Patch attached, this fixes
the hangups for me.
-- 
Niko Tyni   nt...@debian.org
>From fe5e211c07b8c009a952ef46ccfdceed6fcc9bd2 Mon Sep 17 00:00:00 2001
From: Niko Tyni <nt...@debian.org>
Date: Tue, 25 May 2010 11:55:48 +0300
Subject: [PATCH] Remove an intervening shell, fixing process ID tracking

cpr_send() needs to know the PID of the child gpg process,
but it was masked by the intervening shell. Call exec() with
the list form instead, fixing the few places where whitespace
was used instead of separate list elements.
---
 GnuPG.pm |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/GnuPG.pm b/GnuPG.pm
index 3e49c31..7d89b8d 100644
--- a/GnuPG.pm
+++ b/GnuPG.pm
@@ -259,7 +259,7 @@ sub run_gnupg($) {
           or die "can't open $self->{output} for output: $!\n";
     } elsif ( $self->{output} ) {
       my $gpg = shift(@{$cmdline});
-      unshift(@{$cmdline}, '--output ' . $self->{output});
+      unshift(@{$cmdline}, '--output' , $self->{output});
       unshift(@{$cmdline}, $gpg);
     } # Defaults to stdout
 
@@ -278,7 +278,7 @@ sub run_gnupg($) {
 
     print STDERR "GnuPG: executing `" . join(' ', @$cmdline) . "`" if $self->{trace};
 
-    exec ( join(' ', @$cmdline) )
+    exec @$cmdline
       or CORE::die "can't exec gnupg: $!\n";
     }
 }
@@ -532,7 +532,7 @@ sub encrypt($%) {
     my $options = [];
     croak ( "no recipient specified\n" )
       unless $args{recipient} or $args{symmetric};
-    push @$options, "--recipient" => "'" . $args{recipient} . "'";
+    push @$options, "--recipient" => $args{recipient};
 
     push @$options, "--sign"        if $args{sign};
     croak ( "can't sign an symmetric encrypted message\n" )
-- 
1.7.1

Reply via email to