commit: 3c2db784f3db102aa799656951d2979aac4471ad Author: Jeroen Roovers <jer <AT> gentoo <DOT> org> AuthorDate: Sat Jan 16 07:47:30 2016 +0000 Commit: Jeroen Roovers <jer <AT> gentoo <DOT> org> CommitDate: Sat Jan 16 07:47:55 2016 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3c2db784
net-analyzer/driftnet: Fix building against media-libs/giflib-5 (bug #572036). Add USE=filecaps. Package-Manager: portage-2.2.26 .../driftnet/driftnet-0.1.6_p20090401-r1.ebuild | 86 ++++++++++++++++++++++ .../driftnet/files/driftnet-0.1.6-giflib-5.patch | 50 +++++++++++++ 2 files changed, 136 insertions(+) diff --git a/net-analyzer/driftnet/driftnet-0.1.6_p20090401-r1.ebuild b/net-analyzer/driftnet/driftnet-0.1.6_p20090401-r1.ebuild new file mode 100644 index 0000000..860dee9 --- /dev/null +++ b/net-analyzer/driftnet/driftnet-0.1.6_p20090401-r1.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit eutils fcaps flag-o-matic toolchain-funcs + +DESCRIPTION="A program which listens to network traffic and picks out images from TCP streams it observes" +HOMEPAGE="http://www.ex-parrot.com/~chris/driftnet/" +SRC_URI="mirror://github/rbu/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +KEYWORDS="~amd64 ~ppc -sparc ~x86" +SLOT="0" +IUSE="gtk mp3 suid" + +CDEPEND=" + net-libs/libpcap + gtk? ( + x11-libs/gtk+:2 + virtual/jpeg:0 + media-libs/giflib:= + media-libs/libpng:= + ) +" + +DEPEND=" + ${CDEPEND} + virtual/pkgconfig +" +RDEPEND=" + ${CDEPEND} + mp3? ( media-sound/mpg123 ) +" + +src_prepare() { + epatch "${FILESDIR}"/${PN}-0.1.6-giflib-5.patch + + sed -i \ + -e 's:png_set_gray_1_2_4_to_8:png_set_expand_gray_1_2_4_to_8:' \ + png.c || die + + # With newer libpng, --cflags causes build failures. + sed -i \ + -e 's:pkg-config --cflags libpng:$(PKG_CONFIG) --libs libpng:' \ + -e 's:_BSD_SOURCE:_DEFAULT_SOURCE:g' \ + Makefile || die +} + +src_compile() { + tc-export CC PKG_CONFIG + + if use gtk; then + emake + mv driftnet driftnet-gtk || die + emake clean + fi + + # build a non-gtk version for all users + sed -i 's:^\(.*gtk.*\)$:#\1:g' Makefile || die "sed disable gtk failed" + append-flags -DNO_DISPLAY_WINDOW + emake +} + +src_install() { + dosbin driftnet + doman driftnet.1 + + use gtk && dosbin driftnet-gtk + + dodoc CHANGES CREDITS README TODO + + if use suid ; then + elog "marking the no-display driftnet as setuid root." + fowners root:wheel "/usr/sbin/driftnet" + fperms 710 "/usr/sbin/driftnet" + fperms u+s "/usr/sbin/driftnet" + fi +} + +pkg_postinst() { + fcaps cap_dac_read_search,cap_net_raw,cap_net_admin \ + "${EROOT}"/usr/sbin/driftnet + use gtk && fcaps cap_dac_read_search,cap_net_raw,cap_net_admin \ + "${EROOT}"/usr/sbin/driftnet-gtk +} diff --git a/net-analyzer/driftnet/files/driftnet-0.1.6-giflib-5.patch b/net-analyzer/driftnet/files/driftnet-0.1.6-giflib-5.patch new file mode 100644 index 0000000..30ad62c --- /dev/null +++ b/net-analyzer/driftnet/files/driftnet-0.1.6-giflib-5.patch @@ -0,0 +1,50 @@ +--- a/gif.c ++++ b/gif.c +@@ -20,7 +20,12 @@ + */ + int gif_load_hdr(img I) { + GifFileType *g; ++#if GIFLIB_MAJOR > 4 ++ int *GifError = NULL; ++ g = I->us = DGifOpenFileHandle(fileno(I->fp), GifError); ++#else + g = I->us = DGifOpenFileHandle(fileno(I->fp)); ++#endif /* GIFLIB_MAJOR */ + if (!I->us) { + I->err = IE_HDRFORMAT; + return 0; +@@ -36,7 +41,12 @@ + * Abort loading a GIF file after the header is done. + */ + int gif_abort_load(img I) { ++#if GIFLIB_MAJOR > 4 ++ int *GifError = NULL; ++ DGifCloseFile((GifFileType*)I->us, GifError); ++#else + DGifCloseFile((GifFileType*)I->us); ++#endif /* GIFLIB_MAJOR */ + return 1; + } + +@@ -44,6 +54,9 @@ + * Load GIF image. + */ + int gif_load_img(img I) { ++#if GIFLIB_MAJOR > 4 ++ int *GifError = NULL; ++#endif /* GIFLIB_MAJOR */ + GifFileType *g = I->us; + struct SavedImage *si; + int ret = 0; +@@ -114,7 +127,11 @@ + ret = 1; + fail: + ++#if GIFLIB_MAJOR > 4 ++ DGifCloseFile(g, GifError); ++#else + DGifCloseFile(g); ++#endif /* GIFLIB_MAJOR */ + + return ret; + }
