From b2daa2da01b117c551b8298402c557f1e6fa904ba6bd1cd6c424bc51556f614f Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Tue, 23 Feb 2010 13:04:04 +0000 Subject: [PATCH] Accepting request 32894 from Base:System Copy from Base:System/mcelog based on submit request 32894 from user oertel OBS-URL: https://build.opensuse.org/request/show/32894 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mcelog?expand=0&rev=8 --- fix_cache_trigger.patch | 17 ++++++ mcelog-1.0pre1.tar.bz2 | 3 - mcelog-1.0pre3.tar.bz2 | 3 + mcelog.changes | 9 +++ mcelog.service | 21 +++++-- mcelog.spec | 22 ++++---- mcelog_daemon_create_pid_file.patch | 85 ----------------------------- 7 files changed, 57 insertions(+), 103 deletions(-) create mode 100644 fix_cache_trigger.patch delete mode 100644 mcelog-1.0pre1.tar.bz2 create mode 100644 mcelog-1.0pre3.tar.bz2 delete mode 100644 mcelog_daemon_create_pid_file.patch diff --git a/fix_cache_trigger.patch b/fix_cache_trigger.patch new file mode 100644 index 0000000..17fac22 --- /dev/null +++ b/fix_cache_trigger.patch @@ -0,0 +1,17 @@ +--- + triggers/cache-error-trigger | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: mcelog-1.0pre3/triggers/cache-error-trigger +=================================================================== +--- mcelog-1.0pre3.orig/triggers/cache-error-trigger ++++ mcelog-1.0pre3/triggers/cache-error-trigger +@@ -25,7 +25,7 @@ for i in $CPUS_AFFECTED ; do + logger -s -p daemon.crit -t mcelog "Offlining CPU $i due to cache error threshold" + F=$(printf "/sys/devices/system/cpu/cpu%d/online" $i) + echo 0 > $F +- if [ "$(< $F)" != "0" ] then ++ if [ "$(< $F)" != "0" ]; then + logger -s -p daemon.warn -t mcelog "Offlining CPU $i failed" + fi + done diff --git a/mcelog-1.0pre1.tar.bz2 b/mcelog-1.0pre1.tar.bz2 deleted file mode 100644 index c7e2588..0000000 --- a/mcelog-1.0pre1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:80b0593c8d1923bc33a07ab72c84654aee492de0c3b5806553ac13fb6f8ee719 -size 759376 diff --git a/mcelog-1.0pre3.tar.bz2 b/mcelog-1.0pre3.tar.bz2 new file mode 100644 index 0000000..1b7aca0 --- /dev/null +++ b/mcelog-1.0pre3.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5472acd0808cc20ade275578ca88b6eca33b945c73cffe834982809bfa2d9bb3 +size 167193 diff --git a/mcelog.changes b/mcelog.changes index 05931db..a2ec7b4 100644 --- a/mcelog.changes +++ b/mcelog.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Feb 19 00:39:36 CET 2010 - ro@suse.de + +- Update to version 1.0pre3 + - Boxboro-EX enhancements + - Bugfixes + Minor pidfile handling adjusting in service file +- Added missing conf file and trigger scripts + ------------------------------------------------------------------- Thu Dec 3 12:12:40 CET 2009 - trenn@suse.de diff --git a/mcelog.service b/mcelog.service index ab6ed6d..838260e 100644 --- a/mcelog.service +++ b/mcelog.service @@ -46,13 +46,13 @@ rc_reset mcelog="/usr/sbin/mcelog" -mcelog_params=" --daemon " -mcedev=/dev/mcelog mcelog_pid="/var/run/mcelog.pid" +mcelog_params=" --daemon --pidfile ${mcelog_pid}" +mcedev=/dev/mcelog -check="checkproc -p ${mcelog_pid} ${mcelog}" -kill="killproc -p ${mcelog_pid} ${mcelog}" -start="startproc -p ${mcelog_pid} ${mcelog} ${mcelog_params}" +check="checkproc ${mcelog}" +kill="killproc ${mcelog}" +start="startproc ${mcelog} ${mcelog_params}" test_kernel_support() { @@ -81,6 +81,17 @@ case "$1" in ${kill} rc_status -v ;; + try-restart) + ## Do a restart only if the service was active before. + $0 status + if test $? = 0; then + $0 restart + else + rc_reset # Not running is not a failure. + fi + # Remember status and be quiet + rc_status + ;; reload|restart) /etc/init.d/mcelog stop /etc/init.d/mcelog start diff --git a/mcelog.spec b/mcelog.spec index b0ea336..7f94b86 100644 --- a/mcelog.spec +++ b/mcelog.spec @@ -1,5 +1,5 @@ # -# spec file for package mcelog (Version 1.0pre1) +# spec file for package mcelog (Version 1.0pre3) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -21,14 +21,14 @@ Name: mcelog License: GPLv2+ Summary: Log Machine Check Events -Version: 1.0pre1 +Version: 1.0pre3 Release: 1 AutoReqProv: on ExclusiveArch: x86_64 PreReq: %insserv_prereq Source: mcelog-%{version}.tar.bz2 Source1: mcelog.service -Patch0: mcelog_daemon_create_pid_file.patch +Patch1: fix_cache_trigger.patch Group: System/Monitoring BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -50,20 +50,19 @@ Authors: %prep %setup -%patch0 -p1 +%patch1 -p1 %build make CFLAGS="$RPM_OPT_FLAGS" %install -mkdir -p $RPM_BUILD_ROOT/usr/sbin/ -mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man8 +export prefix=$RPM_BUILD_ROOT/usr +export etcprefix=$RPM_BUILD_ROOT +make -e install mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d/ mkdir -p $RPM_BUILD_ROOT/etc/init.d install -m755 %SOURCE1 $RPM_BUILD_ROOT/etc/init.d/mcelog ln -s /etc/init.d/mcelog $RPM_BUILD_ROOT/usr/sbin/rcmcelog -install -m755 mcelog $RPM_BUILD_ROOT/usr/sbin -install -m644 mcelog.8 $RPM_BUILD_ROOT/%{_mandir}/man8 install -m644 mcelog.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/mcelog %clean @@ -75,10 +74,10 @@ if [ -c /dev/mcelog ];then fi %preun -%stop_on_removal mcelog +%{stop_on_removal mcelog} %postun -%restart_on_update +%{restart_on_update mcelog} %insserv_cleanup %files @@ -87,6 +86,9 @@ fi /usr/sbin/mcelog %config /etc/logrotate.d/mcelog /etc/init.d/mcelog +%dir /etc/mcelog +%config /etc/mcelog/mcelog.conf +/etc/mcelog/*trigger /usr/sbin/rcmcelog %changelog diff --git a/mcelog_daemon_create_pid_file.patch b/mcelog_daemon_create_pid_file.patch deleted file mode 100644 index 1c35723..0000000 --- a/mcelog_daemon_create_pid_file.patch +++ /dev/null @@ -1,85 +0,0 @@ -mcelog daemon: Add pid file handling - -Signed-off-by: Thomas Renninger - ---- - mcelog.c | 41 +++++++++++++++++++++++++++++++++++++++-- - paths.h | 2 ++ - 2 files changed, 41 insertions(+), 2 deletions(-) - -diff --git a/mcelog.c b/mcelog.c -index e166f57..a556664 100644 ---- a/mcelog.c -+++ b/mcelog.c -@@ -35,6 +35,8 @@ - #include - #include - #include -+#include -+ - #include "mcelog.h" - #include "paths.h" - #include "k8.h" -@@ -977,6 +979,37 @@ static void process_mcefd(struct pollfd *pfd, void *data) - process(pfd->fd, d->recordlen, d->loglen, d->buf); - } - -+void exit_handler (int signal) -+{ -+ remove(DAEMON_PID_PATH); -+} -+ -+static int daemonize(int foreground) -+{ -+ int ret; -+ pid_t pid; -+ FILE *fd; -+ -+ fd = fopen(DAEMON_PID_PATH, "r"); -+ if (!fd) { -+ if (!foreground) { -+ ret = daemon(0, need_stdout()); -+ if (ret < 0) -+ return ret; -+ } -+ fd = fopen(DAEMON_PID_PATH, "w+"); -+ if (!fd) -+ return -1; -+ pid = getpid(); -+ fprintf(fd, "%d\n", pid); -+ fclose(fd); -+ signal(SIGKILL, exit_handler); -+ signal(SIGTERM, exit_handler); -+ return 0; -+ } else -+ return -1; -+} -+ - int main(int ac, char **av) - { - struct mcefd_data d = {}; -@@ -1031,8 +1064,12 @@ int main(int ac, char **av) - page_setup(); - drop_cred(); - register_pollcb(fd, POLLIN, process_mcefd, &d); -- if (!foreground && daemon(0, need_stdout()) < 0) -- err("daemon"); -+ if (daemonize(foreground) < 0) { -+ fprintf(stderr, "Could not run in background or create" -+ " pidfile: " DAEMON_PID_PATH "\n"); -+ fprintf(stderr, "Is the daemon already running?\n"); -+ exit(1); -+ } - eventloop(); - } else { - process(fd, d.recordlen, d.loglen, d.buf); -diff --git a/paths.h b/paths.h -index 6780552..efda627 100644 ---- a/paths.h -+++ b/paths.h -@@ -5,3 +5,5 @@ - #define CONFIG_FILENAME PREFIX "/etc/mcelog/mcelog.conf" - - #define SOCKET_PATH "/var/run/mcelog-client" -+ -+#define DAEMON_PID_PATH "/var/run/mcelog.pid"