Skip Menu |

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

Report information
The Basics
Id: 58093
Status: resolved
Priority: 0/
Queue: PAR-Packer

People
Owner: RSCHUPP [...] cpan.org
Requestors: stephen.comeau [...] gmail.com
Cc:
AdminCc:

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



Subject: Par-Packer not including all dependencies
Hi, I recently installed Strawberry Perl 5.12.0.1 on my Windows XP 32 bit machine. I'm trying to use Par::Packer to create a .exe for a perl package. I'm using the standard command: pp -o foo.exe foo.pl The executable itself is created properly, however, when I try running the .exe file, I get the following message: Can't locate unicore/Heavy.pl in @INC (@INC contaings C:\DOCUME~1\me\LOCALS~1\Temp\par-me\cache-(...)\inc\lib C:\DOCUME~1\me\LOCALS~1\Temp\par-me\cache-(...)\inc CODE(0x1260444) CODE(0x1260744)) at utf8_heavy.pl line 96. Font -*-Helvetica-Medium-R-Normal--*-200-*-*-*-*-*-* still in cache. I have a workaround for this by copying the directory C:\Strawberry\perl\lib\unicore to C:\DOCUME~1\me\LOCALS~1\Temp\par-me\cache-(...)\inc\lib Is there any better way to make sure that it's included? (My apologies if this is a simple question - I'm just getting into Perl development). Thanks, ~Steve
Am 2010-06-03 11:22:09, buterrier2001 schrieb: Show quoted text
> I recently installed Strawberry Perl 5.12.0.1 on my Windows XP 32 bit > machine. I'm trying to use Par::Packer to create a .exe for a perl > package. I'm using the standard command: pp -o foo.exe foo.pl
Which version of PAR::Packer are you using? Did you build it yourself or got it from some PPM repository? Cheers, Roderich
From: stephen.comeau [...] gmail.com
On Thu Jun 03 12:13:24 2010, RSCHUPP wrote: Show quoted text
> Am 2010-06-03 11:22:09, buterrier2001 schrieb:
> > I recently installed Strawberry Perl 5.12.0.1 on my Windows XP 32 bit > > machine. I'm trying to use Par::Packer to create a .exe for a perl > > package. I'm using the standard command: pp -o foo.exe foo.pl
> > Which version of PAR::Packer are you using? > Did you build it yourself or got it from some PPM repository? > > Cheers, Roderich
Hi Roderich, I'm using PAR-Packer-1.004. I built it myself. I also included the 57272-take2.patch from a different thread when installing. Also, I don't know if this information is extraneous, but the packages that my script is calling are: use Tk; use Benchmark; use DBI; use Tk::TableMatrix::Spreadsheet; require Tk::Canvas; require Tk::Frame; require Tk::Text; require Tk::Label; require Tk::Button; require Tk::Entry; require Tk::Scrollbar; require Tk::ComboEntry; require Tk::Listbox; require Tk::Dialog; require Tk::Menu; require Tk::RadiobuttonGroup; require Spreadsheet::WriteExcel; require Tk::LabFrame; use Tk::ProgressBar::Mac; use Class::MethodMaker; use Win32::Word::Writer; Thanks, ~Steve
On 2010-06-03 15:03:51, buterrier2001 wrote: Show quoted text
> I'm using PAR-Packer-1.004. I built it myself.
OK. Show quoted text
> I also included the 57272-take2.patch from a different thread
Sorry, that patch is irrelevant for your problem (and didn't fix the original problem anyway)... Looking a bit more closely at the error message: unicore/Heavy.pl appeared first in Perl 5.12.0. Now utf8_heavy.pl that actually does require this file (and a bunch of others below unicore) does so in way that can't be detected by static analysis. The analysis is done by Module::ScanDeps which has indeed an exception rule to add lots of stuff below unicore. Unfortunately that rule is a little bit out of date for 5.12.0. Can you try the following patch for Module::ScanDeps (install it, then re-pack your script and see what happens)? Cheers, Roderich
Subject: 58093.patch
Index: lib/Module/ScanDeps.pm =================================================================== --- lib/Module/ScanDeps.pm (revision 1176) +++ lib/Module/ScanDeps.pm (working copy) @@ -475,8 +475,8 @@ my @files = map "$dir/lib/$_->{name}", _glob_in_inc("$dir/lib"); if (@files) { - # 5.8.x - push @files, (map "$dir/$_.pl", qw( Exact Canonical )); + # 5.8.x and higher + push @files, (map "$dir/$_.pl", qw( Exact Canonical Heavy )); } else { # 5.6.x
From: stephen.comeau [...] gmail.com
On Thu Jun 03 18:08:18 2010, RSCHUPP wrote: Show quoted text
> On 2010-06-03 15:03:51, buterrier2001 wrote:
> > I'm using PAR-Packer-1.004. I built it myself.
> > OK. >
> > I also included the 57272-take2.patch from a different thread
> > Sorry, that patch is irrelevant for your problem (and didn't fix > the original problem anyway)... > > Looking a bit more closely at the error message: > > unicore/Heavy.pl appeared first in Perl 5.12.0. > Now utf8_heavy.pl that actually does require this file > (and a bunch of others below unicore) does so in way that > can't be detected by static analysis. The analysis is done by > Module::ScanDeps which has indeed an exception rule > to add lots of stuff below unicore. Unfortunately that rule > is a little bit out of date for 5.12.0. > > Can you try the following patch for Module::ScanDeps > (install it, then re-pack your script and see what happens)? > > Cheers, Roderich > > >
The patch appears to have worked. Thanks for all your help! ~Steve
Show quoted text
> The patch appears to have worked.
Thanks for testing, Steve. Patch commited, will be in the next release of Module::ScanDeps. Cheers, Roderich
Subject: [rt.cpan.org #58093] Par-Packer not including all dependencies
Date: Fri, 23 Jul 2010 19:47:52 +0300
To: bug-Module-ScanDeps [...] rt.cpan.org
From: Kaloyan Iliev Iliev <kaloyan [...] digsys.bg>
Hello. I follow the ticket and find out that the problem is not solved: [~/TestScript/tmp]$ pp -o ucd.exe -e "use Unicode::UCD qw(charinfo); my $i = charinfo(0x42); print $i->{name};" [~/TestScript/tmp]$ ./ucd.exe Unicode::UCD: failed to find UnicodeData.txt in CODE(0x802e083d8) CODE(0x8028e4420) CODE(0x8028e48a0) at script/ppSf5Yf.pl line 1 Compilation failed in require at script/ppSf5Yf.pl line 1. BEGIN failed--compilation aborted at script/ppSf5Yf.pl line 1. And the other example: [~/TestScript/tmp]$ cat test.pl #!/usr/bin/perl use strict; use warnings; use Carp; use PDF::API2; print "Hello"; [~/TestScript/tmp]$ pp test.pl [~/TestScript/tmp]$ ./a.out Unicode::UCD: failed to find UnicodeData.txt in CODE(0x802f2f2d0) CODE(0x8028dcc90) CODE(0x8028ae938) at PDF/API2/Resource/Font/BdFont.pm line 45 Compilation failed in require at PDF/API2/Resource/Font/BdFont.pm line 45. BEGIN failed--compilation aborted at PDF/API2/Resource/Font/BdFont.pm line 45. Compilation failed in require at PDF/API2.pm line 67. BEGIN failed--compilation aborted at PDF/API2.pm line 67. Compilation failed in require at script/test.pl line 6. BEGIN failed--compilation aborted at script/test.pl line 6. [$]perl -v This is perl, v5.10.1 (*) built for amd64-freebsd-thread-multi Any help will be appreciated. Thanks in advance. Kaloyan P.S. The patch is not needed. I check my ScanDeps.pm and the patch is already there.
On 2010-07-23 12:47:55, kaloyan@digsys.bg wrote: Show quoted text
> I follow the ticket and find out that the problem is not solved:
Why do you re-open a ticket for a different problem than the one you are reporting? Anyway, I can't reproduce Show quoted text
> P.S. The patch is not needed. I check my ScanDeps.pm and the patch is > already there.
Nonsense, that patch is (a) irrelevant to your problem and (b) NOT contained in any released version of Module::ScanDeps. I'm closing this ticket. Feel free to open a new ticket (or re-open one that actually matches your problem); in any case make sure you have a released version of Module::ScanDeps installed. Cheers, Roderich