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/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
 # ----------------------------