./devel/pcre2, Perl Compatible Regular Expressions library (major version 2)

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


Branch: CURRENT, Version: 10.47, Package name: pcre2-10.47, Maintainer: pkgsrc-users

PCRE2 is a re-working of the original PCRE library to provide an entirely new
API.

PCRE2 is written in C, and it has its own API. There are three sets of
functions, one for the 8-bit library, which processes strings of bytes, one for
the 16-bit library, which processes strings of 16-bit values, and one for the
32-bit library, which processes strings of 32-bit values. There are no C++
wrappers.


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 2727.509 KB

Version history: (Expand)


CVS history: (Expand)


   2025-10-23 22:40:24 by Thomas Klausner | Files touched by this commit (2999)
Log message:
*: recursive bump for pcre2

Running an old binary against the new pcre doesn't work:
/usr/pkg/lib/libpcre2-8.so.0: version PCRE2_10.47 required by \ 
/usr/pkg/lib/libglib-2.0.so.0 not defined
   2025-10-22 08:40:26 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
pcre2: updated to 10.47

Version 10.47 21-October-2025
-----------------------------

This is a regular semi-annual release, incorporating a few new features and
several maintenance and build improvements.

Only changes to behaviour, changes to the API, and other significant changes
are described here. Please see the ChangeLog and Git log for further details.

* (Powerful new feature) Pattern recursion of the form
"(?1(GROUP_NAME_OR_NUM,...))" acts as a subroutine call which additionally
returns the listed capturing groups to the calling context.

* (Significant bugfix) Fixed a crash in pcre2_callout_enumerate() which is
easily reachable on any pattern that contains a Unicode character class. If your
application uses this function, please read the details for this change and
evaluate its severity for your application.

* (Build change) There are now linker scripts to enable symbol versioning for
the PCRE2 dynamic libraries. Downstream Linux distributions may make use of
this, or disable it with the new Autoconf `--disable-symvers` and CMake
`-DPCRE2_SYMVERS` options. Linux, Solaris, and FreeBSD (GNU ld, LLVM lld, and
Solaris ld) are tested and supported.

* (New API function) Added pcre2_next_match(). This function makes it both
simpler and safer for clients to iterate over all matches in a subject. The
documentation in `pcre2api` also provides improved guidance in the section
"Iterating over all matches".

* (Minor API addition) Added the PCRE2_CONFIG_EFFECTIVE_LINKSIZE option to
pcre2_config().

* (Minor replacement syntax extension) Added support for $+ replacement to
pcre2_substitute().

* (Build change) Modernize the CMake build files, to use the
"$<BUILD_INTERFACE:...>", \ 
"$<INSTALL_INTERFACE:...>" and "install(EXPORT...)"
expressions to export the PCRE2 targets.
   2025-08-29 10:43:16 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
pcre2: updated to 10.46

Version 10.46 27-August-2025

This is a security-only release, to address CVE-2025-58050.

Compared to 10.45, this release has only a minimal code change to prevent a
read-past-the-end memory error, of arbitrary length. An attacker-controlled
regex pattern is required, and it cannot be triggered by providing crafted
subject (match) text. The (*ACCEPT) and (*scs:) pattern features must be used
together.

Release 10.44 and earlier are not affected.

This could have implications of denial-of-service or information disclosure,
and could potentially be used to escalate other vulnerabilities in a system
(such as information disclosure being used to escalate the severity of an
unrelated bug in another system).
   2025-02-05 17:11:51 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
pcre2: updated to 10.45

Version 10.45 05-February-2025
------------------------------

This is a comparatively large release, incorporating new features, some
bugfixes, and a few changes with slight backwards compatibility implications.
Please see the ChangeLog and Git log for further details.

Only changes to behaviour, changes to the API, and major changes to the pattern
syntax are described here.

This release is the first to be available as a (signed) Git tag, or
alternatively as a (signed) tarball of the Git tag.

This is also the first release to be made by the new maintainers of PCRE2, and
we would like to thank Philip Hazel, creator and maintainer of PCRE and PCRE2.

* (Git change) The sljit project has been split out into a separate Git
  repository. Git users must now run `git submodule init; git submodule update`
  after a Git checkout.

* (Behaviour change) Update Unicode support to UCD 16.

* (Match behaviour change) Case-insensitive matching of Unicode properties
  Ll, Lt, and Lu has been changed to match Perl. Previously, /\p{Ll}/i would
  match only lower-case characters (even though case-insensitive matching was
  specified). This also affects case-insensitive matching of POSIX classes such
  as [:lower:].

