summaryrefslogtreecommitdiff
path: root/source/a/sysklogd
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/sysklogd')
-rw-r--r--source/a/sysklogd/slack-desc19
-rw-r--r--source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff90
-rw-r--r--source/a/sysklogd/sysklogd-1.4.1.lsm23
-rwxr-xr-xsource/a/sysklogd/sysklogd.SlackBuild80
-rw-r--r--source/a/sysklogd/sysklogd_1.4.1-20.diff2555
5 files changed, 2767 insertions, 0 deletions
diff --git a/source/a/sysklogd/slack-desc b/source/a/sysklogd/slack-desc
new file mode 100644
index 00000000..883782cc
--- /dev/null
+++ b/source/a/sysklogd/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+sysklogd: sysklogd (Linux system logging utilities)
+sysklogd:
+sysklogd: Dr. Greg Wettstein and Stephen Tweedie's syslogd/klogd.
+sysklogd:
+sysklogd: This package contains a modified version of syslogd for the Linux
+sysklogd: environment. An additional utility, klogd, is included which allows
+sysklogd: kernel logging to be directed through the syslogd facility.
+sysklogd: Syslogd and klogd are started when your system boots.
+sysklogd:
+sysklogd:
+sysklogd:
diff --git a/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff b/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff
new file mode 100644
index 00000000..26830929
--- /dev/null
+++ b/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff
@@ -0,0 +1,90 @@
+--- ./syslogd.c.orig 2007-04-09 18:17:05.000000000 -0500
++++ ./syslogd.c 2007-04-09 18:25:22.000000000 -0500
+@@ -1273,61 +1273,55 @@
+ crunch_list(list)
+ char *list;
+ {
+- int count, i;
++ int i, m, n;
+ char *p, *q;
+ char **result = NULL;
+
+ p = list;
+
+ /* strip off trailing delimiters */
+- while (p[strlen(p)-1] == LIST_DELIMITER) {
+- count--;
++ while (*p && p[strlen(p)-1] == LIST_DELIMITER)
+ p[strlen(p)-1] = '\0';
+- }
+ /* cut off leading delimiters */
+- while (p[0] == LIST_DELIMITER) {
+- count--;
+- p++;
+- }
+-
+- /* count delimiters to calculate elements */
+- for (count=i=0; p[i]; i++)
+- if (p[i] == LIST_DELIMITER) count++;
+-
+- if ((result = (char **)malloc(sizeof(char *) * (count+2))) == NULL) {
++ while (p[0] == LIST_DELIMITER)
++ p++;
++
++ /* count delimiters to calculate the number of elements */
++ for (n = i = 0; p[i]; i++)
++ if (p[i] == LIST_DELIMITER) n++;
++
++ if ((result = (char **)malloc(sizeof(char *) * (n + 2))) == NULL) {
+ printf ("Sorry, can't get enough memory, exiting.\n");
+- exit(0);
++ exit(1);
+ }
+-
++
+ /*
+ * We now can assume that the first and last
+ * characters are different from any delimiters,
+ * so we don't have to care about this.
+ */
+- count = 0;
+- while ((q=strchr(p, LIST_DELIMITER))) {
+- result[count] = (char *) malloc((q - p + 1) * sizeof(char));
+- if (result[count] == NULL) {
++ m = 0;
++ while ((q = strchr(p, LIST_DELIMITER)) && m < n) {
++ result[m] = (char *) malloc((q - p + 1) * sizeof(char));
++ if (result[m] == NULL) {
+ printf ("Sorry, can't get enough memory, exiting.\n");
+- exit(0);
++ exit(1);
+ }
+- strncpy(result[count], p, q - p);
+- result[count][q - p] = '\0';
++ memcpy(result[m], p, q - p);
++ result[m][q - p] = '\0';
+ p = q; p++;
+- count++;
++ m++;
+ }
+- if ((result[count] = \
+- (char *)malloc(sizeof(char) * strlen(p) + 1)) == NULL) {
++ if ((result[m] = strdup(p)) == NULL) {
+ printf ("Sorry, can't get enough memory, exiting.\n");
+- exit(0);
++ exit(1);
+ }
+- strcpy(result[count],p);
+- result[++count] = NULL;
++ result[++m] = NULL;
+
+ #if 0
+- count=0;
+- while (result[count])
+- dprintf ("#%d: %s\n", count, StripDomains[count++]);
++ m = 0;
++ while (result[m])
++ dprintf ("#%d: %s\n", m, result[m++]);
+ #endif
+ return result;
+ }
diff --git a/source/a/sysklogd/sysklogd-1.4.1.lsm b/source/a/sysklogd/sysklogd-1.4.1.lsm
new file mode 100644
index 00000000..0c3b75f8
--- /dev/null
+++ b/source/a/sysklogd/sysklogd-1.4.1.lsm
@@ -0,0 +1,23 @@
+Begin3
+Title: sysklogd
+Version: 1.4.1
+Entered-date: 2001-03-11
+Description: The sysklogd package implements two system log daemons. The
+ syslogd daemon is the general system logging daemon which
+ is responsible for handling requests for syslog services.
+ This version of syslogd is similar to the standard Berkeley
+ product but with a number of compatible extensions. The
+ klogd daemon runs either standalone or as a client of syslogd.
+ Klogd 'listens' to kernel log messages, prioritizes them and
+ routes them to either output files or to syslogd. This
+ version of klogd will optionally translate kernel addresses
+ to their symbolic equivalents if provided with a system map.
+Keywords: logging, remote, kernel, syslogd, proc, daemon, klogd
+Author: greg@wind.enjellic.com (Dr. G.W. Wettstein)
+Maintained-by: joey@infodrom.ffis.de (Martin Schulze)
+Primary-site: www.infodrom.ffis.de /projects/sysklogd
+ 82kB sysklogd-1.4.1.tar.gz
+ 1kB sysklogd-1.4.1.lsm
+Alternate-site: metalab.unc.edu /pub/Linux/system/daemons
+Copying-policy: syslogd is under Berkeley copyright, klogd is under GPL.
+End
diff --git a/source/a/sysklogd/sysklogd.SlackBuild b/source/a/sysklogd/sysklogd.SlackBuild
new file mode 100755
index 00000000..110659e4
--- /dev/null
+++ b/source/a/sysklogd/sysklogd.SlackBuild
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=1.4.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-10}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-sysklogd
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Explode the package framework:
+cd $PKG
+explodepkg $CWD/_sysklogd.tar.gz
+
+cd $TMP
+rm -rf sysklogd-$VERSION
+tar xzvf $CWD/sysklogd-$VERSION.tar.gz || exit 1
+cd sysklogd-$VERSION
+zcat $CWD/sysklogd_1.4.1-20.diff.gz | patch -p1 --verbose || exit 1
+#zcat $CWD/sysklogd-1.4.1-owl-syslogd-crunch_list.diff.gz | patch -p1 --verbose || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+make -j4 || exit 1
+make syslog_tst || exit 1
+cat klogd > $PKG/usr/sbin/klogd
+cat syslog_tst > $PKG/usr/sbin/syslog_tst
+cat syslogd > $PKG/usr/sbin/syslogd
+for page in klogd.8 sysklogd.8 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
+done
+cat syslog.conf.5 | gzip -9c > $PKG/usr/man/man5/syslog.conf.5.gz
+mkdir -p $PKG/usr/doc/sysklogd-$VERSION
+cp -a ANNOUNCE CHANGES COPYING INSTALL MANIFEST NEWS README.1st \
+ README.linux $PKG/usr/doc/sysklogd-$VERSION
+chmod 644 $PKG/usr/doc/sysklogd-$VERSION/*
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/sysklogd-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/sysklogd-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/sysklogd/sysklogd_1.4.1-20.diff b/source/a/sysklogd/sysklogd_1.4.1-20.diff
new file mode 100644
index 00000000..9bb27bbb
--- /dev/null
+++ b/source/a/sysklogd/sysklogd_1.4.1-20.diff
@@ -0,0 +1,2555 @@
+--- sysklogd-1.4.1.orig/CHANGES
++++ sysklogd-1.4.1/CHANGES
+@@ -30,3 +30,4 @@
+ . Olaf Kirch <okir@caldera.de>
+ - Remove Unix Domain Sockets and switch to Datagram Unix Sockets
+ . Several bugfixes and improvements, please refer to the .c files
++
+--- sysklogd-1.4.1.orig/README.linux
++++ sysklogd-1.4.1/README.linux
+@@ -44,8 +44,8 @@
+ mail to Majordomo@Infodrom.North.DE with a line "subscribe sysklogd"
+ in the message body.
+
+-New versions of this package will be available at Joey's ftp server.
+-ftp://ftp.infodrom.north.de/pub/people/joey/sysklogd/
++New versions of this package will be available at Joey's server.
++ http://www.infodrom.org/projects/sysklogd/
+
+ Best regards,
+
+@@ -67,6 +67,6 @@
+
+ Martin Schulze
+ Infodrom Oldenburg
+-joey@linux.de
++joey@infodrom.org
+
+ And a host of bug reporters whose contributions cannot be underestimated.
+--- sysklogd-1.4.1.orig/klogd.8
++++ sysklogd-1.4.1/klogd.8
+@@ -321,7 +321,7 @@
+ .B klogd
+ to reload the module symbol information whenever a protection fault
+ is detected. Caution should be used before invoking the program in
+-\'paranoid\' mode. The stability of the kernel and the operating
++\&'paranoid\&' mode. The stability of the kernel and the operating
+ environment is always under question when a protection fault occurs.
+ Since the klogd daemon must execute system calls in order to read the
+ module symbol information there is the possibility that the system may
+--- sysklogd-1.4.1.orig/ksym_mod.c
++++ sysklogd-1.4.1/ksym_mod.c
+@@ -78,6 +78,11 @@
+ *
+ * Tue Sep 12 23:11:13 CEST 2000: Martin Schulze <joey@infodrom.ffis.de>
+ * Changed llseek() to lseek64() in order to skip a libc warning.
++ *
++ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze <joey@infodrom.org>
++ * Removed references to <linux/module.h> since it doesn't work
++ * anymore with its recent content from Linux 2.4/2.6, created
++ * module.h locally instead.
+ */
+
+
+@@ -89,11 +94,12 @@
+ #include <errno.h>
+ #include <sys/fcntl.h>
+ #include <sys/stat.h>
++#include "module.h"
+ #if !defined(__GLIBC__)
+ #include <linux/time.h>
+-#include <linux/module.h>
++#include <linux/linkage.h>
+ #else /* __GLIBC__ */
+-#include <linux/module.h>
++#include <linux/linkage.h>
+ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
+ extern int get_kernel_syms __P ((struct kernel_sym *__table));
+ #endif /* __GLIBC__ */
+--- sysklogd-1.4.1.orig/module.h
++++ sysklogd-1.4.1/module.h
+@@ -0,0 +1,90 @@
++/*
++ module.h - Miscellaneous module definitions
++ Copyright (c) 1996 Richard Henderson <rth@tamu.edu>
++ Copyright (c) 2004 Martin Schulze <joey@infodrom.org>
++
++ This file is part of the sysklogd package.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*/
++
++/* ChangeLog:
++ *
++ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze <joey@infodrom.org>
++ * Created local copy of module.h based on the content of Linux
++ * 2.2 since <linux/module.h> doesn't work anymore with its
++ * recent content from Linux 2.4/2.6.
++ * Thu May 25 09:14:33 CEST 2006: Martin Schulze <joey@infodrom.org>
++ * Removed asm/atomic.h since it is not needed anymore.
++ */
++
++#define MODULE_NAME_LEN 60
++
++struct kernel_sym
++{
++ unsigned long value;
++ char name[MODULE_NAME_LEN];
++};
++
++
++struct list_head {
++ struct list_head *next, *prev;
++};
++
++
++struct module_info
++{
++ unsigned long addr;
++ unsigned long size;
++ unsigned long flags;
++ long usecount;
++};
++
++
++struct module
++{
++ unsigned long size_of_struct; /* == sizeof(module) */
++ struct module *next;
++ const char *name;
++ unsigned long size;
++
++ union
++ {
++ int usecount;
++ long pad;
++ } uc; /* Needs to keep its size - so says rth */
++
++ unsigned long flags; /* AUTOCLEAN et al */
++
++ unsigned nsyms;
++ unsigned ndeps;
++
++ struct module_symbol *syms;
++ struct module_ref *deps;
++ struct module_ref *refs;
++ int (*init)(void);
++ void (*cleanup)(void);
++ const struct exception_table_entry *ex_table_start;
++ const struct exception_table_entry *ex_table_end;
++#ifdef __alpha__
++ unsigned long gp;
++#endif
++ /* Members past this point are extensions to the basic
++ module support and are optional. Use mod_opt_member()
++ to examine them. */
++ const struct module_persist *persist_start;
++ const struct module_persist *persist_end;
++ int (*can_unload)(void);
++};
+--- sysklogd-1.4.1.orig/pidfile.c
++++ sysklogd-1.4.1/pidfile.c
+@@ -87,7 +87,7 @@
+ int fd;
+ int pid;
+
+- if ( ((fd = open(pidfile, O_RDWR|O_CREAT, 0644)) == -1)
++ if ( ((fd = open(pidfile, O_RDWR|O_CREAT|O_TRUNC, 0644)) == -1)
+ || ((f = fdopen(fd, "r+")) == NULL) ) {
+ fprintf(stderr, "Can't open or create %s.\n", pidfile);
+ return 0;
+--- sysklogd-1.4.1.orig/syslog.conf.5
++++ sysklogd-1.4.1/syslog.conf.5
+@@ -64,7 +64,7 @@
+ The
+ .I facility
+ is one of the following keywords:
+-.BR auth ", " authpriv ", " cron ", " daemon ", " kern ", " lpr ", "
++.BR auth ", " authpriv ", " cron ", " daemon ", " ftp ", " kern ", " lpr ", "
+ .BR mail ", " mark ", " news ", " security " (same as " auth "), "
+ .BR syslog ", " user ", " uucp " and " local0 " through " local7 .
+ The keyword
+@@ -122,7 +122,7 @@
+ This
+ .BR syslogd (8)
+ has a syntax extension to the original BSD source, that makes its use
+-more intuitively. You may precede every priority with an equation sign
++more intuitive. You may precede every priority with an equation sign
+ (``='') to specify only this single priority and not any of the
+ above. You may also (both is valid, too) precede the priority with an
+ exclamation mark (``!'') to ignore all that priorities, either exact
+@@ -300,7 +300,7 @@
+ .B syslogd
+ log all messages that come with either the
+ .BR info " or the " notice
+-facility into the file
++priority into the file
+ .IR /var/log/messages ,
+ except for all messages that use the
+ .B mail
+--- sysklogd-1.4.1.orig/syslogd.c
++++ sysklogd-1.4.1/syslogd.c
+@@ -890,11 +890,11 @@
+ dprintf("Checking pidfile.\n");
+ if (!check_pid(PidFile))
+ {
++ signal (SIGTERM, doexit);
+ if (fork()) {
+ /*
+ * Parent process
+ */
+- signal (SIGTERM, doexit);
+ sleep(300);
+ /*
+ * Not reached unless something major went wrong. 5
+@@ -1074,9 +1074,9 @@
+ (fd_set *) NULL, (struct timeval *) NULL);
+ if ( restart )
+ {
++ restart = 0;
+ dprintf("\nReceived SIGHUP, reloading syslogd.\n");
+ init();
+- restart = 0;
+ continue;
+ }
+ if (nfds == 0) {
+@@ -1141,13 +1141,13 @@
+ */
+ printchopped(from, line, \
+ i + 2, finet);
+- } else if (i < 0 && errno != EINTR) {
++ } else if (i < 0 && errno != EINTR && errno != EAGAIN) {
+ dprintf("INET socket error: %d = %s.\n", \
+ errno, strerror(errno));
+ logerror("recvfrom inet");
+ /* should be harmless now that we set
+ * BSDCOMPAT on the socket */
+- sleep(10);
++ sleep(1);
+ }
+ }
+ #endif
+@@ -1216,6 +1216,7 @@
+ {
+ int fd, on = 1;
+ struct sockaddr_in sin;
++ int sockflags;
+
+ fd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (fd < 0) {
+@@ -1241,6 +1242,24 @@
+ close(fd);
+ return -1;
+ }
++ /* We must not block on the network socket, in case a packet
++ * gets lost between select and recv, otherise the process
++ * will stall until the timeout, and other processes trying to
++ * log will also stall.
++ */
++ if ((sockflags = fcntl(fd, F_GETFL)) != -1) {
++ sockflags |= O_NONBLOCK;
++ /*
++ * SETFL could fail too, so get it caught by the subsequent
++ * error check.
++ */
++ sockflags = fcntl(fd, F_SETFL, sockflags);
++ }
++ if (sockflags == -1) {
++ logerror("fcntl(O_NONBLOCK), suspending inet");
++ close(fd);
++ return -1;
++ }
+ if (bind(fd, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
+ logerror("bind, suspending inet");
+ close(fd);
+@@ -1275,7 +1294,7 @@
+ for (count=i=0; p[i]; i++)
+ if (p[i] == LIST_DELIMITER) count++;
+
+- if ((result = (char **)malloc(sizeof(char *) * count+2)) == NULL) {
++ if ((result = (char **)malloc(sizeof(char *) * (count+2))) == NULL) {
+ printf ("Sorry, can't get enough memory, exiting.\n");
+ exit(0);
+ }
+@@ -1539,20 +1558,37 @@
+ int fac, prilev, lognum;
+ int msglen;
+ char *timestamp;
++#ifdef __gnu_linux__
++ sigset_t mask;
++#else
++#ifndef SYSV
++ sigset_t omask;
++#endif
++#endif
+
+ dprintf("logmsg: %s, flags %x, from %s, msg %s\n", textpri(pri), flags, from, msg);
+
++#ifdef __gnu_linux__
++ sigemptyset(&mask);
++ sigaddset(&mask, SIGHUP);
++ sigaddset(&mask, SIGALRM);
++ sigprocmask(SIG_BLOCK, &mask, NULL);
++#else
+ #ifndef SYSV
+ omask = sigblock(sigmask(SIGHUP)|sigmask(SIGALRM));
+ #endif
++#endif
+
+ /*
+ * Check to see if msg looks non-standard.
+ */
+ msglen = strlen(msg);
+- if (msglen < 16 || msg[3] != ' ' || msg[6] != ' ' ||
+- msg[9] != ':' || msg[12] != ':' || msg[15] != ' ')
+- flags |= ADDDATE;
++ flags |= ADDDATE;
++ if ( !(msglen < 16 || msg[3] != ' ' || msg[6] != ' ' ||
++ msg[9] != ':' || msg[12] != ':' || msg[15] != ' ')) {
++ msg += 16;
++ msglen -= 16;
++ }
+
+ (void) time(&now);
+ if (flags & ADDDATE)
+@@ -1581,9 +1617,13 @@
+ (void) close(f->f_file);
+ f->f_file = -1;
+ }
++#ifdef __gnu_linux__
++ sigprocmask(SIG_UNBLOCK, &mask, NULL);
++#else
+ #ifndef SYSV
+ (void) sigsetmask(omask);
+ #endif
++#endif
+ return;
+ }
+ #ifdef SYSV
+@@ -1646,9 +1686,13 @@
+ }
+ }
+ }
++#ifdef __gnu_linux__
++ sigprocmask(SIG_UNBLOCK, &mask, NULL);
++#else
+ #ifndef SYSV
+ (void) sigsetmask(omask);
+ #endif
++#endif
+ }
+ #if FALSE
+ } /* balance parentheses for emacs */
+@@ -1839,7 +1883,7 @@
+ #else
+ && e == EBADF) {
+ #endif
+- f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY);
++ f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY|O_NONBLOCK);
+ if (f->f_file < 0) {
+ f->f_type = F_UNUSED;
+ logerror(f->f_un.f_fname);
+@@ -2640,7 +2684,7 @@
+ f->f_file = open(++p, O_RDWR|O_NONBLOCK);
+ f->f_type = F_PIPE;
+ } else {
+- f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY,
++ f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY|O_NONBLOCK,
+ 0644);
+ f->f_type = F_FILE;
+ }
+--- sysklogd-1.4.1.orig/debian/NMU-Disclaimer
++++ sysklogd-1.4.1/debian/NMU-Disclaimer
+@@ -0,0 +1,45 @@
++Non Maintainer Upload of this Package
++-------------------------------------
++
++If you plan to work on an NMU for this package, read the following
++closely. It can save you and me some grief.
++
++ 1. At first, contact the maintainer (i.e. send a mail to
++ joey@debian.org, do not cc or bounce a mail, send a plain mail,
++ not copied to any mailing list or the BTS) and ask about the
++ status of the bug you are considering to work on.
++
++ 2. In this mail include all information relevant for this problem,
++ i.e. include a description of the bug and not only its bug
++ number.
++
++ 3. If the maintainer is not able or willing to fix the problem or
++ does not respond within four days, continue with step 4.
++
++ 4. Work on the bug and prepare a patch. Do not upload into the
++ Debian archive.
++
++ 5. Send the entire patch, together with enough explanations, to the
++ maintainer for reviewing and ask him for permission of an NMU
++ using this patch.
++
++ 6. IF AND ONLY IF the maintainer approves the patch (or doesn't
++ respond within four days), upload the NMU to the incoming
++ directory and send the patch to the BTS. If the NMU is not
++ approved, go back to 4. or add the NMU to your homepage, but do
++ not upload it to the Debian archive.
++
++ 7. Properly sized and well-written patches sent to the BTS are always
++ appreciated, even if they are rejected later. They demonstrate a
++ potential solution which could probably improved into a real
++ solution.
++
++ 8. NEVER change the way a package is maintained in an NMU, i.e. don't
++ remove dh_* stuff or switch to dh_* respectively. This rule
++ applies to all NMU's, not only to an NMU for this package.
++
++These rules always apply. They even apply if somebody declares NMUs
++as ok and reduces regular NMU rules to a delay of zero days. Unless
++I'm on vacation or on a show I am reachable via mail, so there is
++hardly a reason not to contact me.
++
+--- sysklogd-1.4.1.orig/debian/changelog
++++ sysklogd-1.4.1/debian/changelog
+@@ -0,0 +1,694 @@
++sysklogd (1.4.1-20) unstable; urgency=low
++
++ * Added a missing whitespace to the rc file (Closes: Bug#388787,
++ Bug#388378, Bug#388260)
++ * Corrected typo in syslog.conf(5) (Closes: Bug#327200)
++
++ -- Martin Schulze <joey@infodrom.org> Thu, 28 Sep 2006 20:46:41 +0200
++
++sysklogd (1.4.1-19) unstable; urgency=high
++
++ * Converted init.d scripts to LSB style
++ - accidently closes: Bug#211858
++ * Removed code that's not required anymore in cron.daily/sysklogd
++ * Fix initial permission (closes: Bug#285500)
++ * Added a special exception for when /var/log/news is a file (closes:
++ Bug#266555)
++ * Tidy up the postinst script
++ * Added devfs awarenes for /dev/xconsole creation (closes: Bug#206066)
++ * Move daemon stop logic into klogd's postinst
++ * Removed both preinst scripts from the distribution
++
++ -- Martin Schulze <joey@infodrom.org> Mon, 18 Sep 2006 13:15:59 +0200
++
++sysklogd (1.4.1-18) unstable; urgency=medium
++
++ * Removed asm/atomic.h since it is not needed anymore. (closes:
++ Bug#350764)
++ * Fixed typo in NMU-Disclaimer (closes: Bug#225895)
++ * Corrected getconf call in debian/rules to fix lagefile support
++ (closes: Bug#320119)
++ * Applied patch by Joey Hess to prevent klogd to be stopped/started too
++ fast (closes: Bug#284914)
++ * Finish /usr/share/doc transition with patch by Julien Cristau (closes:
++ Bug#337712, Bug#322769, Bug#255590)
++ * Reset the 'restart' flag immediately after entering the restart code.
++ Thanks to Dean Gaudet (closes: Bug#154805)
++ * Added support for /etc/default/{syslogd,klogd} files to contain
++ commandline arguments for syslogd and klogd (closes: Bug#98631,
++ Bug#127579, Bug#241350, Bug#266985)
++ * Added a description of system log level and link to sysctl(8) (closes:
++ Bug#164153)
++ * Acknowledging Joey's NMUs (closes: Bug#347333)
++
++ -- Martin Schulze <joey@infodrom.org> Thu, 25 May 2006 11:07:52 +0200
++
++sysklogd (1.4.1-17) unstable; urgency=high
++
++ * Use $(getconf LFS_CFLAGS) for large file support
++ * Applied adjusted patch by Miquel van Smoorenburg to fix spurious
++ hanging syslogd in connection with futex and NPTL introduced in recent
++ glibc versions and Linux 2.6 (closes: Bug#301511)
++
++ -- Martin Schulze <joey@infodrom.org> Wed, 25 May 2005 20:10:31 +0200
++
++sysklogd (1.4.1-16) unstable; urgency=medium
++
++ * applied patch by cph
++ * Applied patch by Colin Phipps so that syslogd doesn't block on the
++ network socket, in case a packet gets lost between select and
++ recv. (closes: Bug#275578)
++ * Applied patch by Anders Henke so that syslog calculates the time for
++ each message (closes: Bug#207619)
++ * Don't create /var/log/news if it's not needed (closes: Bug#266555)
++
++ -- Martin Schulze <joey@infodrom.org> Sun, 7 Nov 2004 13:10:03 +0100
++
++sysklogd (1.4.1-15) unstable; urgency=low
++
++ * Applied patch by Steve Grubb <linux_4ever@yahoo.com> to adjust memory
++ calculation in crunch_list().
++ * Removed atomic_t in the usecount field of the module struct for
++ compatibility reasons (closes: Bug#245513)
++
++ -- Martin Schulze <joey@infodrom.org> Tue, 27 Jul 2004 17:28:49 +0200
++
++sysklogd (1.4.1-14) unstable; urgency=medium
++
++ * Added more trailing newlines to init.d programs (closes: Bug#216110)
++ * Adjusted the use of head to the new behaviour for GNU coreutils
++ (closes: Bug#205535, Bug#172655)
++ * Install /usr/share/sysklogd/dummy to replace /usr/share/doc/sysklogd,
++ since /usr/share/doc should be removable by an admin (Policy 12.3).
++ (closes: Bug#237724)
++ * Added a private module.h with extracted data from Linux 2.2 to replace
++ <linux/module.h> which creates a number parse errors. (closes: Bug#223210)
++ * Added support for invoke-rc.d as written in policy 9.3.3 (closes:
++ Bug#213211, Bug#213585, Bug#216858, Bug#214912)
++
++ -- Martin Schulze <joey@debian.org> Wed, 31 Mar 2004 18:18:54 +0200
++
++sysklogd (1.4.1-13) unstable; urgency=medium
++
++ * Updated some text in the cronjobs
++ * Direct output of reloading to /dev/null so that no cron log mails will
++ be created defaultly (closes: Bug#213717, Bug#213646)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 2 Oct 2003 19:51:34 +0200
++
++sysklogd (1.4.1-12) unstable; urgency=low
++
++ * On heavily loaded system syslog will not spit out error messages
++ anymore when recvfrom() results in EAGAIN (closes: Bug#188194)
++ * Applied patch by Ryan Murray to make this package build on mipsel
++ again (closes: Bug#191969)
++ * Added O_NONBLOCK to two more locations, since Andreas Barth
++ <aba@not.so.argh.org> believes that it fixes this bug. However,
++ according to the note in open(2) this does not have to have any effect
++ on files other than pipes... (closes: Bug#45245)
++ * Permissions on empty files should also be corrected (closes: Bug#135485)
++ * Corrected the number of bytes denoting 1GB for large logfiles (closes: Bug#138234)
++ * Corrected the handling of the skip pattern (closes: Bug#152247)
++ * Don't cut non-newline trailing characters from the last line anymore
++ (closes: Bug#152248)
++ * Improved init.d scripts so non-existing pid directories are not
++ touched anymore (see Bug#165472)
++ * Whoops, looks like O_TRUNC was missing when opening the pidfile for writing,
++ increasing the chance of left-overs from older pid contents in the
++ file. (closes: Bug#165472)
++ * Don't send SIGHUP to klogd anymore. Only restart it in case the old
++ process got lost somehow. (closes: Bug#168851)
++ * Improved init.d script output (closes: Bug#190328)
++ * Adjusted the use of chown to the new behaviour for GNU coreutils
++ (closes: Bug#205364)
++ * Adjusted the use of head to the new behaviour for GNU coreutils
++ (closes: Bug#205535)
++ * Moved the installation of the signal handler up a little bit so it
++ guaranteed to be available when the child is forked, hence, fixing a
++ race condition. This used to create problems with UML and fast
++ machines. Thanks to Jon Burgess <Jon_Burgess@eur.3com.com> (closes:
++ Bug#211993)
++
++ -- Martin Schulze <joey@kyllikki.infodrom.north.de> Sun, 28 Sep 2003 12:34:31 +0200
++
++sysklogd (1.4.1-11) unstable; urgency=low
++
++ * Added a disclaimer for those people who plan to NMU this package
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 17 Oct 2002 08:26:04 +0200
++
++sysklogd (1.4.1-10) unstable; urgency=low
++
++ * Removed bashism from rc files (closes: Bug#127406, Bug#127407,
++ Bug#127578, Bug#127372)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 3 Jan 2002 18:22:13 +0100
++
++sysklogd (1.4.1-9) unstable; urgency=low
++
++ * Use a newer Standards-Version
++ * Corrected dependency of sysklogd (closes: Bug#123908)
++ * Transfer section/priority into .deb (closes: Bug#123908)
++ * Fix typo in syslog.conf(5) (closes: Bug#126899)
++ * Added ``-e'' to weekly and daily cron scripts. Beware, from now on
++ they will fail if an error occurs and leave /var/log in an undefined
++ state, not signalling syslogd to reopen files as well. (closes: Bug#123281)
++ * Added some intelligence into /etc/init.d/sysklogd and klogd so the
++ daemons will be restarted when they should only be reloaded but are
++ not running. This could be helpful if after an OOM situation syslogd
++ or klogd were killed by init but cron wasn't. (closes: Bug#126749, Bug#126750)
++ * Create /dev/xconsole in init.d script if it doesn't exist. Hence
++ removing this out of the postinst script. This should help situations
++ when devfs is installed and /dev/ get's removed on system boot, thus
++ /dev/xconsole gets removed as well. (closes: Bug#106535)
++ * Added ftp facility (closes: Bug#100437)
++ * Added missing documentation to syslogd-listfiles(8) (fixes: Bug#48326)
++ * Added a PATH= statement to all init.d files (closes: Bug#47901)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 1 Jan 2002 13:44:42 +0100
++
++sysklogd (1.4.1-8) unstable; urgency=low
++
++ * Added special code to find out if a logfile was rotated within the
++ last 5 hours already, hence should not be rotated again. Hope this
++ satisfies Craig Sanders' request properly. (closes: Bug#39198)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 6 Dec 2001 11:06:53 +0100
++
++sysklogd (1.4.1-7) unstable; urgency=low
++
++ * Fixed override disparity
++ * Added more defines so files larger than 2GB can be created, approved
++ by the glibc maintainer (closes: Bug#120574)
++ * Closing old bug reports (closes: Bug#95230, Bug#34391, Bug#72892)
++ * Added `--large nnn' as argument to syslogd-listfiles so people can
++ decide on their own what a large file is (closes: Bug#39198)
++ * Increased the default definition for large files
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 5 Dec 2001 22:01:23 +0100
++
++sysklogd (1.4.1-6) unstable; urgency=low
++
++ * Corrected path for syslogd in cron scripts (closes: Bug#122261,
++ Bug#121680, Bug#120809)
++ * Already fixed bugs (closes: Bug#121784)
++ * Improved package description (closes: Bug#120755)
++ * Added an improved pattern for news.*, thanks Takuo (closes: Bug#103999)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 4 Dec 2001 09:46:46 +0100
++
++sysklogd (1.4.1-5) unstable; urgency=low
++
++ * Fix the override disparity
++ * Removed superflous Priority
++ * Removed =VER= string from syslogd-listfiles (closes: Bug#102998)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 21 Nov 2001 23:00:29 +0100
++
++sysklogd (1.4.1-4) unstable; urgency=low
++
++ * Added convenience code to support $DEB_BUILD_OPTIONS
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 21 Nov 2001 18:41:23 +0100
++
++sysklogd (1.4.1-3) unstable; urgency=medium
++
++ * Be more anal about whether sysklogd is installed or not in our cron
++ scripts (closes: Bug#100319)
++ * Added missing newline in init.d script upon restart (closes: Bug#95554)
++ * Moved stop code to prerm (closes: Bug#120249, Bug#96355, Bug#105441,
++ Bug#105442, Bug#109470)
++ * Corrected broken character in klogd.8 (closes: Bug#75932) [repeat, due
++ to typo]
++ * Added dependency to klogd so people who upgrade their sysklogd package
++ won't lose it anymore (closes: Bug#93729) [repeat, another bug#]
++ * auth.* files are only rotated daily (closes: Bug#102138)
++ * Changed -p to -s in documentation (closes: Bug#108473)
++ * Updated documentation to reflect the current location of the mailing
++ list
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 20 Nov 2001 20:48:32 +0100
++
++sysklogd (1.4.1-2) unstable; urgency=low
++
++ * Corrected location of GPL (closes: Bug#90582)
++ * Added section and priority for binary packages
++ * Added dependency to klogd so people who upgrade their sysklogd package
++ won't lose it anymore (closes: Bug#93922)
++ * Added code snipped to stop klogd/syslogd upon removal (closes:
++ Bug#90534, Bug#90970)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sat, 21 Apr 2001 15:06:02 +0200
++
++sysklogd (1.4.1-1) unstable; urgency=low
++
++ * New upstream source (closes: Bug#87819, Bug#70790, Bug#32580,
++ Bug#62358, Bug#71631)
++ * Upstream: Doesn't re-set log-level if not requested (closes:
++ Bug#76170, Bug#76170, Bug#85289)
++ * Upstream: Ignore zero bytes (closes: Bug#85478, Bug#85478, Bug#41068)
++ * Upstream: Corrected documentation for `-s' (closes: Bug#87020)
++ * Upstream: test for existence of syslogd-listfiles before calling
++ them. This got lost due to 1.4.0 brokennes which was packaged and
++ removed some hours later (closes: Bug#84872, Bug#66712)
++ * Applied patch by Tommi Virtanen <tv@debian.org> splitting the package
++ into `sysklogd' and `klogd' (closes:Bug#35586, Bug#72043, Bug#74864,
++ Bug#72122)
++ * Provide / depend on virtual packages system-log-daemon
++ and linux-kernel-log-daemon (closes: Bug#67604)
++ * Applied patch from Tim Janik <timj@gtk.org> to support `-s pattern' in
++ syslogd-listfiles
++ * Transition to FHS, i.e. /usr/share/doc instead of /usr/doc and
++ /usr/share/man instead of /usr/man (closes: Bug#79250, Bug#80771)
++ * Use --exec for stopping services (closes: Bug#76757)
++ * Corrected broken character in klogd.8 (cloes: Bug#75932)
++ * Only rotate logfiles with size greater than zero. This got lost due
++ to 1.4.0 brokennes which was packaged and removed some hours later
++ (closes: Bug#74993, Bug#49824)
++ * Added another note about modificability of cronjobs (closes:
++ Bug#88741)
++ * Since klogd replaces parts of sysklogd a proper Replaces line is there
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 11 Mar 2001 22:30:53 +0100
++
++sysklogd (1.4-1) stable unstable; urgency=medium, closes=70790 32580 49824 62358 66712 71631
++
++ * Added paragraph to binary target
++ * New upstream version (closes: Bug#70790, Bug#32580, Bug#62358,
++ Bug#71631)
++ * Only rotate logfiles that have a size greater than zero (closes:
++ Bug#49824)
++ * Test for existence of syslogd-listfiles before calling it (closes:
++ Bug#66712)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Mon, 18 Sep 2000 16:02:05 +0200
++
++sysklogd (1.3-33) unstable; urgency=medium, closes=38977
++
++ * chmod 0640 /dev/xconsole regardless of its existence (closes: Bug#38977)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 12 Sep 1999 20:47:53 +0200
++
++sysklogd (1.3-32) unstable; urgency=low, closes=35408 34733 36198
++
++ * Fixed typo in syslogd-listfiles (closes: Bug#35408)
++ * Removed superflous call to utmpname() (closes: Bug#34733)
++ * Added --ignore-size and limit for rotating log files at 2MB to
++ syslogd-listfiles (closes: Bug#36198)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 23 May 1999 10:40:33 +0200
++
++sysklogd (1.3-31) frozen unstable; urgency=low, closes=28629 30093 31494 30462
++
++ * ``-m 0'' turns off -- MARK -- now. (closes: Bug#28629, Bug#31494)
++ * Changed Greg's e-mail address to represent his current one.
++ * Shortened line length for kernel logging slightly.
++ * Corrected return value of AddModule (closes: Bug#30093)
++ * Finally fixed an error with `-a' processing, thanks to Topi Miettinen
++ <tom@medialab.sonera.net> (closes: Bug#30462)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 19 Jan 1999 23:56:07 +0100
++
++sysklogd (1.3-30) unstable; urgency=low, closes=28128 28122 24893
++
++ * Contains more patches from Topi Miettinen.
++ * Fixed two mistakes from the most recent version
++ * Fixed fd leak problem. Thanks to Topi for detecting it
++ * Ouch! Looks like the released package again is broken. It worked
++ locally.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 18 Oct 1998 20:38:22 +0200
++
++sysklogd (1.3-29) unstable; urgency=low, closes=24893
++
++ * Re-Applied patch provided vom Topi Miettinen with regard to the people
++ from OpenBSD. This provides the additional '-a' argument used for
++ specifying additional UNIX domain sockets to listen to. This is been
++ used with chroot()'ed named's for example. An example is described at
++ http://www.psionic.com/papers/dns.html. This time the patch doesn't
++ stall syslogd. Thanks to Topi Miettinen <tom@medialab.sonera.net>
++ (closes: Bug#24893)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sat, 17 Oct 1998 20:23:00 +0200
++
++sysklogd (1.3-28) unstable; urgency=low
++
++ * Added manpage for syslog-facility, also written by Raphaël Hertzog
++ * Reverted support for multiple Unix domain sockets since it caused
++ syslogd to not accept more sockets after a certain (undefinitve)
++ time. (opens: Bug#24893)
++ * The complete code is still present, search for `Bug#24893'
++ * Commented out `-a' in the syslogd.8 manpage
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 15 Oct 1998 19:35:26 +0200
++
++sysklogd (1.3-27) frozen unstable; urgency=low, closes=21212 11917 21606 24609 25835 26015 24648 20135 23502 24893 24894
++
++ * Postinst will create files with correct file modes (closes: Bug#21212)
++ * Made /dev/xconsole mode 0640 and root.adm (closes: Bug#11917)
++ * Changed priority of exit message from LOG_ERR to LOG_INFO (closes
++ Bug#21606)
++ * The code now is compilable without SYSLOG_INET again. Thanks to
++ Enrik Berkhan <enrik@rzstud1.akk.org>.
++ * Added support for TESTING define which will turn syslogd into
++ stdio-mode used for debugging.
++ * Reworked the initialization/fork code. Now the parent
++ process activates a signal handler which the daughter process will
++ raise if it is initialized. Only after that one the parent process
++ may exit. Otherwise klogd might try to flush its log cache while
++ syslogd can't receive the messages yet. (closes: Bug#24609)
++ * Fixed typo in /etc/syslog.conf (closes: Bug#25835)
++ * Modified pre- and postinst scripts to set +e before executing external
++ scripts. This is a workaround against a bug in bash (Bug#23857).
++ Bash exports the errexit (-e) flag if allexport (-a) has been set. The
++ bug occurs even if allexport is being _re_set. (closes: Bug#26015)
++ * Modified ksym::CheckVersion()
++ . Use shift to decode the kernel version
++ . Compare integers of kernel version
++ . extract major.minor.patch from utsname.release via sscanf()
++ The reason lays in possible use of kernel flavours which modify
++ utsname.release but no the Version_ symbol. (closes: Bug#20135)
++ * Corrected klogd.c in order to support the new address space for late
++ 2.1 kernels. Some support for unsigned long in contrary to int was
++ missing. (closes: Bug#23502)
++ * Applied patch provided vom Topi Miettinen with regard to the people
++ from OpenBSD. This provides the additional '-a' argument used for
++ specifying additional UNIX domain sockets to listen to. This is been
++ used with chroot()'ed named's for example. An example is described at
++ http://www.psionic.com/papers/dns.html. Thanks to Topi Miettinen
++ <tom@medialab.sonera.net> (closes: Bug#24893)
++ * Added support for `ftp' log facility which was introduced by glibc
++ version 2. Thanks to netgod and Flood from #Debian.
++ * Code cleanups with regard to bsd -> posix transition and stronger
++ security (buffer length checking). Thanks to Topi Miettinen
++ <tom@medialab.sonera.net> (closes: Bug#24894)
++ . index() --> strchr()
++ . sprintf() --> snprintf()
++ . bcopy() --> memcpy()
++ . bzero() --> memset()
++ . UNAMESZ --> UT_NAMESIZE
++ . sys_errlist --> strerror()
++ * Added support for setutent()/getutent()/endutend() instead of binary
++ reading the UTMP file. This is the the most portable way. Thanks to
++ Topi Miettinen <tom@medialab.sonera.net>.
++ * Avoid logging of SIGCHLD when syslogd is in the process of exiting and
++ closing its files. Again thanks to Topi.
++ * Added /usr/sbin/syslog-facility, written by Raphaël Hertzog
++ <hertzog@debian.org>. It opens a way for other packages to add and
++ remove logfiles/facilities.
++ * Modified printline() to support 8bit characters - such as russion
++ letters. Thanks to Vladas Lapinskas <lapinskas@mail.iae.lt>.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Mon, 12 Oct 1998 22:24:04 +0200
++
++sysklogd (1.3-26) frozen unstable; urgency=low, closes=20903 20765 20556 20507 20647 20220
++
++ * Fixed typos in syslogd-listfiles(1), thanks to Francesco Potorti`
++ <F.Potorti@cnuce.cnr.it> (closes: Bug#20903)
++ * Corrected email address for Shane Alderton (closes: Bug#20765)
++ * Fixed manpage to not reflect reverse implementated SIGALRM signal
++ handler (closes: Bug#20647)
++ * Modified behaviour with including <sys/module.h> (closes: Bug#20556)
++ * Added correct prototype for llseek() (closes: Bug#20507, Bug#20220)
++ * Added more log information if problems occurr while reading a system
++ map file.
++ * Modified System.map read function to try all possible map files until
++ a file with matching version is found.
++ * Added Debian release to klogd
++ * Switched to fgets() as gets() is not buffer overrun secure.
++ * Modified loop for detecting the correct system map.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 16 Apr 1998 19:28:05 +0200
++
++sysklogd (1.3-25) unstable; urgency=low, closes=19454 19145 1914
++
++ * Corrected permissions on packaging control files (closes: Bug#19414)
++ * Removed kill statements from rc file (closes: Bug#19454, Bug#19145)
++ * Applied patch from Pedro Manuel Rodrigues <pmanuel@cindy.fe.up.pt> to
++ let klogd work togther with >2GB address space.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 19 Mar 1998 23:56:09 +0100
++
++sysklogd (1.3-24) unstable; urgency=low, closes=18124
++
++ * Fixed tiny mistake which refused the MARK facility to work properly
++ (closes: Bug#18124)
++ * Corrected Topi's patch as it prevented forwarding during startup due
++ to an unknown LogPort.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 25 Feb 1998 13:19:27 +0100
++
++sysklogd (1.3-23) unstable; urgency=low
++
++ * Corrected FSF's address (lintian)
++ * Implemented force-reload (lintian)
++ * Standards-Version: 2.4.0.0
++ * Applied patch from Topi Miettinen <Topi.Miettinen@ml.tele.fi> to open
++ the UDP socket only if it is really needed.
++ * Updated sysklogd(8) manpage
++ * Added notes to mailing list
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 24 Feb 1998 00:39:10 +0100
++
++sysklogd (1.3-22) unstable; urgency=low, closes=17192 17385 17601
++
++ * Included a real fix to the %'s problem (fixes: Bug#17192)
++ * Another patch for Linux/alpha by Christopher C Chimelis
++ <chris@classnet.med.miami.edu> (fixes: Bug#17385)
++ * Removed killall-statement from postinst. Thanks to James Troup for
++ reporting it.
++ * Added chdir("/") to both daemons (fixes: Bug#17601)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 29 Jan 1998 21:56:40 +0100
++
++sysklogd (1.3-21) unstable; urgency=low, closes=17159
++
++ * Fixed small typo in syslogd-listfiles (Bug#17159)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 15 Jan 1998 23:22:57 +0100
++
++sysklogd (1.3-20) unstable; urgency=low, closes=17000
++
++ * Corrected some code that caused klogd to dump core when receiving some
++ special messages from 2.1.78. Thanks to Chu-yeon Park
++ <kokids@doit.ajou.ac.kr> for informing me.
++ * Fixed bug that caused klogd to die if there is no System.map
++ available.
++ * Added -x switch to omit EIP translation and System.map evaluation.
++ Thanks to Florian La Roche <florian@knorke.saar.de>
++ * Fixed small bugs in F_FORW_UNKN meachanism. Thanks to Torsten Neumann
++ <torsten@londo.rhein-main.de> for pointing me to it.
++ * Fixed problem with klogd not being able to be built on a kernel newer
++ than 2.1.18. Worked in a patch from Alessandro Suardi <asuardi@uninetcom.it>
++ * Fixed small typo in syslogd-listfiles
++ * Corrected debug output concerning remote receiption
++ * Removed race condition in syslogd-listfiles
++ * Modified logfile detection routine to take care of double listed
++ logfiles. Thanks to Roman Hodek <roman@debian.org> for providing an
++ appropriate patch. (Bug#17000)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 13 Jan 1998 01:59:56 +0100
++
++sysklogd (1.3-19) unstable; urgency=low, closes=16643 16769 16796 16828 16148 14776
++
++ * Used better regexp for detecting sensitive data. Thanks a lot to
++ Susanne Schmidt <banshee@linux.de> for providing it.
++ * Fixed ownership of /usr/doc/sysklogd/copyright and readme (Bug#16643)
++ * Corrected Standards-Version to 2.3.0.1 (Bug#16769)
++ * Reworked one line of an older patch because it prevented syslogd from
++ binding the socket with the result that no messages were forwarded to
++ other hosts.
++ * Changed the behaviour of klogd when receiving a terminate signal. Now
++ the program terminates immediately instead of completing the receipt of
++ a kernel message. (Bug#16796, Bug#16828, Bug#16148)
++ * Noticed a bug which was closed by 1.3-18 (Bug#14776)
++ * Changed Maintainer address to joey@debian.org
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 9 Jan 1998 00:58:36 +0100
++
++sysklogd (1.3-18) unstable; urgency=low, closes=11731 12009 13506 14329 14521 14610 15840 15336
++
++ * Added test in postinst if user and group exist. Christoph Lameter run
++ into trouble upgrading a RedHat system.
++ * Fixed little mistake which prevented klogd from accepting a console
++ log level of 8 to get <7> alias KERN_DEBUG displayed.
++ * Linked against libc6 (Bug#11731)
++ * Added SHELL=/bin/bash to rules as Herbert Xu suggested
++ * Corrected syslog.conf(5) manpage
++ * syslogd resets the ignore priority flag now. Thanks to Herbert
++ Thielen. (Bug#12009)
++ * Fixed bug that caused syslogd to write into wrong files under some
++ race conditions. Thanks to Herbet Xu. (Bug#13506)
++ * /var/log/auth.log will only be touch if needed (Bug#14329)
++ * debian/conffiles is treated like a document (Bug#14521)
++ * Added script for generic logfile detection and rotation and included
++ that in cron scripts, included also its manpage (Bug#14610)
++ * Modified restart messages in /etc/init.d/sysklogd (Bug#15840)
++ * klogd will first try to load /boot/System.map-$ver, then
++ /boot/System.map, then /System.map-$ver and after that /System.map
++ * Modified ExpandKadds() because there were some problems accessing
++ memory r/w. (Bug#15336)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 2 Jan 1998 03:31:09 +0100
++
++sysklogd (1.3-17) unstable; urgency=low
++
++ * Fixed stupid bug which caused klogd to eat up 90% cpu time.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 25 Jun 1997 15:22:29 +0200
++
++sysklogd (1.3-16) unstable; urgency=low
++
++ * Included Miquel's patches which allows continuation line support
++ for syslogd. Corrected syslog.conf(5) manpage. Improved
++ syslog.conf file. Thanks to Miquel van Smoorenburg
++ <miquels@cistron.nl> for dropping in these patches.
++ * Added /var/log/syslog as a daily rotated logfile which contains
++ everything except auth.*
++ * ksym.c: Added #1 and #2 to some error messages in order to being able
++ to divide them (ulmo@Q.Net)
++ * Improved postinst script (Thanks to Miquel van Smorrenborg for ideas)
++ * klogd now also reads /System.map-<version> and
++ /boot/System.map-<version> (Bug#7210)
++ * syslogd,klogd: made DEBRELEASE optional to support a non-Debian
++ release as well.
++ * Corrected freeing of logfiles.
++ * Removed delay of 10 seconds. (Bug#8104, Bug#8400)
++ * Modified permissions of logfiles from 644 to 640 and 640 to 600 for
++ security aspects.
++ * Corrected syslog.conf(5) manpage (Bug#9779)
++ * Found upstream patches for 1.3.1 to 1.3.3 which are now included.
++ These also include some patches for glibc and Alpha.
++ * Included patch to modules package to support better debugging
++ * Added patch from Leland Olds which fixes a buffer overrun and improved
++ symbol lookup. (Bug#4875)
++ * Some more glibc patches made by Michael Alan Dorman
++ <mdorman@debian.org>. (Bug#8362, Bug#8763)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 15 Jun 1997 19:37:13 +0200
++
++sysklogd (1.3-15) unstable; urgency=low
++
++ * Added /var/log/mail.log as a logfile
++ * Corrected Description field (Bug#7624)
++ * Added read statement in postinst script (Bug#8243)
++
++ -- Martin Schulze <joey@infodrom.north.de> Wed, 26 Mar 1997 13:32:24 +0100
++
++sysklogd (1.3-14) unstable; urgency=low
++
++ * Debugging syslogd now shows facility.priority
++ * Minor fixes
++ * Modified syslogd.c to not kill itself which confuses bash 2.0
++
++ -- Martin Schulze <joey@infodrom.north.de> Sun, 23 Feb 1997 12:23:55 +0100
++
++sysklogd (1.3-13) stable; urgency=low
++
++ * Made /etc/init.d/sysklogd more verbose
++ * Minor fixes
++ * Uncompressed copyright, but compressed /usr/doc/sysklogd-1.3.16/readme
++
++ -- Martin Schulze <joey@debian.org> Sat, 8 Feb 1997 14:12:29 +0100
++
++sysklogd (1.3-12) stable; urgency=HIGH
++
++ * Converted to Standards-Version 2.1.1.2
++ * init.d/sysklogd: added "sleep 1"
++ * syslogd won't hassle anymore if it can't access logfils. Patched by
++ me. This adresses Bug#5865.
++ * /etc/init.d/sysklogd: Modified so that one can use commandline
++ arguments for both syslogd and klogd.
++ * debian.rules: Installed ChangeLog
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 30 Jan 1997 22:48:59 +0100
++
++Mon Now 25 10:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * modified preinst to work if /etc/init.d/sysklogd doesn't exist
++ because of a failure
++
++Mon Sep 10 10:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * ksyms.c: klogd will first look at /System.map (Bug#4403, #4459)
++
++Fri Aug 16 21:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * debian.rules: Changed permissions for syslogd and klogd to 755
++ (Bug#4049)
++
++Mon Aug 12 10:40:05 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * Corrected permissions of documentation. Thanks to Dan
++ Quinlan. (Bug#4090)
++
++Mon Aug 5 22:47:40 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * syslogd.c: If you haven't set your domainname, syslogd will dump
++ core upon startup. Fixed. Thanks to Leeland Lucius
++ <llucius@millcomm.com> for reporting and patching it. (Bug#3526)
++
++ * /etc/init.d/sysklogd, /etc/cron.weekly/sysklogd: slight
++ improvements. Thanks to Bernd Eckenfels <ecki@tapac.inka.de>.
++
++Fri Aug 2 11:03:30 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * modified weekly cron script, thanks to Todd Tyrone Fries <todd@miango.com>
++
++Fri Jun 14 10:42:26 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * ksyms.c: increased the size of vstring, because since Linux
++ major versions are decoded with n * 65536 and we now have 2.0, the
++ field was too short.
++
++Tue May 28 01:02:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * syslogd.c: Corrected behaviour of blocking pipes - i.e. the
++ whole system hung. Michael Nonweiler <mrn20@hermes.cam.ac.uk> has
++ sent us a patch to correct this. A new logfile type F_PIPE has
++ been introduced.
++
++Thu May 23 08:39:54 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * postinst: Corrected killall-statement, Thanks to Miquel van
++ Smoorenborg for the hint
++
++Mon May 20 00:14:35 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * postinst: added a killall to remove an existing syslogd. It
++ could exist because of Bug#2836.
++
++Sun May 12 13:36:55 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * removed auth.* from /dev/xconsole
++
++ * klogd won't log old messages anymore (Bug#2337)
++ I have applied the patch from Chris Hanson.
++
++ * I have put another start-stop-daemon call in the startup script
++ so the configs are reloaded on startup. This should
++ help. (Bug#2552)
++
++ * Sysklogd takes care of this and createst /dev/xconsole if it
++ doesn't exist during installation. (Bug#2683)
++
++ * I have corrected permissions of /dev/xconsole. (Bug#2837)
++
++ * defined /etc/cron.weekly/sysklogd as a conffile (Bug#2950, Bug#2960)
++
++ * introduced two binary packages: syslogd and sysklogd which
++ exclude each other
++
++Sun Apr 21 17:56:03 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * Corrected preinst (Bug#2722, Bug#2725, Bug#2726)
++
++ * Linked against libc 5.2.18 (Bug#2723, Bug#2725)
++
++ * Corrected control file to fit with newer dpkgs
++
++Wed Apr 17 21:40:56 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * Added Debian packaging information
++
++
+--- sysklogd-1.4.1.orig/debian/conffiles
++++ sysklogd-1.4.1/debian/conffiles
+@@ -0,0 +1,5 @@
++/etc/default/syslogd
++/etc/syslog.conf
++/etc/init.d/sysklogd
++/etc/cron.daily/sysklogd
++/etc/cron.weekly/sysklogd
+--- sysklogd-1.4.1.orig/debian/conffiles.klogd
++++ sysklogd-1.4.1/debian/conffiles.klogd
+@@ -0,0 +1,2 @@
++/etc/default/klogd
++/etc/init.d/klogd
+--- sysklogd-1.4.1.orig/debian/control
++++ sysklogd-1.4.1/debian/control
+@@ -0,0 +1,32 @@
++Source: sysklogd
++Section: admin
++Priority: important
++Maintainer: Martin Schulze <joey@debian.org>
++Standards-Version: 3.5.6.0
++
++Package: sysklogd
++Architecture: any
++Section: admin
++Depends: ${shlibs:Depends}, klogd | linux-kernel-log-daemon
++Conflicts: syslogd
++Provides: syslogd, system-log-daemon
++Replaces: syslogd
++Description: System Logging Daemon
++ This package implements the system log daemon, which is an enhanced
++ version of the standard Berkeley utility program. It is responsible
++ for providing logging of messages received from programs and facilities
++ on the local host as well as from remote hosts.
++
++Package: klogd
++Architecture: any
++Section: admin
++Depends: ${shlibs:Depends}, sysklogd | system-log-daemon
++Conflicts: sysklogd (<= 1.3-33)
++Provides: linux-kernel-log-daemon
++Replaces: sysklogd
++Description: Kernel Logging Daemon
++ The klogd daemon listens to kernel message sources and is responsible
++ for prioritizing and processing operating system messages. The klogd
++ daemon can run as a client of syslogd or optionally as a standalone
++ program. Klogd can now be used to decode EIP addresses if it can
++ determine a System.map file.
+--- sysklogd-1.4.1.orig/debian/copyright
++++ sysklogd-1.4.1/debian/copyright
+@@ -0,0 +1,50 @@
++This is the Debian GNU/Linux prepackaged version of Linux' system and
++kernel logging daemons.
++
++This package was put together by Martin Schulze <joey@debian.org>,
++from sources obtained from:
++
++ http://www.infodrom.org/projects/sysklogd/download/sysklogd-1.4.1.tar.gz
++
++Recent versions are Debian versions that may be also be found at
++
++ http://www.infodrom.org/projects/sysklogd/
++
++syslogd is under Berkeley copyright, klogd is under GPL.
++
++ Copyright (C) 1994-96 Greg Wettstein <greg@wind.enjellic.com>
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; version 2 dated June, 1991.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
++
++On Debian GNU/Linux systems, the complete text of the GNU General
++Public License can be found in `/usr/share/common-licenses/GPL'.
++
++There is a mailing list covering this package and syslog in general.
++The lists address is infodrom-sysklogd@lists.infodrom.org .
++
++To subscribe to this list,
++
++ . send a mail to infodrom-sysklogd-request@lists.infodrom.org with
++ the word "subscribe" as subject, or
++
++ . send a mail to majordomo@lists.infodrom.org with the body of
++ "subscribe infodrom-sysklogd".
++
++The list will be archived publically at
++<http://www.infodrom.org/Mail-Archive/infodrom-sysklogd>.
++
++The source of the Debian package is managed through CVS. It is publically
++available at <http://cvs.infodrom.org/sysklogd/?cvsroot=debian> or as
++<:pserver:anonymous@cvs.infodrom.org/var/cvs/debian/sysklogd/>.
++
+--- sysklogd-1.4.1.orig/debian/cron.daily
++++ sysklogd-1.4.1/debian/cron.daily
+@@ -0,0 +1,39 @@
++#! /bin/sh
++
++# sysklogd Cron script to rotate system log files daily.
++#
++# If you want to rotate other logfiles daily, edit
++# this script. An easy way is to add files manually,
++# to add -a (for all log files) to syslogd-listfiles and
++# add some grep stuff, or use the -s pattern argument to
++# specify files that must not be listed.
++#
++# This is a configration file. You are invited to edit
++# it and maintain it on your own. You'll have to do
++# that if you don't like the default policy
++# wrt. rotating logfiles (i.e. with large logfiles
++# weekly and daily rotation may interfere). If you edit
++# this file and don't let dpkg upgrade it, you have full
++# control over it. Please read the manpage to
++# syslogd-listfiles.
++#
++# Written by Martin Schulze <joey@debian.org>.
++# $Id: cron.daily,v 1.13 2006-09-18 09:42:30 joey Exp $
++
++test -x /usr/sbin/syslogd-listfiles || exit 0
++test -x /sbin/syslogd || exit 0
++test -f /usr/share/sysklogd/dummy || exit 0
++
++set -e
++
++cd /var/log
++for LOG in `syslogd-listfiles`
++do
++ if [ -s $LOG ]; then
++ savelog -g adm -m 640 -u root -c 7 $LOG >/dev/null
++ fi
++done
++
++# Restart syslogd
++#
++/etc/init.d/sysklogd reload-or-restart > /dev/null
+--- sysklogd-1.4.1.orig/debian/cron.daily.klogd
++++ sysklogd-1.4.1/debian/cron.daily.klogd
+@@ -0,0 +1,47 @@
++#! /bin/sh
++
++binpath=/sbin/klogd
++pidfile=/var/run/klogd.pid
++
++test -x $binpath || exit 0
++
++
++running()
++{
++ # No pidfile, probably no daemon present
++ #
++ if [ ! -f $pidfile ]
++ then
++ return 1
++ fi
++
++ pid=`cat $pidfile`
++
++ # No pid, probably no daemon present
++ #
++ if [ -z "$pid" ]
++ then
++ return 1
++ fi
++
++ if [ ! -d /proc/$pid ]
++ then
++ return 1
++ fi
++
++ cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
++
++ # No syslogd?
++ #
++ if [ "$cmd" != "$binpath" ]
++ then
++ return 1
++ fi
++
++ return 0
++}
++
++if ! running
++then
++ sh /etc/init.d/klogd start > /dev/null
++fi
+--- sysklogd-1.4.1.orig/debian/cron.weekly
++++ sysklogd-1.4.1/debian/cron.weekly
+@@ -0,0 +1,38 @@
++#! /bin/sh
++
++# sysklogd Cron script to rotate system log files weekly.
++#
++# If you want to rotate logfiles daily, edit
++# this script and /etc/cron.daily/sysklogd to get
++# the logfiles in sync (they must not occur in both
++# files).
++#
++# This is a configration file. You are invited to edit
++# it and maintain it on your own. You'll have to do
++# that if you don't like the default policy
++# wrt. rotating logfiles (i.e. with large logfiles
++# weekly and daily rotation may interfere). If you edit
++# this file and don't let dpkg upgrade it, you have full
++# control over it. Please read the manpage to
++# syslogd-listfiles.
++#
++# Written by Ian A. Murdock <imurdock@debian.org>.
++# $Id: cron.weekly,v 1.10 2004-03-31 16:18:15 joey Exp $
++
++test -x /usr/sbin/syslogd-listfiles || exit 0
++test -x /sbin/syslogd || exit 0
++test -f /usr/share/sysklogd/dummy || exit 0
++
++set -e
++
++cd /var/log
++for LOG in `syslogd-listfiles --weekly`
++do
++ if [ -s $LOG ]; then
++ savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null
++ fi
++done
++
++# Restart syslogd
++#
++/etc/init.d/sysklogd reload-or-restart > /dev/null
+--- sysklogd-1.4.1.orig/debian/default
++++ sysklogd-1.4.1/debian/default
+@@ -0,0 +1,13 @@
++#
++# Top configuration file for syslogd
++#
++
++#
++# Full documentation of possible arguments are found in the manpage
++# syslogd(8).
++#
++
++#
++# For remote UDP logging use SYSLOGD="-r"
++#
++SYSLOGD=""
+--- sysklogd-1.4.1.orig/debian/default.klogd
++++ sysklogd-1.4.1/debian/default.klogd
+@@ -0,0 +1,15 @@
++#
++# top configuration file for klogd
++#
++
++#
++# Full documentation of possible arguments are found in the manpage
++# klogd(8).
++#
++
++#
++# Use KLOGD="-k /boot/System.map-$(uname -r)" to specify System.map
++# -c 4 to alter the kernel console log level (deprecated)
++# use sysctl instead
++#
++KLOGD="-x"
+--- sysklogd-1.4.1.orig/debian/dummy
++++ sysklogd-1.4.1/debian/dummy
+@@ -0,0 +1,4 @@
++Do not remove this file or your log files won't be rotated anymore.
++This is a control file to ensure that the sysklogd package is
++installed so that the cronjobs don't have to parse the dpkg database
++for each run.
+--- sysklogd-1.4.1.orig/debian/postinst
++++ sysklogd-1.4.1/debian/postinst
+@@ -0,0 +1,83 @@
++#! /bin/sh
++
++set -e
++
++if [ "$1" = "configure" ]
++then
++ case $2 in
++ 1.2-*)
++cat<<EOT
++The default behaviour of syslogd has altered from 1.2 to 1.3. By default
++*no* messages from the UDP port are accepted.
++
++Read the documentation in /usr/doc/sysklogd carefully. Some important
++things have been changed!
++
++Press [Enter] to continue
++EOT
++ read xyz
++ ;;
++ esac
++fi
++
++if [ "$1" = "configure" ]
++then
++
++ # Prepare for takeover of the host
++ if [ -z "$2" ]
++ then
++ if [ ! -e /var/log/news ] \
++ && grep -q '^[^#].*/var/log/news/' /etc/syslog.conf \
++ && grep -q ^news: /etc/passwd \
++ && grep -q ^news: /etc/group
++ then
++ mkdir /var/log/news
++ chmod 2755 /var/log/news
++ chown news:news /var/log/news
++ fi
++
++ # Create logfiles with correct file modes
++ if [ -z "$2" ]
++ then
++ for LOG in `syslogd-listfiles --all`
++ do
++ if [ ! -f $LOG ]
++ then
++ touch $LOG
++ fi
++ chown root:adm $LOG
++ chmod 640 $LOG
++ done
++ fi
++ fi
++
++ if [ -f /etc/init.d/sysklogd -a -n "$2" ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d sysklogd stop
++ else
++ sh /etc/init.d/sysklogd stop
++ fi
++ set -e
++ fi
++
++ update-rc.d sysklogd defaults 10 90 >/dev/null
++
++ # restarting daemon
++ #
++ if [ -f /etc/init.d/sysklogd ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d sysklogd start
++ else
++ sh /etc/init.d/sysklogd start
++ fi
++ set -e
++ fi
++fi
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/postinst.klogd
++++ sysklogd-1.4.1/debian/postinst.klogd
+@@ -0,0 +1,36 @@
++#! /bin/sh
++
++set -e
++
++if [ "$1" = "configure" ]
++then
++ if [ -f /etc/init.d/klogd -a -n "$2" ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d klogd stop
++ else
++ sh /etc/init.d/klogd stop
++ fi
++ set -e
++ fi
++
++ update-rc.d klogd defaults 11 89 >/dev/null
++
++ # restarting daemon
++ #
++ if [ -f /etc/init.d/klogd ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d klogd start
++ else
++ sh /etc/init.d/klogd start
++ fi
++ set -e
++ fi
++fi
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/postrm
++++ sysklogd-1.4.1/debian/postrm
+@@ -0,0 +1,8 @@
++#! /bin/sh
++
++set -e
++
++if [ "$1" = "purge" ]
++then
++ update-rc.d sysklogd remove >/dev/null
++fi
+--- sysklogd-1.4.1.orig/debian/postrm.klogd
++++ sysklogd-1.4.1/debian/postrm.klogd
+@@ -0,0 +1,8 @@
++#! /bin/sh
++
++set -e
++
++if [ "$1" = "purge" ]
++then
++ update-rc.d klogd remove >/dev/null
++fi
+--- sysklogd-1.4.1.orig/debian/preinst
++++ sysklogd-1.4.1/debian/preinst
+@@ -0,0 +1,21 @@
++#! /bin/sh
++
++set -e
++
++dpkg --assert-support-predepends
++
++if [ "$1" = "upgrade" -a -f /etc/init.d/sysklogd ]; then
++ if [ -f /etc/init.d/sysklogd ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d sysklogd stop
++ else
++ sh /etc/init.d/sysklogd stop
++ fi
++ set -e
++ fi
++fi
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/preinst.klogd
++++ sysklogd-1.4.1/debian/preinst.klogd
+@@ -0,0 +1,21 @@
++#! /bin/sh
++
++set -e
++
++dpkg --assert-support-predepends
++
++if [ "$1" = "upgrade" -a -f /etc/init.d/klogd ]; then
++ if [ -f /etc/init.d/klogd ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d klogd stop
++ else
++ sh /etc/init.d/klogd stop
++ fi
++ set -e
++ fi
++fi
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/prerm
++++ sysklogd-1.4.1/debian/prerm
+@@ -0,0 +1,19 @@
++#! /bin/sh
++
++set -e
++
++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/sysklogd ]
++then
++ rm -f /usr/doc/sysklogd
++fi
++
++if [ "$1" = "purge" -o "$1" = "remove" ]
++then
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d sysklogd stop
++ else
++ sh /etc/init.d/sysklogd stop
++ fi
++fi
++
+--- sysklogd-1.4.1.orig/debian/prerm.klogd
++++ sysklogd-1.4.1/debian/prerm.klogd
+@@ -0,0 +1,19 @@
++#! /bin/sh
++
++set -e
++
++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/klogd ]
++then
++ rm -f /usr/doc/klogd
++fi
++
++if [ "$1" = "purge" -o "$1" = "remove" ]
++then
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d klogd stop
++ else
++ sh /etc/init.d/klogd stop
++ fi
++fi
++
+--- sysklogd-1.4.1.orig/debian/rc
++++ sysklogd-1.4.1/debian/rc
+@@ -0,0 +1,112 @@
++#! /bin/sh
++# /etc/init.d/sysklogd: start the system log daemon.
++
++### BEGIN INIT INFO
++# Provides: syslog
++# Required-Start: $local_fs $network $time
++# Required-Stop: $local_fs $network $time
++# Default-Start: 2 3 4 5
++# Default-Stop: S 0 1 6
++# Short-Description: System logger
++### END INIT INFO
++
++PATH=/bin:/usr/bin:/sbin:/usr/sbin
++
++pidfile=/var/run/syslogd.pid
++binpath=/sbin/syslogd
++
++test -x $binpath || exit 0
++
++test ! -r /etc/default/syslogd || . /etc/default/syslogd
++
++. /lib/lsb/init-functions
++
++create_xconsole()
++{
++ # Only proceed if not using devfsd
++ if [ -e /dev/.devfsd ] \
++ || ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf
++ then
++ return
++ fi
++
++ if [ ! -e /dev/xconsole ]; then
++ mknod -m 640 /dev/xconsole p
++ else
++ chmod 0640 /dev/xconsole
++ fi
++ chown root:adm /dev/xconsole
++}
++
++running()
++{
++ # No pidfile, probably no daemon present
++ #
++ if [ ! -f $pidfile ]
++ then
++ return 1
++ fi
++
++ pid=`cat $pidfile`
++
++ # No pid, probably no daemon present
++ #
++ if [ -z "$pid" ]
++ then
++ return 1
++ fi
++
++ if [ ! -d /proc/$pid ]
++ then
++ return 1
++ fi
++
++ cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
++
++ # No syslogd?
++ #
++ if [ "$cmd" != "$binpath" ]
++ then
++ return 1
++ fi
++
++ return 0
++}
++
++case "$1" in
++ start)
++ log_begin_msg "Starting system log daemon..."
++ create_xconsole
++ start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
++ log_end_msg $?
++ ;;
++ stop)
++ log_begin_msg "Stopping system log daemon..."
++ start-stop-daemon --stop --quiet --pidfile $pidfile --name syslogd
++ log_end_msg $?
++ ;;
++ reload|force-reload)
++ log_begin_msg "Reloading system log daemon..."
++ start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile --name syslogd
++ log_end_msg $?
++ ;;
++ restart)
++ log_begin_msg "Restarting system log daemon..."
++ start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile --name syslogd
++ start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
++ log_end_msg $?
++ ;;
++ reload-or-restart)
++ if running
++ then
++ $0 reload
++ else
++ $0 start
++ fi
++ ;;
++ *)
++ echo "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
++ exit 1
++esac
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/rc.klogd
++++ sysklogd-1.4.1/debian/rc.klogd
+@@ -0,0 +1,46 @@
++#! /bin/sh
++# /etc/init.d/klogd: start the kernel log daemon.
++
++### BEGIN INIT INFO
++# Provides: klogd
++# Required-Start: $time syslog
++# Required-Stop: $time syslog
++# Default-Start: 2 3 4 5
++# Default-Stop: S 0 1 6
++# Short-Description: kernel logger
++### END INIT INFO
++
++PATH=/bin:/usr/bin:/sbin:/usr/sbin
++
++pidfile=/var/run/klogd.pid
++binpath=/sbin/klogd
++
++test -f $binpath || exit 0
++
++test ! -r /etc/default/klogd || . /etc/default/klogd
++
++. /lib/lsb/init-functions
++
++case "$1" in
++ start)
++ log_begin_msg "Starting kernel log daemon..."
++ start-stop-daemon --start --quiet --pidfile $pidfile --name klogd --startas $binpath -- $KLOGD
++ log_end_msg $?
++ ;;
++ stop)
++ log_begin_msg "Stopping kernel log daemon..."
++ start-stop-daemon --stop --retry TERM/1/TERM/1/TERM/4/KILL --quiet --pidfile $pidfile --name klogd
++ log_end_msg $?
++ ;;
++ restart|force-reload)
++ log_begin_msg "Reloading kernel log daemon..."
++ start-stop-daemon --stop --retry TERM/1/TERM/1/TERM/4/KILL --quiet --pidfile $pidfile --name klogd
++ start-stop-daemon --start --quiet --pidfile $pidfile --name klogd --startas $binpath -- $KLOGD
++ log_end_msg $?
++ ;;
++ *)
++ echo "Usage: /etc/init.d/klogd {start|stop|restart|force-reload}"
++ exit 1
++esac
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/readme
++++ sysklogd-1.4.1/debian/readme
+@@ -0,0 +1,44 @@
++
++Additional information about system logging
++-------------------------------------------
++
++ . When logging into a fifo syslogd will stop loggin into this
++ logfile if no process is reading it and thus the buffer is filled
++ up. Buffer size can be adjusted through the kernel.
++
++ . When using the Perl5 Sys::Syslog module (use Sys::Syslog;) to
++ provide logging to your Perl programs, please notice that since it
++ will open a UDP connection to the local syslogd you'll need to have
++ remote receiption enabled.
++
++ Joey Hess teaches us how to change this behaviour and switch to
++ using the Unix domain socket. After the opening with "use" you
++ have to add "Sys::Syslog::setlogsock('unix');".
++
++ The default behaviour might change in future releases of Perl.
++
++Modifying the kernel console log level
++--------------------------------------
++
++ There are two ways to alter the kernel console log level. This
++ setting controls whether log messages from the kernel should appear
++ on the system console or not.
++
++ In the past, klogd had to do this with the -c parameter. Using '-c
++ 4' will set the log level of console messages to 4 and only display
++ warnings and errors but not regular debug or information messages.
++
++ This behaviour is deprecated and hencely not enforced anymore via
++ the RC script of klogd. Instead sysctl(8) should be used as
++ interface to various kernel variables. These can be stored
++ non-volatile in /etc/sysctl.conf.
++
++ The prevent the kernel to flood the system console and to achieve
++ the same behaviour of '-c 4' simply add the following to the
++ configuration file and let sysctl set this kernel parameter upon
++ system boot.
++
++ kernel/printk = 4 4 1 7
++
++ More information can be found in Documentation/sysctl/kernel.txt in
++ the kernel source and proc(5).
+--- sysklogd-1.4.1.orig/debian/rules
++++ sysklogd-1.4.1/debian/rules
+@@ -0,0 +1,172 @@
++#! /usr/bin/make -f
++
++# Copyright 1994-98,2001 joey@infodrom.org (Martin Schulze)
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; version 2 dated June, 1991.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
++#
++SHELL=/bin/bash
++
++# The name and version of the source
++#
++source = $(shell grep "^Source: " debian/control|head -n 1|sed 's/Source: \(.*\)/\1/g')
++package = $(shell grep "^Package: " debian/control|head -n 1|sed 's/Package: \(.*\)/\1/g')
++version = $(shell grep "^$(source) " debian/changelog|head -n 1 |sed 's/.*(\(.*\)\-[^\-]*).*/\1/g')
++revision = $(shell grep "^$(source) " debian/changelog|head -n 1 |sed 's/.*([^\-]*\-\(.*\)).*/\1/g')
++
++installbin = install -g root -o root -m 755
++installdoc = install -g root -o root -m 644
++
++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
++CFLAGS = -g -O2 -Wall $(shell getconf LFS_CFLAGS)
++else
++CFLAGS = -O2 -Wall $(shell getconf LFS_CFLAGS)
++endif
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++STRIP = -s
++endif
++
++build:
++ $(MAKE) DEB="-DDEBRELEASE=\\\"$(revision)\\\"" \
++ CFLAGS="$(CFLAGS) -DSYSV -fomit-frame-pointer -fno-strength-reduce" \
++ LDFLAGS=""
++ pod2man --section=8 --lax --center="Debian GNU/Linux" \
++ --release="Debian Project" debian/syslog-facility.pod \
++ > syslog-facility.8
++ (cat README.linux; printf "\n\n"; cat README.1st; \
++ printf "\n\nThe following important changes have been reported by the developers:\n\n"; \
++ cat NEWS debian/readme) \
++ > readme.txt
++ (cat debian/copyright; \
++ printf "Syslogd stays under the following copyright:\n\n"; \
++ sed -e '/^$$/,$$d' < syslogd.c; \
++ printf "\nKlogd has the following copyright notice:\n\n"; \
++ sed -e '/^$$/,$$d' < klogd.c ) \
++ > copyright
++ touch stamp-build
++
++clean: debclean
++ rm -f stamp-build
++ $(MAKE) clobber
++ rm -rf *~ debian/*~ syslog-facility.8 readme.txt copyright
++
++debclean:
++# Cleans debian binary directories to allow binary creation
++ rm -rf debian/tmp.sysklogd debian/tmp.klogd
++ rm -f debian/{files,substvars}
++
++binary-indep:
++# Nothing to be done here
++
++binary-arch-sysklogd: debclean
++ test -f stamp-build || $(MAKE) -f debian/rules build
++ $(installbin) -d debian/tmp.sysklogd/DEBIAN
++ chown -R root:root debian/tmp.sysklogd
++ chmod -R g-ws debian/tmp.sysklogd
++ $(installbin) -d debian/tmp.sysklogd/usr/share/doc/$(package)
++ $(installbin) debian/{postinst,postrm,prerm} debian/tmp.sysklogd/DEBIAN/
++ $(installdoc) debian/conffiles debian/tmp.sysklogd/DEBIAN/
++ $(installdoc) debian/changelog debian/tmp.sysklogd/usr/share/doc/$(package)/changelog.Debian
++ #
++ $(installbin) -d debian/tmp.sysklogd/usr/share/$(package)
++ $(installdoc) debian/dummy debian/tmp.sysklogd/usr/share/$(package)
++ #
++ $(installdoc) copyright debian/tmp.sysklogd/usr/share/doc/$(package)/
++ $(installdoc) readme.txt debian/tmp.sysklogd/usr/share/doc/$(package)/
++ $(installdoc) CHANGES debian/tmp.sysklogd/usr/share/doc/$(package)/changelog
++ gzip -9f debian/tmp.sysklogd/usr/share/doc/$(package)/{changelog.Debian,changelog,readme.txt}
++ #
++ $(installbin) -d debian/tmp.sysklogd/{usr/,}sbin
++ $(installbin) $(STRIP) syslogd debian/tmp.sysklogd/sbin
++ $(installbin) debian/syslogd-listfiles debian/tmp.sysklogd/usr/sbin
++ $(installbin) debian/syslog-facility debian/tmp.sysklogd/usr/sbin
++ #
++ $(installbin) -d debian/tmp.sysklogd/etc/{init.d,cron.{daily,weekly},default}
++ $(installbin) debian/default debian/tmp.sysklogd/etc/default/syslogd
++ $(installbin) debian/rc debian/tmp.sysklogd/etc/init.d/sysklogd
++ $(installbin) debian/cron.weekly debian/tmp.sysklogd/etc/cron.weekly/sysklogd
++ $(installbin) debian/cron.daily debian/tmp.sysklogd/etc/cron.daily/sysklogd
++ $(installdoc) debian/syslog.conf debian/tmp.sysklogd/etc/syslog.conf
++ $(installbin) -d debian/tmp.sysklogd/var/log
++ #
++ $(installbin) -d debian/tmp.sysklogd/usr/share/man/man{5,8}
++ $(installdoc) syslog.conf.5 debian/tmp.sysklogd/usr/share/man/man5
++ $(installdoc) {sysklogd,syslogd,debian/syslogd-listfiles}.8 debian/tmp.sysklogd/usr/share/man/man8
++ $(installdoc) syslog-facility.8 debian/tmp.sysklogd/usr/share/man/man8
++ gzip -9 debian/tmp.sysklogd/usr/share/man/man?/*
++ #
++ dpkg-shlibdeps debian/tmp.sysklogd/sbin/syslogd
++ dpkg-gencontrol -psysklogd -Pdebian/tmp.sysklogd -isp
++ dpkg --build debian/tmp.sysklogd ..
++
++binary-arch-klogd: debclean
++ test -f stamp-build || $(MAKE) -f debian/rules build
++ $(installbin) -d debian/tmp.klogd/DEBIAN
++ chown -R root:root debian/tmp.klogd
++ chmod -R g-ws debian/tmp.klogd
++ $(installbin) -d debian/tmp.klogd/usr/share/doc/klogd
++ $(installbin) debian/postinst.klogd debian/tmp.klogd/DEBIAN/postinst
++ $(installbin) debian/postrm.klogd debian/tmp.klogd/DEBIAN/postrm
++ $(installbin) debian/prerm.klogd debian/tmp.klogd/DEBIAN/prerm
++ $(installdoc) debian/conffiles.klogd debian/tmp.klogd/DEBIAN/conffiles
++ $(installdoc) debian/changelog debian/tmp.klogd/usr/share/doc/klogd/changelog.Debian
++ #
++ $(installdoc) copyright debian/tmp.klogd/usr/share/doc/klogd/
++ $(installdoc) readme.txt debian/tmp.klogd/usr/share/doc/klogd/
++ $(installdoc) CHANGES debian/tmp.klogd/usr/share/doc/klogd/changelog
++ gzip -9f debian/tmp.klogd/usr/share/doc/klogd/{changelog.Debian,changelog,readme.txt}
++ $(installdoc) modutils.patch debian/tmp.klogd/usr/share/doc/klogd
++ #
++ $(installbin) -d debian/tmp.klogd/sbin
++ $(installbin) $(STRIP) klogd debian/tmp.klogd/sbin
++ #
++ $(installbin) -d debian/tmp.klogd/etc/{init.d,default}
++ $(installbin) debian/default.klogd debian/tmp.klogd/etc/default/klogd
++ $(installbin) debian/rc.klogd debian/tmp.klogd/etc/init.d/klogd
++ #
++ $(installbin) -d debian/tmp.klogd/usr/share/man/man8
++ $(installdoc) klogd.8 debian/tmp.klogd/usr/share/man/man8
++ gzip -9 debian/tmp.klogd/usr/share/man/man?/*
++ #
++ dpkg-shlibdeps debian/tmp.klogd/sbin/klogd
++ dpkg-gencontrol -pklogd -Pdebian/tmp.klogd -isp
++ dpkg --build debian/tmp.klogd ..
++
++binary-arch: binary-arch-sysklogd binary-arch-klogd
++
++binary: binary-indep binary-arch
++
++source diff:
++ @echo >&2 'source and diff are obsolete - use dpkg-source -b' or dsc; false
++
++dsc:
++ -test -d debian/tmp.sysklogd -o -d debian/tmp.klogd \
++ && $(MAKE) -f debian/rules clean
++ if [ ! -f ../$(source)_$(version).orig.tar.gz -a -f ../orig/$(source)_$(version).orig.tar.gz ]; \
++ then \
++ ln -s orig/$(source)_$(version).orig.tar.gz ../$(source)_$(version).orig.tar.gz; \
++ touch /tmp/stamp-$(source)-link; \
++ fi; \
++ cd .. && dpkg-source -b $(source)-$(version)
++ if [ -f /tmp/stamp-$(source)-link ]; then \
++ rm ../$(source)_$(version).orig.tar.gz /tmp/stamp-$(source)-link; \
++ fi
++
++checkroot:
++ $(checkdir)
++ test root = "`whoami`"
++
++dist: binary dsc
++
++.PHONY: binary binary-arch binary-indep clean checkroot
++
+--- sysklogd-1.4.1.orig/debian/syslog-facility
++++ sysklogd-1.4.1/debian/syslog-facility
+@@ -0,0 +1,140 @@
++#! /usr/bin/perl -w
++
++# Copyright 1998 Hertzog Raphaël
++# You can use this script under the term of the GPL v2 or later.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
++
++my $conf_file = '/etc/syslog.conf';
++
++## BUGS :
++# . This script doesn't know about multi-lines configuration (ie with '\')
++# . With a line like that "mail,local0.* /anything"
++# "syslog-facility remove local0" would remove the entire line
++# => should not be a problem since lines installed by this script
++# cannot use such syntax
++##
++
++## Nothing to modify after this line ##
++
++my $command = lc(shift);
++
++usage() if ($command !~ /^(?:set|remove)$/);
++usage() if (not scalar(@ARGV));
++
++if ($command eq "set")
++{
++ usage() if (int(scalar(@ARGV) / 2) != scalar(@ARGV) / 2);
++ # find a free localx facility
++ my $facility = get_first_free_facility();
++ # if none stop immediately
++ if ($facility eq "none") {
++ print "none\n";
++ exit 1;
++ }
++ # ok append the lines asked
++ open (CONF, ">>$conf_file") ||
++ die "Can't open $conf_file in write mode: $!\n";
++ my ($pri,$file,$line);
++ while (defined($pri = shift)) {
++ $file = shift;
++ $line = "";
++ foreach (split(/;/,$pri)) {
++ $_ =~ s/all/*/g;
++ $line .= ";" if ($line);
++ $line .= "$facility.$_";
++ }
++ $line .= "\t\t$file\n";
++ print CONF $line;
++ }
++ close CONF;
++ print "$facility\n";
++ exit 0;
++
++} elsif ($command eq "remove") {
++
++ my $facility = lc(shift);
++ my ($left,$file,$line);
++ open (CONF, $conf_file) || die "Can't open $conf_file: $!\n";
++ open (CONFNEW, ">$conf_file.new") ||
++ die "Can't open $conf_file.new in write mode: $!\n";
++ while (defined($_=<CONF>)) {
++ # Write all "simple" lines like empty lines and comments
++ if (/^\s*$/ or /^\s*#/ or /\\$/) {
++ print CONFNEW $_;
++ next;
++ }
++ # Otherwise look if the facility to remove appears in the line
++ if (/^\s*(\S+)\s+(\S+)\s*/) {
++ $left = $1; $file = $2; chomp $file;
++ # It doesn't appers => write
++ if ($left !~ /$facility/i) {
++ print CONFNEW $_;
++ next;
++ }
++ # It appears => write a new line without the localx facility
++ $line = "";
++ foreach (split(/;/,$left)) {
++ if (not /$facility/i) {
++ $line .= ";" if ($line);
++ $line .= $_;
++ }
++ }
++ next if ($line eq "");
++ $line .= "\t\t$file\n";
++ print CONFNEW $line;
++ }
++ }
++ close CONFNEW;
++ close CONF;
++ rename ("$conf_file.new", "$conf_file");
++}
++
++sub get_first_free_facility {
++
++ my @facility = (0) x 8;
++ my ($left,$fac);
++ open(CONF, $conf_file) || die "Can't open $conf_file: $!\n";
++ while(defined($_=<CONF>))
++ {
++ next if (/^\s*$/);
++ next if (/^\s*#/);
++ next if (/\\$/);
++ next if (not /^\s*(\S+)\s+(\S+)\s*$/);
++ $left = $1;
++ foreach $fac (split(/;/,$left)) {
++ $facility[$1]++ if ($fac =~ /local(\d)/i);
++ }
++ }
++ foreach $fac (0..7) {
++ return "local$fac" if ($facility[$fac] == 0);
++ }
++ return "none";
++}
++
++sub usage {
++
++ die "syslog-facility - Copyright (c) 1998 Hertzog Raphaël\n"
++ ."Usage : $0 set <set_of_priority> <logfile> ... \n"
++ ." it returns the 'LOCALx' string you have the right to use.\n"
++ ." $0 remove <facility>\n"
++ ."Example: $0 set all /var/log/all\n"
++ ." $0 set all\\;\\!=info /var/log/all-without-info\n"
++ ." $0 set =err /var/log/errors =warning /var/log/warn\n"
++ ." $0 remove LOCAL1\n";
++}
++
++
++
+--- sysklogd-1.4.1.orig/debian/syslog-facility.pod
++++ sysklogd-1.4.1/debian/syslog-facility.pod
+@@ -0,0 +1,58 @@
++=head1 NAME
++
++syslog-facility - Setup and remove LOCALx facility for sysklogd
++
++=head1 SYNOPSIS
++
++B<syslog-facility> B<set> I<set_of_priority> I<log_file> ...
++
++B<syslog-facility> B<remove> I<facility>
++
++=head1 DESCRIPTION
++
++B<syslog-facility> can be used to setup a syslog facility and to remove
++it. The primary use of this perl script is to allow packages to
++automatically setup (and remove) a LOCALx facility. With the
++first argument beeing I<set>, it will output a string containing
++the first free LOCALx facility that has been assigned to your request :
++
++ # syslog-facility set all /var/log/sympa
++ local0
++
++This does mean that a line "local0.* /var/log/sympa" has been
++added to the syslog.conf file. If no free LOCALx facility has been
++found, then it outputs "none" (with a end of line).
++
++You can use different set of priorities (most of what syslogd supports) :
++
++ # syslog-facility set 'all;!=debug;' /var/log/sympa '=debug' /var/log/sympa-d
++ local1
++
++Pay particular attention to shell escapes since ';','!' have special
++meanings for them. The syntax is similar to syslog.conf except that
++'*' must be replaced by 'all'.
++
++In that case you will have two lines added two the syslog.conf file :
++
++ local1.*;local1.!=debug /var/log/sympa
++ local1.=debug /var/log/sympa-d
++
++If the first argument is I<remove>, then it will remove all references
++to a precise LOCALx facility. Example :
++
++ # syslog-facility remove local1
++
++It will remove all references to the local1 facility.
++
++=head1 BUGS
++
++The script doesn't know about multi-lines configuration (ie with '\').
++
++With a line like that "mail,local0.* /anything", "syslog-facility remove
++local0" would remove the entire line. It should not be a problem since
++lines installed by this script cannot use this syntax.
++
++=head1 SEE ALSO
++
++B<syslog.conf>(5), B<sysklogd>(8).
++
+--- sysklogd-1.4.1.orig/debian/syslog.conf
++++ sysklogd-1.4.1/debian/syslog.conf
+@@ -0,0 +1,71 @@
++# /etc/syslog.conf Configuration file for syslogd.
++#
++# For more information see syslog.conf(5)
++# manpage.
++
++#
++# First some standard logfiles. Log by facility.
++#
++
++auth,authpriv.* /var/log/auth.log
++*.*;auth,authpriv.none -/var/log/syslog
++#cron.* /var/log/cron.log
++daemon.* -/var/log/daemon.log
++kern.* -/var/log/kern.log
++lpr.* -/var/log/lpr.log
++mail.* -/var/log/mail.log
++user.* -/var/log/user.log
++uucp.* /var/log/uucp.log
++
++#
++# Logging for the mail system. Split it up so that
++# it is easy to write scripts to parse these files.
++#
++mail.info -/var/log/mail.info
++mail.warn -/var/log/mail.warn
++mail.err /var/log/mail.err
++
++# Logging for INN news system
++#
++news.crit /var/log/news/news.crit
++news.err /var/log/news/news.err
++news.notice -/var/log/news/news.notice
++
++#
++# Some `catch-all' logfiles.
++#
++*.=debug;\
++ auth,authpriv.none;\
++ news.none;mail.none -/var/log/debug
++*.=info;*.=notice;*.=warn;\
++ auth,authpriv.none;\
++ cron,daemon.none;\
++ mail,news.none -/var/log/messages
++
++#
++# Emergencies are sent to everybody logged in.
++#
++*.emerg *
++
++#
++# I like to have messages displayed on the console, but only on a virtual
++# console I usually leave idle.
++#
++#daemon,mail.*;\
++# news.=crit;news.=err;news.=notice;\
++# *.=debug;*.=info;\
++# *.=notice;*.=warn /dev/tty8
++
++# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,
++# you must invoke `xconsole' with the `-file' option:
++#
++# $ xconsole -file /dev/xconsole [...]
++#
++# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
++# busy site..
++#
++daemon.*;mail.*;\
++ news.crit;news.err;news.notice;\
++ *.=debug;*.=info;\
++ *.=notice;*.=warn |/dev/xconsole
++
+--- sysklogd-1.4.1.orig/debian/syslogd-listfiles
++++ sysklogd-1.4.1/debian/syslogd-listfiles
+@@ -0,0 +1,146 @@
++#! /usr/bin/perl
++
++# Copyright (c) 1998,9,2001,3 by Martin Schulze <joey@infodrom.org>
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
++
++$conf = "/etc/syslog.conf";
++$opt_daily = 1;
++$opt_all = 0;
++$opt_auth = 0;
++$opt_ign_size = 0;
++$opt_news = 0;
++$opt_skip = '';
++$opt_large = 1024*1024;
++
++sub usage
++{
++ print STDERR
++"
++Debian GNU/Linux syslogd-listfiles. Copyright (c) 1997,2001
++Martin Schulze. This is free software; see the GNU General Public Licence
++version 2 or later for copying conditions. There is NO warranty.
++
++Usage: syslogd-listfiles <options>
++Options: -f file specifies another syslog.conf file
++ -a | --all list all files (including news)
++ --auth list all files containing auth.<some prio>
++ --ignore-size don't rotate files which got too large
++ --large nnn define what is large in bytes (default: 10MB)
++ --news include news logfiles, too
++ -w | --weekly use weekly pattern instead of daily
++ -s pattern skip files matching pattern
++";
++}
++
++# Test if the file was already rotated within the last n hours
++# with n=5
++#
++sub rotated
++{
++ my $file = shift;
++ my $nfile;
++ my $delta = 5 * 60 * 60;
++ my $now = time();
++
++ # /var/log/file -> /var/log/file.0
++ $nfile = $file . ".0";
++ if (-r $nfile) {
++ if (($now - (stat $nfile)[9]) > $delta) {
++ return 0;
++ } else {
++ return 1;
++ }
++ }
++
++ # /var/log/file -> /var/log/OLD/file.0
++ $nfile =~ s,(.*)/([^/]+),$1/OLD/$2,;
++ if (-r $nfile) {
++ if (($now - (stat $nfile)[9]) > $delta) {
++ return 0;
++ } else {
++ return 1;
++ }
++ }
++
++ return 0;
++}
++
++while (@ARGV) {
++ $_=shift(@ARGV);
++ if (m/^-f$/) {
++ $conf = shift(@ARGV);
++ } elsif (m/^-s$/) {
++ $opt_skip = shift(@ARGV);
++ } elsif (m/^--large$/) {
++ $opt_large = shift(@ARGV);
++ } elsif (m/^(--weekly|-w)$/) {
++ $opt_daily = 0;
++ } elsif (m/^(-a|--all)$/) {
++ $opt_all = 1;
++ } elsif (m/^--auth$/) {
++ $opt_auth = 1;
++ } elsif (m/^--ignore-size/) {
++ $opt_ign_size = 1;
++ } elsif (m/^--news$/) {
++ $opt_news = 1;
++ } else {
++ &usage();exit (0);
++ }
++}
++
++open (C, $conf) || die "Can't open $conf, $!";
++while (<C>) {
++ next if (/^(\#|$)/);
++ chomp;
++
++ s/\s*(\S.*)$/$1/ if ($line);
++
++ $line .= $_;
++ chop ($line) if (/\\$/);
++ if (!/\\$/) {
++ $line =~ s/\s+/\t/;
++ $line =~ s/\t-/\t/;
++ push (@lines, $line) if ($line =~ /\t\/(?!dev\/)/);
++ $line = "";
++ }
++}
++close (C);
++
++foreach $line (@lines) {
++ ($pat,$file) = split (/\t/,$line);
++
++ # These files are handled by news.daily from INN, so we ignore them
++ next if (!$opt_news && ($pat =~ /news\.(\*|crit|err|info|notice)/));
++
++ if ($opt_all) {
++ $output{$file} = 1;
++ } elsif ($opt_auth) {
++ $output{$file} = 1 if ($pat =~ /auth[^\.]*\.(?!none).*/);
++ } else {
++ $everything = ($pat =~ /\*\.\*/);
++ $output{$file} = 1 if (($everything && $opt_daily)
++ || (!$everything && !$opt_daily && !rotated ($file))
++ || (!$opt_ign_size && ((stat $file)[7] >= $opt_large) && $opt_daily)
++ );
++ }
++}
++
++foreach $file (keys (%output)) {
++ $skip = $file;
++ if (!length($opt_skip) || $skip !~ /$opt_skip/) {
++ printf "%s\n", $file;
++ }
++}
+--- sysklogd-1.4.1.orig/debian/syslogd-listfiles.8
++++ sysklogd-1.4.1/debian/syslogd-listfiles.8
+@@ -0,0 +1,95 @@
++.\" syslogd-listfiles.8 - generic routine for /etc/syslog.conf
++.\" Copyright (c) 1997,8,2001 Martin Schulze <joey@debian.org>
++.\"
++.\" This program is free software; you can redistribute it and/or modify
++.\" it under the terms of the GNU General Public License as published by
++.\" the Free Software Foundation; either version 2 of the License, or
++.\" (at your option) any later version.
++.\"
++.\" This program is distributed in the hope that it will be useful,
++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++.\" GNU General Public License for more details.
++.\"
++.\" You should have received a copy of the GNU General Public License
++.\" along with this program; if not, write to the Free Software
++.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++.\"
++.TH SYSLOGD-LISTFILES 8 "December 5th, 2001" "Debian Project" "Debian GNU/Linux"
++.SH NAME
++syslogd-listfiles \- list system logfiles
++.SH SYNOPSIS
++.B syslogd-listfiles
++.RB [ " \-a " | " \-\-all " ]
++.RB [ " \-\-auth " ]
++.RB [ " \-f "
++.I config file
++]
++.RB [ " \-s "
++.I pattern
++]
++.RB [ " \-\-large "
++.I nnn
++]
++.RB [ " \-\-news " ]
++.RB [ " \-w " | " \-\-weekly " ]
++.SH DESCRIPTION
++.B Sysklogd
++provides a modern mechanism to log system messages. This mechanism is
++controlled by the file
++.IR /etc/syslog.conf .
++Messages are divided into logfiles which can grow quite big.
++Therefore the logfiles need to be rotated once per day, per week or
++per month. On a Debian GNU/Linux system most of the files are rotated
++once per week.
++
++This program helps the rotation script to determine which logfiles
++need to be rotated and when. It takes care of news logfiles that are
++handled by the
++.B news.daily
++script from INN. In conjunction with the scripts in
++.IR /etc/cron.daily " and " /etc/cron.weekly
++it takes care of files with sensitive information.
++
++By default a list of files for daily rotation is generated. At the
++moment this option only reflects entries that contain "*.*" as
++facility.priority.
++
++.SH OPTIONS
++.TP
++.BR "\-a" ", " "\-\-all"
++List all logfiles and ignore all other rules.
++.TP
++.BI "\-f " "config file"
++Specify an alternative configuration file instead of
++.IR /etc/syslog.conf ","
++which is the default.
++.TP
++.BI "\-s " "pattern"
++Specify a regular expression for files that must not be listed.
++.TP
++.B "\-\-auth"
++Only list files containing sensitive information such as the one
++containing auth.*.
++.TP
++.BI "\-\-large " "nnn"
++Define the filesize for a large file. The size is provided in bytes.
++This value defaults to 1 megabyte.
++.TP
++.B \-\-ignore\-size
++Don't rotate files whose file size is larger than the regular limit
++(see above). This option is useful if you are postprocessing logfiles
++which would break if log files are rotated at a different date/time.
++.TP
++.B "\-\-news"
++Don't exclude news logfiles which are normally handled by the
++.B news.daily
++script from INN.
++.TP
++.BR "\-w" ", " "\-\-weekly"
++Generate the list for weekly rotation.
++.LP
++.SH SEE ALSO
++.BR syslog.conf (5),
++.BR syslogd (8),
++.BR savelog (8).
+--- sysklogd-1.4.1.orig/debian/technical
++++ sysklogd-1.4.1/debian/technical
+@@ -0,0 +1,10 @@
++ Some technical information - unsorted
++ -------------------------------------
++
++ 1. Logfiles in syslogd
++
++ As of version 1.3 syslogd doesn't come with a static array of
++ logfiles. Although the logfiles are still organized in an array.
++ This array is initialized when the configuration file (default is
++ /etc/syslog.conf) is read. Whenever a new line is read the
++ length of the array it prolongued.