From 5180c7569d058ba8265c2eacaee2d097111fcd38 Mon Sep 17 00:00:00 2001 From: Ilya Tumaykin Date: Fri, 30 Oct 2015 16:54:53 +0300 Subject: [PATCH 1/2] app-admin/ulogd: add 200 ms delay on daemon start Gentoo-Bug: 564396 --- app-admin/ulogd/files/ulogd.init-r2 | 42 ++++++++ app-admin/ulogd/ulogd-2.0.5-r3.ebuild | 145 ++++++++++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 app-admin/ulogd/files/ulogd.init-r2 create mode 100644 app-admin/ulogd/ulogd-2.0.5-r3.ebuild diff --git a/app-admin/ulogd/files/ulogd.init-r2 b/app-admin/ulogd/files/ulogd.init-r2 new file mode 100644 index 0000000000000..c994507f99358 --- /dev/null +++ b/app-admin/ulogd/files/ulogd.init-r2 @@ -0,0 +1,42 @@ +#!/sbin/runscript +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +extra_started_commands="reload reopen" + +: ${ULOGD_BINARY:=/usr/sbin/ulogd} +: ${ULOGD_PIDFILE:=/run/${SVCNAME}.pid} +: ${ULOGD_WAIT:=200} +: ${ULOGD_OPTS:=--daemon --uid ulogd --pidfile ${ULOGD_PIDFILE}} + +depend() { + before iptables ip6tables ebtables nftables firewall + after mysql postgresql +} + +start() { + ebegin "Starting ${SVCNAME}" + start-stop-daemon --start \ + --exec ${ULOGD_BINARY} --pidfile ${ULOGD_PIDFILE} --wait ${ULOGD_WAIT} \ + -- ${ULOGD_OPTS} + eend $? +} + +stop() { + ebegin "Stopping ${SVCNAME}" + start-stop-daemon --stop --pidfile ${ULOGD_PIDFILE} + eend $? +} + +reload() { + ebegin "Reloading ${SVCNAME} configuration" + start-stop-daemon --signal USR1 --pidfile ${ULOGD_PIDFILE} + eend $? +} + +reopen() { + ebegin "Reopening ${SVCNAME} logfiles" + start-stop-daemon --signal HUP --pidfile ${ULOGD_PIDFILE} + eend $? +} diff --git a/app-admin/ulogd/ulogd-2.0.5-r3.ebuild b/app-admin/ulogd/ulogd-2.0.5-r3.ebuild new file mode 100644 index 0000000000000..71cf91e2eaabe --- /dev/null +++ b/app-admin/ulogd/ulogd-2.0.5-r3.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +AUTOTOOLS_AUTORECONF=1 +AUTOTOOLS_IN_SOURCE_BUILD=1 + +inherit autotools-utils eutils flag-o-matic linux-info readme.gentoo systemd user + +DESCRIPTION="A userspace logging daemon for netfilter/iptables related logging" +HOMEPAGE="http://netfilter.org/projects/ulogd/index.html" +SRC_URI="ftp://ftp.netfilter.org/pub/${PN}/${P}.tar.bz2 + http://www.netfilter.org/projects/${PN}/files/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ia64 ~ppc ~x86" +IUSE="dbi doc json mysql nfacct +nfct +nflog pcap postgres sqlite -ulog" + +RDEPEND=" + || ( net-firewall/iptables net-firewall/nftables ) + >=net-libs/libnfnetlink-1.0.1 + dbi? ( dev-db/libdbi ) + json? ( dev-libs/jansson ) + nfacct? ( + >=net-libs/libmnl-1.0.3 + >=net-libs/libnetfilter_acct-1.0.1 + ) + nfct? ( >=net-libs/libnetfilter_conntrack-1.0.2 ) + nflog? ( >=net-libs/libnetfilter_log-1.0.0 ) + mysql? ( virtual/mysql ) + pcap? ( net-libs/libpcap ) + postgres? ( dev-db/postgresql:= ) + sqlite? ( dev-db/sqlite:3 ) +" +DEPEND="${RDEPEND} + doc? ( + app-text/linuxdoc-tools + app-text/texlive-core + virtual/latex-base + ) +" + +PATCHES=( "${FILESDIR}/${P}-remove-db-automagic.patch" ) + +DOCS=( AUTHORS README TODO ) +DOC_CONTENTS=" + You must have at least one logging stack enabled to make ulogd work. + Please edit example configuration located at /etc/ulogd.conf +" + +pkg_setup() { + enewgroup ulogd + enewuser ulogd -1 -1 /var/log/ulogd ulogd + + linux-info_pkg_setup + + if kernel_is lt 2 6 14; then + die "ulogd requires kernel newer than 2.6.14" + fi + + if kernel_is lt 2 6 18; then + ewarn "You are using kernel older than 2.6.18" + ewarn "Some ulogd features may be unavailable" + fi + + if use nfacct && kernel_is lt 3 3 0; then + ewarn "NFACCT input plugin requires kernel newer than 3.3.0" + fi + + if use ulog && kernel_is gt 3 17 0; then + ewarn "ULOG target was removed since 3.17.0 kernel release" + ewarn "Consider enabling NFACCT, NFCT or NFLOG support" + fi +} + +src_prepare() { + # - make all logs to be kept in a single dir /var/log/ulogd + # - place sockets in /run instead of /tmp + sed -i \ + -e 's:var/log:var/log/ulogd:g' \ + -e 's:tmp:run:g' \ + ulogd.conf.in || die 'sed on ulogd.conf.in failed' + + append-lfs-flags + autotools-utils_src_prepare +} + +src_configure() { + local myeconfargs=( + $(use_with dbi) + $(use_with json jansson) + $(use_enable nfacct) + $(use_enable nfct) + $(use_enable nflog) + $(use_with mysql) + $(use_with pcap) + $(use_with postgres pgsql) + $(use_with sqlite) + $(use_enable ulog) + ) + autotools-utils_src_configure +} + +src_compile() { + autotools-utils_src_compile + + if use doc; then + # Prevent access violations from bitmap font files generation + export VARTEXFONTS="${T}"/fonts + emake -C doc + fi +} + +src_install() { + autotools-utils_src_install + readme.gentoo_create_doc + prune_libtool_files --modules + + if use doc; then + dohtml doc/${PN}.html + dodoc doc/${PN}.dvi doc/${PN}.txt doc/${PN}.ps + fi + + use sqlite && dodoc doc/sqlite3.table + use mysql && dodoc doc/mysql-*.sql + use postgres && dodoc doc/pgsql-*.sql + doman ${PN}.8 + + insinto /etc + doins ${PN}.conf + fowners root:ulogd /etc/ulogd.conf + fperms 640 /etc/ulogd.conf + + newinitd "${FILESDIR}/${PN}.init-r2" ${PN} + systemd_newunit "${FILESDIR}/${PN}.service-r1" ${PN}.service + + insinto /etc/logrotate.d + newins "${FILESDIR}/${PN}.logrotate" ${PN} + + diropts -o ulogd -g ulogd + keepdir /var/log/ulogd +} From 0c147c1277d6c4777b0353683d0a419fc277b5a8 Mon Sep 17 00:00:00 2001 From: Ilya Tumaykin Date: Fri, 30 Oct 2015 17:01:24 +0300 Subject: [PATCH 2/2] app-admin/ulogd: remove old --- app-admin/ulogd/Manifest | 1 - ...gd-2.0.4-linux-headers-3.17-ipt_ulog.patch | 100 ------------- app-admin/ulogd/files/ulogd.init | 41 ----- app-admin/ulogd/files/ulogd.service | 13 -- app-admin/ulogd/ulogd-2.0.4-r1.ebuild | 140 ------------------ 5 files changed, 295 deletions(-) delete mode 100644 app-admin/ulogd/files/ulogd-2.0.4-linux-headers-3.17-ipt_ulog.patch delete mode 100644 app-admin/ulogd/files/ulogd.init delete mode 100644 app-admin/ulogd/files/ulogd.service delete mode 100644 app-admin/ulogd/ulogd-2.0.4-r1.ebuild diff --git a/app-admin/ulogd/Manifest b/app-admin/ulogd/Manifest index 8392508578e9f..d969037d459d6 100644 --- a/app-admin/ulogd/Manifest +++ b/app-admin/ulogd/Manifest @@ -1,2 +1 @@ -DIST ulogd-2.0.4.tar.bz2 452234 SHA256 56b30a13a8832e97178f39b7bb173a0b1dfe173dbb60d99a1a386c0962a2effd SHA512 08e88661fcfbcfd327b03b7a883dc239991f47d5a4e4561f3ada5f6acc8f2349f3bd38c1c67f28e42bbccf4cad63b2b7c3b732c23bf24b7c5f05320d27977773 WHIRLPOOL 94ee731cee8b95295d1c675bb3904be1a5b27a1e901d462f248116c865e79d52703b5330882110d7212bda1bb964fc0c97c3e704589071f47fab4475e1c91161 DIST ulogd-2.0.5.tar.bz2 456258 SHA256 a221cb9f77347c0ca00d0937e27c1b90e3291a553cc62a4139b788e2e420e8c0 SHA512 bf00b8adaad7bd04077a83521b0d7accc26e644c8f3386819e7f91476178b6733f1c6554fb82dd0d3913398c83a61d65f61dc973f199f610bfaadc6251504819 WHIRLPOOL fe499ac7b4070581439a05f4f2245f7a42fe5630da5dc32b9b069511ed1faa15fe482eee08d50477d3fb1d0bf0d3855a69fc82fb0f3e8eecdf082fb642519f91 diff --git a/app-admin/ulogd/files/ulogd-2.0.4-linux-headers-3.17-ipt_ulog.patch b/app-admin/ulogd/files/ulogd-2.0.4-linux-headers-3.17-ipt_ulog.patch deleted file mode 100644 index f8c10622e229b..0000000000000 --- a/app-admin/ulogd/files/ulogd-2.0.4-linux-headers-3.17-ipt_ulog.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 30e24dbfc7a8644e29664070e8c16e5c3997f87e Mon Sep 17 00:00:00 2001 -From: Pablo Neira Ayuso -Date: Fri, 7 Nov 2014 18:33:01 +0100 -Subject: [PATCH] include: keep a copy of linux/netfilter_ipv4/ipt_ULOG.h - -This fixes compilation if you use a Linux kernel >= 3.17. This problem -occurs since ULOG was removed from mainstream: - -http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7200135bc1e61f1437dc326ae2ef2f310c50b4eb - -Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=986 -Signed-off-by: Pablo Neira Ayuso - -diff --git a/configure.ac b/configure.ac -index 522c345..c5f573c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -142,7 +142,7 @@ dnl AM_CONDITIONAL(HAVE_PGSQL, test x$pgsqldir != x) - - AC_CONFIG_FILES(include/Makefile include/ulogd/Makefile include/libipulog/Makefile \ - include/linux/Makefile include/linux/netfilter/Makefile \ -- libipulog/Makefile \ -+ include/linux/netfilter_ipv4/Makefile libipulog/Makefile \ - input/Makefile input/packet/Makefile input/flow/Makefile \ - input/sum/Makefile \ - filter/Makefile filter/raw2packet/Makefile filter/packet2flow/Makefile \ -diff --git a/include/linux/Makefile.am b/include/linux/Makefile.am -index ca80d0d..18af1c2 100644 ---- a/include/linux/Makefile.am -+++ b/include/linux/Makefile.am -@@ -1,2 +1,2 @@ -- --SUBDIRS = netfilter -+SUBDIRS = netfilter \ -+ netfilter_ipv4 -diff --git a/include/linux/netfilter_ipv4/Makefile.am b/include/linux/netfilter_ipv4/Makefile.am -new file mode 100644 -index 0000000..41819a3 ---- /dev/null -+++ b/include/linux/netfilter_ipv4/Makefile.am -@@ -0,0 +1 @@ -+noinst_HEADERS = ipt_ULOG.h -diff --git a/include/linux/netfilter_ipv4/ipt_ULOG.h b/include/linux/netfilter_ipv4/ipt_ULOG.h -new file mode 100644 -index 0000000..417aad2 ---- /dev/null -+++ b/include/linux/netfilter_ipv4/ipt_ULOG.h -@@ -0,0 +1,49 @@ -+/* Header file for IP tables userspace logging, Version 1.8 -+ * -+ * (C) 2000-2002 by Harald Welte -+ * -+ * Distributed under the terms of GNU GPL */ -+ -+#ifndef _IPT_ULOG_H -+#define _IPT_ULOG_H -+ -+#ifndef NETLINK_NFLOG -+#define NETLINK_NFLOG 5 -+#endif -+ -+#define ULOG_DEFAULT_NLGROUP 1 -+#define ULOG_DEFAULT_QTHRESHOLD 1 -+ -+#define ULOG_MAC_LEN 80 -+#define ULOG_PREFIX_LEN 32 -+ -+#define ULOG_MAX_QLEN 50 -+/* Why 50? Well... there is a limit imposed by the slab cache 131000 -+ * bytes. So the multipart netlink-message has to be < 131000 bytes. -+ * Assuming a standard ethernet-mtu of 1500, we could define this up -+ * to 80... but even 50 seems to be big enough. */ -+ -+/* private data structure for each rule with a ULOG target */ -+struct ipt_ulog_info { -+ unsigned int nl_group; -+ size_t copy_range; -+ size_t qthreshold; -+ char prefix[ULOG_PREFIX_LEN]; -+}; -+ -+/* Format of the ULOG packets passed through netlink */ -+typedef struct ulog_packet_msg { -+ unsigned long mark; -+ long timestamp_sec; -+ long timestamp_usec; -+ unsigned int hook; -+ char indev_name[IFNAMSIZ]; -+ char outdev_name[IFNAMSIZ]; -+ size_t data_len; -+ char prefix[ULOG_PREFIX_LEN]; -+ unsigned char mac_len; -+ unsigned char mac[ULOG_MAC_LEN]; -+ unsigned char payload[0]; -+} ulog_packet_msg_t; -+ -+#endif /*_IPT_ULOG_H*/ --- -2.0.4 - diff --git a/app-admin/ulogd/files/ulogd.init b/app-admin/ulogd/files/ulogd.init deleted file mode 100644 index ace6e8b51c91f..0000000000000 --- a/app-admin/ulogd/files/ulogd.init +++ /dev/null @@ -1,41 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -extra_started_commands="reload reopen" - -: ${ULOGD_BINARY:=/usr/sbin/ulogd} -: ${ULOGD_PIDFILE:=/run/${SVCNAME}.pid} -: ${ULOGD_OPTS:=--daemon --uid ulogd --pidfile ${ULOGD_PIDFILE}} - -depend() { - before iptables ip6tables ebtables firewall - after mysql postgresql -} - -start() { - ebegin "Starting ${SVCNAME}" - start-stop-daemon --start \ - --exec ${ULOGD_BINARY} --pidfile ${ULOGD_PIDFILE} \ - -- ${ULOGD_OPTS} - eend $? -} - -stop() { - ebegin "Stopping ${SVCNAME}" - start-stop-daemon --stop --pidfile ${ULOGD_PIDFILE} - eend $? -} - -reload() { - ebegin "Reloading ${SVCNAME} configuration" - start-stop-daemon --signal USR1 --pidfile ${ULOGD_PIDFILE} - eend $? -} - -reopen() { - ebegin "Reopening ${SVCNAME} logfiles" - start-stop-daemon --signal HUP --pidfile ${ULOGD_PIDFILE} - eend $? -} diff --git a/app-admin/ulogd/files/ulogd.service b/app-admin/ulogd/files/ulogd.service deleted file mode 100644 index ec22db0ad663a..0000000000000 --- a/app-admin/ulogd/files/ulogd.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=A userspace logging daemon for netfilter/iptables related logging -Before=iptables.service ip6tables.service -After=mysql.service postgresql.service - -[Service] -Type=forking -PIDFile=/run/ulogd.pid -ExecStart=/usr/sbin/ulogd --daemon --uid ulogd --pidfile /run/ulogd.pid -ExecReload=/bin/kill -USR1 $MAINPID - -[Install] -WantedBy=network.target diff --git a/app-admin/ulogd/ulogd-2.0.4-r1.ebuild b/app-admin/ulogd/ulogd-2.0.4-r1.ebuild deleted file mode 100644 index a49fa02352142..0000000000000 --- a/app-admin/ulogd/ulogd-2.0.4-r1.ebuild +++ /dev/null @@ -1,140 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI="5" - -AUTOTOOLS_AUTORECONF=1 -AUTOTOOLS_IN_SOURCE_BUILD=1 -inherit autotools-utils eutils linux-info readme.gentoo systemd user - -DESCRIPTION="A userspace logging daemon for netfilter/iptables related logging" -HOMEPAGE="http://netfilter.org/projects/ulogd/index.html" -SRC_URI="ftp://ftp.netfilter.org/pub/${PN}/${P}.tar.bz2 - http://www.netfilter.org/projects/${PN}/files/${P}.tar.bz2" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 ~ia64 ppc x86" -IUSE="dbi doc json mysql nfacct +nfct +nflog pcap postgres sqlite" - -RDEPEND="net-firewall/iptables - >=net-libs/libnfnetlink-1.0.1 - dbi? ( dev-db/libdbi ) - json? ( dev-libs/jansson ) - nfacct? ( - >=net-libs/libmnl-1.0.3 - >=net-libs/libnetfilter_acct-1.0.1 - ) - nfct? ( >=net-libs/libnetfilter_conntrack-1.0.2 ) - nflog? ( >=net-libs/libnetfilter_log-1.0.0 ) - mysql? ( virtual/mysql ) - pcap? ( net-libs/libpcap ) - postgres? ( dev-db/postgresql:= ) - sqlite? ( dev-db/sqlite:3 )" - -DEPEND="${RDEPEND} - doc? ( - app-text/linuxdoc-tools - app-text/texlive-core - virtual/latex-base - )" - -PATCHES=( "${FILESDIR}/${P}-linux-headers-3.17-ipt_ulog.patch" ) - -DOCS=( AUTHORS README TODO ) -DOC_CONTENTS="You must have at least one logging stack enabled to make ulogd work. -Please edit example configuration located at /etc/ulogd.conf" - -pkg_setup() { - enewgroup ulogd - enewuser ulogd -1 -1 /var/log/ulogd ulogd - - linux-info_pkg_setup - - if kernel_is lt 2 6 14; then - die "ulogd2 requires kernel newer than 2.6.14" - fi - - if kernel_is lt 2 6 18; then - ewarn - ewarn "You are using kernel older than 2.6.18" - ewarn "Some ulogd2 features may be unavailable" - ewarn - fi - - if use nfacct && kernel_is lt 3 3 0; then - ewarn "NFACCT input plugin requires kernel newer than 3.3.0" - fi - - if ! use nfacct && ! use nfct && ! use nflog && kernel_is gt 3 17 0; then - ewarn "ULOG target was removed since 3.17.0 kernel release" - ewarn "Consider enabling NFACCT, NFCT or NFLOG support" - fi -} - -src_prepare() { - # - make all logs to be kept in a single dir /var/log/ulogd - # - place sockets in /run instead of /tmp - sed -i \ - -e 's:var/log:var/log/ulogd:g' \ - -e 's:tmp:run:g' \ - ulogd.conf.in || die 'sed on ulogd.conf.in failed' - - autotools-utils_src_prepare -} - -src_configure() { - local myeconfargs=( - $(use_with dbi) - $(use_with json jansson) - $(use_enable nfacct) - $(use_enable nfct) - $(use_enable nflog) - $(use_with mysql) - $(use_with pcap) - $(use_with postgres pgsql) - $(use_with sqlite) - ) - autotools-utils_src_configure -} - -src_compile() { - autotools-utils_src_compile - - if use doc; then - # prevent access violations from generation of bitmap font files - export VARTEXFONTS="${T}"/fonts - emake -C doc - fi -} - -src_install() { - autotools-utils_src_install - readme.gentoo_create_doc - prune_libtool_files --modules - - if use doc; then - dohtml doc/${PN}.html - dodoc doc/${PN}.dvi doc/${PN}.txt doc/${PN}.ps - fi - - use sqlite && dodoc doc/sqlite3.table - use mysql && dodoc doc/mysql-*.sql - use postgres && dodoc doc/pgsql-*.sql - doman ${PN}.8 - - insinto /etc - doins ${PN}.conf - fowners root:ulogd /etc/ulogd.conf - fperms 640 /etc/ulogd.conf - - newinitd "${FILESDIR}/${PN}.init" ${PN} - systemd_dounit "${FILESDIR}/${PN}.service" - - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - diropts -o ulogd -g ulogd - keepdir /var/log/ulogd -}