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
This commit is contained in:
Dean Troyer 2013-08-09 15:09:31 -05:00 committed by Maru Newby
parent ba963468a5
commit 9acc12a392
3 changed files with 53 additions and 4 deletions

View File

@ -581,6 +581,10 @@ source $TOP_DIR/tools/install_prereqs.sh
# 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
# ============================

43
tools/fixup_stuff.sh Executable file
View File

@ -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

View File

@ -81,10 +81,12 @@ function install_get_pip() {
}
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