Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package unbound for openSUSE:Factory checked in at 2026-08-21 16:50:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/unbound (Old) and /work/SRC/openSUSE:Factory/.unbound.new.1258 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "unbound" Fri Aug 21 16:50:07 2026 rev:85 rq:1371254 version:1.26.0 Changes: -------- +++ only whitespace diff in changes, re-diffing --- /work/SRC/openSUSE:Factory/unbound/unbound.changes 2026-08-05 17:46:47.730457460 +0200 +++ /work/SRC/openSUSE:Factory/.unbound.new.1258/unbound.changes 2026-08-21 16:50:42.017363937 +0200 @@ -1,0 +2,6 @@ +Fri Aug 14 18:15:45 UTC 2026 - Jorik Cronenberg <[email protected]> + +- Add patch to fix build issue with swig 4.5 + [unbound-swig-4.5-compat.patch] + +------------------------------------------------------------------- New: ---- unbound-swig-4.5-compat.patch ----------(New B)---------- New:/work/SRC/openSUSE:Factory/.unbound.new.1258/unbound.changes-- Add patch to fix build issue with swig 4.5 /work/SRC/openSUSE:Factory/.unbound.new.1258/unbound.changes: [unbound-swig-4.5-compat.patch] /work/SRC/openSUSE:Factory/.unbound.new.1258/unbound.changes- ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ unbound.spec ++++++ --- /var/tmp/diff_new_pack.1kJPgL/_old 2026-08-21 16:50:43.749426142 +0200 +++ /var/tmp/diff_new_pack.1kJPgL/_new 2026-08-21 16:50:43.755426358 +0200 @@ -101,6 +101,7 @@ Source18: unbound-anchor.service Source19: unbound.sysusers Source20: tmpfiles-unbound-anchor.conf +Patch0: unbound-swig-4.5-compat.patch Summary: Validating, recursive, and caching DNS(SEC) resolver License: BSD-3-Clause ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.1kJPgL/_old 2026-08-21 16:50:43.847429662 +0200 +++ /var/tmp/diff_new_pack.1kJPgL/_new 2026-08-21 16:50:43.853429878 +0200 @@ -1,6 +1,6 @@ -mtime: 1785835093 -commit: 61ced9f7147eb4806b466e2d3ec9408dada30d7784a00dbc2eb26f0036fb47d0 +mtime: 1786731462 +commit: 0627ec6275e6309d09008e1cbd8f9dbce1abb084bb7d240b706739164febec84 url: https://src.opensuse.org/dns/unbound -revision: 61ced9f7147eb4806b466e2d3ec9408dada30d7784a00dbc2eb26f0036fb47d0 +revision: 0627ec6275e6309d09008e1cbd8f9dbce1abb084bb7d240b706739164febec84 projectscmsync: https://src.opensuse.org/dns/_ObsPrj.git ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-08-14 20:17:42.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ unbound-swig-4.5-compat.patch ++++++ >From 93a56205cfa6b9a6d34db7245aa71e5ca67d1fd7 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" <[email protected]> Date: Fri, 7 Aug 2026 08:57:32 +0200 Subject: [PATCH] - Fix #1489 from jplesnik: Replace removed Python 2 C API macros for SWIG 4.5.0 compatibility. --- doc/Changelog | 4 ++++ pythonmod/interface.i | 28 ++++++++++++++-------------- pythonmod/pythonmod.c | 8 ++++---- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/pythonmod/interface.i b/pythonmod/interface.i index 735f2ed50..7e2a188aa 100644 --- a/pythonmod/interface.i +++ b/pythonmod/interface.i @@ -79,7 +79,7 @@ i+(int)((unsigned int)name[i]) < len) { memmove(buf, name + i + 1, (unsigned int)name[i]); buf[(unsigned int)name[i]] = 0; - PyList_SetItem(list, cnt, PyString_FromString(buf)); + PyList_SetItem(list, cnt, PyUnicode_FromString(buf)); } i += ((unsigned int)name[i]) + 1; cnt++; @@ -96,7 +96,7 @@ list = PyList_New(len); for (i=0; i < len; i++) { - PyList_SET_ITEM(list, i, PyString_FromString(array[i])); + PyList_SET_ITEM(list, i, PyUnicode_FromString(array[i])); } return list; } @@ -207,7 +207,7 @@ struct query_info { char buf[LDNS_MAX_DOMAINLEN]; buf[0] = '\0'; dname_str((uint8_t*)PyBytes_AsString(dname), buf); - return PyString_FromString(buf); + return PyUnicode_FromString(buf); } %} @@ -345,7 +345,7 @@ struct packed_rrset_data { PyObject* _get_data_rr_len(struct packed_rrset_data* d, int idx) { if ((d != NULL) && (idx >= 0) && ((size_t)idx < (d->count+d->rrsig_count))) - return PyInt_FromLong(d->rr_len[idx]); + return PyLong_FromLong(d->rr_len[idx]); return Py_None; } void _set_data_rr_ttl(struct packed_rrset_data* d, int idx, uint32_t ttl) @@ -357,7 +357,7 @@ struct packed_rrset_data { PyObject* _get_data_rr_ttl(struct packed_rrset_data* d, int idx) { if ((d != NULL) && (idx >= 0) && ((size_t)idx < (d->count+d->rrsig_count))) - return PyInt_FromLong(d->rr_ttl[idx]); + return PyLong_FromLong(d->rr_ttl[idx]); return Py_None; } PyObject* _get_data_rr_data(struct packed_rrset_data* d, int idx) { @@ -555,12 +555,12 @@ struct sockaddr_storage {}; if (ss->ss_family == AF_INET) { const struct sockaddr_in *sa4 = (struct sockaddr_in *)ss; - return PyInt_FromLong(ntohs(sa4->sin_port)); + return PyLong_FromLong(ntohs(sa4->sin_port)); } if (ss->ss_family == AF_INET6) { const struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *)ss; - return PyInt_FromLong(ntohs(sa6->sin6_port)); + return PyLong_FromLong(ntohs(sa6->sin6_port)); } return Py_None; @@ -574,7 +574,7 @@ struct sockaddr_storage {}; } sa6 = (struct sockaddr_in6 *)ss; - return PyInt_FromLong(ntohl(sa6->sin6_flowinfo)); + return PyLong_FromLong(ntohl(sa6->sin6_flowinfo)); } PyObject *_sockaddr_storage_scope_id(const struct sockaddr_storage *ss) { @@ -585,7 +585,7 @@ struct sockaddr_storage {}; } sa6 = (struct sockaddr_in6 *)ss; - return PyInt_FromLong(ntohl(sa6->sin6_scope_id)); + return PyLong_FromLong(ntohl(sa6->sin6_scope_id)); } %} @@ -661,7 +661,7 @@ struct edns_option { %inline %{ PyObject* _edns_option_opt_code_get(struct edns_option* option) { uint16_t opt_code = option->opt_code; - return PyInt_FromLong(opt_code); + return PyLong_FromLong(opt_code); } PyObject* _edns_option_opt_data_get(struct edns_option* option) { @@ -1627,7 +1627,7 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len, } result = PyObject_Call(func, py_args, py_kwargs); if (result) { - res = PyInt_AsLong(result); + res = PyLong_AsLong(result); } out: Py_XDECREF(py_edns); @@ -1711,7 +1711,7 @@ out: } result = PyObject_Call(func, py_args, py_kwargs); if (result) { - res = PyInt_AsLong(result); + res = PyLong_AsLong(result); } out: Py_XDECREF(py_qinfo); @@ -1765,7 +1765,7 @@ out: } result = PyObject_Call(func, py_args, py_kwargs); if (result) { - res = PyInt_AsLong(result); + res = PyLong_AsLong(result); } out: Py_XDECREF(py_qstate); @@ -1814,7 +1814,7 @@ out: } result = PyObject_Call(func, py_args, py_kwargs); if (result) { - res = PyInt_AsLong(result); + res = PyLong_AsLong(result); } out: Py_XDECREF(py_qstate); diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c index 045dd1bbd..1aef55612 100644 --- a/pythonmod/pythonmod.c +++ b/pythonmod/pythonmod.c @@ -246,14 +246,14 @@ log_py_err(void) } /* And it should be a string all ready to go - duplicate it. */ - if (!PyString_Check(obResult) && !PyUnicode_Check(obResult)) { + if (!PyBytes_Check(obResult) && !PyUnicode_Check(obResult)) { log_err("pythonmod: cannot print exception, " "StringIO.getvalue() result did not String_Check" " or Unicode_Check"); goto cleanup; } - if(PyString_Check(obResult)) { - result = PyString_AsString(obResult); + if(PyBytes_Check(obResult)) { + result = PyBytes_AsString(obResult); } else { ascstr = PyUnicode_AsASCIIString(obResult); result = PyBytes_AsString(ascstr); @@ -450,7 +450,7 @@ int pythonmod_init(struct module_env* env, int id) pe->data = PyDict_New(); /* add the script filename to the global "mod_env" for trivial access */ - fname = PyString_FromString(pe->fname); + fname = PyUnicode_FromString(pe->fname); if(PyDict_SetItemString(pe->data, "script", fname) < 0) { log_err("pythonmod: could not add item to dictionary"); Py_XDECREF(fname); -- 2.55.0
