I need an example of a standard package not installed if present systemwide : I know there are some, but can't retrieve it right now...
-- Emmanuel Charpentier Le mercredi 25 octobre 2017 17:38:20 UTC+2, Emmanuel Charpentier a écrit : > > Proposal for implementation of OpenSSL inclusion in Sage. > > The inclusion of OpenSSL in Sage has been decided > <https://groups.google.com/d/msg/sage-devel/fE45025Wphs/rZ0xwAyJCAAJ> > after a long and fruitful discussion > <https://groups.google.com/d/msg/sage-devel/fE45025Wphs/mKdCAeNhAgAJ>. > Now remains to implement it… > > The case of installing Sage *without* OpenSSL is addressed in a *separate* > thread (to be posted RealSoonNow). > > Since the OpenSSL relicensing is still underway, the “obvious” way (make > openssl a standard package, and be done with it) canot be done (yet : that > will be the end of the story…). The following proposal deals with the > transitional period until this relicensing. > > The ticket #24107 <https://trac.sagemath.org/ticket/24107> has been > opened on Track. However, it seems more useful to keep the discussion here, > dedicating the exchanges on Trac to technical implementation issues. > Licensing clarification > > The incompatibility between GPL and OpenSSL Licenses does not seem to > amount to much > > - R, which is GPL-licensed, depends on an https-enabled SSL (i. e. > OpenSSL), without discussing it. > - Wget, a GPL-licensed Gnu utility, depends on OpenSSL, and has added > the following language to its license : > > "Additional permission under GNU GPL version 3 section 7 > > If you modify this program, or any covered work, by linking or combining > it with the OpenSSL project's OpenSSL library (or a modified version of > that library), containing parts covered by the terms of the OpenSSL or > SSLeay licenses, the Free Software Foundation grants you additional > permission to convey the resulting work. Corresponding Source for a > non-source form of such a combination shall include the source code for the > parts of OpenSSL used as well as that of the covered work." > > That (modulo sed -e"s/Free Foftware Foundation/Sage/g", of course) seems > to cover all possible recourse against us except possibly their use of GPL > version 3 rather than 2. GPL exegetes, there is your opportunity to speak > up… > > However, in the relevant pieces of documentation (mostly README, I think), > we may add the following blurb : > > "Sage depends on the availability of the OpenSSL software library (a piece of > software that allows secure > communications between your computer and servers used to download parts of > the system) in your system software. > It is likely that this library is already present on your system. If you are > using a pre-compiled packaging of Sage, such > as the Windows distribution, a Debian, Red Hat or Gentoo package or a > Macintosh package, these packages depend on > the necessary library, that will be automatically installed on your computer > from the official source of your software > package." > > In the Installation Guide, the same language could be inserted in the > relevant “binary installation” part. In the “compiling from sources” part, > ditto, but add : > > "However, due to its current licensing terms, Sage can be linked against (i. > e. built in order to work using) this library, > but we cannot host it on our servers. > > If this library and its header files are not currently installed, the > installation script will offer you the choice of > * downloading OpenSSL sources from the OpenSSL repository, for installation > in the Sage tree only, or > * aborting the installation, in order to let you install OpenSSL systemwide > In the first case, OpenSSL will be used only by Sage and its hosted software, > such as Python and R. In the second > case, OpenSSL will become available to all your installed programs." > > Actual implementation Binary packages > > - Distributions with a reliable dependency system (all Linux and > freeBSD major distributions, to the best of my knowledge) : they can > simply > depend of the distribution’s OpenSSL library package. > - Cygwin : Erik Bray tells > <https://groups.google.com/d/msg/sage-devel/fE45025Wphs/I0EQ8RraCgAJ> > that Cygwin’s openssl package is installed by default ; therefor, his > binary packaging can ensure that the relevant library is present. > - Mac OS : This seems possible for most supported OS X versions ; I > defer to the expertise of our Mac developpers. > - Other Unices : I don’t know… > > In short, we need practical advice on how to cope with various versions of > Mac OS and non-Linux, non-FreeBSD unices (which are a bit exotic, > nowadays…). Advice welcome. > Source tarball > > There, things begin to be interesting : > > - We can’t (yet) “just” make a “normal” standard package of openssl : > that would entail hosting it on the Sage mirrors, which is, in the opinion > of some, “illegal” (in which legal context ?). > - Furthermore, the existence of a systemwide openssl makes this > inclusion futile. > > We can use a procedure that I’m said to be used for some of our standard > packages : the toplevel configure script : > > 1. tests for the existence (and, if necessary, the characteristics and > abilities) of a package ; > 2. if not found : adds it to the list of packages to be installed ; > 3. if found : marks it as installed (with the real version). > The “normal installation process takes care of : > > > - *if necessary,* downloading the necessary source tarball from (one > of) the Sage mirror(s) ; > - building and installing the package in the $SAGE_ROOT tree ; > - optionally running its testsuite. > > The step 2. cannot be used “raw” in openssl’s case : the normal > installation process would fail at the download stage. We can : > > - “Blindly” depend on openssl libraries and headers being present > systemwide, fail if not present with a (loud) error message for a missing > dependency ; > - Download the original, pristine, OpenSSL tarball from OpenSSL site > directly to $SAGE_ROOT/upstream, then proceed as for a “normal’ > package ; > > I propose that we combine those steps in the following manner : > > - create a standard package for openssl, but do *NOT* upload its > tarball to the Sage mirrors ; > - replace step 2. above (i. e. what happens when a systemwide OpenSSL > isn’t found) with the following : > - Query the user with the choice : > - “Download OpenSSL from its original site, then do the > installation in the local Sage tree” > - “Abort this installation, to be restarted after installation > of a systemwide OpenSSL (recommended)” ; > - “Abort, and download a tarball allowing for installation > without OpenSSL”. > - According to the choice of the user : > - Download from OpenSSL site directly to $SAGE_ROOT/upstream > then proceed ; > - Display a hint for systemwide installation, then abort ; > - Display the adress of an OpenSSL-less Sage tarball, then abort. > > Important corollary > > All traces of our current, outdated and probably (pseudo-)illegal openssl > <http://www-ftp.lip6.fr/pub/math/sagemath/spkg/upstream/openssl/index.html> > package must disappear. > > Also, looking for optional packages, I see : > > charpent@p-202-021:~$ sage -optional | grep openssl > openssl.................................1.0.2j (not_installed) > pyopenssl...............................17.3.0 (not_installed) > > I do not understand why. Is my last installation too old ? The questoin > goes to mirrors administrators and possibly present and past release > managers. > ------------------------------ > > What do you think ? Advice, criticisms, lazzi and even koans welcome. > > HTH, > > — > 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+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.