# # spec file for package ipmiutil # # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2012 Andy Cress # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: ipmiutil Version: 2.9.1 Release: 1%{?dist} Summary: Easy-to-use IPMI server management utilities License: BSD-3-Clause Group: System/Management Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz Patch: automake-1_13.patch Url: http://ipmiutil.sourceforge.net BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} >= 1210 %define req_systemd 1 %endif %if 0%{?req_systemd} BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: openssl-devel BuildRequires: systemd %define systemd_fls %{_unitdir} %else BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: openssl-devel %define systemd_fls %{_datadir}/%{name} %endif %define init_dir %{_initrddir} %description The ipmiutil package provides easy-to-use utilities to view the SEL, perform an IPMI chassis reset, set up the IPMI LAN and Platform Event Filter entries to allow SNMP alerts, Serial-Over-LAN console, event daemon, and other IPMI tasks. These can be invoked with the metacommand ipmiutil, or via subcommand shortcuts as well. IPMIUTIL can also write sensor thresholds, FRU asset tags, and has a full IPMI configuration save/restore. An IPMI driver can be provided by either the OpenIPMI driver (/dev/ipmi0) or the Intel IPMI driver (/dev/imb), etc. If used locally and no driver is detected, ipmiutil will use user-space direct I/Os instead. %package devel Summary: The includes headers and static libraries from the ipmiutil package Group: Development/Libraries/C and C++ Requires: ipmiutil %description devel The ipmiutil-devel package contains headers and libraries which are useful for building custom IPMI applications. %prep %setup -q %patch -p1 %build autoreconf -fiv %if 0%{?req_systemd} %configure --enable-systemd %else %configure %endif make %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} rm -rf %{buildroot}%{_datadir}/%{name}/ievents.[ch] rm -rf %{buildroot}%{_datadir}/%{name}/ipmi_sample_evt.[ch] rm -rf %{buildroot}%{_datadir}/%{name}/isensor.[ch] %clean rm -rf %{buildroot} %files %defattr(-, root, root, -) %dir %{_datadir}/%{name} %dir %{_var}/lib/%{name} %{_bindir}/ipmiutil %{_bindir}/idiscover %{_bindir}/ievents %{_sbindir}/ipmi_port %{_sbindir}/ialarms %{_sbindir}/iconfig %{_sbindir}/icmd %{_sbindir}/ifru %{_sbindir}/igetevent %{_sbindir}/ihealth %{_sbindir}/ilan %{_sbindir}/ireset %{_sbindir}/isel %{_sbindir}/isensor %{_sbindir}/iserial %{_sbindir}/isol %{_sbindir}/iwdt %{_sbindir}/ipicmg %{_sbindir}/ifirewall %{_sbindir}/ifwum %{_sbindir}/ihpm %{_datadir}/%{name}/ipmiutil_evt %{_datadir}/%{name}/ipmiutil_asy %{_datadir}/%{name}/ipmiutil_wdt %{_datadir}/%{name}/ipmi_port %{_datadir}/%{name}/ipmi_info %{_datadir}/%{name}/checksel %{systemd_fls}/ipmiutil_evt.service %{systemd_fls}/ipmiutil_asy.service %{systemd_fls}/ipmiutil_wdt.service %{systemd_fls}/ipmi_port.service %{_datadir}/%{name}/ipmiutil.env %{_datadir}/%{name}/ipmiutil.pre %{_datadir}/%{name}/ipmiutil.setup %{_datadir}/%{name}/ipmi_if.sh %{_datadir}/%{name}/evt.sh %{_datadir}/%{name}/bmclanpet.mib %{_datadir}/%{name}/ipmi.init.basic %{_mandir}/man8/isel.8* %{_mandir}/man8/isensor.8* %{_mandir}/man8/ireset.8* %{_mandir}/man8/igetevent.8* %{_mandir}/man8/ihealth.8* %{_mandir}/man8/iconfig.8* %{_mandir}/man8/ialarms.8* %{_mandir}/man8/iwdt.8* %{_mandir}/man8/ilan.8* %{_mandir}/man8/iserial.8* %{_mandir}/man8/ifru.8* %{_mandir}/man8/icmd.8* %{_mandir}/man8/isol.8* %{_mandir}/man8/ipmiutil.8* %{_mandir}/man8/idiscover.8* %{_mandir}/man8/ievents.8* %{_mandir}/man8/ipmi_port.8* %{_mandir}/man8/ipicmg.8* %{_mandir}/man8/ifirewall.8* %{_mandir}/man8/ifwum.8* %{_mandir}/man8/ihpm.8* %{_mandir}/man8/isunoem.8* %{_mandir}/man8/idelloem.8* %{_mandir}/man8/iekanalyzer.8* %{_mandir}/man8/itsol.8* %{_mandir}/man8/idcmi.8* %{_mandir}/man8/ismcoem.8* %doc AUTHORS ChangeLog COPYING NEWS README TODO %doc doc/UserGuide %files devel %defattr(-,root,root) %{_includedir}/ipmicmd.h %{_datadir}/%{name}/ipmi_sample.c %{_datadir}/%{name}/Makefile %{_libdir}/libipmiutil.a %post devel /sbin/ldconfig %pre %if 0%{?req_systemd} %service_add_pre ipmi_port.service ipmiutil_evt.service ipmiutil_asy.service ipmiutil_wdt.service %endif %post # POST_INSTALL, $1 = 1 if rpm -i, $1 = 2 if rpm -U if [ "$1" = "1" ] then # doing rpm -i, first time vardir=%{_var}/lib/%{name} scr_dir=%{_datadir}/%{name} %if 0%{?req_systemd} %service_add_post ipmi_port.service ipmiutil_evt.service ipmiutil_asy.service ipmiutil_wdt.service %else if [ -x /bin/systemctl ]; then systemd_dir=%{_unitdir} echo "IINITDIR=%{init_dir}" >>%{_datadir}/%{name}/ipmiutil.env cp -f ${scr_dir}/ipmiutil_evt.service ${systemd_dir} cp -f ${scr_dir}/ipmiutil_asy.service ${systemd_dir} cp -f ${scr_dir}/ipmiutil_wdt.service ${systemd_dir} cp -f ${scr_dir}/ipmi_port.service ${systemd_dir} # systemctl enable ipmi_port.service >/dev/null 2>&1 || : else cp -f ${scr_dir}/ipmiutil_wdt %{init_dir} cp -f ${scr_dir}/ipmiutil_asy %{init_dir} cp -f ${scr_dir}/ipmiutil_evt %{init_dir} cp -f ${scr_dir}/ipmi_port %{init_dir} fi %endif # Run some ipmiutil command to see if any IPMI interface works. %{_bindir}/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 /bin/systemctl ]; then touch ${scr_dir}/ipmi_port.service elif [ -x /sbin/chkconfig ]; then /sbin/chkconfig --add ipmi_port /sbin/chkconfig --add ipmiutil_wdt /sbin/chkconfig --add ipmiutil_asy /sbin/chkconfig --add ipmiutil_evt fi fi # Capture a snapshot of IPMI sensor data once now for later reuse. sensorout=$vardir/sensor_out.txt if [ ! -f $sensorout ]; then %{_bindir}/ipmiutil sensor -q >$sensorout fi fi fi %preun # before uninstall, $1 = 1 if rpm -U, $1 = 0 if rpm -e if [ "$1" = "0" ] then %if 0%{?req_systemd} %service_del_preun ipmi_port.service ipmiutil_evt.service ipmiutil_asy.service ipmiutil_wdt.service %else if [ -x /sbin/service ]; then /sbin/service ipmi_port stop >/dev/null 2>&1 /sbin/service ipmiutil_wdt stop >/dev/null 2>&1 /sbin/service ipmiutil_asy stop >/dev/null 2>&1 /sbin/service ipmiutil_evt stop >/dev/null 2>&1 fi if [ -x /sbin/chkconfig ]; then /sbin/chkconfig --del ipmi_port >/dev/null 2>&1 /sbin/chkconfig --del ipmiutil_wdt >/dev/null 2>&1 /sbin/chkconfig --del ipmiutil_asy >/dev/null 2>&1 /sbin/chkconfig --del ipmiutil_evt >/dev/null 2>&1 fi if [ -x /bin/systemctl ]; then if [ -f %{_unitdir}/ipmiutil_evt.service ]; then systemctl disable ipmi_port.service >/dev/null 2>&1 || : systemctl stop ipmiutil_evt.service >/dev/null 2>&1 || : systemctl stop ipmiutil_asy.service >/dev/null 2>&1 || : systemctl stop ipmiutil_wdt.service >/dev/null 2>&1 || : systemctl stop ipmi_port.service >/dev/null 2>&1 || : fi fi %endif if [ -f %{_sysconfdir}/cron.daily/checksel ]; then rm -f %{_sysconfdir}/cron.daily/checksel fi fi %postun %if 0%{?req_systemd} %service_del_postun ipmi_port.service ipmiutil_evt.service ipmiutil_asy.service ipmiutil_wdt.service %else if [ -x /bin/systemctl ]; then systemctl daemon-reload || : if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall systemctl try-restart ipmi_port.service || : fi systemd_dir=%{_unitdir} rm -f ${systemd_dir}/ipmiutil_evt.service 2>/dev/null rm -f ${systemd_dir}/ipmiutil_asy.service 2>/dev/null rm -f ${systemd_dir}/ipmiutil_wdt.service 2>/dev/null rm -f ${systemd_dir}/ipmi_port.service 2>/dev/null else rm -f %{init_dir}/ipmiutil_wdt 2>/dev/null rm -f %{init_dir}/ipmiutil_asy 2>/dev/null rm -f %{init_dir}/ipmiutil_evt 2>/dev/null rm -f %{init_dir}/ipmi_port 2>/dev/null fi %endif %changelog