File ppc64-diag.spec of Package ppc64-diag
#
# spec file for package ppc64-diag
#
# Copyright (c) 2012 SUSE LINUX Products 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 http://bugs.opensuse.org/
#
Url: http://sourceforge.net/projects/linux-diag/files/ppc64-diag
Name: ppc64-diag
Version: 2.6.0
Release: 0
Summary: Linux for Power Platform Diagnostics
License: EPL-1.0
Group: System/Monitoring
ExclusiveArch: ppc ppc64
%if 0%{?suse_version} >= 1210
BuildRequires: systemd
%{?systemd_requires}
%define has_systemd 1
%endif
BuildRequires: bison
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: librtas-devel
BuildRequires: libservicelog-devel
BuildRequires: libvpd2-devel
BuildRequires: libvpd2-devel
BuildRequires: ncurses-devel
BuildRequires: sqlite3-devel
Requires: lsvpd
Requires: powerpc-utils >= 1.2.15
Requires: servicelog
# autoselect the package on systems which have the /vdevice/IBM,sp node
# All pSeries POWER5 and later have this property
Supplements: modalias(vio:TIBM*spS*)
PreReq: %insserv_prereq
PreReq: aaa_base
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: http://downloads.sourceforge.net/project/linux-diag/ppc64-diag/%{version}/%{name}-%{version}.tar.gz
Source1: rtas_errd.service
Patch0: %{name}.makefile.patch
Patch1: %{name}.rtas_errd.patch
Patch2: %{name}.varunused.patch
Patch3: %{name}.unistd.patch
%description
Platform diagnostics for Linux for Power writes events reported by the
System p or System i platform firmware to the servicelog, provides
automated reponses to urgent events such as environmental conditions
and predictive failures, and provides notifications of the event to
system administrators or connected service frameworks. Some error log
analysis parameters can be configured in
/etc/ppc64-diag/ppc64-diag.config.
Authors:
--------
IBM Corporation
%prep
%setup -q
%patch0
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
make
%install
make install DESTDIR=$RPM_BUILD_ROOT
chmod 644 $RPM_BUILD_ROOT/etc/ppc64-diag/servevent_parse.pl
mkdir $RPM_BUILD_ROOT/etc/ppc64-diag/ses_pages
pushd $RPM_BUILD_ROOT/etc/init.d
ln -s rtas_errd $RPM_BUILD_ROOT/usr/sbin/rcrtas_errd
popd
ln -sf /usr/sbin/usysattn $RPM_BUILD_ROOT/usr/sbin/usysfault
%if 0%{?has_systemd}
mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
install -D -m0644 %{S:1} %{buildroot}%{_unitdir}/
%endif
%files
%defattr (-,root,root,-)
%doc %attr(644,root,root) COPYRIGHT
/usr/sbin/*
%dir /etc/ppc64-diag
%config /etc/ppc64-diag/*
%config /etc/rc.powerfail
%config %attr(755,root,root) /etc/init.d/rtas_errd
%{_mandir}/man8/explain_syslog.8.gz
%{_mandir}/man8/syslog_to_svclog.8.gz
%{_mandir}/man8/diag_encl.8.gz
%{_mandir}/man8/encl_led.8.gz
%{_mandir}/man8/lp_diag.8.gz
%{_mandir}/man8/usysattn.8.gz
%{_mandir}/man8/usysfault.8.gz
%{_mandir}/man8/usysident.8.gz
%if 0%{?has_systemd}
%{_unitdir}/rtas_errd.service
%endif
%if 1
%post
# get it going if outside a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then
%if 0%{?has_systemd}
%service_add_post rtas_errd.service
%else
%{insserv_force_if_yast rtas_errd}
rcrtas_errd start || :
%endif
fi
fi
%preun
if test "$1" = "0" ; then
test -f /var/cache/ppc64-diag.registered && rmdir -v /var/cache/ppc64-diag.registered || :
fi
%if 0%{?has_systemd}
%service_del_preun rtas_errd.service
%else
%stop_on_removal rtas_errd
%endif
%postun
%if 0%{?has_systemd}
%service_del_postun rtas_errd.service
%else
%restart_on_update rtas_errd
%insserv_cleanup rtas_errd
%endif
%else
%post
# Post-install script --------------------------------------------------
/etc/ppc64-diag/ppc64_diag_setup --register >/dev/null
/etc/ppc64-diag/lp_diag_setup --register >/dev/null
if [ "$1" = "1" ]; then # first install
%if 0%{?has_systemd}
%service_add_post rtas_errd.service
%else
chkconfig --add rtas_errd
rcrtas_errd start
%endif
elif [ "$1" = "2" ]; then # upgrade
%if 0%{?has_systemd}
systemctl restart rtas_errd.service
%else
rcrtas_errd restart
%endif
fi
%preun
# Pre-uninstall script -------------------------------------------------
if [ "$1" = "0" ]; then # last uninstall
%if 0%{?has_systemd}
%service_del_preun rtas_errd.service
%else
rcrtas_errd stop
chkconfig --del rtas_errd
%endif
/etc/ppc64-diag/ppc64_diag_setup --unregister >/dev/null
/etc/ppc64-diag/lp_diag_setup --unregister >/dev/null
fi
%triggerin -- librtas
# trigger on librtas upgrades ------------------------------------------
if [ "$2" = "2" ]; then
%if 0%{?has_systemd}
systemctl restart rtas_errd.service
%else
rcrtas_errd restart
%endif
fi
%endif
%changelog