Compare commits

..

No commits in common. "rawhide" and "f29" have entirely different histories.

7 changed files with 89 additions and 208 deletions

7
.gitignore vendored
View file

@ -7,10 +7,3 @@ OpenIPMI-2.0.18.tar.gz
/OpenIPMI-2.0.24.tar.gz
/OpenIPMI-2.0.25.tar.gz
/OpenIPMI-2.0.27.tar.gz
/OpenIPMI-2.0.28.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

View file

@ -0,0 +1,30 @@
Fix including readline and readline history headers in OpenIPMI 2.0.27
It will probably be fixed in next release
diff --git a/cmdlang/ipmish.c b/cmdlang/ipmish.c
index 139da67b..a4b8f0ba 100644
--- a/cmdlang/ipmish.c
+++ b/cmdlang/ipmish.c
@@ -51,6 +51,7 @@
#include <OpenIPMI/ipmi_cmdlang.h>
#include <OpenIPMI/ipmi_debug.h>
#include <readline/readline.h>
+#include <readline/history.h>
#ifdef HAVE_GLIB
#include <glib.h>
diff --git a/sample/ipmi_serial_bmc_emu.c b/sample/ipmi_serial_bmc_emu.c
index e0ae0197..184745ef 100644
--- a/sample/ipmi_serial_bmc_emu.c
+++ b/sample/ipmi_serial_bmc_emu.c
@@ -42,7 +42,8 @@
#include <unistd.h>
#include <stdlib.h>
#include <sys/select.h>
-#include <editline/readline.h>
+#include <readline/readline.h>
+#include <readline/history.h>
#define _GNU_SOURCE
#include <getopt.h>

View file

@ -1,13 +0,0 @@
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()

View file

