From 047023d44371c0abcfeea3cee7779363d4e12974 Mon Sep 17 00:00:00 2001 From: Dario Lombardo Date: Sun, 4 Dec 2016 23:30:46 +0100 Subject: tools: add rpm-setup.sh. This script mimics tools/debian-setup.sh for RPM based systems. It installs all the required and optional packages to compile Wireshark. Tested on Centos 7, Fedora 25, openSUSE Leap 42.1. Change-Id: Ifc55f45608e5f5a74188d4fb5612bedb6437fcb1 Reviewed-on: https://code.wireshark.org/review/19088 Reviewed-by: Peter Wu Reviewed-by: Dario Lombardo --- tools/Makefile.am | 1 + tools/install_rpms_for_devel.sh | 2 + tools/rpm_setup.sh | 144 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100755 tools/rpm_setup.sh (limited to 'tools') diff --git a/tools/Makefile.am b/tools/Makefile.am index d40ba8a7d2..decfc97d30 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -82,6 +82,7 @@ EXTRA_DIST = \ process-x11-xcb.pl \ randpkt-test.sh \ rdps.py \ + rpm_setup.sh \ runa2x.sh \ runlex.sh \ setuid-root.pl.in \ diff --git a/tools/install_rpms_for_devel.sh b/tools/install_rpms_for_devel.sh index 4e538803d7..caa3527a44 100755 --- a/tools/install_rpms_for_devel.sh +++ b/tools/install_rpms_for_devel.sh @@ -97,3 +97,5 @@ echo echo "To install optional packages:" echo echo $INSTALL_CMD install $PKGS_OPT +echo +echo "This tool has been obsoleted by tools/rpm-setup.sh" diff --git a/tools/rpm_setup.sh b/tools/rpm_setup.sh new file mode 100755 index 0000000000..4e492fd9c7 --- /dev/null +++ b/tools/rpm_setup.sh @@ -0,0 +1,144 @@ +#!/bin/bash +# Setup development environment for RPM based systems such as Red Hat, Centos, Fedora, openSUSE +# +# Wireshark - Network traffic analyzer +# By Gerald Combs +# Copyright 1998 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# 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 +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# We drag in tools that might not be needed by all users; it's easier +# that way. +# + +for op +do + if [ "$op" = "--install-optional" ] + then + ADDITIONAL=1 + else + OPTIONS="$OPTIONS $op" + fi +done + +BASIC_LIST="autoconf automake libtool gcc flex bison python perl lua-devel lua \ +desktop-file-utils fop asciidoc git git-review gtk2-devel gtk3-devel glib2-devel \ +libpcap-devel zlib-devel" + +ADDITIONAL_LIST="libnl3-devel libnghttp2-devel libcap libcap-devel lynx \ +libgcrypt-devel libssh-devel krb5-devel perl-Parse-Yapp sbc-devel libsmi-devel \ +snappy-devel lz4" + +# Guess which package manager we will use +PM=`which zypper 2> /dev/null || +which dnf 2> /dev/null || +which yum 2> /dev/null` + +if [ -z $PM ] +then + echo "No package managers found, exiting" + exit 1 +fi + +case $PM in + */zypper) + PM_SEARCH="search -x --provides" + ;; + */dnf) + PM_SEARCH="info" + ;; + */yum) + PM_SEARCH="info" + ;; +esac + +echo "Using $PM ($PM_SEARCH)" + +# Adds package $2 to list variable $1 if the package is found +add_package() { + local list="$1" pkgname="$2" + + # fail if the package is not known + $PM $PM_SEARCH "$pkgname" &> /dev/null || return 1 + + # package is found, append it to list + eval "${list}=\"\${${list}} \${pkgname}\"" +} + +add_package BASIC_LIST glib2 || add_package BASIC_LIST libglib-2_0-0 || +echo "glib2 is unavailable" >&2 + +add_package BASIC_LIST libpcap || add_package BASIC_LIST libpcap1 || +echo "libpcap is unavailable" >&2 + +add_package BASIC_LIST zlib || add_package BASIC_LIST libz1 || +echo "zlib is unavailable" >&2 + +add_package BASIC_LIST c-ares-devel || add_package BASIC_LIST libcares-devel || +echo "libcares-devel is unavailable" >&2 + +add_package BASIC_LIST qt-devel || +echo "Qt5 devel is unavailable" >&2 + +add_package BASIC_LIST qt5-qtbase-devel || +echo "Qt5 base devel is unavailable" >&2 + +add_package BASIC_LIST qt5-linguist || add_package BASIC_LIST libqt5-linguist-devel || +echo "Qt5 linguist is unavailable" >&2 + +add_package BASIC_LIST qt5-qtsvg-devel || add_package BASIC_LIST libqt5-qtsvg-devel || +echo "Qt5 svg is unavailable" >&2 + +add_package BASIC_LIST qt5-qtmultimedia-devel || add_package BASIC_LIST libqt5-qtmultimedia-devel || +echo "Qt5 multimedia is unavailable" >&2 + +add_package BASIC_LIST libQt5PrintSupport-devel || +echo "Qt5 print support is unavailable" >&2 + +add_package BASIC_LIST perl-podlators || +echo "perl-podlators unavailable" >&2 + +add_package ADDITIONAL_LIST nghttp2 || add_package ADDITIONAL_LIST libnghttp2 || +echo "nghttp2 is unavailable" >&2 + +add_package ADDITIONAL_LIST snappy || add_package ADDITIONAL_LIST libsnappy1 || +echo "snappy is unavailable" >&2 + +add_package ADDITIONAL_LIST lz4-devel || add_package ADDITIONAL_LIST liblz4-devel || +echo "lz4 devel is unavailable" >&2 + +add_package ADDITIONAL_LIST libcap-progs || echo "cap progs are unavailable" >&2 + +add_package ADDITIONAL_LIST GeoIP-devel || add_package ADDITIONAL_LIST libGeoIP-devel || +echo "GeoIP devel is unavailable" >&2 + +add_package ADDITIONAL_LIST gnutls-devel || add_package ADDITIONAL_LIST libgnutls-devel || +echo "gnutls devel is unavailable" >&2 + +add_package ADDITIONAL_LIST gettext-devel || add_package ADDITIONAL_LIST gettext-tools || +echo "Gettext devel is unavailable" >&2 + +add_package ADDITIONAL_LIST perl-Pod-Html || +echo "perl-Pod-Html is unavailable" >&2 + +$PM install $BASIC_LIST + +# Now arrange for optional support libraries +if [ ! $ADDITIONAL ] +then + echo -e "\n*** Optional packages not installed. Rerun with --install-optional to have them.\n" +else + $PM install $ADDITIONAL_LIST $OPTIONS +fi -- cgit v1.2.1