Add package wireshark and dependencies (#8024)

* add wireshark

Change-Id: I1ef674ff286db2e06baaf9fca65982d1145cfa79

* fix qt4 build

Change-Id: Ieb9989b9fec1a0e02388197f971ee66b591d45c5

* remove commented lines

Change-Id: Ia67bfaf1beba06dd710cee56aec06bc36b293d34

* flake8 fix

Change-Id: Ica1b2cce2be2faca82a4177c3cdc3a0bb005c031

* remove clutter

Change-Id: I6061fe56a88f8c7b7e03fdce5e3eae04036ad2d8

* fix dependencies

Change-Id: I8160c70c9333c9f5e82ed5fc73633455df568972

* use dot syntax instead of join_path

Change-Id: Id1f737299b603fa4093b58571d46a64b0dd84895
This commit is contained in:
healther 2018-05-06 16:32:06 +02:00 committed by Adam J. Stewart
parent b83be5f2d4
commit 17ce5fd912
3 changed files with 210 additions and 0 deletions

View file

@ -0,0 +1,46 @@
##############################################################################
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/spack/spack
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Krb5(AutotoolsPackage):
"""Network authentication protocol"""
homepage = "https://kerberos.org"
url = "https://kerberos.org/dist/krb5/1.16/krb5-1.16.1.tar.gz"
version('1.16.1', '848e9b80d6aaaa798e3f3df24b83c407')
depends_on('openssl')
configure_directory = 'src'
build_directory = 'src'
def configure_args(self):
args = ['--disable-debug',
'--disable-dependency-tracking',
'--disable-silent-rules',
'--without-system-verto']
return args

View file

@ -0,0 +1,40 @@
##############################################################################
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/spack/spack
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Libmaxminddb(AutotoolsPackage):
"""C library for the MaxMind DB file format"""
homepage = "https://github.com/maxmind/libmaxminddb"
url = "https://github.com/maxmind/libmaxminddb/releases/download/1.3.2/libmaxminddb-1.3.2.tar.gz"
version('1.3.2', '67a861965b30d045bf29a2126bcc05ed')
def configure_args(self):
args = ['--disable-debug',
'--disable-dependency-tracking',
'--disable-silent-rules']
return args

View file

@ -0,0 +1,124 @@
##############################################################################
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/spack/spack
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
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('cares')
depends_on('doxygen', type='build')
depends_on('flex', type='build')
depends_on('glib')
depends_on('gnutls')
depends_on('libgcrypt@1.4.2:')
depends_on('libmaxminddb')
depends_on('lua')
depends_on('krb5')
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']
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))