From 547b3c5c0db4e749f49ad7246412c8269fd87b1c Mon Sep 17 00:00:00 2001 From: Phil Knirsch Date: Mon, 27 Jun 2005 14:57:04 +0000 Subject: [PATCH] - Updated to OpenIPMI-1.4.14 - Split the main package into normal and libs package for multilib support - Added impitool-1.8.2 to OpenIPMI and put it in tools package - Added sysconf and initscript (#158270) - Fixed oob subscripts (#149142) --- .cvsignore | 1 + OpenIPMI.spec | 92 +++++++++++++++++++-- openipmi.initscript | 195 ++++++++++++++++++++++++++++++++++++++++++++ openipmi.sysconf | 30 +++++++ sources | 3 +- 5 files changed, 312 insertions(+), 9 deletions(-) create mode 100644 openipmi.initscript create mode 100644 openipmi.sysconf diff --git a/.cvsignore b/.cvsignore index 3e18de5..076b6c1 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1,2 @@ OpenIPMI-1.4.11.tar.gz +ipmitool-1.8.2.tar.gz diff --git a/OpenIPMI.spec b/OpenIPMI.spec index f599e6a..582c7b7 100644 --- a/OpenIPMI.spec +++ b/OpenIPMI.spec @@ -1,18 +1,40 @@ +%define ipmitoolver 1.8.2 Summary: OpenIPMI (Intelligent Platform Management Interface) library and tools Name: OpenIPMI -Version: 1.4.11 -Release: 5 +Version: 1.4.14 +Release: 1 License: GPL Group: System Environment/Base +URL: http://sourceforge.net/projects/openipmi/ Source: http://prdownloads.sourceforge.net/openipmi/%{name}-%{version}.tar.gz +Source2: http://prdownloads.sourceforge.net/ipmitool/ipmitool-%{ipmitoolver}.tar.gz +Source3: openipmi.sysconf +Source4: openipmi.initscript Patch1: OpenIPMI-1.4.11-gcc4.patch +Patch2: OpenIPMI-1.4.14-oob.patch BuildRoot: /var/tmp/%{name}-%{version}-root BuildPrereq: gdbm-devel swig %description The Open IPMI project aims to develop an open code base to allow access to platform information using Intelligent Platform Management Interface (IPMI). -This package contains the runtime libraries and tools of the OpenIPMI project. +This package contains the tools of the OpenIPMI project. + +%package libs +Group: Development/Libraries +Summary: The OpenIPMI runtime libraries + +%description libs +The OpenIPMI-libs package contains the runtime libraries for shared binaries +and applications. + +%package tools +Group: Applications/System +Summary: OpenIPMI utilities and scripts from ipmitool + +%description tools +The OpenIPMI-tools package contains the addon utilities and script from the +ipmitool project. %package devel Group: Development/Libraries @@ -24,37 +46,91 @@ The OpenIPMI-devel package contains the development libraries and header files of the OpenIPMI project. %prep -%setup -q +%setup -q -a 2 %patch1 -p1 -b .gcc4 +%patch2 -p1 -b .oob %build %configure make +pushd ipmitool-%{ipmitoolver} +%configure +make +popd %install %makeinstall rm -rf $RPM_BUILD_ROOT/%{_libdir}/*.la +pushd ipmitool-%{ipmitoolver} +%makeinstall +rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/ +popd + +install -d ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig +install -m 644 %SOURCE3 ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/ipmi +install -d ${RPM_BUILD_ROOT}%{_initrddir} +install -m 755 %SOURCE4 ${RPM_BUILD_ROOT}%{_initrddir}/ipmi + +%post +/sbin/chkconfig --add ipmi + +%preun +if [ $1 = 0 ]; then + service impi stop >/dev/null 2>&1 + /sbin/chkconfig --del ipmi +fi + +%postun +if [ "$1" -ge "1" ]; then + service ipmi condrestart >/dev/null 2>&1 || : +fi + +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) -%{_bindir}/* -%{_libdir}/*.so.* -%{_libdir}/pkgconfig/* -%{_mandir}/man[178]/* +%config(noreplace) %{_sysconfdir}/sysconfig/ipmi +%config(noreplace) %{_initrddir}/ipmi +%{_bindir}/ipmi_ui +%{_bindir}/ipmicmd +%{_bindir}/ipmilan +%{_bindir}/ipmish +%{_mandir}/man[18]/* %{_libdir}/perl5/site_perl/*/*-linux-thread-multi/OpenIPMI.pm %dir %{_libdir}/perl5/site_perl/*/*-linux-thread-multi/auto/OpenIPMI %{_libdir}/perl5/site_perl/*/*-linux-thread-multi/auto/OpenIPMI/* +%files tools +%defattr(-,root,root) +%{_datadir}/ipmitool/ +%{_bindir}/ipmitool +/usr/sbin/ipmievd + +%files libs +%defattr(-,root,root) +%{_libdir}/*.so.* +%{_libdir}/pkgconfig/* + %files devel %defattr(-,root,root) +%{_mandir}/man7/* %{_includedir}/OpenIPMI %{_libdir}/*.so %{_libdir}/*.a %changelog +* Mon Jun 27 2005 Phil Knirsch 1.4.14-2 +- Updated to OpenIPMI-1.4.14 +- Split the main package into normal and libs package for multilib support +- Added impitool-1.8.2 to OpenIPMI and put it in tools package +- Added sysconf and initscript (#158270) +- Fixed oob subscripts (#149142) + * Wed Mar 30 2005 Phil Knirsch 1.4.11-5 - Correctly put libs in the proper packages diff --git a/openipmi.initscript b/openipmi.initscript new file mode 100644 index 0000000..34cfe1e --- /dev/null +++ b/openipmi.initscript @@ -0,0 +1,195 @@ +#!/bin/sh +############################################################################# +# +# ipmi: OpenIPMI Driver init script +# +# Authors: Matt Domsch +# Chris Poblete +# +# chkconfig: - 04 96 +# description: OpenIPMI Driver init script +# +### BEGIN INIT INFO +# Provides: ipmidrv +# Required-Start: $localfs $remotefs $syslog +# Required-Stop: $localfs $remotefs $syslog +# Default-Start: +# Default-Stop: +# Short-Description: OpenIPMI Driver init script +# Description: OpenIPMI Driver init script +### END INIT INFO +# +############################################################################# +# for log_success_msg and friends +[ -r /lib/lsb/init-functions ] && . /lib/lsb/init-functions +# source config info +[ -r /etc/sysconfig/ipmi ] && . /etc/sysconfig/ipmi + +############################################################################# +# GLOBALS +############################################################################# +MODULE_NAME="ipmi" +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="ipmi_radisys ipmi_imb ipmi_poweroff ipmi_watchdog \ + ipmi_devintf ${IPMI_SMB_MODULE_NAME} ${IPMI_SI_MODULE_NAME} \ + ipmi_msghandler" + + +RETVAL=0 +LOCKFILE=/var/lock/subsys/ipmi + +############################################################################# +start_watchdog() +{ + if [ "${IPMI_WATCHDOG}" = "1" ]; then + modprobe ipmi_watchdog || RETVAL=2 + fi +} + +stop_watchdog() +{ + modprobe -r ipmi_watchdog +} + +start_powercontrol() +{ + local poweroff_opts="" + if [ "${IPMI_POWEROFF}" = "1" ]; then + [ "${IPMI_POWERCYCLE}" == "1" ] && poweroff_opts="chassis_ctrl_cmd_param=2" + modprobe ipmi_poweroff "${poweroff_opts}" || RETVAL=2 + fi +} + +stop_powercontrol() +{ + modprobe -r ipmi_poweroff +} + +############################################################################# +load_ipmi_modules () +{ + modprobe ipmi_msghandler || RETVAL=1 + if [ "${IPMI_SI}" = "1" ]; then + modprobe ${IPMI_SI_MODULE_NAME} || RETVAL=1 + fi + if [ "${IPMI_SMB}" = "1" ]; then + modprobe ${IPMI_SMB_MODULE_NAME} || RETVAL=1 + fi + [ "${RETVAL}" = "1" ] && return + + if [ "${DEV_IPMI}" = "1" ]; then + modprobe ipmi_devintf || RETVAL=2 + if [ "${RETVAL}" != "2" ]; then + # Note, this really should be done by udev on 2.6 + DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'` + mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=2 + ln -sf /dev/ipmi${INTF_NUM} /dev/ipmi || RETVAL=2 + fi + fi + + start_watchdog + start_powercontrol + if [ "${IPMI_IMB}" = "1" ]; then + modprobe ipmi_imb || RETVAL=2 + # FIXME create canonical /dev/foo entry + fi + if [ "${IPMI_RADISYS}" = "1" ]; then + modprobe ipmi_radisys || RETVAL=2 + # FIXME create canonical /dev/foo entry + fi + return +} + +############################################################################# +unload_ipmi_modules() +{ + # Note, deleting these /dev files really should be done by udev + # so this function will change soon as the driver changes + # to allow such to happen automatically. + rm -f "/dev/ipmi${INTF_NUM}" + rm -f "/dev/ipmi" + for m in ${MODULES}; do + modprobe -q -r ${m} + done +} + +############################################################################# +start() +{ + echo -n $"Starting ${MODULE_NAME} drivers: " + load_ipmi_modules + [ "${RETVAL}" = "1" ] && log_failure_msg && return + [ "${RETVAL}" = "2" ] && touch ${LOCKFILE} && log_warning_msg + [ "${RETVAL}" = "0" ] && touch ${LOCKFILE} && log_success_msg +} + +############################################################################# +stop() +{ + echo -n $"Stopping ${MODULE_NAME} drivers: " + unload_ipmi_modules + rm -f ${LOCKFILE} + log_success_msg +} + +############################################################################# +restart() +{ + stop + start +} + +############################################################################# +status () +{ + for m in ${MODULES}; do + if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then + echo "$m module loaded" + else + echo "$m module not loaded" + fi + done +} + +usage () +{ + echo $"Usage: $0 {start|stop|status|restart|condrestart|" + echo $" start-watchdog|stop-watchdog|start-powercontrol|stop-powercontrol}" 1>&2 + RETVAL=1 +} + +condrestart () +{ + [ -e ${LOCKFILE} ] && restart +} + +############################################################################# +# MAIN +############################################################################# +case "$1" in + start) start ;; + stop) stop ;; + restart) restart ;; + status) status ;; + condrestart) condrestart ;; + start-watchdog) start_watchdog ;; + stop-watchdog) stop_watchdog ;; + start-powercontrol) start_powercontrol ;; + stop-powercontrol) stop_powercontrol ;; + *) usage ;; +esac + +exit ${RETVAL} + +############################################################################# +# end of file +############################################################################# diff --git a/openipmi.sysconf b/openipmi.sysconf new file mode 100644 index 0000000..60db097 --- /dev/null +++ b/openipmi.sysconf @@ -0,0 +1,30 @@ +# Enable standard hardware interfaces (KCS, BT, SMIC) +# You probably want this enabled. +IPMI_SI=1 + +# Enable nonstandard interfaces (SMB via i2c) +# IPMI_SMB=1 + +# Enable /dev/ipmi0 interface, used by ipmitool, ipmicmd, +# and other userspace IPMI-using applications. +# You probably want this enabled. +DEV_IPMI=1 + +# Enable IPMI_WATCHDOG if you want the IPMI watchdog +# to reboot the system if it hangs +# IPMI_WATCHDOG=1 + +# Enable IPMI_POWEROFF if you want the IPMI +# poweroff module to be loaded. +# IPMI_POWEROFF=1 + +# Enable IPMI_POWERCYCLE if you want the system to be power-cycled (power +# down, delay briefly, power on) rather than power off, on systems +# that support such. IPMI_POWEROFF=1 is also required. +# IPMI_POWERCYCLE=1 + +# Enable "legacy" interfaces for applications +# Intel IMB driver interface +# IPMI_IMB=1 +# Radisys driver interface +# IPMI_RADISYS=1 diff --git a/sources b/sources index c71abbc..145140f 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -6ca47bafdf25d54dc07b87c8f3726af2 OpenIPMI-1.4.11.tar.gz +06fc4b2c8d758f4f9187f0065188542b OpenIPMI-1.4.14.tar.gz +d249ddd2176385fcea93753f5e103160 ipmitool-1.8.2.tar.gz