diff options
Diffstat (limited to 'eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/allowhosts.txt')
-rw-r--r-- | eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/allowhosts.txt | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/allowhosts.txt b/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/allowhosts.txt new file mode 100644 index 0000000..be5ab4f --- /dev/null +++ b/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/allowhosts.txt @@ -0,0 +1,128 @@ +Allow hosts +----------- + +On some environments the links visited by `zc.buildout` can be forbidden +by paranoiac firewalls. These URL might be on the chain of links +visited by `zc.buildout` whether they are defined in the `find-links` option +or by various eggs in their `url`, `download_url` and `dependency_links` metadata. + +It is even harder to track that package_index works like a spider and +might visit links and go to other location. + +The `allow-hosts` option provides a way to prevent this, and +works exactly like the one provided in `easy_install` +(see `easy_install allow-hosts option`_). + +You can provide a list of allowed host, together with wildcards:: + + [buildout] + ... + + allow-hosts = + *.python.org + example.com + +Let's create a develop egg in our buildout that specifies +`dependency_links` which points to a server in the outside world:: + + >>> mkdir(sample_buildout, 'allowdemo') + >>> write(sample_buildout, 'allowdemo', 'dependencydemo.py', + ... 'import eggrecipekss.core') + >>> write(sample_buildout, 'allowdemo', 'setup.py', + ... '''from setuptools import setup; setup( + ... name='allowdemo', py_modules=['dependencydemo'], + ... install_requires = 'kss.core', + ... dependency_links = ['http://dist.plone.org'], + ... zip_safe=True, version='1') + ... ''') + +Now let's configure the buildout to use the develop egg, +together with some rules that disallow any website but PyPI and +local files:: + + >>> write(sample_buildout, 'buildout.cfg', + ... ''' + ... [buildout] + ... develop = allowdemo + ... parts = eggs + ... allow-hosts = + ... pypi.python.org + ... + ... [eggs] + ... recipe = zc.recipe.egg:eggs + ... eggs = allowdemo + ... ''') + +Now we can run the buildout and make sure all attempts to dist.plone.org fails:: + + >>> print system(buildout) # doctest: +ELLIPSIS + Develop: '/sample-buildout/allowdemo' + ... + Link to http://dist.plone.org ***BLOCKED*** by --allow-hosts + ... + While: + Installing eggs. + Getting distribution for 'kss.core'. + Error: Couldn't find a distribution for 'kss.core'. + <BLANKLINE> + +That's what we wanted : this will prevent any attempt to access +unwanted domains. For instance, some packages are listing in their +links `svn://` links. These can lead to error in some cases, and +can therefore be protected like this:: + +XXX (showcase with a svn:// file) + + >>> write(sample_buildout, 'buildout.cfg', + ... ''' + ... [buildout] + ... develop = allowdemo + ... parts = eggs + ... allow-hosts = + ... ^(!svn://).* + ... + ... [eggs] + ... recipe = zc.recipe.egg:eggs + ... eggs = allowdemo + ... ''') + +Now we can run the buildout and make sure all attempts to dist.plone.org fails:: + + >>> print system(buildout) # doctest: +ELLIPSIS + Develop: '/sample-buildout/allowdemo' + ... + Link to http://dist.plone.org ***BLOCKED*** by --allow-hosts + ... + While: + Installing eggs. + Getting distribution for 'kss.core'. + Error: Couldn't find a distribution for 'kss.core'. + <BLANKLINE> + +Test for issues +--------------- + +Test for 1.0.5 breakage as in https://bugs.launchpad.net/zc.buildout/+bug/239212:: + + >>> write(sample_buildout, 'buildout.cfg', + ... ''' + ... [buildout] + ... parts=python + ... foo = ${python:interpreter} + ... + ... [python] + ... recipe=zc.recipe.egg + ... eggs=zc.buildout + ... interpreter=python + ... ''') + >>> print system(buildout) + Unused options for buildout: 'foo'. + Installing python. + Generated script '/sample-buildout/bin/buildout'. + Generated interpreter '/sample-buildout/bin/python'. + <BLANKLINE> + +The bug 239212 above would have got us an *AttributeError* on *buildout._allow_hosts*. +This was fixed in this changeset: +http://svn.zope.org/zc.buildout/trunk/src/zc/buildout/buildout.py?rev=87309&r1=87277&r2=87309 + |