# # spec file for package perl-PAR # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: perl-PAR Version: 1.016 Release: 1.5 %define cpan_name PAR Summary: Perl Archive Toolkit License: Artistic-1.0 OR GPL-1.0-or-later Group: Development/Libraries/Perl Url: https://metacpan.org/release/%{cpan_name} Source0: https://cpan.metacpan.org/authors/id/R/RS/RSCHUPP/%{cpan_name}-%{version}.tar.gz Source1: cpanspec.yml BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(Archive::Zip) >= 1.00 BuildRequires: perl(AutoLoader) >= 5.66_02 BuildRequires: perl(Compress::Zlib) >= 1.30 BuildRequires: perl(Digest::SHA) >= 5.45 BuildRequires: perl(PAR::Dist) >= 0.32 Requires: perl(Archive::Zip) >= 1.00 Requires: perl(AutoLoader) >= 5.66_02 Requires: perl(Compress::Zlib) >= 1.30 Requires: perl(Digest::SHA) >= 5.45 Requires: perl(PAR::Dist) >= 0.32 %{perl_requires} %description This module lets you use special zip files, called *P*erl *Ar*chives, as libraries from which Perl modules can be loaded. It supports loading XS modules by overriding *DynaLoader* bootstrapping methods; it writes shared object file to a temporary file at the time it is needed. A _.par_ file is mostly a zip of the _blib/_ directory after the build process of a CPAN distribution. To generate a _.par_ file yourself, all you have to do is compress the modules under _arch/_ and _lib/_, e.g.: % perl Makefile.PL % make % cd blib % zip -r mymodule.par arch/ lib/ Afterward, you can just use _mymodule.par_ anywhere in your '@INC', use *PAR*, and it will Just Work. Support for generating _.par_ files is going to be in the next (beyond 0.2805) release of Module::Build. For convenience, you can set the 'PERL5OPT' environment variable to '-MPAR' to enable 'PAR' processing globally (the overhead is small if not used); setting it to '-MPAR=/path/to/mylib.par' will load a specific PAR file. Alternatively, consider using the _par.pl_ utility bundled with the PAR::Packer distribution, or using the self-contained _parl_ utility which is also distributed with PAR::Packer on machines without PAR.pm installed. Note that self-containing scripts and executables created with _par.pl_ and _pp_ may also be used as _.par_ archives: % pp -o packed.exe source.pl # generate packed.exe (see PAR::Packer) % perl -MPAR=packed.exe other.pl # this also works % perl -MPAR -Ipacked.exe other.pl # ditto Please see SYNOPSIS for most typical use cases. %prep %setup -q -n %{cpan_name}-%{version} %build perl Makefile.PL INSTALLDIRS=vendor make %{?_smp_mflags} %check make test %install %perl_make_install %perl_process_packlist %perl_gen_filelist %files -f %{name}.files %defattr(-,root,root,755) %doc AUTHORS Changes README %license LICENSE %changelog * Tue May 21 2019 Stephan Kulow - updated to 1.016 see /usr/share/doc/packages/perl-PAR/Changes 1.016 2019-05-20 - Fix #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): temporarily increase Archive::Zip::ChunkSize around the call to Archive::Zip::readFromFileHandle(). Note this is prerequisite for the corresponding fix in PAR::Packer. - Fix: Archive::Unzip::Burst::unzip result is ignored and _extract_inc does always the slow way, too PR from Vit Spinka , thanks! - Show debug messages if $ENV{PERL_DL_DEBUG} is true * Fri Apr 14 2017 coolo@suse.com - updated to 1.015 see /usr/share/doc/packages/perl-PAR/Changes 1.015 2017-04-13 - Fix RT#120722 (Reason for Module::Signature dependency unclear since 2008) - "require" a non-broken version of Digest::SHA - remove other crypto related "recommends" - Switch from Module::Install to ExtUtils::MakeMaker - avoids the hassle with Module::Install for Perl without "." in @INC - add some resources cf META.json * Mon Dec 19 2016 coolo@suse.com - updated to 1.014 see /usr/share/doc/packages/perl-PAR/Changes 1.014 2016-12-18 - Fix RT#119224: "Issue about Can't locate loadable object for module" drop "use" statements in PAR/Heavy.pm added in edf5f24d - Fix RT#119010: "Wrong license link" always refer to the included LICENSE file - generate hello.par in Makefile target "pure_all" * Mon Nov 28 2016 coolo@suse.com - updated to 1.013 see /usr/share/doc/packages/perl-PAR/Changes 1.013 2016-11-27 - Fix a crucial typo, hopefully fixes RT#118981 "Tests fail (with PAR 1.012?)" - Build t/hello.par at "make" time * Sat Nov 26 2016 coolo@suse.com - updated to 1.012 see /usr/share/doc/packages/perl-PAR/Changes 1.012 2016-11-25 - Guard against concurrent extraction attempts of zip into "inc" - use a file lock to protect the extraction of the complete zip into "inc" - _run_member_*(), _tempfile(), _dl_extract(): make the "persistent" filename only visible when the file has been completely written - Make build and test work if @INC does not include "." - Upgrade to Module::Install 1.17 * Mon Sep 19 2016 coolo@suse.com - updated to 1.011 see /usr/share/doc/packages/perl-PAR/Changes 1.011 2016-09-18 - Move to GitHub. Thanks, OpenFoundry, for years of service. - Suppress warning "Use of uninitialized value in do "file" ..." - Put a description of its purpose into the canary file - Remove all traces of Internals::PAR::CLEARSTACK - Remove all references to http://par.perl.org/, doesn't exist anymore * Sat Aug 1 2015 coolo@suse.com - updated to 1.010 see /usr/share/doc/packages/perl-PAR/Changes 1.010 2015-07-13 - Fix #101800 "[PATCH] Reinstate files to inc dir if deleted by external process" Periodic temp directory cleaning programs (eg. "tmpwatch") may remove some (older) files from $PAR_TEMP/inc, but keep others. This causes the packed program to fail. - When extracting a .par file to $PAR_TEMP/inc do NOT restore the original modified timestamps of the file (so that the extracted files have the time of extraction as their modified time). - Add a "canary" file in $PAR_TEMP and back-date it 1 day. Hence any process removing files in $PAR_TEMP based on timestamps should remove the "canary" before others. - If the canary file is missing, extract the .par to $PAR_TEMP/inc as previously was done only when $PAR_TEMP/inc was missing. * Fri Apr 24 2015 coolo@suse.com - updated to 1.009 see /usr/share/doc/packages/perl-PAR/Changes 1.009 2015-04-22 - Fix 103861 for PAR-Packer: Adding local directories to @INC for a pp executable fails - Get rid of included PerlIO.pm, parent.pm, obsolete Module::Install::Include and included Test::More. * Mon Apr 13 2015 coolo@suse.com - updated to 1.008 see /usr/share/doc/packages/perl-PAR/Changes * Thu Jan 10 2013 ro@suse.de - update to 1.007 - Hopefully fix "pp -C ..." - update to Module::Install 1.06 - update to 1.006 - Fix RT #78633: PAR::import ignores url => $repo_client_object - Fix RT #73491: cache directory naming problem - update to 1.005 - bump Perl version requirement to 5.8.1 - run all tests using a nonce PAR_TMPDIR - update to 1.004 - back out r1241 - change "unsafe directory" error message - remove "debian" sub directory - remove some cruft from MANIFEST.SKIP - update to 1.003 - RT #69560/CVE-2011-4114 - Fix a problem packing XML::LibXSLT on Windows - Die (with a hopefully useful message) if any error is encountered during an Archive::Zip extract operation * Fri May 25 2012 werner@suse.de - Adopt to spdx, then readme says "You can redistribute and/or modify this bundle under the same terms as Perl itself." * Wed Dec 1 2010 coolo@novell.com - switch to perl_requires macro * Tue Nov 23 2010 pth@novell.com - initial package 1.002 * created by cpanspec 1.78