RHEL6 support rpms
Install some rpms required for operation on RHEL6. Additionally,
remove some system packages that interfere with pip installs.
Change-Id: I273ce59d7bf066e73d524f61b8ad048599101dab
diff --git a/files/rpms/general b/files/rpms/general
index fc3412b..764b602 100644
--- a/files/rpms/general
+++ b/files/rpms/general
@@ -1,14 +1,19 @@
bridge-utils
curl
+dbus
euca2ools # only for testing client
+gcc # dist:rhel6 [2]
git-core
openssh-server
openssl
+libxml2-devel # dist:rhel6 [2]
+libxslt-devel # dist:rhel6 [2]
psmisc
pylint
python-netaddr
python-pep8
python-pip
+python-prettytable # dist:rhel6 [1]
python-unittest2
python-virtualenv
screen
@@ -16,3 +21,12 @@
tcpdump
unzip
wget
+
+# [1] : some of installed tools have unversioned dependencies on this,
+# but others have versioned (<=0.7). So if a later version (0.7.1)
+# gets installed in response to an unversioned dependency, it breaks.
+# This pre-installs a compatible 0.6(ish) version from RHEL
+
+# [2] : RHEL6 rpm versions of python-lxml is old, and has to be
+# removed. Several tools rely on it, so we install the dependencies
+# pip needs to build it here (see tools/install_prereqs.sh)
\ No newline at end of file
diff --git a/files/rpms/glance b/files/rpms/glance
index 34e3f9a..097cf3f 100644
--- a/files/rpms/glance
+++ b/files/rpms/glance
@@ -1,3 +1,4 @@
+gcc
libxml2-devel
python-argparse
python-devel
diff --git a/stack.sh b/stack.sh
index e192588..d534b87 100755
--- a/stack.sh
+++ b/stack.sh
@@ -525,7 +525,6 @@
# an error. It is also useful for following along as the install occurs.
set -o xtrace
-
# Install Packages
# ================
@@ -546,6 +545,42 @@
install_quantum_agent_packages
fi
+#
+# System-specific preconfigure
+# ============================
+
+if [[ is_fedora && $DISTRO =~ (rhel6) ]]; then
+ # An old version (2.0.1) of python-crypto is probably installed on
+ # a fresh system, via the dependency chain
+ # cas->python-paramiko->python-crypto (related to anaconda).
+ # Unfortunately, "pip uninstall pycrypto" will remove the
+ # .egg-info file for this rpm-installed version, but leave most of
+ # the actual library files behind in /usr/lib64/python2.6/Crypto.
+ # When later "pip install pycrypto" happens, the built library
+ # will be installed over these existing files; the result is a
+ # useless mess of old, rpm-packaged files and pip-installed files.
+ # Unsurprisingly, the end result is it doesn't work. Thus we have
+ # to get rid of it now so that any packages that pip-install
+ # pycrypto get a "clean slate".
+ # (note, we have to be careful about other RPM packages specified
+ # pulling in python-crypto as well. That's why RHEL6 doesn't
+ # install python-paramiko packages for example...)
+ uninstall_package python-crypto
+
+ # A similar thing happens for python-lxml (a dependency of
+ # ipa-client, an auditing thing we don't care about). We have the
+ # build-dependencies the lxml pip-install will need (gcc,
+ # libxml2-dev & libxslt-dev) in the "general" rpm lists
+ uninstall_package python-lxml
+
+ # If the dbus rpm was installed by the devstack rpm dependencies
+ # then you may hit a bug where the uuid isn't generated because
+ # the service was never started (PR#598200), causing issues for
+ # Nova stopping later on complaining that
+ # '/var/lib/dbus/machine-id' doesn't exist.
+ sudo service messagebus restart
+fi
+
TRACK_DEPENDS=${TRACK_DEPENDS:-False}
# Install python packages into a virtualenv so that we can track them
@@ -559,7 +594,6 @@
$DEST/.venv/bin/pip freeze > $DEST/requires-pre-pip
fi
-
# Check Out and Install Source
# ----------------------------
diff --git a/tools/install_prereqs.sh b/tools/install_prereqs.sh
index 7c4386f..68f11ce 100755
--- a/tools/install_prereqs.sh
+++ b/tools/install_prereqs.sh
@@ -42,7 +42,8 @@
LAST_RUN=$(head -1 $PREREQ_RERUN_MARKER 2>/dev/null || echo "0")
DELTA=$(($NOW - $LAST_RUN))
if [[ $DELTA -lt $PREREQ_RERUN_SECONDS && -z "$FORCE_PREREQ" ]]; then
- echo "Re-run time has not expired ($(($PREREQ_RERUN_SECONDS - $DELTA)) seconds remaining); exiting..."
+ echo "Re-run time has not expired ($(($PREREQ_RERUN_SECONDS - $DELTA)) seconds remaining) "
+ echo "and FORCE_PREREQ not set; exiting..."
return 0
fi