PBR

pbr's setup.py bdist_egg fails on Windows with a SandboxViolation exception

Bug #1437187 reported by Marius Gedminas
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PBR
Triaged
Wishlist
Unassigned

Bug Description

zope.testrunner, when used with Python 2.6, depends on unittest2, which setup_requires traceback2, which setup_requires pbr, which fails to install on our Windows buildbot: https://github.com/zopefoundation/zope.testrunner/issues/22

You can find the full output of bin/buildout -vvv at https://gist.github.com/anonymous/98a73f4636ebb0cc5ef4. I'll repeat the most interesting bits here:

    Running pbr-0.10.8\setup.py -q bdist_egg --dist-dir c:\temp\easy_install-rspeem\unittest2-1.0.1\temp\easy_install-kyaduk\traceback2-1.4.0\temp\easy_install-ybgvzw\pbr-0.10.8\egg-dist-tmp-scu9hx
    Importing new compiler from distutils.msvc9compiler
    warning: no previously-included files found matching '.coveragerc'
    warning: no previously-included files found matching '.mailmap'
    warning: no previously-included files found matching '.travis.yml'
    warning: no previously-included files found matching 'pip\_vendor\Makefile'
    warning: no previously-included files found matching 'tox.ini'
    warning: no previously-included files found matching 'dev-requirements.txt'
    warning: no files found matching 'Makefile' under directory 'docs'
    no previously-included directories found matching '.travis'
    no previously-included directories found matching 'docs\_build'
    no previously-included directories found matching 'contrib'
    no previously-included directories found matching 'tasks'
    no previously-included directories found matching 'tests'
    error: Setup script exited with error: Setup script exited with error: SandboxViolation: open('build\\bdist.win32\\egg\\pip\\_vendor\\requests\\packages\\urllib3\\packages\\ssl_match_hostname\\_implementation.py', 'wb') {}

In case you're not familiar with zc.buildout: the important thing is that it wraps easy_install from setuptools to do the installation. Unfortunately I haven't been able to reproduce this failure using a virtualenv's scripts/easy_install directly.

Curiously, this is not the first invocation of pbr's setup.py in the build log, but the previous ones succeed.

Revision history for this message
Marius Gedminas (mgedmin) wrote :

I have a theory that this failure may be caused by the deep nesting of the directory trees, caused by the chain of nested setup_requires. Perhaps a filename gets too long for Windows and setuptools has a try/except that mistakenly converts that into a SandboxViolation exception? I've a log of a different buildout run, with a longer %TEMP% directory name, which fails due to filename length problems -- https://gist.github.com/anonymous/4f3631e0ed119a0876d9. Still, the evidence is inconclusive.

Revision history for this message
Robert Collins (lifeless) wrote :

Ugg, bdist_egg. I don't think we've considered supporting that to date.

No particular objection, but also not much interest :(.

Changed in pbr:
status: New → Triaged
importance: Undecided → Wishlist
Revision history for this message
Robert Collins (lifeless) wrote :

FWIW we should be publishing wheels in the next release which would mean you don't need to run bdist_egg.

Revision history for this message
Marius Gedminas (mgedmin) wrote :

> Ugg, bdist_egg. I don't think we've considered supporting that to date.

Um. This is, apparently, what setuptools does when you have a package with a setup.py like this:

    setup(
        ...
        setup_requires=['pbr'],
        ...)

Are you saying that you don't support setup_requires=['pbr']?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.