Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=8a22efcce548d269e5fdd1e71868e9749a76a6da
commit 8a22efcce548d269e5fdd1e71868e9749a76a6da Author: James Buren <[email protected]> Date: Tue Jun 5 02:05:31 2012 -0500 sysklogd-1.5-10-x86_64 * remove package diff --git a/source/apps-extra/sysklogd/FrugalBuild b/source/apps-extra/sysklogd/FrugalBuild deleted file mode 100644 index d600179..0000000 --- a/source/apps-extra/sysklogd/FrugalBuild +++ /dev/null @@ -1,39 +0,0 @@ -# Compiling time: 0.01 SBU -# Maintainer: Miklos Vajna <[email protected]> -# Modified by Laszlo Dvornik <[email protected]> - -pkgname=sysklogd -pkgver=1.5 -pkgrel=10 -pkgdesc="Linux system logging utilities" -url="http://www.infodrom.org/projects/sysklogd/" -backup=(etc/syslog.conf etc/logrotate.d/syslog) -depends=('glibc>=2.8-3') -rodepends=('netkit-base>=0.17-6') -groups=('apps-extra') -archs=('i686' 'x86_64' 'arm') -up2date="Flasttar $url/download.php" -source=($url/download/$pkgname-$pkgver.tar.gz sysklogd-1.5-systemd.diff \ - rc.syslog{,-hu.po} \ - syslog \ - syslog.conf) -sha1sums=('070cce745b023f2ce7ca7d9888af434d6d61c236' \ - '9bea24888ae9f1ba3cce6cc91612f73a979ad60f' \ - 'd68d9ed4eca6553ffab4a1ef28b9faa29c2384ac' \ - '94c71ed2057354a9a39b0a1408c923328be79f89' \ - 'e22daf241394779478c113c23bdc294fa2f858bc' \ - '839f714f0ac9df71ef9f5955fec953048bbd699c') - -build() -{ - Fpatchall - Fsed '-O3' "$CFLAGS" Makefile - Fmake || Fdie - Fmkdir /usr/sbin $Fmandir/man{5,8} - Fexec make prefix=$Fdestdir install || Fdie - Ffile /etc/syslog.conf - Ffile /etc/logrotate.d/syslog - Frcd2 syslog -} - -# optimization ok diff --git a/source/apps-extra/sysklogd/rc.syslog b/source/apps-extra/sysklogd/rc.syslog deleted file mode 100644 index e36bfff..0000000 --- a/source/apps-extra/sysklogd/rc.syslog +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -# (c) 2003, 2004, 2009, 2010 Vajna Miklos <[email protected]> -# (c) 2005 Laszlo Dvornik <[email protected]> -# (c) 2005 Marcus Habermehl <[email protected]> -# rc.syslog for Frugalware -# distributed under GPL License - -# chkconfig: 2345 12 88 -# description: Syslog - -### BEGIN INIT INFO -# Provides: $syslog -### END INIT INFO - -source /lib/initscripts/functions -TEXTDOMAIN=syslog -TEXTDOMAINDIR=/lib/initscripts/messages - -actions=(restart start status stop) -daemon=$"logging" - -# It's enough to check for syslogd, klog runs on top of syslogd -pid="cat /var/run/syslogd.pid 2> /dev/null" - -rc_start() -{ - start_msg - if [ -z "$(eval $pid)" ]; then - /usr/sbin/syslogd - # This prevents syslogd/klogd race condition on SMP - # kernels. - if [ `grep ^processor /proc/cpuinfo|sed -n 's/.*: \(.*\)/\1/;$ p'` -ge '1' ]; then - sleep 1 - fi - # '-c 3' = display level 'error' or higher messages on - # console - # '-x' = turn off broken EIP translation - /usr/sbin/klogd -c 3 -x - pidof klogd > /var/run/klogd.pid - ok $? - else - ok 999 - fi -} - -rc_stop() -{ - stop_msg - if [ -n "$(eval $pid)" ]; then - kill "$(eval $pid)" - kill $(cat /var/run/klogd.pid) - ok $? - else - ok 999 - fi -} - -rc_exec $1 diff --git a/source/apps-extra/sysklogd/rc.syslog-hu.po b/source/apps-extra/sysklogd/rc.syslog-hu.po deleted file mode 100644 index 612dd89..0000000 --- a/source/apps-extra/sysklogd/rc.syslog-hu.po +++ /dev/null @@ -1,21 +0,0 @@ -# Hungarian translations for PACKAGE package. -# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# <[email protected]>, 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-07 15:37+0100\n" -"PO-Revision-Date: 2009-01-07 15:37+0100\n" -"Last-Translator: <[email protected]>\n" -"Language-Team: Hungarian\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: rc.syslog:19 -msgid "logging" -msgstr "naplózás" diff --git a/source/apps-extra/sysklogd/rc.syslog.pot b/source/apps-extra/sysklogd/rc.syslog.pot deleted file mode 100644 index 469c63d..0000000 --- a/source/apps-extra/sysklogd/rc.syslog.pot +++ /dev/null @@ -1,21 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-07 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <[email protected]>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: rc.syslog:19 -msgid "logging" -msgstr "" diff --git a/source/apps-extra/sysklogd/sysklogd-1.5-systemd.diff b/source/apps-extra/sysklogd/sysklogd-1.5-systemd.diff deleted file mode 100644 index 5608a1e..0000000 --- a/source/apps-extra/sysklogd/sysklogd-1.5-systemd.diff +++ /dev/null @@ -1,847 +0,0 @@ -diff --git a/Makefile b/Makefile -index 9a114b8..aef1fd6 100644 ---- a/Makefile -+++ b/Makefile -@@ -20,7 +20,7 @@ - CC= gcc - #SKFLAGS= -g -DSYSV -Wall - #LDFLAGS= -g --SKFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce -+SKFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce -I. - # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE - # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE - # $(shell getconf LFS_SKFLAGS) -@@ -79,8 +79,8 @@ test: syslog_tst ksym oops.ko tsyslogd - - install: install_man install_exec - --syslogd: syslogd.o pidfile.o -- ${CC} ${LDFLAGS} -o syslogd syslogd.o pidfile.o ${LIBS} -+syslogd: syslogd.o pidfile.o sd-daemon.o -+ ${CC} ${LDFLAGS} -o syslogd syslogd.o pidfile.o sd-daemon.o ${LIBS} - - klogd: klogd.o syslog.o pidfile.o ksym.o ksym_mod.o - ${CC} ${LDFLAGS} -o klogd klogd.o syslog.o pidfile.o ksym.o \ -@@ -101,6 +101,9 @@ syslogd.o: syslogd.c version.h - syslog.o: syslog.c - ${CC} ${SKFLAGS} ${SYSLOG_FLAGS} -c syslog.c - -+sd-daemon.o: sd-daemon.c sd-daemon.h -+ ${CC} ${SKFLAGS} ${SYSLOG_FLAGS} -c sd-daemon.c -+ - klogd.o: klogd.c klogd.h version.h - ${CC} ${SKFLAGS} ${KLOGD_FLAGS} $(DEB) -c klogd.c - -diff --git a/sd-daemon.c b/sd-daemon.c -new file mode 100644 -index 0000000..6d1eebf ---- /dev/null -+++ b/sd-daemon.c -@@ -0,0 +1,436 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+/*** -+ Copyright 2010 Lennart Poettering -+ -+ Permission is hereby granted, free of charge, to any person -+ obtaining a copy of this software and associated documentation files -+ (the "Software"), to deal in the Software without restriction, -+ including without limitation the rights to use, copy, modify, merge, -+ publish, distribute, sublicense, and/or sell copies of the Software, -+ and to permit persons to whom the Software is furnished to do so, -+ subject to the following conditions: -+ -+ The above copyright notice and this permission notice shall be -+ included in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ SOFTWARE. -+***/ -+ -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE -+#endif -+ -+#include <sys/types.h> -+#include <sys/stat.h> -+#include <sys/socket.h> -+#include <sys/un.h> -+#include <sys/fcntl.h> -+#include <netinet/in.h> -+#include <stdlib.h> -+#include <errno.h> -+#include <unistd.h> -+#include <string.h> -+#include <stdarg.h> -+#include <stdio.h> -+#include <stddef.h> -+ -+#include "sd-daemon.h" -+ -+int sd_listen_fds(int unset_environment) { -+ -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) -+ return 0; -+#else -+ int r, fd; -+ const char *e; -+ char *p = NULL; -+ unsigned long l; -+ -+ if (!(e = getenv("LISTEN_PID"))) { -+ r = 0; -+ goto finish; -+ } -+ -+ errno = 0; -+ l = strtoul(e, &p, 10); -+ -+ if (errno != 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ if (!p || *p || l <= 0) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ /* Is this for us? */ -+ if (getpid() != (pid_t) l) { -+ r = 0; -+ goto finish; -+ } -+ -+ if (!(e = getenv("LISTEN_FDS"))) { -+ r = 0; -+ goto finish; -+ } -+ -+ errno = 0; -+ l = strtoul(e, &p, 10); -+ -+ if (errno != 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ if (!p || *p) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + (int) l; fd ++) { -+ int flags; -+ -+ if ((flags = fcntl(fd, F_GETFD)) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ if (flags & FD_CLOEXEC) -+ continue; -+ -+ if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ } -+ -+ r = (int) l; -+ -+finish: -+ if (unset_environment) { -+ unsetenv("LISTEN_PID"); -+ unsetenv("LISTEN_FDS"); -+ } -+ -+ return r; -+#endif -+} -+ -+int sd_is_fifo(int fd, const char *path) { -+ struct stat st_fd; -+ -+ if (fd < 0) -+ return -EINVAL; -+ -+ memset(&st_fd, 0, sizeof(st_fd)); -+ if (fstat(fd, &st_fd) < 0) -+ return -errno; -+ -+ if (!S_ISFIFO(st_fd.st_mode)) -+ return 0; -+ -+ if (path) { -+ struct stat st_path; -+ -+ memset(&st_path, 0, sizeof(st_path)); -+ if (stat(path, &st_path) < 0) { -+ -+ if (errno == ENOENT || errno == ENOTDIR) -+ return 0; -+ -+ return -errno; -+ } -+ -+ return -+ st_path.st_dev == st_fd.st_dev && -+ st_path.st_ino == st_fd.st_ino; -+ } -+ -+ return 1; -+} -+ -+static int sd_is_socket_internal(int fd, int type, int listening) { -+ struct stat st_fd; -+ -+ if (fd < 0 || type < 0) -+ return -EINVAL; -+ -+ if (fstat(fd, &st_fd) < 0) -+ return -errno; -+ -+ if (!S_ISSOCK(st_fd.st_mode)) -+ return 0; -+ -+ if (type != 0) { -+ int other_type = 0; -+ socklen_t l = sizeof(other_type); -+ -+ if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &other_type, &l) < 0) -+ return -errno; -+ -+ if (l != sizeof(other_type)) -+ return -EINVAL; -+ -+ if (other_type != type) -+ return 0; -+ } -+ -+ if (listening >= 0) { -+ int accepting = 0; -+ socklen_t l = sizeof(accepting); -+ -+ if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &accepting, &l) < 0) -+ return -errno; -+ -+ if (l != sizeof(accepting)) -+ return -EINVAL; -+ -+ if (!accepting != !listening) -+ return 0; -+ } -+ -+ return 1; -+} -+ -+union sockaddr_union { -+ struct sockaddr sa; -+ struct sockaddr_in in4; -+ struct sockaddr_in6 in6; -+ struct sockaddr_un un; -+ struct sockaddr_storage storage; -+}; -+ -+int sd_is_socket(int fd, int family, int type, int listening) { -+ int r; -+ -+ if (family < 0) -+ return -EINVAL; -+ -+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) -+ return r; -+ -+ if (family > 0) { -+ union sockaddr_union sockaddr; -+ socklen_t l; -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ l = sizeof(sockaddr); -+ -+ if (getsockname(fd, &sockaddr.sa, &l) < 0) -+ return -errno; -+ -+ if (l < sizeof(sa_family_t)) -+ return -EINVAL; -+ -+ return sockaddr.sa.sa_family == family; -+ } -+ -+ return 1; -+} -+ -+int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) { -+ union sockaddr_union sockaddr; -+ socklen_t l; -+ int r; -+ -+ if (family != 0 && family != AF_INET && family != AF_INET6) -+ return -EINVAL; -+ -+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) -+ return r; -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ l = sizeof(sockaddr); -+ -+ if (getsockname(fd, &sockaddr.sa, &l) < 0) -+ return -errno; -+ -+ if (l < sizeof(sa_family_t)) -+ return -EINVAL; -+ -+ if (sockaddr.sa.sa_family != AF_INET && -+ sockaddr.sa.sa_family != AF_INET6) -+ return 0; -+ -+ if (family > 0) -+ if (sockaddr.sa.sa_family != family) -+ return 0; -+ -+ if (port > 0) { -+ if (sockaddr.sa.sa_family == AF_INET) { -+ if (l < sizeof(struct sockaddr_in)) -+ return -EINVAL; -+ -+ return htons(port) == sockaddr.in4.sin_port; -+ } else { -+ if (l < sizeof(struct sockaddr_in6)) -+ return -EINVAL; -+ -+ return htons(port) == sockaddr.in6.sin6_port; -+ } -+ } -+ -+ return 1; -+} -+ -+int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) { -+ union sockaddr_union sockaddr; -+ socklen_t l; -+ int r; -+ -+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) -+ return r; -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ l = sizeof(sockaddr); -+ -+ if (getsockname(fd, &sockaddr.sa, &l) < 0) -+ return -errno; -+ -+ if (l < sizeof(sa_family_t)) -+ return -EINVAL; -+ -+ if (sockaddr.sa.sa_family != AF_UNIX) -+ return 0; -+ -+ if (path) { -+ if (length <= 0) -+ length = strlen(path); -+ -+ if (length <= 0) -+ /* Unnamed socket */ -+ return l == offsetof(struct sockaddr_un, sun_path); -+ -+ if (path[0]) -+ /* Normal path socket */ -+ return -+ (l >= offsetof(struct sockaddr_un, sun_path) + length + 1) && -+ memcmp(path, sockaddr.un.sun_path, length+1) == 0; -+ else -+ /* Abstract namespace socket */ -+ return -+ (l == offsetof(struct sockaddr_un, sun_path) + length) && -+ memcmp(path, sockaddr.un.sun_path, length) == 0; -+ } -+ -+ return 1; -+} -+ -+int sd_notify(int unset_environment, const char *state) { -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) || !defined(SOCK_CLOEXEC) -+ return 0; -+#else -+ int fd = -1, r; -+ struct msghdr msghdr; -+ struct iovec iovec; -+ union sockaddr_union sockaddr; -+ const char *e; -+ -+ if (!state) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ if (!(e = getenv("NOTIFY_SOCKET"))) -+ return 0; -+ -+ /* Must be an abstract socket, or an absolute path */ -+ if ((e[0] != '@' && e[0] != '/') || e[1] == 0) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ if ((fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ sockaddr.sa.sa_family = AF_UNIX; -+ strncpy(sockaddr.un.sun_path, e, sizeof(sockaddr.un.sun_path)); -+ -+ if (sockaddr.un.sun_path[0] == '@') -+ sockaddr.un.sun_path[0] = 0; -+ -+ memset(&iovec, 0, sizeof(iovec)); -+ iovec.iov_base = (char*) state; -+ iovec.iov_len = strlen(state); -+ -+ memset(&msghdr, 0, sizeof(msghdr)); -+ msghdr.msg_name = &sockaddr; -+ msghdr.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(e); -+ -+ if (msghdr.msg_namelen > sizeof(struct sockaddr_un)) -+ msghdr.msg_namelen = sizeof(struct sockaddr_un); -+ -+ msghdr.msg_iov = &iovec; -+ msghdr.msg_iovlen = 1; -+ -+ if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ r = 1; -+ -+finish: -+ if (unset_environment) -+ unsetenv("NOTIFY_SOCKET"); -+ -+ if (fd >= 0) -+ close(fd); -+ -+ return r; -+#endif -+} -+ -+int sd_notifyf(int unset_environment, const char *format, ...) { -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) -+ return 0; -+#else -+ va_list ap; -+ char *p = NULL; -+ int r; -+ -+ va_start(ap, format); -+ r = vasprintf(&p, format, ap); -+ va_end(ap); -+ -+ if (r < 0 || !p) -+ return -ENOMEM; -+ -+ r = sd_notify(unset_environment, p); -+ free(p); -+ -+ return r; -+#endif -+} -+ -+int sd_booted(void) { -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) -+ return 0; -+#else -+ -+ struct stat a, b; -+ -+ /* We simply test whether the systemd cgroup hierarchy is -+ * mounted */ -+ -+ if (lstat("/sys/fs/cgroup", &a) < 0) -+ return 0; -+ -+ if (lstat("/sys/fs/cgroup/systemd", &b) < 0) -+ return 0; -+ -+ return a.st_dev != b.st_dev; -+#endif -+} -diff --git a/sd-daemon.h b/sd-daemon.h -new file mode 100644 -index 0000000..d0a0a94 ---- /dev/null -+++ b/sd-daemon.h -@@ -0,0 +1,265 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+#ifndef foosddaemonhfoo -+#define foosddaemonhfoo -+ -+/*** -+ Copyright 2010 Lennart Poettering -+ -+ Permission is hereby granted, free of charge, to any person -+ obtaining a copy of this software and associated documentation files -+ (the "Software"), to deal in the Software without restriction, -+ including without limitation the rights to use, copy, modify, merge, -+ publish, distribute, sublicense, and/or sell copies of the Software, -+ and to permit persons to whom the Software is furnished to do so, -+ subject to the following conditions: -+ -+ The above copyright notice and this permission notice shall be -+ included in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ SOFTWARE. -+***/ -+ -+#include <sys/types.h> -+#include <inttypes.h> -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+/* -+ Reference implementation of a few systemd related interfaces for -+ writing daemons. These interfaces are trivial to implement. To -+ simplify porting we provide this reference implementation. -+ Applications are welcome to reimplement the algorithms described -+ here if they do not want to include these two source files. -+ -+ The following functionality is provided: -+ -+ - Support for logging with log levels on stderr -+ - File descriptor passing for socket-based activation -+ - Daemon startup and status notification -+ - Detection of systemd boots -+ -+ You may compile this with -DDISABLE_SYSTEMD to disable systemd -+ support. This makes all those calls NOPs that are directly related to -+ systemd (i.e. only sd_is_xxx() will stay useful). -+ -+ Since this is drop-in code we don't want any of our symbols to be -+ exported in any case. Hence we declare hidden visibility for all of -+ them. -+ -+ You may find an up-to-date version of these source files online: -+ -+ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.h -+ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.c -+ -+ This should compile on non-Linux systems, too, but with the -+ exception of the sd_is_xxx() calls all functions will become NOPs. -+ -+ See sd-daemon(7) for more information. -+*/ -+ -+#ifndef _sd_printf_attr_ -+#if __GNUC__ >= 4 -+#define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b))) -+#else -+#define _sd_printf_attr_(a,b) -+#endif -+#endif -+ -+#ifndef _sd_hidden_ -+#if (__GNUC__ >= 4) && !defined(SD_EXPORT_SYMBOLS) -+#define _sd_hidden_ __attribute__ ((visibility("hidden"))) -+#else -+#define _sd_hidden_ -+#endif -+#endif -+ -+/* -+ Log levels for usage on stderr: -+ -+ fprintf(stderr, SD_NOTICE "Hello World!\n"); -+ -+ This is similar to printk() usage in the kernel. -+*/ -+#define SD_EMERG "<0>" /* system is unusable */ -+#define SD_ALERT "<1>" /* action must be taken immediately */ -+#define SD_CRIT "<2>" /* critical conditions */ -+#define SD_ERR "<3>" /* error conditions */ -+#define SD_WARNING "<4>" /* warning conditions */ -+#define SD_NOTICE "<5>" /* normal but significant condition */ -+#define SD_INFO "<6>" /* informational */ -+#define SD_DEBUG "<7>" /* debug-level messages */ -+ -+/* The first passed file descriptor is fd 3 */ -+#define SD_LISTEN_FDS_START 3 -+ -+/* -+ Returns how many file descriptors have been passed, or a negative -+ errno code on failure. Optionally, removes the $LISTEN_FDS and -+ $LISTEN_PID file descriptors from the environment (recommended, but -+ problematic in threaded environments). If r is the return value of -+ this function you'll find the file descriptors passed as fds -+ SD_LISTEN_FDS_START to SD_LISTEN_FDS_START+r-1. Returns a negative -+ errno style error code on failure. This function call ensures that -+ the FD_CLOEXEC flag is set for the passed file descriptors, to make -+ sure they are not passed on to child processes. If FD_CLOEXEC shall -+ not be set, the caller needs to unset it after this call for all file -+ descriptors that are used. -+ -+ See sd_listen_fds(3) for more information. -+*/ -+int sd_listen_fds(int unset_environment) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is a FIFO in the file system stored under the -+ specified path, 0 otherwise. If path is NULL a path name check will -+ not be done and the call only verifies if the file descriptor -+ refers to a FIFO. Returns a negative errno style error code on -+ failure. -+ -+ See sd_is_fifo(3) for more information. -+*/ -+int sd_is_fifo(int fd, const char *path) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is a socket of the specified family (AF_INET, -+ ...) and type (SOCK_DGRAM, SOCK_STREAM, ...), 0 otherwise. If -+ family is 0 a socket family check will not be done. If type is 0 a -+ socket type check will not be done and the call only verifies if -+ the file descriptor refers to a socket. If listening is > 0 it is -+ verified that the socket is in listening mode. (i.e. listen() has -+ been called) If listening is == 0 it is verified that the socket is -+ not in listening mode. If listening is < 0 no listening mode check -+ is done. Returns a negative errno style error code on failure. -+ -+ See sd_is_socket(3) for more information. -+*/ -+int sd_is_socket(int fd, int family, int type, int listening) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is an Internet socket, of the specified family -+ (either AF_INET or AF_INET6) and the specified type (SOCK_DGRAM, -+ SOCK_STREAM, ...), 0 otherwise. If version is 0 a protocol version -+ check is not done. If type is 0 a socket type check will not be -+ done. If port is 0 a socket port check will not be done. The -+ listening flag is used the same way as in sd_is_socket(). Returns a -+ negative errno style error code on failure. -+ -+ See sd_is_socket_inet(3) for more information. -+*/ -+int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is an AF_UNIX socket of the specified type -+ (SOCK_DGRAM, SOCK_STREAM, ...) and path, 0 otherwise. If type is 0 -+ a socket type check will not be done. If path is NULL a socket path -+ check will not be done. For normal AF_UNIX sockets set length to -+ 0. For abstract namespace sockets set length to the length of the -+ socket name (including the initial 0 byte), and pass the full -+ socket path in path (including the initial 0 byte). The listening -+ flag is used the same way as in sd_is_socket(). Returns a negative -+ errno style error code on failure. -+ -+ See sd_is_socket_unix(3) for more information. -+*/ -+int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) _sd_hidden_; -+ -+/* -+ Informs systemd about changed daemon state. This takes a number of -+ newline separated environment-style variable assignments in a -+ string. The following variables are known: -+ -+ READY=1 Tells systemd that daemon startup is finished (only -+ relevant for services of Type=notify). The passed -+ argument is a boolean "1" or "0". Since there is -+ little value in signalling non-readiness the only -+ value daemons should send is "READY=1". -+ -+ STATUS=... Passes a single-line status string back to systemd -+ that describes the daemon state. This is free-from -+ and can be used for various purposes: general state -+ feedback, fsck-like programs could pass completion -+ percentages and failing programs could pass a human -+ readable error message. Example: "STATUS=Completed -+ 66% of file system check..." -+ -+ ERRNO=... If a daemon fails, the errno-style error code, -+ formatted as string. Example: "ERRNO=2" for ENOENT. -+ -+ BUSERROR=... If a daemon fails, the D-Bus error-style error -+ code. Example: "BUSERROR=org.freedesktop.DBus.Error.TimedOut" -+ -+ MAINPID=... The main pid of a daemon, in case systemd did not -+ fork off the process itself. Example: "MAINPID=4711" -+ -+ Daemons can choose to send additional variables. However, it is -+ recommened to prefix variable names not listed above with X_. -+ -+ Returns a negative errno-style error code on failure. Returns > 0 -+ if systemd could be notified, 0 if it couldn't possibly because -+ systemd is not running. -+ -+ Example: When a daemon finished starting up, it could issue this -+ call to notify systemd about it: -+ -+ sd_notify(0, "READY=1"); -+ -+ See sd_notifyf() for more complete examples. -+ -+ See sd_notify(3) for more information. -+*/ -+int sd_notify(int unset_environment, const char *state) _sd_hidden_; -+ -+/* -+ Similar to sd_notify() but takes a format string. -+ -+ Example 1: A daemon could send the following after initialization: -+ -+ sd_notifyf(0, "READY=1\n" -+ "STATUS=Processing requests...\n" -+ "MAINPID=%lu", -+ (unsigned long) getpid()); -+ -+ Example 2: A daemon could send the following shortly before -+ exiting, on failure: -+ -+ sd_notifyf(0, "STATUS=Failed to start up: %s\n" -+ "ERRNO=%i", -+ strerror(errno), -+ errno); -+ -+ See sd_notifyf(3) for more information. -+*/ -+int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(2,3) _sd_hidden_; -+ -+/* -+ Returns > 0 if the system was booted with systemd. Returns < 0 on -+ error. Returns 0 if the system was not booted with systemd. Note -+ that all of the functions above handle non-systemd boots just -+ fine. You should NOT protect them with a call to this function. Also -+ note that this function checks whether the system, not the user -+ session is controlled by systemd. However the functions above work -+ for both user and system services. -+ -+ See sd_booted(3) for more information. -+*/ -+int sd_booted(void) _sd_hidden_; -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif -diff --git a/syslogd.c b/syslogd.c -index acfd8f1..9bfa8c7 100644 ---- a/syslogd.c -+++ b/syslogd.c -@@ -551,6 +551,7 @@ static char sccsid[] = "@(#)syslogd.c 5.27 (Berkeley) 10/10/88"; - - #if defined(__linux__) - #include <paths.h> -+#include <sd-daemon.h> - #endif - - #ifndef UTMP_FILE -@@ -965,8 +966,11 @@ int main(argc, argv) - } - signal (SIGTERM, SIG_DFL); - num_fds = getdtablesize(); -- for (i= 0; i < num_fds; i++) -- (void) close(i); -+#if defined(__linux__) -+ if (sd_listen_fds(0) <= 0) -+#endif -+ for (i = 0; i < num_fds; i++) -+ (void) close(i); - untty(); - } - else -@@ -1253,6 +1257,59 @@ static int create_unix_socket(const char *path) - if (path[0] == '\0') - return -1; - -+#if defined(__linux__) -+ if (strcmp(path, _PATH_LOG) == 0) { -+ int r; -+ -+ /* Check whether an FD was passed in from systemd. If -+ * so, it's the /dev/log socket, so use it. */ -+ -+ r = sd_listen_fds(0); -+ if (r < 0) { -+ logerror("Failed to acquire systemd socket"); -+#ifndef SYSV -+ dienow(); -+#else -+ return -1; -+#endif -+ } -+ -+ -+ if (r > 1) { -+ logerror("Wrong number of systemd sockets passed"); -+#ifndef SYSV -+ dienow(); -+#else -+ return -1; -+#endif -+ } -+ -+ if (r == 1) { -+ fd = SD_LISTEN_FDS_START; -+ r = sd_is_socket_unix(fd, SOCK_DGRAM, -1, _PATH_LOG, 0); -+ if (r < 0) { -+ logerror("Failed to verify systemd socket type"); -+#ifndef SYSV -+ dienow(); -+#else -+ return -1; -+#endif -+ } -+ -+ if (!r) { -+ logerror("Passed systemd socket of wrong type"); -+#ifndef SYSV -+ dienow(); -+#else -+ return -1; -+#endif -+ } -+ -+ return fd; -+ } -+ } -+#endif -+ - (void) unlink(path); - - memset(&sunx, 0, sizeof(sunx)); -@@ -2254,7 +2311,12 @@ void die(sig) - if (InetInuse) close(inetm); - - /* Clean-up files. */ -- for (i = 0; i < nfunix; i++) -+ i = 0; -+#if defined(__linux__) -+ if (sd_listen_fds(0) > 0) -+ i = 1; -+#endif -+ for (; i < nfunix; i++) - if (funixn[i] && funix[i] != -1) - (void)unlink(funixn[i]); - #ifndef TESTING diff --git a/source/apps-extra/sysklogd/sysklogd.install b/source/apps-extra/sysklogd/sysklogd.install deleted file mode 100644 index 2f750dd..0000000 --- a/source/apps-extra/sysklogd/sysklogd.install +++ /dev/null @@ -1,13 +0,0 @@ -post_install() -{ - chkconfig --add rc.syslog -} - -pre_remove() -{ - chkconfig --del rc.syslog -} - -op=$1 -shift -$op $* diff --git a/source/apps-extra/sysklogd/syslog b/source/apps-extra/sysklogd/syslog deleted file mode 100644 index 031e68d..0000000 --- a/source/apps-extra/sysklogd/syslog +++ /dev/null @@ -1,6 +0,0 @@ -/var/log/cron /var/log/debug /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler /var/log/syslog { - sharedscripts - postrotate - /bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2>/dev/null || true - endscript -} diff --git a/source/apps-extra/sysklogd/syslog.conf b/source/apps-extra/sysklogd/syslog.conf deleted file mode 100644 index 15bc5ee..0000000 --- a/source/apps-extra/sysklogd/syslog.conf +++ /dev/null @@ -1,46 +0,0 @@ -# /etc/syslog.conf -# For info about the format of this file, see "man syslog.conf" -# and /usr/doc/sysklogd/README.linux. Note the '-' prefixing some -# of these entries; this omits syncing the file after every logging. -# In the event of a crash, some log information might be lost, so -# if this is a concern to you then you might want to remove the '-'. -# Be advised this will cause a performation loss if you're using -# programs that do heavy logging. - -# Uncomment this to see kernel messages on the console. -#kern.* /dev/console - -# Log anything 'info' or higher, but lower than 'warn'. -# Exclude authpriv, cron, mail, and news. These are logged elsewhere. -*.info;*.!warn;\ - authpriv.none;cron.none;mail.none;news.none -/var/log/messages - -# Log anything 'warn' or higher. -# Exclude authpriv, cron, mail, and news. These are logged elsewhere. -*.warn;\ - authpriv.none;cron.none;mail.none;news.none -/var/log/syslog - -# Debugging information is logged here. -*.=debug -/var/log/debug - -# Private authentication message logging: -authpriv.* -/var/log/secure - -# Cron related logs: -cron.* -/var/log/cron - -# Mail related logs: -mail.* -/var/log/maillog - -# Emergency level messages go to all users: -*.emerg * - -# This log is for news and uucp errors: -uucp,news.crit -/var/log/spooler - -# Uncomment these if you'd like INN to keep logs on everything. -# You won't need this if you don't run INN (the InterNetNews daemon). -#news.=crit -/var/log/news/news.crit -#news.=err -/var/log/news/news.err -#news.notice -/var/log/news/news.notice -
_______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
