Merge branch 'staged'
[dports.git] / net / wireshark / Makefile
1 PORTNAME=       wireshark
2 DISTVERSION=    4.0.8
3 CATEGORIES=     net
4 MASTER_SITES=   https://1.na.dl.wireshark.org/src/ \
5                 https://1.eu.dl.wireshark.org/src/ \
6                 https://1.as.dl.wireshark.org/src/ \
7                 https://2.na.dl.wireshark.org/src/ \
8                 http://ftp.uni-kl.de/pub/wireshark/src/ \
9                 http://ftp.yz.yamagata-u.ac.jp/pub/network/security/wireshark/src/ \
10                 https://wireshark.marwan.ma/download/src/ \
11                 https://www.wireshark.org/download/src/
12
13 MAINTAINER=     marcus@FreeBSD.org
14 COMMENT=        Powerful network analyzer/capture tool
15 WWW=            https://www.wireshark.org/
16
17 LICENSE=        GPLv2
18 LICENSE_FILE=   ${WRKSRC}/COPYING
19
20 LIB_DEPENDS=    libgpg-error.so:security/libgpg-error \
21                 libgcrypt.so:security/libgcrypt \
22                 liblz4.so:archivers/liblz4 \
23                 libnghttp2.so:www/libnghttp2 \
24                 libbrotlidec.so:archivers/brotli \
25                 libsnappy.so:archivers/snappy \
26                 libcares.so:dns/c-ares \
27                 libzstd.so:archivers/zstd \
28                 libspeexdsp.so:audio/speexdsp
29
30 FLAVORS=        default nox11
31 FLAVOR?=        ${FLAVORS:[1]}
32 nox11_PKGNAMESUFFIX=    -nox11
33
34 USES=           cmake compiler:c++11-lang cpe gettext-runtime gnome \
35                 localbase pathfix perl5 pkgconfig python ssl tar:xz
36 USE_GNOME=      glib20 libxml2
37 USE_PERL5=      build
38 USE_LDCONFIG=   yes
39
40 CONFLICTS_INSTALL=      wireshark-lite tshark tshark-lite
41
42 CMAKE_OFF=      ENABLE_ILBC ENABLE_MINIZIP ENABLE_SBC
43 CMAKE_ARGS=     -DCMAKE_DISABLE_FIND_PACKAGE_DOXYGEN:BOOL=True \
44                 -DCMAKE_DISABLE_FIND_PACKAGE_Git:BOOL=True
45
46 OPTIONS_DEFINE=         ANDROIDDUMP DOCS GNUTLS GUI LIBSSH LTO LUA \
47                         MANPAGES MAXMIND RTP SNMP
48 .if ${FLAVOR} == nox11
49 COMMENT+=               (without GUI)
50 OPTIONS_EXCLUDE=        GUI RTP
51 .endif
52
53 OPTIONS_DEFAULT=        ANDROIDDUMP GNUTLS GSSAPI_BASE GUI MANPAGES MAXMIND \
54                         RTP SNMP
55 OPTIONS_DEFAULT_aarch64=LTO
56 OPTIONS_DEFAULT_x86_64= LTO
57 OPTIONS_SINGLE=         GSSAPI
58 OPTIONS_SINGLE_GSSAPI=  GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
59 OPTIONS_SUB=            yes
60
61 ANDROIDDUMP_DESC=       Build androiddump extcap tool
62 GNUTLS_DESC=            Enable crypto support for SSL and IPSec via GnuTLS
63 GUI_DESC=               Enable Qt 5 based Wireshark GUI
64 LIBSSH_DESC=            Enable libssh support (req by cisco/ssh/wifidump)
65 MAXMIND_DESC=           Enable MaxMindDB-based GeoIP geolocation support
66 RTP_DESC=               Enable codec support for RTP streams (implies GUI)
67
68 ANDROIDDUMP_CMAKE_BOOL= BUILD_androiddump
69
70 DOCS_IMPLIES=           MANPAGES
71
72 GNUTLS_LIB_DEPENDS=     libgnutls.so:security/gnutls
73 GNUTLS_CMAKE_BOOL=      ENABLE_GNUTLS
74
75 GSSAPI_BASE_USES=       gssapi
76 GSSAPI_HEIMDAL_USES=    gssapi:heimdal
77 GSSAPI_MIT_USES=        gssapi:mit
78 GSSAPI_NONE_CONFIGURE_ENV_OFF=  KRB5_CONFIG=${KRB5CONFIG}
79 GSSAPI_NONE_CMAKE_BOOL= ENABLE_KERBEROS
80
81 GUI_USES=               desktop-file-utils shared-mime-info qt:5
82 GUI_USE=                qt=core,concurrent,gui,multimedia,widgets,printsupport,svg,buildtools:build,linguisttools:build,qmake:build
83 GUI_CONFIGURE_ENV=      PATH="${PATH}:${QT_BINDIR}"
84 GUI_MAKE_ENV=           PATH="${PATH}:${QT_BINDIR}"
85 GUI_CMAKE_BOOL=         BUILD_wireshark
86
87 LIBSSH_LIB_DEPENDS=     libssh.so:security/libssh
88 LIBSSH_CMAKE_BOOL=      BUILD_ciscodump BUILD_sshdump BUILD_wifidump
89
90 LTO_CMAKE_BOOL=         ENABLE_LTO
91
92 LUA_USES=               lua:51-52
93 LUA_CPPFLAGS=           -I${LUA_INCDIR}
94 LUA_CMAKE_BOOL=         ENABLE_LUA
95
96 MANPAGES_BUILD_DEPENDS= asciidoctor:textproc/rubygem-asciidoctor
97 MANPAGES_CMAKE_OFF=     -DCMAKE_DISABLE_FIND_PACKAGE_Asciidoctor:BOOL=True
98
99 MAXMIND_LIB_DEPENDS=    libmaxminddb.so:net/libmaxminddb
100 MAXMIND_CMAKE_BOOL=     BUILD_mmdbresolve
101
102 RTP_LIB_DEPENDS=        libbcg729.so:audio/bcg729 \
103                         libopus.so:audio/opus \
104                         libspandsp.so:comms/spandsp
105 RTP_CMAKE_BOOL=         ENABLE_BCG729 ENABLE_OPUS ENABLE_SPANDSP
106 RTP_IMPLIES=            GUI
107
108 SNMP_LIB_DEPENDS=       libsmi.so:net-mgmt/libsmi
109 SNMP_CMAKE_BOOL=        ENABLE_SMI
110
111 .include <bsd.port.options.mk>
112
113 .if ${PORT_OPTIONS:MGSSAPI_BASE} && exists(${LOCALBASE}/include/krb5.h)
114 IGNORE=                 cannot build with base Kerberos if krb5 port is installed. \
115                         Use ``make config'' to choose a different option
116 .endif
117
118 post-patch:
119         @${REINPLACE_CMD} -e 's|/usr/share/applications|${DESKTOPDIR}|g ; \
120                 s|/usr/share|${LOCALBASE}/share|g' \
121                 ${WRKSRC}/CMakeLists.txt
122         @${REINPLACE_CMD} -e 's|lua$${LUA_INC_SUFFIX}|lua-${LUA_VER}|g' \
123                 ${WRKSRC}/cmake/modules/FindLUA.cmake
124
125 .include <bsd.port.mk>