Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pcre2 for openSUSE:Factory checked 
in at 2021-04-19 21:05:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pcre2 (Old)
 and      /work/SRC/openSUSE:Factory/.pcre2.new.12324 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pcre2"

Mon Apr 19 21:05:39 2021 rev:20 rq:885691 version:10.36

Changes:
--------
--- /work/SRC/openSUSE:Factory/pcre2/pcre2.changes      2020-12-18 
19:52:33.897624893 +0100
+++ /work/SRC/openSUSE:Factory/.pcre2.new.12324/pcre2.changes   2021-04-19 
21:05:48.512012207 +0200
@@ -1,0 +2,6 @@
+Wed Apr 14 09:57:53 UTC 2021 - Jan Engelhardt <jeng...@inai.de>
+
+- Remove regcomp, regexec etc. from libpcre2-posix.
+  (Add pcre2-symbol-clash.patch)
+
+-------------------------------------------------------------------

New:
----
  pcre2-symbol-clash.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pcre2.spec ++++++
--- /var/tmp/diff_new_pack.NRXpVL/_old  2021-04-19 21:05:48.960012880 +0200
+++ /var/tmp/diff_new_pack.NRXpVL/_new  2021-04-19 21:05:48.964012885 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package pcre2
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -31,6 +31,7 @@
 Source4:        baselibs.conf
 #PATCH-FIX-OPENSUSE tchva...@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++
@@ -164,8 +165,7 @@
 API.
 
 %prep
-%setup -q
-%patch1 -p1
+%autosetup -p1
 
 %build
 %define _lto_cflags %{nil}


++++++ pcre2-symbol-clash.patch ++++++
From: Jan Engelhardt <jeng...@inai.de>
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
 
 
 

Reply via email to