Hello community, here is the log from the commit of package OpenIPMI for openSUSE:Factory checked in at 2014-10-31 09:39:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/OpenIPMI (Old) and /work/SRC/openSUSE:Factory/.OpenIPMI.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "OpenIPMI" Changes: -------- --- /work/SRC/openSUSE:Factory/OpenIPMI/OpenIPMI.changes 2014-03-16 08:04:56.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.OpenIPMI.new/OpenIPMI.changes 2014-10-31 12:22:49.000000000 +0100 @@ -1,0 +2,18 @@ +Sat Oct 25 13:24:06 UTC 2014 - [email protected] + +- Use systemd instead of sysvinit + + Add ipmi.service + + Add openipmi-helper to keep capabilities of sysvinit script + + Add systemd related macros +- Remove obsolete/depreciated macros + +------------------------------------------------------------------- +Thu Jul 10 15:08:21 UTC 2014 - [email protected] + +- Split OpenIPMI into base package and OpenIPMI-python + OpenIPMI-python gets OpenIPMI python library and openipmigui which is + a python based gui. + Like above the OpenIPMI base package does not need python-tk and tix + packages any more. + +------------------------------------------------------------------- Old: ---- openipmi.initscript New: ---- ipmi.service openipmi-helper ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ OpenIPMI.spec ++++++ --- /var/tmp/diff_new_pack.p6JTDO/_old 2014-10-31 12:22:50.000000000 +0100 +++ /var/tmp/diff_new_pack.p6JTDO/_new 2014-10-31 12:22:50.000000000 +0100 @@ -16,9 +16,6 @@ # -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} - Name: OpenIPMI BuildRequires: gd-devel BuildRequires: gdbm-devel @@ -29,22 +26,22 @@ BuildRequires: ncurses-devel BuildRequires: net-snmp-devel BuildRequires: openssl-devel -%if 0%{?suse_version} > 1200 BuildRequires: perl-macros -%endif BuildRequires: pkg-config BuildRequires: popt-devel BuildRequires: python-devel BuildRequires: python-tk BuildRequires: python-xml BuildRequires: swig +BuildRequires: systemd BuildRequires: tcl-devel BuildRequires: tix Version: 2.0.21 Release: 0 Source0: http://prdownloads.sourceforge.net/openipmi/%{name}-%{version}.tar.gz Source1: sysconfig.ipmi -Source2: openipmi.initscript +Source2: ipmi.service +Source3: openipmi-helper Patch0: OpenIPMI-prefer_perl_vendor.patch Patch2: OpenIPMI-libtool.patch Patch7: fix-conversions.patch @@ -53,24 +50,14 @@ Provides: ipmi_ui Provides: ipmicmd Provides: ipmilan -Provides: openipmigui -Requires: python-tk BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: OpenIPMI License: LGPL-2.1+ Group: System/Monitoring -PreReq: %install_info_prereq %insserv_prereq %fillup_prereq -%if 0%{?suse_version} > 1200 +PreReq: %install_info_prereq +PreReq: %fillup_prereq +%{?systemd_requires} %{perl_requires} -%else -%define perl_version %(eval "`%{__perl} -V:version`"; echo $version) -%if 0%{?fedora} -%define perl_requires perl(:MODULE_COMPAT_%{perl_version}) -Requires: %{perl_version} -%else -Requires: perl = %{perl_version} -%endif -%endif # Perl is sometimes installed in /usr/lib, not /usr/lib64 on 64-bit platforms. # %define perl_libdir %{_exec_prefix}/lib @@ -99,6 +86,18 @@ These libraries are needed to get full access to the OpenIPMI functions. +%package python +License: LGPL-2.1+ +Summary: OpenIPMI +Group: System/Monitoring +Requires: OpenIPMI python-tk tix +Provides: openipmigui +AutoReqProv: on + +%description python +The python parts provide a OpenIPMI python library and a GUI, openipmigui +making use of it. + %prep %setup -n %{name}-%{version} %patch0 -p1 @@ -118,11 +117,13 @@ %install make DESTDIR=$RPM_BUILD_ROOT install install -d $RPM_BUILD_ROOT/var/adm/fillup-templates -install -d $RPM_BUILD_ROOT/etc/init.d +install -d $RPM_BUILD_ROOT%{_unitdir} install -d $RPM_BUILD_ROOT/sbin install -m 644 %{S:1} $RPM_BUILD_ROOT/var/adm/fillup-templates -install -m 755 %{S:2} $RPM_BUILD_ROOT/etc/init.d/ipmi -ln -sf ../etc/init.d/ipmi $RPM_BUILD_ROOT/sbin/rcipmi +install -m 755 %{S:2} %{buildroot}%{_unitdir} +ln -s /usr/sbin/service $RPM_BUILD_ROOT/sbin/rcipmi +install -d ${RPM_BUILD_ROOT}%{_libexecdir} +install -m 755 %{S:3} ${RPM_BUILD_ROOT}%{_libexecdir}/openipmi-helper %{__rm} -f %{buildroot}%{_libdir}/*.la # rebuild python files to fix timestamps: @@ -132,17 +133,20 @@ %__python -c 'import compileall; compileall.compile_dir("%{buildroot}'"$d"'",ddir="'"$d"'",force=1)' done -%clean -%{?buildroot:%__rm -rf "%{buildroot}"} +%pre +%service_add_pre ipmi.service + +%preun +%service_del_preun ipmi.service %post /sbin/ldconfig -%{fillup_and_insserv -n ipmi ipmi} +%{fillup_only} +%service_add_post ipmi.service %postun /sbin/ldconfig -%restart_on_update ipmi -%insserv_cleanup +%service_add_post ipmi.service %post devel %install_info --info-dir=%_infodir %_infodir/%name.info.gz @@ -155,23 +159,17 @@ %doc CONFIGURING_FOR_LAN COPYING COPYING.BSD COPYING.LIB FAQ %doc README README.Force README.MotorolaMXP /var/adm/fillup-templates/sysconfig.ipmi -/etc/init.d/ipmi +%{_unitdir}/ipmi.service /sbin/rcipmi %{_libdir}/libOpenIPMI*.so.* +%{_libexecdir}/openipmi-helper %dir %{_sysconfdir}/ipmi %config(noreplace) %{_sysconfdir}/ipmi/* ###### perl files ###### %dir %{perl_vendorarch}/auto/OpenIPMI %{perl_vendorarch}/auto/OpenIPMI/OpenIPMI.so %{perl_vendorarch}/OpenIPMI.pm -%doc swig/OpenIPMI.i swig/perl/sample swig/perl/ipmi_powerctl -###### python files ###### -%{py_sitedir}/*OpenIPMI.* -%doc swig/OpenIPMI.i -###### gui files ###### -%dir %{py_sitedir}/openipmigui -%{py_sitedir}/openipmigui/* -%{_bindir}/openipmigui +%doc swig/perl/sample swig/perl/ipmi_powerctl ###### ui files ###### %{_bindir}/ipmi_sim @@ -186,7 +184,6 @@ %doc %{_mandir}/man1/ipmi_ui.1* %doc %{_mandir}/man1/openipmicmd.1* %doc %{_mandir}/man1/openipmish.1* -%doc %{_mandir}/man1/openipmigui.1* %doc %{_mandir}/man1/solterm.1* %doc %{_mandir}/man1/rmcp_ping.1* %doc %{_mandir}/man1/ipmi_sim.1* @@ -207,4 +204,14 @@ %doc doc/IPMI.pdf ################################################### +%files python +%defattr(644,root,root,755) +%{py_sitedir}/*OpenIPMI.* +%doc swig/OpenIPMI.i +###### gui files ###### +%dir %{py_sitedir}/openipmigui +%{py_sitedir}/openipmigui/* +%{_bindir}/openipmigui +%doc %{_mandir}/man1/openipmigui.1* + %changelog ++++++ ipmi.service ++++++ [Unit] Description=IPMI Driver After=network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/lib/openipmi-helper start ExecStop=/usr/lib/openipmi-helper stop [Install] WantedBy=multi-user.target ++++++ openipmi-helper ++++++ #!/bin/sh ############################################################################# # # ipmi: OpenIPMI Driver helper script # # Authors: Jan Safranek <[email protected]> # # Based on IPMI init script by: # Matt Domsch <[email protected]> # Chris Poblete <[email protected]> # # Status return code bits # no bits set = no errors # bit 0 set = minimum modules aren't loaded # bit 1 set = requested feature module isn't loaded # bit 2 set = /dev/ipmi0 (or /dev/imb if using that instead) doesn't exist # bit 3 set = /dev/watchdog doesn't exist # bit 4 set = lockfile doesn't exist # bit 5 set = modules are loaded even when asked to be unloaded CONFIGFILE=/etc/sysconfig/ipmi # source config info [ -r ${CONFIGFILE} ] && . ${CONFIGFILE} ############################################################################# # 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_INTERFACES="" [ "${DEV_IPMI}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_devintf" [ "${IPMI_IMB}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_imb" MODULES_FEATURES="" [ "${IPMI_WATCHDOG}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_watchdog" [ "${IPMI_POWEROFF}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_poweroff" MODULES_HW="" [ "${IPMI_SI}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SI_MODULE_NAME}" [ "${IPMI_SMB}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SMB_MODULE_NAME}" MODULES_BASE="ipmi_msghandler" MODULES="${MODULES_INTERFACES} ${MODULES_FEATURES} ${MODULES_HW} ${MODULES_BASE}" 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() { OnePlusLoaded=0 OnePlusUnloaded=0 for m in $@; do if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then echo "$m module loaded." OnePlusLoaded=1 else echo "$m module not loaded." OnePlusUnloaded=1 fi done } modules_loaded() { OnePlusLoaded=0 OnePlusUnloaded=0 for m in $@; do if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then OnePlusLoaded=1 else OnePlusUnloaded=1 fi done } device_node_exists () { if [ -e "$1" ]; then echo "$1 exists." return 1 fi echo "$1 does not exist." return 0 } minimum_modules_loaded() { rc_base=1 rc_hw=1 modules_loaded_verbose "${MODULES_BASE}" [ ${OnePlusLoaded} -eq 0 ] && rc_base=0 modules_loaded_verbose "${MODULES_HW}" [ ${OnePlusLoaded} -eq 0 ] && rc_hw=0 return $((rc_base && rc_hw)) } ############################################################################# load_si() { if [ "${IPMI_SI}" = "yes" ]; then modprobe ${IPMI_SI_MODULE_NAME} > /dev/null 2>&1 modules_loaded ${IPMI_SI_MODULE_NAME} [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1)) fi } load_smb() { if [ "${IPMI_SMB}" = "yes" ]; then modprobe ${IPMI_SMB_MODULE_NAME} > /dev/null 2>&1 modules_loaded ${IPMI_SMB_MODULE_NAME} [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1)) fi } load_hw_modules() { load_si load_smb } start_watchdog_common() { load_hw_modules modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} > /dev/null 2>&1 modules_loaded ipmi_watchdog [ ${OnePlusUnloaded} -ne 0 ] && 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() { [ "${IPMI_WATCHDOG}" != "yes" ] && return start_watchdog_common } start_watchdog() { [ "${IPMI_WATCHDOG}" != "yes" ] && RETVAL=$((RETVAL | 2)) && echo "Watchdog not configured" && return start_watchdog_common } stop_watchdog() { modprobe -q -r ipmi_watchdog > /dev/null 2>&1 modules_loaded ipmi_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 } stop_watchdog_quiet() { modprobe -q -r ipmi_watchdog > /dev/null 2>&1 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 } start_powercontrol_common() { local poweroff_opts="" load_hw_modules if [ "${IPMI_POWERCYCLE}" == "yes" ]; then 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 poweroff_powercycle > /dev/null 2>&1 && \ poweroff_opts="poweroff_powercycle=1" fi modprobe ipmi_poweroff "${poweroff_opts}" > /dev/null 2>&1 modules_loaded ipmi_poweroff [ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2)) && echo "Powercontroll startup failed: cannot load ipmi_poweroff module" && return } start_powercontrol_quiet() { [ "${IPMI_POWEROFF}" != "yes" ] && return start_powercontrol_common } start_powercontrol() { [ "${IPMI_POWEROFF}" != "yes" ] && RETVAL=$((RETVAL | 2)) && echo "Powercontroll not configured" && return start_powercontrol_common } stop_powercontrol() { modprobe -q -r ipmi_poweroff > /dev/null 2>&1 modules_loaded ipmi_poweroff if [ ${OnePlusLoaded} -ne 0 ]; then RETVAL=$((RETVAL | 32)) echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module" fi } stop_powercontrol_quiet() { modprobe -q -r ipmi_poweroff > /dev/null 2>&1 modules_loaded ipmi_poweroff [ ${OnePlusLoaded} -ne 0 ] && RETVAL=$((RETVAL | 32)) } ############################################################################# unload_all_ipmi_modules() { stop_watchdog_quiet stop_powercontrol_quiet 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() { for m in ${MODULES_INTERFACES}; 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}" lsmod | egrep -q "ipmi_(poweroff|watchdog)" > /dev/null 2>&1 if [ "$?" -ne "0" ]; then stop_watchdog_quiet stop_powercontrol_quiet for m in ${MODULES}; do modprobe -q -r ${m} > /dev/null 2>&1 done fi } ############################################################################# load_ipmi_modules () { local locdelay modprobe ipmi_msghandler > /dev/null 2>&1 modules_loaded ipmi_msghandler [ ${OnePlusLoaded} -ne 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return load_hw_modules [ $((RETVAL & 1)) -eq 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return if [ "${DEV_IPMI}" = "yes" ]; then 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} while [ ! -e /dev/ipmi${INTF_NUM} -a ${locdelay} -gt 0 ]; do locdelay=$((locdelay - 1)) sleep 0.1 done fi fi if [ "${IPMI_IMB}" = "yes" ]; then modprobe ipmi_imb > /dev/null 2>&1 modules_loaded ipmi_imb RETVAL=$((RETVAL & ~2)) [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) if [ ${OnePlusLoaded} -eq 1 ]; then DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'` rm -f /dev/imb mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4)) fi fi # Per Corey Minyard, essentially no one uses ipmi_radisys # and we don't want to encourage its further use # so it won't be handled here. return } ############################################################################# start() { load_ipmi_modules if [ ${RETVAL} -eq 0 ]; then touch ${LOCKFILE} else if [ $((RETVAL & 1)) -eq 1 ]; then echo "Startup failed." else touch ${LOCKFILE} && echo "Warning!?" fi fi start_watchdog_quiet start_powercontrol_quiet } ############################################################################# stop() { unload_ipmi_modules_leave_features modules_loaded ${MODULES_INTERFACES} if [ ${OnePlusLoaded} -ne 0 ]; then RETVAL=$((RETVAL | 32)) echo "Shutdown failed, something may be in use" else rm -f ${LOCKFILE} fi } stop_all() { unload_all_ipmi_modules modules_loaded ${MODULES} if [ ${OnePlusLoaded} -ne 0 ]; then RETVAL=$((RETVAL | 32)) echo "Shutdown failed, something may be in use" else rm -f ${LOCKFILE} fi } ############################################################################# restart() { stop_all RETVAL=0 start } ############################################################################# reload() { stop_all RETVAL=0 start } ############################################################################# status_all() { minimum_modules_loaded [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) modules_loaded_verbose ${MODULES_FEATURES} ${MODULES_INTERFACES} [ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2)) if [ "${DEV_IPMI}" = "yes" ]; then device_node_exists /dev/ipmi${INTF_NUM} [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) fi if [ "${IPMI_IMB}" = "yes" ]; then device_node_exists /dev/imb [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) fi if [ "${IPMI_WATCHDOG}" = "yes" ]; then device_node_exists /dev/watchdog [ $? -eq 0 ] && RETVAL=$((RETVAL | 8)) fi [ ! -e ${LOCKFILE} ] && RETVAL=$((RETVAL | 16)) } status() { minimum_modules_loaded [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) if [ "${DEV_IPMI}" = "yes" ]; then modules_loaded_verbose ipmi_devintf [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) device_node_exists /dev/ipmi${INTF_NUM} [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) fi if [ "${IPMI_IMB}" = "yes" ]; then device_node_exists /dev/imb [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) fi } status_watchdog() { minimum_modules_loaded [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) modules_loaded_verbose ipmi_watchdog [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) device_node_exists /dev/watchdog [ $? -eq 0 ] && RETVAL=$((RETVAL | 8)) } status_powercontrol() { minimum_modules_loaded [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) modules_loaded_verbose ipmi_powercontrol [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) } ############################################################################# usage () { echo $"Usage: $0 {start|stop|status" 1>&2 echo $" restart|condrestart|try-restart|reload|force-reload" 1>&2 echo $" start-watchdog|stop-watchdog|status-watchdog" 1>&2 echo $" start-powercontrol|stop-powercontrol|status-powercontrol" 1>&2 echo $" stop-all|status-all}" 1>&2 RETVAL=2 } condrestart () { [ -e ${LOCKFILE} ] && restart } ############################################################################# # MAIN ############################################################################# case "$1" in start) start ;; stop) stop ;; restart) restart ;; force-reload) reload ;; reload) reload ;; status) status ;; status-all) status_all ;; condrestart) condrestart ;; try-restart) condrestart ;; start-watchdog) start_watchdog ;; stop-watchdog) stop_watchdog ;; status-watchdog) status_watchdog ;; start-powercontrol) start_powercontrol ;; stop-powercontrol) stop_powercontrol ;; status-powercontrol) status_powercontrol ;; stop-all) stop_all ;; *) usage ;; esac exit ${RETVAL} ############################################################################# # end of file ############################################################################# -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
