3 %define subver 20130601
5 Summary: x86-64/x86 Machine Check Exceptions collector and decoder
6 Summary(pl.UTF-8): Narzędzie do zbierania i dekodowania wyjątków MCE na platformie x86-64/x86
9 Release: 1.%{subver}.%{rel}
11 Group: Applications/System
12 #Source0: http://www.kernel.org/pub/linux/utils/cpu/mce/%{name}-%{version}%{subver}.tar.gz
13 Source0: https://github.com/andikleen/mcelog/tarball/master/%{name}-%{version}-%{subver}.tgz
14 # Source0-md5: c48d3d3296ad0d5cbdf661e44375ea64
15 Source1: %{name}.logrotate
18 Source4: %{name}.sysconfig
19 Patch1: %{name}-FHS.patch
21 URL: https://github.com/andikleen/mcelog.git
22 BuildRequires: rpmbuild(macros) >= 1.228
23 Requires(post,preun): /sbin/chkconfig
26 ExclusiveArch: %{ix86} %{x8664}
27 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
29 %define statdir /var/lib/misc
32 mcelog is the user space backend for logging machine check errors
33 reported by the hardware to the kernel. The kernel does the immediate
34 actions (like killing processes etc.) and mcelog decodes the logs the
37 Starting with version 2.6.4 for x86-64 and 2.6.32 for x86, the Linux
38 kernel no longer decodes and logs recoverable Machine Check Exception
39 events to the kernel log on its own. It is recommended that mcelog
40 runs on all those machines.
42 Instead, the MCE data is kept in a buffer which can be read from
43 userpace via the /dev/mcelog device node. You need this tool to
44 collect and decode those events; it will log the decoded MCE events
47 %description -l pl.UTF-8
48 mcelog to program do logowania błędów sprzętowych Machine Check
49 Exception zgłaszanych przez sprzęt (x86 i x86-64) do jądra. Jądro
50 podejmuje natychmiastowe akcje (takie jak odłączanie procesorów), a
51 mcelog dekoduje logi tych błędów.
53 Począwszy od wersji 2.6.4 dla x86-64 i 2.6.32 dla x86 jądro Linuksa
54 już samodzielnie nie dekoduje ani nie loguje niekrytycznych zdarzeń
55 MCE - zaleca się uruchamianie mceloga na tych wszystkich maszynach.
57 Zamiast logowania przez jądro, dane MCE są przechowywane w buforze,
58 który może być czytany z przestrzeni użytkownika poprzez urządzenie
59 /dev/mcelog. To narzędzie jest potrzebne do zbierania i dekodowania
60 tych zdarzeń; loguje ono zdekodowane zdarzenia MCE do /var/log/mcelog.
64 mv andikleen-mcelog-*/* .
71 CFLAGS="%{rpmcflags} -fpie -pie"
74 rm -rf $RPM_BUILD_ROOT
75 install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig,{cron,logrotate}.d},/var/log,%{statdir}}
78 prefix=$RPM_BUILD_ROOT%{_prefix} \
79 etcprefix=$RPM_BUILD_ROOT
81 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
82 cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
83 install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
84 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
86 :> $RPM_BUILD_ROOT%{statdir}/memory-errors
89 rm -rf $RPM_BUILD_ROOT
92 /sbin/chkconfig --add %{name}
93 %service %{name} restart
96 if [ "$1" = "0" ]; then
97 %service -q %{name} stop
98 /sbin/chkconfig --del %{name}
102 %defattr(644,root,root,755)
103 %doc CHANGES README TODO TODO-diskdb mce.pdf
104 %attr(755,root,root) %{_sbindir}/mcelog
105 %attr(640,root,root) /etc/cron.d/mcelog
106 %attr(754,root,root) /etc/rc.d/init.d/%{name}
107 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
108 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mcelog
109 %dir %{_sysconfdir}/%{name}
110 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
111 # do replace on upgrade, in fact, these should be moved to /lib/mcelog as they
112 # all support foo.local invocation at the end
113 %attr(755,root,root) %config %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*-trigger
114 %attr(640,root,root) %ghost %{statdir}/memory-errors
115 %{_mandir}/man8/mcelog.8*