summaryrefslogtreecommitdiff
path: root/net-libs/ldns/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-02-06 11:42:16 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-02-06 11:42:16 +0000
commita03b2fe2d845ae950995bf1c5255da420cbd92d2 (patch)
tree7c05b96187cce0c598ea9af9fe03ab294f4df6e5 /net-libs/ldns/files
parent9e0addc1cf71ebec277b59e38eb3fa30e650cf9f (diff)
gentoo auto-resync : 06:02:2024 - 11:42:15
Diffstat (limited to 'net-libs/ldns/files')
-rw-r--r--net-libs/ldns/files/ldns-1.8.3-swig-4.2.0.patch101
1 files changed, 101 insertions, 0 deletions
diff --git a/net-libs/ldns/files/ldns-1.8.3-swig-4.2.0.patch b/net-libs/ldns/files/ldns-1.8.3-swig-4.2.0.patch
new file mode 100644
index 000000000000..8165371d53bb
--- /dev/null
+++ b/net-libs/ldns/files/ldns-1.8.3-swig-4.2.0.patch
@@ -0,0 +1,101 @@
+https://bugs.gentoo.org/921302
+https://github.com/NLnetLabs/ldns/pull/232
+https://github.com/NLnetLabs/ldns/pull/233
+
+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
+
+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. */
+
+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
+
+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;
+ }
+
+