diff --git a/killproc-2.16.dif b/killproc-2.16.dif index 28bd018..1362dca 100644 --- a/killproc-2.16.dif +++ b/killproc-2.16.dif @@ -56,9 +56,47 @@ if (pidof(fullname,root,flags) < 0) exit(LSB_STATUS_PROOFX); } +--- killproc.8 ++++ killproc.8 2010-04-12 15:49:09.610924538 +0000 +@@ -57,9 +57,11 @@ is sent. If this program is not called w + .B killproc + then + .B SIGHUP +-is used. Note that if ++is used. Note that if no signal is specified and the program ++.B killproc ++does not terminate a process with the default + .B SIGTERM +-is used and does not terminate a process the signal ++the signal + .B SIGKILL + is send after a few seconds (default is 5 seconds, see option + .BR \-t ). --- killproc.c -+++ killproc.c 2009-12-07 15:36:39.299430484 +0000 -@@ -135,7 +135,6 @@ int main(int argc, char **argv) ++++ killproc.c 2010-04-12 15:43:46.802925071 +0000 +@@ -48,6 +48,7 @@ int main(int argc, char **argv) + int process_group = 0, group_leader = 0, wait = 5, iargc = 0; + unsigned short flags = (KILL|PIDOF|KSTOP); + boolean pid_forced = false; ++ boolean sig_forced = true; + + we_are = base_name(argv[0]); + openlog (we_are, LOG_OPTIONS, LOG_FACILITY); +@@ -79,11 +80,13 @@ int main(int argc, char **argv) + memset(sig, 0, len); + *sig = 'q'; /* set dummy option -q */ + snum = tmp; ++ sig_forced = false; + break; + } else if ( (tmp = signame_to_signum(sig)) > 0 ) { + memset(sig, 0, len); + *sig = 'q'; /* set dummy option -q */ + snum = tmp; ++ sig_forced = false; + break; + } + } +@@ -135,7 +138,6 @@ int main(int argc, char **argv) /* Allocate here: address optarg (current *argv) isn't freeable */ if (optarg && !pid_file) { pid_file = xstrdup(optarg); @@ -66,7 +104,7 @@ } else error(LSB_WRGSYN,"Option -p requires pid file to read pid from\n"); break; -@@ -195,7 +194,8 @@ int main(int argc, char **argv) +@@ -195,7 +197,8 @@ int main(int argc, char **argv) pid_file = (char*) xmalloc(DEFPIDLEN+strlen(basename)+1); pid_file = strcat(strcat(strcpy(pid_file,DEFPIDDIR),basename),DEFPIDEXT); } @@ -76,7 +114,7 @@ /* Check and verify the pid file */ errno = 0; -@@ -215,17 +215,22 @@ int main(int argc, char **argv) +@@ -215,17 +218,22 @@ int main(int argc, char **argv) if (!remember) exit(LSB_NOPROC); /* New LSB: no pid file is no job */ } @@ -101,6 +139,15 @@ } if (pid_file) { /* The case of having a pid file */ +@@ -269,7 +277,7 @@ int main(int argc, char **argv) + for(list = remember; list; list = list->next) + do_kill(basename, list->pid, snum, group_leader, process_group); + +- if (snum == SIGTERM || snum == SIGKILL) { ++ if ((sig_forced && snum == SIGTERM) || snum == SIGKILL) { + int partsec = 5*wait; /* We look 5 times within a second */ + /* + * Does anybody have a better idea ... something with sigaction()/signal() --- libinit.c +++ libinit.c 2009-10-28 09:47:13.711429753 +0000 @@ -320,13 +320,15 @@ static ssize_t xread(int fd, void *inbuf diff --git a/startpar-0.54.dif b/startpar-0.54.dif index 9be8383..190a921 100644 --- a/startpar-0.54.dif +++ b/startpar-0.54.dif @@ -1,4 +1,12 @@ ---- .dummy -+++ .dummy 2009-08-19 12:18:39.181901099 +0200 -@@ -0,0 +1 @@ -+this is a dummy, remove if real changes are required +--- makeboot.c ++++ makeboot.c 2010-04-09 12:25:53.046395753 +0000 +@@ -248,6 +248,9 @@ void parse_makefile(const char *path) + if (! strcmp(node->name, "xdm")) + importance = 100; + ++ if (! strcmp(node->name, "sshd")) ++ importance = 2000; ++ + if (! strncmp(node->name, "early", 5)) + importance = 8000; + diff --git a/sysvinit-2.86.dif b/sysvinit-2.86.dif index c0d52e0..ca1fda7 100644 --- a/sysvinit-2.86.dif +++ b/sysvinit-2.86.dif @@ -1,6 +1,6 @@ --- .pkgextract +++ .pkgextract 2006-08-18 14:45:28.000000000 +0200 -@@ -0,0 +1,14 @@ +@@ -0,0 +1,15 @@ +patch -p0 -b -s --suffix=.nfs4pidof < ../sysvinit-2.86-nfs4pidof.patch +patch -p0 -b -s --suffix=.sulogin < ../sysvinit-2.86-sulogin.patch +patch -p0 -b -s --suffix=.ststdmn < ../sysvinit-2.82-startstop.patch @@ -15,6 +15,7 @@ +patch -p0 -b -s --suffix=.hddown < ../sysvinit-2.86-hddown.patch +patch -p0 -b -s --suffix=.selinux < ../sysvinit-2.86-selinux.patch +patch -p0 -b -s --suffix=.fuse < ../sysvinit-2.86-fuse-no-kill.patch ++patch -p0 -b -s --suffix=.mdmon < ../sysvinit-2.86-mdmon-no-kill.patch --- src/Makefile +++ src/Makefile 2009-05-11 10:05:28.482401539 +0200 @@ -8,17 +8,20 @@ diff --git a/sysvinit.changes b/sysvinit.changes index 2b1599e..c03bda9 100644 --- a/sysvinit.changes +++ b/sysvinit.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Mon Apr 12 17:49:46 CEST 2010 - werner@suse.de + +- Be LSB compliant with killproc (bnc#595796, bnc#578246) + +------------------------------------------------------------------- +Fri Apr 9 15:45:51 CEST 2010 - werner@suse.de + +- Correct Pre-Requires to reflect package split + +------------------------------------------------------------------- +Fri Apr 9 14:30:08 CEST 2010 - werner@suse.de + +- Start the service sshd as early as possible (bnc#594223) + ------------------------------------------------------------------- Wed Mar 3 13:22:11 UTC 2010 - coolo@novell.com diff --git a/sysvinit.spec b/sysvinit.spec index 745fa5c..83edcf5 100644 --- a/sysvinit.spec +++ b/sysvinit.spec @@ -27,10 +27,9 @@ Name: sysvinit %define START 0.54 License: GPLv2+ Group: System/Base -PreReq: coreutils AutoReqProv: on Version: 2.86 -Release: 222 +Release: 223 Summary: SysV-Style init BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libselinux-devel libsepol-devel @@ -81,6 +80,12 @@ more information. License: GPLv2+ Summary: Tools for basic booting Group: System/Base +%if 0%{suse_version} > 1120 +Requires(preun): coreutils mkinitrd %insserv_prereq +Requires(postun): coreutils mkinitrd %insserv_prereq +%else +PreReq: coreutils mkinitrd %insserv_prereq +%endif %description tools Helper tools from sysvinit that support booting, including but not exclusive