net-analyzer/dsniff: Get rid of libtirpc automagic and depend on it instead
authorAndreas K. Hüttel <dilfridge@gentoo.org>
Fri, 2 Mar 2018 17:04:28 +0000 (18:04 +0100)
committerAndreas K. Hüttel <dilfridge@gentoo.org>
Fri, 2 Mar 2018 17:31:28 +0000 (18:31 +0100)
Closes: https://bugs.gentoo.org/370645
Package-Manager: Portage-2.3.24, Repoman-2.3.6

net-analyzer/dsniff/dsniff-2.4_beta1-r10.ebuild [new file with mode: 0644]
net-analyzer/dsniff/files/2.4_beta1-rpc.patch [new file with mode: 0644]

diff --git a/net-analyzer/dsniff/dsniff-2.4_beta1-r10.ebuild b/net-analyzer/dsniff/dsniff-2.4_beta1-r10.ebuild
new file mode 100644 (file)
index 0000000..6cf8570
--- /dev/null
@@ -0,0 +1,83 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools toolchain-funcs
+
+DESCRIPTION="A collection of tools for network auditing and penetration testing"
+HOMEPAGE="http://monkey.org/~dugsong/dsniff/"
+SRC_URI="
+       http://monkey.org/~dugsong/${PN}/beta/${P/_beta/b}.tar.gz
+       mirror://debian/pool/main/d/${PN}/${PN}_2.4b1+debian-22.1.debian.tar.gz
+"
+LICENSE="BSD"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="libressl X"
+
+DEPEND="net-libs/libpcap
+       >=net-libs/libnet-1.1.2.1-r1
+       >=net-libs/libnids-1.21
+       net-libs/libnsl:0=
+       net-libs/libtirpc
+       net-libs/rpcsvc-proto
+       !libressl? ( dev-libs/openssl:0= )
+       libressl? ( dev-libs/libressl:0= )
+       >=sys-libs/db-4:*
+       X? ( x11-libs/libXmu )"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${P/_beta1/}"
+
+src_prepare() {
+       # replace Debian patch 23 with a simpler one (bug #506076)
+       mv -v \
+               "${WORKDIR}"/debian/patches/23_urlsnarf_timestamp.patch{,.old} || die
+       cp -v \
+               "${FILESDIR}"/${PV}-urlsnarf-pcap_timestamps.patch \
+               "${WORKDIR}"/debian/patches/23_urlsnarf_timestamp.patch || die
+
+       # Debian patchset, needs to be applied in the exact order that "series"
+       # lists or patching will fail.
+       # Bug #479882
+       eapply $(
+               for file in $(< "${WORKDIR}"/debian/patches/series ); do
+                       printf "%s/debian/patches/%s " "${WORKDIR}" "${file}"
+               done
+       )
+
+       # Bug 125084
+       eapply "${FILESDIR}"/${PV}-httppostfix.patch
+
+       # various Makefile.in patches
+       eapply "${FILESDIR}"/${PV}-make.patch
+
+       # bug #538462
+       eapply "${FILESDIR}"/${PV}-macof-size-calculation.patch
+
+       # libtirpc support
+       eapply "${FILESDIR}"/${PV}-rpc.patch
+
+       default
+       eautoreconf
+}
+
+src_configure() {
+       econf \
+               --with-libtirpc \
+               $(use_with X x) \
+               || die "econf failed"
+}
+
+src_compile() {
+       emake CC="$(tc-getCC)"
+}
+
+src_install() {
+       emake install install_prefix="${D}"
+       dodir /etc/dsniff
+       cp "${D}"/usr/share/dsniff/{dnsspoof.hosts,dsniff.{magic,services}} \
+               "${D}"/etc/dsniff/ || die
+       dodoc CHANGES README TODO
+}
diff --git a/net-analyzer/dsniff/files/2.4_beta1-rpc.patch b/net-analyzer/dsniff/files/2.4_beta1-rpc.patch
new file mode 100644 (file)
index 0000000..b43c91d
--- /dev/null
@@ -0,0 +1,39 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -37,8 +37,8 @@
+ X11INC        = @X_CFLAGS@
+ X11LIB        = @X_LIBS@ @X_PRE_LIBS@ -lXmu -lX11 @X_EXTRA_LIBS@
+-INCS  = -I. $(X11INC) -I$(srcdir)/missing 
+-LIBS  = @LIBS@ -L$(srcdir) -lmissing
++INCS  = -I. $(X11INC) -I$(srcdir)/missing @RPC_CFLAGS@
++LIBS  = @LIBS@ -L$(srcdir) -lmissing @RPC_LIBS@
+ INSTALL       = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+--- a/configure.in
++++ b/configure.in
+@@ -337,4 +337,23 @@
+ AC_SUBST(SSLINC)
+ AC_SUBST(SSLLIB)
++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_OUTPUT(Makefile)