update to 8.45

This commit is contained in:
Thomas Sailer 2022-12-19 19:03:31 +01:00
parent 84d4ef55a4
commit 53ee210542
6 changed files with 2817 additions and 40 deletions

View File

@ -1,32 +1,44 @@
%?mingw_package_header
Name: mingw-pcre
Version: 8.43
Release: 9%{?dist}
%global name1 pcre
# Is this a stable/testing release:
#%%global rcversion RC1
Name: mingw-%{name1}
Version: 8.45
%global myversion %{version}%{?rcversion:-%rcversion}
Release: 1%{?dist}
Summary: MinGW Windows pcre library
License: BSD
URL: http://www.pcre.org/
Source0: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-%{version}.tar.bz2
Source0: https://ftp.pcre.org/pub/%{name1}/%{?rcversion:Testing/}%{name1}-%{myversion}.tar.bz2
Source1: https://ftp.pcre.org/pub/%{name1}/%{?rcversion:Testing/}%{name1}-%{myversion}.tar.bz2.sig
Source2: https://ftp.pcre.org/pub/pcre/Public-Key
# Refused by upstream, bug #675477
Patch1: pcre-8.32-refused_spelling_terminated.patch
Patch1: pcre-8.32-refused_spelling_terminated.patch
# Fix recursion stack estimator, upstream bug #2173, refused by upstream
Patch2: pcre-8.41-fix_stack_estimator.patch
Patch2: pcre-8.41-fix_stack_estimator.patch
# Link applications to PCRE-specific symbols when using POSIX API, bug #1667614,
# upstream bug 1830, partially borrowed from PCRE2, proposed to upstream,
# This amends ABI, application built with this patch cannot run with
# previous libpcreposix builds.
Patch3: pcre-8.42-Declare-POSIX-regex-function-names-as-macros-to-PCRE.patch
# Add (*LF) to a list of start-of-pattern options in the C++ wrapper,
# upstream bug #2400, in upstream after 8.43
Patch4: pcre-8.43-Fix-omission-of-LF-from-list-in-the-C-wrapper.patch
Patch3: pcre-8.42-Declare-POSIX-regex-function-names-as-macros-to-PCRE.patch
# Fix reading an uninitialized memory when populating a name table,
# upstream bug #2661, proposed to the upstream
Patch4: pcre-8.44-Inicialize-name-table-memory-region.patch
# Implement CET, bug #1909554, proposed to the upstream
# <https://lists.exim.org/lurker/message/20201220.222016.d8cd6d61.en.html>
Patch5: pcre-8.44-JIT-compiler-update-for-Intel-CET.patch
Patch6: pcre-8.44-Pass-mshstk-to-the-compiler-when-Intel-CET-is-enable.patch
BuildArch: noarch
BuildRequires: make
BuildRequires: make
BuildRequires: git
BuildRequires: redhat-rpm-config
BuildRequires: gnupg2
BuildRequires: mingw32-filesystem >= 95
BuildRequires: mingw32-gcc
@ -98,6 +110,7 @@ Static version of the mingw64-pcre library.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -S git_am -n pcre-%{version}
@ -190,6 +203,9 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
%changelog
* Mon Dec 19 2022 Thomas Sailer <fedora@tsailer.ch> - 8.45-1
- Update to 8.45 to match native version
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 8.43-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

View File

