ppc64-diag/ppc64-diag.spec

166 lines
6.3 KiB
RPMSpec

#
# spec file for package ppc64-diag
#
# Copyright (c) 2024 SUSE LLC
#
# 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: ppc64-diag
Version: 2.7.9
Release: 0
Summary: Linux for Power Platform Diagnostics
License: GPL-2.0-or-later
Group: System/Monitoring
URL: https://github.com/power-ras/ppc64-diag
Source0: https://github.com/power-ras/ppc64-diag/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1: ppc64-diag-encl.service
Source2: ppc64-diag-encl.timer
Source3: ppc64-diag-nvme.service
Source4: ppc64-diag-nvme.timer
#PATCH-FIX-OPENSUSE - ppc64-diag.varunused.patch - fix unused variables
Patch1: ppc64-diag.varunused.patch
#PATCH-FIX-UPSTREAM - rtas_errd-Handle-multiple-platform-dumps.patch - store multiple dumps
Patch2: rtas_errd-Handle-multiple-platform-dumps.patch
#PATCH-FIX-UPSTREAM - Enclosure fault LED support
Patch3: 0001-ppc64-diag-Move-trim_trail_space-function-to-common-.patch
Patch4: 0002-ppc64-diag-lp_diag-Utilize-trim_trail_space-function.patch
Patch5: 0003-ppc64-diag-lp_diag-Enable-light-path-diagnostics-for.patch
Patch6: nvme_call_home-remove-d-and-f-as-visible-options.patch
Patch7: nvme_call_home-remove-d-and-f-from-usage-message.patch
Patch8: diag_nvme-improvements-to-status-and-err-messages.patch
Patch9: diags-diag_nvme-call_home-command-fails-on-nvmf-driv.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: librtas-devel >= 1.4.0
BuildRequires: libservicelog-devel
BuildRequires: libtool
BuildRequires: libvpd-devel
BuildRequires: perl
BuildRequires: pkgconfig
BuildRequires: systemd-rpm-macros
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(ncurses)
BuildRequires: pkgconfig(sqlite3)
# Light Path Diagnostics depends on below lsvpd version.
Requires: lsvpd >= 1.7.1
Requires: powerpc-utils >= 1.3.2
Requires: servicelog
Requires(post): aaa_base
# 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*)
ExclusiveArch: ppc ppc64 ppc64le
%description
This package contains various diagnostic tools for PowerLinux.
These tools captures the diagnostic events from Power Systems
platform firmware, SES enclosures and device drivers, and
write events to servicelog database. It also provides automated
responses to urgent events such as environmental conditions and
predictive failures, if appropriate modifies the FRUs fault
indicator(s) and provides event notification to system
administrators or connected service frameworks.
%prep
%setup -q
%autopatch -p1
%build
sed -i 's@%{_prefix}/libexec/ppc64-diag@%{_libexecdir}@g' scripts/opal_errd.service
sed -i 's@%{_prefix}/libexec/ppc64-diag@%{_libexecdir}@g' scripts/rtas_errd.service
autoreconf -fvi
%configure
make %{?_smp_mflags}
%install
%make_install
chmod 644 %{buildroot}%{_sysconfdir}/ppc64-diag/servevent_parse.pl
mkdir %{buildroot}%{_sysconfdir}/ppc64-diag/ses_pages
ln -sf %{_sbindir}/usysattn %{buildroot}%{_sbindir}/usysfault
install -D -m0644 scripts/rtas_errd.service %{buildroot}%{_unitdir}/rtas_errd.service
install -D -m0644 scripts/opal_errd.service %{buildroot}%{_unitdir}/opal_errd.service
install -D -m 0644 %{SOURCE1} %{buildroot}/%{_unitdir}/ppc64-diag-encl.service
install -D -m 0644 %{SOURCE2} %{buildroot}/%{_unitdir}/ppc64-diag-encl.timer
install -D -m 0644 %{SOURCE3} %{buildroot}/%{_unitdir}/ppc64-diag-nvme.service
install -D -m 0644 %{SOURCE4} %{buildroot}/%{_unitdir}/ppc64-diag-nvme.timer
ln -s service %{buildroot}%{_sbindir}/rcrtas_errd
ln -s service %{buildroot}%{_sbindir}/rcopal_errd
rm %{buildroot}%{_prefix}/libexec/%{name}/opal_errd
rm %{buildroot}%{_prefix}/libexec/%{name}/rtas_errd
rm %{buildroot}%{_datadir}/doc/%{name}/COPYING
rm %{buildroot}%{_datadir}/doc/%{name}/README.md
rm -rf %{buildroot}/etc/cron.daily
%check
%make_build check
for i in opal_errd common diags/test ; do
pushd $i
./run_tests
popd
done
%files
%license COPYING
%doc README.md
%{_sbindir}/*
%dir %{_sysconfdir}/ppc64-diag
%config %{_sysconfdir}/ppc64-diag/*
%config %{_sysconfdir}/rc.powerfail
%{_mandir}/man8/*.8%{?ext_man}
%{_unitdir}/rtas_errd.service
%{_unitdir}/opal_errd.service
%{_unitdir}/ppc64-diag-encl.service
%{_unitdir}/ppc64-diag-encl.timer
%{_unitdir}/ppc64-diag-nvme.service
%{_unitdir}/ppc64-diag-nvme.timer
%post
%{_sysconfdir}/ppc64-diag/ppc64_diag_setup --register >/dev/null 2>&1
%{_sysconfdir}/ppc64-diag/lp_diag_setup --register >/dev/null 2>&1
%service_add_post rtas_errd.service
%service_add_post opal_errd.service
%service_add_post ppc64-diag-encl.service ppc64-diag-encl.timer ppc64-diag-nvme.service ppc64-diag-nvme.timer
%preun
# Pre-uninstall script -------------------------------------------------
if [ "$1" = "0" ]; then # last uninstall
%service_del_preun rtas_errd.service
%service_del_preun opal_errd.service
%service_del_preun ppc64-diag-encl.service ppc64-diag-encl.timer ppc64-diag-nvme.service ppc64-diag-nvme.timer
%{_sysconfdir}/ppc64-diag/ppc64_diag_setup --unregister >/dev/null
%{_sysconfdir}/ppc64-diag/lp_diag_setup --unregister >/dev/null
fi
%triggerin -- librtas
# trigger on librtas upgrades ------------------------------------------
if [ "$2" = "2" ]; then
systemctl restart rtas_errd.service >/dev/null
fi
%pre
%service_add_pre rtas_errd.service
%service_add_pre opal_errd.service
%service_add_pre ppc64-diag-encl.service ppc64-diag-encl.timer ppc64-diag-nvme.service ppc64-diag-nvme.timer
%postun
%service_del_postun rtas_errd.service
%service_del_postun opal_errd.service
%service_del_postun ppc64-diag-encl.service ppc64-diag-encl.timer ppc64-diag-nvme.service ppc64-diag-nvme.timer
%changelog