This queue is for tickets about the CPAN CPAN distribution.

Report information
The Basics
Id:
46915
Status:
resolved
Priority:
Low/Low
Queue:

People
Owner:
Nobody in particular
Requestors:
MLEHMANN [...] cpan.org
quanah.gibsonmount [...] gmail.com
Cc:
AdminCc:

BugTracker
Severity:
Important
Broken in:
(no value)
Fixed in:
1.94_01



Subject: new CPAN or Archive::Tar breaks many modules
I just installed Bundle::CPAN and suddenly many moduels fail to install. The reaoson *seems* to be Archive::Tar (uninstalling Archive::Tar makes them work again). The problem is that CPAN + Archive::Tar break permissions of the files inside the traball by removing executable permission. This breaks all modules requiring scripts to configure/compile. An example is IO::AIO, which cnanot execute its configure script because it is no longer executable. This can be cleary seen on cpan-testers, where such modules started to get all N/A almost everywhere, indicating that it is a recent change. The Archive::Tar 1.5 CHANGES file contains an entry that might be related: - Apply patch in #46450: Support for --no-same-permissions style behavior This facilitates leaving the +x bit, while still applying your umask on the extracted file. But CPAN even fails with that version (-x bits are removed). The only way to fix CPAN that I found to work was to dleete Archive::Tar.
Thanks for the report. This is a known issue and is already resolved in the master branch of the repository. Archive::Tar added support for no-same-permissions behavior but requires a global variable to be set that the current release of CPAN.pm does not include. For me, IO::AIO will run Makefile.PL if the following diff is applied to run configure without "-c". (Not sure how portable that is across shells, but it's an option.) --- Makefile.PL.orig 2009-06-13 11:09:16.000000000 -0400 +++ Makefile.PL 2009-06-13 11:09:48.000000000 -0400 @@ -49,7 +49,7 @@ $ENV{LDFLAGS} = $Config{ldflags}; $ENV{LINKER} = $Config{ld}; # nonstandard - system $ENV{SHELL}, -c => "./configure --prefix \Q$Config{prefixexp}\E" + system $ENV{SHELL}, "./configure", "--prefix", "\Q$Config{prefixexp}\E" and exit $? >> 8; } } However, it subsequently fails during make due to no rule to make target "bin/treescan".
Subject: cpan uses Archive::Tar
CPAN has been changed to apparently use Archive::Tar instead of the normal command line tar. This introduces a problematic behavior change that can be evidenced by trying to install Convert::UUlib via cpan -- It will fail. It fails because Archive::Tar does not keep the executable bits when extracting tar files, while normal tar does. Thus when the "configure" script is called in Convert-UUlib, the module install fails because "configure" is not executable. Configuring CPAN to not load Archive::Tar (and instead use the system tar) is a temporary workaround. Please either fix the arguments to Archive::Tar when used with CPAN to keep the executable bit settings, or remove its usage.
I'm reopening this ticket so it shows up in the list of active bugs so we stop getting duplicates. When CPAN.pm has a production release, this ticket can be closed. -- David
The production release that fixed this, seems to have been 1.96. Thanks for the report!


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.