diff --git a/baselibs.conf b/baselibs.conf index d038d79..0c9d64b 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,4 +1,4 @@ libpcre2-8-0 libpcre2-16-0 libpcre2-32-0 -libpcre2-posix2 +libpcre2-posix3 diff --git a/pcre2-10.36.tar.bz2 b/pcre2-10.36.tar.bz2 deleted file mode 100644 index 88ab66b..0000000 --- a/pcre2-10.36.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a9ef39278113542968c7c73a31cfcb81aca1faa64690f400b907e8ab6b4a665c -size 1722310 diff --git a/pcre2-10.36.tar.bz2.sig b/pcre2-10.36.tar.bz2.sig deleted file mode 100644 index 248079a..0000000 Binary files a/pcre2-10.36.tar.bz2.sig and /dev/null differ diff --git a/pcre2-10.37.tar.bz2 b/pcre2-10.37.tar.bz2 new file mode 100644 index 0000000..48a8b67 --- /dev/null +++ b/pcre2-10.37.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d95a96e8b80529893b4562be12648d798b957b1ba1aae39606bbc2ab956d270 +size 1729384 diff --git a/pcre2-10.37.tar.bz2.sig b/pcre2-10.37.tar.bz2.sig new file mode 100644 index 0000000..333947f Binary files /dev/null and b/pcre2-10.37.tar.bz2.sig differ diff --git a/pcre2-symbol-clash.patch b/pcre2-symbol-clash.patch deleted file mode 100644 index 6af1e14..0000000 --- a/pcre2-symbol-clash.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Jan Engelhardt -Date: 2021-04-14 11:42:14.750408048 - -If libpcre2-posix.so makes it into a process image somehow before -libc.so (which is easy: gcc something.c -lpcre2-posix), pcre2's -"regcomp" symbol wins a race over libc's "regcomp" symbol. There are -likely more situations as well, because libc's "regcomp" is _also_ -marked as weak. Anyway, because the functions two are not -behavior-compatible, problems arise. - -To stay ABI compatible, we could make a new library without regcomp etc., -and edit the .pc file to point to the new library, but that would not -capture the case someone uses plain gcc -l without pkg-config. - -Since regcomp is "#defined" to pcre2_regcomp, any programs that were -source-compiled are fine. Removing the reg* symbols from the library -hence only breaks the case of dlsym(libpcre2-posix, "regcomp"), -which, I will argue, is an absolute niche use of the PCRE libraries -and something we are willing to break. - ---- - src/pcre2posix.c | 2 ++ - 1 file changed, 2 insertions(+) - -Index: pcre2-10.36/src/pcre2posix.c -=================================================================== ---- pcre2-10.36.orig/src/pcre2posix.c -+++ pcre2-10.36/src/pcre2posix.c -@@ -185,6 +185,7 @@ This also ensures that the POSIX names a - include pcre2posix.h. It is vital to #undef the macro definitions from - pcre2posix.h! */ - -+#if 0 - #undef regerror - PCRE2POSIX_EXP_DECL size_t regerror(int, const regex_t *, char *, size_t); - PCRE2POSIX_EXP_DEFN size_t PCRE2_CALL_CONVENTION -@@ -218,6 +219,7 @@ regexec(const regex_t *preg, const char - { - return pcre2_regexec(preg, string, nmatch, pmatch, eflags); - } -+#endif - - - diff --git a/pcre2.changes b/pcre2.changes index 1b8bf58..bbd6a61 100644 --- a/pcre2.changes +++ b/pcre2.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Thu May 27 12:30:17 UTC 2021 - Andreas Stieger + +- pcre2 10.37: + * removal of the actual POSIX names regcomp etc. from the POSIX + wrapper library because these have caused issues for some + applications, replacing pcre2-symbol-clash.patch + * fix a hypothetical NULL dereference + * fix two bugs related to over-large numbers so the behaviour is + now the same as Perl + * Fix propagation of \K back from the full pattern recursion + * Restore single character repetition optimization in JIT + ------------------------------------------------------------------- Wed Apr 14 09:57:53 UTC 2021 - Jan Engelhardt diff --git a/pcre2.spec b/pcre2.spec index 83bfba9..6eeb7db 100644 --- a/pcre2.spec +++ b/pcre2.spec @@ -18,7 +18,7 @@ %global _lto_cflags %{_lto_cflags} -ffat-lto-objects Name: pcre2 -Version: 10.36 +Version: 10.37 Release: 0 Summary: A library for Perl-compatible regular expressions License: BSD-3-Clause @@ -31,7 +31,6 @@ Source3: %{name}.keyring Source4: baselibs.conf #PATCH-FIX-OPENSUSE tchvatal@suse.cz upstream thinks it is good idea to use rpath, taken from RH Patch1: pcre2-10.10-multilib.patch -Patch2: pcre2-symbol-clash.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc-c++ @@ -55,7 +54,7 @@ Group: Development/Libraries/C and C++ Requires: libpcre2-16-0 = %{version} Requires: libpcre2-32-0 = %{version} Requires: libpcre2-8-0 = %{version} -Requires: libpcre2-posix2 = %{version} +Requires: libpcre2-posix3 = %{version} Requires: libstdc++-devel %description devel @@ -124,11 +123,11 @@ API. libpcre2-32 supports 32-bit and UTF-32 strings. -%package -n libpcre2-posix2 +%package -n libpcre2-posix3 Summary: A library for Perl-compatible regular expressions Group: System/Libraries -%description -n libpcre2-posix2 +%description -n libpcre2-posix3 The PCRE2 library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. @@ -216,8 +215,8 @@ export LANG=POSIX %postun -n libpcre2-16-0 -p /sbin/ldconfig %post -n libpcre2-32-0 -p /sbin/ldconfig %postun -n libpcre2-32-0 -p /sbin/ldconfig -%post -n libpcre2-posix2 -p /sbin/ldconfig -%postun -n libpcre2-posix2 -p /sbin/ldconfig +%post -n libpcre2-posix3 -p /sbin/ldconfig +%postun -n libpcre2-posix3 -p /sbin/ldconfig %files -n libpcre2-8-0 %license COPYING LICENCE @@ -232,7 +231,7 @@ export LANG=POSIX %license LICENCE %{_libdir}/libpcre2-32.so.* -%files -n libpcre2-posix2 +%files -n libpcre2-posix3 %license LICENCE %{_libdir}/libpcre2-posix.so.*