Skip Menu |

This queue is for tickets about the PAR-Packer CPAN distribution.

Report information
The Basics
Id: 25423
Status: new
Priority: 0/
Queue: PAR-Packer

People
Owner: Nobody in particular
Requestors: perl-cpan [...] bereft.net
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: (no value)
Fixed in: (no value)



Subject: Crypt::OpenSSL::RSA sometimes loses .al files (WinXP)
Hello, I've encountered some strange behaviour when PAR-ing Crypt::OpenSSL::RSA on Windows XP. When pp is invoked with certain combinations of arguments it leaves some .al and .ix files out of the exe causing a runtime error. This command works fine and shows the files than should be included: C:\>pp -M Crypt::OpenSSL::RSA -e 1 C:\>unzip -l a.exe | perl -nle "print if /RSA/" 1232 03-14-07 11:48 Crypt/OpenSSL/RSA.pm 40 03-14-07 11:48 auto/Crypt/OpenSSL/RSA/RSA.bs 32768 03-09-06 15:29 auto/Crypt/OpenSSL/RSA/RSA.dll 854 03-09-06 15:29 auto/Crypt/OpenSSL/RSA/RSA.exp 288 03-14-07 11:48 auto/Crypt/OpenSSL/RSA/autosplit.ix 538 03-14-07 11:48 auto/Crypt/OpenSSL/RSA/get_key_parameters.al 533 03-14-07 11:48 auto/Crypt/OpenSSL/RSA/import_random_seed.al 598 03-14-07 11:48 auto/Crypt/OpenSSL/RSA/new_key_from_parameters.al 783 03-14-07 11:48 auto/Crypt/OpenSSL/RSA/new_public_key.al The problem only seems to occur when Crypt::OpenSSL::RSA is included by both a -M option and via a use statement elsewhere in another file (including via another -M module use-ing it). C:\>cat use use Crypt::OpenSSL::RSA; C:\>pp -M Crypt::OpenSSL::RSA -c use C:\>unzip -l a.exe | perl -nle "print if /RSA/" 1232 03-14-07 11:47 Crypt/OpenSSL/RSA.pm 0 03-09-06 15:29 auto/Crypt/OpenSSL/RSA/RSA.bs 32768 03-09-06 15:29 auto/Crypt/OpenSSL/RSA/RSA.dll An example of the runtime error encountered is: C:\>cat use_new use Crypt::OpenSSL::RSA; Crypt::OpenSSL::RSA->new_public_key(""); C:\>pp -M Crypt::OpenSSL::RSA -c use_new C:\>a.exe Can't locate auto/Crypt/OpenSSL/RSA/new_public_.al in @INC (@INC contains: C:\DO CUME~1\bsb\LOCALS~1\Temp\par-bsb\cache-92b4fb2ae60883741253d28c35c2575efae9ef8a\ inc\lib C:\DOCUME~1\bsb\LOCALS~1\Temp\par-bsb\cache-92b4fb2ae60883741253d28c35c2 575efae9ef8a\inc CODE(0xdbcfb4) CODE(0xdbd0ec)) at script/use_new line 2 The truncatation new_public_key.al -> new_public_.al is probably not useful for the error message as it makes it harder to find the files involved. It's easy to work around this, just don't -M Crypt::OpenSSL::RSA. Another clue/red-herring is that PARing Crypt::OpenSSL::RSA on Linux produces an error trying to create a tempfile in a strange location: $ pp -M Crypt::OpenSSL::RSA -c use_new Error getting name to temp file from template /usr/lib/perl5/Crypt/OpenSSL/RSA.pm.XXXXXX: Parent directory (/usr/lib/perl5/Crypt/OpenSSL/) is not writable at /usr/local/share/perl/5.8.7/Module/ScanDeps.pm line 829 $ pp -M Crypt::OpenSSL::RSA -e 1 $ pp -M Crypt::OpenSSL::RSA -c /dev/null /usr/bin/pp: Input /dev/null is not a plain file Use of uninitialized value in pattern match (m//) at /usr/local/share/perl/5.8.7/PAR/Packer.pm line 209. Error getting name to temp file from template /usr/lib/perl5/Crypt/OpenSSL/RSA.pm.XXXXXX: Parent directory (/usr/lib/perl5/Crypt/OpenSSL/) is not writable at /usr/local/share/perl/5.8.7/Module/ScanDeps.pm line 829 Environment: Windows: This is perl, v5.8.8 built for MSWin32-x86-multi-thread (with 25 registered patches, see perl -V for more detail) Binary build 817 [257965] provided by ActiveState http://www.ActiveState.com Built Mar 20 2006 17:54:25 Crypt::OpenSSL::RSA 0.22 from a ppd PAR 0.959 I'm not sure where it's from now Linux: perl v5.8.8 built for i486-linux-gnu-thread-multi pmvers PAR 0.90 pmvers Crypt::OpenSSL::RSA 0.23 Let me know if there's anything I can try out, Brad