@ -1,35 +1,21 @@
%global _hardened_build 1
%bcond_with python
%bcond_with perl
Summary: IPMI (Intelligent Platform Management Interface) library and tools
Name: OpenIPMI
Version: 2.0.36
Release: 5%{?dist}
License: LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause
URL: https://sourceforge.net/projects/openipmi/
Source: https://downloads.sourceforge.net/openipmi/%{name}-%{version}.tar.gz
Version: 2.0.27
Release: 3%{?dist}
License: LGPLv2+ and GPLv2+ or BSD
URL: http://sourceforge.net/projects/openipmi/
Source: http://downloads.sourceforge.net/openipmi/%{name}-%{version}.tar.gz
Source1: openipmi.sysconf
Source2: openipmi-helper
Source3: ipmi.service
Patch1: 0001-man.patch
Patch2: include-config-h-cmdlang.patch
Patch5: OpenIPMI-py313compat.patch
Patch2: 0002-readline-includes.patch
BuildRequires: make
BuildRequires: gdbm-devel glib2-devel net-snmp-devel ncurses-devel
%if %{with python} || %{with perl}
BuildRequires: swig
%endif
BuildRequires: openssl-devel
%if %{with python}
BuildRequires: python3-devel
%endif
%if %{with perl}
BuildRequires: perl-devel perl-generators
%endif
BuildRequires: gdbm-devel swig glib2-devel net-snmp-devel ncurses-devel
BuildRequires: openssl-devel python3-devel perl-devel perl-generators
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: automake
@ -55,16 +41,14 @@ Summary: The OpenIPMI runtime libraries
The OpenIPMI-libs package contains the runtime libraries for shared binaries
and applications.
%if %{with perl}
%package perl
Summary: IPMI Perl language bindings
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description perl
The OpenIPMI-perl package contains the Perl language bindings for OpenIPMI.
%endif
%if %{with python}
%package -n python3-openipmi
%{?python_provide:%python_provide python3-openipmi}
%{?python_provide:%python_provide python3-OpenIPMI}
@ -77,14 +61,12 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description -n python3-openipmi
The OpenIPMI-python package contains the Python language bindings for OpenIPMI.
%endif
%package devel
Summary: The development environment for the OpenIPMI project
Requires: pkgconfig
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-lanserv%{?_isa} = %{version}-%{release}
%description devel
The OpenIPMI-devel package contains the development libraries and header files
@ -93,7 +75,6 @@ of the OpenIPMI project.
%package lanserv
Summary: Emulates an IPMI network listener
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description lanserv
This package contains a network IPMI listener.
@ -109,15 +90,8 @@ This package contains a network IPMI listener.
LDFLAGS="%{__global_ldflags} -Wl,--as-needed" \
--disable-dependency-tracking \
--disable-static \
%if %{with python}
--with-pythoninstall=%{python3_sitearch} \
--with-python=%{__python3} \
%else
--with-python=no \
%endif
%if %{without perl}
--with-perl=no \
%endif
--with-tcl=no \
--with-tkinter=no
@ -194,17 +168,13 @@ echo ".so man1/openipmish.1" > %{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,134 +198,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 <releng@fedoraproject.org> - 2.0.36-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Mon Jan 12 2026 Josef Ridky <jridky@redhat.com> - 2.0.36-4
- rebuild for new net-snmp release
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.36-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.36-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Aug 22 2024 Fedora Release Monitoring <release-monitoring@fedoraproject.org> - 2.0.36-1
- Update to 2.0.36 (#2302353)
- Resolves CVE-2024-42934
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.35-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Tue May 7 2024 Pavel Cahyna <pcahyna@redhat.com> - 2.0.35-1
- Switch to https
- Update to 2.0.35 (rhbz#2278007)
drop patch integrated upstream
* Sun Feb 11 2024 Pavel Cahyna <pcahyna@redhat.com> - 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 <releng@fedoraproject.org> - 2.0.32-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.32-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 08 2024 Florian Weimer <fweimer@redhat.com> - 2.0.32-11
- Fix C compatibility issues
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.32-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 18 2023 Josef Ridky <jridky@redhat.com> - 2.0.32-9
- Migrate to SPDX license format
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.32-8
- Perl 5.38 rebuild
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2.0.32-7
- Rebuilt for Python 3.12
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.32-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.32-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.0.32-4
- Rebuilt for Python 3.11
* Tue May 31 2022 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.32-3
- Perl 5.36 rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.32-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Jan 10 2022 Josef Ridky <jridky@redhat.com> - 2.0.32-1
- new upstream release 2.0.32 (#2020717)
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 2.0.31-8
- Rebuilt with OpenSSL 3.0.0
* Mon Aug 02 2021 Josef Ridky <jridky@redhat.com> - 2.0.31-7
- replace distutils and fix FTBFS (#1948437)
- fix collectd-ipmi crash (#1927022)
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.31-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.0.31-5
- Rebuilt for Python 3.10
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.31-4
- Perl 5.34 rebuild
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.0.31-3
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.31-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jan 25 2021 Josef Ridky <jridky@redhat.com> - 2.0.31-1
- New upstream release 2.0.31 (#1905768)
* Thu Sep 17 2020 Josef Řídký <jridky@redhat.com> - 2.0.29-1
- New upstream release 2.0.29 (#1846675)
* Thu Aug 27 2020 Josef Řídký <jridky@redhat.com> - 2.0.28-7
- Rebuilt for new net-snmp release
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.28-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jun 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.28-5
- Perl 5.32 rebuild
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 2.0.28-4
- Rebuilt for Python 3.9
* Mon Feb 03 2020 Vaclav Dolezal <vdolezal@redhat.com> - 2.0.28-3
- Cleanup of openipmi-helper script; removed no-udev branch (#1579773)
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.28-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Dec 16 2019 Vaclav Dolezal <vdolezal@redhat.com> - 2.0.28-1
- New upstream release 2.0.28
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 2.0.27-5
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 2.0.27-4
- Rebuilt for Python 3.8
* Thu Aug 01 2019 Vaclav Dolezal <vdolezal@redhat.com> - 2.0.27-3
- Prevent bogus Provides of libOpenIPMI.so.0 by OpenIPMI-perl (#1734407)

View file

@ -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 <config.h>
+
#include <errno.h>
#include <string.h>
#include <ctype.h>

View file

@ -4,7 +4,6 @@
# ipmi: OpenIPMI Driver helper script
#
# Authors: Jan Safranek <jsafrane@redhat.com>
# Václav Doležal <vdolezal@redhat.com>
#
# Based on IPMI init script by:
# Matt Domsch <Matt_Domsch@dell.com>
@ -31,6 +30,11 @@ INTF_NUM=0
IPMI_SMB_MODULE_NAME="ipmi_smb"
IPMI_SI_MODULE_NAME="ipmi_si"
kernel=`uname -r | cut -d. -f1-2`
if [ "${kernel}" == "2.4" ]; then
IPMI_SMB_MODULE_NAME="ipmi_smb_intf"
IPMI_SI_MODULE_NAME="ipmi_si_drv"
fi
MODULES_INTERFACES=""
[ "${DEV_IPMI}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_devintf"
@ -51,6 +55,17 @@ RETVAL=0
LOCKFILE=/var/lock/subsys/ipmi
DEV_IPMI_TIMEOUT=150
UDEV_EXISTS=0
if [ -e /sbin/udev -o -e /sbin/udevd ]; then
UDEV_EXISTS=1
fi
#############################################################################
# NOTES:
# * /dev/ipmi0 is unconditionally deleted here on ipmi_devintf unload,
# because SLES9 and RHEL4 kernels don't send a message for udev to delete
# it for us.
#
#############################################################################
modules_loaded_verbose()
@ -58,7 +73,7 @@ modules_loaded_verbose()
OnePlusLoaded=0
OnePlusUnloaded=0
for m in $@; do
if /sbin/lsmod | grep -q $m ; then
if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
echo "$m module loaded."
OnePlusLoaded=1
else
@ -73,7 +88,7 @@ modules_loaded()
OnePlusLoaded=0
OnePlusUnloaded=0
for m in $@; do
if /sbin/lsmod | grep -q $m ; then
if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
OnePlusLoaded=1
else
OnePlusUnloaded=1
@ -139,6 +154,13 @@ start_watchdog_common()
RETVAL=$((RETVAL | 2)) &&
echo "Watchdog startup failed: cannot load ipmi_watchdog module" &&
return
if [ ${UDEV_EXISTS} -eq 0 -a ! -e /dev/watchdog ]; then
mknod -m 0600 /dev/watchdog c 10 130
[ $? -ne 0 ] &&
RETVAL=$((RETVAL | 8)) &&
echo "Watchdog startup failed: cannot create /dev/watchdog" &&
return
fi
}
start_watchdog_quiet()
@ -164,6 +186,10 @@ stop_watchdog()
if [ ${OnePlusLoaded} -ne 0 ]; then
RETVAL=$((RETVAL | 32))
echo "Watchog shutdown failed: cannot unload ipmi_watchdog module"
else
if [ "${IPMI_WATCHDOG}" = "yes" ]; then
[ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
fi
fi
}
@ -173,6 +199,10 @@ stop_watchdog_quiet()
modules_loaded ipmi_watchdog
if [ ${OnePlusLoaded} -ne 0 ]; then
RETVAL=$((RETVAL | 32))
else
if [ "${IPMI_WATCHDOG}" = "yes" ]; then
[ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
fi
fi
}
@ -181,9 +211,9 @@ start_powercontrol_common()
local poweroff_opts=""
load_hw_modules
if [ "${IPMI_POWERCYCLE}" == "yes" ]; then
modinfo ipmi_poweroff 2>/dev/null | grep -q poweroff_control && \
modinfo ipmi_poweroff 2>/dev/null | grep poweroff_control > /dev/null 2>&1 && \
poweroff_opts="poweroff_control=2"
modinfo ipmi_poweroff 2>/dev/null | grep -q poweroff_powercycle && \
modinfo ipmi_poweroff 2>/dev/null | grep poweroff_powercycle > /dev/null 2>&1 && \
poweroff_opts="poweroff_powercycle=1"
fi
modprobe ipmi_poweroff "${poweroff_opts}" > /dev/null 2>&1
@ -235,6 +265,9 @@ unload_all_ipmi_modules()
for m in ${MODULES}; do
modprobe -q -r ${m} > /dev/null 2>&1
done
# delete interface node ONLY if ipmi_devintf is unloaded
[ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
rm -f "/dev/ipmi${INTF_NUM}"
}
unload_ipmi_modules_leave_features()
@ -242,7 +275,10 @@ unload_ipmi_modules_leave_features()
for m in ${MODULES_INTERFACES}; do
modprobe -q -r ${m} > /dev/null 2>&1
done
lsmod | grep -Eq "ipmi_(poweroff|watchdog)"
# delete interface node ONLY if ipmi_devintf is unloaded
[ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
rm -f "/dev/ipmi${INTF_NUM}"
lsmod | egrep -q "ipmi_(poweroff|watchdog)" > /dev/null 2>&1
if [ "$?" -ne "0" ]; then
stop_watchdog_quiet
stop_powercontrol_quiet
@ -266,7 +302,14 @@ load_ipmi_modules ()
modprobe ipmi_devintf > /dev/null 2>&1
modules_loaded ipmi_devintf
RETVAL=$((RETVAL & ~2))
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
if [ ${OnePlusLoaded} -eq 1 ]; then
if [ ${UDEV_EXISTS} -eq 0 ]; then
DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'`
rm -f /dev/ipmi${INTF_NUM}
mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
fi
# udev can take several seconds to create /dev/ipmi0,
# but it happens asynchronously, so delay here
locdelay=${DEV_IPMI_TIMEOUT}
@ -274,8 +317,6 @@ load_ipmi_modules ()
locdelay=$((locdelay - 1))
sleep 0.1
done
else
RETVAL=$((RETVAL | 2))
fi
fi

View file

@ -1 +1 @@
SHA512 (OpenIPMI-2.0.36.tar.gz) = a47725308336f200e88a1eb8641ed5ef03fc8bb43ee47f7a99e39df68640ff912b6842c1710d7e767aeb724fc41fa4ed3b244685812ee985e5200003a45f4015
SHA512 (OpenIPMI-2.0.27.tar.gz) = 44aa2eb97559514d61654434f24bf8e87c3f89ea7095fd3d46c1a889e16c128f29ca19cfb9747afc7fd432ada84406ee884bc8b9c65e28b8bd033d368b744fe3