# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 inherit cmake-utils ltprune eutils fcaps flag-o-matic gnome2-utils multilib qmake-utils user xdg-utils DESCRIPTION="A network protocol analyzer formerly known as ethereal" HOMEPAGE="https://www.wireshark.org/" SRC_URI="${HOMEPAGE}download/src/all-versions/${P/_/}.tar.xz" LICENSE="GPL-2" SLOT="0/${PV}" KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc64 ~x86" IUSE=" adns androiddump bcg729 +capinfos +caps +captype ciscodump cpu_flags_x86_sse4_2 +dftest doc +dumpcap +editcap gtk kerberos libssh libxml2 lua lz4 maxminddb +mergecap +netlink nghttp2 +pcap portaudio +qt5 +randpkt +randpktdump +reordercap sbc selinux +sharkd smi snappy spandsp sshdump ssl +text2pcap tfshark +tshark +udpdump zlib " REQUIRED_USE=" ciscodump? ( libssh ) sshdump? ( libssh ) " S=${WORKDIR}/${P/_/} CDEPEND=" >=dev-libs/glib-2.14:2 dev-libs/libgcrypt:0 netlink? ( dev-libs/libnl:3 ) adns? ( >=net-dns/c-ares-1.5 ) bcg729? ( media-libs/bcg729 ) caps? ( sys-libs/libcap ) gtk? ( x11-libs/gdk-pixbuf x11-libs/gtk+:3 x11-libs/pango x11-misc/xdg-utils ) kerberos? ( virtual/krb5 ) libssh? ( >=net-libs/libssh-0.6 ) libxml2? ( dev-libs/libxml2 ) lua? ( >=dev-lang/lua-5.1:* ) lz4? ( app-arch/lz4 ) maxminddb? ( dev-libs/libmaxminddb ) nghttp2? ( net-libs/nghttp2 ) pcap? ( net-libs/libpcap ) portaudio? ( media-libs/portaudio ) qt5? ( dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtmultimedia:5 dev-qt/qtprintsupport:5 dev-qt/qtwidgets:5 || ( media-libs/speexdsp ="$(usex androiddump) # $(cmake-utils_use_enable androiddump) \ # $(cmake-utils_use_enable capinfos) \ # $(cmake-utils_use_enable captype) \ # $(cmake-utils_use_enable ciscodump) \ # $(cmake-utils_use_enable dftest) \ # $(cmake-utils_use_enable doc guides) \ # $(cmake-utils_use_enable dumpcap) \ # $(cmake-utils_use_enable editcap) \ # $(cmake-utils_use_enable mergecap) \ # $(cmake-utils_use_enable randpkt) \ # $(cmake-utils_use_enable randpktdump) \ # $(cmake-utils_use_enable reordercap) \ # $(cmake-utils_use_enable sharkd) \ # $(cmake-utils_use_enable sshdump) \ # $(cmake-utils_use_enable text2pcap) \ # $(cmake-utils_use_enable tfshark) \ # $(cmake-utils_use_enable tshark) \ # $(cmake-utils_use_enable udpdump) \ # * cmake-utils_use_with is banned in EAPI 6 and later: use -DWITH_="$(usex adns)" instead # $(cmake-utils_use_with adns c-ares) \ # $(cmake-utils_use_with bcg729) \ # $(cmake-utils_use_with caps libcap) \ # $(cmake-utils_use_with gtk gtk 3) \ # $(cmake-utils_use_with kerberos krb5) \ # $(cmake-utils_use_with libssh) \ # $(cmake-utils_use_with libxml2) \ # $(cmake-utils_use_with lua) \ # $(cmake-utils_use_with lz4) \ # $(cmake-utils_use_with maxminddb) \ # $(cmake-utils_use_with nghttp2) \ # $(cmake-utils_use_with pcap) \ # $(cmake-utils_use_with portaudio) \ # $(cmake-utils_use_with sbc) \ # $(cmake-utils_use_with smi libsmi) \ # $(cmake-utils_use_with snappy) \ # $(cmake-utils_use_with spandsp) \ # $(cmake-utils_use_with ssl gnutls) \ # $(cmake-utils_use_with zlib) \ mycmakeargs+=( $(use androiddump && use pcap && echo --enable-androiddump-use-libpcap=yes) \ $(use dumpcap && use_with pcap dumpcap-group wireshark) \ $(usex cpu_flags_x86_sse4_2 --enable-sse4_2 '') \ $(usex netlink --with-libnl=3 --without-libnl) \ $(usex qt5 --with-qt=5 '') \ $(usex qt5 LRELEASE=$(qt5_get_bindir)/lrelease '') \ $(usex qt5 MOC=$(qt5_get_bindir)/moc '') \ $(usex qt5 RCC=$(qt5_get_bindir)/rcc '') \ $(usex qt5 UIC=$(qt5_get_bindir)/uic '') \ --disable-warnings-as-errors \ --sysconfdir="${EPREFIX}"/etc/wireshark ) cmake-utils_src_configure } src_install() { cmake-utils_src_install # FAQ is not required as is installed from help/faq.txt dodoc AUTHORS ChangeLog NEWS README* doc/randpkt.txt doc/README* # install headers local wsheader for wsheader in \ config.h \ epan/*.h \ epan/crypt/*.h \ epan/dfilter/*.h \ epan/dissectors/*.h \ epan/ftypes/*.h \ epan/wmem/*.h \ wiretap/*.h \ ws_diag_control.h \ ws_symbol_export.h \ wsutil/*.h do insinto /usr/include/wireshark/$( dirname ${wsheader} ) #FIXME # doins ${wsheader} done #with the above this really shouldn't be needed, but things may be looking in wiretap/ instead of wireshark/wiretap/ insinto /usr/include/wiretap doins wiretap/wtap.h if use gtk || use qt5; then local s for s in 16 32 48 64 128 256 512 1024; do insinto /usr/share/icons/hicolor/${s}x${s}/apps newins image/wsicon${s}.png wireshark.png done for s in 16 24 32 48 64 128 256 ; do insinto /usr/share/icons/hicolor/${s}x${s}/mimetypes newins image/WiresharkDoc-${s}.png application-vnd.tcpdump.pcap.png done fi prune_libtool_files } pkg_postinst() { gnome2_icon_cache_update xdg_desktop_database_update xdg_mimeinfo_database_update # Add group for users allowed to sniff. enewgroup wireshark if use dumpcap && use pcap; then fcaps -o 0 -g wireshark -m 4710 -M 0710 \ cap_dac_read_search,cap_net_raw,cap_net_admin \ "${EROOT}"/usr/bin/dumpcap fi ewarn "NOTE: To capture traffic with wireshark as normal user you have to" ewarn "add yourself to the wireshark group. This security measure ensures" ewarn "that only trusted users are allowed to sniff your traffic." } pkg_postrm() { gnome2_icon_cache_update xdg_desktop_database_update xdg_mimeinfo_database_update }