From 53b1d57779ea7eaf5dc70997cac439318cd8705125fc237a99087e1aac765315 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Thu, 9 Jul 2009 11:54:14 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/sysvinit?expand=0&rev=51 --- showconsole-1.09-blogd-coarse-locking.diff | 178 +++++ startpar-0.53.dif | 173 ++++- sysvinit.changes | 11 + sysvinit.spec | 727 +-------------------- 4 files changed, 363 insertions(+), 726 deletions(-) create mode 100644 showconsole-1.09-blogd-coarse-locking.diff diff --git a/showconsole-1.09-blogd-coarse-locking.diff b/showconsole-1.09-blogd-coarse-locking.diff new file mode 100644 index 0000000..fb6dc1a --- /dev/null +++ b/showconsole-1.09-blogd-coarse-locking.diff @@ -0,0 +1,178 @@ +From: Olaf Kirch +Subject: Use coarser locking for the log buffer + +blogd claims and releases a mutex for every character it +writes into the log buffer. Change parselog to grab the lock +once, and release it when done parsing all of the input. + +Signed-off-by: Olaf Kirch + +Index: showconsole-1.09/libconsole.c +=================================================================== +--- showconsole-1.09/libconsole.c ++++ showconsole-1.09/libconsole.c 2009-01-26 16:58:00.000000000 +0100 +@@ -346,9 +346,8 @@ static volatile ssize_t avail; + + static inline void resetlog(void) { tail = head = data; avail = 0; } + +-static inline void storelog(const unsigned char *const buf, const size_t len) ++static inline void __storelog(const unsigned char *const buf, const size_t len) + { +- lock(&llock); + if (len > end - tail) { + static int be_warned = 0; + if (!be_warned) { +@@ -360,13 +359,18 @@ static inline void storelog(const unsign + memcpy(tail, buf, len); + avail = (tail += len) - head; + xout: +- unlock(&llock); + return; + } + +-static inline void addlog(const unsigned char c) ++static void storelog(const unsigned char *const buf, const size_t len) + { + lock(&llock); ++ __storelog(buf, len); ++ unlock(&llock); ++} ++ ++static inline void __addlog(const unsigned char c) ++{ + if (end - tail <= 0) { + static int be_warned = 0; + if (!be_warned) { +@@ -378,10 +382,16 @@ static inline void addlog(const unsigned + *tail = c; + avail = (tail += 1) - head; + xout: +- unlock(&llock); + return; + } + ++static void addlog(const unsigned char c) ++{ ++ lock(&llock); ++ __addlog(c); ++ unlock(&llock); ++} ++ + static inline void writelog(void) + { + if (!flog) +@@ -492,6 +502,8 @@ static void parselog(unsigned char *buf, + ssize_t r = s, up; + unsigned char uprt[16]; + ++ lock(&llock); ++ + while (r > 0) { + c = (unsigned char)*buf; + +@@ -506,25 +518,25 @@ static void parselog(unsigned char *buf, + case 28 ... 31: + nl = 0; + spin = 0; +- addlog('^'); addlog(c + 64); ++ __addlog('^'); __addlog(c + 64); + break; + case '\n': + if (spin > 4) /* last spinner line */ +- storelog(prog, strlen((char*)prog)); ++ __storelog(prog, strlen((char*)prog)); + nl = 1; + line++; + spin = 0; +- addlog(c); ++ __addlog(c); + break; + case '\r': + spin++; + if (spin < 5) { + if (spin > 1) +- addlog('\n'); ++ __addlog('\n'); + nl = 1; + } + if (spin == 5) +- storelog((unsigned char*)"\n\n", 24); ++ __storelog((unsigned char*)"\n\n", 24); + break; + case 14: + case 15: +@@ -543,8 +555,8 @@ static void parselog(unsigned char *buf, + case 160 ... 255: + if (spin < 5) { + if (spin == 1 && nl) +- addlog('\n'); +- addlog(c); ++ __addlog('\n'); ++ __addlog(c); + } else { /* Seems to be a lengthy spinner line */ + static int old = 0; + static ssize_t p = 0; +@@ -561,14 +573,14 @@ static void parselog(unsigned char *buf, + case 127: + nl = 0; + spin = 0; +- addlog('^'); addlog('?'); ++ __addlog('^'); __addlog('?'); + break; + case 128 ... 128+26: + case 128+28 ... 159: + nl = 0; + spin = 0; + if ((up = snprintf((char*)uprt, sizeof(uprt), "\\%03o", c)) > 0) +- storelog(uprt, (size_t)up); ++ __storelog(uprt, (size_t)up); + break; + case 128+27: + spin = 0; +@@ -578,7 +590,7 @@ static void parselog(unsigned char *buf, + nl = 0; + spin = 0; + if ((up = snprintf((char*)uprt, sizeof(uprt), "0x%X", c)) > 0) +- storelog(uprt, (size_t)up); ++ __storelog(uprt, (size_t)up); + break; + } + break; +@@ -597,11 +609,11 @@ static void parselog(unsigned char *buf, + case 'E': + case 'D': + if (spin > 4) /* last spinner line */ +- storelog(prog, strlen((char*)prog)); ++ __storelog(prog, strlen((char*)prog)); + nl = 1; + line++; + spin = 0; +- addlog('\n'); ++ __addlog('\n'); + break; + case '(': + state = ESsetG0; +@@ -674,11 +686,14 @@ static void parselog(unsigned char *buf, + unsigned char echo[64]; + ssize_t len; + ++ /* Release the lock while doing IO */ ++ unlock(&llock); + if ((len = snprintf(echo, sizeof(echo), "\033[%lu;%dR", line, nl)) > 0) + safeout(fdread, echo, len); + else + safeout(fdread, "\033R", 2); + tcdrain(fdread); ++ lock(&llock); + } + break; + #endif +@@ -686,6 +701,8 @@ static void parselog(unsigned char *buf, + buf++; + r--; + } ++ ++ unlock(&llock); + } + + static void copylog(const unsigned char *buf, const size_t s) diff --git a/startpar-0.53.dif b/startpar-0.53.dif index 21c1674..87547d9 100644 --- a/startpar-0.53.dif +++ b/startpar-0.53.dif @@ -22,8 +22,32 @@ makeboot: makeboot.c --- makeboot.c -+++ makeboot.c 2009-03-13 13:28:08.824501381 +0100 -@@ -278,8 +278,10 @@ static void filter_files(const char *dir ++++ makeboot.c 2009-06-29 12:51:15.794401972 +0200 +@@ -46,18 +46,19 @@ static struct makenode *lookup_target(co + */ + static struct makenode *add_target(const char *name) + { +- struct makenode *node; ++ struct makenode *__restrict node; + struct makenode *prev, *t; + + node = lookup_target(name); + if (node) + return node; +- node = xcalloc(1, sizeof(*node)); +- node->name = strdup(name); +- if (! node->name) { ++ if (posix_memalign((void*)&node, sizeof(void*), alignof(struct makenode)+strsize(name)) < 0) { + fprintf(stderr, "Can't malloc: %s\n", strerror(errno)); + exit(1); + } ++ memset(node, 0, alignof(struct makenode)+strsize(name)); ++ node->name = ((char*)node)+alignof(struct makenode); ++ strcpy(node->name, name); + + /* append to the list in alphabetical order */ + prev = NULL; +@@ -278,15 +279,20 @@ static void filter_files(const char *dir #endif ndirs = scandir(path, &dirlist, dirfilter, alphasort); #if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 @@ -35,3 +59,148 @@ #endif /* mark all matching nodes */ if (ndirs >= 0) { + for (i = 0; i < ndirs; i++) { + t = lookup_target(dirlist[i]->d_name + 3); +- if (t) ++ if (t) { + t->status = 1; ++ if (asprintf(&t->arg0, "%s/%s", path, dirlist[i]->d_name) < 0) ++ t->arg0 = (char*)0; ++ } + free(dirlist[i]); + } + free(dirlist); +@@ -524,8 +530,6 @@ int main(int argc, char **argv) + goto out; + } + +- nodevec = xcalloc(1, sizeof(*nodevec)); +- + snprintf(makefile, sizeof(makefile), "depend.%s", argv[1]); + parse_makefile(makefile); + +@@ -534,7 +538,7 @@ int main(int argc, char **argv) + check_run_files(argv[1], argv[2], argv[3]); + out: + while ((nodevec = pickup_task())) { +- fprintf(stdout, "%s\n", nodevec->name); ++ fprintf(stdout, "%s (%s)\n", nodevec->name, nodevec->arg0); + finish_task(nodevec); + } + +--- makeboot.h ++++ makeboot.h 2009-06-29 12:41:15.473901451 +0200 +@@ -8,6 +8,7 @@ enum { + /* target nodes */ + struct makenode { + char *name; ++ char *arg0; + int num_deps; + struct makelist *depend; + int num_sels; +@@ -33,3 +34,6 @@ extern struct makenode *pickup_task(void + extern void finish_task(struct makenode *n); + extern void *xcalloc(size_t nmemb, size_t size); + extern void print_run_result(int *resvec, struct makenode **nodevec, const char *action); ++ ++#define alignof(type) ((sizeof(type)+(sizeof(void*)-1)) & ~(sizeof(void*)-1)) ++#define strsize(string) ((strlen(string)+1)*sizeof(char)) +--- startpar.c ++++ startpar.c 2009-06-29 12:24:47.632457764 +0200 +@@ -66,7 +66,8 @@ static struct makenode **nodevec; + + #define PBUF_SIZE 8192 + struct prg { +- char *name; ++ const char *name; ++ const char *arg0; + int num; + int fd; + pid_t pid; +@@ -150,9 +151,9 @@ void closeall(void) + close(pidpipe[1]); + } + +-void callsplash(int n, char *path, char *action) ++void callsplash(int n, const char *path, char *action) + { +- char *p; ++ const char *p; + char sbuf[32]; + char tbuf[256]; + pid_t pid; +@@ -345,17 +346,17 @@ void run(struct prg *p) + { + char path[128]; + snprintf(path, sizeof(path), "/etc/init.d/%s", p->name); +- execlp(path, path, arg, (char *)0); ++ execlp(path, p->arg0, arg, (char *)0); + } + else if (arg) +- execlp(p->name, p->name, arg, (char *)0); ++ execlp(p->name, p->arg0, arg, (char *)0); + else +- execlp(p->name, p->name, (char *)0); ++ execlp(p->name, p->arg0, (char *)0); + perror(p->name); + _exit(1); + } + +-int run_single(char *prg, int spl) ++int run_single(const char *prg, const char *arg0, int spl) + { + pid_t pid; + int r; +@@ -382,12 +383,12 @@ int run_single(char *prg, int spl) + { + char path[128]; + snprintf(path, sizeof(path), "/etc/init.d/%s", prg); +- execlp(path, path, arg, (char *)0); ++ execlp(path, arg0 ? arg0 : path, arg, (char *)0); + } + else if (arg) +- execlp(prg, prg, arg, (char *)0); ++ execlp(prg, arg0 ? arg0 : prg, arg, (char *)0); + else +- execlp(prg, prg, (char *)0); ++ execlp(prg, arg0 ? arg0 : prg, (char *)0); + perror(prg); + _exit(1); + } +@@ -710,11 +711,11 @@ int main(int argc, char **argv) + { + if ((*nodevec = pickup_task())) + { +- *resvec = run_single((*nodevec)->name, calcsplash(0, 1, splashopt)); ++ *resvec = run_single((*nodevec)->name, (*nodevec)->arg0, calcsplash(0, 1, splashopt)); + finish_task(*nodevec); + } + } else +- *resvec = run_single(*argv, calcsplash(0, 1, splashopt)); ++ *resvec = run_single(*argv, *argv, calcsplash(0, 1, splashopt)); + goto finished; + } + +@@ -818,9 +819,12 @@ int main(int argc, char **argv) + if (nodevec[num]->interactive) + interactive_task = p; + p->name = nodevec[num]->name; ++ p->arg0 = nodevec[num]->arg0 ? nodevec[num]->arg0 : nodevec[num]->name; + } +- else ++ else { + p->name = *argv++; ++ p->arg0 = p->name; ++ } + p->splashadd = calcsplash(num, argc, splashopt); + p->num = num++; + if (interactive_task) +@@ -855,7 +859,7 @@ int main(int argc, char **argv) + if (active == 0) + { + p = interactive_task; +- resvec[p->num] = run_single(p->name, p->splashadd); ++ resvec[p->num] = run_single(p->name, p->arg0, p->splashadd); + if (run_mode) + finish_task(nodevec[p->num]); + p->pid = 0; diff --git a/sysvinit.changes b/sysvinit.changes index 79c2f36..f277bc7 100644 --- a/sysvinit.changes +++ b/sysvinit.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Tue Jun 30 16:32:50 CEST 2009 - werner@suse.de + +- Add patch from Olaf Kirch to avoid using mutex locking for every + character (from Moblin:Factory) + +------------------------------------------------------------------- +Mon Jun 29 13:46:44 CEST 2009 - werner@suse.de + +- Start boot scripts with their symlinks name + ------------------------------------------------------------------- Wed May 27 13:26:50 CEST 2009 - werner@suse.de diff --git a/sysvinit.spec b/sysvinit.spec index d28d43a..0695571 100644 --- a/sysvinit.spec +++ b/sysvinit.spec @@ -30,7 +30,7 @@ Group: System/Base PreReq: coreutils AutoReqProv: on Version: 2.86 -Release: 210 +Release: 211 Summary: SysV-Style init BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libselinux-devel libsepol-devel @@ -65,6 +65,7 @@ Patch18: sysvinit-2.86-selinux.patch Patch19: sysvinit-2.86-fuse-no-kill.patch Patch20: startpar-preload.diff Patch21: startpar-bootchart.diff +Patch22: showconsole-1.09-blogd-coarse-locking.diff %description System V style init programs by Miquel van Smoorenburg that control the @@ -109,6 +110,7 @@ pushd ../killproc-%{KPVER} popd pushd ../showconsole-%{SCVER} %patch -P 10 +%patch -P 22 -p1 popd pushd ../startpar-%{START} %patch -P 14 @@ -327,726 +329,3 @@ rm -rf ${RPM_BUILD_ROOT} %doc %{_mandir}/man8/mkill.8.gz %changelog -* Wed May 27 2009 werner@suse.de -- Increase hash size for runtime linker of often used tools -* Mon May 11 2009 werner@suse.de -- Make it build -* Thu May 07 2009 werner@suse.de -- Reorder last patch in spec file -* Wed May 06 2009 crrodriguez@suse.de -- link /sbin/init dynamically, tested in 11.1, also - all other distros work just fine this way. -* Mon May 04 2009 werner@suse.de -- Blogd: shorten minimal timeout at the end and hold all pages - in physical RAM -* Thu Apr 30 2009 werner@suse.de -- For usleep(8) use nanosleep(2) instead of obsolete usleep(3) -* Wed Apr 29 2009 werner@suse.de -- mkill: Do not remove all pid's from list for one fuse process -* Tue Apr 28 2009 werner@suse.de -- Disable blogd on fastboot or quiet boot -* Tue Apr 21 2009 werner@suse.de -- Make initrd script for blogd depend on initrd script clock -* Fri Mar 27 2009 werner@suse.de -- Update to killproc 2.15 - * New option -w for making startproc waiting on daemons parent - process (bnc#489473, bnc#482096 comment#21 ff) - * New option -W for making startproc waiting on files created - by the daemon (bnc#482096 comment#24 ff) -- Merge changes for preload code of startpar into one patch -- nfs4pidof: avoid nfs code for process which are on shadow mounts - points of NFS mounts -* Wed Mar 25 2009 coolo@suse.de -- exec one more time so that the preload part does not appear - under the name of the init script in bootcharts -* Wed Mar 25 2009 coolo@suse.de -- fix the preload functionality in telling the parent process through - SIGUSR1 and SIGUSR2 about preload's presence -* Fri Mar 13 2009 werner@suse.de -- mkill: avoid signaling process which are on shadow mounts points - that is e.g. processes on /dev/pts while running mkill on /dev -* Fri Mar 13 2009 werner@suse.de -- Do not overwrite SUSE define -* Fri Mar 13 2009 werner@suse.de -- startpar: fix file descriptor leak (bnc#485112) -* Wed Mar 11 2009 werner@suse.de -- nfs4pidof: make sure not to stumble on short named mount points - to avoid to terminate processes on wrong mount points -* Tue Mar 10 2009 werner@suse.de -- mkill: make sure not to stumble on short named mount points to - avoid to terminate processes on wrong mount points (bnc#466484) -* Mon Mar 09 2009 werner@suse.de -- Add patch from Debian people to startpar and mode to version 0.53 -* Thu Mar 05 2009 werner@suse.de -- Update to killproc 2.14 to include most of our patches and to - use openat(2), readlinkat(2), and opendirat(2) system calls. -- Remove /dev/initctl from file list, do not create blogd pipe - /dev/blogd (bnc#475580) -* Fri Feb 20 2009 werner@suse.de -- make sure that newline is printed out for last(1) (bnc#471386) -* Thu Feb 12 2009 coolo@suse.de -- support preload in its job in giving it the init scripts to preload -- don't wait 0.3s when we need only 0.03 -* Fri Feb 06 2009 ro@suse.de -- fix build (move static int loop before first usage) -* Tue Jan 27 2009 werner@suse.de -- Do not terminate udevd with mkill(8) -- Do not terminate udevd with killall5(8) -- Avoid chrashing startpar due recursion caused by loops -* Mon Jan 26 2009 werner@suse.de -- Do not kill fuse user space processes with mkill(8) (bnc#466484) -- Minimize fuse patch for killall5(8) by using readlinkat(2) -* Wed Dec 10 2008 werner@suse.de -- Mkill(8): add the option -0 for debugging and wait upto 3 seconds - if a signal was send. -* Fri Dec 05 2008 werner@suse.de -- New tool in killproc source tree: mkill(8) for sending all - processes making a active mount busy a signal, this avoid fuser. -* Fri Dec 05 2008 werner@suse.de -- New tool in killproc source tree: vhangup(8) for hanging up - programs on terminal and sending SIGHUP, this avoids fuser. -* Wed Nov 19 2008 werner@suse.de -- Avoid error messages if blogd is closed premature -* Tue Nov 18 2008 werner@suse.de -- Mount devpts in initrd (bnc#442891) -* Wed Oct 01 2008 werner@suse.de -- Minimize fuse patch -* Wed Oct 01 2008 ro@suse.de -- fix fuse_kill patch so that it does not break pidof -* Wed Oct 01 2008 werner@suse.de -- Avoid stat(2) for all network based file systems (bnc#409011) -* Wed Sep 17 2008 uli@suse.de -- killall5: don't kill FUSE filesystems (Debian bug #476698) -* Mon Sep 15 2008 ro@suse.de -- add detection for OBS build environment -* Wed Sep 03 2008 hare@suse.de -- Call mkinitrd_setup during %%post and %%postun (bnc#413709) -* Mon Aug 25 2008 prusnak@suse.cz -- enabled SELinux support [Fate#303662] -* Wed Aug 13 2008 werner@suse.de -- Startpar: give posix_fadvise a try on boot scripts even if most - of them are very small -* Mon Aug 04 2008 werner@suse.de -- Imake chroot detections to handle inodes and devices (bnc#408959) -* Wed Jul 23 2008 hare@suse.de -- Include mkinitrd scriptlets. -* Fri Jul 18 2008 werner@suse.de -- Make a new startpar version 0.52 - * Should know about .depend.halt of new insserv -* Fri Jul 04 2008 werner@suse.de -- Fix a long standing bug in startpar introduced by implementing - the make like behaviour (bnc#394926) -- Make a new startpar version 0.51 -* Fri Jun 13 2008 werner@suse.de -- Let blogd detect changes of screen size, set new size pty pair, - and if process group is not init send a SIGWINCH (bnc#259577) -- In startpar use a signal handler on SIGWINCH (bnc#259577) -* Wed Jun 11 2008 werner@suse.de -- Startpar: try to reduce race if kbd change tty size (bnc#259577) -* Tue May 20 2008 werner@suse.de -- On halt flush not only unmanged disk but also removable devices - like usb sticks (bnc#386487 related to bnc#229210) -* Thu Mar 13 2008 werner@suse.de -- Avoid race in blogd due sheduling priority which may raise EIO - otherwise and do not free name of second tty needed for reconnect - (bnc#370328) -* Thu Jan 10 2008 werner@suse.de -- Make it build with new glibc headers -* Mon Jan 07 2008 werner@suse.de -- Add cosmetic patch for startpar from the Debian people -* Fri Nov 30 2007 werner@suse.de -- New version 2.13 of killproc - * Add support for more than one ignore pid file (bug #343227) - * Close existing file descriptors on execve even if not a tty - * Do not fork if startpar is used as start_daemon - * Clean up the manual pages -* Wed Oct 31 2007 werner@suse.de -- startpar: make iorate a double -* Wed Oct 31 2007 werner@suse.de -- startproc: add option -T sec to finish waiting if parent exits -* Wed Jun 20 2007 coolo@suse.de -- startpar: mark started processes as running -* Mon Jun 18 2007 werner@suse.de -- Add importance for some scripts within startpar -- Handle I/O blocked process very heavy in startpar -- Add new user space program fsync(1) which use fsync(2) for - updating the in-core state with the hard disk -* Wed Jun 13 2007 werner@suse.de -- bug #229210: avoid HDIO_DRIVE_CM ioctl for real SCSI disks. -* Tue Jun 12 2007 werner@suse.de -- bug #229210: check for the FLUSH CACHE EXT capability for large - disks and use this capability if available. -* Wed Jun 06 2007 werner@suse.de -- For bug #229210: skip real SCSI disks, also flush disk cache for - SATA and ATA disks. -* Wed Jun 06 2007 werner@suse.de -- More on bug #229210: do not shutdown allready managed disks -* Tue Jun 05 2007 werner@suse.de -- /sbin/halt: list and powerdown all disks even SATA/SCSI - (bug #229210) -* Fri May 11 2007 werner@suse.de -- startpar: Try to start more processes even on high loaded systems -- startpar: Detect endless loops on broken systems (no SIGCHILD) -* Thu Apr 19 2007 werner@suse.de -- Correct exit status of checkproc n case of using a pid file, - thanks to Alessandro Soraruf -* Wed Feb 14 2007 werner@suse.de -- Remove swap supend patch because this is done now by powersave - calling hal (bug #241204) -* Thu Dec 14 2006 werner@suse.de -- New killproc 2.12 with new option -N better handling for NFS - based programs which is not to stat(2) the binary with -N -- Make killall5 and pidof not to stat(2) binaries which are - loacted on NFS partitions (#224563) -* Tue Aug 22 2006 werner@suse.de -- More on delayed utmp write: redo the write on telinit q (#148038) -* Mon Aug 21 2006 werner@suse.de -- Make installation work even within chroot and new kernel 2.6.18+ -* Fri Aug 18 2006 werner@suse.de -- Check if utmp not only exists but is writable (#199412, #148038) -- Delay of utmp runlevel record if utmp is not writable (#148038) -* Thu Aug 10 2006 werner@suse.de -- Enable showconsole to provide the major and minor device number - instead of the device file name. -* Fri Jun 09 2006 werner@suse.de -- killproc: Allow relocated binary paths and several hard links - on binaries (bug #183251) -* Tue May 16 2006 werner@suse.de -- Reduce buffer usage for reading /proc/stat -* Mon May 15 2006 werner@suse.de -- Double buffer for /proc/stat for super large systems (#175385) -* Fri May 12 2006 olh@suse.de -- do not strip startpar and start-stop-daemon binaries -* Thu Mar 16 2006 werner@suse.de -- Do not rely on timeout after EINTR of select() -* Mon Mar 06 2006 werner@suse.de -- Handle a second system console from kernel command line (#155292) -- Handle interrupted fifo writes even in shutdown -* Wed Feb 08 2006 werner@suse.de -- Close high file descriptors even for single jobs (bug #148668) -* Tue Feb 07 2006 werner@suse.de -- Add boot script for powerd (bug #147660) -- Make powerd handling a pid file -* Wed Jan 25 2006 mls@suse.de -- converted neededforbuild to BuildRequires -* Wed Dec 21 2005 werner@suse.de -- Remove not needed binaries on s390 -* Mon Dec 05 2005 od@suse.de -- Created/added patch for option -F (full time) (bug #136978) -* Mon Dec 05 2005 od@suse.de -- Added options -a, -d and -i to usage message -* Tue Nov 08 2005 werner@suse.de -- Move version of killproc to 2.11 - * Allow to set a prefix and to disable usleep -* Wed Nov 02 2005 dmueller@suse.de -- don't build as root -* Wed Nov 02 2005 werner@suse.de -- Move version of killporc to 2.10 - * Let checkproc really work like killproc if -k is specified. - This is that if the pid file provided with option -p does - not fit to a running process checkproc returns 7 for program - is not running. -* Wed Oct 19 2005 werner@suse.de -- Update to sysvinit 2.86 -* Tue Sep 20 2005 werner@suse.de -- Make it build even on s390 -* Thu Sep 15 2005 werner@suse.de -- Bounce version of killporc to 2.09 -- Add patch of Petter Reinholdtsen for startpar -- Move version of startpar to 0.49 -* Thu Sep 01 2005 mls@suse.de -- do not leak stdout fd to splash process (bug #105999) -* Thu Aug 25 2005 werner@suse.de -- Apply the new LSB rule for optional pid files only (bug #105845) -* Tue Aug 23 2005 werner@suse.de -- Enable patch for killproc -* Mon Aug 22 2005 werner@suse.de -- Avoid zombie processes using startpar to get the next free - process slot as fast as possible. -- Make killproc be compliant with the newest LSB specs in case if - the specified pid file does not exist that the daemon is not - running (bug #105845). -- Add the possibility of using pid numbers instead of a pid file. -* Tue Jun 28 2005 schwab@suse.de -- Fix typo. -* Wed May 25 2005 werner@suse.de -- Bounce showconsole to version 1.08 -- Bounce killproc to version 2.08 -- Avoid signess warning of gcc4 -- Use sysv_log() instead of log() to avoid builtin log() of gcc4 -* Mon May 23 2005 werner@suse.de -- Make blogd work even with new root file system behaviour -* Thu May 19 2005 werner@suse.de -- More fixes for startpar: do not forget active jobs and correct - exit status handling for the case of stopping jobs. -* Mon Apr 25 2005 werner@suse.de -- Showconsole: more names no belonging to terminals (bug #80304) -* Tue Apr 05 2005 werner@suse.de -- startpar: fix endless loop and race condition (bug #74256) -* Sun Apr 03 2005 aj@suse.de -- Further fixes for GCC4. -* Thu Mar 24 2005 uli@suse.de -- fixed to build with GCC4 -* Wed Mar 09 2005 mls@suse.de -- startpar: fix splash progress bar if "make" mode is enabled -* Thu Jan 27 2005 coolo@suse.de -- catch the case the clock moves back in time during boot -* Tue Jan 18 2005 coolo@suse.de -- adding patch by Takashi to sort the services before inserting them - in the queue to allow predictable boot orders -- adding patch by me to update the limit more often in case the load - is too high (30s is just too long) -* Mon Dec 13 2004 werner@suse.de -- Update to killproc 2.07 which includes the new ignore file - feature which works like a pid file but the pid found therein - will be used to ignore all processes and session with that id. -* Fri Dec 10 2004 werner@suse.de -- Fix bottle neck in startpar calculation of number of parallel - processes. Now the number of really active processes are used. -* Wed Oct 13 2004 werner@suse.de -- Do the real fix for the busy loop problem -- Add a dynamic load balance based on the current process load - and the current memory usage (bug #45191). -* Mon Oct 04 2004 mls@suse.de -- don't call /sbin/splash if proc was unmounted -* Thu Sep 23 2004 mls@suse.de -- call splash with $pos:$delta for animated progress bar -- serialize calls to splash program -* Mon Sep 20 2004 mls@suse.de -- change bootsplash 'S' option handling to new bootsplash design -- also set progressbar on the fly -* Mon Sep 20 2004 werner@suse.de -- Add some more information about the new make like scheme of - startpar into its own manual page. -* Thu Sep 09 2004 werner@suse.de -- startproc: get wait status of already terminated parents on very - fast systems with high load during boot. -* Thu Sep 02 2004 werner@suse.de -- Switch to Takashi's startpar version which is fully compatible - to previous version. -- Fix startpar to not to loop around if global timeout is expired. -- Fix struct timeval asignment in startpar for big endian. -- Add simple loadavg and memory check in startpar to make it - compatible with UP system with less memory. -* Tue Jun 01 2004 werner@suse.de -- Remove any other workaround for hanging write -* Tue Jun 01 2004 werner@suse.de -- Remove ioctl workaround in blogd due it does not work -* Tue Jun 01 2004 werner@suse.de -- Change signal behaviour of blogd (try to fix bug #40474) -- Add ioctl workaround to blogd for IA64 serial console -- Do not overwrite environment of /sbin/init with comandline -* Fri May 14 2004 werner@suse.de -- Catch negative return values of safein which may fix bug #34840 -* Thu Mar 25 2004 werner@suse.de -- showconsole: - * Do not trap into recursive symlink pointers (bug #36918) - * Do not scan directories in /dev/ with no terminals -* Mon Mar 22 2004 werner@suse.de -- Fix cut&paste error -* Mon Mar 22 2004 werner@suse.de -- Support udev within blogd -* Wed Mar 17 2004 werner@suse.de -- Make clear descritption of -k option of checkproc and fix - LSB behaviour of killproc (bug #35851) -* Fri Mar 12 2004 werner@suse.de -- Update of sysvinit 2.85 due better support of kernel 2.6 -- Ensure that startpar close the allocated pty's (bug #35763) -* Thu Mar 04 2004 werner@suse.de -- Command back: use unsigned int for device numbers which works - on both 32 and 64bit architectures and with old kernels -* Wed Mar 03 2004 werner@suse.de -- Use largest int type for device numbers -* Fri Feb 27 2004 werner@suse.de -- Be sure not to fail if startproc is called on fast systems -* Thu Feb 26 2004 werner@suse.de -- Add waiting routine on inode/dev compare of startproc binary - and the forked off service (may fix bug #35008) -* Mon Feb 23 2004 werner@suse.de -- Wait on write if kernel returns with EAGAIN -* Sun Feb 22 2004 schwab@suse.de -- Fix use of uninitialized variable. -* Tue Jan 13 2004 werner@suse.de -- Update to showconsole 1.07 now with warn message if /var is ro -- Fix bug #33798: remove group write flag from package docs -* Sat Oct 18 2003 kukuk@suse.de -- Move mingetty in extra package -* Wed Oct 08 2003 werner@suse.de -- Use struct ut_tv on 64 bit also for utmp and not only for wtmp -* Wed Oct 08 2003 werner@suse.de -- Redo the rename of barrier define to mem_barrier. -* Tue Oct 07 2003 werner@suse.de -- Use the not document struct ut_tv on 64 bit for utmp (bug #32086) -- blogd: Small optimization at ring buffer handling -* Tue Sep 30 2003 kukuk@suse.de -- Rename barrier define to mem_barrier (to avoid clash with kernel - headers) -* Tue Sep 09 2003 werner@suse.de -- Reenable fdatasync in blogd because linuxpthreads are fixed now -* Mon Sep 08 2003 werner@suse.de -- blogd: Be sure that _REENTRANT is defined for libconsole.c -* Mon Sep 08 2003 werner@suse.de -- blogd: Simply use locking information on broadcast lock, use - thread join lock only if the writing thread is going to sleep. -* Fri Sep 05 2003 werner@suse.de -- Add simple program to check for serial lines on /dev/console to - replace the wrong serial check during boot with newer kernels -* Tue Sep 02 2003 werner@suse.de -- Add workaround for blogd crash on x86_64 (bug #29750,29249,29545) - * Be paranoid and use SysV signal handling to ensure restart - * Be paranoid and check always the value of FILE pointer flog -* Wed Aug 06 2003 werner@suse.de -- Change detection of serial versus terminal lines (bug #28490) -* Thu Jul 24 2003 uli@suse.de -- fixed to build on s390x -* Thu Jul 03 2003 werner@suse.de -- Make flags transparent in startproc.c -* Thu Jul 03 2003 werner@suse.de -- Make killproc compliant with newest LSB spec (bug #24909) -* Tue Jun 24 2003 werner@suse.de -- Ditto -* Mon Jun 23 2003 werner@suse.de -- Make it build even on s390/s390x -* Mon Jun 23 2003 kukuk@suse.de -- Remove not packaged files from buildroot. -* Mon Jun 23 2003 kukuk@suse.de -- Remove compat link for old SPARC kernel -* Tue Jun 17 2003 werner@suse.de -- Use BuildRoot -- Add startproc (0.42), thanks to Michael -- showconsole: check for environment variable NOTIOCGDEV -* Fri Jun 06 2003 mfabian@suse.de -- also set the scroll region to the full window (ESC [ r) when - --noclear is not set. -* Thu Jun 05 2003 mfabian@suse.de -- if the option "--noclear" is not set, don't write a full reset - because this leaves the unicode mode again if the terminal was in - unicode mode and it also undos the ESC sequences in CONSOLE_MAGIC - which are needed for some languages/console-fonts. - Just put the cursor the home position (ESC [ H) and erase - everything below the cursor (ESC [ J). -* Thu May 15 2003 werner@suse.de -- New showconsole/blogd version 1.06 - * Threaded I/O stuff -* Tue Apr 29 2003 werner@suse.de -- New showconsole/blogd version 1.05 - * Do not overwrite ring buffer memory in case of the fifo - * Avoid not needed new line in case of carriage return. - * Read at least 3 seconds at blogd close and flush all I/O -* Mon Apr 14 2003 werner@suse.de -- Fix script handling of killproc for several kernel versions - (bug #25767) -* Tue Mar 04 2003 werner@suse.de -- Correct exit codes of killproc and update manual page about this -* Fri Nov 22 2002 werner@suse.de -- Be less memory consuming with showconsole 1.04 -* Thu Nov 21 2002 werner@suse.de -- New showconsole 1.03 - * be able to scan dirs under /dev/ in fallback case -* Thu Nov 14 2002 werner@suse.de -- Update to mingetty 0.9.6s - * Be sure to get controlling tty - * Avoid overruns in string handling -* Wed Nov 13 2002 werner@suse.de -- Update to showconsole 1.02 (a cleanup version) -- Update to mingetty 0.9.5s (s stand for SuSE) - * New old option for avoiding vcs/vcsa hangup, terminal - reset, and the usage of the glibc for updating wtmp. - * Now the default terminal type can be set at compile - time as an make option. -* Wed Nov 13 2002 werner@suse.de -- Update to killproc 2.05: - * Change usleep which now calls sched_yield() for 0 microseconds -* Tue Nov 12 2002 werner@suse.de -- Update to killproc 2.04: - * Better symlink handling - * New dialog prompt handling for services - * New chroot option. -* Mon Nov 11 2002 ro@suse.de -- fixed deprecated multiline string literal -* Mon Nov 04 2002 werner@suse.de -- Use usleep(1) in startproc/killproc/killall5 to force the - kernel to run the scheduler. -* Fri Aug 16 2002 werner@suse.de -- Add PreReq (bug #18005) -- Not only blogger and blogd but also set and showconsole together - with their manual pages. -* Thu Aug 08 2002 ihno@suse.de -- adding blogger and blogd to s390/s390x -* Fri Aug 02 2002 froh@suse.de -- removed blogger from s390&s390x package lists -- changed 'ifarch s390' and 'ifarch s390x' to 'ifarch s390 s390x' -* Tue Jul 16 2002 werner@suse.de -- Expand possible pid string length from 22 to 255 -* Fri Jul 05 2002 werner@suse.de -- Re-enable SIGINT in case or re-reading inittab (bug #16469) -* Thu Jul 04 2002 werner@suse.de -- Update to killproc 2.03 -- Fix pointer for ioctl in libconsole of showconsole -* Tue Apr 30 2002 werner@suse.de -- Even if no blogd is used on S390x, the libblogger is required -* Mon Apr 29 2002 werner@suse.de -- Avoid trouble with stupid gcc 3.1 parser and inlined macros. -* Thu Apr 25 2002 werner@suse.de -- changes on mingetty (new version 0.9.4c) - * Add support for other TTY devices than virtual console - * Add nohost patch from Anders ?? -* Mon Apr 22 2002 sf@suse.de -- changed path to libcrypt in Makefile to also compile - on lib64-archs -* Tue Feb 12 2002 ro@suse.de -- fix owner/group -* Tue Jan 15 2002 werner@suse.de -- Different usage messages for startproc and start_daemon (#12692) -* Fri Dec 14 2001 werner@suse.de -- Skip spinner of fsck/e2fsck in boot logging file -* Mon Oct 01 2001 werner@suse.de -- Build and install utmpdump -* Mon Oct 01 2001 werner@suse.de -- Move to SysVinit 2.82 and migrate our patches to 2.82 -* Tue Sep 25 2001 werner@suse.de -- Fix race on waiting on console I/O: just try open log file first -* Thu Sep 20 2001 werner@suse.de -- Ignore interrupted waitpid(2) calls -* Wed Sep 19 2001 werner@suse.de -- Add forgotten configuration of powerd -* Wed Sep 19 2001 werner@suse.de -- Update to powerd 2.0.2 because this version initialize the - serial interface which seems to be required for kernel 2.4.x -* Fri Sep 07 2001 werner@suse.de -- startproc: close boot logging FIFO before executing a daemon. -* Wed Sep 05 2001 werner@suse.de -- blogd: really read the console a half second (bug #9899) -* Tue Sep 04 2001 werner@suse.de -- Add waitpid() loop nodead lock patch of Andrea -- Add a check in the waitpid() loop to exit on failure -* Thu Aug 30 2001 werner@suse.de -- Make blogd/showconsole more robustly against errors -- Add some fixes of bug #9898 -* Fri Aug 24 2001 werner@suse.de -- Activate 64 bit file handling interface (large file support) -* Thu Aug 23 2001 werner@suse.de -- Do not reset terminal device of /dev/console if on a serial line -* Tue Jun 26 2001 cstein@suse.de -- added a patch for the shutdown messages (see bug #8076) - (also changed some other strings in shutdown.c) -* Mon Jun 25 2001 bk@suse.de -- back out read return 0 patch and don't build showconsole on s390x -* Mon Jun 25 2001 bk@suse.de -- don't include showconsole programs in filelist on s390x -* Fri Jun 22 2001 bk@suse.de -- blogd: when read return 0, this means EOF - don't loop in this case. -* Tue Jun 12 2001 bk@suse.de -- don't try to build showconsole on s390x(not supported by kernel) -* Wed May 23 2001 werner@suse.de -- Do not eat up argv and environ at boot logging in startproc -* Wed May 23 2001 werner@suse.de -- New killproc version 2.01: now we're able again to find deamons - based on scripts. -- Make fifo /dev/blog after installation if not exist. -* Tue May 08 2001 werner@suse.de -- Remove previous barrier() calls but use them on empty loops. -* Wed May 02 2001 werner@suse.de -- Call umask only once for all init processes (pid 1 and others) -- Add some barrier() against officious compiler -- Rename cpp macro TEST to SYSVINIT_TEST -* Tue Apr 24 2001 werner@suse.de -- Add default umask 022 at boot time -* Tue Apr 17 2001 werner@suse.de -- Few minor changes to killproc and co. -* Thu Apr 12 2001 werner@suse.de -- Disable boot logging and boot message redirection at common - runlevels if TIOCGDEV is missed. -* Wed Apr 11 2001 werner@suse.de -- blogd: complain about missing ioctl TIOCGDEV at compile - and run time -* Wed Apr 04 2001 werner@suse.de -- After fork reset signal handling of startproc to default for - common signals -* Thu Mar 22 2001 werner@suse.de -- Startproc/killproc: handle by RPM moved and deleted exe links -* Wed Mar 21 2001 werner@suse.de -- Add patch for rlstat() of schowconsole (Andreas Schwab) -* Mon Mar 19 2001 werner@suse.de -- Startproc/killproc: handle deleted exe links -* Fri Mar 09 2001 werner@suse.de -- Add forgotten usleep to file list -* Wed Feb 14 2001 werner@suse.de -- Use sysvinit 2.78.4 -- Spilt dif into several patches -- Use static on the most functions of init.c -- Integrate showconsole -- bzip tar's -* Mon Feb 05 2001 werner@suse.de -- Update of killproc to version 2.00 - * LSB conform exit values - * Use boot logging provided by showconsole-0.9.tar.gz of aaa_base - * New program usleep -* Mon Jan 15 2001 werner@suse.de -- Make strncmp of exe link and fullname working upto MAXNAMLEN -* Tue Jan 09 2001 werner@suse.de -- Use int instead of kdev_t in bootlogd.c -* Wed Nov 29 2000 werner@suse.de -- Make tty settings for sulogin working, and enable job control. -- Workaround vor sigfholder (may kernel bug) -* Tue Nov 28 2000 werner@suse.de -- New and fixed killproc version 1.17 -- Change some man pages of sysvinit to fit our new boot scheme -- Enable tty settings for sulogin, should be checked on - serial console (BTW: SHOULD we DO that?). -* Thu Nov 16 2000 ro@suse.de -- fixed install for killproc -* Wed Nov 15 2000 werner@suse.de -- New killproc version (1.16) - * base name allowed - * protected the parent of the parent - * provide pidofproc (a link to checkproc for a verbose checkproc) - * provide stat_daemon (a link to statproc) -* Mon Oct 23 2000 werner@suse.de -- changes on mingetty (new version 0.9.4b) - * On ro files systems chmod/chown shouldn't force an exit. - * Therefore we need a warn message. - * Due to the lack of a revoke system call we signal - all file holders including the mmaping processes. -* Wed Jun 28 2000 bk@suse.de -- enabled reboot on s390 -* Sun Jun 25 2000 bk@suse.de -- removed some not needed files on s390 -* Tue May 30 2000 werner@suse.de -- Correct path of powerstatus (/var/run/powerstatus) of powerd -* Wed May 24 2000 garloff@suse.de -- Added minimal docu for swsusp. -* Tue May 23 2000 werner@suse.de -- New killproc version 1.15 reading exe link for kernel 2.2 -* Wed May 17 2000 garloff@suse.de -- Added software-suspend support to init. -- login option of mingetty limits logname to 42 chars. -* Wed May 10 2000 garloff@suse.de -- Working patch for mingetty to support devfs. -* Wed May 10 2000 garloff@suse.de -- Preliminary patch for devfs. -* Wed May 10 2000 garloff@suse.de -- Make it more secure by passing the logname as one arg and by - checking for a leading '-'. The manpage tells the sysadmin - about possible risks now. -* Tue May 09 2000 garloff@suse.de -- Added new options --login and --logopts to mingetty, so you may - create an inittab entry using ssh for login or similar -* Tue Mar 07 2000 werner@suse.de -- Ignore SIGTERM for syslogd because this daemon use that signal - to control the parent process. -- Make read/write of /etc/ioctrl.save EINTR safe -- Use defined special character given from -- No flow control (-ixon), ignore break (ignbrk), and make nl/cr - more usable (sane). -- Set the terminal line immediately -* Mon Mar 06 2000 werner@suse.de -- Avoid script handling for kernel threads -* Sun Mar 05 2000 werner@suse.de -- If open fails -1 is returned (close bug #2200) -* Fri Mar 03 2000 kukuk@suse.de -- Create /usr/bin/shutdown link for UltraSPARC kernel -* Mon Feb 21 2000 werner@suse.de -- New version of killproc (1.1.4): fix of script handling -- New version of sysvinit (2.78) with some bug fixes -* Thu Dec 16 1999 werner@suse.de -- New version of killproc 1.13 - * Bug fix in handling hard links for daemons using pid files - * Bug fix: PROC pointers should not be volatile - * Shorten nonsleeps for none daemon programs -* Tue Nov 09 1999 werner@suse.de -- Avoid trouble with hard links of binaries -* Sun Nov 07 1999 kukuk@suse.de -- mingetty: Add 1900 to tm_year, it contains the years since 1900. -* Thu Nov 04 1999 werner@suse.de -- New killproc 1.12 - * Fix option -q of startproc - * Fix Bug in wait4 handling of startproc - * Fix script detection: do not handle startproc, killproc, and - checkproc as script interpreters -* Tue Nov 02 1999 werner@suse.de -- Add a patch from Marius -* Fri Oct 29 1999 werner@suse.de -- powerd should tell init if status is OK again -* Thu Sep 30 1999 werner@suse.de -- New killproc version 1.11 - * Some small speedups - * Minor spell correction in the manual pages - * Allow login onto tty's -- Use RPM_OPT_FLAGS throughout -* Mon Sep 13 1999 bs@suse.de -- ran old prepare_spec on spec file to switch to new prepare_spec. -* Tue Sep 07 1999 werner@suse.de -- Enable mingetty resetting the terminal -* Fri Aug 06 1999 werner@suse.de -- New killproc-1.10 - * startproc which is able to sleep - * better zombie handling - - killproc doesn't ignore zombies - - checkproc ignores zombies without `-z' by default - - startproc checks zombie state of child while sleeping -* Tue Jul 06 1999 werner@suse.de -- Fix pts problem of shutdown (dowall.c) -* Thu Jun 24 1999 werner@suse.de -- Add lastb and its manual page -* Wed Jun 23 1999 werner@suse.de -- Integrate newest mingetty patch of jurix -- Update killproc version 1.9 - * be more sufficient in setting user and/or group id -- Update to sysvinit 2.76 - * Integrate newest sysvinit patch of jurix into - our patch. The command last is part of sysvinit. -* Tue Jun 22 1999 werner@suse.de -- Update to new killproc version 1.8 - * startproc knows about setsid to set up a new process session - for the new task (option -s) - * startproc can change the effective uid and/or gid for a process - (option -u uid and/or -g gid) -- Make spec file more handy for newer versions. -* Mon May 03 1999 werner@suse.de -- Enable killproc-1.7.dif in specs file -* Mon May 03 1999 werner@suse.de -- killproc shouldn't complain a disappeared job/thread -* Mon Apr 19 1999 werner@suse.de -- mingetty: reset not only /dev/tty but /dev/vcs and - /dev/vcsa also -* Fri Feb 26 1999 werner@suse.de -- New killproc vesion 1.7 - * read of /proc/ is secure against EINTR - * handle script names ala `bash -x /usr/bin/myscript -y' -* Mon Jan 18 1999 werner@suse.de -- Make killproc more smart, e.g. faster -- Make startproc alpah compatible -* Thu Dec 10 1998 ro@suse.de -- added last manpage -- link init static -* Tue Dec 08 1998 ro@suse.de -- use last from sysvinit-2.75 -* Mon Nov 30 1998 werner@suse.de -- Close some races, unknowns, and difficulties in killproc tools -* Tue Nov 24 1998 werner@suse.de -- Don't blame boot script with killproc having same name as the - controlled daemon ... new kernel doesn't need this. -* Mon Nov 16 1998 ro@suse.de -- install man-page for powerd -* Fri Nov 13 1998 werner@suse.de -- Integrate powerd-2.0 for a replacment of the obsolate old one -* Mon Nov 02 1998 ro@suse.de -- update to killproc-1.6 -* Thu Oct 22 1998 ro@suse.de -- update to killproc-1.5 (take 2) -* Thu Oct 08 1998 ro@suse.de -- killproc: libinit.c output of "can't open pid file" only "#if DEBUG" -* Tue Oct 06 1998 ro@suse.de -- updated killproc to get rid of a memleak -* Mon Oct 05 1998 ro@suse.de -- new version: killproc-1.4 -* Fri Jul 03 1998 werner@suse.de -- added killproc-1.2, a replacement of the old killproc -* Wed May 06 1998 florian@suse.de -- added an option to killproc to also kill process groups: - killproc [-SIG] [-g] prog -* Tue Nov 04 1997 mantel@suse.de -- creation of dev/initctl fixed -* Thu Oct 23 1997 ro@suse.de -- ready for autobuild