@ -1,28 +0,0 @@
From f74e04f2d8755fdd5cf5e387735593354972ad23 Mon Sep 17 00:00:00 2001
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
Date: Thu, 23 May 2019 16:27:33 +0000
Subject: [PATCH] Fix omission of (*LF) from list in the C++ wrapper.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1753 2f5784b3-3f2a-0410-8824-cb99058d5e15
Petr Písař: Ported to 8.43.
---
pcrecpp.cc | 1 +
diff --git a/pcrecpp.cc b/pcrecpp.cc
index 6a3eff8..0d6b140 100644
--- a/pcrecpp.cc
+++ b/pcrecpp.cc
@@ -92,6 +92,7 @@ static const char *start_options[] = {
"(*LIMIT_RECURSION=",
"(*LIMIT_MATCH=",
"(*CRLF)",
+ "(*LF)",
"(*CR)",
"(*BSR_UNICODE)",
"(*BSR_ANYCRLF)",
--
2.20.1

View File

@ -0,0 +1,44 @@
From f0bb9e8baf3157e0a84f484f194984295b2db23a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Mon, 19 Oct 2020 16:15:14 +0200
Subject: [PATCH] Inicialize name table memory region
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Name table entry values are accessed past their ends in add_name()
when comparing the values. Also a size of the entries could grow
later. It's safer to initialize just after the allocation than to hunt
the gaps later.
Reproducer:
pcre_compile2("(?<f>)(?<fir>)", PCRE_NO_AUTO_CAPTURE | PCRE_CASELESS, &ec, &eb, &eo, NULL);
built with clang++ -fsanitize=memory -fsanitize=fuzzer-no-link.
https://bugs.exim.org/show_bug.cgi?id=2661
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
pcre_compile.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/pcre_compile.c b/pcre_compile.c
index 3be0fbf..75309e0 100644
--- a/pcre_compile.c
+++ b/pcre_compile.c
@@ -9423,6 +9423,11 @@ if (re == NULL)
goto PCRE_EARLY_ERROR_RETURN;
}
+/* Initialize the memory. Name table entry values are accessed past their ends
+ * (e.g. in add_name()) when comparing the values. Also a size of the entry can
+ * grow later. It's safer to initialize here than to hunt the gaps later. */
+memset(re, 0, size);
+
/* Put in the magic number, and save the sizes, initial options, internal
flags, and character table pointer. NULL is used for the default character
tables. The nullpad field is at the end; it's there to help in the case when a
--
2.25.4

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,98 @@
From 70fcff23652339438cabef86f2d3d9c645678687 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Sun, 20 Dec 2020 13:55:40 -0800
Subject: [PATCH 2/2] Pass -mshstk to the compiler when Intel CET is enable
Copied from PCRE2.
---
CMakeLists.txt | 18 ++++++++++++++++++
Makefile.am | 3 +++
configure.ac | 15 +++++++++++++++
3 files changed, 36 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 858a34b..74c27e9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -112,6 +112,24 @@ CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64)
CHECK_TYPE_SIZE("long long" LONG_LONG)
CHECK_TYPE_SIZE("unsigned long long" UNSIGNED_LONG_LONG)
+# Check whether Intel CET is enabled, and if so, adjust compiler flags. This
+# code was written by PH, trying to imitate the logic from the autotools
+# configuration.
+
+CHECK_C_SOURCE_COMPILES(
+ "#ifndef __CET__
+ #error CET is not enabled
+ #endif
+ int main() { return 0; }"
+ INTEL_CET_ENABLED
+)
+
+IF (INTEL_CET_ENABLED)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mshstk")
+ENDIF(INTEL_CET_ENABLED)
+
+
+
# User-configurable options
#
# (Note: CMakeSetup displays these in alphabetical order, regardless of
diff --git a/Makefile.am b/Makefile.am
index 22b6947..984c686 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -250,6 +250,7 @@ libpcre_la_SOURCES = \
libpcre_la_CFLAGS = \
$(VISIBILITY_CFLAGS) \
+ $(CET_CFLAGS) \
$(AM_CFLAGS)
libpcre_la_LIBADD =
@@ -289,6 +290,7 @@ libpcre16_la_SOURCES = \
libpcre16_la_CFLAGS = \
$(VISIBILITY_CFLAGS) \
+ $(CET_CFLAGS) \
$(AM_CFLAGS)
libpcre16_la_LIBADD =
@@ -328,6 +330,7 @@ libpcre32_la_SOURCES = \
libpcre32_la_CFLAGS = \
$(VISIBILITY_CFLAGS) \
+ $(CET_CFLAGS) \
$(AM_CFLAGS)
libpcre32_la_LIBADD =
diff --git a/configure.ac b/configure.ac
index 6a3e5f3..15f37d1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1043,6 +1043,21 @@ fi # enable_coverage
AM_CONDITIONAL([WITH_GCOV],[test "x$enable_coverage" = "xyes"])
+AC_MSG_CHECKING([whether Intel CET is enabled])
+AC_LANG_PUSH([C])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,
+ [[#ifndef __CET__
+# error CET is not enabled
+#endif]])],
+ [intel_cet_enabled=yes],
+ [intel_cet_enabled=no])
+AC_MSG_RESULT([$intel_cet_enabled])
+if test "$intel_cet_enabled" = yes; then
+ CET_CFLAGS="-mshstk"
+ AC_SUBST([CET_CFLAGS])
+fi
+AC_LANG_POP([C])
+
# Produce these files, in addition to config.h.
AC_CONFIG_FILES(
Makefile
--
2.29.2

View File

@ -1 +1,3 @@
SHA512 (pcre-8.43.tar.bz2) = 3b4ac2c7ccd77c9575d07a33c3456f40b50731029e62d01fb8f2f5871d7118e12bc9e6bc7a8079769c765e38da5ecf98c4b261b10ff0a2f14f0881b434f67af7
SHA512 (pcre-8.45.tar.bz2) = 91bff52eed4a2dfc3f3bfdc9c672b88e7e2ffcf3c4b121540af8a4ae8c1ce05178430aa6b8000658b9bb7b4252239357250890e20ceb84b79cdfcde05154061a
SHA512 (pcre-8.45.tar.bz2.sig) = 8dc7deb003f5454441f6b3f0c0d73bb1d1b32e518552fb80fb461c26ddddfcd68574549953e971e3f460b22f56dc6c65432dd67777adc90fb279501701e53f58
SHA512 (Public-Key) = 34a3c87b048ef32491be23dd3594261f2b339a67e18e8f38b47740530b6939e250518437feab988714823e674ba9374747b42aedfc56d3c626ffd6e4310a8319