summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2016-12-04 23:30:46 +0100
committerDario Lombardo <lomato@gmail.com>2016-12-19 13:13:24 +0000
commit047023d44371c0abcfeea3cee7779363d4e12974 (patch)
tree310d1e970c172c983376541829521933efde71fc /tools
parent3a6c5f07176d0c8f5367e092d328eb5f6ebf3b6b (diff)
downloadwireshark-047023d44371c0abcfeea3cee7779363d4e12974.tar.gz
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 <peter@lekensteyn.nl> Reviewed-by: Dario Lombardo <lomato@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile.am1
-rwxr-xr-xtools/install_rpms_for_devel.sh2
-rwxr-xr-xtools/rpm_setup.sh144
3 files changed, 147 insertions, 0 deletions
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 <gerald@wireshark.org>
+# 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