net-analyzer/argus: Add option to build against libtirpc for RPC support, bug 631474
authorAndreas K. Hüttel <dilfridge@gentoo.org>
Mon, 25 Sep 2017 10:38:37 +0000 (12:38 +0200)
committerAndreas K. Hüttel <dilfridge@gentoo.org>
Wed, 1 Nov 2017 22:04:47 +0000 (23:04 +0100)
Closes: https://bugs.gentoo.org/631474
Package-Manager: Portage-2.3.10, Repoman-2.3.3

net-analyzer/argus/argus-3.0.8.2-r1.ebuild [new file with mode: 0644]
net-analyzer/argus/files/argus-3.0.8.2-rpc.patch [new file with mode: 0644]
net-analyzer/argus/metadata.xml

diff --git a/net-analyzer/argus/argus-3.0.8.2-r1.ebuild b/net-analyzer/argus/argus-3.0.8.2-r1.ebuild
new file mode 100644 (file)
index 0000000..4484cf2
--- /dev/null
@@ -0,0 +1,86 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils user
+
+DESCRIPTION="network Audit Record Generation and Utilization System"
+HOMEPAGE="http://www.qosient.com/argus/"
+SRC_URI="${HOMEPAGE}dev/${P/_rc/.rc.}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="debug +libtirpc sasl tcpd"
+
+RDEPEND="
+       net-libs/libpcap
+       sys-libs/zlib
+       !libtirpc? ( sys-libs/glibc[rpc(-)] )
+       libtirpc? ( net-libs/libtirpc )
+       sasl? ( dev-libs/cyrus-sasl )
+       tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+"
+
+DEPEND="
+       ${RDEPEND}
+       >=sys-devel/bison-1.28
+       >=sys-devel/flex-2.4.6
+"
+
+S=${WORKDIR}/${P/_rc/.rc.}
+
+src_prepare() {
+       find . -type f -execdir chmod +w {} \; #561360
+       sed -e 's:/etc/argus.conf:/etc/argus/argus.conf:' \
+               -i argus/argus.c \
+               -i support/Config/argus.conf \
+               -i man/man8/argus.8 \
+               -i man/man5/argus.conf.5 || die
+
+       sed -e 's:#\(ARGUS_SETUSER_ID=\).*:\1argus:' \
+               -e 's:#\(ARGUS_SETGROUP_ID=\).*:\1argus:' \
+               -e 's:\(#ARGUS_CHROOT_DIR=\).*:\1/var/lib/argus:' \
+                       -i support/Config/argus.conf || die
+       epatch \
+               "${FILESDIR}"/${PN}-3.0.8.1-disable-tcp-wrappers-automagic.patch \
+               "${FILESDIR}"/${PN}-3.0.5-Makefile.patch \
+               "${FILESDIR}"/${PN}-3.0.7.3-DLT_IPNET.patch \
+               "${FILESDIR}"/${PN}-3.0.8.2-rpc.patch
+
+       epatch_user
+       eautoreconf
+}
+
+src_configure() {
+       use debug && touch .debug # enable debugging
+       econf $(use_with libtirpc) $(use_with tcpd wrappers) $(use_with sasl)
+}
+
+src_compile() {
+       emake CCOPT="${CFLAGS} ${LDFLAGS}"
+}
+
+src_install () {
+       doman man/man5/*.5 man/man8/*.8
+
+       dosbin bin/argus{,bug}
+
+       dodoc ChangeLog CREDITS README
+
+       insinto /etc/argus
+       doins support/Config/argus.conf
+
+       newinitd "${FILESDIR}/argus.initd" argus
+       keepdir /var/lib/argus
+}
+
+pkg_preinst() {
+       enewgroup argus
+       enewuser argus -1 -1 /var/lib/argus argus
+}
+
+pkg_postinst() {
+       elog "Note, if you modify ARGUS_DAEMON value in argus.conf it's quite"
+       elog "possible that the init script will fail to work."
+}
diff --git a/net-analyzer/argus/files/argus-3.0.8.2-rpc.patch b/net-analyzer/argus/files/argus-3.0.8.2-rpc.patch
new file mode 100644 (file)
index 0000000..462d465
--- /dev/null
@@ -0,0 +1,47 @@
+diff -ruN argus-3.0.8.2.orig/common/Makefile.in argus-3.0.8.2/common/Makefile.in
+--- argus-3.0.8.2.orig/common/Makefile.in      2015-04-14 14:32:33.000000000 -0000
++++ argus-3.0.8.2/common/Makefile.in   2017-09-25 10:27:16.272856331 -0000
+@@ -35,12 +35,12 @@
+ CC = @CC@
+ CCOPT = @V_CCOPT@
+-INCLS = -I$(srcdir) @V_INCLS@ -I$(srcdir)/../include  -I$(srcdir)/../argus
++INCLS = -I$(srcdir) @V_INCLS@ @RPC_CFLAGS@ -I$(srcdir)/../include  -I$(srcdir)/../argus
+ DEFS = @DEFS@
+ # Standard CFLAGS
+ CFLAGS = $(CCOPT) $(INCLS) $(DEFS)
+-LDFLAGS = @LDFLAGS@
++LDFLAGS = @LDFLAGS@ @RPC_LIBS@
+ INSTALL = @INSTALL@
+ RANLIB = @V_RANLIB@
+diff -ruN argus-3.0.8.2.orig/configure.ac argus-3.0.8.2/configure.ac
+--- argus-3.0.8.2.orig/configure.ac    2017-09-25 10:20:04.155174606 -0000
++++ argus-3.0.8.2/configure.ac 2017-09-25 10:24:39.151904377 -0000
+@@ -120,6 +120,25 @@
+ AC_CHECK_FUNCS(floorf remainderf)
+ AC_CHECK_FUNCS(timegm)
++AC_ARG_WITH([libtirpc],
++           AS_HELP_STRING([--with-libtirpc], [Use libtirpc as RPC implementation (instead of sunrpc)]),
++           [], [ with_libtirpc=no ])
++
++AS_IF([test "x$with_libtirpc" != xno], 
++      [PKG_CHECK_MODULES([TIRPC], 
++                         [libtirpc], 
++                         [RPC_CFLAGS=$TIRPC_CFLAGS; RPC_LIBS=$TIRPC_LIBS;],
++                        [AC_MSG_ERROR([libtirpc requested, but library not found.])]
++                       )], 
++      [AC_CHECK_HEADER(rpc/rpc.h, 
++                      [RPC_CFLAGS=""; RPC_LIBS="";],
++                      [AC_MSG_ERROR([sunrpc requested, but headers are not present.])]
++                     )]
++)
++
++AC_SUBST(RPC_CFLAGS)
++AC_SUBST(RPC_LIBS)
++
+ AC_CHECK_FUNCS(xdrmem_create)
+ if test "$ac_cv_func_xdrmem_create" = yes ; then
+    AC_DEFINE([HAVE_XDR], [], [Using system XDR library])
index 90955da4b5923886b6744c665fe7ae63db18dc30..e7da258d5266a3f3ed911bb4d5e1665102ea75c0 100644 (file)
@@ -6,4 +6,7 @@
        <name>Gentoo network monitoring and analysis project</name>
 </maintainer>
 <longdescription>network Audit Record Generation and Utilization System</longdescription>
+<use>
+       <flag name="libtirpc">Build against <pkg>net-libs/libtirpc</pkg> for RPC support</flag>
+</use>
 </pkgmetadata>