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 <dimp...@gmail.com> 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/to
>>>> pic/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/to
> pic/sage-devel/jdLfIKQ1M18/unsubscribe.
> To unsubscribe from this group and all its topics, 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.
>

-- 
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