From 17ce5fd91283cb0cc05376083e5f6b2db78805b1 Mon Sep 17 00:00:00 2001 From: healther Date: Sun, 6 May 2018 16:32:06 +0200 Subject: [PATCH] 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 --- .../repos/builtin/packages/krb5/package.py | 46 +++++++ .../builtin/packages/libmaxminddb/package.py | 40 ++++++ .../builtin/packages/wireshark/package.py | 124 ++++++++++++++++++ 3 files changed, 210 insertions(+) create mode 100644 var/spack/repos/builtin/packages/krb5/package.py create mode 100644 var/spack/repos/builtin/packages/libmaxminddb/package.py create mode 100644 var/spack/repos/builtin/packages/wireshark/package.py diff --git a/var/spack/repos/builtin/packages/krb5/package.py b/var/spack/repos/builtin/packages/krb5/package.py new file mode 100644 index 0000000000..3930adf7d8 --- /dev/null +++ b/var/spack/repos/builtin/packages/krb5/package.py @@ -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 diff --git a/var/spack/repos/builtin/packages/libmaxminddb/package.py b/var/spack/repos/builtin/packages/libmaxminddb/package.py new file mode 100644 index 0000000000..9006bb8f8c --- /dev/null +++ b/var/spack/repos/builtin/packages/libmaxminddb/package.py @@ -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 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..3324c26921 --- /dev/null +++ b/var/spack/repos/builtin/packages/wireshark/package.py @@ -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))