diff --git a/.gitignore b/.gitignore index 18dbbc6..d61324c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,3 @@ OpenIPMI-2.0.18.tar.gz /OpenIPMI-2.0.29.tar.gz /OpenIPMI-2.0.31.tar.gz /OpenIPMI-2.0.32.tar.gz -/OpenIPMI-2.0.34.tar.gz -/OpenIPMI-2.0.35.tar.gz -/OpenIPMI-2.0.36.tar.gz diff --git a/OpenIPMI-ax-python.patch b/OpenIPMI-ax-python.patch new file mode 100644 index 0000000..9c74546 --- /dev/null +++ b/OpenIPMI-ax-python.patch @@ -0,0 +1,12 @@ +diff -urNp a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 +--- a/m4/ax_python_devel.m4 2021-08-02 13:15:04.122972905 +0200 ++++ b/m4/ax_python_devel.m4 2021-08-02 13:16:17.407749535 +0200 +@@ -143,7 +143,7 @@ variable to configure. See ``configure - + # + AC_MSG_CHECKING([for the distutils Python package]) + ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` +- if test -z "$ac_distutils_result"; then ++ if test $? -eq 0; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) diff --git a/OpenIPMI-c99.patch b/OpenIPMI-c99.patch new file mode 100644 index 0000000..40cb5c4 --- /dev/null +++ b/OpenIPMI-c99.patch @@ -0,0 +1,60 @@ +C type errors in the SWIG-generated Perl bindings + +The first change fixes an error with newer compilers: + +OpenIPMI_wrap.c: In function ‘_wrap_strconstarray_val_set’: +OpenIPMI_wrap.c:10491:27: error: assignment to ‘const char **’ from incompatible pointer type ‘char **’ +10491 | if (arg1) (arg1)->val = arg2; + | ^ + +The second change is also about a compiler error: + +In file included from /usr/lib64/perl5/CORE/perl.h:4530, + from OpenIPMI_wrap.c:751: +OpenIPMI_wrap.c: In function ‘_wrap_ipmi_sol_conn_t_write’: +/usr/lib64/perl5/CORE/sv.h:1952:31: error: passing argument 3 of ‘Perl_SvPV_helper’ from incompatible pointer type + 1952 | Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_, \ +/usr/lib64/perl5/CORE/sv.h:1972:37: note: in expansion of macro ‘SvPV_flags’ + 1972 | #define SvPV(sv, len) SvPV_flags(sv, len, SV_GMAGIC) + | ^~~~~~~~~~ +OpenIPMI_wrap.c:27664:24: note: in expansion of macro ‘SvPV’ +27664 | (&arg2)->val = SvPV(tempsv, (&arg2)->len); + | ^~~~ +In file included from /usr/lib64/perl5/CORE/perl.h:7812: +/usr/lib64/perl5/CORE/sv_inline.h:908:33: note: expected ‘STRLEN * const’ {aka ‘long unsigned int * const’} but argument is of type ‘int *’ + 908 | STRLEN * const lp, + | ~~~~~~~~~~~~~~~^~ + +But the existing code looks broken on big-endian 64-bit architectures, +too. + +Submitted upstream: + +diff --git a/swig/OpenIPMI.i b/swig/OpenIPMI.i +index 8e674a94e6f85f62..db2aa1b5292a276f 100644 +--- a/swig/OpenIPMI.i ++++ b/swig/OpenIPMI.i +@@ -359,7 +359,7 @@ typedef struct iargarray + %} + typedef struct strconstarray + { +- char **val; ++ const char **val; + int len; + } strconstarray; + typedef struct argarray +diff --git a/swig/perl/OpenIPMI_lang.i b/swig/perl/OpenIPMI_lang.i +index d13b62f09e69e02a..d7482d1135cdc3e4 100644 +--- a/swig/perl/OpenIPMI_lang.i ++++ b/swig/perl/OpenIPMI_lang.i +@@ -292,7 +292,9 @@ + $1.val = NULL; + $1.len = 0; + } else { +- $1.val = SvPV(tempsv, $1.len); ++ STRLEN len; ++ $1.val = SvPV(tempsv, len); ++ $1.len = len; + } + } + diff --git a/OpenIPMI-py313compat.patch b/OpenIPMI-py313compat.patch index fccde75..60845b4 100644 --- a/OpenIPMI-py313compat.patch +++ b/OpenIPMI-py313compat.patch @@ -1,13 +1,12 @@ -diff --git a/swig/python/OpenIPMI_lang.i b/swig/python/OpenIPMI_lang.i -index 67221fd..d150d81 100644 ---- a/swig/python/OpenIPMI_lang.i -+++ b/swig/python/OpenIPMI_lang.i -@@ -541,7 +541,7 @@ static void OI_put_py_state(int current) - #else - static void init_lang(void) - { -- PyEval_InitThreads(); -+ /* nothing */ - } - #define OI_PY_STATE PyGILState_STATE - #define OI_PY_STATE_GET() PyGILState_Ensure() +diff -ur OpenIPMI-2.0.34/swig/OpenIPMI.i OpenIPMI-2.0.34-python/swig/OpenIPMI.i +--- OpenIPMI-2.0.34/swig/OpenIPMI.i 2024-02-11 19:52:41.555777279 +0100 ++++ OpenIPMI-2.0.34-python/swig/OpenIPMI.i 2024-02-11 20:11:59.061132776 +0100 +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + #ifdef HAVE_GETADDRINFO + #include +Only in OpenIPMI-2.0.34-python/swig: OpenIPMI.i~ diff --git a/OpenIPMI-sysconfig.patch b/OpenIPMI-sysconfig.patch new file mode 100644 index 0000000..bfd56d3 --- /dev/null +++ b/OpenIPMI-sysconfig.patch @@ -0,0 +1,239 @@ +diff -urNp a/configure b/configure +--- a/configure 2021-08-02 13:38:21.012807239 +0200 ++++ b/configure 2021-08-02 14:32:29.884167376 +0200 +@@ -13535,20 +13535,20 @@ variable to configure. See \`\`configure + fi + + # +- # Check if you have distutils, else fail ++ # Check if you have sysconfig, else fail + # +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5 +-$as_echo_n "checking for the distutils Python package... " >&6; } +- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` +- if test -z "$ac_distutils_result"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the sysconfig Python package" >&5 ++$as_echo_n "checking for the sysconfig Python package... " >&6; } ++ ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1` ++ if test -z "$ac_sysconfig_result"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } +- as_fn_error $? "cannot import Python module \"distutils\". ++ as_fn_error $? "cannot import Python module \"sysconfig\". + Please check your Python installation. The error was: +-$ac_distutils_result" "$LINENO" 5 ++$ac_sysconfig_result" "$LINENO" 5 + PYTHON_VERSION="" + fi + +@@ -13558,10 +13558,10 @@ $ac_distutils_result" "$LINENO" 5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } + if test -z "$PYTHON_CPPFLAGS"; then +- python_path=`$PYTHON -c "import distutils.sysconfig; \ +- print (distutils.sysconfig.get_python_inc ());"` +- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \ +- print (distutils.sysconfig.get_python_inc (plat_specific=1));"` ++ python_path=`$PYTHON -c "import sysconfig; \ ++ print (sysconfig.get_path('include'));"` ++ plat_python_path=`$PYTHON -c "import sysconfig; \ ++ print (sysconfig.get_path('include'));"` + if test -n "${python_path}"; then + if test "${plat_python_path}" != "${python_path}"; then + python_path="-I$python_path -I$plat_python_path" +@@ -13587,7 +13587,7 @@ $as_echo_n "checking for Python library + + # join all versioning strings, on some systems + # major/minor numbers could be in different list elements +-from distutils.sysconfig import * ++from sysconfig import * + e = get_config_var('VERSION') + if e is not None: + print(e) +@@ -13613,8 +13613,8 @@ _ACEOF + ac_python_libdir=`cat<&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5 + $as_echo_n "checking for Python site-packages path... " >&6; } + if test -z "$PYTHON_SITE_PKG"; then +- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ +- print (distutils.sysconfig.get_python_lib(0,0));"` ++ PYTHON_SITE_PKG=`$PYTHON -c "import sysconfig; \ ++ print (sysconfig.get_path('platlib'));"` + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5 + $as_echo "$PYTHON_SITE_PKG" >&6; } +@@ -13678,8 +13678,8 @@ $as_echo "$PYTHON_SITE_PKG" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra libraries" >&5 + $as_echo_n "checking python extra libraries... " >&6; } + if test -z "$PYTHON_EXTRA_LDFLAGS"; then +- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ +- conf = distutils.sysconfig.get_config_var; \ ++ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import sysconfig; \ ++ conf = sysconfig.get_config_var; \ + print (conf('LIBS') + ' ' + conf('SYSLIBS'))"` + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LDFLAGS" >&5 +@@ -13692,8 +13692,8 @@ $as_echo "$PYTHON_EXTRA_LDFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra linking flags" >&5 + $as_echo_n "checking python extra linking flags... " >&6; } + if test -z "$PYTHON_EXTRA_LIBS"; then +- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ +- conf = distutils.sysconfig.get_config_var; \ ++ PYTHON_EXTRA_LIBS=`$PYTHON -c "import sysconfig; \ ++ conf = sysconfig.get_config_var; \ + print (conf('LINKFORSHARED'))"` + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5 +diff -urNp a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 +--- a/m4/ax_python_devel.m4 2021-08-02 13:38:21.025807373 +0200 ++++ b/m4/ax_python_devel.m4 2021-08-02 14:36:33.262720424 +0200 +@@ -139,17 +139,17 @@ variable to configure. See ``configure - + fi + + # +- # Check if you have distutils, else fail ++ # Check if you have sysconfig, else fail + # +- AC_MSG_CHECKING([for the distutils Python package]) +- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` ++ AC_MSG_CHECKING([for the sysconfig Python package]) ++ ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1` + if test $? -eq 0; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +- AC_MSG_ERROR([cannot import Python module "distutils". ++ AC_MSG_ERROR([cannot import Python module "sysconfig". + Please check your Python installation. The error was: +-$ac_distutils_result]) ++$ac_sysconfig_result]) + PYTHON_VERSION="" + fi + +@@ -158,10 +158,10 @@ $ac_distutils_result]) + # + AC_MSG_CHECKING([for Python include path]) + if test -z "$PYTHON_CPPFLAGS"; then +- python_path=`$PYTHON -c "import distutils.sysconfig; \ +- print (distutils.sysconfig.get_python_inc ());"` +- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \ +- print (distutils.sysconfig.get_python_inc (plat_specific=1));"` ++ python_path=`$PYTHON -c "import sysconfig; \ ++ print (sysconfig.get_path('include'));"` ++ plat_python_path=`$PYTHON -c "import sysconfig; \ ++ print (sysconfig.get_path('include'));"` + if test -n "${python_path}"; then + if test "${plat_python_path}" != "${python_path}"; then + python_path="-I$python_path -I$plat_python_path" +@@ -185,7 +185,7 @@ $ac_distutils_result]) + + # join all versioning strings, on some systems + # major/minor numbers could be in different list elements +-from distutils.sysconfig import * ++from sysconfig import * + e = get_config_var('VERSION') + if e is not None: + print(e) +@@ -208,8 +208,8 @@ EOD` + ac_python_libdir=`cat< %{buildroot}%{_mandir}/man1/ipmish.1 %{_mandir}/man7/ipmi_cmdlang* %{_mandir}/man7/openipmi_conparms* -%if %{with perl} %files perl %attr(644,root,root) %{perl_vendorarch}/OpenIPMI.pm %{perl_vendorarch}/auto/OpenIPMI -%endif -%if %{with python} %files -n python3-openipmi %{python3_sitearch}/*OpenIPMI* %{python3_sitearch}/__pycache__/OpenIPMI.*.pyc -%endif %files libs %{_libdir}/libOpenIPMI*.so.* @@ -228,39 +201,6 @@ echo ".so man1/openipmish.1" > %{buildroot}%{_mandir}/man1/ipmish.1 %{_mandir}/man5/ipmi_sim_cmd.5* %changelog -* Fri Jan 16 2026 Fedora Release Engineering - 2.0.36-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Mon Jan 12 2026 Josef Ridky - 2.0.36-4 -- rebuild for new net-snmp release - -* Wed Jul 23 2025 Fedora Release Engineering - 2.0.36-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Thu Jan 16 2025 Fedora Release Engineering - 2.0.36-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Thu Aug 22 2024 Fedora Release Monitoring - 2.0.36-1 -- Update to 2.0.36 (#2302353) -- Resolves CVE-2024-42934 - -* Wed Jul 17 2024 Fedora Release Engineering - 2.0.35-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Tue May 7 2024 Pavel Cahyna - 2.0.35-1 -- Switch to https -- Update to 2.0.35 (rhbz#2278007) - drop patch integrated upstream - -* Sun Feb 11 2024 Pavel Cahyna - 2.0.34-1 -- Update to 2.0.34 (rhbz#2105023) -- Resolve issues found by rpmdiff - - add a patch to fix getaddrinfo detection to avoid using gethostbyname - - add explicit Requires: on subpackages to avoid the need to test - interoperability between the various combinations of old and new - subpackages -- Conditional Perl & Python module build, by default disabled - * Mon Jan 22 2024 Fedora Release Engineering - 2.0.32-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild diff --git a/include-config-h-cmdlang.patch b/include-config-h-cmdlang.patch deleted file mode 100644 index 4f9fcab..0000000 --- a/include-config-h-cmdlang.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up OpenIPMI-2.0.32/cmdlang/cmdlang.c~ OpenIPMI-2.0.32/cmdlang/cmdlang.c ---- OpenIPMI-2.0.32/cmdlang/cmdlang.c~ 2021-01-22 19:51:28.000000000 +0100 -+++ OpenIPMI-2.0.32/cmdlang/cmdlang.c 2022-01-28 11:55:42.375470392 +0100 -@@ -32,6 +32,8 @@ - */ - - -+#include -+ - #include - #include - #include diff --git a/sources b/sources index 1870111..ec51f6c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenIPMI-2.0.36.tar.gz) = a47725308336f200e88a1eb8641ed5ef03fc8bb43ee47f7a99e39df68640ff912b6842c1710d7e767aeb724fc41fa4ed3b244685812ee985e5200003a45f4015 +SHA512 (OpenIPMI-2.0.32.tar.gz) = e409f32e6bbf26756338ada386fa394d48d734b4d6ba4beca700ce60bc3af3d0f41e972a328c4e076ae014f4fbd8598d05d3f879f9c6d76198e6ae1a2ba03e95