Discussion:
[rt.cpan.org #86178] dll files not extracted to shlib subfolder when using -l or to other folder when using -a
(too old to reply)
Hulley, Rob via RT
2013-06-16 13:09:53 UTC
Permalink
Sun Jun 16 09:09:52 2013: Request 86178 was acted upon.
Transaction: Ticket created by ***@hp.com
Queue: PAR-Packer
Subject: dll files not extracted to shlib subfolder when using -l or to other folder when using -a
Broken in: (no value)
Severity: (no value)
Owner: Nobody
Requestors: ***@hp.com
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=86178 >


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:***@01CE6AE6.7D9E45F0]

Rob Hulley
HP storage Support Specialist
Global Storage Competency Centre
HP Enterprise Business

***@hp.com<mailto:***@hp.com>
T +61 7 38241688
M +61413458281
Hewlett-Packard Company
Alexandra Hills, QLD. 4161
Australia

[HP]<http://www.hp.com/>
Roderich Schupp via RT
2013-06-22 16:11:54 UTC
Permalink
Sat Jun 22 12:11:53 2013: Request 86178 was acted upon.
Transaction: Correspondence added by RSCHUPP
Queue: PAR-Packer
Subject: dll files not extracted to shlib subfolder when using -l or to other folder when using -a
Broken in: (no value)
Severity: (no value)
Owner: RSCHUPP
Requestors: ***@hp.com
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=86178 >
Post by Hulley, Rob via RT
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
Hulley, Rob via RT
2013-06-24 01:34:50 UTC
Permalink
Sun Jun 23 21:34:50 2013: Request 86178 was acted upon.
Transaction: Correspondence added by ***@hp.com
Queue: PAR-Packer
Subject: RE: [rt.cpan.org #86178] dll files not extracted to shlib subfolder when using -l or to other folder when using -a
Broken in: (no value)
Severity: (no value)
Owner: RSCHUPP
Requestors: ***@hp.com
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=86178 >


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

***@hp.com
T +61 7 38241688
M +61413458281
Hewlett-Packard Company
Alexandra Hills, QLD. 4161
Australia



-----Original Message-----
From: Roderich Schupp via RT [mailto:bug-PAR-***@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 >
Post by Hulley, Rob via RT
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
Roderich Schupp via RT
2015-01-24 13:12:37 UTC
Permalink
Sat Jan 24 08:12:36 2015: Request 86178 was acted upon.
Transaction: Correspondence added by RSCHUPP
Queue: PAR
Subject: dll files not extracted to shlib subfolder when using -l or to other folder when using -a
Broken in: (no value)
Severity: (no value)
Owner: RSCHUPP
Requestors: ***@hp.com
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=86178 >
Post by Hulley, Rob via RT
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

Loading...