More Python package fixes
* Add tools/fixup_stuff.sh to fix prettytable and httplib2 install
with pip 1.4+
* Cache downloads properly in tools/install_pip.sh
Change-Id: I482590cb91f7a10c1436bc9015afd572ac1cc73e
diff --git a/stack.sh b/stack.sh
index 22a23c8..aca49d0 100755
--- a/stack.sh
+++ b/stack.sh
@@ -581,6 +581,10 @@
# Configure an appropriate python environment
$TOP_DIR/tools/install_pip.sh
+# Do the ugly hacks for borken packages and distros
+$TOP_DIR/tools/fixup_stuff.sh
+
+
# System-specific preconfigure
# ============================
diff --git a/tools/fixup_stuff.sh b/tools/fixup_stuff.sh
new file mode 100755
index 0000000..60d0f46
--- /dev/null
+++ b/tools/fixup_stuff.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+# **fixup_stuff.sh**
+
+# fixup_stuff.sh
+#
+# All distro and package specific hacks go in here
+# - prettytable 0.7.2 permissions are 600 in the package and
+# pip 1.4 doesn't fix it (1.3 did)
+# - httplib2 0.8 permissions are 600 in the package and
+# pip 1.4 doesn't fix it (1.3 did)
+
+# Keep track of the current directory
+TOOLS_DIR=$(cd $(dirname "$0") && pwd)
+TOP_DIR=`cd $TOOLS_DIR/..; pwd`
+
+# Change dir to top of devstack
+cd $TOP_DIR
+
+# Import common functions
+source $TOP_DIR/functions
+
+FILES=$TOP_DIR/files
+
+# Pre-install affected packages so we can fix the permissions
+sudo pip install prettytable
+sudo pip install httplib2
+
+SITE_DIRS=$(python -c "import site; import os; print os.linesep.join(site.getsitepackages())")
+for dir in $SITE_DIRS; do
+
+ # Fix prettytable 0.7.2 permissions
+ if [[ -r $dir/prettytable.py ]]; then
+ sudo chmod +r $dir/prettytable-0.7.2*/*
+ fi
+
+ # Fix httplib2 0.8 permissions
+ httplib_dir=httplib2-0.8.egg-info
+ if [[ -d $dir/$httplib_dir ]]; then
+ sudo chmod +r $dir/$httplib_dir/*
+ fi
+
+done
diff --git a/tools/install_pip.sh b/tools/install_pip.sh
index 0ea8f53..6e3e9d2 100755
--- a/tools/install_pip.sh
+++ b/tools/install_pip.sh
@@ -81,10 +81,12 @@
}
function install_pip_tarball() {
- curl -O $PIP_TAR_URL
- tar xvfz pip-$INSTALL_PIP_VERSION.tar.gz
- cd pip-$INSTALL_PIP_VERSION
- sudo python setup.py install
+ (cd $FILES; \
+ curl -O $PIP_TAR_URL; \
+ tar xvfz pip-$INSTALL_PIP_VERSION.tar.gz; \
+ cd pip-$INSTALL_PIP_VERSION; \
+ sudo python setup.py install; \
+ )
}
# Show starting versions