I'm not sure to understand the ticket. Does that means that OS X Sage will depend on Apple's SSL library ? Or depend on a systemwide OpenSSL ? Or am I mistaken entirely ?
-- Emmanuel Charpentier Le lundi 16 janvier 2017 21:07:40 UTC+1, Kosta a écrit : > > Regarding OSX, take a look at ticket 21944 > <https://trac.sagemath.org/ticket/21944> [basically a way to either > specify where to find the openssl headers or to use the homebrew headers if > available]. > > The homebrew package can be made to depend on the openssl package. > Finally, regarding packaged .app - I don't know. I think it would be > reasonable to prompt the user about this issue if the dynamic library is > not found. I may be wrong, but I think that in recent years homebrew has > become the de-facto package manager and in older OS versions openssl was > present, so it would be fairly reasonable to just prompt the user to > install homebrew and then install via homebrew. > > Cheers, > Kosta > > -- > Konstantin Kliakhandler > http://slumpy.org > )°) )°( (°( > > On 15 January 2017 at 15:51, Emmanuel Charpentier <emanuel.c...@gmail.com > <javascript:>> wrote: > >> A first step <https://trac.sagemath.org/ticket/22058> towards a solution >> awaits your comments and review. >> >> Plan : >> >> 1. Document OpenSSL dependency, mention the possibility of compiling >> againts GnuTLS (with drawbacks) >> 2. Get OpenSSL development libs on the machines producing Unix binary >> tarballs/packages. >> 3. (To be discussed) : create a standard "SSL" package serving as a >> backup, allowing compilation on OpenSSL-less machines. As done for git, >> this package should do nothing if OpenSSL is installed systemwide. >> 4. Complete curl as a standard package, which would allow : >> 5. Upgrade R. Pffeeeewww... >> >> Unsolved problem : What about Macs (I don't have a Mac and can't >> contribute). >> >> To be discussed : Cygwin (advoce from Erik Bray keenly awaited...). >> >> HTH, >> >> -- >> Emmanuel Charpentier >> >> Le dimanche 1 janvier 2017 02:55:42 UTC+1, Emmanuel Charpentier a écrit : >>> >>> Dear list, >>> >>> We have three separate, but interacting, difficulties with SSL/TLS >>> support in Sage. I'll summarize the results of the efforts of several >>> people who tracked them, and propose a couple of solutions. >>> >>> *I) Python now (discreetly) depends on Open SSL.* >>> >>> Their license page <https://docs.python.org/3/license.html> states : >>> >>>> The modules hashlib >>>> <https://docs.python.org/3/library/hashlib-blake2.html#module-hashlib>, >>>> posix <https://docs.python.org/3/library/posix.html#module-posix>, ssl >>>> <https://docs.python.org/3/library/ssl.html#module-ssl>, crypt >>>> <https://docs.python.org/3/library/crypt.html#module-crypt> use the >>>> OpenSSL library for added performance if made available by the >>>> operating system. Additionally, the Windows and Mac OS X installers for >>>> Python may include a copy of the OpenSSL libraries, so we include a copy >>>> of >>>> the OpenSSL license here: >>>> >>> followed by the bizarre OpenSSL license. For our purpose, the important >>> statement is *"use the OpenSSL library for added performance if made >>> available by the operating system."*. >>> >>> "Added performance, my a^htired foot : Thierry has checked the >>> possibilities of an OpenSSL-less Sage, and I have further checked other >>> possibilities. Our trials conclusively demonstrate that Gnu TLS can't be >>> substituted to OpenSSL for at least the following reasons : >>> >>> - Sage's pip is non-functionnal when compiled against Gnu TLS >>> - Ditto for Sage's git >>> - I understand (but have not checked) that Python's hashlib module, >>> which depends on openssl, is used in Sage. >>> >>> >>> However, contrary to my expectations, R 3.3.2 *can* be compiled in Sage >>> against a curl library using Gnu TLS and keep a functional HTTPS access to >>> R repositories. >>> >>> Consequences : >>> >>> - Sage *can*be built and run without OpenSSL support, (as long as R >>> is < 3.3 or some SSL support is available for R >= 3.3), but this >>> system >>> will have severe limitations (among others, no access to pip resources, >>> questionable support for Sage's git). >>> - OpenSSL can be retrofitted in such a system by installing the >>> openssl package, but this retrofit becomes effective after recompilation >>> of >>> python2 (at least). >>> >>> This latter "solution" is, at best, a contraption (even if something in >>> this direction has been proposed >>> <https://groups.google.com/d/msg/sage-devel/iwrF8_kGLzM/aze9lJi8nm8J> >>> back in 2012 to solve the very same problem). Therefore : >>> >>> - we *must at minimum* advertise this problem in the REAME.md file >>> and recommend checking the presence of OpenSSL, and recommend the >>> installation of openssl development files for Sage compilation. In this >>> case, we would have to : >>> - provide a standard package providing some HTTPS-capable SSL >>> support. Ideally, this package should be able to check for the >>> presence of >>> suitable systemwide libraries, and in this case, do nothing ; >>> - use this SSL support to provide an HTP-enabled curl for R>=3.3 >>> (with again, the possibility of usinf a systemwide curl library). >>> - We *should* acknowledge our *de facto* dependence on a >>> systemwide OpenSSL (in terms close to those used by the Python license). >>> In >>> this case, we would have to provide a standard curl package, with the >>> same >>> provisions as before. >>> >>> The first solution, used on a system without OpenSSL, will create a >>> crippled Sage. Furthermore, it needs writing two standard packages, >>> installing widely-diffused utilities (it seems awfully difficult to install >>> a Debian system *sans* OpenSSL : even a freshly installed "base system >>> + common utilities" has openssl, on which Debian's reportbug and various >>> utilities depend). >>> >>> I would rather acknowledge our dependence on OpenSSL, recommend its >>> installation and advertise the limitations of an OpenSSL-less Sage, leaving >>> this possibility open to prudes... >>> >>> *II) OpenSSL has broken a lot of software.* >>> >>> OpenSSL 1.1.0 has broken a lot of OpenSSL-using software *at the source >>> level* (older binaries still can use the libraries, but the macro >>> mechanisms used in source are not compatible with those used in OpenSSL >>> 1.0.x, and compilations fail). >>> >>> This has happened in "our" Python ; our now-current 2.7.12 version does >>> not compile against OpenSSL 1.1. A patch against this version, allowing >>> compilation against OpenSSL 1.1 has been released after the version we used >>> in Trac#19735 <https://trac.sagemath.org/ticket/19735>. I tried >>> <https://trac.sagemath.org/ticket/22089> to port it in our current >>> version, and failed miserably (someone with more experience than me should >>> have wielded this chainsaw...). >>> >>> BTW, this has also happened to "our" git, which was easier to upgrade >>> (see Trac#22058 <https://trac.sagemath.org/ticket/22058>, which needs >>> review, BTW). >>> >>> This *is* a problem for us because OpenSSL 1.1 has now reached the >>> stage of diffusion in commonly-used distributions (Debian testing, which >>> means the next Ubuntu, etc...). It has been said that this move was >>> (unduly) hastened by a nearing "freeze" in Debian testing ; true or not, >>> the move has happened, and I don't fight the weather... (Interestingly, >>> cygwin still is at openSSL-devel-1.0.2j). >>> >>> I think that our best bet is the upgrade proposed in Trac#22037 >>> <https://trac.sagemath.org/ticket/22037>, whose development seems to >>> have stopped dead in its tracks after sagemath has hit Debian unstable... >>> This is especially important if we adopt the idea of openly depending on >>> OpenSSL as a solution to I). >>> >>> *III) OpenSSL is problematic on Macintoshes.* >>> >>> (This is by hearsay : I do not have access to a Mac, and don't really >>> understand the problem ; I'm tryin to summarize what I've read). >>> >>> Apple seems to have its own SSL implementation, and specific procedures >>> for updating its collection of root certificates. This makes installing a >>> Sage-specific SSL library problematic, and makes necessary a specific >>> procedure fot root certificates maintenance. >>> >>> 1) I do not know if Apple's ssl implementation is sufficient for >>> a) Sage and related utilities (Sage's pip, Saage's git, etc...) >>> b) Curl (needed bty R>=3.3, see above). >>> >>> 2) It seems also difficult to develop an utility making Apple's root >>> certificates usable by Sage. >>> >>> *Qiscussion and questions* >>> >>> In view of these difficulties, what should be done ? >>> >>> I think that our first priority should be to get a Python that will >>> compile against OpenSSL>=1.1, which will become ubiquitous sooner or later >>> (ant I think it will be sooner...). That means completing Trac#22037 >>> <https://trac.sagemath.org/ticket/22037> as soon as possible. >>> >>> In parallel, we should document the SSL problem right at the startof teh >>> README.md and in the developer's documentation (README.md and the >>> Developer's Guide). I will propose a patch to these effect of these docs. >>> >>> The SSL-using parts of Sage should be reviewed, for answers to three >>> questions : >>> >>> - do they compile against OpenSSL>1.1 on Linux (and other Unices) ? >>> - do they compile efficiently (i. e. with full functionality) >>> against Apple's SSL library ? >>> - will they compile against a future OpenSSL>=1.1 on cygwin ? >>> >>> >>> Platform-specific adaptations should be considered for both Macs and >>> Windows. >>> >>> Questions : >>> >>> - Should we openly depend on OpenSSL ? If so, how to express it ? >>> >>> I'd vote for that, and for warning of the penalties involved by the >>> non-use of OpenSSL, probably in terms close to those of the Python license. >>> >>> - Do we need a standard SSL package ? >>> >>> This is necessary to allow for R>3.3 if we do NOT openly depend on >>> OpenSSL. That's the only way to allow to upgrade to R>3.3, which has become >>> urgent... >>> >>> - How can we help completing Trac#22037 ? >>> <https://trac.sagemath.org/ticket/22037> >>> >>> and, last but not least : >>> >>> - how can we help with the platform-specific aspects of this thorny >>> problem ? >>> >>> Your advice, please ? >>> >>> HTH, >>> >>> -- >>> Emmanuel Charpentier >>> >>> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "sage-devel" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/sage-devel/jdLfIKQ1M18/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> sage-devel+...@googlegroups.com <javascript:>. >> To post to this group, send email to sage-...@googlegroups.com >> <javascript:>. >> Visit this group at https://groups.google.com/group/sage-devel. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.