rasdaemon/rasdaemon.spec

104 lines
3.3 KiB
RPMSpec

#
# spec file for package rasdaemon
#
# 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: rasdaemon
Version: 0.8.0.49.git+f9cb13b
Release: 0
Summary: Utility to receive RAS error tracings
License: GPL-2.0-only
Group: Hardware/Other
URL: http://git.infradead.org/users/mchehab/rasdaemon.git
Source: %{name}-%{version}.tar.xz
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gettext-devel
BuildRequires: libtool
BuildRequires: libtraceevent-devel
BuildRequires: sqlite3-devel
Requires: perl-DBD-SQLite
Requires(pre): %fillup_prereq
%{?systemd_ordering}
%ifarch %ix86 x86_64
Requires: dmidecode
%else
Recommends: dmidecode
%endif
%description
rasdaemon is a RAS (Reliability, Availability and Serviceability) logging tool.
It currently records memory errors, using the EDAC tracing events.
EDAC is drivers in the Linux kernel that handle detection of ECC errors
from memory controllers for most chipsets on i386 and x86_64 architectures.
EDAC drivers for other architectures like arm also exists.
This userspace component consists of an init script which makes sure
EDAC drivers and DIMM labels are loaded at system startup, as well as
an utility for reporting current error counts from the EDAC sysfs files.
%prep
%autosetup
%build
# Fixes:
# Makefile.am: error: required file './README' not found
# on old autoconf versions
ln -s README.md README
autoreconf -fvi
%configure --enable-all --with-sysconfdefdir=%{_sysconfdir}/sysconfig
CFLAGS="%{optflags}" make %{?_smp_mflags} V=1
%install
%make_install
make install DESTDIR=%{buildroot}
install -D -p -m 0644 misc/rasdaemon.service %{buildroot}%{_unitdir}/rasdaemon.service
install -D -p -m 0644 misc/ras-mc-ctl.service %{buildroot}%{_unitdir}/ras-mc-ctl.service
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcrasdaemon
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcras-mc-ctl
rm INSTALL %{buildroot}%{_includedir}/*.h
mkdir -p %{buildroot}%{_localstatedir}/lib/rasdaemon
mkdir -p %{buildroot}%{_fillupdir}
mv %{buildroot}%{_sysconfdir}/sysconfig/rasdaemon %{buildroot}/%{_fillupdir}/sysconfig.rasdaemon
%pre
%service_add_pre rasdaemon.service ras-mc-ctl.service
%post
%fillup_only
%service_add_post rasdaemon.service ras-mc-ctl.service
%preun
%service_del_preun rasdaemon.service ras-mc-ctl.service
%postun
%service_del_postun rasdaemon.service ras-mc-ctl.service
%files
%license COPYING
%doc AUTHORS ChangeLog README.md TODO
%{_sbindir}/rasdaemon
%{_sbindir}/ras-mc-ctl
%{_sbindir}/rcrasdaemon
%{_sbindir}/rcras-mc-ctl
%{_mandir}/*/*
%{_unitdir}/*.service
%dir %{_sysconfdir}/ras
%dir %{_localstatedir}/lib/rasdaemon
%ghost %{_localstatedir}/lib/rasdaemon/ras-mc_event.db
%attr (644,root,root) %{_fillupdir}/sysconfig.rasdaemon
%changelog