[ipmiutil/el6] Fix checksel without IPMI enabled, see bug # 752319

arcress arcress at fedoraproject.org
Thu Nov 10 15:07:32 UTC 2011


commit 0ad547bd3c699620b80c8d7606beb6ac9387db25
Author: Andy Cress <arcress at users.sourceforge.net>
Date:   Thu Nov 10 10:05:58 2011 -0500

    Fix checksel without IPMI enabled, see bug # 752319

 fix-checksel-without-ipmi.patch |  135 +++++++++++++++++++++++++++++++++++++++
 ipmiutil.spec                   |   15 ++++-
 2 files changed, 147 insertions(+), 3 deletions(-)
---
diff --git a/fix-checksel-without-ipmi.patch b/fix-checksel-without-ipmi.patch
new file mode 100644
index 0000000..83720eb
--- /dev/null
+++ b/fix-checksel-without-ipmi.patch
@@ -0,0 +1,135 @@
+--- a/doc/ipmiutil.spec	2011-10-28 16:23:37.000000000 -0400
++++ b/doc/ipmiutil.spec	2011-11-09 13:43:26.622318641 -0500
+@@ -62,7 +62,7 @@
+ %{_initrddir}/ipmiutil_asy
+ %{_initrddir}/ipmiutil_evt
+ %{_initrddir}/ipmi_port
+-%{_sysconfdir}/cron.daily/checksel
++%{_datadir}/%{name}/checksel
+ %{_datadir}/%{name}/ipmiutil_evt.service
+ %{_datadir}/%{name}/ipmiutil_asy.service
+ %{_datadir}/%{name}/ipmiutil_wdt.service
+@@ -123,11 +123,15 @@
+    fi
+ 
+    # Run some ipmiutil command to see if any IPMI interface works.
+-   %{_sbindir}/ipmiutil wdt >/dev/null 2>&1
++   %{_sbindir}/ipmiutil sel -v >/dev/null 2>&1
+    IPMIret=$?
+ 
+    # If IPMIret==0, the IPMI cmd was successful, and IPMI is enabled locally.
+    if [ $IPMIret -eq 0 ]; then
++      # If IPMI is enabled, automate managing the IPMI SEL
++      if [ -d %{_sysconfdir}/cron.daily ]; then
++         cp -f %{_datadir}/%{name}/checksel %{_sysconfdir}/cron.daily
++      fi
+       # IPMI_IS_ENABLED, so enable services, but only if Red Hat
+       if [ -f /etc/redhat-release ]; then
+          if [ -x /sbin/chkconfig ]; then
+@@ -175,6 +179,9 @@
+ 	rm -f ${systemd_dir}/ipmiutil_wdt.service 
+ 	rm -f ${systemd_dir}/ipmi_port.service    
+      fi
++     if [ -f %{_sysconfdir}/cron.daily/checksel ]; then
++	 rm -f %{_sysconfdir}/cron.daily/checksel
++     fi
+    fi
+ fi
+ 
+--- a/doc/Makefile.am	2011-10-04 10:10:06.000000000 -0400
++++ b/doc/Makefile.am	2011-11-09 13:42:02.961584488 -0500
+@@ -36,7 +36,6 @@
+ 	$(MKDIR) ${datato}
+ 	$(MKDIR) ${sbinto}
+ 	$(MKDIR) ${initto}
+-	$(MKDIR) ${cronto}
+ 	$(MKDIR) ${varto}
+ 	${INSTALL_DATA_SH} isel.8      ${manto}
+ 	${INSTALL_DATA_SH} isensor.8   ${manto}
+@@ -65,11 +64,11 @@
+ 	${INSTALL_DATA_SH} bmclanpet.mib ${datato}
+ 	${INSTALL_SCRIPT_SH} ipmi_if.sh   ${datato}
+ 	${INSTALL_SCRIPT_SH} evt.sh       ${datato}
+-	${INSTALL_SCRIPT_SH} checksel     ${cronto}
+ 	${INSTALL_SCRIPT_SH} ipmiutil_wdt ${initto}/ipmiutil_wdt
+ 	${INSTALL_SCRIPT_SH} ipmiutil_asy ${initto}/ipmiutil_asy
+ 	${INSTALL_SCRIPT_SH} ipmiutil_evt ${initto}/ipmiutil_evt
+ 	${INSTALL_SCRIPT_SH} ipmi_port.sh ${initto}/ipmi_port
++	${INSTALL_SCRIPT_SH} checksel     ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_wdt.service ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_asy.service ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_evt.service ${datato}
+--- a/doc/checksel	2011-10-04 10:10:06.000000000 -0400
++++ b/doc/checksel	2011-11-09 13:42:10.271068816 -0500
+@@ -14,12 +14,17 @@
+ # pdir=`echo $0 |sed -e "s/$app//"`
+ pdir=/usr/sbin
+ ddir=/var/lib/ipmiutil
+-$pdir/ipmiutil sel -w |grep "WARNING: free space" 
+-if [ $? -eq 0 ]
+-then
+-   today=`date +%y%m%d`
+-   # The old SEL records are in syslog, but save a copy in $ddir also.
+-   $pdir/ipmiutil sel -e >$ddir/ipmisel_${today}.txt
+-   # Clear the IPMI SEL
+-   $pdir/ipmiutil sel -c
++# First check to see if the IPMI SEL is enabled on this system.
++# If not, do nothing else.
++$pdir/ipmiutil sel -v >/dev/null 2>&1
++if [ $? -eq 0 ]; then
++  # Write new SEL events to syslog, and check if free space is low
++  $pdir/ipmiutil sel -w |grep "WARNING: free space" 
++  if [ $? -eq 0 ]; then
++     today=`date +%y%m%d`
++     # The old SEL records are in syslog, but save a copy in $ddir also.
++     $pdir/ipmiutil sel -e >$ddir/ipmisel_${today}.txt
++     # Clear the IPMI SEL
++     $pdir/ipmiutil sel -c
++  fi
+ fi
+--- a/doc/Makefile.in	2011-10-04 10:10:22.000000000 -0400
++++ b/doc/Makefile.in	2011-11-10 08:57:38.617012357 -0500
+@@ -349,7 +349,6 @@
+ 	$(MKDIR) ${datato}
+ 	$(MKDIR) ${sbinto}
+ 	$(MKDIR) ${initto}
+-	$(MKDIR) ${cronto}
+ 	$(MKDIR) ${varto}
+ 	${INSTALL_DATA_SH} isel.8      ${manto}
+ 	${INSTALL_DATA_SH} isensor.8   ${manto}
+@@ -378,11 +377,11 @@
+ 	${INSTALL_DATA_SH} bmclanpet.mib ${datato}
+ 	${INSTALL_SCRIPT_SH} ipmi_if.sh   ${datato}
+ 	${INSTALL_SCRIPT_SH} evt.sh       ${datato}
+-	${INSTALL_SCRIPT_SH} checksel     ${cronto}
+ 	${INSTALL_SCRIPT_SH} ipmiutil_wdt ${initto}/ipmiutil_wdt
+ 	${INSTALL_SCRIPT_SH} ipmiutil_asy ${initto}/ipmiutil_asy
+ 	${INSTALL_SCRIPT_SH} ipmiutil_evt ${initto}/ipmiutil_evt
+ 	${INSTALL_SCRIPT_SH} ipmi_port.sh ${initto}/ipmi_port
++	${INSTALL_SCRIPT_SH} checksel     ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_wdt.service ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_asy.service ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_evt.service ${datato}
+--- a/doc/Makefile	2011-10-28 16:23:56.000000000 -0400
++++ b/doc/Makefile	2011-11-10 08:58:05.595318489 -0500
+@@ -349,7 +349,6 @@
+ 	$(MKDIR) ${datato}
+ 	$(MKDIR) ${sbinto}
+ 	$(MKDIR) ${initto}
+-	$(MKDIR) ${cronto}
+ 	$(MKDIR) ${varto}
+ 	${INSTALL_DATA_SH} isel.8      ${manto}
+ 	${INSTALL_DATA_SH} isensor.8   ${manto}
+@@ -378,11 +377,11 @@
+ 	${INSTALL_DATA_SH} bmclanpet.mib ${datato}
+ 	${INSTALL_SCRIPT_SH} ipmi_if.sh   ${datato}
+ 	${INSTALL_SCRIPT_SH} evt.sh       ${datato}
+-	${INSTALL_SCRIPT_SH} checksel     ${cronto}
+ 	${INSTALL_SCRIPT_SH} ipmiutil_wdt ${initto}/ipmiutil_wdt
+ 	${INSTALL_SCRIPT_SH} ipmiutil_asy ${initto}/ipmiutil_asy
+ 	${INSTALL_SCRIPT_SH} ipmiutil_evt ${initto}/ipmiutil_evt
+ 	${INSTALL_SCRIPT_SH} ipmi_port.sh ${initto}/ipmi_port
++	${INSTALL_SCRIPT_SH} checksel     ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_wdt.service ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_asy.service ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_evt.service ${datato}
diff --git a/ipmiutil.spec b/ipmiutil.spec
index 424c542..1688687 100644
--- a/ipmiutil.spec
+++ b/ipmiutil.spec
@@ -1,6 +1,6 @@
 Name: ipmiutil
 Version: 2.7.9
