app-admin/sysklogd: Bump to version 2.0
authorLars Wendler <polynomial-c@gentoo.org>
Mon, 18 Nov 2019 11:45:06 +0000 (12:45 +0100)
committerLars Wendler <polynomial-c@gentoo.org>
Mon, 18 Nov 2019 11:51:50 +0000 (12:51 +0100)
Package-Manager: Portage-2.3.79, Repoman-2.3.18
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
app-admin/sysklogd/Manifest
app-admin/sysklogd/files/sysklogd-2.0-optional_logger.patch [new file with mode: 0644]
app-admin/sysklogd/files/sysklogd.rc8 [new file with mode: 0644]
app-admin/sysklogd/metadata.xml
app-admin/sysklogd/sysklogd-2.0.ebuild [new file with mode: 0644]

index dc3c1683a777d9910b8922b6e1f53acd6cb1b328..dadb261979fa337aa34bfd2d365ebbd4f35dedd1 100644 (file)
@@ -1,2 +1,3 @@
 DIST sysklogd-1.5.1.tar.gz 90011 BLAKE2B c40bd8d5769f7d3d4141d602c74ac41e05a140743d18c4923d9368da7ba193ccb89a6837173994f0b7a9c290cc23f64513040434d7ab8df81b5d09b73b0263ad SHA512 a72196a1a172d25be1c4791ef6256fe71fa2ba8c1383d230e646e93f8a65c3a57c535189726325da4c792fdb2e9cb119bba43c878816a8e78e78189fd32b12b7
+DIST sysklogd-2.0.tar.gz 465822 BLAKE2B 030ce2e65287d215d376937aec590715abcac06dffef735038c31ee102eb00d5c616bfd2f3d378e53ef6ae4aa062e9802aaaca84a6f5598b43da35ee722d37ac SHA512 25b55b8ea47280c11959e03d5a8c592e1b02764b4aeb722ef9782d84116475f1bbba96d6db8c291b694d99c7970e2e7615e7cd48b8fef6dff4f9ae825e18d030
 DIST sysklogd_1.5-6.diff.gz 25677 BLAKE2B 3cb1f596490998b6002d4656a2321a500ce9941a37737c0b9d4702bbb87d7bc9ba21b68e06d175e3c1714a701adc6b3312e18a556ebc9ef395d8968762830cb5 SHA512 816961a835a43057569f62fd20d9f7b5e0bfcfcb173b68947457708504db3ce47e635956c8a9564f9bd577d8f3c49dfc725d321dfd3370b2de918363c30f838e
