Are you able to build Sage under/in homebrew?

On Thursday, January 19, 2017 at 3:01:49 PM UTC, Kosta wrote:
>
> Right now (pre-ticket) if you try to build sage on OSX Sierra and above, 
> it will be built without
> OpenSSL support. I'm not sure what happens if you download a prebuilt 
> package but somehow I assumed
> that if you don't have OpenSSL installed, then you can't use OpenSSL 
> (otherwise I don't understand
> the whole discussion re GPL/OpenSSL). My comment regarding installing sage 
> via homebrew is with this
> in mind, since right now it simply automatically installs the prebuilt 
> package.
>
> The ticket addresses the building issue - it looks for the headers in a 
> user specified location (in an environment variable) if it is defined, and 
> otherwise in the location that homebrew installs to.
>
> -- 
> Konstantin Kliakhandler
>     http://slumpy.org
>           )°) )°( (°(
>
> On 18 January 2017 at 20:56, Dima Pasechnik <dim...@gmail.com 
> <javascript:>> wrote:
>
>>
>>
>> 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 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.

Reply via email to