Bug#749504: [chdist] bin2src fails with "chdist: bad apt-cache : 13"
Adam D. Barratt
adam at adam-barratt.org.uk
Tue May 27 20:02:48 UTC 2014
On Tue, 2014-05-27 at 14:33 +0100, Robie Basak wrote:
> chdist create sid http://ftp.debian.org/debian/ unstable main contrib non-free
> chdist apt-get sid update
> chdist bin2src sid apache2-bin
>
> Expected output: "apache2" (exit status 0)
> Actual output: "chdist: bad apt-cache : 13" (exit status 1)
The code in question is
my $pid = open(CACHE, '-|', 'apt-cache', @args);
if (!defined($pid)) {
fatal("Couldn't run apt-cache: $!");
}
if ($pid) {
while (<CACHE>) {
if (m/^Source: (.*)/) {
$src = $1;
last;
}
}
close CACHE || fatal("bad apt-cache $!: $?");
print "$src\n";
}
The while loop hasn't consumed all of apt-cache's output, so closing the
pipe causes a SIGPIPE (13).
One possible solution would be to replace the loop with something
similar to
my $found = 0;
while (<CACHE>) {
if (m/^Source: (.*)/) {
$src = $1 if not $found;
$found = 1;
}
}
Regards,
Adam
More information about the devscripts-devel
mailing list