#!/bin/sh set -e case "$(uname -s)" in Linux) case "$(lsb_release --id --short)" in Ubuntu|Debian) # Note that we install the system version of python-libvirt here # instead of relying on PyPI for that particular module. THe reason for # this is that Ubuntu Precise ships libvirt 0.9.8, and PyPI's # python-libvirt packages require libvirt >= 1.0.2. # Some options for resolving this situation would be choosing some or # all of the following: # A) Removing support for Precise, # B) Removing support for downburst, # C) Adding "Precise" conditionals somewhere, eg. conditionalizing # this bootstrap script to only use the python-libvirt package on # Ubuntu Precise. for package in python-dev python-pip python-virtualenv libevent-dev python-libvirt libmysqlclient-dev; do if [ "$(dpkg --status -- $package|sed -n 's/^Status: //p')" != "install ok installed" ]; then # add a space after old values missing="${missing:+$missing }$package" fi done if [ -n "$missing" ]; then echo "$0: missing required packages, please install them:" 1>&2 echo "sudo apt-get install $missing" exit 1 fi ;; Fedora) for package in python-pip python-virtualenv libevent-devel libvirt-python community-mysql-devel; do if [ "$(rpm -q $package)" == "package $package is not installed" ]; then missing="${missing:+$missing }$package" fi done if [ -n "$missing" ]; then echo "$0: missing required packages, please install them:" 1>&2 echo "sudo yum install $missing" exit 1 fi ;; "openSUSE project"|"SUSE LINUX") for package in python-pip python-virtualenv libevent-devel libvirt-python libmysqlclient-devel; do if [ "$(rpm -q $package)" == "package $package is not installed" ]; then missing="${missing:+$missing }$package" fi done if [ -n "$missing" ]; then echo "$0: missing required packages, please install them:" 1>&2 echo "sudo zypper install $missing" exit 1 fi ;; *) echo "This script does not support your Linux distribution yet. Patches encouraged!" exit 1 ;; esac ;; Darwin) if ! which brew > /dev/null; then echo "You need Homebrew: http://brew.sh/" exit 1 fi for keg in python libvirt libevent mysql; do if brew list $keg >/dev/null 2>&1; then echo "Found $keg" else brew install $keg fi done ;; *) echo "This script does not support your OS yet. Patches encouraged!" exit 1 ;; esac if [ -z "$NO_CLOBBER" ] || [ ! -e ./virtualenv ]; then if ! which virtualenv > /dev/null; then pip install virtualenv fi # site packages needed because libvirt python bindings are not nicely # packaged virtualenv --system-site-packages --setuptools virtualenv # avoid pip bugs ./virtualenv/bin/pip install --upgrade pip # work-around change in pip 1.5 ./virtualenv/bin/pip install setuptools --no-use-wheel --upgrade fi ./virtualenv/bin/pip install -r requirements.txt ./virtualenv/bin/python setup.py develop