File freeipmi.spec of Package freeipmi

#
# spec file for package freeipmi
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2003-2008 FreeIPMI Core Team
#
# 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/
#


%define name freeipmi
%define version 1.4.9
%define srcversion %{version}
%if %{?_with_debug:1}%{!?_with_debug:0}
%define release 1.debug%{?dist}
%else
%define release 1%{?dist}
%endif

%{!?_initddir: %global _initddir %{_sysconfdir}/init.d}

Name:           %{name}
Version:        %{version}
Release:        %{release}
Url:            http://www.gnu.org/software/freeipmi/
Source0:        http://ftp.gnu.org/gnu/freeipmi/%{name}-%{srcversion}.tar.gz
Source4:        http://ftp.gnu.org/gnu/freeipmi/%{name}-%{srcversion}.tar.gz.sig
Source5:        %{name}.keyring
Source1:        bmc-watchdog.service
Source2:        ipmidetectd.service
Source3:        ipmiseld.service
Summary:        FreeIPMI
License:        GPL-3.0+
Group:          System/Management
BuildRequires:  automake
BuildRequires:  libgcrypt-devel
BuildRequires:  libtool
BuildRequires:  pkg-config
BuildRequires:  texinfo
%if 0%{?suse_version} > 1010
BuildRequires:  fdupes
%endif
%if 0%{?suse_version} >=1230
BuildRequires:  pkgconfig(systemd)
%endif
%if 0%{?fedora_version} == 20 || 0%{?rhel_version} >= 700
BuildRequires:  perl-Exporter
%endif

Obsoletes:      freeipmi-ipmimonitoring < %{version}
Provides:       freeipmi-ipmimonitoring = %{version}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Requires(post): info
Requires(preun): info
# Necessary as only those archs implement iopl and friends (#368541)
ExclusiveArch:  %{ix86} x86_64 ia64 alpha

%description
This project provides "Remote-Console" (out-of-band) and
"System Management Software" (in-band) based on Intelligent
Platform Management Interface specification.

%package devel
Summary:        Development package for FreeIPMI
Group:          Development/Tools/Other
Requires:       freeipmi = %{version}

%description devel
Development package for FreeIPMI.  This package includes the FreeIPMI
header files and static libraries.

%package bmc-watchdog
Summary:        FreeIPMI BMC watchdog
Group:          System/Management
%if 0%{?suse_version}
Requires(pre):  %fillup_prereq
%if 0%{?suse_version} >=1230
%{?systemd_requires}
%endif
%endif
Requires:       freeipmi = %{version}
%if 0%{?fedora_version} || 0%{?centos_version} || 0%{?rhel_version} || 0%{?fedora} || 0%{?rhel}
Requires(post): chkconfig
Requires(preun): chkconfig
%endif
Requires:       logrotate

%description bmc-watchdog
Provides a watchdog daemon for OS monitoring and recovery.

%package ipmidetectd
Summary:        IPMI node detection monitoring daemon
Group:          System/Management
Requires:       freeipmi = %{version}
%if 0%{?fedora_version} || 0%{?centos_version} || 0%{?rhel_version} || 0%{?fedora} || 0%{?rhel}
Requires(post): chkconfig
Requires(preun): chkconfig
%endif
%if 0%{?suse_version} >=1230
%{?systemd_requires}
%endif

%description ipmidetectd
This service detects and monitors IPMI nodes.

%if %{?_with_debug:1}%{!?_with_debug:0}
  %define _enable_debug --enable-debug --enable-trace
%endif

%prep
%setup -q -n %{name}-%{srcversion}

%build
%if 0%{?suse_version} >= 1110
aclocal -I config
autoheader
libtoolize --force --automake --copy
autoconf
automake --gnu --include-deps --copy --add-missing
%endif
%if (0%{?fedora_version} > 0 && 0%{?fedora_version} < 21) || 0%{?centos_version} || 0%{?rhel_version}
%define docpath %{_docdir}/%{name}-%{version}
%else
%define docpath %{_docdir}/%{name}
%endif
%configure --program-prefix=%{?_program_prefix:%{_program_prefix}} \
           --docdir=%{docpath} \
           %{?_enable_debug} --disable-static
