* [PATCH] swig: upgrade 4.4.1 -> 4.5.0
@ 2026-08-10 15:45 Jaipaul Cheernam
2026-08-10 21:02 ` [OE-core] " Richard Purdie
` (3 more replies)
0 siblings, 4 replies; 19+ messages in thread
From: Jaipaul Cheernam @ 2026-08-10 15:45 UTC (permalink / raw)
To: openembedded-core; +Cc: Jaipaul Cheernam
ChangeLog: https://www.swig.org/Release/CHANGES.current
Release Notes: https://www.swig.org/Release/RELEASENOTES
CompareLog: https://github.com/swig/swig/compare/v4.4.1...v4.5.0
- Refresh determinism.patch
Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
---
.../swig/swig/determinism.patch | 20 +++++++++----------
.../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 ++--
2 files changed, 12 insertions(+), 12 deletions(-)
rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%)
diff --git a/meta/recipes-devtools/swig/swig/determinism.patch b/meta/recipes-devtools/swig/swig/determinism.patch
index d6af38248d..9b021091cd 100644
--- a/meta/recipes-devtools/swig/swig/determinism.patch
+++ b/meta/recipes-devtools/swig/swig/determinism.patch
@@ -1,26 +1,26 @@
-From 7df78bedb666e49131c48f1854c6be1597bd133c Mon Sep 17 00:00:00 2001
+From 218e2a20ff978cb28fefdf7b35af8a27768df4db Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Mon, 1 Mar 2021 00:11:10 +0000
+Date: Mon, 10 Aug 2026 11:13:20 +0000
Subject: [PATCH] swig: Fix reproducibility issue
Remove the compiler commandline/platform from the compiled binary as this
breaks reproducibilty.
-Upstream-Status: Inappropriate [OE reproducibiity fix upstream unlikely to take]
+Upstream-Status: Inappropriate [OE reproducibility fix upstream unlikely to take]
RP 2021/3/1
---
Source/Modules/main.cxx | 1 -
1 file changed, 1 deletion(-)
diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx
-index f68b609..0c2aba3 100644
+index 83ab22a..79a513a 100644
--- a/Source/Modules/main.cxx
+++ b/Source/Modules/main.cxx
-@@ -633,7 +633,6 @@ static void getoptions(int argc, char *argv[]) {
- }
+@@ -642,7 +642,6 @@ static void getoptions(int argc, char *argv[]) {
+ }
} else if (strcmp(argv[i], "-version") == 0 || strcmp(argv[1], "--version") == 0) {
- fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version());
-- fprintf(stdout, "\nCompiled with %s [%s]\n", SWIG_CXX, SWIG_PLATFORM);
- fprintf(stdout, "\nConfigured options: %cpcre\n",
+ fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version());
+- fprintf(stdout, "\nCompiled with %s [%s]\n", SWIG_CXX, SWIG_PLATFORM);
+ fprintf(stdout,
+ "\nConfigured options: %cpcre\n",
#ifdef HAVE_PCRE
- '+'
diff --git a/meta/recipes-devtools/swig/swig_4.4.1.bb b/meta/recipes-devtools/swig/swig_4.5.0.bb
similarity index 92%
rename from meta/recipes-devtools/swig/swig_4.4.1.bb
rename to meta/recipes-devtools/swig/swig_4.5.0.bb
index 842a7b0945..161c23f0af 100644
--- a/meta/recipes-devtools/swig/swig_4.4.1.bb
+++ b/meta/recipes-devtools/swig/swig_4.5.0.bb
@@ -13,9 +13,9 @@ SECTION = "devel"
DEPENDS = "libpcre2 bison-native"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
- file://determinism.patch \
+ file://determinism.patch \
"
-SRC_URI[sha256sum] = "40162a706c56f7592d08fd52ef5511cb7ac191f3593cf07306a0a554c6281fcf"
+SRC_URI[sha256sum] = "22ae0e887f8cca8031a325c67d005207653200b40e71edb3f88780e28e47d0ff"
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/swig/files/swig/"
UPSTREAM_CHECK_REGEX = "swig-(?P<pver>\d+(\.\d+)+)"
^ permalink raw reply related [flat|nested] 19+ messages in thread* Re: [OE-core] [PATCH] swig: upgrade 4.4.1 -> 4.5.0 2026-08-10 15:45 [PATCH] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam @ 2026-08-10 21:02 ` Richard Purdie 2026-08-11 6:12 ` [PATCH v2 0/2] " Jaipaul Cheernam ` (2 subsequent siblings) 3 siblings, 0 replies; 19+ messages in thread From: Richard Purdie @ 2026-08-10 21:02 UTC (permalink / raw) To: jaipaul.cheernam, openembedded-core On Mon, 2026-08-10 at 17:45 +0200, Jaipaul Cheernam via lists.openembedded.org wrote: > ChangeLog: https://www.swig.org/Release/CHANGES.current > > Release Notes: https://www.swig.org/Release/RELEASENOTES > > CompareLog: https://github.com/swig/swig/compare/v4.4.1...v4.5.0 > > - Refresh determinism.patch > > Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> > --- > .../swig/swig/determinism.patch | 20 +++++++++---------- > .../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 ++-- > 2 files changed, 12 insertions(+), 12 deletions(-) > rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%) Seems to break babeltrace2, e.g.: https://autobuilder.yoctoproject.org/valkyrie/#/builders/22/builds/4362 Cheers, Richard ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 0/2] swig: upgrade 4.4.1 -> 4.5.0 2026-08-10 15:45 [PATCH] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-10 21:02 ` [OE-core] " Richard Purdie @ 2026-08-11 6:12 ` Jaipaul Cheernam 2026-08-11 6:12 ` [PATCH v2 1/2] " Jaipaul Cheernam 2026-08-11 6:12 ` [PATCH v2 2/2] babeltrace2: fix build with swig 4.5.0 Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 3 siblings, 2 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 6:12 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam Upgrade swig to 4.5.0 and fix babeltrace2 build breakage caused by removal of Python 2 compatibility macros in the new swig version. Changes in v2: - Added babeltrace2 patch to fix SWIG 4.5.0 compatibility Jaipaul Cheernam (2): swig: upgrade 4.4.1 -> 4.5.0 babeltrace2: fix build with swig 4.5.0 .../swig/swig/determinism.patch | 20 +++--- .../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 +- ...Python-2-C-API-macros-for-SWIG-4.5.0.patch | 70 +++++++++++++++++++ .../recipes-kernel/lttng/babeltrace2_2.1.2.bb | 1 + 4 files changed, 83 insertions(+), 12 deletions(-) rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%) create mode 100644 meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 1/2] swig: upgrade 4.4.1 -> 4.5.0 2026-08-11 6:12 ` [PATCH v2 0/2] " Jaipaul Cheernam @ 2026-08-11 6:12 ` Jaipaul Cheernam 2026-08-11 10:25 ` [OE-core] " Richard Purdie 2026-08-11 6:12 ` [PATCH v2 2/2] babeltrace2: fix build with swig 4.5.0 Jaipaul Cheernam 1 sibling, 1 reply; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 6:12 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam ChangeLog: https://www.swig.org/Release/CHANGES.current Release Notes: https://www.swig.org/Release/RELEASENOTES CompareLog: https://github.com/swig/swig/compare/v4.4.1...v4.5.0 - Refresh determinism.patch Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- .../swig/swig/determinism.patch | 20 +++++++++---------- .../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%) diff --git a/meta/recipes-devtools/swig/swig/determinism.patch b/meta/recipes-devtools/swig/swig/determinism.patch index d6af38248d..9b021091cd 100644 --- a/meta/recipes-devtools/swig/swig/determinism.patch +++ b/meta/recipes-devtools/swig/swig/determinism.patch @@ -1,26 +1,26 @@ -From 7df78bedb666e49131c48f1854c6be1597bd133c Mon Sep 17 00:00:00 2001 +From 218e2a20ff978cb28fefdf7b35af8a27768df4db Mon Sep 17 00:00:00 2001 From: Richard Purdie <richard.purdie@linuxfoundation.org> -Date: Mon, 1 Mar 2021 00:11:10 +0000 +Date: Mon, 10 Aug 2026 11:13:20 +0000 Subject: [PATCH] swig: Fix reproducibility issue Remove the compiler commandline/platform from the compiled binary as this breaks reproducibilty. -Upstream-Status: Inappropriate [OE reproducibiity fix upstream unlikely to take] +Upstream-Status: Inappropriate [OE reproducibility fix upstream unlikely to take] RP 2021/3/1 --- Source/Modules/main.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx -index f68b609..0c2aba3 100644 +index 83ab22a..79a513a 100644 --- a/Source/Modules/main.cxx +++ b/Source/Modules/main.cxx -@@ -633,7 +633,6 @@ static void getoptions(int argc, char *argv[]) { - } +@@ -642,7 +642,6 @@ static void getoptions(int argc, char *argv[]) { + } } else if (strcmp(argv[i], "-version") == 0 || strcmp(argv[1], "--version") == 0) { - fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version()); -- fprintf(stdout, "\nCompiled with %s [%s]\n", SWIG_CXX, SWIG_PLATFORM); - fprintf(stdout, "\nConfigured options: %cpcre\n", + fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version()); +- fprintf(stdout, "\nCompiled with %s [%s]\n", SWIG_CXX, SWIG_PLATFORM); + fprintf(stdout, + "\nConfigured options: %cpcre\n", #ifdef HAVE_PCRE - '+' diff --git a/meta/recipes-devtools/swig/swig_4.4.1.bb b/meta/recipes-devtools/swig/swig_4.5.0.bb similarity index 92% rename from meta/recipes-devtools/swig/swig_4.4.1.bb rename to meta/recipes-devtools/swig/swig_4.5.0.bb index 842a7b0945..161c23f0af 100644 --- a/meta/recipes-devtools/swig/swig_4.4.1.bb +++ b/meta/recipes-devtools/swig/swig_4.5.0.bb @@ -13,9 +13,9 @@ SECTION = "devel" DEPENDS = "libpcre2 bison-native" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ - file://determinism.patch \ + file://determinism.patch \ " -SRC_URI[sha256sum] = "40162a706c56f7592d08fd52ef5511cb7ac191f3593cf07306a0a554c6281fcf" +SRC_URI[sha256sum] = "22ae0e887f8cca8031a325c67d005207653200b40e71edb3f88780e28e47d0ff" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/swig/files/swig/" UPSTREAM_CHECK_REGEX = "swig-(?P<pver>\d+(\.\d+)+)" ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [OE-core] [PATCH v2 1/2] swig: upgrade 4.4.1 -> 4.5.0 2026-08-11 6:12 ` [PATCH v2 1/2] " Jaipaul Cheernam @ 2026-08-11 10:25 ` Richard Purdie 2026-08-11 11:15 ` Jaipaul Cheernam 0 siblings, 1 reply; 19+ messages in thread From: Richard Purdie @ 2026-08-11 10:25 UTC (permalink / raw) To: jaipaul.cheernam, openembedded-core On Tue, 2026-08-11 at 08:12 +0200, Jaipaul Cheernam via lists.openembedded.org wrote: > ChangeLog: https://www.swig.org/Release/CHANGES.current > > Release Notes: https://www.swig.org/Release/RELEASENOTES > > CompareLog: https://github.com/swig/swig/compare/v4.4.1...v4.5.0 > > - Refresh determinism.patch > > Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> > --- > .../swig/swig/determinism.patch | 20 +++++++++---------- > .../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 ++-- > 2 files changed, 12 insertions(+), 12 deletions(-) > rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%) I suspect this breaks u-boot-tools: https://autobuilder.yoctoproject.org/valkyrie/#/builders/25/builds/4370 https://autobuilder.yoctoproject.org/valkyrie/#/builders/17/builds/4214 and maybe python3-dtc: https://autobuilder.yoctoproject.org/valkyrie/#/builders/89/builds/4188 Cheers, Richard ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [OE-core] [PATCH v2 1/2] swig: upgrade 4.4.1 -> 4.5.0 2026-08-11 10:25 ` [OE-core] " Richard Purdie @ 2026-08-11 11:15 ` Jaipaul Cheernam 0 siblings, 0 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 11:15 UTC (permalink / raw) To: Richard Purdie, openembedded-core [-- Attachment #1: Type: text/plain, Size: 1647 bytes --] Hi Richard, I will send v3 by fixing dtc and u-boot-tools. Note: The following recipes in meta-openembedded may also be affected if python/swig bindings are enabled: - gensio (meta-oe): fix available upstream [1] - unbound (meta-networking): fix available upstream [2] - ldns (meta-oe): fix pending upstream [3] [1]https://github.com/cminyard/gensio/commit/e024df7fc3d21896bd9d2e26964a0b59b7c2a91b [2]https://github.com/NLnetLabs/unbound/commit/93a56205cfa6b9a6d34db7245aa71e5ca67d1fd7 [3]https://github.com/NLnetLabs/ldns/issues/314 As they are not enabled now, will not provide a fix. Regards, Jaipaul On 2026-08-11 12:25, Richard Purdie wrote: > On Tue, 2026-08-11 at 08:12 +0200, Jaipaul Cheernam via lists.openembedded.org wrote: >> ChangeLog:https://www.swig.org/Release/CHANGES.current >> >> Release Notes:https://www.swig.org/Release/RELEASENOTES >> >> CompareLog:https://github.com/swig/swig/compare/v4.4.1...v4.5.0 >> >> - Refresh determinism.patch >> >> Signed-off-by: Jaipaul Cheernam<jaipaul.cheernam@est.tech> >> --- >> .../swig/swig/determinism.patch | 20 +++++++++---------- >> .../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 ++-- >> 2 files changed, 12 insertions(+), 12 deletions(-) >> rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%) > I suspect this breaks u-boot-tools: > > https://autobuilder.yoctoproject.org/valkyrie/#/builders/25/builds/4370 > https://autobuilder.yoctoproject.org/valkyrie/#/builders/17/builds/4214 > > and maybe python3-dtc: > > https://autobuilder.yoctoproject.org/valkyrie/#/builders/89/builds/4188 > > Cheers, > > Richard [-- Attachment #2: Type: text/html, Size: 11106 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 2/2] babeltrace2: fix build with swig 4.5.0 2026-08-11 6:12 ` [PATCH v2 0/2] " Jaipaul Cheernam 2026-08-11 6:12 ` [PATCH v2 1/2] " Jaipaul Cheernam @ 2026-08-11 6:12 ` Jaipaul Cheernam 1 sibling, 0 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 6:12 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam SWIG 4.5.0 removed Python 2/3 compatibility macros PyString_FromString and SWIG_Python_str_FromChar. Backport upstream fix that replaces both with PyUnicode_FromString. Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- ...Python-2-C-API-macros-for-SWIG-4.5.0.patch | 70 +++++++++++++++++++ .../recipes-kernel/lttng/babeltrace2_2.1.2.bb | 1 + 2 files changed, 71 insertions(+) create mode 100644 meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch diff --git a/meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch b/meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch new file mode 100644 index 0000000000..e0b042d62d --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch @@ -0,0 +1,70 @@ +From 1c59884d4d3c74d8ea7257d9cdc0fa4b533ae7b3 Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova <jplesnik@redhat.com> +Date: Mon, 28 Jul 2026 13:29:18 +0000 +Subject: [PATCH] bt2: replace removed Python 2 C API macros for SWIG 4.5.0 + compatibility + +SWIG 4.5.0 has removed some Python 2/3 compatibility macros. The two +that affect us are `PyString_FromString` and +`SWIG_Python_str_FromChar`, which are both replaced with +`PyUnicode_FromString`. + +Change-Id: I3c74d8ea7257d9cdc0fa4b533ae7b3a5ef9521d1 +Signed-off-by: Simon Marchi <simon.marchi@efficios.com> +Signed-off-by: Jitka Plesnikova <jplesnik@redhat.com> +Reviewed-on: https://review.lttng.org/c/babeltrace/+/18423 +Tested-by: jenkins <jenkins@lttng.org> +(cherry picked from commit 1c59884d4d3c74d8ea7257d9cdc0fa4b533ae7b3) + +Upstream-Status: Backport [https://github.com/efficios/babeltrace/commit/1c59884d4d] + +Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +--- + src/bindings/python/bt2/bt2/native_bt.i | 4 ++-- + src/bindings/python/bt2/bt2/native_bt_error.i.hpp | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/bindings/python/bt2/bt2/native_bt.i b/src/bindings/python/bt2/bt2/native_bt.i +index 7f8d9f699..1807d8ff6 100644 +--- a/src/bindings/python/bt2/bt2/native_bt.i ++++ b/src/bindings/python/bt2/bt2/native_bt.i +@@ -56,7 +56,7 @@ typedef uint64_t bt_listener_id; + * + * We initialize the output parameter `temp_value` to an invalid but non-zero + * pointer value. This is to make sure we don't rely on its initial value in +- * the epilogue (where we call SWIG_Python_str_FromChar). When they fail, ++ * the epilogue (where we call PyUnicode_FromString). When they fail, + * functions on which we apply this typemap don't guarantee that the value of + * `temp_value` will be unchanged or valid. + */ +@@ -67,7 +67,7 @@ typedef uint64_t bt_listener_id; + %typemap(argout) (const char **) { + if (*$1) { + /* SWIG_AppendOutput() steals the created object */ +- $result = SWIG_AppendOutput($result, SWIG_Python_str_FromChar(*$1)); ++ $result = SWIG_AppendOutput($result, PyUnicode_FromString(*$1)); + } else { + /* SWIG_AppendOutput() steals Py_None */ + Py_INCREF(Py_None); +diff --git a/src/bindings/python/bt2/bt2/native_bt_error.i.hpp b/src/bindings/python/bt2/bt2/native_bt_error.i.hpp +index ba8cef097..2be1e347c 100644 +--- a/src/bindings/python/bt2/bt2/native_bt_error.i.hpp ++++ b/src/bindings/python/bt2/bt2/native_bt_error.i.hpp +@@ -19,7 +19,7 @@ static PyObject *bt_bt2_format_bt_error_cause(const bt_error_cause *error_cause) + BT_COMMON_COLOR_WHEN_NEVER); + BT_ASSERT(error_cause_str); + +- py_error_cause_str = PyString_FromString(error_cause_str); ++ py_error_cause_str = PyUnicode_FromString(error_cause_str); + + g_free(error_cause_str); + +@@ -35,7 +35,7 @@ static PyObject *bt_bt2_format_bt_error(const bt_error *error) + BT_COMMON_COLOR_WHEN_NEVER); + BT_ASSERT(error_str); + +- py_error_str = PyString_FromString(error_str); ++ py_error_str = PyUnicode_FromString(error_str); + + g_free(error_str); + diff --git a/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb b/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb index 7c151bf729..9962ef377c 100644 --- a/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb +++ b/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb @@ -15,6 +15,7 @@ SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-2.1;protocol=http file://0001-Make-bt_field_blob_get_length-return-size_t-instead-.patch \ file://external-python-tests.patch \ file://0001-src-explicitly-only-build-shared-plugins.patch \ + file://0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch \ " SRCREV = "d0e946a71faf5f0c2d7f1fb5b92a369983e9cf10" UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>2(\.\d+)+)$" ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v3 0/4] swig: upgrade 4.4.1 -> 4.5.0 2026-08-10 15:45 [PATCH] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-10 21:02 ` [OE-core] " Richard Purdie 2026-08-11 6:12 ` [PATCH v2 0/2] " Jaipaul Cheernam @ 2026-08-11 11:11 ` Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 1/4] " Jaipaul Cheernam ` (3 more replies) 2026-08-11 13:51 ` [PATCH v4 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 3 siblings, 4 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 11:11 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam Upgrade swig to 4.5.0 and fix build breakage in recipes that used Python 2 C API macros removed in swig 4.5.0. Note: The following recipes in meta-openembedded may also be affected if python/swig bindings are enabled: - gensio (meta-oe): fix available upstream [1] - unbound (meta-networking): fix available upstream [2] - ldns (meta-oe): fix pending upstream [3] [1] https://github.com/cminyard/gensio/commit/e024df7fc3d21896bd9d2e26964a0b59b7c2a91b [2] https://github.com/NLnetLabs/unbound/commit/93a56205cfa6b9a6d34db7245aa71e5ca67d1fd7 [3] https://github.com/NLnetLabs/ldns/issues/314 Changes in v3: - Added u-boot-tools and python3-dtc patches to fix pylibfdt build Changes in v2: - Added babeltrace2 patch to fix SWIG 4.5.0 compatibility Jaipaul Cheernam (4): swig: upgrade 4.4.1 -> 4.5.0 babeltrace2: fix build with swig 4.5.0 u-boot-tools: fix pylibfdt build with swig 4.5.0 python3-dtc: fix build with swig 4.5.0 ...-removed-SWIG-Python-2-compatibility.patch | 57 +++++++++++++++ .../u-boot/u-boot-tools_2026.07.bb | 4 +- ...-removed-SWIG-Python-2-compatibility.patch | 57 +++++++++++++++ .../python/python3-dtc_1.8.1.bb | 1 + .../swig/swig/determinism.patch | 20 +++--- .../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 +- ...Python-2-C-API-macros-for-SWIG-4.5.0.patch | 70 +++++++++++++++++++ .../recipes-kernel/lttng/babeltrace2_2.1.2.bb | 1 + 8 files changed, 201 insertions(+), 13 deletions(-) create mode 100644 meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch create mode 100644 meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%) create mode 100644 meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v3 1/4] swig: upgrade 4.4.1 -> 4.5.0 2026-08-11 11:11 ` [PATCH v3 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam @ 2026-08-11 11:11 ` Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 2/4] babeltrace2: fix build with swig 4.5.0 Jaipaul Cheernam ` (2 subsequent siblings) 3 siblings, 0 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 11:11 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam ChangeLog: https://www.swig.org/Release/CHANGES.current Release Notes: https://www.swig.org/Release/RELEASENOTES CompareLog: https://github.com/swig/swig/compare/v4.4.1...v4.5.0 - Refresh determinism.patch Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- .../swig/swig/determinism.patch | 20 +++++++++---------- .../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%) diff --git a/meta/recipes-devtools/swig/swig/determinism.patch b/meta/recipes-devtools/swig/swig/determinism.patch index d6af38248d..9b021091cd 100644 --- a/meta/recipes-devtools/swig/swig/determinism.patch +++ b/meta/recipes-devtools/swig/swig/determinism.patch @@ -1,26 +1,26 @@ -From 7df78bedb666e49131c48f1854c6be1597bd133c Mon Sep 17 00:00:00 2001 +From 218e2a20ff978cb28fefdf7b35af8a27768df4db Mon Sep 17 00:00:00 2001 From: Richard Purdie <richard.purdie@linuxfoundation.org> -Date: Mon, 1 Mar 2021 00:11:10 +0000 +Date: Mon, 10 Aug 2026 11:13:20 +0000 Subject: [PATCH] swig: Fix reproducibility issue Remove the compiler commandline/platform from the compiled binary as this breaks reproducibilty. -Upstream-Status: Inappropriate [OE reproducibiity fix upstream unlikely to take] +Upstream-Status: Inappropriate [OE reproducibility fix upstream unlikely to take] RP 2021/3/1 --- Source/Modules/main.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx -index f68b609..0c2aba3 100644 +index 83ab22a..79a513a 100644 --- a/Source/Modules/main.cxx +++ b/Source/Modules/main.cxx -@@ -633,7 +633,6 @@ static void getoptions(int argc, char *argv[]) { - } +@@ -642,7 +642,6 @@ static void getoptions(int argc, char *argv[]) { + } } else if (strcmp(argv[i], "-version") == 0 || strcmp(argv[1], "--version") == 0) { - fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version()); -- fprintf(stdout, "\nCompiled with %s [%s]\n", SWIG_CXX, SWIG_PLATFORM); - fprintf(stdout, "\nConfigured options: %cpcre\n", + fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version()); +- fprintf(stdout, "\nCompiled with %s [%s]\n", SWIG_CXX, SWIG_PLATFORM); + fprintf(stdout, + "\nConfigured options: %cpcre\n", #ifdef HAVE_PCRE - '+' diff --git a/meta/recipes-devtools/swig/swig_4.4.1.bb b/meta/recipes-devtools/swig/swig_4.5.0.bb similarity index 92% rename from meta/recipes-devtools/swig/swig_4.4.1.bb rename to meta/recipes-devtools/swig/swig_4.5.0.bb index 842a7b0945..161c23f0af 100644 --- a/meta/recipes-devtools/swig/swig_4.4.1.bb +++ b/meta/recipes-devtools/swig/swig_4.5.0.bb @@ -13,9 +13,9 @@ SECTION = "devel" DEPENDS = "libpcre2 bison-native" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ - file://determinism.patch \ + file://determinism.patch \ " -SRC_URI[sha256sum] = "40162a706c56f7592d08fd52ef5511cb7ac191f3593cf07306a0a554c6281fcf" +SRC_URI[sha256sum] = "22ae0e887f8cca8031a325c67d005207653200b40e71edb3f88780e28e47d0ff" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/swig/files/swig/" UPSTREAM_CHECK_REGEX = "swig-(?P<pver>\d+(\.\d+)+)" ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v3 2/4] babeltrace2: fix build with swig 4.5.0 2026-08-11 11:11 ` [PATCH v3 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 1/4] " Jaipaul Cheernam @ 2026-08-11 11:11 ` Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 3/4] u-boot-tools: fix pylibfdt " Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 4/4] python3-dtc: fix " Jaipaul Cheernam 3 siblings, 0 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 11:11 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam SWIG 4.5.0 removed Python 2/3 compatibility macros PyString_FromString and SWIG_Python_str_FromChar. Backport upstream fix that replaces both with PyUnicode_FromString. Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- ...Python-2-C-API-macros-for-SWIG-4.5.0.patch | 70 +++++++++++++++++++ .../recipes-kernel/lttng/babeltrace2_2.1.2.bb | 1 + 2 files changed, 71 insertions(+) create mode 100644 meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch diff --git a/meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch b/meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch new file mode 100644 index 0000000000..e0b042d62d --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch @@ -0,0 +1,70 @@ +From 1c59884d4d3c74d8ea7257d9cdc0fa4b533ae7b3 Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova <jplesnik@redhat.com> +Date: Mon, 28 Jul 2026 13:29:18 +0000 +Subject: [PATCH] bt2: replace removed Python 2 C API macros for SWIG 4.5.0 + compatibility + +SWIG 4.5.0 has removed some Python 2/3 compatibility macros. The two +that affect us are `PyString_FromString` and +`SWIG_Python_str_FromChar`, which are both replaced with +`PyUnicode_FromString`. + +Change-Id: I3c74d8ea7257d9cdc0fa4b533ae7b3a5ef9521d1 +Signed-off-by: Simon Marchi <simon.marchi@efficios.com> +Signed-off-by: Jitka Plesnikova <jplesnik@redhat.com> +Reviewed-on: https://review.lttng.org/c/babeltrace/+/18423 +Tested-by: jenkins <jenkins@lttng.org> +(cherry picked from commit 1c59884d4d3c74d8ea7257d9cdc0fa4b533ae7b3) + +Upstream-Status: Backport [https://github.com/efficios/babeltrace/commit/1c59884d4d] + +Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +--- + src/bindings/python/bt2/bt2/native_bt.i | 4 ++-- + src/bindings/python/bt2/bt2/native_bt_error.i.hpp | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/bindings/python/bt2/bt2/native_bt.i b/src/bindings/python/bt2/bt2/native_bt.i +index 7f8d9f699..1807d8ff6 100644 +--- a/src/bindings/python/bt2/bt2/native_bt.i ++++ b/src/bindings/python/bt2/bt2/native_bt.i +@@ -56,7 +56,7 @@ typedef uint64_t bt_listener_id; + * + * We initialize the output parameter `temp_value` to an invalid but non-zero + * pointer value. This is to make sure we don't rely on its initial value in +- * the epilogue (where we call SWIG_Python_str_FromChar). When they fail, ++ * the epilogue (where we call PyUnicode_FromString). When they fail, + * functions on which we apply this typemap don't guarantee that the value of + * `temp_value` will be unchanged or valid. + */ +@@ -67,7 +67,7 @@ typedef uint64_t bt_listener_id; + %typemap(argout) (const char **) { + if (*$1) { + /* SWIG_AppendOutput() steals the created object */ +- $result = SWIG_AppendOutput($result, SWIG_Python_str_FromChar(*$1)); ++ $result = SWIG_AppendOutput($result, PyUnicode_FromString(*$1)); + } else { + /* SWIG_AppendOutput() steals Py_None */ + Py_INCREF(Py_None); +diff --git a/src/bindings/python/bt2/bt2/native_bt_error.i.hpp b/src/bindings/python/bt2/bt2/native_bt_error.i.hpp +index ba8cef097..2be1e347c 100644 +--- a/src/bindings/python/bt2/bt2/native_bt_error.i.hpp ++++ b/src/bindings/python/bt2/bt2/native_bt_error.i.hpp +@@ -19,7 +19,7 @@ static PyObject *bt_bt2_format_bt_error_cause(const bt_error_cause *error_cause) + BT_COMMON_COLOR_WHEN_NEVER); + BT_ASSERT(error_cause_str); + +- py_error_cause_str = PyString_FromString(error_cause_str); ++ py_error_cause_str = PyUnicode_FromString(error_cause_str); + + g_free(error_cause_str); + +@@ -35,7 +35,7 @@ static PyObject *bt_bt2_format_bt_error(const bt_error *error) + BT_COMMON_COLOR_WHEN_NEVER); + BT_ASSERT(error_str); + +- py_error_str = PyString_FromString(error_str); ++ py_error_str = PyUnicode_FromString(error_str); + + g_free(error_str); + diff --git a/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb b/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb index 7c151bf729..9962ef377c 100644 --- a/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb +++ b/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb @@ -15,6 +15,7 @@ SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-2.1;protocol=http file://0001-Make-bt_field_blob_get_length-return-size_t-instead-.patch \ file://external-python-tests.patch \ file://0001-src-explicitly-only-build-shared-plugins.patch \ + file://0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch \ " SRCREV = "d0e946a71faf5f0c2d7f1fb5b92a369983e9cf10" UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>2(\.\d+)+)$" ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v3 3/4] u-boot-tools: fix pylibfdt build with swig 4.5.0 2026-08-11 11:11 ` [PATCH v3 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 1/4] " Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 2/4] babeltrace2: fix build with swig 4.5.0 Jaipaul Cheernam @ 2026-08-11 11:11 ` Jaipaul Cheernam 2026-08-11 12:58 ` [OE-core] " Mathieu Dubois-Briand 2026-08-11 13:38 ` Quentin Schulz 2026-08-11 11:11 ` [PATCH v3 4/4] python3-dtc: fix " Jaipaul Cheernam 3 siblings, 2 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 11:11 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) from its runtime. Backport the dtc upstream fix to u-boot's bundled pylibfdt/libfdt.i to replace them with Python 3 equivalents. Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- ...-removed-SWIG-Python-2-compatibility.patch | 57 +++++++++++++++++++ .../u-boot/u-boot-tools_2026.07.bb | 4 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch diff --git a/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch b/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch new file mode 100644 index 0000000000..5fdccf5e9d --- /dev/null +++ b/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch @@ -0,0 +1,57 @@ +From 32378d7b4383a79d13da9005035600d8f0c8c29d Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova <jplesnik@redhat.com> +Date: Tue, 29 Jul 2026 05:55:56 +0000 +Subject: [PATCH] pylibfdt: Replace removed SWIG Python 2 compatibility macros + +SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) +from its runtime header pyhead.swg (see commit 79f7a2b7cb7d). Replace +them with their Python 3 C API equivalents: + +- PyString_FromString -> PyUnicode_FromString +- PyString_AsString -> PyBytes_AsString +- PyInt_AsLong -> PyLong_AsLong + +The replacements are safe since the macros were already aliased to +these exact functions in SWIG's Python 3 code path. + +Signed-off-by: Jitka Plesnikova <jplesnik@redhat.com> +Signed-off-by: Peter Robinson <pbrobinson@gmail.com> +Signed-off-by: David Gibson <david@gibson.dropbear.id.au> +(cherry picked from commit 5008d1d6a356b8d0a78060da2e1021507d529cff) + +Upstream-Status: Backport [https://github.com/dgibson/dtc/commit/5008d1d6a356b8d0a78060da2e1021507d529cff] + +Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +--- + scripts/dtc/pylibfdt/libfdt.i | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/scripts/dtc/pylibfdt/libfdt.i b/scripts/dtc/pylibfdt/libfdt.i +index 1f9c0471..b1cb9873 100644 +--- a/scripts/dtc/pylibfdt/libfdt.i ++++ b/scripts/dtc/pylibfdt/libfdt.i +@@ -1136,7 +1136,7 @@ typedef uint32_t fdt32_t; + PyObject *buff; + + if ($1) { +- resultobj = PyString_FromString( ++ resultobj = PyUnicode_FromString( + fdt_string(fdt1, fdt32_to_cpu($1->nameoff))); + buff = PyByteArray_FromStringAndSize( + (const char *)($1 + 1), fdt32_to_cpu($1->len)); +@@ -1169,13 +1169,13 @@ typedef uint32_t fdt32_t; + } + $1 = PyBytes_AsString($input); + %#else +- $1 = PyString_AsString($input); /* char *str */ ++ $1 = PyBytes_AsString($input); /* char *str */ + %#endif + } + + /* typemaps used for fdt_next_node() */ + %typemap(in, numinputs=1) int *depth (int depth) { +- depth = (int) PyInt_AsLong($input); ++ depth = (int) PyLong_AsLong($input); + $1 = &depth; + } + diff --git a/meta/recipes-bsp/u-boot/u-boot-tools_2026.07.bb b/meta/recipes-bsp/u-boot/u-boot-tools_2026.07.bb index 9e7a178310..ea90b726c5 100644 --- a/meta/recipes-bsp/u-boot/u-boot-tools_2026.07.bb +++ b/meta/recipes-bsp/u-boot/u-boot-tools_2026.07.bb @@ -1,4 +1,6 @@ require u-boot-common.inc require u-boot-tools.inc -SRC_URI += "file://0001-tools-mkeficapsule-Detect-GnuTLS-PKCS-11-support.patch" +SRC_URI += "file://0001-tools-mkeficapsule-Detect-GnuTLS-PKCS-11-support.patch \ + file://0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch \ + " ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [OE-core] [PATCH v3 3/4] u-boot-tools: fix pylibfdt build with swig 4.5.0 2026-08-11 11:11 ` [PATCH v3 3/4] u-boot-tools: fix pylibfdt " Jaipaul Cheernam @ 2026-08-11 12:58 ` Mathieu Dubois-Briand 2026-08-11 13:38 ` Quentin Schulz 1 sibling, 0 replies; 19+ messages in thread From: Mathieu Dubois-Briand @ 2026-08-11 12:58 UTC (permalink / raw) To: Jaipaul Cheernam, openembedded-core On Tue Aug 11, 2026 at 1:11 PM CEST, Jaipaul Cheernam wrote: > SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) > from its runtime. Backport the dtc upstream fix to u-boot's bundled > pylibfdt/libfdt.i to replace them with Python 3 equivalents. > > Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> > --- Hi Jaipaul, Thanks for your patch. Can you confirm this is based on today master? The u-boot patch fails to apply on my side: ERROR: u-boot-tools-1_2026.07-r0 do_patch: Applying patch '/srv/pokybuild/yocto-worker/musl-qemux86-64/build/layers/openembedded-core/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch' on target directory '/srv/pokybuild/yocto-worker/musl-qemux86-64/build/build/tmp/work/x86-64-v3-poky-linux-musl/u-boot-tools/2026.07/sources/u-boot-tools-2026.07' CmdError('quilt --quiltrc /srv/pokybuild/yocto-worker/musl-qemux86-64/build/build/tmp/work/x86-64-v3-poky-linux-musl/u-boot-tools/2026.07/recipe-sysroot-native/etc/quiltrc push', 1, "stdout: Applying patch 0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch can't find file to patch at input line 33 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |From 32378d7b4383a79d13da9005035600d8f0c8c29d Mon Sep 17 00:00:00 2001 |From: Jitka Plesnikova <jplesnik@redhat.com> |Date: Tue, 29 Jul 2026 05:55:56 +0000 |Subject: [PATCH] pylibfdt: Replace removed SWIG Python 2 compatibility macros | |SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) |from its runtime header pyhead.swg (see commit 79f7a2b7cb7d). Replace |them with their Python 3 C API equivalents: | |- PyString_FromString -> PyUnicode_FromString |- PyString_AsString -> PyBytes_AsString |- PyInt_AsLong -> PyLong_AsLong | |The replacements are safe since the macros were already aliased to |these exact functions in SWIG's Python 3 code path. | |Signed-off-by: Jitka Plesnikova <jplesnik@redhat.com> |Signed-off-by: Peter Robinson <pbrobinson@gmail.com> |Signed-off-by: David Gibson <david@gibson.dropbear.id.au> |(cherry picked from commit 5008d1d6a356b8d0a78060da2e1021507d529cff) | |Upstream-Status: Backport [https://github.com/dgibson/dtc/commit/5008d1d6a356b8d0a78060da2e1021507d529cff] | |Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> |--- | scripts/dtc/pylibfdt/libfdt.i | 6 +++--- | 1 file changed, 3 insertions(+), 3 deletions(-) | |diff --git a/scripts/dtc/pylibfdt/libfdt.i b/scripts/dtc/pylibfdt/libfdt.i |index 1f9c0471..b1cb9873 100644 |--- a/scripts/dtc/pylibfdt/libfdt.i |+++ b/scripts/dtc/pylibfdt/libfdt.i -------------------------- No file to patch. Skipping patch. 2 out of 2 hunks ignored Patch 0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch does not apply (enforce with -f) https://autobuilder.yoctoproject.org/valkyrie/#/builders/17/builds/4216 https://autobuilder.yoctoproject.org/valkyrie/#/builders/3/builds/4423 Thanks, Mathieu -- Mathieu Dubois-Briand, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [OE-core] [PATCH v3 3/4] u-boot-tools: fix pylibfdt build with swig 4.5.0 2026-08-11 11:11 ` [PATCH v3 3/4] u-boot-tools: fix pylibfdt " Jaipaul Cheernam 2026-08-11 12:58 ` [OE-core] " Mathieu Dubois-Briand @ 2026-08-11 13:38 ` Quentin Schulz 1 sibling, 0 replies; 19+ messages in thread From: Quentin Schulz @ 2026-08-11 13:38 UTC (permalink / raw) To: jaipaul.cheernam, openembedded-core Hi Jaipaul, On 8/11/26 1:11 PM, Jaipaul Cheernam via lists.openembedded.org wrote: > SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) > from its runtime. Backport the dtc upstream fix to u-boot's bundled > pylibfdt/libfdt.i to replace them with Python 3 equivalents. > > Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> > --- > ...-removed-SWIG-Python-2-compatibility.patch | 57 +++++++++++++++++++ > .../u-boot/u-boot-tools_2026.07.bb | 4 +- > 2 files changed, 60 insertions(+), 1 deletion(-) > create mode 100644 meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch > > diff --git a/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch b/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch > new file mode 100644 > index 0000000000..5fdccf5e9d > --- /dev/null > +++ b/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch > @@ -0,0 +1,57 @@ > +From 32378d7b4383a79d13da9005035600d8f0c8c29d Mon Sep 17 00:00:00 2001 > +From: Jitka Plesnikova <jplesnik@redhat.com> > +Date: Tue, 29 Jul 2026 05:55:56 +0000 > +Subject: [PATCH] pylibfdt: Replace removed SWIG Python 2 compatibility macros > + > +SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) > +from its runtime header pyhead.swg (see commit 79f7a2b7cb7d). Replace > +them with their Python 3 C API equivalents: > + > +- PyString_FromString -> PyUnicode_FromString > +- PyString_AsString -> PyBytes_AsString > +- PyInt_AsLong -> PyLong_AsLong > + > +The replacements are safe since the macros were already aliased to > +these exact functions in SWIG's Python 3 code path. > + > +Signed-off-by: Jitka Plesnikova <jplesnik@redhat.com> > +Signed-off-by: Peter Robinson <pbrobinson@gmail.com> > +Signed-off-by: David Gibson <david@gibson.dropbear.id.au> > +(cherry picked from commit 5008d1d6a356b8d0a78060da2e1021507d529cff) > + > +Upstream-Status: Backport [https://github.com/dgibson/dtc/commit/5008d1d6a356b8d0a78060da2e1021507d529cff] > + Not a backport. This commit doesn't exist in U-Boot. Please work with upstream U-Boot on fixing this so that other build systems/distros don't need to duplicate the work and we don't have to carry this patch forever in Yocto. Cheers, Quentin ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v3 4/4] python3-dtc: fix build with swig 4.5.0 2026-08-11 11:11 ` [PATCH v3 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam ` (2 preceding siblings ...) 2026-08-11 11:11 ` [PATCH v3 3/4] u-boot-tools: fix pylibfdt " Jaipaul Cheernam @ 2026-08-11 11:11 ` Jaipaul Cheernam 3 siblings, 0 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 11:11 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) from its runtime. Backport the upstream fix to replace them with Python 3 equivalents. Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- ...-removed-SWIG-Python-2-compatibility.patch | 57 +++++++++++++++++++ .../python/python3-dtc_1.8.1.bb | 1 + 2 files changed, 58 insertions(+) create mode 100644 meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch diff --git a/meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch b/meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch new file mode 100644 index 0000000000..877aea3a8d --- /dev/null +++ b/meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch @@ -0,0 +1,57 @@ +From 32378d7b4383a79d13da9005035600d8f0c8c29d Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova <jplesnik@redhat.com> +Date: Tue, 29 Jul 2026 05:55:56 +0000 +Subject: [PATCH] pylibfdt: Replace removed SWIG Python 2 compatibility macros + +SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) +from its runtime header pyhead.swg (see commit 79f7a2b7cb7d). Replace +them with their Python 3 C API equivalents: + +- PyString_FromString -> PyUnicode_FromString +- PyString_AsString -> PyBytes_AsString +- PyInt_AsLong -> PyLong_AsLong + +The replacements are safe since the macros were already aliased to +these exact functions in SWIG's Python 3 code path. + +Signed-off-by: Jitka Plesnikova <jplesnik@redhat.com> +Signed-off-by: Peter Robinson <pbrobinson@gmail.com> +Signed-off-by: David Gibson <david@gibson.dropbear.id.au> +(cherry picked from commit 5008d1d6a356b8d0a78060da2e1021507d529cff) + +Upstream-Status: Backport [https://github.com/dgibson/dtc/commit/5008d1d6a356b8d0a78060da2e1021507d529cff] + +Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +--- + pylibfdt/libfdt.i | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i +index 1f9c0471..b1cb9873 100644 +--- a/pylibfdt/libfdt.i ++++ b/pylibfdt/libfdt.i +@@ -1136,7 +1136,7 @@ typedef uint32_t fdt32_t; + PyObject *buff; + + if ($1) { +- resultobj = PyString_FromString( ++ resultobj = PyUnicode_FromString( + fdt_string(fdt1, fdt32_to_cpu($1->nameoff))); + buff = PyByteArray_FromStringAndSize( + (const char *)($1 + 1), fdt32_to_cpu($1->len)); +@@ -1169,13 +1169,13 @@ typedef uint32_t fdt32_t; + } + $1 = PyBytes_AsString($input); + %#else +- $1 = PyString_AsString($input); /* char *str */ ++ $1 = PyBytes_AsString($input); /* char *str */ + %#endif + } + + /* typemaps used for fdt_next_node() */ + %typemap(in, numinputs=1) int *depth (int depth) { +- depth = (int) PyInt_AsLong($input); ++ depth = (int) PyLong_AsLong($input); + $1 = &depth; + } + diff --git a/meta/recipes-devtools/python/python3-dtc_1.8.1.bb b/meta/recipes-devtools/python/python3-dtc_1.8.1.bb index 51abf3640a..915cd6a730 100644 --- a/meta/recipes-devtools/python/python3-dtc_1.8.1.bb +++ b/meta/recipes-devtools/python/python3-dtc_1.8.1.bb @@ -7,6 +7,7 @@ LICENSE = "BSD-2-Clause OR GPL-2.0-only" DEPENDS = "flex-native bison-native swig-native python3-setuptools-scm-native libyaml dtc" SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=main;protocol=https;tag=v${PV} \ + file://0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch \ " UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v4 0/4] swig: upgrade 4.4.1 -> 4.5.0 2026-08-10 15:45 [PATCH] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam ` (2 preceding siblings ...) 2026-08-11 11:11 ` [PATCH v3 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam @ 2026-08-11 13:51 ` Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 1/4] " Jaipaul Cheernam ` (3 more replies) 3 siblings, 4 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 13:51 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam Upgrade swig to 4.5.0 and fix build breakage in recipes that used Python 2 C API macros removed in swig 4.5.0. Note: The following recipes in meta-openembedded may also be affected if python/swig bindings are enabled: - gensio (meta-oe): fix available upstream [1] - unbound (meta-networking): fix available upstream [2] - ldns (meta-oe): fix pending upstream [3] [1] https://github.com/cminyard/gensio/commit/e024df7fc3d21896bd9d2e26964a0b59b7c2a91b [2] https://github.com/NLnetLabs/unbound/commit/93a56205cfa6b9a6d34db7245aa71e5ca67d1fd7 [3] https://github.com/NLnetLabs/ldns/issues/314 Changes in v4: - Fixed u-boot-tools patch path (libfdt.i_shipped, not libfdt.i) - Submitted fix to u-boot upstream [4] [4] https://patchwork.ozlabs.org/patch/2283713/ Changes in v3: - Added u-boot-tools and python3-dtc patches to fix pylibfdt build Changes in v2: - Added babeltrace2 patch to fix SWIG 4.5.0 compatibility Jaipaul Cheernam (4): swig: upgrade 4.4.1 -> 4.5.0 babeltrace2: fix build with swig 4.5.0 u-boot-tools: fix pylibfdt build with swig 4.5.0 python3-dtc: fix build with swig 4.5.0 ...-removed-SWIG-Python-2-compatibility.patch | 55 +++++++++++++++ .../u-boot/u-boot-tools_2026.07.bb | 4 +- ...-removed-SWIG-Python-2-compatibility.patch | 57 +++++++++++++++ .../python/python3-dtc_1.8.1.bb | 1 + .../swig/swig/determinism.patch | 20 +++--- .../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 +- ...Python-2-C-API-macros-for-SWIG-4.5.0.patch | 70 +++++++++++++++++++ .../recipes-kernel/lttng/babeltrace2_2.1.2.bb | 1 + 8 files changed, 199 insertions(+), 13 deletions(-) create mode 100644 meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch create mode 100644 meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%) create mode 100644 meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v4 1/4] swig: upgrade 4.4.1 -> 4.5.0 2026-08-11 13:51 ` [PATCH v4 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam @ 2026-08-11 13:51 ` Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 2/4] babeltrace2: fix build with swig 4.5.0 Jaipaul Cheernam ` (2 subsequent siblings) 3 siblings, 0 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 13:51 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam ChangeLog: https://www.swig.org/Release/CHANGES.current Release Notes: https://www.swig.org/Release/RELEASENOTES CompareLog: https://github.com/swig/swig/compare/v4.4.1...v4.5.0 - Refresh determinism.patch Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- .../swig/swig/determinism.patch | 20 +++++++++---------- .../swig/{swig_4.4.1.bb => swig_4.5.0.bb} | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) rename meta/recipes-devtools/swig/{swig_4.4.1.bb => swig_4.5.0.bb} (92%) diff --git a/meta/recipes-devtools/swig/swig/determinism.patch b/meta/recipes-devtools/swig/swig/determinism.patch index d6af38248d..9b021091cd 100644 --- a/meta/recipes-devtools/swig/swig/determinism.patch +++ b/meta/recipes-devtools/swig/swig/determinism.patch @@ -1,26 +1,26 @@ -From 7df78bedb666e49131c48f1854c6be1597bd133c Mon Sep 17 00:00:00 2001 +From 218e2a20ff978cb28fefdf7b35af8a27768df4db Mon Sep 17 00:00:00 2001 From: Richard Purdie <richard.purdie@linuxfoundation.org> -Date: Mon, 1 Mar 2021 00:11:10 +0000 +Date: Mon, 10 Aug 2026 11:13:20 +0000 Subject: [PATCH] swig: Fix reproducibility issue Remove the compiler commandline/platform from the compiled binary as this breaks reproducibilty. -Upstream-Status: Inappropriate [OE reproducibiity fix upstream unlikely to take] +Upstream-Status: Inappropriate [OE reproducibility fix upstream unlikely to take] RP 2021/3/1 --- Source/Modules/main.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx -index f68b609..0c2aba3 100644 +index 83ab22a..79a513a 100644 --- a/Source/Modules/main.cxx +++ b/Source/Modules/main.cxx -@@ -633,7 +633,6 @@ static void getoptions(int argc, char *argv[]) { - } +@@ -642,7 +642,6 @@ static void getoptions(int argc, char *argv[]) { + } } else if (strcmp(argv[i], "-version") == 0 || strcmp(argv[1], "--version") == 0) { - fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version()); -- fprintf(stdout, "\nCompiled with %s [%s]\n", SWIG_CXX, SWIG_PLATFORM); - fprintf(stdout, "\nConfigured options: %cpcre\n", + fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version()); +- fprintf(stdout, "\nCompiled with %s [%s]\n", SWIG_CXX, SWIG_PLATFORM); + fprintf(stdout, + "\nConfigured options: %cpcre\n", #ifdef HAVE_PCRE - '+' diff --git a/meta/recipes-devtools/swig/swig_4.4.1.bb b/meta/recipes-devtools/swig/swig_4.5.0.bb similarity index 92% rename from meta/recipes-devtools/swig/swig_4.4.1.bb rename to meta/recipes-devtools/swig/swig_4.5.0.bb index 842a7b0945..161c23f0af 100644 --- a/meta/recipes-devtools/swig/swig_4.4.1.bb +++ b/meta/recipes-devtools/swig/swig_4.5.0.bb @@ -13,9 +13,9 @@ SECTION = "devel" DEPENDS = "libpcre2 bison-native" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ - file://determinism.patch \ + file://determinism.patch \ " -SRC_URI[sha256sum] = "40162a706c56f7592d08fd52ef5511cb7ac191f3593cf07306a0a554c6281fcf" +SRC_URI[sha256sum] = "22ae0e887f8cca8031a325c67d005207653200b40e71edb3f88780e28e47d0ff" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/swig/files/swig/" UPSTREAM_CHECK_REGEX = "swig-(?P<pver>\d+(\.\d+)+)" ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v4 2/4] babeltrace2: fix build with swig 4.5.0 2026-08-11 13:51 ` [PATCH v4 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 1/4] " Jaipaul Cheernam @ 2026-08-11 13:51 ` Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 3/4] u-boot-tools: fix pylibfdt " Jaipaul Cheernam 2026-08-11 13:52 ` [PATCH v4 4/4] python3-dtc: fix " Jaipaul Cheernam 3 siblings, 0 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 13:51 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam SWIG 4.5.0 removed Python 2/3 compatibility macros PyString_FromString and SWIG_Python_str_FromChar. Backport upstream fix that replaces both with PyUnicode_FromString. Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- ...Python-2-C-API-macros-for-SWIG-4.5.0.patch | 70 +++++++++++++++++++ .../recipes-kernel/lttng/babeltrace2_2.1.2.bb | 1 + 2 files changed, 71 insertions(+) create mode 100644 meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch diff --git a/meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch b/meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch new file mode 100644 index 0000000000..e0b042d62d --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2/0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch @@ -0,0 +1,70 @@ +From 1c59884d4d3c74d8ea7257d9cdc0fa4b533ae7b3 Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova <jplesnik@redhat.com> +Date: Mon, 28 Jul 2026 13:29:18 +0000 +Subject: [PATCH] bt2: replace removed Python 2 C API macros for SWIG 4.5.0 + compatibility + +SWIG 4.5.0 has removed some Python 2/3 compatibility macros. The two +that affect us are `PyString_FromString` and +`SWIG_Python_str_FromChar`, which are both replaced with +`PyUnicode_FromString`. + +Change-Id: I3c74d8ea7257d9cdc0fa4b533ae7b3a5ef9521d1 +Signed-off-by: Simon Marchi <simon.marchi@efficios.com> +Signed-off-by: Jitka Plesnikova <jplesnik@redhat.com> +Reviewed-on: https://review.lttng.org/c/babeltrace/+/18423 +Tested-by: jenkins <jenkins@lttng.org> +(cherry picked from commit 1c59884d4d3c74d8ea7257d9cdc0fa4b533ae7b3) + +Upstream-Status: Backport [https://github.com/efficios/babeltrace/commit/1c59884d4d] + +Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +--- + src/bindings/python/bt2/bt2/native_bt.i | 4 ++-- + src/bindings/python/bt2/bt2/native_bt_error.i.hpp | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/bindings/python/bt2/bt2/native_bt.i b/src/bindings/python/bt2/bt2/native_bt.i +index 7f8d9f699..1807d8ff6 100644 +--- a/src/bindings/python/bt2/bt2/native_bt.i ++++ b/src/bindings/python/bt2/bt2/native_bt.i +@@ -56,7 +56,7 @@ typedef uint64_t bt_listener_id; + * + * We initialize the output parameter `temp_value` to an invalid but non-zero + * pointer value. This is to make sure we don't rely on its initial value in +- * the epilogue (where we call SWIG_Python_str_FromChar). When they fail, ++ * the epilogue (where we call PyUnicode_FromString). When they fail, + * functions on which we apply this typemap don't guarantee that the value of + * `temp_value` will be unchanged or valid. + */ +@@ -67,7 +67,7 @@ typedef uint64_t bt_listener_id; + %typemap(argout) (const char **) { + if (*$1) { + /* SWIG_AppendOutput() steals the created object */ +- $result = SWIG_AppendOutput($result, SWIG_Python_str_FromChar(*$1)); ++ $result = SWIG_AppendOutput($result, PyUnicode_FromString(*$1)); + } else { + /* SWIG_AppendOutput() steals Py_None */ + Py_INCREF(Py_None); +diff --git a/src/bindings/python/bt2/bt2/native_bt_error.i.hpp b/src/bindings/python/bt2/bt2/native_bt_error.i.hpp +index ba8cef097..2be1e347c 100644 +--- a/src/bindings/python/bt2/bt2/native_bt_error.i.hpp ++++ b/src/bindings/python/bt2/bt2/native_bt_error.i.hpp +@@ -19,7 +19,7 @@ static PyObject *bt_bt2_format_bt_error_cause(const bt_error_cause *error_cause) + BT_COMMON_COLOR_WHEN_NEVER); + BT_ASSERT(error_cause_str); + +- py_error_cause_str = PyString_FromString(error_cause_str); ++ py_error_cause_str = PyUnicode_FromString(error_cause_str); + + g_free(error_cause_str); + +@@ -35,7 +35,7 @@ static PyObject *bt_bt2_format_bt_error(const bt_error *error) + BT_COMMON_COLOR_WHEN_NEVER); + BT_ASSERT(error_str); + +- py_error_str = PyString_FromString(error_str); ++ py_error_str = PyUnicode_FromString(error_str); + + g_free(error_str); + diff --git a/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb b/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb index 7c151bf729..9962ef377c 100644 --- a/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb +++ b/meta/recipes-kernel/lttng/babeltrace2_2.1.2.bb @@ -15,6 +15,7 @@ SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-2.1;protocol=http file://0001-Make-bt_field_blob_get_length-return-size_t-instead-.patch \ file://external-python-tests.patch \ file://0001-src-explicitly-only-build-shared-plugins.patch \ + file://0001-bt2-replace-removed-Python-2-C-API-macros-for-SWIG-4.5.0.patch \ " SRCREV = "d0e946a71faf5f0c2d7f1fb5b92a369983e9cf10" UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>2(\.\d+)+)$" ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v4 3/4] u-boot-tools: fix pylibfdt build with swig 4.5.0 2026-08-11 13:51 ` [PATCH v4 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 1/4] " Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 2/4] babeltrace2: fix build with swig 4.5.0 Jaipaul Cheernam @ 2026-08-11 13:51 ` Jaipaul Cheernam 2026-08-11 13:52 ` [PATCH v4 4/4] python3-dtc: fix " Jaipaul Cheernam 3 siblings, 0 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 13:51 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) from its runtime. Backport the dtc upstream fix to u-boot's bundled pylibfdt/libfdt.i to replace them with Python 3 equivalents. Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- ...-removed-SWIG-Python-2-compatibility.patch | 55 +++++++++++++++++++ .../u-boot/u-boot-tools_2026.07.bb | 4 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch diff --git a/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch b/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch new file mode 100644 index 0000000000..c1d0204e32 --- /dev/null +++ b/meta/recipes-bsp/u-boot/files/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch @@ -0,0 +1,55 @@ +From 886616d03b6afcc5ce8b34e7af91f7ccfbb0a5c Mon Sep 17 00:00:00 2001 +From: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +Date: Tue, 11 Aug 2026 13:21:01 +0000 +Subject: [PATCH] pylibfdt: Replace removed SWIG Python 2 compatibility macros + +SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) +from its runtime header pyhead.swg (see commit 79f7a2b7cb7d). Replace +them with their Python 3 C API equivalents: + +- PyString_FromString -> PyUnicode_FromString +- PyString_AsString -> PyBytes_AsString +- PyInt_AsLong -> PyLong_AsLong + +The replacements are safe since the macros were already aliased to +these exact functions in SWIG's Python 3 code path. + +This is a backport of dtc commit 5008d1d6a356 ("pylibfdt: Replace +removed SWIG Python 2 compatibility macros"). + +Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/2283713/] + +Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +--- + scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped +index e4659489..326a15c7 100644 +--- a/scripts/dtc/pylibfdt/libfdt.i_shipped ++++ b/scripts/dtc/pylibfdt/libfdt.i_shipped +@@ -1033,7 +1033,7 @@ typedef uint32_t fdt32_t; + PyObject *buff; + + if ($1) { +- resultobj = PyString_FromString( ++ resultobj = PyUnicode_FromString( + fdt_string(fdt1, fdt32_to_cpu($1->nameoff))); + buff = PyByteArray_FromStringAndSize( + (const char *)($1 + 1), fdt32_to_cpu($1->len)); +@@ -1064,13 +1064,13 @@ typedef uint32_t fdt32_t; + } + $1 = PyBytes_AsString($input); + %#else +- $1 = PyString_AsString($input); /* char *str */ ++ $1 = PyBytes_AsString($input); /* char *str */ + %#endif + } + + /* typemaps used for fdt_next_node() */ + %typemap(in, numinputs=1) int *depth (int depth) { +- depth = (int) PyInt_AsLong($input); ++ depth = (int) PyLong_AsLong($input); + $1 = &depth; + } + diff --git a/meta/recipes-bsp/u-boot/u-boot-tools_2026.07.bb b/meta/recipes-bsp/u-boot/u-boot-tools_2026.07.bb index 9e7a178310..ea90b726c5 100644 --- a/meta/recipes-bsp/u-boot/u-boot-tools_2026.07.bb +++ b/meta/recipes-bsp/u-boot/u-boot-tools_2026.07.bb @@ -1,4 +1,6 @@ require u-boot-common.inc require u-boot-tools.inc -SRC_URI += "file://0001-tools-mkeficapsule-Detect-GnuTLS-PKCS-11-support.patch" +SRC_URI += "file://0001-tools-mkeficapsule-Detect-GnuTLS-PKCS-11-support.patch \ + file://0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch \ + " ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v4 4/4] python3-dtc: fix build with swig 4.5.0 2026-08-11 13:51 ` [PATCH v4 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam ` (2 preceding siblings ...) 2026-08-11 13:51 ` [PATCH v4 3/4] u-boot-tools: fix pylibfdt " Jaipaul Cheernam @ 2026-08-11 13:52 ` Jaipaul Cheernam 3 siblings, 0 replies; 19+ messages in thread From: Jaipaul Cheernam @ 2026-08-11 13:52 UTC (permalink / raw) To: openembedded-core; +Cc: Jaipaul Cheernam SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) from its runtime. Backport the upstream fix to replace them with Python 3 equivalents. Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> --- ...-removed-SWIG-Python-2-compatibility.patch | 57 +++++++++++++++++++ .../python/python3-dtc_1.8.1.bb | 1 + 2 files changed, 58 insertions(+) create mode 100644 meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch diff --git a/meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch b/meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch new file mode 100644 index 0000000000..877aea3a8d --- /dev/null +++ b/meta/recipes-devtools/python/python3-dtc/0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch @@ -0,0 +1,57 @@ +From 32378d7b4383a79d13da9005035600d8f0c8c29d Mon Sep 17 00:00:00 2001 +From: Jitka Plesnikova <jplesnik@redhat.com> +Date: Tue, 29 Jul 2026 05:55:56 +0000 +Subject: [PATCH] pylibfdt: Replace removed SWIG Python 2 compatibility macros + +SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) +from its runtime header pyhead.swg (see commit 79f7a2b7cb7d). Replace +them with their Python 3 C API equivalents: + +- PyString_FromString -> PyUnicode_FromString +- PyString_AsString -> PyBytes_AsString +- PyInt_AsLong -> PyLong_AsLong + +The replacements are safe since the macros were already aliased to +these exact functions in SWIG's Python 3 code path. + +Signed-off-by: Jitka Plesnikova <jplesnik@redhat.com> +Signed-off-by: Peter Robinson <pbrobinson@gmail.com> +Signed-off-by: David Gibson <david@gibson.dropbear.id.au> +(cherry picked from commit 5008d1d6a356b8d0a78060da2e1021507d529cff) + +Upstream-Status: Backport [https://github.com/dgibson/dtc/commit/5008d1d6a356b8d0a78060da2e1021507d529cff] + +Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +--- + pylibfdt/libfdt.i | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i +index 1f9c0471..b1cb9873 100644 +--- a/pylibfdt/libfdt.i ++++ b/pylibfdt/libfdt.i +@@ -1136,7 +1136,7 @@ typedef uint32_t fdt32_t; + PyObject *buff; + + if ($1) { +- resultobj = PyString_FromString( ++ resultobj = PyUnicode_FromString( + fdt_string(fdt1, fdt32_to_cpu($1->nameoff))); + buff = PyByteArray_FromStringAndSize( + (const char *)($1 + 1), fdt32_to_cpu($1->len)); +@@ -1169,13 +1169,13 @@ typedef uint32_t fdt32_t; + } + $1 = PyBytes_AsString($input); + %#else +- $1 = PyString_AsString($input); /* char *str */ ++ $1 = PyBytes_AsString($input); /* char *str */ + %#endif + } + + /* typemaps used for fdt_next_node() */ + %typemap(in, numinputs=1) int *depth (int depth) { +- depth = (int) PyInt_AsLong($input); ++ depth = (int) PyLong_AsLong($input); + $1 = &depth; + } + diff --git a/meta/recipes-devtools/python/python3-dtc_1.8.1.bb b/meta/recipes-devtools/python/python3-dtc_1.8.1.bb index 51abf3640a..915cd6a730 100644 --- a/meta/recipes-devtools/python/python3-dtc_1.8.1.bb +++ b/meta/recipes-devtools/python/python3-dtc_1.8.1.bb @@ -7,6 +7,7 @@ LICENSE = "BSD-2-Clause OR GPL-2.0-only" DEPENDS = "flex-native bison-native swig-native python3-setuptools-scm-native libyaml dtc" SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=main;protocol=https;tag=v${PV} \ + file://0001-pylibfdt-Replace-removed-SWIG-Python-2-compatibility.patch \ " UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" ^ permalink raw reply related [flat|nested] 19+ messages in thread
end of thread, other threads:[~2026-08-11 13:56 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-08-10 15:45 [PATCH] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-10 21:02 ` [OE-core] " Richard Purdie 2026-08-11 6:12 ` [PATCH v2 0/2] " Jaipaul Cheernam 2026-08-11 6:12 ` [PATCH v2 1/2] " Jaipaul Cheernam 2026-08-11 10:25 ` [OE-core] " Richard Purdie 2026-08-11 11:15 ` Jaipaul Cheernam 2026-08-11 6:12 ` [PATCH v2 2/2] babeltrace2: fix build with swig 4.5.0 Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 1/4] " Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 2/4] babeltrace2: fix build with swig 4.5.0 Jaipaul Cheernam 2026-08-11 11:11 ` [PATCH v3 3/4] u-boot-tools: fix pylibfdt " Jaipaul Cheernam 2026-08-11 12:58 ` [OE-core] " Mathieu Dubois-Briand 2026-08-11 13:38 ` Quentin Schulz 2026-08-11 11:11 ` [PATCH v3 4/4] python3-dtc: fix " Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 0/4] swig: upgrade 4.4.1 -> 4.5.0 Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 1/4] " Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 2/4] babeltrace2: fix build with swig 4.5.0 Jaipaul Cheernam 2026-08-11 13:51 ` [PATCH v4 3/4] u-boot-tools: fix pylibfdt " Jaipaul Cheernam 2026-08-11 13:52 ` [PATCH v4 4/4] python3-dtc: fix " Jaipaul Cheernam
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.