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