public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/unbound] f43: Update to 1.26.0 (rhbz#2510931)
@ 2026-08-07 11:01 Fedor Vorobev
  0 siblings, 0 replies; only message in thread
From: Fedor Vorobev @ 2026-08-07 11:01 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/unbound
Branch : f43
Commit : 90b091a6dc1716658c87e6e09e19a066d2b7b9db
Author : Fedor Vorobev <fvorobev@redhat.com>
Date   : 2026-08-07T13:00:53+02:00
Stats  : +227/-3 in 4 file(s)
URL    : https://src.fedoraproject.org/rpms/unbound/c/90b091a6dc1716658c87e6e09e19a066d2b7b9db?branch=f43

Log:
Update to 1.26.0 (rhbz#2510931)

---
diff --git a/sources b/sources
index 0a16ad8..e8b51b4 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (unbound-1.25.2.tar.gz) = f442105849db8d6f7bfb2d8130cd6772e3850ca36c9275fda99c659d0851f7ae3aee0c927bad756bdf5fbe83379e8a058f00fd5c50eedfe5fbe73b4d3ae0e222
-SHA512 (unbound-1.25.2.tar.gz.asc) = 4878caf1df8b41693cd32a61e7ead1b7fd26a866e5075085a55e5095ff6ed7eb5b63447f91ba814d4535c212cb13ede0651a3529f42a185535b28013c57df1ea
+SHA512 (unbound-1.26.0.tar.gz) = d061a4fd89b83e9e2c122b4479547f86548856710c801df01ce0aff8f0b4df9a61760cb7418b8ba7c79d504e6af49d7affc480f0730890bc818709007a931efd
+SHA512 (unbound-1.26.0.tar.gz.asc) = 9df080db5b74faeed42b8d03ca420aa9c276677f77472b0c02408fe2ca8c09e83667f11ff3349d379c1710aebadd0ff5d684cb993b855511031eade41bd0cb28

diff --git a/unbound-1.26.0-disabled-ipsecmod-fix.patch b/unbound-1.26.0-disabled-ipsecmod-fix.patch
new file mode 100644
index 0000000..ad79047
--- /dev/null
+++ b/unbound-1.26.0-disabled-ipsecmod-fix.patch
@@ -0,0 +1,48 @@
+From f63771f3afe8a5d1f9bbb89030937e9393366dea Mon Sep 17 00:00:00 2001
+From: "W.C.A. Wijngaards" <wouter@nlnetlabs.nl>
+Date: Thu, 6 Aug 2026 09:46:18 +0200
+Subject: [PATCH] - Fix #1487: regression in 1.26.0, ipsecmod is now always
+ partly enabled.
+
+---
+ ipsecmod/ipsecmod.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/ipsecmod/ipsecmod.c b/ipsecmod/ipsecmod.c
+index d1c0d44..71b42f1 100644
+--- a/ipsecmod/ipsecmod.c
++++ b/ipsecmod/ipsecmod.c
+@@ -59,6 +59,11 @@
+ static int
+ ipsecmod_apply_cfg(struct ipsecmod_env* ipsecmod_env, struct config_file* cfg)
+ {
++	if(cfg->ipsecmod_whitelist &&
++		!ipsecmod_whitelist_apply_cfg(ipsecmod_env, cfg))
++		return 0;
++	if(!cfg->ipsecmod_enabled)
++		return 1;
+ 	if(!cfg->ipsecmod_hook || (cfg->ipsecmod_hook && !cfg->ipsecmod_hook[0])) {
+ 		log_err("ipsecmod: missing ipsecmod-hook.");
+ 		return 0;
+@@ -68,9 +73,6 @@ ipsecmod_apply_cfg(struct ipsecmod_env* ipsecmod_env, struct config_file* cfg)
+ 			cfg->ipsecmod_hook, strerror(errno));
+ 		return 0;
+ 	}
+-	if(cfg->ipsecmod_whitelist &&
+-		!ipsecmod_whitelist_apply_cfg(ipsecmod_env, cfg))
+-		return 0;
+ 	return 1;
+ }
+ 
+@@ -626,6 +628,8 @@ ipsecmod_inform_super(struct module_qstate* qstate, int id,
+ 		verbose(VERB_ALGO, "super has no ipsecmod state");
+ 		return;
+ 	}
++	if(!siq->enabled)
++		return;
+ 
+ 	if(qstate->return_msg) {
+ 		struct ub_packed_rrset_key* rrset_key = reply_find_answer_rrset(
+-- 
+2.55.0
+

diff --git a/unbound-1.26.0-replace-python2-c-api-macros.patch b/unbound-1.26.0-replace-python2-c-api-macros.patch
new file mode 100644
index 0000000..333ed80
--- /dev/null
+++ b/unbound-1.26.0-replace-python2-c-api-macros.patch
@@ -0,0 +1,172 @@
+From a04cf5ade4d31b3c1dcefa35c2974cc76adaf4f3 Mon Sep 17 00:00:00 2001
+From: "W.C.A. Wijngaards" <wouter@nlnetlabs.nl>
+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.
+
+---
+ pythonmod/interface.i | 28 ++++++++++++++--------------
+ pythonmod/pythonmod.c |  8 ++++----
+ 2 files changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/pythonmod/interface.i b/pythonmod/interface.i
+index 735f2ed..7e2a188 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 045dd1b..1aef556 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
+

diff --git a/unbound.spec b/unbound.spec
index 7de8e8b..82856c6 100644
--- a/unbound.spec
+++ b/unbound.spec
@@ -42,7 +42,7 @@
 
 Summary: Validating, recursive, and caching DNS(SEC) resolver
 Name: unbound
-Version: 1.25.2
+Version: 1.26.0
 Release: %autorelease %{?extra_version:-e %{extra_version}}
 License: BSD-3-Clause
 Url: https://nlnetlabs.nl/projects/unbound/
@@ -79,6 +79,10 @@ Source30: tmpfiles-unbound-libs.conf
 
 # Downstream configuration changes
 Patch1:   unbound-fedora-config.patch
+# https://github.com/NLnetLabs/unbound/commit/8b33c5d7ffb82d442f3d19021588449cd6b02a17
+Patch6:   unbound-1.26.0-disabled-ipsecmod-fix.patch
+# https://github.com/cgallred/unbound/commit/93a56205cfa6b9a6d34db7245aa71e5ca67d1fd7
+Patch7:   unbound-1.26.0-replace-python2-c-api-macros.patch
 
 BuildRequires: gcc, make
 BuildRequires: openssl-devel

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-07 11:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 11:01 [rpms/unbound] f43: Update to 1.26.0 (rhbz#2510931) Fedor Vorobev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox