./devel/p5-PAR-Packer, Perl5 module to create stand-alone executables and archives

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.061, Package name: p5-PAR-Packer-1.061, Maintainer: pkgsrc-users

PAR-Packer is the PAR component that can generate stand-alone
executables and ".par" archives.

The main front-end for PAR-Packer is the "pp" utility.


Master sites: (Expand)

Filesize: 194.323 KB

Version history: (Expand)


CVS history: (Expand)


   2024-01-01 09:35:28 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/p5-PAR-Packer) Updated 1.059 to 1.061

1.061  (no info)

1.060  2023-07-20

- automated_pp_test: use unique filenames for all pp generated executables

  Reusing the names of executables produces random test failures
  at least on macOS, perhaps due to some antivirus software.

- automated_pp_test: pipe_a_command() doesn't restore the directory where it's called

- switch doc "Please submit bug reports to ..." to GitHub issues
   2023-12-19 13:19:51 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/p5-PAR-Packer) Updated 1.052 to 1.059

1.059  2023-07-20

- correctly propagate the exit value of a packed executable

  Get the exit value from perl_destruct() instead of perl_run().
  These may be different, e.g. if the value of $? is set in an END block.

- clean up tests a bit
- set up GitHub CI and add cpanfile (for CI only)
- check more return codes in myldr/*.c

1.058  2023-06-12

- patch DynaLoader.pm to make intercepting DynaLoader::bootstrap work again
  for Perl >= 5.35 on Windows (see #74)

  $do_expand was changed in perl 5.36 from an (implicit) "local" variable
  to "my". This breaks how PAR::Heavy intercepts calls to
  DynaLoader::bootstrap: monkey-patching DynaLoader::bootstrap,
  DynaLoader::dl_findfile and DynaLoader::bootstrap while setting
  "local $DynaLoader::do_expand = 1".

- reorganize modules etc used in tests
- add test to run an XS module from a .par file
- add a test for loading XS "glue" DLLs

- remove unused code for packed DLLs ("pp --link ...")
  - nobody packs (non-XS) DLLs as embedded "FILE"s
  - nobody uses a $Config{version) sub directory when packing DLLs below
    "shlib/" in the zip

1.057  2022-11-29

- use a different method to mark executable built from "pp --clean ..."

  - scripts/par.pl: don't patch the string "__PASS_PAR_CLEAN__              \ 
 \0" in the
    "boot" section of the executable and ...
  - myldr/boot.c: ... stop looking for the patched string
  - scripts/par.pl: add "\0CLEAN" in lieu of "\0CACHE" (and \ 
drop the 40-byte
    cache name below that) in the "trailer" section when generating a \ 
packed
    executable when META.yml indicates "--clean" was specified)
  - myldr/mktmpdir.c: allow "\0CLEAN" as an alternative to \ 
"\0CACHE"
    and set PAR_CLEAN=1 in that case
  - myldr/mktmpdir.c: implement find_par_magic() akin the one in script/par.pl

- better CLT detection in MacOS (#70) [plk <Philip@kime.org.uk>]

- use Getopt::ArgvFile with resolveEnvVars=1
  suggested by Johan Vromans (@sciurius on GitHub)

1.056  2022-09-05

- Fix #66: patch myldr/boot for "pp --clean ..." without side effects

  - make sure myldr/boot contains exactly one string of the form
    "__PASS_PAR_CLEAN__               \0" so that there are no
    duplicates that may get split on chunk boundaries
    (myldr/boot_embedded_files.c)
  - simplify patching of this string (in $loader) to
    "__PASS_PAR_CLEAN__=1             \0" in script/par.pl
  - add a test for #66 (check for ephemeral vs persistent cache directory)

- Revert "Fixes #62: rs6000_71 (AIX) "An offset in the .loader section \ 
header is too large.""

  PAR_CLEAN is set too late: at this point PAR_TEMP has already
  been set (and populated) to a persistent cache directory
  (/tmp/par-USER/cache-SHA1) instead of an ephemeral one (/tmp/par-USER/temp-PID).

- Some code cleanup
  - replace some magic numbers with constants
  - use string interpolation (instead of concatenation)
  - clean up some convoluted C code

1.055  2022-07-03

- Fix #62: rs6000_71 (AIX) "An offset in the .loader section header is too \ 
large."

  Communicate pp option "--clean" to the generated executable in a
  different way. Previously this was done by patching "__ENV_PAR_..." \ 
strings
  **in the executable being built** and interpreting these strings in
  par.pl **at runtime**. Though hacky, this seemingly worked on any OS
  (without rendering the executable invalid).
  But the only information ever passed was the value of PAR_CLEAN and this was
  gleaned at build time from the value of JSONPath $par.clean from META.yml
  in the zip (set by pp by option "--clean").
  Instead read and interpret "META.yml" in par.pl **at runtime**.

- Fix: merge PR #58 from Philip@kime.org.uk:

  Adding support for running MacOS Universal binaries created via 'lipo'
  from already pp'ed and signed thin binaries

- Make writing stuff more robust: check return value of print()
  and close() in some places.

1.054  2022-01-27

- Temporarily disable t/90-gh41.t (system("\\\\?\\some-absolute-path") \ 
fails)

1.053  2022-01-25

- Fix: merge PR #56 from from Philip Kime <Philip@kime.org.uk>:
  Updating OSX codesign fix util with fix for automatically added ad-hoc \ 
signatures on OSX 12+

- Fix: merge PR #42 from Andrew-Kulpa/master:
  Get exe size from file handle instead of path

- Fix: prevent TABs in literal makefile fragments from being expanded

- Cleanups:
  - par_findprog(): pass a copy of argument `path´ to strtok()
  - simplify searching for PAR magic
  - consolidate die()s
  - add a test for GitHub #41
  - add error message when exec'ing the custom perl fails in myldr/boot
  - untangle %require_list and %ModuleCache
   2023-07-06 11:43:03 by Thomas Klausner | Files touched by this commit (2483)
Log message:
*: recursive bump for perl 5.38
   2022-06-28 13:38:00 by Thomas Klausner | Files touched by this commit (3952)
Log message:
*: recursive bump for perl 5.36
   2021-12-29 15:33:12 by Patrick Welche | Files touched by this commit (3)
Log message:
Add p5-PAR-Packer version 1.052

PAR-Packer is the PAR component that can generate stand-alone
executables and ".par" archives.

The main front-end for PAR-Packer is the "pp" utility.