diff --git a/app-admin/sysklogd/files/sysklogd-2.0-optional_logger.patch b/app-admin/sysklogd/files/sysklogd-2.0-optional_logger.patch
new file mode 100644 (file)
index 0000000..4e5580b
--- /dev/null
@@ -0,0 +1,101 @@
+From 227008ec0f59eecf3a962ebd9fbc27a0e475a4df Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Mon, 18 Nov 2019 12:08:26 +0100
+Subject: [PATCH] build: make logger and its man page optional
+
+There are other packages that provide a logger program like util-linux
+We should respekt that
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ configure.ac    | 10 ++++++++++
+ man/Makefile.am |  6 +++++-
+ src/Makefile.am |  8 +++++++-
+ 3 files changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 37c0bd4..e7acad7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -65,6 +65,10 @@ AC_ARG_WITH(systemd,
+      [AS_HELP_STRING([--with-systemd=DIR], [Directory for systemd service files])],,
+      [with_systemd=auto])
++AC_ARG_WITH(logger,
++     AS_HELP_STRING([--without-logger], [Do not build/install logger binary and man page, default: enabled]),
++     [logger=$withval], [logger='yes'])
++
+ AS_IF([test "x$klogd" != "xno"],
+         with_klogd="yes"
+       AC_DEFINE(KLOGD, 1, [Build with klogd, default: built-in /dev/kmsg support in syslogd]),
+@@ -97,6 +101,12 @@ AS_IF([test "x$with_systemd" != "xno"],
+      [AC_SUBST([systemddir], [$with_systemd])])
+ AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemd" != "xno"])
++AS_IF([test "x$logger" != "xno"], [
++      with_logger="yes"
++      AC_DEFINE(LOGGER, 1, [Build with logger])],
++      with_logger="no")
++AM_CONDITIONAL([ENABLE_LOGGER], [test "x$with_logger" != "xno"])
++
+ # Expand $sbindir early, into $SBINDIR, for systemd unit file
+ # NOTE: This does *not* take prefix/exec_prefix override at "make
+ #       install" into account, unfortunately.
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 8ee7064..8ccad31 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -1,4 +1,4 @@
+-dist_man1_MANS  = logger.1
++dist_man1_MANS  =
+ dist_man3_MANS        = syslogp.3
+ dist_man5_MANS        = syslog.conf.5
+ dist_man8_MANS        = syslogd.8
+@@ -6,3 +6,7 @@ dist_man8_MANS = syslogd.8
+ if ENABLE_KLOGD
+ dist_man8_MANS += klogd.8
+ endif
++
++if ENABLE_LOGGER
++dist_man1_MANS += logger.1
++endif
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 85f747b..849e49b 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -16,7 +16,7 @@
+ # with this program; if not, write to the Free Software Foundation, Inc.,
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+-bin_PROGRAMS          = logger
++bin_PROGRAMS          =
+ sbin_PROGRAMS         = syslogd
+ lib_LTLIBRARIES       = libsyslog.la
+ noinst_LTLIBRARIES    = libcompat.la
+@@ -25,6 +25,10 @@ if ENABLE_KLOGD
+ sbin_PROGRAMS        += klogd
+ endif
++if ENABLE_LOGGER
++bin_PROGRAMS       += logger
++endif
++
+ AM_CFLAGS             = -W -Wall -Wextra
+ AM_CFLAGS            += -Wno-unused-result -Wno-unused-parameter -fno-strict-aliasing
+ AM_CPPFLAGS           = -DSYSCONFDIR=\"@sysconfdir@\" -DLOCALSTATEDIR=\"@localstatedir@\"
+@@ -39,10 +43,12 @@ klogd_CPPFLAGS        = $(AM_CPPFLAGS)
+ klogd_LDADD           = $(LIBS) $(LIBOBJS)
+ klogd_LDADD          += libsyslog.la
++if ENABLE_LOGGER
+ logger_SOURCES        = logger.c syslog.h
+ logger_CPPFLAGS       = $(AM_CPPFLAGS) -D_XOPEN_SOURCE=600
+ logger_LDADD          = $(LIBS) $(LIBOBJS)
+ logger_LDADD         += libsyslog.la
++endif
+ # Convenience library for libsyslog instead of linking with $(LTLIBOBJS),
+ # which would pull in pidfile() and other (strong) symbols as well.
+-- 
+2.24.0
+
diff --git a/app-admin/sysklogd/files/sysklogd.rc8 b/app-admin/sysklogd/files/sysklogd.rc8
new file mode 100644 (file)
index 0000000..6b411d5
--- /dev/null
@@ -0,0 +1,82 @@
+#!/sbin/openrc-run
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+extra_started_commands="reload"
+
+depend() {
+       need clock hostname
+       provide logger
+}
+
+has_klogd() {
+       [ -x "/usr/sbin/klogd" ]
+}
+
+start_daemon() {
+       local retval=0
+       local daemon="$1"
+       local options="$2"
+
+       [ -z "${daemon}" ] && return 1
+
+       ebegin "sysklogd -> start: ${daemon}"
+       start-stop-daemon --start --exec /usr/sbin/"${daemon}" \
+               --pidfile /var/run/"${daemon}".pid -- ${options}
+       retval=$?
+       eend ${retval} "Failed to start ${daemon}"
+
+       return ${retval}
+}
+
+stop_daemon() {
+       local retval=0
+       local daemon="$1"
+
+       [ -z "${daemon}" ] && return 1
+       
+       ebegin "sysklogd -> stop: ${daemon}"
+       # syslogd can be stubborn some times (--retry 15)...
+       start-stop-daemon --stop --retry 15 --quiet --pidfile /var/run/"${daemon}".pid
+       retval=$?
+       eend ${retval} "Failed to stop ${daemon}"
+
+       return ${retval}
+}
+
+start() {
+       start_daemon "syslogd" "${SYSLOGD}" || return 1
+
+       # klogd do not always start proper if started too early
+       sleep 1
+
+       if has_klogd && ! start_daemon "klogd" "${KLOGD}" ; then
+               stop_daemon "syslogd"
+               return 1
+       fi
+
+       return 0
+}
+
+stop() {
+       if has_klogd ; then
+               stop_daemon "klogd" || return 1
+       fi
+       stop_daemon "syslogd" || return 1 
+       return 0
+}
+
+reload() {
+       local ret=0
+
+       ebegin "Reloading configuration"
+
+       start-stop-daemon --signal HUP --pidfile /var/run/syslogd.pid
+       ret=$((${ret} + $?))
+       if has_klogd ; then
+               start-stop-daemon --signal USR1 --pidfile /var/run/klogd.pid
+               ret=$((${ret} + $?))
+       fi
+
+       eend ${ret}
+}
index 094ccd37b3fd16ba7347d07abd2f2d86e84ff2ce..868e8ae726ded388e46a7aaff93fb24de740ada0 100644 (file)
@@ -6,6 +6,7 @@
                <name>Gentoo Base System</name>
        </maintainer>
        <use>
+               <flag name="klogd">Build and install (deprecated) kernel logging daemon</flag>
                <flag name="logrotate">use app-admin/logrotate for rotating logs rather than custom cron scripts</flag>
        </use>
 </pkgmetadata>
diff --git a/app-admin/sysklogd/sysklogd-2.0.ebuild b/app-admin/sysklogd/sysklogd-2.0.ebuild
new file mode 100644 (file)
index 0000000..e3fa879
--- /dev/null
@@ -0,0 +1,58 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic systemd toolchain-funcs
+
+DESCRIPTION="Standard log daemons"
+HOMEPAGE="https://github.com/troglobit/sysklogd"
+SRC_URI="https://github.com/troglobit/sysklogd/releases/download/v$(ver_cut 1-2)/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="klogd logrotate systemd"
+RESTRICT="test"
+
+DEPEND=""
+RDEPEND=""
+
+DOCS=( ChangeLog.md README.md )
+
+PATCHES=(
+       ${FILESDIR}/${PN}-2.0-optional_logger.patch
+)
+
+pkg_setup() {
+       append-lfs-flags
+       tc-export CC
+}
+
+src_prepare() {
+       default
+       eautoreconf
+}
+
+src_configure() {
+       local myeconfargs=(
+               # we have logger from sys-apps/util-linux
+               #--without-logger
+               $(use_with klogd)
+               $(use_with systemd systemd $(systemd_get_systemunitdir))
+       )
+       econf "${myeconfargs[@]}"
+}
+
+src_install() {
+       default
+
+       insinto /etc
+       doins syslog.conf
+       keepdir /etc/syslog.d
+
+       find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
+
+       newinitd "${FILESDIR}"/sysklogd.rc8 sysklogd
+       newconfd "${FILESDIR}"/sysklogd.confd sysklogd
+}