openhpi/openhpi.spec

210 lines
6.8 KiB
RPMSpec

#
# spec file for package openhpi
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 https://bugs.opensuse.org/
#
Name: openhpi
Version: 3.8.0
Release: 0
Summary: Implementation of SA Forum's Hardware Platform Interface (HPI)
License: BSD-3-Clause
Group: System/Monitoring
URL: https://github.com/open-hpi/openhpi
Source: openhpi-%{version}.tar.xz
#Source1: openhpi-rpmlintrc
Source2: AUTHORS
Patch0: unlink-pidfile-on-error.patch
Patch2: openhpi-3.4.0-systemd.patch
Patch3: fix_openipmi_typedef_selector_change.patch
Patch4: fix_implicit_declarations.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: docbook-toys
BuildRequires: docbook-utils
BuildRequires: e2fsprogs-devel
BuildRequires: gcc-c++
BuildRequires: gdbm-devel
BuildRequires: glib2-devel
BuildRequires: libtool
BuildRequires: libxml2-devel
BuildRequires: ncurses-devel
BuildRequires: net-snmp-devel
BuildRequires: tcpd-devel
BuildRequires: pkgconfig(systemd)
%description
OpenHPI is an open source project created with the intent of providing
an implementation of the SA Forum's Hardware Platform Interface (HPI).
HPI provides an abstracted interface to managing computer hardware,
typically for chassis and rack based servers. HPI includes a resource
modeling; access to and control over sensor, control, watchdog, and
inventory data associated with resources; abstracted System Event Log
interfaces; hardware events and alerts; and a managed hotswap
interface.
OpenHPI provides a modular mechanism for adding new hardware and device
support easily. Many plug-ins exist in the OpenHPI source tree to
provide access to various types of hardware. This includes, but is not
limited to, IPMI based servers, Blade Center, and machines that export
data via sysfs. For up-to-date status on these components, check out
the status page.
%package devel
Summary: Development Files for HPI
Group: Development/Libraries/C and C++
Requires: OpenIPMI-devel
Requires: bzip2
Requires: e2fsprogs-devel
Requires: gdbm-devel
Requires: glib2-devel
Requires: glibc-devel
Requires: libstdc++-devel
Requires: libtool
Requires: ncurses-devel
Requires: net-snmp-devel
Requires: openhpi = %{version}
Requires: openhpi-daemon
Requires: openssl-devel
Requires: popt-devel
Requires: zlib-devel
%description devel
Contains additional files needed for a developer to create applications
and/or middleware that use the Service Availability Forum's HPI
specification
%package clients
Summary: HPI Command-line Applications
Group: System/Monitoring
Requires: openhpi = %{version}
%description clients
This package contains HPI command-line utilities
Open HPI is an open source implementation of the SA Forum's Hardware
Platform Interface (HPI). HPI provides an abstracted interface to
managing computer hardware, typically for chassis and rack based
servers.
%package daemon
Summary: Implementation of SA Forum's Hardware Platform Interface (HPI)
Group: System/Monitoring
Requires: openhpi = %{version}
%{?systemd_requires}
%description daemon
OpenHPI is an open source project created with the intent of providing
an implementation of the SA Forum's Hardware Platform Interface (HPI).
HPI provides an abstracted interface to managing computer hardware,
typically for chassis and rack based servers. HPI includes a resource
modeling; access to and control over sensor, control, watchdog, and
inventory data associated with resources; abstracted System Event Log
interfaces; hardware events and alerts; and a managed hotswap
interface.
OpenHPI provides a modular mechanism for adding new hardware and device
support easily. Many plugins exist in the OpenHPI source tree to
provide access to various types of hardware. This includes, but is not
limited to, IPMI based servers, Blade Center, and machines which export
data via sysfs. For up-to-date status on these components, please check
out the status page.
%prep
%setup -q
%autopatch -p1
%build
autoreconf -fiv
# fix permissions
chmod a-x plugins/simulator/*.[ch]
chmod a-x clients/*.[ch]
export CFLAGS="%{optflags} -fno-strict-aliasing -DGLIB_DISABLE_DEPRECATION_WARNINGS"
export CXXFLAGS="${CFLAGS}"
%configure \
--disable-static \
--disable-ipmi --disable-sysfs --enable-daemon \
--enable-ipmidirect --enable-simulator --enable-clients \
--enable-ilo2_ribcl --enable-oa_soap \
--with-systemdsystemunitdir=%{_unitdir} \
--with-varpath=%{_localstatedir}/lib/%{name}
make %{?_smp_mflags}
make %{?_smp_mflags} documentation
###################################################
%install
###################################################
%make_install
install -Dd -m 0755 \
%{buildroot}%{_sysconfdir}/openhpi \
%{buildroot}%{_localstatedir}/lib/openhpi
install -m 0644 openhpi.conf.example %{buildroot}%{_sysconfdir}/openhpi/openhpi.conf
ln -sf service %{buildroot}%{_sbindir}/rcopenhpid
rm -rv %{buildroot}%{_datadir}/doc/%{name}
find %{buildroot} -type f -name "*.la" -delete -print
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%pre daemon
%service_add_pre openhpid.service
%preun daemon
%service_del_preun openhpid.service
%post daemon
/sbin/ldconfig
%service_add_post openhpid.service
echo "Check OPENHPI_UNCONFIGURED in %{_sysconfdir}/openhpi/openhpi.conf"
%postun daemon
/sbin/ldconfig
%service_del_postun openhpid.service
%files
%defattr(-,root,root,0755)
%dir %attr(0750,root,root) %{_sysconfdir}/openhpi
%config(noreplace) %attr(0640,root,root) %{_sysconfdir}/openhpi/*
%license COPYING
%doc ChangeLog README README.daemon *.example
%dir %{_localstatedir}/lib/openhpi
%dir %{_libdir}/openhpi
%{_libdir}/libopen*.so.*
%{_libdir}/openhpi/lib*.so*
%{_mandir}/man7/openhpi.7%{?ext_man}
%files devel
%{_includedir}/openhpi
%{_libdir}/pkgconfig/openhpi.pc
%{_libdir}/pkgconfig/openhpiutils.pc
%{_libdir}/libopen*.so
%files clients
%{_bindir}/hpi*
%{_mandir}/man1/hpi*.1%{?ext_man}
%{_bindir}/oh*
%{_mandir}/man1/oh*.1%{?ext_man}
%files daemon
%doc README.daemon
%{_unitdir}/openhpid.service
%{_sbindir}/openhpid
%{_sbindir}/rcopenhpid
%{_mandir}/man8/openhpid.8%{?ext_man}
%changelog