[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2728: build failure on OS-X
Tahoe-LAFS
trac at tahoe-lafs.org
Mon Feb 8 23:54:48 UTC 2016
#2728: build failure on OS-X
-----------------------+------------------------
Reporter: warner | Owner: daira
Type: defect | Status: new
Priority: major | Milestone: 1.10.3
Component: packaging | Version: 1.10.2
Keywords: | Launchpad Bug:
-----------------------+------------------------
Tahoe trunk (git [186f6d4a59a879ee93207a48bca15fbdf2741206]) fails to
build on OS-X 10.11, using python from homebrew, and a fairly minimal set
of python packages installed via pip (I have: certifi, click, pip, pipsi,
requests, setuptools, virtualenv, wheel).
The full log is:
{{{
% make
python setup.py build
Need setuptools
found setuptools 0.6c16dev6
(/Users/warner/stuff/tahoe/tahoe/setuptools-0.6c16dev6.egg)
no subdependencies to add
running update_version
Wrote normalized version '1.10.2.post53' into 'src/allmydata/_version.py'
running develop
Not found: tahoe-deps
running egg_info
writing requirements to src/allmydata_tahoe.egg-info/requires.txt
writing src/allmydata_tahoe.egg-info/PKG-INFO
writing top-level names to src/allmydata_tahoe.egg-info/top_level.txt
writing dependency_links to src/allmydata_tahoe.egg-
info/dependency_links.txt
writing entry points to src/allmydata_tahoe.egg-info/entry_points.txt
reading manifest file 'src/allmydata_tahoe.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'src/allmydata_tahoe.egg-info/SOURCES.txt'
running build_ext
Creating /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/site.py
Processing setuptools-0.6c16dev6.egg
Copying setuptools-0.6c16dev6.egg to
/Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-packages
Adding setuptools 0.6c16dev6 to easy-install.pth file
Installing easy_install_z-2.6 script to support/bin
Installing easy_install_z script to support/bin
Installed /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/setuptools-0.6c16dev6.egg
Creating /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/allmydata-tahoe.egg-link (link to src)
Adding allmydata-tahoe 1.10.2.post53 to easy-install.pth file
Installing tahoe script to support/bin
Installed /Users/warner/stuff/tahoe/tahoe/src
Processing dependencies for allmydata-tahoe==1.10.2.post53
Need allmydata-tahoe==1.10.2.post53
found allmydata-tahoe 1.10.2.post53
(/Users/warner/stuff/tahoe/tahoe/src)
adding subdependencies pyOpenSSL>=0.13,<=0.13.1; Nevow>=0.11.1;
Twisted>=13.0.0; pyasn1-modules>=0.0.5; pyasn1>=0.1.8;
characteristic>=14.0.0; service-identity; pycryptopp>=0.6.0;
pycrypto>=2.1.0,!=2.2,!=2.4; foolscap>=0.10.1;
zope.interface>=3.6.0,!=3.6.3,!=3.6.4; simplejson>=1.4; zfec>=1.1.0;
setuptools>=0.6c6
Need pyOpenSSL>=0.13,<=0.13.1
Searching for pyOpenSSL>=0.13,<=0.13.1
Reading https://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-
sdists/
Reading https://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-eggs/
Best match: pyOpenSSL 0.13.1
Processing pyOpenSSL-0.13.1.tar.gz
Running pyOpenSSL-0.13.1/setup.py -q bdist_egg --dist-dir
/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
KXjeh_/pyOpenSSL-0.13.1/egg-dist-tmp-D5Jumo
warning: no previously-included files matching '*.pyc' found anywhere in
distribution
OpenSSL/crypto/crl.c:6:23: error: static declaration of 'X509_REVOKED_dup'
follows non-static declaration
static X509_REVOKED * X509_REVOKED_dup(X509_REVOKED *orig) {
^
/usr/local/opt/openssl/include/openssl/x509.h:751:15: note: previous
declaration is here
X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev);
^
1 error generated.
error: Setup script exited with error: command 'clang' failed with exit
status 1
make: *** [build] Error 1
}}}
I believe the specific problem is that Tahoe's current `_auto_deps.py`
declares that it needs pyopenssl-0.13 or 0.13.1 (which won't compile)
unless a newer version is found.
If I create a virtualenv and pre-install the current version of pyopenssl
into it, I get a different sort of openssl error instead:
{{{
% virtualenv ve
New python executable in /Users/warner/stuff/tahoe/tahoe/ve/bin/python2.7
Also creating executable in /Users/warner/stuff/tahoe/tahoe/ve/bin/python
Installing setuptools, pip, wheel...done.
% source ve/bin/activate
(ve) % pip install pyopenssl
Collecting pyopenssl
Collecting six>=1.5.2 (from pyopenssl)
Collecting cryptography>=0.7 (from pyopenssl)
Using cached cryptography-1.2.2-cp27-none-macosx_10_10_intel.whl
Collecting enum34 (from cryptography>=0.7->pyopenssl)
Collecting ipaddress (from cryptography>=0.7->pyopenssl)
Using cached ipaddress-1.0.16-py27-none-any.whl
Collecting pyasn1>=0.1.8 (from cryptography>=0.7->pyopenssl)
Requirement already satisfied (use --upgrade to upgrade): setuptools>=1.0
in ./ve/lib/python2.7/site-packages (from cryptography>=0.7->pyopenssl)
Collecting idna>=2.0 (from cryptography>=0.7->pyopenssl)
Collecting cffi>=1.4.1 (from cryptography>=0.7->pyopenssl)
Using cached cffi-1.5.0-cp27-none-macosx_10_10_intel.whl
Collecting pycparser (from cffi>=1.4.1->cryptography>=0.7->pyopenssl)
Installing collected packages: six, enum34, ipaddress, pyasn1, idna,
pycparser, cffi, cryptography, pyopenssl
Successfully installed cffi-1.5.0 cryptography-1.2.2 enum34-1.1.2 idna-2.0
ipaddress-1.0.16 pyasn1-0.1.9 pycparser-2.14 pyopenssl-0.15.1 six-1.10.0
% make
python setup.py build
Need setuptools
found setuptools 0.6c16dev6
(/Users/warner/stuff/tahoe/tahoe/setuptools-0.6c16dev6.egg)
no subdependencies to add
running update_version
Wrote normalized version '1.10.2.post53' into 'src/allmydata/_version.py'
running develop
Not found: tahoe-deps
running egg_info
writing requirements to src/allmydata_tahoe.egg-info/requires.txt
writing src/allmydata_tahoe.egg-info/PKG-INFO
writing top-level names to src/allmydata_tahoe.egg-info/top_level.txt
writing dependency_links to src/allmydata_tahoe.egg-
info/dependency_links.txt
writing entry points to src/allmydata_tahoe.egg-info/entry_points.txt
reading manifest file 'src/allmydata_tahoe.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'src/allmydata_tahoe.egg-info/SOURCES.txt'
running build_ext
Creating /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/site.py
Processing setuptools-0.6c16dev6.egg
Copying setuptools-0.6c16dev6.egg to
/Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-packages
Adding setuptools 0.6c16dev6 to easy-install.pth file
Installing easy_install_z-2.6 script to support/bin
Installing easy_install_z script to support/bin
Installed /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/setuptools-0.6c16dev6.egg
Creating /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/allmydata-tahoe.egg-link (link to src)
Adding allmydata-tahoe 1.10.2.post53 to easy-install.pth file
Installing tahoe script to support/bin
Installed /Users/warner/stuff/tahoe/tahoe/src
Processing dependencies for allmydata-tahoe==1.10.2.post53
Need allmydata-tahoe==1.10.2.post53
found allmydata-tahoe 1.10.2.post53
(/Users/warner/stuff/tahoe/tahoe/src)
adding subdependencies pycparser; enum34; six>=1.4.1; cffi>=0.8;
cryptography; pyOpenSSL>=0.13; Nevow>=0.11.1; Twisted>=13.0.0;
pyasn1-modules>=0.0.5; pyasn1>=0.1.8; characteristic>=14.0.0; service-
identity; pycryptopp>=0.6.0; pycrypto>=2.1.0,!=2.2,!=2.4;
foolscap>=0.10.1; zope.interface>=3.6.0,!=3.6.3,!=3.6.4; simplejson>=1.4;
zfec>=1.1.0; setuptools>=0.6c6
Need pycparser
Searching for pycparser
Reading https://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-
sdists/
Reading https://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-eggs/
Reading http://pypi.python.org/simple/pycparser/
Best match: pycparser 2.14
Downloading
https://pypi.python.org/packages/source/p/pycparser/pycparser-2.14.tar.gz#md5=a2bc8d28c923b4fe2b2c3b4b51a4f935
Processing pycparser-2.14.tar.gz
Running pycparser-2.14/setup.py -q bdist_egg --dist-dir
/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
srJloe/pycparser-2.14/egg-dist-tmp-vmlGR0
warning: no previously-included files matching 'yacctab.*' found under
directory 'tests'
warning: no previously-included files matching 'lextab.*' found under
directory 'tests'
warning: no previously-included files matching 'yacctab.*' found under
directory 'examples'
warning: no previously-included files matching 'lextab.*' found under
directory 'examples'
zip_safe flag not set; analyzing archive contents...
Adding pycparser 2.14 to easy-install.pth file
Installed /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/pycparser-2.14-py2.7.egg
found pycparser 2.14
(/Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/pycparser-2.14-py2.7.egg)
no subdependencies to add
Need enum34
Searching for enum34
Reading http://pypi.python.org/simple/enum34/
Best match: enum34 1.1.2
Downloading
https://pypi.python.org/packages/source/e/enum34/enum34-1.1.2.zip#md5=a9ebbad4ce451c1298cf094de07cdf69
Processing enum34-1.1.2.zip
Running enum34-1.1.2/setup.py -q bdist_egg --dist-dir
/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
2ObwO6/enum34-1.1.2/egg-dist-tmp-E2iNeu
zip_safe flag not set; analyzing archive contents...
Adding enum34 1.1.2 to easy-install.pth file
Installed /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/enum34-1.1.2-py2.7.egg
found enum34 1.1.2
(/Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/enum34-1.1.2-py2.7.egg)
no subdependencies to add
Need six>=1.4.1
Searching for six>=1.4.1
Reading http://pypi.python.org/simple/six/
Best match: six 1.10.0
Downloading
https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz#md5=34eed507548117b2ab523ab14b2f8b55
Processing six-1.10.0.tar.gz
Running six-1.10.0/setup.py -q bdist_egg --dist-dir
/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
h5ibps/six-1.10.0/egg-dist-tmp-WB7xR6
no previously-included directories found matching 'documentation/_build'
zip_safe flag not set; analyzing archive contents...
six: module references __path__
Adding six 1.10.0 to easy-install.pth file
Installed /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/six-1.10.0-py2.7.egg
found six 1.10.0 (/Users/warner/stuff/tahoe/tahoe/support/lib/python2.7
/site-packages/six-1.10.0-py2.7.egg)
no subdependencies to add
Need cffi>=0.8
Searching for cffi>=0.8
Reading http://pypi.python.org/simple/cffi/
Best match: cffi 1.5.0
Downloading
https://pypi.python.org/packages/source/c/cffi/cffi-1.5.0.tar.gz#md5=dec8441e67880494ee881305059af656
Processing cffi-1.5.0.tar.gz
Running cffi-1.5.0/setup.py -q bdist_egg --dist-dir
/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
M5DDjR/cffi-1.5.0/egg-dist-tmp-pgjlx0
compiling '_configtest.c':
__thread int some_threadlocal_variable_42;
clang -fno-strict-aliasing -fno-common -dynamic -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers
-DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -c _configtest.c -o
_configtest.o
success!
removing: _configtest.c _configtest.o
Adding cffi 1.5.0 to easy-install.pth file
Installed /Users/warner/stuff/tahoe/tahoe/support/lib/python2.7/site-
packages/cffi-1.5.0-py2.7-macosx-10.11-x86_64.egg
found cffi 1.5.0 (/Users/warner/stuff/tahoe/tahoe/support/lib/python2.7
/site-packages/cffi-1.5.0-py2.7-macosx-10.11-x86_64.egg)
adding subdependency pycparser
Need cryptography
Searching for cryptography
Reading http://pypi.python.org/simple/cryptography/
Best match: cryptography 1.2.2
Downloading
https://pypi.python.org/packages/source/c/cryptography/cryptography-1.2.2.tar.gz#md5=2b25eebd1d3c6bae52b46f0dcec74dfb
Processing cryptography-1.2.2.tar.gz
Running cryptography-1.2.2/setup.py -q bdist_egg --dist-dir
/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
dw3RtI/cryptography-1.2.2/egg-dist-tmp-gWcqfZ
Need cffi>=1.4.1
Searching for cffi>=1.4.1
Reading http://pypi.python.org/simple/cffi/
Best match: cffi 1.5.0
Downloading
https://pypi.python.org/packages/source/c/cffi/cffi-1.5.0.tar.gz#md5=dec8441e67880494ee881305059af656
Processing cffi-1.5.0.tar.gz
Running cffi-1.5.0/setup.py -q bdist_egg --dist-dir
/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
dw3RtI/cryptography-1.2.2/temp/easy_install-5Y7GaT/cffi-1.5.0/egg-dist-
tmp-hdKRzy
compiling '_configtest.c':
__thread int some_threadlocal_variable_42;
clang -fno-strict-aliasing -fno-common -dynamic -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers
-DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -c _configtest.c -o
_configtest.o
success!
removing: _configtest.c _configtest.o
Installed /private/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T
/easy_install-
dw3RtI/cryptography-1.2.2/cffi-1.5.0-py2.7-macosx-10.11-x86_64.egg
found cffi 1.5.0
(/private/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
dw3RtI/cryptography-1.2.2/cffi-1.5.0-py2.7-macosx-10.11-x86_64.egg)
adding subdependency pycparser
Need pycparser
Searching for pycparser
Reading http://pypi.python.org/simple/pycparser/
Best match: pycparser 2.14
Downloading
https://pypi.python.org/packages/source/p/pycparser/pycparser-2.14.tar.gz#md5=a2bc8d28c923b4fe2b2c3b4b51a4f935
Processing pycparser-2.14.tar.gz
Running pycparser-2.14/setup.py -q bdist_egg --dist-dir
/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
dw3RtI/cryptography-1.2.2/temp/easy_install-UEJ0Za/pycparser-2.14/egg-
dist-tmp-ItL10x
warning: no previously-included files matching 'yacctab.*' found under
directory 'tests'
warning: no previously-included files matching 'lextab.*' found under
directory 'tests'
warning: no previously-included files matching 'yacctab.*' found under
directory 'examples'
warning: no previously-included files matching 'lextab.*' found under
directory 'examples'
zip_safe flag not set; analyzing archive contents...
Installed /private/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T
/easy_install-dw3RtI/cryptography-1.2.2/pycparser-2.14-py2.7.egg
found pycparser 2.14
(/private/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
dw3RtI/cryptography-1.2.2/pycparser-2.14-py2.7.egg)
no subdependencies to add
/Users/warner/stuff/tahoe/tahoe/setuptools-0.6c16dev6.egg/setuptools/sandbox.py:60:
UserWarning: Module _cffi_backend was already imported from
/Users/warner/stuff/tahoe/tahoe/ve/lib/python2.7/site-
packages/_cffi_backend.so, but
/private/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
dw3RtI/cryptography-1.2.2/cffi-1.5.0-py2.7-macosx-10.11-x86_64.egg is
being added to sys.path
working_set.callbacks.append(lambda dist:dist.activate())
Need pycparser
found pycparser 2.14
(/private/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
dw3RtI/cryptography-1.2.2/pycparser-2.14-py2.7.egg)
no subdependencies to add
Need pycparser
found pycparser 2.14
(/private/var/folders/4v/j9ylswv946z277d1j6h1gy680000gn/T/easy_install-
dw3RtI/cryptography-1.2.2/pycparser-2.14-py2.7.egg)
no subdependencies to add
no previously-included directories found matching 'docs/_build'
warning: no previously-included files matching '*' found under directory
'vectors'
build/temp.macosx-10.11-x86_64-2.7/_openssl.c:425:10: fatal error:
'openssl/aes.h' file not found
#include <openssl/aes.h>
^
1 error generated.
error: Setup script exited with error: command 'clang' failed with exit
status 1
make: *** [build] Error 1
}}}
I think this happens during the cryptography-1.2.2 build (which is odd,
because cryptography-1.2.2 was already installed in the virtualenv (as a
dependency of pyopenssl).
My hunch is that cryptography-1.2.2 doesn't build on vanilla OS-X 10.11
right now (because of the missing system headers), but "pip install" works
because there's a pre-compiled wheel hosted on PyPI. Tahoe's zetuptoolz
doesn't know anything about wheels, nor does it seem to correctly notice
that the package is already installed, so it tries to rebuild it, and
fails.
I think this will be resolved by #1582, but I don't know if that will help
the upcoming 1.10.3 release build on OS-X.
I had a similar problem on linux (debian/sid). I created a new virtualenv
(with only pip, setuptools, and wheel installed), and tried to build tahoe
inside it. It failed when trying to build (old) pyopenssl-0.13.1. Manually
installing pyopenssl-0.15.1 and then trying again made it past the ssl
problems, but failed due to a setuptools mismatch error:
{{{
Need setuptools>=1.0
error: Installed distribution setuptools 0.6c16dev6 conflicts with
requirement setuptools>=1.0
Makefile:34: recipe for target 'build' failed
}}}
This results from cryptography-1.2.2 having a dependency upon `setuptools
>= 1.0`.
Again, I think #1582 will fix this, but I don't currently know how to
build tahoe on a debian/sid system.
Our travis tests are passing, so there must be some linux platforms that
are buildable. The buildbot's Ubuntu-15.10 "wily" builder is failing to
build with 'pip' (but passing without it, possibly because of a system-
provided python-openssl package).
Adding to 1.10.3 milestone in case it's a blocker.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2728>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list