commit: bb0eeda1e753d4292782a1ce70e593ebf8ef4d7f Author: Jay Faulkner <jay <AT> jvf <DOT> cc> AuthorDate: Sun Feb 23 21:58:58 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Feb 23 22:33:34 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb0eeda1
sys-libs/libsemanage: patch 3.7 for swig 4.3.0 This patches the libsemanage-3.7 ebuild so that it compiles when swig is upgraded to 4.3.0. libsemanage-3.8 already has the fix. I do not have any systems which run selinux; but this patch applies and builds cleanly, and the resulting libraries appear correct. Signed-off-by: Jay Faulkner <jay <AT> jvf.cc> Closes: https://github.com/gentoo/gentoo/pull/40723 Signed-off-by: Sam James <sam <AT> gentoo.org> ...bsemanage-3.7-fix-swig-bindings-for-4.3.0.patch | 418 +++++++++++++++++++++ sys-libs/libsemanage/libsemanage-3.7.ebuild | 6 +- 2 files changed, 423 insertions(+), 1 deletion(-) diff --git a/sys-libs/libsemanage/files/libsemanage-3.7-fix-swig-bindings-for-4.3.0.patch b/sys-libs/libsemanage/files/libsemanage-3.7-fix-swig-bindings-for-4.3.0.patch new file mode 100644 index 000000000000..92769c2e8f13 --- /dev/null +++ b/sys-libs/libsemanage/files/libsemanage-3.7-fix-swig-bindings-for-4.3.0.patch @@ -0,0 +1,418 @@ +https://github.com/SELinuxProject/selinux/commit/e38815d7b44cac435195c82a54d2bf2517bc4b1a +From 8ff90eff4d5a49e64d5b86247665d54787c9dc1d Mon Sep 17 00:00:00 2001 +From: Petr Lautrbach <[email protected]> +Date: Wed, 16 Oct 2024 20:48:12 +0200 +Subject: [PATCH] libsemanage: fix swig bindings for 4.3.0 + +https://github.com/swig/swig/blob/master/CHANGES.current + +"[Python] #2907 Fix returning null from functions with output +parameters. Ensures OUTPUT and INOUT typemaps are handled +consistently wrt return type. + +New declaration of SWIG_Python_AppendOutput is now: + + SWIG_Python_AppendOutput(PyObject* result, PyObject* obj, int is_void); + +The 3rd parameter is new and the new $isvoid special variable +should be passed to it, indicating whether or not the wrapped +function returns void. + +Also consider replacing with: + + SWIG_AppendOutput(PyObject* result, PyObject* obj); + +which calls SWIG_Python_AppendOutput with same parameters but adding $isvoid +for final parameter." + +Fixes: https://github.com/SELinuxProject/selinux/issues/447 + +Suggested-by: Jitka Plesnikova <[email protected]> +Signed-off-by: Petr Lautrbach <[email protected]> +Acked-by: James Carter <[email protected]> +--- + src/semanageswig_python.i | 64 +++++++++++++-------------- + src/semanageswig_ruby.i | 32 +++++++------- + 2 files changed, 48 insertions(+), 48 deletions(-) + +diff --git a/src/semanageswig_python.i b/src/semanageswig_python.i +index 5f011396..0e27424f 100644 +--- a/src/semanageswig_python.i ++++ b/src/semanageswig_python.i +@@ -111,7 +111,7 @@ + } + + %typemap(argout) char** { +- $result = SWIG_Python_AppendOutput($result, SWIG_FromCharPtr(*$1)); ++ $result = SWIG_AppendOutput($result, SWIG_FromCharPtr(*$1)); + free(*$1); + } + +@@ -134,7 +134,7 @@ + NULL, NULL, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -148,7 +148,7 @@ + } + + %typemap(argout) semanage_module_info_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + /** module key typemaps **/ +@@ -160,7 +160,7 @@ + } + + %typemap(argout) semanage_module_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + /** context typemaps **/ +@@ -172,7 +172,7 @@ + } + + %typemap(argout) semanage_context_t** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + /** boolean typemaps **/ +@@ -197,7 +197,7 @@ + (void (*) (void*)) &semanage_bool_free, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -207,11 +207,11 @@ + } + + %typemap(argout) semanage_bool_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_bool_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_bool_key_t **(semanage_bool_key_t *temp=NULL) { +@@ -240,7 +240,7 @@ + (void (*) (void*)) &semanage_fcontext_free, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -250,11 +250,11 @@ + } + + %typemap(argout) semanage_fcontext_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_fcontext_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_fcontext_key_t **(semanage_fcontext_key_t *temp=NULL) { +@@ -284,7 +284,7 @@ + (void (*) (void*)) &semanage_iface_free, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -294,11 +294,11 @@ + } + + %typemap(argout) semanage_iface_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_iface_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_iface_key_t **(semanage_iface_key_t *temp=NULL) { +@@ -328,7 +328,7 @@ + (void (*) (void*)) &semanage_seuser_free, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -338,11 +338,11 @@ + } + + %typemap(argout) semanage_seuser_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_seuser_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_seuser_key_t **(semanage_seuser_key_t *temp=NULL) { +@@ -371,7 +371,7 @@ + (void (*) (void*)) &semanage_user_free, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -381,11 +381,11 @@ + } + + %typemap(argout) semanage_user_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_user_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_user_key_t **(semanage_user_key_t *temp=NULL) { +@@ -414,7 +414,7 @@ + (void (*) (void*)) &semanage_port_free, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -424,11 +424,11 @@ + } + + %typemap(argout) semanage_port_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_port_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_port_key_t **(semanage_port_key_t *temp=NULL) { +@@ -457,7 +457,7 @@ + (void (*) (void*)) &semanage_ibpkey_free, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -467,11 +467,11 @@ + } + + %typemap(argout) semanage_ibpkey_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_ibpkey_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_ibpkey_key_t **(semanage_ibpkey_key_t *temp=NULL) { +@@ -500,7 +500,7 @@ + (void (*) (void*)) &semanage_ibendport_free, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -510,11 +510,11 @@ + } + + %typemap(argout) semanage_ibendport_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_ibendport_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_ibendport_key_t **(semanage_ibendport_key_t *temp=NULL) { +@@ -543,7 +543,7 @@ + (void (*) (void*)) &semanage_node_free, &plist) < 0) + $result = SWIG_From_int(STATUS_ERR); + else +- $result = SWIG_Python_AppendOutput($result, plist); ++ $result = SWIG_AppendOutput($result, plist); + } + } + } +@@ -553,12 +553,12 @@ + } + + %typemap(argout) semanage_node_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + + %typemap(argout) semanage_node_key_t ** { +- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_node_key_t **(semanage_node_key_t *temp=NULL) { +diff --git a/src/semanageswig_ruby.i b/src/semanageswig_ruby.i +index e030e4ae..9010b545 100644 +--- a/src/semanageswig_ruby.i ++++ b/src/semanageswig_ruby.i +@@ -38,7 +38,7 @@ + } + + %typemap(argout) semanage_module_info_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + /** context typemaps **/ +@@ -50,7 +50,7 @@ + } + + %typemap(argout) semanage_context_t** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + /** boolean typemaps **/ +@@ -66,11 +66,11 @@ + } + + %typemap(argout) semanage_bool_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_bool_key_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_bool_key_t **(semanage_bool_key_t *temp=NULL) { +@@ -90,11 +90,11 @@ + } + + %typemap(argout) semanage_fcontext_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_fcontext_key_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_fcontext_key_t **(semanage_fcontext_key_t *temp=NULL) { +@@ -114,11 +114,11 @@ + } + + %typemap(argout) semanage_iface_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_iface_key_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_iface_key_t **(semanage_iface_key_t *temp=NULL) { +@@ -138,11 +138,11 @@ + } + + %typemap(argout) semanage_seuser_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_seuser_key_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_seuser_key_t **(semanage_seuser_key_t *temp=NULL) { +@@ -162,11 +162,11 @@ + } + + %typemap(argout) semanage_user_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_user_key_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_user_key_t **(semanage_user_key_t *temp=NULL) { +@@ -186,11 +186,11 @@ + } + + %typemap(argout) semanage_port_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(argout) semanage_port_key_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_port_key_t **(semanage_port_key_t *temp=NULL) { +@@ -210,12 +210,12 @@ + } + + %typemap(argout) semanage_node_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + + %typemap(argout) semanage_node_key_t ** { +- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); ++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0)); + } + + %typemap(in, numinputs=0) semanage_node_key_t **(semanage_node_key_t *temp=NULL) { +-- +2.48.1 + diff --git a/sys-libs/libsemanage/libsemanage-3.7.ebuild b/sys-libs/libsemanage/libsemanage-3.7.ebuild index 91e720629161..5348266cbd85 100644 --- a/sys-libs/libsemanage/libsemanage-3.7.ebuild +++ b/sys-libs/libsemanage/libsemanage-3.7.ebuild @@ -41,8 +41,12 @@ BDEPEND=">=dev-lang/swig-2.0.4-r1 # full SELinux userland repo RESTRICT="test" +PATCHES=( + "${FILESDIR}/${PN}-3.7-fix-swig-bindings-for-4.3.0.patch" +) + src_prepare() { - eapply_user + default echo >> "${S}/src/semanage.conf" echo "# Set this to true to save the linked policy." >> "${S}/src/semanage.conf"
