Up to [NetBSD + pkgsrc-wip] / pkgsrc / lang / perl5
Request diff between arbitrary revisions - Display revisions graphically
Keyword substitution: kv
Default branch: MAIN
When building perl packages, never use native perl.
Changes 5.14.1: * Several modules were updated to fix minor bugs. * Tests were fixed. * Documentation was improved. Changes 5.14.0: * Unicode version 6.0 is now supported. * Regular expressions can now be reset to the default modifiers. * Four new regular expression modifiers, "/d", "/l" , "/u", and "/a", were introduced. * The substitution operators now support the modifier "/r" to work non-destructively, leaving the original unmodified. * Larger octals can now be specified. * Array and hash operators can now experimentally operate directly on hard references. * printf-like functions now understand post-1980 size modifiers. * Exception handling was made more reliable and consistent. * Other enhancements and many bug fixes were made PkgSrc: * Fixed configuring on Mac OS X 10.7.
Updating lang/perl5 from 5.12.1 to 5.12.1nb1 pkgsrc changes: - preparing for databases/p5-gdbm (using Makefile.common) - supporting external access to perl install dirs (dirs.mk) - fixing some errors/warnings from pkglint - adding conflict to packages of CPAN modules which are in Perl5 code on the one hand and are broken with perl-5.10+ Bumping PKGREVISION (dependencies changed, rebuild highly recommended). Recursive rebuild is not required.
Update perl from version 5.10.1nb2 to version 5.12.1. Pkgsrc changes: - Adjust some patches - Remove patches integrated upstream - Use Perl's "Policy.sh" framework (along the way remove some patches) - Link in an enterprise friendly way on HPUX - in buildlink3.mk bump minimum required pkgsrc Perl version to 5.12.0 - placate some pkglint warnings Upstream changes: - From version 5.12.1 announce This release contains minor bug fixes and updates of several core modules, as well as minor documentation updates. It should be fully backward compatible with Perl 5.12.0. - From version 5.12.0 announce: Perl 5.12.0 represents approximately two years of development since version 5.10.0 and contains over 750,000 lines of changes across over 3,000 files from over 200 authors and committers. [...] Notable changes in Perl 5.12 include: * Perl now conforms much more closely to the Unicode standard. Additionally, this release includes an upgrade to version 5.2 of the standard. * New experimental APIs allow developers to extend Perl with "pluggable" keywords and syntax. * Perl now has a better sense of time and will be able to keep accurate time well past the "Y2038" barrier. * New syntax allows developers to specify package version numbers directly in "package" statements * Perl now warns the user about the use of deprecated features by default. - For a complete list of changes see included perl5120delta(1) and perl5121delta(1) or http://perldoc.perl.org/perl5120delta.html and http://perldoc.perl.org/perl5121delta.html
allow dependent modules check build options of perl5
Simply and speed up buildlink3.mk files and processing. This changes the buildlink3.mk files to use an include guard for the recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS, BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of enter/exit marker, which can be used to reconstruct the tree and to determine first level includes. Avoiding := for large variables (BUILDLINK_ORDER) speeds up parse time as += has linear complexity. The include guard reduces system time by avoiding reading files over and over again. For complex packages this reduces both %user and %sys time to half of the former time.
Add BUILDLINK_API_DEPENDS.perl+= perl<5.12.0 together with a comment explaining that this should prevent a repeat of the current problem where binary perl packages built for 5.8.8 can be installed together with perl 5.10.0 without any warning/error. By the perl numbering scheme, perl 5.12.0 will be the next maintenance version which installs modules in a different path than what's used for 5.10.0. The contents of perl itself doesn't change as a result of this change, so no revision bump, but a revision bump for all packages which depend directly on perl is forthcoming, as a workaround for the 5.8.8 -> 5.10.0 transition.
Adjust PERL5_REQD from 5.8.7 to 5.10.0, so as to prevent attempts at using p5-* packages built with the new perl from being installed together with an older version of perl. The p5-* packages will not work because the new and old perls install modules in different directories. As a consequence, bump package revision.
Properly fix the problem that 1.40 addressed. PERL5_REQD should be treated as a list.
Back out 1.37 as it breaks PERL5_REQD (e.g. show-depends in mail/p5-Email-Send).
Need to include vars.mk for ${PERL5_SUB_INSTALLARCHLIB}.
When buildlinking perl, set PERL5 to pkgsrc perl, not the one selected by the tools framework.
If perl is buildlinked, used perl in ${BUILDLINK_PREFIX.perl} and
do not rely on the tools framework.
Replace mk/bsd.prefs.mk includes with bsd.fast.prefs.mk includes. The redundant parsing of bsd.prefs.mk is mostly avoided now and parse time e.g. for x11/kdebase3 gets reduced by up to 10%.
Change the format of BUILDLINK_ORDER to contain depth information as well, and add a new helper target and script, "show-buildlink3", that outputs a listing of the buildlink3.mk files included as well as the depth at which they are included. For example, "make show-buildlink3" in fonts/Xft2 displays: zlib fontconfig iconv zlib freetype2 expat freetype2 Xrender renderproto
Track information in a new variable BUILDLINK_ORDER that informs us of the order in which buildlink3.mk files are (recursively) included by a package Makefile.
Pluralize INSTALL_TEMPLATE and DEINSTALL_TEMPLATE variable names as per
the pkglint warning:
As {INSTALL,DEINSTALL}_TEMPLATE is modified using "+=", its name
should indicate plural.
This does make the variables a bit more suggestive of the fact that they
hold lists of values.
bsd.prefs.mk only needs to be included once.
Over 1200 files touched but no revisions bumped :) RECOMMENDED is removed. It becomes ABI_DEPENDS. BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo. BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo. BUILDLINK_DEPENDS does not change. IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS which defaults to "yes". Added to obsolete.mk checking for IGNORE_RECOMMENDED. I did not manually go through and fix any aesthetic tab/spacing issues. I have tested the above patch on DragonFly building and packaging subversion and pkglint and their many dependencies. I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I have used IGNORE_RECOMMENDED for a long time). I have been an active user of IGNORE_RECOMMENDED since it was available. As suggested, I removed the documentation sentences suggesting bumping for "security" issues. As discussed on tech-pkg. I will commit to revbump, pkglint, pkg_install, createbuildlink separately. Note that if you use wip, it will fail! I will commit to pkgsrc-wip later (within day).
Modify the pkginstall framework so that it manages all aspects of
INSTALL/DEINSTALL script creation within pkgsrc.
If an INSTALL or DEINSTALL script is found in the package directory,
it is automatically used as a template for the pkginstall-generated
scripts. If instead, they should be used simply as the full scripts,
then the package Makefile should set INSTALL_SRC or DEINSTALL_SRC
explicitly, e.g.:
INSTALL_SRC= ${PKGDIR}/INSTALL
DEINSTALL_SRC= # emtpy
As part of the restructuring of the pkginstall framework internals,
we now *always* generate temporary INSTALL or DEINSTALL scripts. By
comparing these temporary scripts with minimal INSTALL/DEINSTALL
scripts formed from only the base templates, we determine whether or
not the INSTALL/DEINSTALL scripts are actually needed by the package
(see the generate-install-scripts target in bsd.pkginstall.mk).
In addition, more variables in the framework have been made private.
The *_EXTRA_TMPL variables have been renamed to *_TEMPLATE, which are
more sensible names given the very few exported variables in this
framework. The only public variables relating to the templates are:
INSTALL_SRC INSTALL_TEMPLATE
DEINSTALL_SRC DEINSTALL_TEMPLATE
HEADER_TEMPLATE
The packages in pkgsrc have been modified to reflect the changes in
the pkginstall framework.
Remove USE_PKGINSTALL from pkgsrc now that mk/install/pkginstall.mk automatically detects whether we want the pkginstall machinery to be used by the package Makefile.
Restore perllocal.pod-generating behavior of ExtUtils::MakeMaker because some Perl modules make some (bad) assumptions about the structure of a MakeMaker-generated Makefile. Instead, remove the perllocal.pod file whenever a p5-* module or perl itself is removed. While here, rename some of the install/deinstall templates to more descriptive names. Bump the PKGREVISION to 3.
Update lang/perl5 to 5.8.7. Changes from version 5.8.6 include updates
for many "core" modules, UTF-8 and Unicode bugfixes, and ithreads
bugfixes.
The major changes are in the pkgsrc infrastructure to handle Perl and
Perl modules. All pkgsrc-installed Perl modules are now installed in
"vendor" directories, and the perl interpreter has been modifed to
search for libraries in the following order: site, vendor, perl. The
Perl library is stored in a directory that is named for the Perl ABI
version associated with the Perl release, so any updates of Perl to
newer versions can be done "in-place" as long as Perl ABI version
remains the same. All Perl scripts and man pages are stored in
locations that won't conflict between site, vendor, and perl modules,
and a new utility perllink(1) now manages symlinks to those scripts
and man pages under the usual ${LOCALBASE}/bin and ${LOCALBASE}/man/man1.
PERL5_SITEPREFIX may be set to the prefix where local, site-specific
modules will be installed, e.g. PERL5_SITEPREFIX=/usr/local. Note
that modules installed here are completely unmanaged by pkgsrc.
Update the buildlink and tool dependencies on perl to require perl>=5.8.7
to reflect the new locations for Perl modules and the Perl shared
library.
Get rid of USE_PERL5. The new way to express needing the Perl executable around at either build-time or at run-time is: USE_TOOLS+= perl # build-time USE_TOOLS+= perl:run # run-time Also remove some places where perl5/buildlink3.mk was being included by a package Makefile, but all that the package wanted was the Perl executable.
Drop support for TOOLS_DEPMETHOD.<tool>. The new way to specify a run-time dependency (DEPENDS) on a tool is to append a ":run" modifier to the tool name, e.g., USE_TOOLS+= perl:run Tools without modifiers or with an explicit ":build" modifier will cause build dependencies (BUILD_DEPENDS) on those tools to be added. This makes the notation a bit more compact.
Drop the perl-5.6.x package from pkgsrc. Remove lang/perl58 and update lang/perl5 to perl-5.8.6nb4. Modify packages that referred to lang/perl58 to point to lang/perl5 instead.
Remove the old tools framework and references to _USE_NEW_TOOLS.
Split the conditional which seems to occasionally be malformed. This probably has something to do with how make deals with short-circuit evaluation of conditionals, but it's a simple matter to split the conditional since USE_PERL5 is eventually going away.
When perl5/buildlink3.mk is included by a package Makefile, the buildlink framework will handle adding the correct dependency.
Goal: Remove USE_PERL5 from pkgsrc. Plan: (1) Change USE_PERL5=build into USE_TOOLS+=perl. (2) Change all other USE_PERL5 into including perl5/buildlink3.mk. Possibly, for packages that don't actually build anything with perl, but merely require it for the perl interpreter, we can instead do: USE_TOOLS+= perl TOOLS_DEPMETHOD.perl= DEPENDS but this is more verbose than simply including the perl5/buildlink3.mk file. Move the PERL5_REQD computation into a lang/perl5/version.mk file, and only do the USE_PERL5 logic in bsd.pkg.use.mk if we're not using the new tools framework. This consolidates all of the perl-handling into two places -- lang/perl5 and mk/tools/perl.mk.
We don't need to check for whether the variables are defined before using them, as these values are referenced till later when the variables will definitely have the correct value. This removes the need to include vars.mk here.
* Teach devel/p5-Module-Build to write .packlists just like MakeMaker.pm does. This allows us to use dynamic PLISTs for Perl modules that are built using Module::Build. Bump the PKGREVISION of p5-Module-Build to 1. * Drop the use of PERL5_USES_MODULE_BUILD and introduce a new variable PERL5_MODULE_TYPE that is either "MakeMaker" or "Module::Build" that names the framework used to build/install the module. * Split out the variables set in perl5/buildlink3.mk that are also used by perl5/module.mk into a new file perl5/vars.mk. Move some PERL5_* variable definitions from pkgsrc/mk/bsd.pkg.use.mk into perl5/vars.mk. This just centralizes the common PERL5_* definitions into a single file location. * Convert the known packages that use Module::Build to set PERL5_MODULE_TYPE and PERL5_PACKLIST: devel/p5-Class-Container devel/p5-Exception-Class devel/p5-Log-Dispatch devel/p5-Array-Compare textproc/p5-Pod-Coverage www/p5-Apache-Session-Wrapper www/p5-MasonX-Request-WithApacheSession
actually bump PKGREVISION of perl58 and BUILDLINK_RECOMMENDED to address PR pkg/28619. this should have been part of the PKGREVISION bump of p5-*.
since perl is now built with threads on most platforms, the perl archlib module directory has changed (eg. "darwin-2level" vs. "darwin-thread-multi-2level"). binary packages of perl modules need to be distinguishable between being built against threaded perl and unthreaded perl, so bump the PKGREVISION of all perl module packages and introduce BUILDLINK_RECOMMENDED for perl as perl>=5.8.5nb5 so the correct dependencies are registered and the binary packages are distinct. addresses PR pkg/28619 from H. Todd Fujinaka.
Create a modifier PERL5_OPTIONS that specifies properties of the perl installation needed when including perl5/buildlink3.mk. The only option currently supported is "threads", which implies that a perl that supports threads is required. The requirement is checked at pre-install time using an INSTALL script template by both the package build and the binary package. Add PERL5_OPTIONS+=threads to both devel/p5-SDL and graphics/p5-GD since those modules require a perl that supports threads.
Allow perl-thread to be an acceptable perl when checking dependencies.
Reorder location and setting of BUILDLINK_PACKAGES to match template buildlink3.mk file in revision 1.101 of bsd.buildlink3.mk.
Turn PERL5_REQD into a list of values, the highest of which will be used to choose the correct Perl dependency.
If we're passing through MAKEFLAGS variables whose values may contain spaces, use the :Q modifier instead of double-quoting the value. This avoids breakage when executing the just-in-time su targets.
Append to BUILDLINK_DEPENDS.<pkg> instead of setting a default value. In the normal case when BUILDLINK_DEPENDS.<pkg> isn't specified, it receives a value only once due to the multiple inclusion protection in the bulldlink3.mk files. In the case where a package includes several buildlink3.mk files that each want a slightly different version of another dependency, having BUILDLINK_DEPENDS.<pkg> be a list allows for the strictest <pkg> dependency to be matched.
If PERL5_REQD is at least 5.8, then set BUILDLINK_PKGSRCDIR.perl properly to point to ../../lang/perl58. This fixes PR 23573 and PR 24031.
Back out previous change... it doesn't seem to be needed.
Add a variable "PERL5_PATH" that's the full path to the actual perl
binary. This is different from ${PERL5} in that if perl is installed
using pkgviews, then PERL5_PATH points within perl's depot directory.
Rearrange order of tests and protect more of the code that depends on
${PERL5} being present from being seen if ${PERL5} is in fact not there.
We need PERL5_INSTALLARCHLIB, so compute its value appropriately.
Use tabs (not spaces) to make indentation
Use S/+$// instead of C/\+$// to save a backslash. Very highly recommended by seb :)
Re-arrange to match example buildlink3.mk file in bsd.buildlink3.mk.
Initial sprinkling of work-in-progress buildlink3.mk files for using the buildlink3 framework.