Opened at 2015-11-16T05:33:52Z
Closed at 2016-03-27T19:02:01Z
#2570 closed defect (fixed)
Unable to pip install tahoe-lafs directly without first installing PyOpenSSL
| Reported by: | nejucomo | Owned by: | daira |
|---|---|---|---|
| Priority: | normal | Milestone: | 1.11.0 |
| Component: | packaging | Version: | 1.10.2 |
| Keywords: | pyOpenSSL cryptography cffi build packaging | Cc: | |
| Launchpad Bug: |
Description (last modified by daira)
On a debian system I'm unable to successfully run pip install allmydata-tahoe due to a compilation error while installing pyOpenSSL. However, if I first run pip install PyOpenSSL and *then* pip install allmydata-tahoe then this succeeds.
Notice how in the first case the package which fails to install is called pyOpenSSL but in the second sequence of commands, the package requested is PyOpenSSL with an initial capital P. Is this the difference? Can we change the dependencies of tahoe-lafs to refer to the successfully installing pacakage?
Here's the first attempt to install allmydata-tahoe:
$ pip install allmydata-tahoe
Collecting allmydata-tahoe
Using cached allmydata-tahoe-1.10.2.tar.gz
Requirement already satisfied (use --upgrade to upgrade): setuptools>=0.6c6 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): zfec>=1.1.0 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): simplejson>=1.4 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): zope.interface!=3.6.3,!=3.6.4,>=3.6.0 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Collecting foolscap>=0.8.0 (from allmydata-tahoe)
Using cached foolscap-0.9.1-py2-none-any.whl
Collecting pycrypto!=2.2,!=2.4,>=2.1.0 (from allmydata-tahoe)
Using cached pycrypto-2.6.1.tar.gz
Collecting pycryptopp>=0.6.0 (from allmydata-tahoe)
Using cached pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958.tar.gz
Collecting service-identity (from allmydata-tahoe)
Using cached service_identity-14.0.0-py2.py3-none-any.whl
Collecting characteristic>=14.0.0 (from allmydata-tahoe)
Using cached characteristic-14.3.0-py2.py3-none-any.whl
Collecting pyasn1>=0.1.8 (from allmydata-tahoe)
Using cached pyasn1-0.1.9-py2.py3-none-any.whl
Collecting pyasn1-modules>=0.0.5 (from allmydata-tahoe)
Using cached pyasn1_modules-0.0.8-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): Twisted>=13.0.0 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Collecting Nevow>=0.11.1 (from allmydata-tahoe)
Using cached Nevow-0.11.1-py27-none-any.whl
Collecting pyOpenSSL<=0.13.1,>=0.13 (from allmydata-tahoe)
Using cached pyOpenSSL-0.13.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): pyutil>=1.3.19 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from zfec>=1.1.0->allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): zbase32>=1.0 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from pyutil>=1.3.19->zfec>=1.1.0->allmydata-tahoe)
Installing collected packages: pyOpenSSL, characteristic, pyasn1, pyasn1-modules, service-identity, foolscap, pycrypto, pycryptopp, Nevow, allmydata-tahoe
Running setup.py install for pyOpenSSL
Complete output from command /home/nleast/virtualenvs/default/bin/python2 -c "import setuptools, tokenize;__file__='/home/nleast/.progtmp/pip-build-CEJDD9/pyOpenSSL/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /home/nleast/.progtmp/pip-iDhumd-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/nleast/virtualenvs/default/include/site/python2.7/pyOpenSSL:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/OpenSSL
copying OpenSSL/__init__.py -> build/lib.linux-x86_64-2.7/OpenSSL
copying OpenSSL/tsafe.py -> build/lib.linux-x86_64-2.7/OpenSSL
copying OpenSSL/version.py -> build/lib.linux-x86_64-2.7/OpenSSL
creating build/lib.linux-x86_64-2.7/OpenSSL/test
copying OpenSSL/test/__init__.py -> build/lib.linux-x86_64-2.7/OpenSSL/test
copying OpenSSL/test/util.py -> build/lib.linux-x86_64-2.7/OpenSSL/test
copying OpenSSL/test/test_crypto.py -> build/lib.linux-x86_64-2.7/OpenSSL/test
copying OpenSSL/test/test_rand.py -> build/lib.linux-x86_64-2.7/OpenSSL/test
copying OpenSSL/test/test_ssl.py -> build/lib.linux-x86_64-2.7/OpenSSL/test
running build_ext
building 'OpenSSL.crypto' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/OpenSSL
creating build/temp.linux-x86_64-2.7/OpenSSL/crypto
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/crypto.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/crypto.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/x509.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/x509.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/x509name.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/x509name.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/pkey.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/pkey.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/x509store.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/x509store.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/x509req.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/x509req.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/x509ext.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/x509ext.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/pkcs7.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/pkcs7.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/pkcs12.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/pkcs12.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/netscape_spki.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/netscape_spki.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/revoked.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/revoked.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c OpenSSL/crypto/crl.c -o build/temp.linux-x86_64-2.7/OpenSSL/crypto/crl.o
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) {
^
In file included from /usr/include/openssl/ssl.h:156:0,
from OpenSSL/crypto/x509.h:17,
from OpenSSL/crypto/crypto.h:30,
from OpenSSL/crypto/crl.c:3:
/usr/include/openssl/x509.h:751:15: note: previous declaration of ‘X509_REVOKED_dup’ was here
X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev);
^
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Command "/home/nleast/virtualenvs/default/bin/python2 -c "import setuptools, tokenize;__file__='/home/nleast/.progtmp/pip-build-CEJDD9/pyOpenSSL/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /home/nleast/.progtmp/pip-iDhumd-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/nleast/virtualenvs/default/include/site/python2.7/pyOpenSSL" failed with error code 1 in /home/nleast/.progtmp/pip-build-CEJDD9/pyOpenSSL
If I install PyOpenSSL (with a capital P) directly first, then I *can* install allmydata-tahoe, as seen here:
$ pip install PyOpenSSL
Collecting PyOpenSSL
Downloading pyOpenSSL-0.15.1-py2.py3-none-any.whl (102kB)
100% |████████████████████████████████| 106kB 526kB/s
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from PyOpenSSL)
Collecting cryptography>=0.7 (from PyOpenSSL)
Downloading cryptography-1.1.tar.gz (348kB)
100% |████████████████████████████████| 352kB 723kB/s
Collecting idna>=2.0 (from cryptography>=0.7->PyOpenSSL)
Downloading idna-2.0-py2.py3-none-any.whl (61kB)
100% |████████████████████████████████| 61kB 1.3MB/s
Collecting pyasn1>=0.1.8 (from cryptography>=0.7->PyOpenSSL)
Using cached pyasn1-0.1.9-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): setuptools in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from cryptography>=0.7->PyOpenSSL)
Collecting enum34 (from cryptography>=0.7->PyOpenSSL)
Downloading enum34-1.0.4.tar.gz
Collecting ipaddress (from cryptography>=0.7->PyOpenSSL)
Downloading ipaddress-1.0.15-py27-none-any.whl
Collecting cffi>=1.1.0 (from cryptography>=0.7->PyOpenSSL)
Downloading cffi-1.3.0.tar.gz (347kB)
100% |████████████████████████████████| 348kB 916kB/s
Collecting pycparser (from cffi>=1.1.0->cryptography>=0.7->PyOpenSSL)
Downloading pycparser-2.14.tar.gz (223kB)
100% |████████████████████████████████| 225kB 1.5MB/s
Installing collected packages: idna, pyasn1, enum34, ipaddress, pycparser, cffi, cryptography, PyOpenSSL
Running setup.py install for enum34
Running setup.py install for pycparser
Running setup.py install for cffi
Running setup.py install for cryptography
Successfully installed PyOpenSSL-0.15.1 cffi-1.3.0 cryptography-1.1 enum34-1.0.4 idna-2.0 ipaddress-1.0.15 pyasn1-0.1.9 pycparser-2.14
$ pip install allmydata-tahoe
Collecting allmydata-tahoe
Using cached allmydata-tahoe-1.10.2.tar.gz
Requirement already satisfied (use --upgrade to upgrade): setuptools>=0.6c6 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): zfec>=1.1.0 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): simplejson>=1.4 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): zope.interface!=3.6.3,!=3.6.4,>=3.6.0 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Collecting foolscap>=0.8.0 (from allmydata-tahoe)
Using cached foolscap-0.9.1-py2-none-any.whl
Collecting pycrypto!=2.2,!=2.4,>=2.1.0 (from allmydata-tahoe)
Using cached pycrypto-2.6.1.tar.gz
Collecting pycryptopp>=0.6.0 (from allmydata-tahoe)
Using cached pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958.tar.gz
Collecting service-identity (from allmydata-tahoe)
Using cached service_identity-14.0.0-py2.py3-none-any.whl
Collecting characteristic>=14.0.0 (from allmydata-tahoe)
Using cached characteristic-14.3.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): pyasn1>=0.1.8 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Collecting pyasn1-modules>=0.0.5 (from allmydata-tahoe)
Using cached pyasn1_modules-0.0.8-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): Twisted>=13.0.0 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Collecting Nevow>=0.11.1 (from allmydata-tahoe)
Using cached Nevow-0.11.1-py27-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL>=0.13 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): cryptography in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): cffi>=0.8 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): six>=1.4.1 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): enum34 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): pycparser in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): pyutil>=1.3.19 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from zfec>=1.1.0->allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): idna>=2.0 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from cryptography->allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): ipaddress in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from cryptography->allmydata-tahoe)
Requirement already satisfied (use --upgrade to upgrade): zbase32>=1.0 in /home/nleast/virtualenvs/default/lib/python2.7/site-packages (from pyutil>=1.3.19->zfec>=1.1.0->allmydata-tahoe)
Installing collected packages: characteristic, pyasn1-modules, service-identity, foolscap, pycrypto, pycryptopp, Nevow, allmydata-tahoe
Running setup.py install for pycrypto
Running setup.py install for pycryptopp
Running setup.py install for allmydata-tahoe
Successfully installed Nevow-0.11.1 allmydata-tahoe-1.10.2 characteristic-14.3.0 foolscap-0.9.1 pyasn1-modules-0.0.8 pycrypto-2.6.1 pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958 service-identity-14.0.0
Change History (4)
comment:1 Changed at 2015-11-16T05:35:58Z by nejucomo
- Description modified (diff)
comment:2 Changed at 2015-12-02T02:53:11Z by daira
- Description modified (diff)
- Keywords pyOpenSSL cryptography cffi build packaging added
- Version changed from 1.10.1 to 1.10.2
comment:3 Changed at 2016-03-18T15:22:52Z by cypher
This issue seems to no longer persist after the great zetuptools purge.
comment:4 Changed at 2016-03-27T19:02:01Z by warner
- Component changed from unknown to packaging
- Milestone changed from undecided to 1.11.0
- Resolution set to fixed
- Status changed from new to closed
Indeed, it's been fixed. Yay!

I believe the capitalization of [pP]yOpenSSL is a red herring. Package names should be case-insensitive.