Skip to content
Snippets Groups Projects
Commit f31a5ede authored by André Anjos's avatar André Anjos :speech_balloon:
Browse files

Upgrade bootstrap to the latest beta (see https://github.com/buildout/buildout/issues/128)

parent db2ae8a9
No related branches found
No related tags found
No related merge requests found
...@@ -18,7 +18,11 @@ The script accepts buildout command-line options, so you can ...@@ -18,7 +18,11 @@ The script accepts buildout command-line options, so you can
use the -c option to specify an alternate configuration file. use the -c option to specify an alternate configuration file.
""" """
import os, shutil, sys, tempfile import os
import shutil
import sys
import tempfile
from optparse import OptionParser from optparse import OptionParser
tmpeggs = tempfile.mkdtemp() tmpeggs = tempfile.mkdtemp()
...@@ -31,8 +35,8 @@ Bootstraps a buildout-based project. ...@@ -31,8 +35,8 @@ Bootstraps a buildout-based project.
Simply run this script in a directory containing a buildout.cfg, using the Simply run this script in a directory containing a buildout.cfg, using the
Python that you want bin/buildout to use. Python that you want bin/buildout to use.
Note that by using --setup-source and --download-base to point to Note that by using --find-links to point to local resources, you can keep
local resources, you can keep this script from going over the network. this script from going over the network.
''' '''
parser = OptionParser(usage=usage) parser = OptionParser(usage=usage)
...@@ -48,23 +52,21 @@ parser.add_option("-t", "--accept-buildout-test-releases", ...@@ -48,23 +52,21 @@ parser.add_option("-t", "--accept-buildout-test-releases",
"bootstrap and buildout will get the newest releases " "bootstrap and buildout will get the newest releases "
"even if they are alphas or betas.")) "even if they are alphas or betas."))
parser.add_option("-c", "--config-file", parser.add_option("-c", "--config-file",
help=("Specify the path to the buildout configuration " help=("Specify the path to the buildout configuration "
"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"))
options, args = parser.parse_args() options, args = parser.parse_args()
###################################################################### ######################################################################
# load/install distribute # load/install setuptools
to_reload = False to_reload = False
try: try:
import pkg_resources, setuptools import pkg_resources
if not hasattr(pkg_resources, '_distribute'): import setuptools
to_reload = True
raise ImportError
except ImportError: except ImportError:
ez = {} ez = {}
...@@ -73,8 +75,10 @@ except ImportError: ...@@ -73,8 +75,10 @@ except ImportError:
except ImportError: except ImportError:
from urllib2 import urlopen from urllib2 import urlopen
exec(urlopen('http://python-distribute.org/distribute_setup.py').read(), ez) # XXX use a more permanent ez_setup.py URL when available.
setup_args = dict(to_dir=tmpeggs, download_delay=0, no_fake=True) 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) ez['use_setuptools'](**setup_args)
if to_reload: if to_reload:
...@@ -89,7 +93,7 @@ except ImportError: ...@@ -89,7 +93,7 @@ except ImportError:
###################################################################### ######################################################################
# Install buildout # Install buildout
ws = pkg_resources.working_set ws = pkg_resources.working_set
cmd = [sys.executable, '-c', cmd = [sys.executable, '-c',
'from setuptools.command.easy_install import main; main()', 'from setuptools.command.easy_install import main; main()',
...@@ -104,8 +108,8 @@ find_links = os.environ.get( ...@@ -104,8 +108,8 @@ find_links = os.environ.get(
if find_links: if find_links:
cmd.extend(['-f', find_links]) cmd.extend(['-f', find_links])
distribute_path = ws.find( setuptools_path = ws.find(
pkg_resources.Requirement.parse('distribute')).location pkg_resources.Requirement.parse('setuptools')).location
requirement = 'zc.buildout' requirement = 'zc.buildout'
version = options.version version = options.version
...@@ -113,13 +117,14 @@ if version is None and not options.accept_buildout_test_releases: ...@@ -113,13 +117,14 @@ if version is None and not options.accept_buildout_test_releases:
# Figure out the most recent final version of zc.buildout. # Figure out the most recent final version of zc.buildout.
import setuptools.package_index import setuptools.package_index
_final_parts = '*final-', '*final' _final_parts = '*final-', '*final'
def _final_version(parsed_version): def _final_version(parsed_version):
for part in parsed_version: for part in parsed_version:
if (part[:1] == '*') and (part not in _final_parts): if (part[:1] == '*') and (part not in _final_parts):
return False return False
return True return True
index = setuptools.package_index.PackageIndex( index = setuptools.package_index.PackageIndex(
search_path=[distribute_path]) search_path=[setuptools_path])
if find_links: if find_links:
index.add_find_links((find_links,)) index.add_find_links((find_links,))
req = pkg_resources.Requirement.parse(requirement) req = pkg_resources.Requirement.parse(requirement)
...@@ -142,7 +147,7 @@ if version: ...@@ -142,7 +147,7 @@ if version:
cmd.append(requirement) cmd.append(requirement)
import subprocess import subprocess
if subprocess.call(cmd, env=dict(os.environ, PYTHONPATH=distribute_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])
......
...@@ -13,7 +13,7 @@ from xbob.extension import Extension, build_ext ...@@ -13,7 +13,7 @@ from xbob.extension import Extension, build_ext
setup( setup(
name="xbob.flandmark", name="xbob.flandmark",
version="1.0.9", version="1.0.10",
description="Python bindings to the flandmark keypoint localization library", description="Python bindings to the flandmark keypoint localization library",
license="GPLv3", license="GPLv3",
author='Andre Anjos', author='Andre Anjos',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment