https://bugs.gentoo.org/983043 https://github.com/efficios/babeltrace/commit/1c59884d4ddf384b87df95d317b62f5f5783ca27 From 1c59884d4ddf384b87df95d317b62f5f5783ca27 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 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 Signed-off-by: Jitka Plesnikova Reviewed-on: https://review.lttng.org/c/babeltrace/+/18423 Tested-by: jenkins --- 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); --- 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);