summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/wireshark/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/wireshark/package.py')
-rw-r--r--var/spack/repos/builtin/packages/wireshark/package.py117
1 files changed, 117 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/wireshark/package.py b/var/spack/repos/builtin/packages/wireshark/package.py
new file mode 100644
index 0000000000..73640dc246
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wireshark/package.py
@@ -0,0 +1,117 @@
+# Copyright 2013-2018 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import glob
+
+
+class Wireshark(CMakePackage):
+ """Graphical network analyzer and capture tool"""
+
+ homepage = "https://www.wireshark.org"
+ url = "https://www.wireshark.org/download/src/all-versions/wireshark-2.6.0.tar.xz"
+
+ version('2.6.0', 'd9f9e206977da14427bfd66b582601ae')
+
+ variant('smi', default=False, description='Build with libsmi')
+ variant('libssh', default=False, description='Build with libssh')
+ variant('nghttp2', default=False, description='Build with nghttp2')
+ variant('qt', default=False, description='Build with qt')
+ variant('gtk3', default=False, description='Build with gtk3')
+ variant('gtk', default=False, description='Build with gtk')
+ variant('headers', default=True, description='Install headers')
+
+ depends_on('bison', type='build')
+ depends_on('cares')
+ depends_on('doxygen', type='build')
+ depends_on('flex', type='build')
+ depends_on('git', type='build')
+ depends_on('glib')
+ depends_on('gnutls')
+ depends_on('libgcrypt@1.4.2:')
+ depends_on('libmaxminddb')
+ depends_on('libtool@2.2.2:', type='build')
+ depends_on('libpcap')
+ depends_on('lua@5.0.0:5.2.99')
+ depends_on('krb5')
+ depends_on('pkgconfig', type='build')
+ depends_on('libsmi', when='+smi')
+ depends_on('libssh', when='+libssh')
+ depends_on('nghttp2', when='+nghttp2')
+ depends_on('portaudio', when='+gtk')
+ depends_on('portaudio', when='+gtk3')
+ depends_on('qt@4.8:', when='+qt')
+ depends_on('gtkplus3', when='+gtk3')
+ depends_on('gtkplus', when='+gtk')
+ depends_on('adwaita-icon-theme', when='+gtk3')
+
+ def cmake_args(self):
+ args = ['-DENEABLE_CARES=ON',
+ '-DENABLE_GNUTLS=ON',
+ '-DENABLE_LUA=ON',
+ '-DENABLE_MAXMINDDB=ON',
+ '-DYACC_EXECUTABLE=' + self.spec['bison'].prefix.bin.yacc,
+ '-DGIT_EXECUTABLE=' + self.spec['git'].prefix.bin.git,
+ '-DPCAP_INCLUDE_DIR=' + self.spec['libpcap'].prefix.include,
+ '-DPCAP_LIB=' + str(self.spec['libpcap'].libs),
+ '-DLUA_INCLUDE_DIR=' + self.spec['lua'].prefix.include,
+ '-DLUA_LIBRARY=' + str(self.spec['lua'].libs)
+ ]
+ if self.spec.satisfies('+qt'):
+ args.append('-DBUILD_wireshark=ON')
+ args.append('-DENABLE_APPLICATION_BUNDLE=ON')
+ if self.spec['qt'].version >= Version(5):
+ args.append('-DENABLE_QT5=ON')
+ else:
+ args.append('-DENABLE_QT5=OFF')
+ else:
+ args.append('-DBUILD_wireshark=OFF')
+ args.append('-DENABLE_APPLICATION_BUNDLE=OFF')
+ args.append('-DENABLE_QT5=OFF')
+
+ if self.spec.satisfies('+gtk3') or self.spec.satisfies('+gtk'):
+ args.append('-DBUILD_wireshark_gtk=ON')
+ args.append('-DENABLE_PORTAUDIO=ON')
+ else:
+ args.append('-DBUILD_wireshark_gtk=OFF')
+ args.append('-DENABLE_PORTAUDIO=OFF')
+ if self.spec.satisfies('+gtk3'):
+ args.append('-DENABLE_GTK3=ON')
+
+ if self.spec.satisfies('+libssh'):
+ args.append('-DBUILD_sshdump=ON')
+ args.append('-DBUILD_ciscodump=ON')
+ else:
+ args.append('-DBUILD_sshdump=OFF')
+ args.append('-DBUILD_ciscodump=OFF')
+
+ if self.spec.satisfies('+smi'):
+ args.append('-DBUILD_SMI=ON')
+ else:
+ args.append('-DBUILD_SMI=OFF')
+
+ if self.spec.satisfies('+nghttp2'):
+ args.append('-DBUILD_NGHTTP2=ON')
+ else:
+ args.append('-DBUILD_NGHTTP2=OFF')
+
+ return args
+
+ @run_after('install')
+ def symlink(self):
+ if self.spec.satisfies('platform=darwin'):
+ link(join_path(self.prefix,
+ 'Wireshark.app/Contents/MacOS/Wireshark'),
+ self.prefix.bin.wireshark)
+
+ @run_after('install')
+ def install_headers(self):
+ if self.spec.satisfies('+headers'):
+ folders = ['.', 'epan/crypt', 'epan/dfilter', 'epan/dissectors',
+ 'epan/ftypes', 'epan/wmem', 'wiretap', 'wsutil']
+ for folder in folders:
+ headers = glob.glob(join_path(folder, '*.h'))
+ for h in headers:
+ install(h, join_path(prefix.include, 'wireshark', folder))