On Thursday, December 1, 2016 at 10:47:40 PM UTC, Volker Braun wrote: > > On Linux, you can build Sage with and without openssl. If you ever hit the > network you really should build with openssl(-devel) available, it will be > picked up automatically. But its not a requirement. Though we should > probably strongly recommend it in the installation instructions. > > GnuTLS and other implementations won't solve our problem, as Python's _ssl > module is specifically written against OpenSSL and can't be linked against > anything else. > > On OSX, you can do either > > a) nothing => no https support, > > a) supply the (missing) openssl headers for the system openssl. This is > still a shitty solution as it doesn't (and probably will never) support > TLSv12. > > c) compile your own openssl implementation AND bring your own copy of the > root certificates as your self-compiled openssl will not be able to access > the OSX certificate store. Distributing the resulting binary has some > license issues. >
Do you understand the story about root certs here? Is it a missing python code (in some package, existing or not?) that would be able to access OSX certs store? Or is it more fundamental than this? > > > On Thursday, December 1, 2016 at 11:25:42 PM UTC+1, Emmanuel Charpentier > wrote: >> >> Dear Thierry, >> >> Thank you for this answer : you have done a large work that I planned for >> my next opportunity. Comments below : >> >> Le jeudi 1 décembre 2016 22:56:15 UTC+1, Thierry (sage-googlesucks@xxx) a >> écrit : >>> >>> Hi, >>> >>> On Sun, Nov 27, 2016 at 03:52:59AM -0800, Emmanuel Charpentier wrote: >>> > OK. Let's try again : >>> > I have two questions : >>> > >>> > 1. What are the parts (standard, optional or experimental, except, >>> of >>> > course, the openssl package itself) of Sage that need (directly or >>> > indirectly) a secure transport layer but would accept either >>> openSSL or >>> > reasonable substitutes such as Gnu TLS or Mozilla's NSS ? >>> > 2. What are the parts (standard, optional or experimental, except, >>> of >>> > course, the openssl package itself) of Sage that (directly or >>> indirectly) >>> > need openSSL, no substitute accepted ? >>> > >>> > My favorite itch to be scratched (namely R), seems to fall in the >>> first >>> > category, but I have trouble proving it : I would need a reasonable >>> test >>> > machine with no openSSL library to check whether R installs or not >>> using >>> > only Gnu TLS. All the Linux *desktop* installation I tried install >>> > openSSL, one way or another (even Debian, which is notably prudish >>> about >>> > licensing). I would have to install an ultra-basic virtual machine. >>> This >>> > setup could be used to prove or disprove the dependencies of various >>> parts >>> > of Sage. >>> >>> A priori (?), openssl package should not interfere if you do not have >>> libssl-dev installed. >>> >>> I tried building Sage 7.3 on a VM without libssl-dev, but with both >>> libgnutls28-dev and libgnutls-openssl27 installed (on a Debian jessie). >>> Sage builds and tests fine, but i do not have SSL support when using >>> pip: >>> >>> ./sage -pip search blah >>> SSLError: Can't connect to HTTPS URL because the SSL module is not >>> available. >>> >> >> This seems a serious problem, given the increasing dependency of Sage on >> pip packages. This is also one aspect of more and more services migrating >> to secured protocols (the new https requirement of R, which started this >> epopea, is another example). >> >> I think that your experiment demonstrates that GnuTLS does not (yet) >> offer a substitute to (at least some) OpenSSL functionalities. >> >> My experiments with R led me to think the same thing. >> >> So I think it's time to bite the bullet, acknowledge that we depend on >> OpenSSL and document it. We should also test for it when building Sage. >> >> For the first task, I think that the right places are : >> >> - README.md in the root directory ; >> - The developer's guide. >> >> >> For the second task, the most logical place would be in the toplevel >> configure file, after checking for a "minimal" toolset (C compiler, make, >> etc..). Since at this point, we do not have pkg-config, we have to use the >> Great White Shark method : bite and see what happens. In this case,, >> compile, link and run a minimal program festing the existence and basic >> functionality of of libssl. Ideas on what to test an how are much welcome : >> I'm a bit out of my depth here... >> >> We could also wait for the installation of Sage's pkg-config, which makes >> the ssl test trivial, but, IIRC that comes a bit late (i. e. after Sage's >> python compilation), and we leave the user with partially unusable Sage's >> parts, that whould have to be recompiled after a correct OpenSSL >> installation. It's probably better to fail early. >> >> Again, your advice, criticisms and ideas are welcome. >> >> >> >> >>> Ciao, >>> Thierry >>> >> >> Again, thank you ! >> >> -- >> Emmanuel Charpentier >> >> >>> >>> >>> >>> > There are only two possible results, and two sets of action : >>> > >>> > 1. If no part of Sage depends on openSSL exclusively : fine. >>> package and >>> > ship Gnu TLS as a standard package, and be done with the damn thing >>> > 2. If some part of Sage need openSSL exclusively : since we *can* >>> use a >>> > systemwise installation but cannot (pseudo-legally) *ship* it, we >>> just >>> > *have to* depend on this systemwide installation. Add it to the >>> > prerequisites, and be done with it. >>> > >>> > >>> > So this inventory is crucial. >>> > >>> > What do you know about these dependencies ? >>> > >>> > -- >>> > Emmanuel Charpentier >>> > >>> > Le lundi 21 novembre 2016 12:21:31 UTC+1, Emmanuel Charpentier a écrit >>> : >>> > > >>> > > Dear list, >>> > > >>> > > The fact that we can't ship openSSL (see uncountable theads in >>> sage-devel >>> > > and others) seems to pose more and more difficulties. See for >>> example this >>> > > thread < >>> https://groups.google.com/forum/#!topic/sage-support/rDV9uGT2ViM> >>> > > on sage-support, and especially Dima's answer >>> > > < >>> https://groups.google.com/d/msg/sage-support/rDV9uGT2ViM/GuKDbhSKAwAJ>, >>> > > as well as this annoying ticket < >>> https://trac.sagemath.org/ticket/21767>, >>> > > discussed in this saga >>> > > <https://groups.google.com/forum/#!topic/sage-devel/QaBdHSNJuKg> . >>> > > >>> > > Could'nt we add OpenSSL as a prerequisite to Sage, and it"s >>> development >>> > > files as a prerequisite to building Sage ? This would require of the >>> user >>> > > to install OpenSSL systemwide, thus making it "system software" and >>> > > satisfying the strange licensing requirements that bother us. >>> > > >>> > > One could even do that indirectly, by requiring a systemwide libcurl >>> > > supporting https : this would de facto enforce the systemwide >>> installation >>> > > of OpenSSL (or a reasonable facsimile). That's what I was trying to >>> do in this >>> > > proposal <https://trac.sagemath.org/ticket/21767#comment:41>... >>> (IIRC, >>> > > the problem with libcurl is also bound to OpenSSL : libcurl itself >>> is not a >>> > > problem. But I'll have to check : if this is true, we can require >>> OpenSSL >>> > > and ship libcurl which will then compile cleanly). >>> > > >>> > > Comments ? Especially wrt Macs, which seem to be further encumbered >>> by >>> > > Apple's dirty tricks... >>> > > >>> > > Should we have a vote ? >>> > > >>> > > -- >>> > > Emmanuel Charpentier >>> > > >>> > > >>> > >>> > -- >>> > 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+...@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.