diff --git a/.gitignore b/.gitignore index 18dbbc6..06183e6 100644 --- a/.gitignore +++ b/.gitignore @@ -6,11 +6,3 @@ OpenIPMI-2.0.18.tar.gz /OpenIPMI-2.0.23.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 diff --git a/0001-Apply-OpenIPMI-2.0.18-pthread-pkgconfig.patch.patch b/0001-Apply-OpenIPMI-2.0.18-pthread-pkgconfig.patch.patch new file mode 100644 index 0000000..5c92eb9 --- /dev/null +++ b/0001-Apply-OpenIPMI-2.0.18-pthread-pkgconfig.patch.patch @@ -0,0 +1,26 @@ +From d058bc9be5ef521882e3226a27e81cca8aded5ce Mon Sep 17 00:00:00 2001 +From: Boris Ranto +Date: Thu, 2 Jun 2016 12:46:39 +0200 +Subject: [PATCH] Apply 'OpenIPMI-2.0.18-pthread-pkgconfig.patch' + +Signed-off-by: Boris Ranto +--- + OpenIPMIpthread.pc.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/OpenIPMIpthread.pc.in b/OpenIPMIpthread.pc.in +index 59b52e5..fffa0d0 100644 +--- a/OpenIPMIpthread.pc.in ++++ b/OpenIPMIpthread.pc.in +@@ -6,6 +6,6 @@ includedir=@includedir@ + Name: OpenIPMIpthread + Description: Pthread OS handler for OpenIPMI + Version: @VERSION@ +-Requires: OpenIPMI pthread ++Requires: OpenIPMI + Libs: -L${libdir} -lOpenIPMIutils -lOpenIPMIpthread +-Cflags: -I${includedir} ++Cflags: -I${includedir} -pthread +-- +2.7.4 + diff --git a/0002-nobundle.patch b/0002-nobundle.patch new file mode 100644 index 0000000..2515e0e --- /dev/null +++ b/0002-nobundle.patch @@ -0,0 +1,59 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,10 +1,10 @@ + RPM = rpmbuild + RPMFLAGS = -ta + +-SUBDIRS = include utils lib unix $(GLIB_DIR) $(TCL_DIR) libedit cmdlang \ ++SUBDIRS = include utils lib unix $(GLIB_DIR) $(TCL_DIR) cmdlang \ + ui lanserv sample doc man $(SWIG_DIR) + +-DIST_SUBDIRS = include utils lib unix glib tcl libedit cmdlang \ ++DIST_SUBDIRS = include utils lib unix glib tcl cmdlang \ + ui lanserv sample doc man swig + + EXTRA_DIST = FAQ TODO README.Force README.MotorolaMXP OpenIPMI.spec.in \ +--- a/cmdlang/Makefile.am ++++ b/cmdlang/Makefile.am +@@ -4,7 +4,8 @@ LD_VERSION = 0:5:0 + + AM_CFLAGS = -Wall -Wsign-compare -I$(top_builddir)/include \ + -I$(top_srcdir)/include \ +- -I$(top_srcdir)/libedit -DIPMI_CHECK_LOCKS $(GLIB_CFLAGS) \ ++ -DIPMI_CHECK_LOCKS $(GLIB_CFLAGS) \ ++ $(EDIT_CFLAGS) \ + $(TCL_CFLAGS) + + lib_LTLIBRARIES = libOpenIPMIcmdlang.la +@@ -25,7 +26,7 @@ openipmish_LDADD = libOpenIPMIcmdlang.la \ + $(top_builddir)/utils/libOpenIPMIutils.la \ + $(top_builddir)/lib/libOpenIPMI.la \ + $(top_builddir)/unix/libOpenIPMIposix.la \ +- $(top_builddir)/libedit/libedit.a \ ++ $(EDIT_LIBS) \ + $(TERM_LIBS) \ + $(SNMPLIBS) $(GLIB_LIB) $(GLIB_LIBS) \ + $(TCL_LIB) $(TCL_LIBS) \ +--- a/configure.ac ++++ b/configure.ac +@@ -926,7 +926,6 @@ AC_OUTPUT(Makefile + swig/perl/Makefile + swig/python/Makefile + swig/python/openipmigui/Makefile +- libedit/Makefile + cmdlang/Makefile + include/Makefile + include/OpenIPMI/Makefile +--- OpenIPMI-2.0.24/sample/Makefile.am~ 2017-07-27 23:01:19.000000000 +0100 ++++ OpenIPMI-2.0.24/sample/Makefile.am 2017-12-19 07:52:45.368954855 +0000 +@@ -73,7 +73,8 @@ + ipmi_serial_bmc_emu_SOURCES = ipmi_serial_bmc_emu.c + ipmi_serial_bmc_emu_LDADD = $(top_builddir)/libedit/libedit.a $(TERM_LIBS) \ + $(SOCKETLIB) +-ipmi_serial_bmc_emu_CFLAGS = -I $(top_srcdir)/libedit ++ipmi_serial_bmc_emu_LDADD = $(EDIT_LIBS) ++ipmi_serial_bmc_emu_CFLAGS = $(EDIT_CFLAGS) + + EXTRA_DIST = example_oem.c + + diff --git a/0003-Python3.patch b/0003-Python3.patch new file mode 100644 index 0000000..702d976 --- /dev/null +++ b/0003-Python3.patch @@ -0,0 +1,149 @@ +diff -urNp a/configure b/configure +--- a/configure 2018-04-17 08:47:58.528284066 +0200 ++++ b/configure 2018-04-17 10:00:24.091372864 +0200 +@@ -13406,7 +13406,7 @@ if test "x$pythoncflags" = "x" -o "x$pyt + pythonprog= + if test "x$trypython" != "xno"; then + # Extract the first word of "python", so it can be a program name with args. +-set dummy python; ac_word=$2 ++set dummy python3; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_path_pythonprog+:} false; then : +@@ -13500,12 +13500,12 @@ if test "x$pythonprog" != "x"; then + if test "x$pythonusepthreads" = "x"; then + cat - <<_ACEOF >conftest.py + try: +- import thread ++ import threading + print('yes') + except: + print('no') + _ACEOF +- pythonusepthreads=`python conftest.py` ++ pythonusepthreads=`python3 conftest.py` + rm -f conftest.py + fi + echo "checking for python threads... $pythonusepthreads" +@@ -13537,7 +13537,7 @@ try: + except: + print('no') + _ACEOF +- tkinter=`python conftest.py` ++ tkinter=`python3 conftest.py` + rm -f conftest.py + fi + fi +diff -urNp a/configure.ac b/configure.ac +--- a/configure.ac 2018-04-17 08:47:58.529284062 +0200 ++++ b/configure.ac 2018-04-17 10:01:02.115576922 +0200 +@@ -526,7 +526,7 @@ AC_SUBST(PERL_POSIX_SO) + if test "x$pythoncflags" = "x" -o "x$pythoninstalldir" = "x"; then + pythonprog= + if test "x$trypython" != "xno"; then +- AC_PATH_PROG(pythonprog, python) ++ AC_PATH_PROG(pythonprog, python3) + fi + if test "x$pythonprog" != "x"; then + # Now find a proper installation location. +@@ -578,12 +578,12 @@ if test "x$pythonprog" != "x"; then + if test "x$pythonusepthreads" = "x"; then + cat - <<_ACEOF >conftest.py + try: +- import thread ++ import threading + print('yes') + except: + print('no') + _ACEOF +- pythonusepthreads=`python conftest.py` ++ pythonusepthreads=`python3 conftest.py` + rm -f conftest.py + fi + echo "checking for python threads... $pythonusepthreads" +@@ -615,7 +615,7 @@ try: + except: + print('no') + _ACEOF +- tkinter=`python conftest.py` ++ tkinter=`python3 conftest.py` + rm -f conftest.py + fi + fi +diff -urNp a/swig/python/Makefile.am b/swig/python/Makefile.am +--- a/swig/python/Makefile.am 2018-04-17 08:47:58.547283986 +0200 ++++ b/swig/python/Makefile.am 2018-04-17 14:43:01.703963727 +0200 +@@ -22,19 +22,14 @@ EXTRA_DIST = OpenIPMI_lang.i OpenIPMI.h + OpenIPMI.pyc: OpenIPMI.py _OpenIPMI.la + -PYTHONPATH=$(PYPATH) $(pythonprog) -c 'import OpenIPMI.py' + +-OpenIPMI.pyo: OpenIPMI.py _OpenIPMI.la +- -PYTHONPATH=$(PYPATH) $(pythonprog) -O -c 'import OpenIPMI.py' +- + OpenIPMI_wrap.c OpenIPMI.py: $(top_srcdir)/swig/OpenIPMI.i OpenIPMI_lang.i + $(SWIG) $(DEFS) -python -o OpenIPMI_wrap.c -I$(top_srcdir)/swig/python $< + +-CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py OpenIPMI.pyo OpenIPMI.pyc ++CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py + +-install-exec-local: _OpenIPMI.la OpenIPMI.py OpenIPMI.pyc OpenIPMI.pyo ++install-exec-local: _OpenIPMI.la OpenIPMI.py + $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR) + $(INSTALL_DATA) OpenIPMI.py "$(DESTDIR)$(PYTHON_INSTALL_DIR)" +- $(INSTALL_DATA) OpenIPMI.pyc "$(DESTDIR)$(PYTHON_INSTALL_DIR)" +- $(INSTALL_DATA) OpenIPMI.pyo "$(DESTDIR)$(PYTHON_INSTALL_DIR)" + if test "x$(PYTHON_GUI_DIR)" = "xopenipmigui"; then \ + $(INSTALL) -d $(DESTDIR)$(bindir); \ + $(INSTALL_SCRIPT) $(srcdir)/openipmigui.py "$(DESTDIR)$(bindir)/openipmigui";\ +@@ -43,8 +38,6 @@ install-exec-local: _OpenIPMI.la OpenIPM + uninstall-local: + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(PYTHON_INSTALL_LIB_DIR)/_OpenIPMI.so" + rm -f "$(DESTDIR)$(PYTHON_INSTALL_DIR)/OpenIPMI.py" +- rm -f "$(DESTDIR)$(PYTHON_INSTALL_DIR)/OpenIPMI.pyc" +- rm -f "$(DESTDIR)$(PYTHON_INSTALL_DIR)/OpenIPMI.pyo" + rm -f "$(DESTDIR)$(bindir)/openipmigui" + + rungui: +diff -urNp a/swig/python/Makefile.in b/swig/python/Makefile.in +--- a/swig/python/Makefile.in 2018-04-17 08:47:58.547283986 +0200 ++++ b/swig/python/Makefile.in 2018-04-17 14:43:28.969899859 +0200 +@@ -443,7 +443,7 @@ nodist__OpenIPMI_la_SOURCES = OpenIPMI_w + _OpenIPMI_la_LDFLAGS = -module -avoid-version + _OpenIPMI_la_LIBADD = $(OPENIPMI_SWIG_LIBS) $(PYTHON_POSIX_LIB) + EXTRA_DIST = OpenIPMI_lang.i OpenIPMI.h openipmigui.py sample.py sample2.py +-CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py OpenIPMI.pyo OpenIPMI.pyc ++CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py + all: all-recursive + + .SUFFIXES: +@@ -837,20 +837,12 @@ uninstall-am: uninstall-local uninstall- + .PRECIOUS: Makefile + + +-OpenIPMI.pyc: OpenIPMI.py _OpenIPMI.la +- -PYTHONPATH=$(PYPATH) $(pythonprog) -c 'import OpenIPMI.py' +- +-OpenIPMI.pyo: OpenIPMI.py _OpenIPMI.la +- -PYTHONPATH=$(PYPATH) $(pythonprog) -O -c 'import OpenIPMI.py' +- + OpenIPMI_wrap.c OpenIPMI.py: $(top_srcdir)/swig/OpenIPMI.i OpenIPMI_lang.i + $(SWIG) $(DEFS) -python -o OpenIPMI_wrap.c -I$(top_srcdir)/swig/python $< + +-install-exec-local: _OpenIPMI.la OpenIPMI.py OpenIPMI.pyc OpenIPMI.pyo ++install-exec-local: _OpenIPMI.la OpenIPMI.py + $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR) + $(INSTALL_DATA) OpenIPMI.py "$(DESTDIR)$(PYTHON_INSTALL_DIR)" +- $(INSTALL_DATA) OpenIPMI.pyc "$(DESTDIR)$(PYTHON_INSTALL_DIR)" +- $(INSTALL_DATA) OpenIPMI.pyo "$(DESTDIR)$(PYTHON_INSTALL_DIR)" + if test "x$(PYTHON_GUI_DIR)" = "xopenipmigui"; then \ + $(INSTALL) -d $(DESTDIR)$(bindir); \ + $(INSTALL_SCRIPT) $(srcdir)/openipmigui.py "$(DESTDIR)$(bindir)/openipmigui";\ +@@ -859,8 +851,6 @@ install-exec-local: _OpenIPMI.la OpenIPM + uninstall-local: + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(PYTHON_INSTALL_LIB_DIR)/_OpenIPMI.so" + rm -f "$(DESTDIR)$(PYTHON_INSTALL_DIR)/OpenIPMI.py" +- rm -f "$(DESTDIR)$(PYTHON_INSTALL_DIR)/OpenIPMI.pyc" +- rm -f "$(DESTDIR)$(PYTHON_INSTALL_DIR)/OpenIPMI.pyo" + rm -f "$(DESTDIR)$(bindir)/openipmigui" + + rungui: diff --git a/OpenIPMI-py313compat.patch b/OpenIPMI-py313compat.patch deleted file mode 100644 index fccde75..0000000 --- a/OpenIPMI-py313compat.patch +++ /dev/null @@ -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() diff --git a/OpenIPMI.spec b/OpenIPMI.spec index 7016dc2..9bfbc91 100644 --- a/OpenIPMI.spec +++ b/OpenIPMI.spec @@ -1,47 +1,33 @@ %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.25 +Release: 8%{?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-nobundle.patch +Patch3: 0003-Python3.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: libedit-devel BuildRequires: automake BuildRequires: autoconf BuildRequires: libtool %{?systemd_requires} BuildRequires: systemd +Requires: libedit Requires: %{name}-libs%{?_isa} = %{version}-%{release} -# Prevent bogus provides of private libs from perl -%global __provides_exclude_from %{?__provides_exclude_from:%{__provides_exclude_from}|}^%{perl_vendorarch}/auto/.*\\.so$ %description The Open IPMI project aims to develop an open code base to allow access to @@ -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. @@ -101,23 +82,26 @@ This package contains a network IPMI listener. %prep %autosetup -p1 +rm -rf ./libedit %build +export EDIT_CFLAGS=`pkg-config --cflags libedit` +export EDIT_LIBS=`pkg-config --libs libedit` + +# generate new configure script we need this since we removed the libedit directory +%{__libtoolize} --copy --force --automake +%{__aclocal} +%{__autoheader} +%{__automake} --add-missing --copy --foreign --force-missing +%{__autoconf} +# libedit end %configure \ CFLAGS="-fPIC %{optflags} -z now -fno-strict-aliasing" \ 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 @@ -126,7 +110,7 @@ This package contains a network IPMI listener. sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -make # not %%{?_smp_mflags} safe +make # not %{?_smp_mflags} safe %install make install DESTDIR=%{buildroot} @@ -194,17 +178,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,149 +208,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 - -* Fri Jan 19 2024 Fedora Release Engineering - 2.0.32-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Jan 08 2024 Florian Weimer - 2.0.32-11 -- Fix C compatibility issues - -* Wed Jul 19 2023 Fedora Release Engineering - 2.0.32-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Tue Jul 18 2023 Josef Ridky - 2.0.32-9 -- Migrate to SPDX license format - -* Tue Jul 11 2023 Jitka Plesnikova - 2.0.32-8 -- Perl 5.38 rebuild - -* Tue Jun 13 2023 Python Maint - 2.0.32-7 -- Rebuilt for Python 3.12 - -* Wed Jan 18 2023 Fedora Release Engineering - 2.0.32-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jul 20 2022 Fedora Release Engineering - 2.0.32-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 13 2022 Python Maint - 2.0.32-4 -- Rebuilt for Python 3.11 - -* Tue May 31 2022 Jitka Plesnikova - 2.0.32-3 -- Perl 5.36 rebuild - -* Wed Jan 19 2022 Fedora Release Engineering - 2.0.32-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Mon Jan 10 2022 Josef Ridky - 2.0.32-1 -- new upstream release 2.0.32 (#2020717) - -* Tue Sep 14 2021 Sahana Prasad - 2.0.31-8 -- Rebuilt with OpenSSL 3.0.0 - -* Mon Aug 02 2021 Josef Ridky - 2.0.31-7 -- replace distutils and fix FTBFS (#1948437) -- fix collectd-ipmi crash (#1927022) - -* Wed Jul 21 2021 Fedora Release Engineering - 2.0.31-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 2.0.31-5 -- Rebuilt for Python 3.10 - -* Fri May 21 2021 Jitka Plesnikova - 2.0.31-4 -- Perl 5.34 rebuild - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.0.31-3 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Mon Jan 25 2021 Fedora Release Engineering - 2.0.31-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jan 25 2021 Josef Ridky - 2.0.31-1 -- New upstream release 2.0.31 (#1905768) - -* Thu Sep 17 2020 Josef Řídký - 2.0.29-1 -- New upstream release 2.0.29 (#1846675) - -* Thu Aug 27 2020 Josef Řídký - 2.0.28-7 -- Rebuilt for new net-snmp release - -* Mon Jul 27 2020 Fedora Release Engineering - 2.0.28-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jun 23 2020 Jitka Plesnikova - 2.0.28-5 -- Perl 5.32 rebuild - -* Tue May 26 2020 Miro Hrončok - 2.0.28-4 -- Rebuilt for Python 3.9 - -* Mon Feb 03 2020 Vaclav Dolezal - 2.0.28-3 -- Cleanup of openipmi-helper script; removed no-udev branch (#1579773) - -* Tue Jan 28 2020 Fedora Release Engineering - 2.0.28-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Mon Dec 16 2019 Vaclav Dolezal - 2.0.28-1 -- New upstream release 2.0.28 - -* Thu Oct 03 2019 Miro Hrončok - 2.0.27-5 -- Rebuilt for Python 3.8.0rc1 (#1748018) - -* Mon Aug 19 2019 Miro Hrončok - 2.0.27-4 -- Rebuilt for Python 3.8 - -* Thu Aug 01 2019 Vaclav Dolezal - 2.0.27-3 -- Prevent bogus Provides of libOpenIPMI.so.0 by OpenIPMI-perl (#1734407) - -* Wed Jul 24 2019 Fedora Release Engineering - 2.0.27-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Jun 26 2019 Vaclav Dolezal - 2.0.27-1 -- New upstream release 2.0.27 - -* Fri May 31 2019 Jitka Plesnikova - 2.0.25-10 -- Perl 5.30 rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 2.0.25-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - * Wed Sep 05 2018 Josef Ridky - 2.0.25-8 - Fix man page self referencing error (#1612159) 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/openipmi-helper b/openipmi-helper index 4f3d3d9..4cebfb9 100644 --- a/openipmi-helper +++ b/openipmi-helper @@ -4,7 +4,6 @@ # ipmi: OpenIPMI Driver helper script # # Authors: Jan Safranek -# Václav Doležal # # Based on IPMI init script by: # Matt Domsch @@ -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 diff --git a/sources b/sources index 1870111..26a13b2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenIPMI-2.0.36.tar.gz) = a47725308336f200e88a1eb8641ed5ef03fc8bb43ee47f7a99e39df68640ff912b6842c1710d7e767aeb724fc41fa4ed3b244685812ee985e5200003a45f4015 +SHA512 (OpenIPMI-2.0.25.tar.gz) = 5d89deb5d0d0ff44d6f62a9759577dba92aa58c208477e317aecbd01e71ccf7ba0dab138a1d8feff22d523c85d6ceaee9e478e26834ffcd91949b81d2d9c1f86