-Release: 2%{?dist}
+Release: 3%{?dist}
 Summary: A package that provides easy-to-use IPMI server management utilities
 License: BSD
 Group: System/Management
@@ -9,6 +9,7 @@ URL: http://ipmiutil.sourceforge.net
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 BuildRequires: openssl-devel gcc gcc-c++
 Patch0: isensor-negative-margin.patch
+Patch1: fix-checksel-without-ipmi.patch
 # Suggests: cron or vixie-cron or cronie or similar
 
 %description
@@ -26,6 +27,7 @@ detected, ipmiutil will use user-space direct I/Os instead.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 %configure
@@ -64,7 +66,7 @@ make install DESTDIR=%{buildroot}
 %{_initrddir}/ipmiutil_asy
 %{_initrddir}/ipmiutil_evt
 %{_initrddir}/ipmi_port
-%{_sysconfdir}/cron.daily/checksel
+%{_datadir}/%{name}/checksel
 %{_datadir}/%{name}/ipmiutil_evt.service
 %{_datadir}/%{name}/ipmiutil_asy.service
 %{_datadir}/%{name}/ipmiutil_wdt.service
@@ -125,11 +127,15 @@ then
    fi
 
    # Run some ipmiutil command to see if any IPMI interface works.
-   %{_sbindir}/ipmiutil wdt >/dev/null 2>&1
+   %{_sbindir}/ipmiutil sel -v >/dev/null 2>&1
    IPMIret=$?
 
    # If IPMIret==0, the IPMI cmd was successful, and IPMI is enabled locally.
    if [ $IPMIret -eq 0 ]; then
+      # If IPMI is enabled, automate managing the IPMI SEL
+      if [ -d %{_sysconfdir}/cron.daily ]; then
+         cp -f %{_datadir}/%{name}/checksel %{_sysconfdir}/cron.daily
+      fi
       # IPMI_IS_ENABLED, so enable services, but only if Red Hat
       if [ -f /etc/redhat-release ]; then
          if [ -x /sbin/chkconfig ]; then
@@ -177,6 +183,9 @@ then
 	rm -f ${systemd_dir}/ipmiutil_wdt.service 
 	rm -f ${systemd_dir}/ipmi_port.service    
      fi
+     if [ -f %{_sysconfdir}/cron.daily/checksel ]; then
+        rm -f %{_sysconfdir}/cron.daily/checksel
+     fi
    fi
 fi
 


More information about the scm-commits mailing list