Sync from SUSE:SLFO:Main ldns revision 07f7a7562c3f49f3b707e4065afe8b28

This commit is contained in:
Adrian Schröter 2024-10-03 17:23:06 +02:00
parent 819856dd80
commit 84de951527
4 changed files with 111 additions and 2 deletions

33
ldns-swig-32bit.patch Normal file
View File

@ -0,0 +1,33 @@
From f91f61e10be595a6a46845112aaed7da24551bf9 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Fri, 26 Jan 2024 11:57:03 +0100
Subject: [PATCH] 32-bit compatibility for Python SWIG bindings
Upstream: https://github.com/NLnetLabs/ldns/pull/233
References: boo#1225794
The ssize_t type can be int instead of long, and the pointer
types are incompatible.
---
contrib/python/ldns.i | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/contrib/python/ldns.i b/contrib/python/ldns.i
index 881ba5e85..b4a740820 100644
--- a/contrib/python/ldns.i
+++ b/contrib/python/ldns.i
@@ -99,12 +99,14 @@
%typemap(in, noblock=1) (ssize_t)
{
int $1_res = 0;
- $1_res = SWIG_AsVal_long($input, &$1);
+ long val;
+ $1_res = SWIG_AsVal_long($input, &val);
if (!SWIG_IsOK($1_res)) {
SWIG_exception_fail(SWIG_ArgError($1_res), "in method '"
"$symname" "', argument " "$argnum" " of type '"
"$type""'");
}
+ $1 = val;
}

67
ldns-swig-4.2.patch Normal file
View File

@ -0,0 +1,67 @@
From daf38095763f758c77be538da25c267dc5cb73c8 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Fri, 26 Jan 2024 11:30:39 +0100
Subject: [PATCH] SWIG_Python_str_AsChar removal in SWIG 4.2.0
Upstream: https://github.com/NLnetLabs/ldns/pull/232
References: boo#1225794
The replacement, SWIG_PyUnicode_AsUTF8AndSize, has different
memory management requirements.
---
contrib/python/ldns_rdf.i | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/contrib/python/ldns_rdf.i b/contrib/python/ldns_rdf.i
index 5d7448fd..60daf1a7 100644
--- a/contrib/python/ldns_rdf.i
+++ b/contrib/python/ldns_rdf.i
@@ -56,7 +56,11 @@
*/
%typemap(arginit, noblock=1) const ldns_rdf *
{
+#if SWIG_VERSION >= 0x040200
+ PyObject *$1_bytes = NULL;
+#else
char *$1_str = NULL;
+#endif
}
/*
@@ -66,11 +70,17 @@
%typemap(in, noblock=1) const ldns_rdf * (void* argp, $1_ltype tmp = 0, int res)
{
if (Python_str_Check($input)) {
+ const char *argstr;
+#if SWIG_VERSION >= 0x040200
+ argstr = SWIG_PyUnicode_AsUTF8AndSize($input, NULL, &$1_bytes);
+#else
$1_str = SWIG_Python_str_AsChar($input);
- if ($1_str == NULL) {
+ argstr = $1_str;
+#endif
+ if (argstr == NULL) {
%argument_fail(SWIG_TypeError, "char *", $symname, $argnum);
}
- tmp = ldns_dname_new_frm_str($1_str);
+ tmp = ldns_dname_new_frm_str(argstr);
if (tmp == NULL) {
%argument_fail(SWIG_TypeError, "char *", $symname, $argnum);
}
@@ -90,10 +100,17 @@
*/
%typemap(freearg, noblock=1) const ldns_rdf *
{
+#if SWIG_VERSION >= 0x040200
+ if ($1_bytes != NULL) {
+ /* Is not NULL only when a conversion form string occurred. */
+ Py_XDECREF($1_bytes);
+ }
+#else
if ($1_str != NULL) {
/* Is not NULL only when a conversion form string occurred. */
SWIG_Python_str_DelForPy3($1_str); /* Is a empty macro for Python < 3. */
}
+#endif
}
%nodefaultctor ldns_struct_rdf; /* No default constructor. */

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Wed Jul 10 13:43:44 UTC 2024 - Martin Jambor <mjambor@suse.com>
- Added ldns-swig-4.2.patch and ldns-swig-32bit.patch in order to
avoid C99 viloations which are compile time errors by default with
GCC 14. [boo#1225794]
-------------------------------------------------------------------
Fri Sep 2 19:37:42 UTC 2022 - Michael Ströder <michael@stroeder.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package ldns
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -27,6 +27,8 @@ URL: https://www.nlnetlabs.nl/projects/ldns/
Source: https://www.nlnetlabs.nl/downloads/ldns/ldns-%{version}.tar.gz
Source1: https://www.nlnetlabs.nl/downloads/ldns/ldns-%{version}.tar.gz.asc
Source2: ldns.keyring
Patch0: ldns-swig-4.2.patch
Patch1: ldns-swig-32bit.patch
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: libopenssl-devel
@ -85,7 +87,7 @@ Requires: %{libname} >= %{version}
Perl bindings for the ldns library.
%prep
%autosetup
%autosetup -p1
%build
export CFLAGS="%{optflags} -fno-strict-aliasing"