CFLAGS="%{optflags}" make %{?_smp_mflags}

%install
mkdir -p %{buildroot}

%if 0%{?fedora_version} || 0%{?centos_version} || 0%{?rhel_version} || 0%{?fedora} || 0%{?rhel}
# /etc/rc.d/init.d
mkdir -p %{buildroot}/%{_initddir}
# 'make install' installs to /etc/init.d
# /etc/init.d -> /etc/rc.d/init.d
(cd %{buildroot}/%{_sysconfdir}; ln -s rc.d/init.d init.d)
%endif

%if 0%{?suse_version}
%makeinstall
%else
make install DESTDIR=%{buildroot}
%endif

# Silent build check warning
rm -f %{buildroot}%{_datadir}/doc/packages/freeipmi/INSTALL

%if 0%{?fedora_version} || 0%{?centos_version} || 0%{?rhel_version} || 0%{?fedora} || 0%{?rhel}
# remove /etc/init.d -> /etc/rc.d/init.d
(cd %{buildroot}/%{_sysconfdir}; rm init.d)
%endif

# Add systemd support for openSUSE >= 12.3
%if 0%{?suse_version} >=1230
mkdir -p %{buildroot}%{_unitdir}
%{__install} -m 0644 %{S:1} %{S:2} %{S:3} %{buildroot}%{_unitdir}/
rm -r %{buildroot}%{_initddir}
%endif

