Skip Menu |

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

Report information
The Basics
Id: 24192
Status: open
Priority: 0/
Queue: PAR-Packer

People
Owner: Nobody in particular
Requestors: matthieu [...] codron.org
Cc:
AdminCc:

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



Subject: PAR::Packer fails to build on Mac OSX 10.4.8 with Compress::Zlib 2.003
Hello, I had a strange trying to build PAR::Packer 0.970 on OSX $ perl -v This is perl, v5.8.8 built for darwin-2level $ uname -a Darwin ordinateur-de-matthieu-codron.local 8.8.2 Darwin Kernel Version 8.8.2: Thu Sep 28 20:43:26 PDT 2006; root:xnu-792.14.14.obj~1/RELEASE_I386 i386 i386 Perl is self compiled, installed in /usr/local $ perl Makefile.PL perl Makefile.PL *** Module::AutoInstall version 1.03 *** Checking for Perl dependencies... [Core Features] - File::Temp ...loaded. (0.17 >= 0.05) - Compress::Zlib ...loaded. (2.003 >= 1.3) - Archive::Zip ...loaded. (1.18 >= 1) - Module::ScanDeps ...loaded. (0.70 >= 0.7) - PAR::Dist ...loaded. (0.21 >= 0.21) - PAR ...loaded. (0.970 >= 0.97) - Getopt::ArgvFile ...loaded. (1.10 >= 1.07) *** Module::AutoInstall configuration finished. Checking if your kit is complete... Looks good Writing Makefile for the par program Writing Makefile for PAR::Packer and then, when I type make: $ make [... everything's fine ..] perl parlsig.pl ./static ./par 1 30000 ./static -I"/Users/matthieu/.cpan/build/PAR-Packer-0.970/inc" -I"/usr/local/lib/perl5/5.8.8/darwin-2level" -I"/usr/local/lib/perl5/5.8.8" -I"/usr/local/lib/perl5/site_perl/5.8.8/darwin-2level" -I"/usr/local/lib/perl5/site_perl/5.8.8" -I"/usr/local/lib/perl5/site_perl" -I"/Users/matthieu/.cpan/build/PAR-Packer-0.970" -I"." -I../myldr/.. -I../blib/lib -q -B -O../script/parl is only avaliable with the XS version at /usr/local/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm line 9 BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm line 9. Compilation failed in require at /usr/local/lib/perl5/site_perl/5.8.8/Archive/Zip.pm line 24. BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.8.8/Archive/Zip.pm line 24. Compilation failed in require at -e line 406. make[1]: *** [../script/parl] Error 255 make: *** [subdirs] Error 2 I tried many thing to make this work, without any luck. Worked finally when I downgraded Compress::Zlib to 1.42.
Subject: Incompatibility with Compress::Zlib 2.003
This problem has been observed only on CentOS so far. In this context, your bug report is very valuable because we don't have to look for system-specific things any more. There was some email exchange with the Compress::Zlib maintainer to try to track down the problem, but so far, to no avail. I *think* it should be a Compress::Zlib/Scalar::Util problem - but don't quote me on this. I can't currently hunt this bug down since I can't reproduce it on my machines.
From: MSCHWERN [...] cpan.org
On Tue Jan 02 17:43:27 2007, mcodron wrote: Show quoted text
> Hello, > > I had a strange trying to build PAR::Packer 0.970 on OSX
Ditto. Also 0.973. Show quoted text
> is only avaliable with the XS version at > /usr/local/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm line 9
*snip* The error is actually coming from Scalar::Util. It means the XS portion of Scalar::Util failed to load and dualvar will not work. As Scalar::Util works fine normally I suspect some sort of @INC shennanigans in that mysterious ./static script. Show quoted text
> I tried many thing to make this work, without any luck. Worked finally > when I downgraded Compress::Zlib to 1.42.
1.42 works because it did not use Scalar::Util.
From: michael.scondo [...] arcor.de
On Sat Feb 03 04:34:21 2007, SMUELLER wrote: Show quoted text
> This problem has been observed only on CentOS so far. In this context, > your bug report is very valuable because we don't have to look for > system-specific things any more. > > There was some email exchange with the Compress::Zlib maintainer to try > to track down the problem, but so far, to no avail. I *think* it should > be a Compress::Zlib/Scalar::Util problem - but don't quote me on this. > > I can't currently hunt this bug down since I can't reproduce it on my > machines.
I'm experiencing the same problem. I've installed perl-5.8.8 from source in a linux i386 chroot environment, built with gcc and ulibc. The whole chroot environment should be compressed at around 50MB, I could upload this to a ftp server and give you a login if you are interested.
Hi, On Thu Sep 13 17:05:45 2007, misc105 wrote: Show quoted text
> I'm experiencing the same problem. > I've installed perl-5.8.8 from source in a linux i386 chroot > environment, > built with gcc and ulibc. > > The whole chroot environment should be compressed at around 50MB, > I could upload this to a ftp server and give you a login if you are > interested.
That sounds great. I'm not sure I'll find enough time soon, but having a 50MB image which I can use to reproduce the problem would be a great first step! If you like, you can send me the URL and a login via email. (my CPAN/PAUSE user id at cpan.org.) Best regards, Steffen
From: mschwern [...] cpan.org
I've tracked this down to that @INC is being rebuilt incorrectly such that all the -Is to static are unshifted onto @INC in reverse. This results in the non-XS parts of @INC coming before the XS parts so the non-XS version of Scalar::Util loads. You can see the messed up @INC by placing BEGIN { printf "In CZlib: %s\n", join "", map { "$_\n" } @INC; } at the top of Compress::Zlib. The problem appears to be this in scripts/par.pl. --- script/par.pl (revision 54264) +++ script/par.pl (local) @@ -413,11 +413,13 @@ s sign_par v verify_par ); + + my @add_to_inc; while (@ARGV) { $ARGV[0] =~ /^-([AIMOBLbqpiusTv])(.*)/ or last; if ($1 eq 'I') { - unshift @INC, $2; + push @add_to_inc, $2; } elsif ($1 eq 'M') { eval "use $2"; @@ -455,6 +457,8 @@ exit; } } + + unshift @INC, @add_to_inc; } # XXX -- add --par-debug support! However, that isn't enough. For some reason printing out load_me_2 in main.c is required for it to take effect. I don't know why. Using strings on static shows that it contains the fixed par.pl. I've tried all sorts of make clean and patching a brand new tarball.
On Wed Jan 30 05:32:25 2008, MSCHWERN wrote: Show quoted text
> I've tracked this down to that @INC is being rebuilt incorrectly such > that all the -Is to static are unshifted onto @INC in reverse. This > results in the non-XS parts of @INC coming before the XS parts so the > non-XS version of Scalar::Util loads. > > You can see the messed up @INC by placing > > BEGIN { > printf "In CZlib: %s\n", join "", map { "$_\n" } @INC; > } > > at the top of Compress::Zlib. > > > The problem appears to be this in scripts/par.pl. > > --- script/par.pl (revision 54264) > +++ script/par.pl (local) > @@ -413,11 +413,13 @@ > s sign_par > v verify_par > ); > + > + my @add_to_inc; > while (@ARGV) { > $ARGV[0] =~ /^-([AIMOBLbqpiusTv])(.*)/ or last; > > if ($1 eq 'I') { > - unshift @INC, $2; > + push @add_to_inc, $2; > } > elsif ($1 eq 'M') { > eval "use $2"; > @@ -455,6 +457,8 @@ > exit; > } > } > + > + unshift @INC, @add_to_inc; > } > > # XXX -- add --par-debug support! > > > However, that isn't enough. For some reason printing out load_me_2 in > main.c is required for it to take effect. I don't know why. Using > strings on static shows that it contains the fixed par.pl. I've tried > all sorts of make clean and patching a brand new tarball.
Well, probably you still used the cached version and only by changing something in main.c the cache got invalidated. I applied your patch, deleted some of the directories in /var/tmp/par-$USER and now almost all tests pass. Regards, Slaven
On Wed Jan 30 05:32:25 2008, MSCHWERN wrote: Show quoted text
> I've tracked this down to that @INC is being rebuilt incorrectly such > that all the -Is to static are unshifted onto @INC in reverse. This > results in the non-XS parts of @INC coming before the XS parts so the > non-XS version of Scalar::Util loads. > > You can see the messed up @INC by placing > > BEGIN { > printf "In CZlib: %s\n", join "", map { "$_\n" } @INC; > } > > at the top of Compress::Zlib. > > > The problem appears to be this in scripts/par.pl. > > --- script/par.pl (revision 54264) > +++ script/par.pl (local) > @@ -413,11 +413,13 @@ > s sign_par > v verify_par > ); > + > + my @add_to_inc; > while (@ARGV) { > $ARGV[0] =~ /^-([AIMOBLbqpiusTv])(.*)/ or last; > > if ($1 eq 'I') { > - unshift @INC, $2; > + push @add_to_inc, $2; > } > elsif ($1 eq 'M') { > eval "use $2"; > @@ -455,6 +457,8 @@ > exit; > } > } > + > + unshift @INC, @add_to_inc; > } > > # XXX -- add --par-debug support! > > > However, that isn't enough. For some reason printing out load_me_2 in > main.c is required for it to take effect. I don't know why. Using > strings on static shows that it contains the fixed par.pl. I've tried > all sorts of make clean and patching a brand new tarball.
Patch applied as change 584 in par's subversion repository http://svn.openfoundry.org/par/PAR-Packer/trunk (Can somebody close this ticket?) Regards, Slaven
On Mon Feb 18 15:03:17 2008, SREZIC wrote: Show quoted text
> Patch applied as change 584 in par's subversion repository > http://svn.openfoundry.org/par/PAR-Packer/trunk > > (Can somebody close this ticket?)
Hmm, not really. Applying the patch certainly makes sense, but there were other issues as Schwern pointed out. Are you really, very, entirely sure that this is just due to an old cache/.o/parl thing? When I talked to Schwern, he was reasonably sure that he cleaned up everything. If you're sure, I'll close the ticket. Cheers, Steffen P.S.: Thanks for all the work you've been putting into this recently. It's much appreciated!