Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package renderdoc for openSUSE:Factory checked in at 2025-03-26 21:21:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/renderdoc (Old) and /work/SRC/openSUSE:Factory/.renderdoc.new.2696 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "renderdoc" Wed Mar 26 21:21:45 2025 rev:24 rq:1256187 version:1.37 Changes: -------- --- /work/SRC/openSUSE:Factory/renderdoc/renderdoc.changes 2025-03-14 23:53:40.260576718 +0100 +++ /work/SRC/openSUSE:Factory/.renderdoc.new.2696/renderdoc.changes 2025-03-26 21:24:31.009238122 +0100 @@ -1,0 +2,6 @@ +Wed Mar 26 09:21:40 UTC 2025 - Fabian Vogt <fv...@suse.com> + +- Add patch to backport PCRE2 to the swig fork: + * 0001-PCRE2.patch + +------------------------------------------------------------------- New: ---- 0001-PCRE2.patch BETA DEBUG BEGIN: New:- Add patch to backport PCRE2 to the swig fork: * 0001-PCRE2.patch BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ renderdoc.spec ++++++ --- /var/tmp/diff_new_pack.d7Uwzz/_old 2025-03-26 21:24:32.197287430 +0100 +++ /var/tmp/diff_new_pack.d7Uwzz/_new 2025-03-26 21:24:32.201287596 +0100 @@ -27,6 +27,9 @@ Source1: https://github.com/baldurk/swig/archive/renderdoc-modified-7.zip Patch0: 0001-Fix-install-rpaths.patch Patch1: 0002-Add-debugger-as-desktop-menu-category.patch +# Applies to the extracted renderdoc-modified-7.zip. +# Created with git format-patch --src-prefix=a/swig-renderdoc-modified-7/ --dst-prefix=b/swig-renderdoc-modified-7/ +Patch2: 0001-PCRE2.patch BuildRequires: Mesa-libGL-devel BuildRequires: autoconf BuildRequires: automake @@ -41,8 +44,9 @@ BuildRequires: libqt5-qtx11extras-devel BuildRequires: libxcb-devel BuildRequires: memory-constraints -BuildRequires: pcre-devel +BuildRequires: pcre2-devel BuildRequires: python3-devel +BuildRequires: unzip BuildRequires: vulkan-devel BuildRequires: xcb-util-keysyms-devel @@ -60,7 +64,7 @@ available for Vulkan, D3D11, D3D12, OpenGL, and OpenGL ES development. %prep -%autosetup -p1 -n renderdoc-%{version} +%autosetup -p1 -n renderdoc-%{version} -a 1 %build %limit_build -m 1750 @@ -71,7 +75,7 @@ -DLIB_SUFFIX=64 \ %endif -DQMAKE_QT5_COMMAND=qmake-qt5 \ - -DRENDERDOC_SWIG_PACKAGE=%{_sourcedir}/renderdoc-modified-7.zip \ + -DRENDERDOC_SWIG_PACKAGE=%{_builddir}/%{name}-%{version}/swig-renderdoc-modified-7 \ -DENABLE_GL=YES \ -DENABLE_VULKAN=YES \ -DENABLE_XCB=YES \ ++++++ 0001-PCRE2.patch ++++++ >From 9e0d3ac10d6630c7ba71fd482c8dbaeaa1ebaf9c Mon Sep 17 00:00:00 2001 From: Julien Schueller <schuel...@phimeca.com> Date: Tue, 4 Jan 2022 13:50:02 +0100 Subject: [PATCH] PCRE2 Closes #2120 (cherry picked from commit 15515f390c5e3316a7faf0cf85d661a297d45a50) --- Source/Swig/misc.c | 41 ++++++++++++++++++++++++------------- Source/Swig/naming.c | 22 ++++++++++++-------- Tools/cmake/FindPCRE2.cmake | 21 +++++++++++++++++++ configure.ac | 19 +++++++++-------- 4 files changed, 72 insertions(+), 31 deletions(-) create mode 100644 Tools/cmake/FindPCRE2.cmake diff --git a/swig-renderdoc-modified-7/Source/Swig/misc.c b/swig-renderdoc-modified-7/Source/Swig/misc.c index 91f05c0a2288..c63f0a6c0da1 100644 --- a/swig-renderdoc-modified-7/Source/Swig/misc.c +++ b/swig-renderdoc-modified-7/Source/Swig/misc.c @@ -1269,7 +1269,8 @@ void Swig_offset_string(String *s, int number) { #ifdef HAVE_PCRE -#include <pcre.h> +#define PCRE2_CODE_UNIT_WIDTH 8 +#include <pcre2.h> static int split_regex_pattern_subst(String *s, String **pattern, String **subst, const char **input) { @@ -1331,7 +1332,7 @@ static void copy_with_maybe_case_conversion(String *dst, const char *src, int le } } -String *replace_captures(int num_captures, const char *input, String *subst, int captures[], String *pattern, String *s) +String *replace_captures(int num_captures, const char *input, String *subst, size_t captures[], String *pattern, String *s) { int convertCase = 0, convertNextOnly = 0; String *result = NewStringEmpty(); @@ -1353,7 +1354,7 @@ String *replace_captures(int num_captures, const char *input, String *subst, int } else if (isdigit((unsigned char)*p)) { int group = *p++ - '0'; if (group < num_captures) { - int l = captures[group*2], r = captures[group*2 + 1]; + int l = (int)captures[group*2], r = (int)captures[group*2 + 1]; if (l != -1) { copy_with_maybe_case_conversion(result, input + l, r - l, &convertCase, convertNextOnly); } @@ -1405,26 +1406,31 @@ String *Swig_string_regex(String *s) { const int pcre_options = 0; String *res = 0; - pcre *compiled_pat = 0; - const char *pcre_error, *input; - int pcre_errorpos; + pcre2_code *compiled_pat = 0; + const char *input; + PCRE2_UCHAR pcre_error[256]; + int pcre_errornum; + size_t pcre_errorpos; String *pattern = 0, *subst = 0; - int captures[30]; - + size_t *captures = 0; + pcre2_match_data *match_data = 0; if (split_regex_pattern_subst(s, &pattern, &subst, &input)) { int rc; - compiled_pat = pcre_compile( - Char(pattern), pcre_options, &pcre_error, &pcre_errorpos, NULL); + compiled_pat = pcre2_compile( + (PCRE2_SPTR8)Char(pattern), PCRE2_ZERO_TERMINATED, pcre_options, &pcre_errornum, &pcre_errorpos, NULL); if (!compiled_pat) { + pcre2_get_error_message (pcre_errornum, pcre_error, sizeof pcre_error); Swig_error("SWIG", Getline(s), "PCRE compilation failed: '%s' in '%s':%i.\n", pcre_error, Char(pattern), pcre_errorpos); exit(1); } - rc = pcre_exec(compiled_pat, NULL, input, (int)strlen(input), 0, 0, captures, 30); + match_data = pcre2_match_data_create_from_pattern (compiled_pat, NULL); + rc = pcre2_match(compiled_pat, (PCRE2_SPTR8)input, PCRE2_ZERO_TERMINATED, 0, 0, match_data, NULL); + captures = pcre2_get_ovector_pointer (match_data); if (rc >= 0) { res = replace_captures(rc, input, subst, captures, pattern, s); - } else if (rc != PCRE_ERROR_NOMATCH) { + } else if (rc != PCRE2_ERROR_NOMATCH) { Swig_error("SWIG", Getline(s), "PCRE execution failed: error %d while matching \"%s\" using \"%s\".\n", rc, Char(pattern), input); exit(1); @@ -1433,12 +1439,19 @@ String *Swig_string_regex(String *s) { DohDelete(pattern); DohDelete(subst); - pcre_free(compiled_pat); + pcre2_code_free(compiled_pat); + pcre2_match_data_free(match_data); return res ? res : NewStringEmpty(); } String *Swig_pcre_version(void) { - return NewStringf("PCRE Version: %s", pcre_version()); + int len = pcre2_config(PCRE2_CONFIG_VERSION, NULL); + char *buf = malloc(len); + String *result; + pcre2_config(PCRE2_CONFIG_VERSION, buf); + result = NewStringf("PCRE Version: %s", buf); + free(buf); + return result; } #else diff --git a/swig-renderdoc-modified-7/Source/Swig/naming.c b/swig-renderdoc-modified-7/Source/Swig/naming.c index ce1dbe8062c5..7b5c93e29662 100644 --- a/swig-renderdoc-modified-7/Source/Swig/naming.c +++ b/swig-renderdoc-modified-7/Source/Swig/naming.c @@ -1092,26 +1092,32 @@ static DOH *get_lattr(Node *n, List *lattr) { } #ifdef HAVE_PCRE -#include <pcre.h> +#define PCRE2_CODE_UNIT_WIDTH 8 +#include <pcre2.h> static int name_regexmatch_value(Node *n, String *pattern, String *s) { - pcre *compiled_pat; - const char *err; - int errpos; + pcre2_code *compiled_pat; + PCRE2_UCHAR err[256]; + int errornum; + size_t errpos; int rc; - compiled_pat = pcre_compile(Char(pattern), 0, &err, &errpos, NULL); + compiled_pat = pcre2_compile((PCRE2_SPTR8)Char(pattern), PCRE2_ZERO_TERMINATED, 0, &errornum, &errpos, NULL); if (!compiled_pat) { + pcre2_get_error_message (errornum, err, sizeof err); Swig_error("SWIG", Getline(n), "Invalid regex \"%s\": compilation failed at %d: %s\n", Char(pattern), errpos, err); exit(1); } - rc = pcre_exec(compiled_pat, NULL, Char(s), Len(s), 0, 0, NULL, 0); - pcre_free(compiled_pat); + pcre2_match_data *match_data = 0; + match_data = pcre2_match_data_create_from_pattern (compiled_pat, NULL); + rc = pcre2_match(compiled_pat, (PCRE2_SPTR8)Char(s), PCRE2_ZERO_TERMINATED, 0, 0, match_data, 0); + pcre2_code_free(compiled_pat); + pcre2_match_data_free(match_data); - if (rc == PCRE_ERROR_NOMATCH) + if (rc == PCRE2_ERROR_NOMATCH) return 0; if (rc < 0 ) { diff --git a/swig-renderdoc-modified-7/Tools/cmake/FindPCRE2.cmake b/swig-renderdoc-modified-7/Tools/cmake/FindPCRE2.cmake new file mode 100644 index 000000000000..08c21634745d --- /dev/null +++ b/swig-renderdoc-modified-7/Tools/cmake/FindPCRE2.cmake @@ -0,0 +1,21 @@ +# - Find PCRE2 +# Perl Compatible Regular Expressions +# https://www.pcre.org/ + +# The following variables are set: +# PCRE2_FOUND - System has the PCRE library +# PCRE2_LIBRARIES - The PCRE library file +# PCRE2_INCLUDE_DIRS - The folder with the PCRE headers + +find_library(PCRE2_LIBRARY NAMES pcre2 pcre2-8) +find_path(PCRE2_INCLUDE_DIR pcre2.h) + +set (PCRE2_LIBRARIES ${PCRE2_LIBRARY}) +set (PCRE2_INCLUDE_DIRS ${PCRE2_INCLUDE_DIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(PCRE2 DEFAULT_MSG PCRE2_LIBRARIES PCRE2_INCLUDE_DIRS) + +mark_as_advanced ( + PCRE2_LIBRARY + PCRE2_INCLUDE_DIR) diff --git a/swig-renderdoc-modified-7/configure.ac b/swig-renderdoc-modified-7/configure.ac index 4e8abde5fd7e..3e6e05c683b1 100644 --- a/swig-renderdoc-modified-7/configure.ac +++ b/swig-renderdoc-modified-7/configure.ac @@ -67,24 +67,24 @@ dnl To make configuring easier, check for a locally built PCRE using the Tools/p if test x"${with_pcre}" = xyes ; then AC_MSG_CHECKING([whether to use local PCRE]) local_pcre_config=no - if test -z $PCRE_CONFIG; then - if test -f `pwd`/pcre/pcre-swig-install/bin/pcre-config; then - PCRE_CONFIG=`pwd`/pcre/pcre-swig-install/bin/pcre-config - local_pcre_config=$PCRE_CONFIG + if test -z $PCRE2_CONFIG; then + if test -f `pwd`/pcre/pcre-swig-install/bin/pcre2-config; then + PCRE2_CONFIG=`pwd`/pcre/pcre-swig-install/bin/pcre2-config + local_pcre_config=$PCRE2_CONFIG fi fi AC_MSG_RESULT([$local_pcre_config]) fi AS_IF([test "x$with_pcre" != xno], - [AX_PATH_GENERIC([pcre], + [AX_PATH_GENERIC([pcre2], [], dnl Minimal version of PCRE we need -- accept any [], dnl custom sed script for version parsing is not needed [AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library]) - LIBS="$LIBS $PCRE_LIBS" - CPPFLAGS="$CPPFLAGS $PCRE_CFLAGS" + LIBS="$LIBS $PCRE2_LIBS" + CPPFLAGS="$CPPFLAGS $PCRE2_CFLAGS" ], [AC_MSG_FAILURE([ - Cannot find pcre-config script from PCRE (Perl Compatible Regular Expressions) + Cannot find pcre2-config script from PCRE (Perl Compatible Regular Expressions) library package. This dependency is needed for configure to complete, Either: - Install the PCRE developer package on your system (preferred approach). @@ -95,7 +95,8 @@ AS_IF([test "x$with_pcre" != xno], (quite easy and does not require privileges to install PCRE on your system) - Use configure --without-pcre to disable regular expressions support in SWIG (not recommended).]) - ]) + ], + [],[],[--libs8]) ]) -- 2.49.0