PAR-Packer
view release on metacpan or search on metacpan
- add note that --filter and __DATA__ are incompatible (cf. #36, #39)
- change bugtracker to GitHub issues
- when embedding FILEs, normalize paths in @INC
- code cleanup:
- rename _tempfile() to _save_as()
- there is no $PAR::Heavy::ModuleCache, so make it a "my" variable
- consistent formatting in outs() calls
- demystify reading <$fh> with $/ = \$number: use "read $fh, $buf, $number" instead
- use "open $fh, '<:raw', ..." instead of "open $fh, '<', ...; binmode($fh);"
- make error messages more consistent
- make extract-embedded.pl more robust
- t/90-rt129312.t fails when Archive::Unzip::Burst is used
1.051 2020-11-29
- Fix #27: "pp -u broken in perl 5.32"
ignore "pp -u ..." (with a warning) for Perl >= 5.31.6
- Fix #25: unexpected interaction between pp options "--compile" and "--module Foo::"
scan_deps_runtime() is called for all detected Foo:: modules, but
modules by themselves are typically not suitable for dynamic scanning
(causing lots of spurious warnings for "--compile").
- cleanup argv handling in myldr/main.c
- placate cperl ("Attempt to change hash while iterating over it.")
1.050 2020-03-18
- Rethink use of Filter::PodStrip.
Do not add directives
#line 1 "file"
to packed modules except for "embdeded" files.
We still add these directives to "embedded" files as these are extracted
with mangled names which makes it hard to make sense of warn() or die() messages
caused by them. These are all core modules and don't reference __FILE__.
This should make use of __FILE__ in packed modules work without
workarounds. __FILE__ is typically used to refer to installed non-module
resources, e.g.
# MIME::Types
my $db = File::Spec->catfile(dirname(__FILE__), 'types.db');
# Mozilla::CA
my $ca_file = File::Spec->catfile(dirname(__FILE__), "CA", "cacert.pem");
# Mojo::File (__FILE__ used implicitly by caller())
sub curfile { __PACKAGE__->new(Cwd::realpath((caller)[1])) }
Hence, remove known workarounds from Filter::PatchContent and add a test.
- Fix RT#130685: core module detection doesn't work with -Duserelocatableinc
Original patch by Frank.Lichtenheld@Sophos.com, thanx!
Added a test for this.
1.049 2019-05-31
- Fix RT#129312: Code signing for OSX
Avoid Archive::Zip::Archive error "can't find EOCD signature" for pp'ed
executables with lots of stuff appended (e.g. by OSX codesign).
Note: This requires the corresponding fix in PAR in 1.016,
hence bump its required version.
Add a test by appending 512 kB to a pp'ed executable.
- Fix issue GitHub#15 (doesn't build with a relocatable version of perl)
If the perl used to build PAR::Packer is a relocatable perl,
i.e. it was build with -Duserelocatableinc, then myldr/par will
also be relocatable. Hence, the automagical default @INC for myldr/par
is something like ("myldr/../lib/5.x.y",
"myldr/../lib/site_perl/5.x.y", ...) which won't find any modules.
1.048 2019-04-29
- Fix RT#129312: Code signing for OSX
Apply pull request from Philip Kime, adds a small program that will fix up
an executable generated by pp so that MacOS codesigning will accept it,
see contrib/pp_osx_codesign_fix/pp_osx_codesign_fix.c
Since codesigning will append currently ~180 KB to an executable, increase the
offsets from the end of the file where Archive::Zip and PAR::Packer will
look for their respective signatures.
- Fix GitHub issue #12: sha1.c warnings due to inconsistent USE_64_BIT_INT
Do not "inline" sha1.c (into main.c and boot.c vi mktmp.c), instead
just link to it. There's no reason that callers of
sha_init/sha_update/sha_final should know about the implementation of SHA_INFO.
myldr/sha1.c: stop including perl.h etc, instead pass the necessary #define's
via the compile command
- Fix GitHub issue #13: `par.exe -b` failure with Portable::Config
Note to users of Strawberry Perl *portable* installations:
There's a bad interaction between a Strawberry *portable* installation if you
also have a *standard* Strawberry installation installed in C:\strawberry.
Under certain conditions, parl created by the portable installation
may have have a built-in @INC of [ C:\strawberry\perl\lib, C:\strawberry\perl\site\lib,
C:\strawberry\perl\vendor\lib ], i.e. pointing to the *standard* installation.
This will cause it to load modules from the *standard* installation. If the versions
of the two installations are different, this may cause weird failures.
- Always require Digest::SHA, remove ugly alternatives
- Make "pp -e 0" work, apparently nobody noticed
1.047 2018-08-19
- Disable failing test cases in (Windows only) test t/90-rt122949.t
- Add .SEQUENTIAL to force non-parallel build when using dmake (e.g. on Windows)
1.046 2018-08-18
- Fix RT#126280: 90-rt122949.t fails when "Use Unicode UTF-8 for worldwide language support" is enabled
- Fix https://github.com/rschupp/PAR-Packer/issues/7 "Parallel build rules dependancy problem"
Instead of fighting GNU make and EUMM, just punt and add a .NOTPARALLEL
target. Yeah, I know that this is specific to GNU make (though some
other make implementations support it, too).
- Add bugtracker to META.yml
1.045 2018-06-12
- Fix RT#125503: Fix build with 64-bit perl-5.28.0
( run in 0.482 second using v1.01-cache-2.11-cpan-71847e10f99 )