aboutsummaryrefslogtreecommitdiff
path: root/net/wireshark/Makefile
blob: f2d67443c073e9e53ae815814e9a12ec27881d5b (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
126
127
128
129
130
131
132
PORTNAME=	wireshark
DISTVERSION=	4.0.4
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:3.6+ 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_ON=-DBUILD_androiddump=ON
ANDROIDDUMP_CMAKE_OFF=-DBUILD_androiddump=OFF

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

.if ${PORT_OPTIONS:MANDROIDDUMP}
PLIST_SUB+=	ANDROIDDUMP=""
.else
PLIST_SUB+=	ANDROIDDUMP="@comment "
.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>