PAR-Packer

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

- 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 )