On Wednesday, January 18, 2017 at 1:20:20 PM UTC, Emmanuel Charpentier wrote: > > 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 ? > > Apple still sneakily ships OpenSSL headers in XCode, for some sort of upgrading tools, I guess. The location is unstable, though, it chnages from one version of XCode to another :-)
Using homebrew to build Sage on OSX isn't well-explored, IMHO. It might work, given some effort is made. > -- > 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 >> > 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. >>> To post to this group, send email to sage-...@googlegroups.com. >>> 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.