# fix coherance problems with associated script filenames
rm -f %{buildroot}%{_infodir}/dir
# kludge to get around rpmlint complaining about 0 length semephore file
mkdir -p %{buildroot}%{_localstatedir}/lib/freeipmi
echo freeipmi > %{buildroot}%{_localstatedir}/lib/freeipmi/ipckey
# Remove .la files
rm -rf %{buildroot}/%{_libdir}/*.la

%if 0%{?suse_version}
mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
mv %{buildroot}%{_sysconfdir}/sysconfig/bmc-watchdog %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.bmc-watchdog
%endif

%if 0%{?suse_version} > 1010
%fdupes $RPM_BUILD_ROOT
%endif

%post
if [ -x /sbin/install-info ]; then
   #/sbin/install-info %{_infodir}/freeipmi.info.gz %{_infodir}/dir
   /sbin/install-info %{_infodir}/freeipmi-faq.info.gz %{_infodir}/dir
fi
/sbin/ldconfig

%preun
if [ $1 = 0 ]; then
   if [ -x /sbin/install-info ]; then
      #/sbin/install-info --delete %{_infodir}/freeipmi.info.gz %{_infodir}/dir
      /sbin/install-info --delete %{_infodir}/freeipmi-faq.info.gz %{_infodir}/dir
   fi
fi

%postun -p /sbin/ldconfig

%post bmc-watchdog
%if 0%{?suse_version}
%{fillup_only}
%endif
%if 0%{?suse_version} >=1230
%service_add_post bmc-watchdog.service
%else
if [ "$1" = 1 ]; then
   if [ -x %{_initddir}/bmc-watchdog ]; then
      /sbin/chkconfig --add bmc-watchdog
      /sbin/chkconfig bmc-watchdog off
   fi
fi
if [ $1 -ge 1 ]; then
   if [ -x %{_initddir}/bmc-watchdog ]; then
      if %{_initddir}/bmc-watchdog status | grep -q running; then
         %{_initddir}/bmc-watchdog restart
      else
         %{_initddir}/bmc-watchdog condrestart
      fi
   fi
fi
%endif

%preun bmc-watchdog
%if 0%{?suse_version} >=1230
%service_del_preun bmc-watchdog.service
%else
#
# Stop bmc-watchdog if it is running
#
if [ "$1" = 0 ]; then
    if [ -x %{_initddir}/bmc-watchdog ]; then
       if %{_initddir}/bmc-watchdog status | grep -q running; then
          %{_initddir}/bmc-watchdog stop
       fi
       /sbin/chkconfig --del bmc-watchdog
    fi
fi
%endif

%post ipmidetectd
%if 0%{?suse_version} >=1230
%service_add_post ipmidetectd.service
%else
if [ "$1" = 1 ]; then
   if [ -x %{_initddir}/ipmidetectd ]; then
      /sbin/chkconfig --add ipmidetectd
      /sbin/chkconfig ipmidetectd off
   fi
fi
if [ $1 -ge 1 ]; then
   if [ -x %{_initddir}/ipmidetectd ]; then
      if %{_initddir}/ipmidetectd status | grep -q running; then
         %{_initddir}/ipmidetectd restart
      else
         %{_initddir}/ipmidetectd condrestart
      fi
   fi
fi
%endif

%preun ipmidetectd
%if 0%{?suse_version} >=1230
%service_del_preun ipmidetectd.service
%else
#
# Stop ipmidetectd if it is running
#
if [ "$1" = 0 ]; then
    if [ -x %{_initddir}/ipmidetectd ]; then
       if %{_initddir}/ipmidetectd status | grep -q running; then
          %{_initddir}/ipmidetectd stop
       fi
       /sbin/chkconfig --del ipmidetectd
    fi
fi
%endif

%files
%defattr(-,root,root)
# %attr(0444,root,root) %config(noreplace) %{_sysconfdir}/ipmi_monitoring_sensors.conf
%config(noreplace) %{_sysconfdir}/freeipmi/freeipmi.conf
%dir %{_sysconfdir}/freeipmi
%config %{_sysconfdir}/freeipmi/freeipmi_interpret_sel.conf
%config %{_sysconfdir}/freeipmi/freeipmi_interpret_sensor.conf
%config %{_sysconfdir}/freeipmi/ipmidetect.conf
%config %{_sysconfdir}/freeipmi/libipmiconsole.conf
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%doc ChangeLog.0
# doc INSTALL
%doc NEWS
%doc README
%doc TODO
%doc %{_infodir}/*
%doc COPYING.ipmiping
%doc COPYING.ipmipower
%doc COPYING.ipmiconsole
%doc COPYING.ipmimonitoring
%doc COPYING.pstdout
%doc COPYING.ipmidetect
%doc COPYING.ipmi-fru
%doc COPYING.ZRESEARCH
%doc DISCLAIMER.ipmiping
%doc DISCLAIMER.ipmipower
%doc DISCLAIMER.ipmiconsole
%doc DISCLAIMER.ipmidetect
%doc DISCLAIMER.ipmimonitoring
%doc DISCLAIMER.pstdout
%doc DISCLAIMER.ipmi-fru
%doc DISCLAIMER.ipmiping.UC
%doc DISCLAIMER.ipmipower.UC
%doc DISCLAIMER.ipmiconsole.UC
%doc DISCLAIMER.ipmimonitoring.UC
%doc DISCLAIMER.pstdout.UC
%doc DISCLAIMER.ipmidetect.UC
%doc DISCLAIMER.ipmi-fru.UC
%doc doc/freeipmi-coding.txt
%doc doc/freeipmi-hostrange.txt
%doc doc/freeipmi-libraries.txt
%doc doc/freeipmi-bugs-issues-and-workarounds.txt
#%dir %{_docdir}
%if 0%{?fedora_version} == 20
%{docpath}
%endif
%config %{_sysconfdir}/freeipmi/ipmiseld.conf
%if 0%{?suse_version} >=1230
%{_unitdir}/ipmiseld.service
%else
%{_initddir}/ipmiseld
%endif
%{_libdir}/libipmiconsole*so.*
%{_libdir}/libipmidetect*so.*
%{_libdir}/libfreeipmi*so.*
%{_libdir}/libipmimonitoring.so.*
%{_localstatedir}/lib/*
%{_sbindir}/ipmi-config
%{_sbindir}/bmc-config
%{_sbindir}/bmc-info
%{_sbindir}/bmc-device
%{_sbindir}/ipmi-fru
%{_sbindir}/ipmi-locate
%{_sbindir}/ipmi-oem
%{_sbindir}/ipmi-pef-config
%{_sbindir}/pef-config
%{_sbindir}/ipmi-raw
%{_sbindir}/ipmi-sel
%{_sbindir}/ipmiseld
%{_sbindir}/ipmi-sensors
%{_sbindir}/ipmi-sensors-config
%{_sbindir}/ipmiping
%{_sbindir}/ipmipower
%{_sbindir}/ipmiconsole
%{_sbindir}/ipmimonitoring
%{_sbindir}/ipmi-chassis
%{_sbindir}/ipmi-chassis-config
%{_sbindir}/ipmi-dcmi
%{_sbindir}/ipmidetect
%{_sbindir}/ipmi-console
%{_sbindir}/ipmi-detect
%{_sbindir}/ipmi-ping
%{_sbindir}/ipmi-power
%{_sbindir}/rmcp-ping
%{_sbindir}/rmcpping
%{_sbindir}/ipmi-pet
%{_mandir}/man8/bmc-config.8*
%{_mandir}/man5/bmc-config.conf.5*
%{_mandir}/man8/bmc-info.8*
%{_mandir}/man8/bmc-device.8*
%{_mandir}/man8/ipmi-fru.8*
%{_mandir}/man8/ipmi-locate.8*
%{_mandir}/man8/ipmi-pef-config.8*
%{_mandir}/man8/ipmi-config.8*
%{_mandir}/man5/ipmi-config.conf.5*
%{_mandir}/man8/pef-config.8*
%{_mandir}/man8/ipmi-oem.8*
%{_mandir}/man8/ipmi-raw.8*
%{_mandir}/man8/ipmi-sel.8*
%{_mandir}/man8/ipmi-sensors.8*
%{_mandir}/man8/ipmi-sensors-config.8*
%{_mandir}/man8/ipmiping.8*
%{_mandir}/man8/ipmipower.8*
%{_mandir}/man5/ipmipower.conf.5*
%{_mandir}/man8/ipmiconsole.8*
%{_mandir}/man5/ipmiconsole.conf.5*
%{_mandir}/man8/ipmimonitoring.8*
%{_mandir}/man5/ipmi_monitoring_sensors.conf.5*
%{_mandir}/man5/ipmimonitoring_sensors.conf.5*
%{_mandir}/man5/ipmimonitoring.conf.5*
%{_mandir}/man5/libipmimonitoring.conf.5*
%{_mandir}/man8/ipmi-chassis.8*
%{_mandir}/man8/ipmi-chassis-config.8*
%{_mandir}/man8/ipmi-dcmi.8*
%{_mandir}/man8/ipmidetect.8*
%{_mandir}/man5/freeipmi.conf.5*
%{_mandir}/man5/ipmidetect.conf.5*
%{_mandir}/man7/freeipmi.7*
%{_mandir}/man8/rmcp-ping.8*
%{_mandir}/man8/rmcpping.8*
%{_mandir}/man5/freeipmi_interpret_sel.conf.5*
%{_mandir}/man5/freeipmi_interpret_sensor.conf.5*
%{_mandir}/man5/libipmiconsole.conf.5*
%{_mandir}/man5/ipmiseld.conf.5*
%{_mandir}/man8/ipmiseld.8*
%{_mandir}/man8/ipmi-console.8*
%{_mandir}/man8/ipmi-detect.8*
%{_mandir}/man8/ipmi-ping.8*
%{_mandir}/man8/ipmi-power.8*
%{_mandir}/man8/ipmi-pet.8*
%dir %{_localstatedir}/cache/ipmimonitoringsdrcache

%files devel
%defattr(-,root,root)
%{_libdir}/libipmiconsole.so
%{_libdir}/libfreeipmi.so
%{_libdir}/libipmidetect.so
%{_libdir}/libipmimonitoring.so
%{_libdir}/pkgconfig/*
%dir %{_includedir}/freeipmi
%dir %{_includedir}/freeipmi/api
%dir %{_includedir}/freeipmi/cmds
%dir %{_includedir}/freeipmi/debug
%dir %{_includedir}/freeipmi/driver
%dir %{_includedir}/freeipmi/fiid
%dir %{_includedir}/freeipmi/fru
%dir %{_includedir}/freeipmi/interface
%dir %{_includedir}/freeipmi/interpret
%dir %{_includedir}/freeipmi/locate
%dir %{_includedir}/freeipmi/payload
%dir %{_includedir}/freeipmi/record-format
%dir %{_includedir}/freeipmi/sdr
%dir %{_includedir}/freeipmi/sel
%dir %{_includedir}/freeipmi/sensor-read
%dir %{_includedir}/freeipmi/spec
%dir %{_includedir}/freeipmi/templates
%dir %{_includedir}/freeipmi/util

%{_includedir}/ipmiconsole.h
%{_includedir}/ipmidetect.h
%{_includedir}/ipmi_monitoring.h
%{_includedir}/ipmi_monitoring_bitmasks.h
%{_includedir}/ipmi_monitoring_offsets.h
%{_includedir}/freeipmi/*.h
%{_includedir}/freeipmi/api/*.h
%{_includedir}/freeipmi/cmds/*.h
%{_includedir}/freeipmi/debug/*.h
%{_includedir}/freeipmi/driver/*.h
%{_includedir}/freeipmi/fiid/*.h
%{_includedir}/freeipmi/fru/*.h
%{_includedir}/freeipmi/interface/*.h
%{_includedir}/freeipmi/interpret/ipmi-interpret.h
%{_includedir}/freeipmi/locate/*.h
%{_includedir}/freeipmi/payload/ipmi-sol-payload.h
%{_includedir}/freeipmi/record-format/*.h
%{_includedir}/freeipmi/sdr/*.h
%{_includedir}/freeipmi/sel/*.h
%{_includedir}/freeipmi/sensor-read/*.h
%{_includedir}/freeipmi/spec/*.h
%{_includedir}/freeipmi/templates/*.h
%{_includedir}/freeipmi/util/*.h
%{_mandir}/man3/*

%files bmc-watchdog
%defattr(-,root,root)
%doc COPYING.bmc-watchdog
%doc DISCLAIMER.bmc-watchdog
%doc DISCLAIMER.bmc-watchdog.UC
%if 0%{?suse_version} >=1230
%{_unitdir}/bmc-watchdog.service
%else
%config(noreplace) %{_initddir}/bmc-watchdog
%endif
%if 0%{?suse_version}
%attr(0444,root,root) %config(noreplace) %{_localstatedir}/adm/fillup-templates/sysconfig.bmc-watchdog
%else
%attr(0444,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/bmc-watchdog
%endif
# %attr(0444,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/bmc-watchdog
%{_sbindir}/bmc-watchdog
%{_mandir}/man8/bmc-watchdog.8*
# %dir %{_localstatedir}/log/freeipmi

%files ipmidetectd
%defattr(-,root,root)
%if 0%{?suse_version} >=1230
%{_unitdir}/ipmidetectd.service
%else
%config(noreplace) %{_initddir}/ipmidetectd
%endif
%attr(0444,root,root) %config(noreplace) %{_sysconfdir}/freeipmi/ipmidetectd.conf
%{_sbindir}/ipmidetectd
%{_mandir}/man5/ipmidetectd.conf.5*
%{_mandir}/man8/ipmidetectd.8*

%changelog