Opened 7 years ago

Closed 6 years ago

#13666 closed defect (wontfix)

openssl as a default package

Reported by: tmonteil Owned by: GeorgSWeber
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: build Keywords: openssl, startup, days43
Cc: logix, leif Merged in:
Authors: Reviewers: Jeroen Demeyer
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description

openssl should not be optional. It is not only needed for "notebook(secure=True)" as explained in ticket #13385, but also for hashlib (md5). If it is not installed on the distro, sage won't start.

Usually, openssl is there so no problem happen, but since openssl is going from 0.9.8 to 1.0.0, we will experience problems with distros upgrades. For example, Debian is moving from openssl0.9.8 to openssl1.0.0 in the next stable release (currently frozen): if sage is compiled on squeeze and then run on wheezy, we get the following errors at startup:

ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 139, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type %s' % name)
ValueError: unsupported hash type md5
ERROR:root:code for hash sha1 was not found.
Traceback (most recent call last):
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 139, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type %s' % name)
ValueError: unsupported hash type sha1
ERROR:root:code for hash sha224 was not found.
Traceback (most recent call last):
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 139, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type %s' % name)
ValueError: unsupported hash type sha224
ERROR:root:code for hash sha256 was not found.
Traceback (most recent call last):
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 139, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type %s' % name)
ValueError: unsupported hash type sha256
ERROR:root:code for hash sha384 was not found.
Traceback (most recent call last):
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 139, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type %s' % name)
ValueError: unsupported hash type sha384
ERROR:root:code for hash sha512 was not found.
Traceback (most recent call last):
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 139, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type %s' % name)
ValueError: unsupported hash type sha512
Traceback (most recent call last):
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/bin/sage-ipython", line 18, in <module>
    import IPython
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python2.7/site-packages/IPython/__init__.py", line 58, in <module>
    __import__(name,glob,loc,[])
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python2.7/site-packages/IPython/ipstruct.py", line 17, in <module>
    from IPython.genutils import list2dict2
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python2.7/site-packages/IPython/genutils.py", line 53, in <module>
    from IPython.external.path import path
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python2.7/site-packages/IPython/external/path.py", line 35, in <module>
    import md5
  File "/usr/local/sagemath/sage-5.3-minimal-i686-Linux/local/lib/python/md5.py", line 10, in <module>
    from hashlib import md5
ImportError: cannot import name md5

If libssl.so.0.9.8 and libcrypto.so.0.9.8 is copied on the sage local/lib directory, the problem disapears and sage can start.

Change History (5)

comment:1 Changed 7 years ago by leif

Well, it's not really an optional package, but rather there (more or less*) for convenience, since AFAIK OpenSSL is a prerequisite for Sage, which means it's up to the user (or administrator) to install it; doing sage -i openssl is probably just easier for some, others will (or should) use their distro's package manager in case it is missing.

[Haven't read sage-devel for a while; unless it isn't already, it should probably also be discussed / voted on there.]


* I vaguely remember problems with some formerly current 1.x version, such that we didn't upgrade the optional spkg to 1.x (it's meanwhile 1.0.1c), so the optional spkg was also there for those that would otherwise have installed an incompatible (1.x) version.

comment:2 Changed 7 years ago by jhpalmieri

I believe that if you build Sage on a system without OpenSSL, it runs fine, for example on various skynet machines. That's the point of #13385. You are complaining about building Sage on a system with one version of OpenSSL and then running it on a system with a different version, which is not the same issue. It also seems like an unusual enough situation, or at least a temporary enough situation, that it shouldn't demand the inclusion of a new standard package, especially one with licensing issues.

comment:3 Changed 6 years ago by jdemeyer

  • Milestone changed from sage-5.10 to sage-duplicate/invalid/wontfix
  • Reviewers set to Jeroen Demeyer
  • Status changed from new to needs_review

This simply cannot happen because of licensing.

comment:4 Changed 6 years ago by jdemeyer

  • Status changed from needs_review to positive_review

comment:5 Changed 6 years ago by jdemeyer

  • Resolution set to wontfix
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.