* (Minor match behaviour change) Case-insensitive matching of backreferences now
  respects the PCRE2_EXTRA_CASELESS_RESTRICT option.

* (Minor pattern syntax change) Parsing of the \x escape is stricter, and is
  no longer parsed as an escape for the NUL character if not followed by '{' or
  a hexadecimal digit. Use \x00 instead.

* (Major new feature) Add a new feature called scan substring. This is a new
  type of assertion which matches the content of a capturing block to a
  sub-pattern.

  Example: to find a word that contains the rare (in English) sequence of
  letters "rh" not at the start:

      \b(\w++)(*scan_substring:(1).+rh)

  The first group captures a word which is then scanned by the
  (*scan_substring:(1) ... ) assertion, which tests whether the pattern \ 
".+rh"
  matches the capture group "(1)".

* (Major new feature) Add support for UTS#18 compatible character classes,
  using the new option PCRE2_ALT_EXTENDED_CLASS. This adds '[' as a
  metacharacter within character classes and the operators '&&', '--' \ 
and '~~',
  allowing subtractions and intersections of character classes to be easily
  expressed.

  Example: to match Thai or Greek letters (but not letters or other characters
  in those scripts), use [\p{L}&&[\p{Thai}||\p{Greek}]].

* (Major new feature) Add support for Perl-style extended character classes,
  using the syntax (?[...]). This also allows expressing subtractions and
  intersections of character classes, but using a different syntax to UTS#18.

  Example: to match Thai or Greek letters (but not letters or other characters
  in those scripts), use (?[\p{L} & (\p{Thai} + \p{Greek})]).

* (Minor feature) Significant improvements to the character class match engine.
  Compiled character classes are now more compact, and have faster matching
  for large or complex character sets, using binary search through the set.

* JIT compilation now fails with the new error code PCRE2_ERROR_JIT_UNSUPPORTED
  for patterns which use features not supported by the JIT compiler.

* (Minor feature) New options PCRE2_EXTRA_NO_BS0 (disallow \0 as an escape for
  the NUL character); PCRE2_EXTRA_PYTHON_OCTAL (use Python disambiguation rules
  for deciding whether \12 is a backreference or an octal escape);
  PCRE2_EXTRA_NEVER_CALLOUT (disable callout syntax entirely);
  PCRE2_EXTRA_TURKISH_CASING (use Turkish rules for case-insensitive matching).

* (Minor feature) Add new API function pcre2_set_optimize() for controlling
  which optimizations are enabled.

* (Minor new features) A variety of extensions have been made to
  pcre2_substitute() and its syntax for replacement strings. These now support:
  \123 octal escapes; titlecasing \u\L; \1 backreferences; \g<1> and \ 
$<NAME>
  backreferences; $& $` $' and $_; new function
  pcre2_set_substitute_case_callout() to allow locale-aware case transformation.
   2024-06-07 22:35:50 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
pcre2: updated to 10.44

PCRE2-10.44
This is mostly a bug-fix and tidy-up release. An explicit limit can now be set \ 
on the size of a compiled pattern.
   2024-02-16 18:51:22 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
pcre2: updated to 10.43

PCRE2-10.43

There are a lot of changes in this release. Those that are not just bugfixes or \ 
source tidies are described in the NEWS file and there is more information in \ 
ChangeLog. Note that JIT support for Armv5 is withdrawn in this release. There \ 
have only been minor changes since 10.43-RC1.
   2022-12-13 08:21:49 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
pcre2: updated to 10.42

Version 10.42 11-December-2022
------------------------------

1. Change 19 of 10.41 wasn't quite right; it put the definition of a default,
empty value for PCRE2_CALL_CONVENTION in src/pcre2posix.c instead of
src/pcre2posix.h, which meant that programs that included pcre2posix.h but not
pcre2.h failed to compile.

2. To catch similar issues to the above in future, a new small test program
that includes pcre2posix.h but not pcre2.h has been added to the test suite.

3. When the -S option of pcre2test was used to set a stack size greater than
the allowed maximum, the error message displayed the hard limit incorrectly.
This was pointed out on GitHub pull request 171, but the suggested patch
didn't cope with all cases. Some further modification was required.

4. Supplying an ovector count of more than 65535 to pcre2_match_data_create()
caused a crash because the field in the match data block is only 16 bits. A
maximum of 65535 is now silently applied.

5. Merged @carenas patch 175 which fixes 86 - segfault on aarch64 (ARM),
   2022-12-08 11:30:48 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
pcre2: fix for https://github.com/PCRE2Project/pcre2/issues/173