Skip Menu |

This queue is for tickets about the PAR CPAN distribution.

Report information
The Basics
Id: 86178
Status: resolved
Priority: 0/
Queue: PAR

People
Owner: RSCHUPP [...] cpan.org
Requestors: Rob.Hulley [...] hp.com
Cc:
AdminCc:

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



Subject: dll files not extracted to shlib subfolder when using -l or to other folder when using -a
Date: Sun, 16 Jun 2013 13:09:06 +0000
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-PAR-Packer [...] rt.cpan.org>
From: "Hulley, Rob (APJ GCC Storage TPM)" <Rob.Hulley [...] hp.com>
Hi Everyone, I am trying to compile a program to .exe in windows 7 32 bit. I have active perl 5.16.3 installed and using PAR::Packer 1.014 I am trying to add an extra set of files in a floder, there are 5 .tcl files and 1 .dll file. I have everything working except when I run the program the dll file is not extracted to the temp folder. And the program fails due to the missing file. The tcl files are extracted ok, the dll file is included in the archive but does not extract. If I manually copy the file to the temp folder the program then works. I am almost there just need the dll to extract. I have tried using the -l option and the files go to shlib. I also tried using the -a option shown below and the folder gets created but the dll is again missing. The other dll files are extracted to the top level OK. (tkkit.dll tcl.dll) Hope you can help. Thanks, Rob pp command I am using is below problem part highlighted: pp -vv -a C:\Perl\lib\tkdnd\windows\x86 -l C:/Perl/lib/auto/Tcl/Tcl.dll -l C:/Perl/lib/auto/Tcl/tkkit.dll -o Raw_reduce.exe -f Bleach -N=FileVersion=%version% -N=ProductVersion=%version% Raw_reduce_v%version%.pl -L=Raw_reduce.log.%version%.txt From log file files are added: C:\Perl\site\bin/pp: ... adding C:/Perl/lib/auto/Tcl/Tcl.dll as shlib/MSWin32-x86-multi-thread/Tcl.dll C:\Perl\site\bin/pp: ... adding C:/Perl/lib/auto/Tcl/tkkit.dll as shlib/MSWin32-x86-multi-thread/tkkit.dll C:\Perl\site\bin/pp: Writing extra files to C:\Users\hulley\AppData\Local\Temp\ppTG5bp.par C:\Perl\site\bin/pp: ... adding C:/Perl/lib/tkdnd/windows/x86/pkgIndex.tcl as Perl/lib/tkdnd/windows/x86/pkgIndex.tcl C:\Perl\site\bin/pp: ... adding C:/Perl/lib/tkdnd/windows/x86/tkdnd.tcl as Perl/lib/tkdnd/windows/x86/tkdnd.tcl C:\Perl\site\bin/pp: ... adding C:/Perl/lib/tkdnd/windows/x86/tkdnd26.dll as Perl/lib/tkdnd/windows/x86/tkdnd26.dll C:\Perl\site\bin/pp: ... adding C:/Perl/lib/tkdnd/windows/x86/tkdnd_compat.tcl as Perl/lib/tkdnd/windows/x86/tkdnd_compat.tcl C:\Perl\site\bin/pp: ... adding C:/Perl/lib/tkdnd/windows/x86/tkdnd_macosx.tcl as Perl/lib/tkdnd/windows/x86/tkdnd_macosx.tcl C:\Perl\site\bin/pp: ... adding C:/Perl/lib/tkdnd/windows/x86/tkdnd_unix.tcl as Perl/lib/tkdnd/windows/x86/tkdnd_unix.tcl C:\Perl\site\bin/pp: ... adding C:/Perl/lib/tkdnd/windows/x86/tkdnd_windows.tcl as Perl/lib/tkdnd/windows/x86/tkdnd_windows.tcl C:\Perl\site\bin/pp: Generating a fresh 'parl'. [cid:image002.png@01CE6AE6.7D9E45F0] Rob Hulley HP storage Support Specialist Global Storage Competency Centre HP Enterprise Business rob.hulley@hp.com<mailto:rob.hulley@hp.com> T +61 7 38241688 M +61413458281 Hewlett-Packard Company Alexandra Hills, QLD. 4161 Australia [HP]<http://www.hp.com/>
Download image001.png
image/png 3.6k
image001.png
Download image002.png
image/png 34.7k
image002.png
On 2013-06-16 09:09:52, Rob.Hulley@hp.com wrote: Show quoted text
> I have everything working except when I run the program the dll file > is not extracted to the temp folder.
You probably run afoul of the following lines in PAR.pm (starting on line 726): # Skip DLLs (these will be handled by the dynaloader hook) # except for those placed in File::ShareDir directories. next if (m{\.\Q$dlext\E[^/]*$} && !m{^lib/auto/share/(dist|module)/}); But the dynaloader hook is not invoked for your dll (it's only called for Perl XS "glue dlls"). Try commenting out the "next if..." statement (shouldn't have any negative consequences) and re-pack your script. Or you might try to use the -a "source_dir;target_dir" notation to pack the tkdnd stuff into a different target_dir (in the executable) where target_dir matches the second regex above. You may need to modify stuff that refers to source_dir, though. Cheers, Roderich
Subject: RE: [rt.cpan.org #86178] dll files not extracted to shlib subfolder when using -l or to other folder when using -a
Date: Mon, 24 Jun 2013 01:33:41 +0000
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-PAR-Packer [...] rt.cpan.org>
From: "Hulley, Rob (APJ GCC Storage TPM)" <Rob.Hulley [...] hp.com>
Hi Roderich, Thanks for the update. I had already tried the -a option and it was still the same. Commenting out the "next if" line has worked. Will there be any future change to avoid this, I don’t like having non-standard modules unless absolutely necessary? Many thanks, Rob Rob Hulley HP storage Support Specialist Global Storage Competency Centre HP Enterprise Business rob.hulley@hp.com T +61 7 38241688 M +61413458281 Hewlett-Packard Company Alexandra Hills, QLD. 4161 Australia Show quoted text
-----Original Message----- From: Roderich Schupp via RT [mailto:bug-PAR-Packer@rt.cpan.org] Sent: Sunday, 23 June 2013 2:12 AM To: Hulley, Rob (APJ GCC Storage TPM) Subject: [rt.cpan.org #86178] dll files not extracted to shlib subfolder when using -l or to other folder when using -a <URL: https://rt.cpan.org/Ticket/Display.html?id=86178 > On 2013-06-16 09:09:52, Rob.Hulley@hp.com wrote:
> I have everything working except when I run the program the dll file > is not extracted to the temp folder.
You probably run afoul of the following lines in PAR.pm (starting on line 726): # Skip DLLs (these will be handled by the dynaloader hook) # except for those placed in File::ShareDir directories. next if (m{\.\Q$dlext\E[^/]*$} && !m{^lib/auto/share/(dist|module)/}); But the dynaloader hook is not invoked for your dll (it's only called for Perl XS "glue dlls"). Try commenting out the "next if..." statement (shouldn't have any negative consequences) and re-pack your script. Or you might try to use the -a "source_dir;target_dir" notation to pack the tkdnd stuff into a different target_dir (in the executable) where target_dir matches the second regex above. You may need to modify stuff that refers to source_dir, though. Cheers, Roderich
On 2013-06-23 21:34:50, Rob.Hulley@hp.com wrote: Show quoted text
> Will there be any future change to avoid this, I don’t like having > non-standard modules unless absolutely necessary?
Included in 1.008. Cheers, Roderich