Opened 6 years ago

Closed 7 months ago

#8152 closed defect (fixed)

Python needs to search /usr/sfw/lib on Solaris for OpenSSL libraries.

Reported by: drkirkby Owned by: drkirkby
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: porting: Solaris Keywords:
Cc: was, jsp Merged in:
Authors: Reviewers: Jeroen Demeyer
Report Upstream: Reported upstream. No feedback yet. Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by drkirkby)

Sage currently depends on OpenSSL to build the haslib module in Python. OpenSSL is not distributed with Sage due to license issues. However, the GPL allows us to link to the libraries if they are part of the core operating system, such as the kernel or compilers. (Someone could argue OpenSSL is not part of the core operating system, so even if it comes with the operating system, we can't use it. However, that is another issue.)

The OpenSSL libraries are installed on Solaris 10 in /usr/sfw/lib. The problem is, python does not currently look there for the libraries. I've submitted an enhancement request to the Python bug database.

http://bugs.python.org/issue7836

that they add that directory to the list of directories searched.

Until this gets fixed, I believe we should add the directory /usr/sfw/lib to the top-level setup.py. Then Sage should build on Solaris 10 (but not Open Solaris) without installation of any OpenSSL libraries.

There is no point making this patch operating system specific, as the code in python is only a search path:

       ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
                                     ['/usr/local/ssl/lib',
                                      '/usr/contrib/ssl/lib/'
                                     ] )

I'm not sure if we need to know the location of the include directories, but they are in /usr/src/include/openssl. There is again similar code in setup.py to search for the include files:

        # Detect SSL support for the socket module (via _ssl)
        search_for_ssl_incs_in = [
                              '/usr/local/ssl/include',
                              '/usr/contrib/ssl/include/'
                             ]

Any comments, before I go to the trouble of making a patch, which just appends the search path for the OpenSSL directories? Does this seem a reasonable thing to do?

Dave

Attachments (1)

install.log.gz (146.8 KB) - added by drkirkby 6 years ago.
Install.log showing the failure for python to install properly.

Download all attachments as: .zip

Change History (15)

comment:1 Changed 6 years ago by drkirkby

  • Description modified (diff)

comment:2 Changed 6 years ago by drkirkby

  • Report Upstream changed from N/A to Reported upstream. Little or no feedback.

comment:3 Changed 6 years ago by robertwb

Sage currently depends on OpenSSL to build the haslib module in Python.

As I mentioned on the list, are we sure about this ?

comment:4 Changed 6 years ago by drkirkby

Let us discuss this on the list for now at least, then put some comments on the ticket when we have a more definate understanding of this.

comment:5 Changed 6 years ago by robertwb

+1

For the record, here's a link to the discussion: http://groups.google.com/group/sage-devel/browse_thread/thread/df54a7a71b7aea65 (though I seem to recall a couple of other threads having relevant information as well).

Changed 6 years ago by drkirkby

Install.log showing the failure for python to install properly.

comment:6 Changed 6 years ago by drkirkby

Here's one example of this failing on Solaris 10 03/2005. I freshly installed Solaris 10 on this machine yesterday. All that has been added are

  • Sun patch 123647-04 to overcome a bug in the supplied gcc 3.4.3
  • Installed gmp-4.3.2
  • Installed mpfr-2.4.2
  • Built gcc 4.4.3

Clearly there are failures on Solaris 10, which can be remidied by to LD_LIBRARY_PATH a directory containing the OpenSSL libraries.

Sleeping for three seconds before testing python
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/export/home/drkirkby/sage-4.3.2/local/lib/python2.6/hashlib.py", line 136, in <module>
    md5 = __get_builtin_constructor('md5')
  File "/export/home/drkirkby/sage-4.3.2/local/lib/python2.6/hashlib.py", line 63, in __get_builtin_constructor
    import _md5
ImportError: No module named _md5
hashlib module failed to import

real	19m24.520s
user	16m14.347s
sys	2m57.845s
sage: An error occurred while installing python-2.6.4.p5

comment:7 Changed 3 years ago by roed

  • Report Upstream changed from Reported upstream. Little or no feedback. to Reported upstream. No feedback yet.

comment:8 Changed 2 years ago by jdemeyer

  • Milestone changed from sage-5.11 to sage-5.12

comment:9 Changed 21 months ago by vbraun_spam

  • Milestone changed from sage-6.1 to sage-6.2

comment:10 Changed 18 months ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:11 Changed 15 months ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:12 Changed 7 months ago by jdemeyer

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

comment:13 Changed 7 months ago by jdemeyer

  • Status changed from needs_review to positive_review

Obsolete I guess...

comment:14 Changed 7 months ago by vbraun

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