* Modules and Pragmata
** Updated Modules and Pragmata
B::Deparse has been upgraded from version 1.56 to 1.57.
Encode has been upgraded from version 3.08 to 3.08_01.
GDBM_File has been upgraded from version 1.19 to 1.19_01.
Module::CoreList has been upgraded from version 5.20210520 to 5.20220313.
perl5db.pl has been upgraded from version 1.60 to 1.60_01.
* Testing
Tests were added and changed to reflect the other additions and changes in this
release.
* Selected Bug Fixes
B::Deparse now correctly handles try/catch blocks with more complex scopes.
what is new for perl v5.30.1
Incompatible Changes
There are no changes intentionally incompatible with 5.30.1. If any
exist, they are bugs, and we request that you submit a report. See
"Reporting Bugs" below.
Modules and Pragmata
Updated Modules and Pragmata
o Module::CoreList has been upgraded from version 5.20190522 to
5.20191110.
Documentation
Changes to Existing Documentation
We have attempted to update the documentation to reflect the changes
listed in this document. If you find any we have missed, send email to
perlbug@perl.org <mailto:perlbug@perl.org>.
Additionally, documentation has been updated to reference GitHub as the
new canonical repository and to describe the new GitHub pull request
workflow.
Configuration and Compilation
o The "ECHO" macro is now defined. This is used in a "dtrace" rule
that was originally changed for FreeBSD, and the FreeBSD make
apparently predefines it. The Solaris make does not predefine
"ECHO" which broke this rule on Solaris.
Testing
Tests were added and changed to reflect the other additions and changes
in this release.
Platform Support
Platform-Specific Notes
Win32
The locale tests could crash on Win32 due to a Windows bug, and
separately due to the CRT throwing an exception if the locale name
wasn't validly encoded in the current code page.
For the second we now decode the locale name ourselves, and always
decode it as UTF-8.
Selected Bug Fixes
o Setting $) now properly sets supplementary group ids, if you have
the necessary privileges.
o "readline @foo" now evaluates @foo in scalar context. Previously,
it would be evaluated in list context, and since readline() pops
only one argument from the stack, the stack could underflow, or be
left with unexpected values on it.
o sv_gets() now recovers better if the target SV is modified by a
signal handler.
o Matching a non-"SVf_UTF8" string against a regular expression
containing Unicode literals could leak an SV on each match attempt.
o "sprintf("%.*a", -10000, $x)" would cause a buffer overflow due to
mishandling of the negative precision value.
o "scalar()" on a reference could cause an erroneous assertion
failure during compilation.
5.26.2:
Security
[CVE-2018-6797] heap-buffer-overflow (WRITE of size 1) in S_regatom (regcomp.c)
A crafted regular expression could cause a heap buffer write overflow, with control over the bytes written.
[CVE-2018-6798] Heap-buffer-overflow in Perl__byte_dump_string (utf8.c)
Matching a crafted locale dependent regular expression could cause a heap buffer read overflow and potentially information disclosure.
[CVE-2018-6913] heap-buffer-overflow in S_pack_rec
pack() could cause a heap buffer write overflow with a large item count.
Assertion failure in Perl__core_swash_init (utf8.c)
Control characters in a supposed Unicode property name could cause perl to crash. This has been fixed.
Updated Modules and Pragmata
Module::CoreList has been upgraded from version 5.20170922_26 to 5.20180414_26.
PerlIO::via has been upgraded from version 0.16 to 0.17.
Term::ReadLine has been upgraded from version 1.16 to 1.17.
Unicode::UCD has been upgraded from version 0.68 to 0.69.
Selected Bug Fixes
The readpipe() built-in function now checks at compile time that it has only one parameter expression, and puts it in scalar context, thus ensuring that it doesn't corrupt the stack at runtime.
Fixed a use after free bug in pp_list introduced in Perl 5.27.1.
Parsing a sub definition could cause a use after free if the sub keyword was followed by whitespace including newlines (and comments).
The tokenizer now correctly adjusts a parse pointer when skipping whitespace in an ${identifier} construct.
Accesses to ${^LAST_FH} no longer assert after using any of a variety of I/O operations on a non-glob.
sort now performs correct reference counting when aliasing $a and $b, thus avoiding premature destruction and leakage of scalars if they are re-aliased during execution of the sort comparator.
Some convoluted kinds of regexp no longer cause an arithmetic overflow when compiled.
Fixed a duplicate symbol failure with -flto -mieee-fp builds. pp.c defined _LIB_VERSION which -lieee already defines.
A NULL pointer dereference in the S_regmatch() function has been fixed.
Failures while compiling code within other constructs, such as with string interpolation and the right part of s///e now cause compilation to abort earlier.
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
* B has been upgraded from 1.42 to 1.42_01, fixing bugs related to lexical subroutines.
* Digest::SHA has been upgraded from 5.84 to 5.84_01, fixing a crashing bug.
* Module::CoreList has been upgraded from 2.89 to 2.96.
* Starting in v5.18.0, a construct like /[#](?{})/x would have its # incorrectly interpreted as a comment. The code block would be skipped, unparsed. This has been corrected.
* A number of memory leaks related to the new, experimental regexp bracketed character class feature have been plugged.
* The OP allocation code now returns correctly aligned memory in all cases for struct pmop. Previously it could return memory only aligned to a 4-byte boundary, which is not correct for an ithreads build with 64 bit IVs on some 32 bit platforms. Notably, this caused the build to fail completely on sparc GNU/Linux.
* The debugger's man command been fixed. It was broken in the v5.18.0 release. The man command is aliased to the names doc and perldoc - all now work again.
* @_ is now correctly visible in the debugger, fixing a regression introduced in v5.18.0's debugger.
* Fixed a small number of regexp constructions that could either fail to match or crash perl when the string being matched against was allocated above the 2GB line on 32-bit systems.
* Perl v5.16 inadvertently introduced a bug whereby calls to XSUBs that were not visible at compile time were treated as lvalues and could be assigned to, even when the subroutine was not an lvalue sub. This has been fixed.
* Perl v5.18 inadvertently introduced a bug whereby dual-vars (i.e. variables with both string and numeric values, such as $! ) where the truthness of the variable was determined by the numeric value rather than the string value.
* Perl v5.18 inadvertently introduced a bug whereby interpolating mixed up- and down-graded UTF-8 strings in a regex could result in malformed UTF-8 in the pattern: specifically if a downgraded character in the range \x80..\xff followed a UTF-8 string
* Lexical constants (my sub a() { 42 }) no longer crash when inlined.
* Parameter prototypes attached to lexical subroutines are now respected when compiling sub calls without parentheses. Previously, the prototypes were honoured only for calls with parentheses.
* Syntax errors in lexical subroutines in combination with calls to the same subroutines no longer cause crashes at compile time.
* The dtrace sub-entry probe now works with lexical subs, instead of crashing
* Undefining an inlinable lexical subroutine (my sub foo() { 42 } undef &foo) would result in a crash if warnings were turned on.
* Deep recursion warnings no longer crash lexical subroutines.
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
This release contains one major and a number of minor security fixes. It fixes a possible vulnerability to a denial-of-service attack by use of a carefully-crafted set of hash keys, a segmentation fault when reading or writing strings greater than 2^31 bytes in size, and a memory leak in Encode.xs's UTF-8 encoding implementation.
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
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.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
The automatic truncation in gensolpkg doesn't work for packages which
have the same package name for the first 5-6 chars.
e.g. amanda-server and amanda-client would be named amanda and amanda.
Now, we add a SVR4_PKGNAME and use amacl for amanda-client and amase for
amanda-server.
All svr4 packages also have a vendor tag, so we have to reserve some chars
for this tag, which is normaly 3 or 4 chars. Thats why we can only use 6
or 5 chars for SVR4_PKGNAME. I used 5 for all the packages, to give the
vendor tag enough room.
All p5-* packages and a few other packages have now a SVR4_PKGNAME.