git: 49b7f1c6cb2e - main - sysutils/libdnf: Fix regex and duplicate rtti

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 25 Aug 2023 03:01:12 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=49b7f1c6cb2e742931b85e49d532b8993c4eeb61

commit 49b7f1c6cb2e742931b85e49d532b8993c4eeb61
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-08-25 02:58:46 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-08-25 03:01:10 +0000

    sysutils/libdnf: Fix regex and duplicate rtti
    
    PR:             273044
---
 sysutils/libdnf/Makefile                            |  1 +
 .../files/patch-bindings_python_____init____.py     | 21 +++++++++++++++++++++
 .../files/patch-libdnf_repo_DependencySplitter.cpp  | 14 ++++++++++++++
 3 files changed, 36 insertions(+)

diff --git a/sysutils/libdnf/Makefile b/sysutils/libdnf/Makefile
index d148cd9f1071..ddd0771ee1ee 100644
--- a/sysutils/libdnf/Makefile
+++ b/sysutils/libdnf/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	libdnf
 DISTVERSION=	0.70.2
+PORTREVISION=	1
 CATEGORIES=	sysutils
 
 MAINTAINER=	yuri@FreeBSD.org
diff --git a/sysutils/libdnf/files/patch-bindings_python_____init____.py b/sysutils/libdnf/files/patch-bindings_python_____init____.py
new file mode 100644
index 000000000000..bec3b2534377
--- /dev/null
+++ b/sysutils/libdnf/files/patch-bindings_python_____init____.py
@@ -0,0 +1,21 @@
+- from https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273044
+- fix regex and duplicate rtti
+
+--- bindings/python/__init__.py.orig	2023-07-28 12:49:18 UTC
++++ bindings/python/__init__.py
+@@ -6,11 +6,14 @@ from . import error
+ import sys, os
+ sys.setdlopenflags(os.RTLD_NOW | os.RTLD_GLOBAL)
+ from . import error
+-sys.setdlopenflags(os.RTLD_NOW)
+ 
++# Other modules also need to be loaded with RTLD_GLOBAL to preserve uniqueness
++# of RTTI.  There are code paths where an exception thrown in one module is
++# supposed to be caught in another.
+ from . import common_types
+ from . import conf
+ from . import module
+ from . import repo
+ from . import transaction
+ from . import utils
++sys.setdlopenflags(os.RTLD_NOW)
diff --git a/sysutils/libdnf/files/patch-libdnf_repo_DependencySplitter.cpp b/sysutils/libdnf/files/patch-libdnf_repo_DependencySplitter.cpp
new file mode 100644
index 000000000000..a6d20c22d23d
--- /dev/null
+++ b/sysutils/libdnf/files/patch-libdnf_repo_DependencySplitter.cpp
@@ -0,0 +1,14 @@
+- from https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273044
+- fix regex and duplicate rtti
+
+--- libdnf/repo/DependencySplitter.cpp.orig	2023-07-28 12:49:18 UTC
++++ libdnf/repo/DependencySplitter.cpp
+@@ -29,7 +29,7 @@ static const Regex RELDEP_REGEX = 
+ namespace libdnf {
+ 
+ static const Regex RELDEP_REGEX = 
+-    Regex("^(\\S*)\\s*(<=|>=|<|>|=|==)?\\s*(\\S*)$", REG_EXTENDED);
++    Regex("^([^[:space:]]*)[[:space:]]*(<=|>=|<|>|=|==)?[[:space:]]*([^[:space:]]*)$", REG_EXTENDED);
+ 
+ static bool
+ getCmpFlags(int *cmp_type, std::string matchCmpType)