Skip to content
Snippets Groups Projects
Commit 4bfc00b4 authored by Manuel Günther's avatar Manuel Günther
Browse files

Fixed bootstrap.py

parent 1c9dfdd5
No related branches found
No related tags found
No related merge requests found
...@@ -18,11 +18,10 @@ before_install: ...@@ -18,11 +18,10 @@ before_install:
- sudo apt-get update -qq - sudo apt-get update -qq
- sudo apt-get install -qq --force-yes libboost-all-dev libblitz1-dev libhdf5-serial-dev libatlas-dev libatlas-base-dev liblapack-dev texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended - sudo apt-get install -qq --force-yes libboost-all-dev libblitz1-dev libhdf5-serial-dev libatlas-dev libatlas-base-dev liblapack-dev texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
- if [ -n "${NUMPYSPEC}" ]; then sudo apt-get install -qq gfortran; fi - if [ -n "${NUMPYSPEC}" ]; then sudo apt-get install -qq gfortran; fi
- if [ -n "${NUMPYSPEC}" ]; then pip install --upgrade pip setuptools; fi
- if [ -n "${NUMPYSPEC}" ]; then pip install --find-links http://wheels.astropy.org/ --find-links http://wheels2.astropy.org/ --use-wheel numpy$NUMPYSPEC; fi - if [ -n "${NUMPYSPEC}" ]; then pip install --find-links http://wheels.astropy.org/ --find-links http://wheels2.astropy.org/ --use-wheel numpy$NUMPYSPEC; fi
- pip install --find-links http://wheels.astropy.org/ --find-links http://wheels2.astropy.org/ --use-wheel matplotlib==1.3.0 sphinx nose==1.3.0 jinja2==2.6 coveralls pygments==1.6 setuptools==7.0 - pip install --find-links http://wheels.astropy.org/ --find-links http://wheels2.astropy.org/ --use-wheel matplotlib==1.3.1 sphinx nose==1.3.0 jinja2==2.6 coveralls pygments==1.6
install: install:
- python bootstrap.py - python bootstrap-buildout.py
- ./bin/buildout - ./bin/buildout
script: script:
- ./bin/python -c 'from bob.db.iris import get_config; print(get_config())' - ./bin/python -c 'from bob.db.iris import get_config; print(get_config())'
......
include LICENSE README.rst bootstrap.py buildout.cfg version.txt include LICENSE README.rst bootstrap-buildout.py buildout.cfg version.txt
recursive-include doc conf.py *.rst recursive-include doc conf.py *.rst
include bob/db/iris/iris.data bob/db/iris/iris.names include bob/db/iris/iris.data bob/db/iris/iris.names
...@@ -56,6 +56,11 @@ parser.add_option("-c", "--config-file", ...@@ -56,6 +56,11 @@ parser.add_option("-c", "--config-file",
"file to be used.")) "file to be used."))
parser.add_option("-f", "--find-links", parser.add_option("-f", "--find-links",
help=("Specify a URL to search for buildout releases")) help=("Specify a URL to search for buildout releases"))
parser.add_option("--allow-site-packages",
action="store_true", default=False,
help=("Let bootstrap.py use existing site packages"))
parser.add_option("--setuptools-version",
help="use a specific setuptools version")
options, args = parser.parse_args() options, args = parser.parse_args()
...@@ -63,45 +68,42 @@ options, args = parser.parse_args() ...@@ -63,45 +68,42 @@ options, args = parser.parse_args()
###################################################################### ######################################################################
# load/install setuptools # load/install setuptools
to_reload = False
try: try:
import pkg_resources if options.allow_site_packages:
import setuptools import setuptools
import pkg_resources
from urllib.request import urlopen
except ImportError: except ImportError:
ez = {} from urllib2 import urlopen
try:
from urllib.request import urlopen
except ImportError:
from urllib2 import urlopen
# XXX use a more permanent ez_setup.py URL when available.
exec(urlopen('https://bitbucket.org/pypa/setuptools/raw/0.7.2/ez_setup.py'
).read(), ez)
setup_args = dict(to_dir=tmpeggs, download_delay=0)
ez['use_setuptools'](**setup_args)
if to_reload:
reload(pkg_resources)
import pkg_resources
# This does not (always?) update the default working set. We will
# do it.
for path in sys.path:
if path not in pkg_resources.working_set.entries:
pkg_resources.working_set.add_entry(path)
###################################################################### ez = {}
# Try to best guess the version of buildout given setuptools exec(urlopen('https://bootstrap.pypa.io/ez_setup.py').read(), ez)
if options.version is None:
if not options.allow_site_packages:
try: # ez_setup imports site, which adds site packages
from distutils.version import LooseVersion # this will remove them from the path to ensure that incompatible versions
package = pkg_resources.require('setuptools')[0] # of setuptools are not in the path
v = LooseVersion(package.version) import site
if v < LooseVersion('0.7'): # inside a virtualenv, there is no 'getsitepackages'.
options.version = '2.1.1' # We can't remove these reliably
except: if hasattr(site, 'getsitepackages'):
pass for sitepackage_path in site.getsitepackages():
sys.path[:] = [x for x in sys.path if sitepackage_path not in x]
setup_args = dict(to_dir=tmpeggs, download_delay=0)
if options.setuptools_version is not None:
setup_args['version'] = options.setuptools_version
ez['use_setuptools'](**setup_args)
import setuptools
import pkg_resources
# This does not (always?) update the default working set. We will
# do it.
for path in sys.path:
if path not in pkg_resources.working_set.entries:
pkg_resources.working_set.add_entry(path)
###################################################################### ######################################################################
# Install buildout # Install buildout
...@@ -132,10 +134,15 @@ if version is None and not options.accept_buildout_test_releases: ...@@ -132,10 +134,15 @@ if version is None and not options.accept_buildout_test_releases:
_final_parts = '*final-', '*final' _final_parts = '*final-', '*final'
def _final_version(parsed_version): def _final_version(parsed_version):
for part in parsed_version: try:
if (part[:1] == '*') and (part not in _final_parts): return not parsed_version.is_prerelease
return False except AttributeError:
return True # Older setuptools
for part in parsed_version:
if (part[:1] == '*') and (part not in _final_parts):
return False
return True
index = setuptools.package_index.PackageIndex( index = setuptools.package_index.PackageIndex(
search_path=[setuptools_path]) search_path=[setuptools_path])
if find_links: if find_links:
...@@ -162,8 +169,7 @@ cmd.append(requirement) ...@@ -162,8 +169,7 @@ cmd.append(requirement)
import subprocess import subprocess
if subprocess.call(cmd, env=dict(os.environ, PYTHONPATH=setuptools_path)) != 0: if subprocess.call(cmd, env=dict(os.environ, PYTHONPATH=setuptools_path)) != 0:
raise Exception( raise Exception(
"Failed to execute command:\n%s", "Failed to execute command:\n%s" % repr(cmd)[1:-1])
repr(cmd)[1:-1])
###################################################################### ######################################################################
# Import and run buildout # Import and run buildout
...@@ -181,4 +187,3 @@ if options.config_file is not None: ...@@ -181,4 +187,3 @@ if options.config_file is not None:
zc.buildout.buildout.main(args) zc.buildout.buildout.main(args)
shutil.rmtree(tmpeggs) shutil.rmtree(tmpeggs)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment