lol

sysklogd: Don't remove /dev/log when syslogd exits

This messes up systemd-journald.

+22 -27
+22 -27
pkgs/os-specific/linux/sysklogd/systemd.patch
··· 1 1 Based on http://ftp.free.org/mirrors/rsync.frugalware.org/frugalware-testing/source/apps-extra/sysklogd/sysklogd-1.5-systemd.diff 2 2 3 - diff --git a/Makefile b/Makefile 4 - index 9a114b8..aef1fd6 100644 5 - --- a/Makefile 6 - +++ b/Makefile 3 + diff -ruN -x '*~' sysklogd-1.5-old/Makefile sysklogd-1.5/Makefile 4 + --- sysklogd-1.5-old/Makefile 2007-05-30 17:28:48.000000000 +0200 5 + +++ sysklogd-1.5/Makefile 2013-05-09 16:01:14.428638113 +0200 7 6 @@ -20,7 +20,7 @@ 8 7 CC= gcc 9 8 #SKFLAGS= -g -DSYSV -Wall ··· 13 12 # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 14 13 # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE 15 14 # $(shell getconf LFS_SKFLAGS) 16 - @@ -79,8 +79,8 @@ test: syslog_tst ksym oops.ko tsyslogd 15 + @@ -79,8 +79,8 @@ 17 16 18 17 install: install_man install_exec 19 18 ··· 24 23 25 24 klogd: klogd.o syslog.o pidfile.o ksym.o ksym_mod.o 26 25 ${CC} ${LDFLAGS} -o klogd klogd.o syslog.o pidfile.o ksym.o \ 27 - @@ -101,6 +101,9 @@ syslogd.o: syslogd.c version.h 26 + @@ -101,6 +101,9 @@ 28 27 syslog.o: syslog.c 29 28 ${CC} ${SKFLAGS} ${SYSLOG_FLAGS} -c syslog.c 30 29 ··· 34 33 klogd.o: klogd.c klogd.h version.h 35 34 ${CC} ${SKFLAGS} ${KLOGD_FLAGS} $(DEB) -c klogd.c 36 35 37 - diff --git a/sd-daemon.c b/sd-daemon.c 38 - new file mode 100644 39 - index 0000000..6d1eebf 40 - --- /dev/null 41 - +++ b/sd-daemon.c 36 + diff -ruN -x '*~' sysklogd-1.5-old/sd-daemon.c sysklogd-1.5/sd-daemon.c 37 + --- sysklogd-1.5-old/sd-daemon.c 1970-01-01 01:00:00.000000000 +0100 38 + +++ sysklogd-1.5/sd-daemon.c 2013-05-09 16:01:14.429638107 +0200 42 39 @@ -0,0 +1,436 @@ 43 40 +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ 44 41 + ··· 476 473 + return a.st_dev != b.st_dev; 477 474 +#endif 478 475 +} 479 - diff --git a/sd-daemon.h b/sd-daemon.h 480 - new file mode 100644 481 - index 0000000..d0a0a94 482 - --- /dev/null 483 - +++ b/sd-daemon.h 476 + diff -ruN -x '*~' sysklogd-1.5-old/sd-daemon.h sysklogd-1.5/sd-daemon.h 477 + --- sysklogd-1.5-old/sd-daemon.h 1970-01-01 01:00:00.000000000 +0100 478 + +++ sysklogd-1.5/sd-daemon.h 2013-05-09 16:01:14.429638107 +0200 484 479 @@ -0,0 +1,265 @@ 485 480 +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ 486 481 + ··· 747 742 +#endif 748 743 + 749 744 +#endif 750 - diff --git a/syslogd.c b/syslogd.c 751 - index acfd8f1..9bfa8c7 100644 752 - --- a/syslogd.c 753 - +++ b/syslogd.c 754 - @@ -551,6 +551,7 @@ static char sccsid[] = "@(#)syslogd.c 5.27 (Berkeley) 10/10/88"; 745 + diff -ruN -x '*~' sysklogd-1.5-old/syslogd.c sysklogd-1.5/syslogd.c 746 + --- sysklogd-1.5-old/syslogd.c 2007-07-04 21:04:01.000000000 +0200 747 + +++ sysklogd-1.5/syslogd.c 2013-05-09 16:04:32.106602589 +0200 748 + @@ -551,6 +551,7 @@ 755 749 756 750 #if defined(__linux__) 757 751 #include <paths.h> ··· 759 753 #endif 760 754 761 755 #ifndef UTMP_FILE 762 - @@ -965,8 +966,11 @@ int main(argc, argv) 756 + @@ -965,8 +966,11 @@ 763 757 } 764 758 signal (SIGTERM, SIG_DFL); 765 759 num_fds = getdtablesize(); ··· 773 767 untty(); 774 768 } 775 769 else 776 - @@ -1253,6 +1257,60 @@ static int create_unix_socket(const char *path) 770 + @@ -1253,6 +1257,60 @@ 777 771 if (path[0] == '\0') 778 772 return -1; 779 773 ··· 834 828 (void) unlink(path); 835 829 836 830 memset(&sunx, 0, sizeof(sunx)); 837 - @@ -2254,7 +2311,12 @@ void die(sig) 831 + @@ -2254,9 +2312,11 @@ 838 832 if (InetInuse) close(inetm); 839 833 840 834 /* Clean-up files. */ 841 835 - for (i = 0; i < nfunix; i++) 836 + - if (funixn[i] && funix[i] != -1) 837 + - (void)unlink(funixn[i]); 842 838 + i = 0; 843 839 +#if defined(__linux__) 844 840 + if (sd_listen_fds(0) > 0) 845 841 + i = 1; 846 842 +#endif 847 - + for (; i < nfunix; i++) 848 - if (funixn[i] && funix[i] != -1) 849 - (void)unlink(funixn[i]); 850 843 #ifndef TESTING 844 + (void) remove_pid(PidFile); 845 + #endif