diff --git a/ldns-swig-32bit.patch b/ldns-swig-32bit.patch new file mode 100644 index 0000000..d52af20 --- /dev/null +++ b/ldns-swig-32bit.patch @@ -0,0 +1,33 @@ +From f91f61e10be595a6a46845112aaed7da24551bf9 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +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; + } + + diff --git a/ldns-swig-4.2.patch b/ldns-swig-4.2.patch new file mode 100644 index 0000000..472b9d5 --- /dev/null +++ b/ldns-swig-4.2.patch @@ -0,0 +1,67 @@ +From daf38095763f758c77be538da25c267dc5cb73c8 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +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. */ diff --git a/ldns.changes b/ldns.changes index 383be4b..3ddbe75 100644 --- a/ldns.changes +++ b/ldns.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Jul 10 13:43:44 UTC 2024 - Martin Jambor + +- 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 diff --git a/ldns.spec b/ldns.spec index acc59bc..57acfaf 100644 --- a/ldns.spec +++ b/ldns.spec @@ -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"