Skip Menu |

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

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

People
Owner: Nobody in particular
Requestors: MSCHILLI [...] cpan.org
Cc:
AdminCc:

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



Subject: PAR doesn't include Time::Local
If you create a PAR archive from a script like # test.pl use Time::Local; print timelocal(0,0,12,01,01,2009), "\n"; via the pp command $ pp -o time.par -p test.pl then the resulting .par file doesn't contain Time::Local: $ unzip -l time.par Archive: time.par Length Date Time Name -------- ---- ---- ---- 0 04-16-09 00:08 lib/ 0 04-16-09 00:08 script/ 428 04-16-09 00:08 MANIFEST 215 04-16-09 00:08 META.yml 262 04-16-09 00:08 script/main.pl 86 04-16-09 00:08 script/test.pl -------- ------- 991 6 files And not even an explicit reference helps: $ pp -o time.par -M Time::Local -p test.pl has the same effect. Is there anything special about Time::Local?
Granted, Time::Local is a core module, so -B will fix it, but this even happens if you've installed Time::Local from CPAN. Shouldn't pp archive the CPAN package?
Subject: Re: [rt.cpan.org #45074] PAR doesn't include Time::Local
Date: Thu, 16 Apr 2009 11:56:21 +0200
To: bug-PAR [...] rt.cpan.org
From: Steffen Mueller <nj88udd02 [...] sneakemail.com>
Hi Michael, Michael_Schilli via RT wrote: Show quoted text
> Queue: PAR Ticket <URL: > https://rt.cpan.org/Ticket/Display.html?id=45074 > > > Granted, Time::Local is a core module, so -B will fix it, but this > even happens if you've installed Time::Local from CPAN. Shouldn't pp > archive the CPAN package?
I know that given how it's implemented, it'll simply skip any core modules unless -B is present. Here are some ideas how it could be improved (using Module::CoreList): - The user could be allowed to specify the target perl version (which defaults to the current one). - PAR::Packer then does NOT skip those core modules which have a higher version than what Module::CoreList considers the version that shipped with the target perl. This would generally degrade to the current behaviour *unless* you installed newer versions of core modules from CPAN. I think in case of upgraded core modules, this is actually not what users want most of the time. Most module upgrades aren't necessarily required for proper operation and shipping a load of core modules with EVERY .par archive is almost always a bad idea. Therefore, I'm not sure whether or how this should be changed. Adding more options to pp is generally a bad thing (just look at the synopsis of perldoc pp) unless they're rarely needed and the defaults are good in 95% of all cases. Further opinions on this would be very welcome, but as usual, patches, too! Cheers, Steffen
On Thu Apr 16 05:56:44 2009, nj88udd02@sneakemail.com wrote: Show quoted text
> I know that given how it's implemented, it'll simply skip any core
Steffen, you're to close to subject and hence your thinking is overly complex :) I think that all Michael wants is: If I say "pp -M Foo ..." then simply pack Foo.pm, no matter if it's a core module or not. That doesn't need a new option (The Horror! The Horror!). Of course, that means that any module that Foo.pm depends on will also be packed. If someone needs even more fine grained control about what to pack or not to pack he's free to construct the par file by hand (it's simply a zip file after all).