build failure on OS-X #2728

Closed
opened 2016-02-08 23:54:48 +00:00 by warner · 4 comments
warner commented 2016-02-08 23:54:48 +00:00
Owner

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.

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.
tahoe-lafs added the
packaging
major
defect
1.10.2
labels 2016-02-08 23:54:48 +00:00
daira commented 2016-02-09 17:21:39 +00:00
Author
Owner

The first error is an instance of #2474.

The first error is an instance of #2474.
daira commented 2016-02-09 17:25:03 +00:00
Author
Owner

The second error when building pyOpenSSL looks like https://github.com/pyca/cryptography/issues/2692

The second error when building pyOpenSSL looks like <https://github.com/pyca/cryptography/issues/2692>
warner commented 2016-03-18 18:32:33 +00:00
Author
Owner

The switch to pip has fixed this. We now use the current versions of all dependencies.

The switch to pip has fixed this. We now use the current versions of all dependencies.
tahoe-lafs added the
fixed
label 2016-03-18 18:32:33 +00:00
warner closed this issue 2016-03-18 18:32:33 +00:00
warner commented 2016-03-22 05:03:36 +00:00
Author
Owner

Milestone renamed

Milestone renamed
tahoe-lafs added this to the 1.11.0 milestone 2016-03-22 05:03:36 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: tahoe-lafs/trac-2024-07-25#2728
No description provided.