File mcelog.spec of Package mcelog.13098

# spec file for package mcelog
# 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

#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
  %define _fillupdir /var/adm/fillup-templates

Name:           mcelog
Version:        1.60
Release:        0
Summary:        Log Machine Check Events
License:        GPL-2.0
Group:          System/Monitoring
Source:         %{name}-%{version}.tar.xz
Source2:        mcelog.sysconfig
Source3:        mcelog.systemd
Source5:        mcelog.tmpfiles
Source6:        README.email_setup
Patch1:         email.patch
Patch2:         mcelog_invert_prefill_db_warning.patch
Patch3:         Start-consolidating-AMD-specific-stuff.patch
Patch4:         patches/add-defines.patch
Patch5:         patches/add-f10h-support.patch
Patch6:         patches/add-f11h-support.patch
Patch7:         patches/add-f12h-support.patch
Patch8:         patches/add-f14h-support.patch
Patch9:         patches/add-f15h-support.patch
Patch10:        patches/add-f16h-support.patch
Patch11:        mcelog-socket-path.patch
Patch12:        fix_setgroups_missing_call.patch
BuildRequires:  libesmtp-devel
BuildRequires:  pkgconfig(systemd)
Requires:       logrotate
Requires(pre):  %fillup_prereq
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
ExclusiveArch:  %ix86 x86_64

mcelog retrieves machine check events from an x86-64 kernel in a cron
job, decodes them, and logs them to %{_localstatedir}/log/mcelog.

A machine check event is a hardware error detected by the CPU.
It should run on any x86-64 system.

In addition, it allows decoding machine check kernel panic messages.

%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1

make %{?_smp_mflags} CFLAGS="%{optflags} -fpie -pie"

export prefix=%{buildroot}%{_prefix}
export etcprefix=%{buildroot}
make -e install
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d/
install -m644 mcelog.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/mcelog

mkdir -p %{buildroot}%{_fillupdir}
install -m 644 %{SOURCE2} %{buildroot}%{_fillupdir}/sysconfig.mcelog

mkdir -p %{buildroot}/%{_docdir}/%{name}
install -m 644 %{SOURCE6} %{buildroot}/%{_docdir}/%{name}/README.email_setup
install -m 644 lk10-mcelog.pdf %{buildroot}/%{_docdir}/%{name}/lk10-mcelog.pdf
install -D -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/mcelog.service
install -D -m 0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/mcelog.conf
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcmcelog

%service_add_pre %{name}.service

%service_add_post %{name}.service
%{?tmpfiles_create:%tmpfiles_create %{_tmpfilesdir}/mcelog.conf}

%service_del_preun %{name}.service

%service_del_postun %{name}.service

%defattr (-,root,root,755)
%config %{_sysconfdir}/logrotate.d/mcelog
%dir %{_sysconfdir}/mcelog
%config %{_sysconfdir}/mcelog/mcelog.conf
%ghost /run/mcelog

openSUSE Build Service is sponsored by