m-lab / mlab-ns

M-Lab name server (load balancer for M-Lab servers)
Apache License 2.0
12 stars 10 forks source link

Pins pyopenssl==19.1.0 to get around new incompatibility #249

Closed nkinkade closed 3 years ago

nkinkade commented 3 years ago

The Dockerfile install coveralls, which brings in pyOpenSSL-20.0.0 as a dependency. Later in the Dockerfile when django and jinja2 get installed, we come across this:

Successfully installed coveralls-1.11.1 docopt-0.6.2 pyOpenSSL-20.0.0
Removing intermediate container dffb9ea51df4
 ---> 657ca5f1eb0b
Step 14/15 : RUN pip install django==1.2 jinja2==2.6
 ---> Running in 08676d549d14
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 22, in <module>
    from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
  File "/usr/lib/python2.7/dist-packages/pip/_vendor/__init__.py", line 64, in <module>
    vendored("cachecontrol")
  File "/usr/lib/python2.7/dist-packages/pip/_vendor/__init__.py", line 36, in vendored
    __import__(modulename, globals(), locals(), level=0)
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/__init__.py", line 9, in <module>
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/wrapper.py", line 1, in <module>
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 4, in <module>
  File "/usr/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl/requests/__init__.py", line 84, in <module>
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/contrib/pyopenssl.py", line 46, in <module>
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 149, in <module>
    OP_NO_TLSv1_3 = _lib.SSL_OP_NO_TLSv1_3
AttributeError: 'module' object has no attribute 'SSL_OP_NO_TLSv1_3'

pyopenssl v20.0.0 was release on 2020-11-27. This PR pins pyopenssl==19.1.0 to get around this issue.


This change is Reviewable