From b8ae9c4ad6a5dd8f2afb6f6616492a1cbcc4540703de0f768b96ddf4b7ff574c Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Tue, 23 Feb 2010 13:04:03 +0000 Subject: [PATCH] Accepting request 32894 from Base:System checked in (request 32894) OBS-URL: https://build.opensuse.org/request/show/32894 OBS-URL: https://build.opensuse.org/package/show/Base:System/mcelog?expand=0&rev=12 --- 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 | 20 +++---- mcelog_daemon_create_pid_file.patch | 85 +++++++++++++++++++++++++++++ 7 files changed, 102 insertions(+), 56 deletions(-) delete mode 100644 fix_cache_trigger.patch create mode 100644 mcelog-1.0pre1.tar.bz2 delete mode 100644 mcelog-1.0pre3.tar.bz2 create mode 100644 mcelog_daemon_create_pid_file.patch diff --git a/fix_cache_trigger.patch b/fix_cache_trigger.patch deleted file mode 100644 index 17fac22..0000000 --- a/fix_cache_trigger.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- - 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 new file mode 100644 index 0000000..c7e2588 --- /dev/null +++ b/mcelog-1.0pre1.tar.bz2 @@ -0,0 +1,3 @@ +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 deleted file mode 100644 index 1b7aca0..0000000 --- a/mcelog-1.0pre3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5472acd0808cc20ade275578ca88b6eca33b945c73cffe834982809bfa2d9bb3 -size 167193 diff --git a/mcelog.changes b/mcelog.changes index a2ec7b4..05931db 100644 --- a/mcelog.changes +++ b/mcelog.changes @@ -1,12 +1,3 @@ -------------------------------------------------------------------- -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 838260e..ab6ed6d 100644 --- a/mcelog.service +++ b/mcelog.service @@ -46,13 +46,13 @@ rc_reset mcelog="/usr/sbin/mcelog" -mcelog_pid="/var/run/mcelog.pid" -mcelog_params=" --daemon --pidfile ${mcelog_pid}" +mcelog_params=" --daemon " mcedev=/dev/mcelog +mcelog_pid="/var/run/mcelog.pid" -check="checkproc ${mcelog}" -kill="killproc ${mcelog}" -start="startproc ${mcelog} ${mcelog_params}" +check="checkproc -p ${mcelog_pid} ${mcelog}" +kill="killproc -p ${mcelog_pid} ${mcelog}" +start="startproc -p ${mcelog_pid} ${mcelog} ${mcelog_params}" test_kernel_support() { @@ -81,17 +81,6 @@ 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 fa8c4c6..b0ea336 100644 --- a/mcelog.spec +++ b/mcelog.spec @@ -21,14 +21,14 @@ Name: mcelog License: GPLv2+ Summary: Log Machine Check Events -Version: 1.0pre3 +Version: 1.0pre1 Release: 1 AutoReqProv: on ExclusiveArch: x86_64 PreReq: %insserv_prereq Source: mcelog-%{version}.tar.bz2 Source1: mcelog.service -Patch1: fix_cache_trigger.patch +Patch0: mcelog_daemon_create_pid_file.patch Group: System/Monitoring BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -50,19 +50,20 @@ Authors: %prep %setup -%patch1 -p1 +%patch0 -p1 %build make CFLAGS="$RPM_OPT_FLAGS" %install -export prefix=$RPM_BUILD_ROOT/usr -export etcprefix=$RPM_BUILD_ROOT -make -e install +mkdir -p $RPM_BUILD_ROOT/usr/sbin/ +mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man8 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 @@ -74,10 +75,10 @@ if [ -c /dev/mcelog ];then fi %preun -%{stop_on_removal mcelog} +%stop_on_removal mcelog %postun -%{restart_on_update mcelog} +%restart_on_update %insserv_cleanup %files @@ -86,9 +87,6 @@ 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 new file mode 100644 index 0000000..1c35723 --- /dev/null +++ b/mcelog_daemon_create_pid_file.patch @@ -0,0 +1,85 @@ +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"