aboutsummaryrefslogtreecommitdiff
path: root/net/wireshark/Makefile
blob: bcac38d369f19f66e353ed63f538b893d2059ca3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
PORTNAME=	wireshark
DISTVERSION=	4.0.6
CATEGORIES=	net
MASTER_SITES=	https://1.na.dl.wireshark.org/src/ \
		https://1.eu.dl.wireshark.org/src/ \
		https://1.as.dl.wireshark.org/src/ \
		https://2.na.dl.wireshark.org/src/ \
		http://ftp.uni-kl.de/pub/wireshark/src/ \
		http://ftp.yz.yamagata-u.ac.jp/pub/network/security/wireshark/src/ \
		https://wireshark.marwan.ma/download/src/ \
		https://www.wireshark.org/download/src/

MAINTAINER=	marcus@FreeBSD.org
COMMENT=	Powerful network analyzer/capture tool
WWW=		https://www.wireshark.org/

LICENSE=	GPLv2
LICENSE_FILE=	${WRKSRC}/COPYING

LIB_DEPENDS=	libgpg-error.so:security/libgpg-error \
		libgcrypt.so:security/libgcrypt \
		liblz4.so:archivers/liblz4 \
		libnghttp2.so:www/libnghttp2 \
		libbrotlidec.so:archivers/brotli \
		libsnappy.so:archivers/snappy \
		libcares.so:dns/c-ares \
		libzstd.so:archivers/zstd \
		libspeexdsp.so:audio/speexdsp

FLAVORS=	default nox11
FLAVOR?=	${FLAVORS:[1]}
nox11_PKGNAMESUFFIX=	-nox11

USES=		cmake compiler:c++11-lang cpe gettext-runtime gnome \
		localbase pathfix perl5 pkgconfig python ssl tar:xz
USE_GNOME=	glib20 libxml2
USE_PERL5=	build
USE_LDCONFIG=	yes

CONFLICTS_INSTALL=	wireshark-lite tshark tshark-lite

CMAKE_OFF=	ENABLE_ILBC ENABLE_MINIZIP ENABLE_SBC
CMAKE_ARGS=	-DCMAKE_DISABLE_FIND_PACKAGE_DOXYGEN:BOOL=True \
		-DCMAKE_DISABLE_FIND_PACKAGE_Git:BOOL=True

OPTIONS_DEFINE=		ANDROIDDUMP DOCS GNUTLS GUI LIBSSH LTO LUA \
			MANPAGES MAXMIND RTP SNMP
.if ${FLAVOR} == nox11
COMMENT+=		(without GUI)
OPTIONS_EXCLUDE=	GUI RTP
.endif

OPTIONS_DEFAULT=	ANDROIDDUMP GNUTLS GSSAPI_BASE GUI MANPAGES MAXMIND \
			RTP SNMP
OPTIONS_DEFAULT_aarch64=LTO
OPTIONS_DEFAULT_amd64=	LTO
OPTIONS_SINGLE=		GSSAPI
OPTIONS_SINGLE_GSSAPI=	GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
OPTIONS_SUB=		yes

ANDROIDDUMP_DESC=	Build androiddump extcap tool
GNUTLS_DESC=		Enable crypto support for SSL and IPSec via GnuTLS
GUI_DESC=		Enable Qt 5 based Wireshark GUI
LIBSSH_DESC=		Enable libssh support (req by cisco/ssh/wifidump)
MAXMIND_DESC=		Enable MaxMindDB-based GeoIP geolocation support
RTP_DESC=		Enable codec support for RTP streams (implies GUI)

ANDROIDDUMP_CMAKE_BOOL=	BUILD_androiddump

DOCS_IMPLIES=		MANPAGES

GNUTLS_LIB_DEPENDS=	libgnutls.so:security/gnutls
GNUTLS_CMAKE_BOOL=	ENABLE_GNUTLS

GSSAPI_BASE_USES=	gssapi
GSSAPI_HEIMDAL_USES=	gssapi:heimdal
GSSAPI_MIT_USES=	gssapi:mit
GSSAPI_NONE_CONFIGURE_ENV_OFF=	KRB5_CONFIG=${KRB5CONFIG}
GSSAPI_NONE_CMAKE_BOOL=	ENABLE_KERBEROS

GUI_USES=		desktop-file-utils shared-mime-info qt:5
GUI_USE=		qt=core,concurrent,gui,multimedia,widgets,printsupport,svg,buildtools:build,linguisttools:build,qmake:build
GUI_CONFIGURE_ENV=	PATH="${PATH}:${QT_BINDIR}"
GUI_MAKE_ENV=		PATH="${PATH}:${QT_BINDIR}"
GUI_CMAKE_BOOL=		BUILD_wireshark

LIBSSH_LIB_DEPENDS=	libssh.so:security/libssh
LIBSSH_CMAKE_BOOL=	BUILD_ciscodump BUILD_sshdump BUILD_wifidump

LTO_CMAKE_BOOL=		ENABLE_LTO

LUA_USES=		lua:51-52
LUA_CPPFLAGS=		-I${LUA_INCDIR}
LUA_CMAKE_BOOL=		ENABLE_LUA

MANPAGES_BUILD_DEPENDS=	asciidoctor:textproc/rubygem-asciidoctor
MANPAGES_CMAKE_OFF=	-DCMAKE_DISABLE_FIND_PACKAGE_Asciidoctor:BOOL=True

MAXMIND_LIB_DEPENDS=	libmaxminddb.so:net/libmaxminddb
MAXMIND_CMAKE_BOOL=	BUILD_mmdbresolve

RTP_LIB_DEPENDS=	libbcg729.so:audio/bcg729 \
			libopus.so:audio/opus \
			libspandsp.so:comms/spandsp
RTP_CMAKE_BOOL=		ENABLE_BCG729 ENABLE_OPUS ENABLE_SPANDSP
RTP_IMPLIES=		GUI

SNMP_LIB_DEPENDS=	libsmi.so:net-mgmt/libsmi
SNMP_CMAKE_BOOL=	ENABLE_SMI

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MGSSAPI_BASE} && exists(${LOCALBASE}/include/krb5.h)
IGNORE=			cannot build with base Kerberos if krb5 port is installed. \
			Use ``make config'' to choose a different option
.endif

post-patch:
	@${REINPLACE_CMD} -e 's|/usr/share/applications|${DESKTOPDIR}|g ; \
		s|/usr/share|${LOCALBASE}/share|g' \
		${WRKSRC}/CMakeLists.txt
	@${REINPLACE_CMD} -e 's|lua$${LUA_INC_SUFFIX}|lua-${LUA_VER}|g' \
	    	${WRKSRC}/cmake/modules/FindLUA.cmake

.include <bsd.port.mk>