On Mon, Oct 23, 2017 at 12:27 PM, Emmanuel Charpentier
<emanuel.charpent...@gmail.com> wrote:
>
>
> Le lundi 23 octobre 2017 12:17:06 UTC+2, Erik Bray a écrit :
>>
>> On Mon, Oct 23, 2017 at 11:57 AM, Emmanuel Charpentier
>> <emanuel.c...@gmail.com> wrote:
>> > Dear Erik,
>> >
>> > Le lundi 23 octobre 2017 11:16:05 UTC+2, Erik Bray a écrit :
>> >>
>> >> On Thu, Oct 19, 2017 at 5:19 PM, Emmanuel Charpentier
>> >> <emanuel.c...@gmail.com> wrote:
>> >> > Again : R is not only a software package but also an ecosystem. The
>> >> > 11638
>> >> > (as of today) packages available to R users are a large part of R
>> >> > usefulness
>> >> > to its users. So, "disabling downloads from CRAN" is *NOT* fine (to
>> >> > them, at
>> >> > least...).
>> >>
>> >> I'm not saying it shouldn't be possible to install R packages at all,
>> >> any less than it should be possible to install Python packages.  My
>> >> point here was that with Python, for example, one can manually
>> >> download a package tarball or wheel from PyPI using, say, curl for
>> >> example (maybe if they running on an air-gapped network this was done
>> >> on a separate machine and sneaker-netted over, etc.).  pip can then
>> >> install from the manually downloaded package file.
>> >>
>> >> I don't know if the same is possible with R but you'd think it should
>> >> be.  However R installs packages the sequence still has to be
>> >> something like
>> >>
>> >> 1) Download package from CRAN
>> >> 2) Verify that package downloaded successfully (maybe it does this
>> >> maybe it doesn't)
>> >> 3) Install the package
>> >>
>> >> So it should be possible to do steps 1 and 2 manually, and then skip
>> >> straight to 3.  Admittedly running R on an air-gapped network is
>> >> probably not a situation the developers have in mind but I have very
>> >> little doubt that the use case exists.
>> >
>> >
>> > Indeed, it *is* possible to install a manually downloaded package (not
>> > as
>> > straightforward as  the automatic download-and-install default method).
>> > But
>> > the problem isn't here :
>> >
>> > There are a large number of CRAN packages (11660 as of this morning).
>> > More
>> > and more of these packages have mutual dependencies, which are easily
>> > accounted for bu install.packages() but are a pain to deal with
>> > "manually".
>> >
>> > In fact, the problem (roughly) has same magnitude as the maintainance of
>> > your operating system : it *is* indeed possible to maintain a Unix/Linux
>> > installation using only tarballs conveyed to the system via sneakersnet,
>> > but
>> > it' certainly a) not fun and b) chronophage to the extreme...
>> >
>> > As it happened with Linux distributions, these intermutual dependencies,
>> > which started scarce and lightweight, are getting more and more
>> > important.
>> > My prediction (or prognostication, or oracle, if you wish...;-) is that
>> > they
>> > will reach the level of complexity of operating system distributions in
>> > an
>> > amount of time short enough for this problem to be of interest to all
>> > but
>> > the oldest (i. e. closest to retirement or death) of R users.
>>
>> I understand all that, and the same is true of some Python packages as
>> well (which is why sometimes Sage winds up having to add quite a few
>> spkgs for Python packages--see for example the dependencies of Flask).
>> But that's simply a matter that has to be dealt with, and people do
>> (*I* do, even, in some cases).
>>
>> My point here is not that that that's a nice thing to foist on average
>> users (it isn't).  Just that it *should* be possible regardless,
>> without patching or anything else.  My concern is just why are we
>> maintaining a patch just to be able to build R without SSL...
>
>
> ...which is *exactly* my point !
>
> Presently, the only reason ever given to this patch (which lifts upstream
> R's requirement on an https-enabled library) is to be able to build Sage
> without OpenSSL because it's not, in some eyes, GPL-compatible.
>
> I balk at the idea of maintaining this patch again and again for this issue,
> which can be solved either by depending on a systemwide openssl (but there
> goes our "batteries included" philosophy) or including OpenSSL (currently
> not possible for licensing reasons, but that should change).

I agree.

> I also balk at the idea of shipping a crippled pip.

It's not crippled if you don't need it to install from HTTPS which not
everyone does.

Okay.  I think I see the problem here.  We're talking about multiple
issues simultaneously and some things are getting confused--some
streams crossed.

First: There is the *general* issue of whether or not these packages
need any kind of SSL support in order to function.  This is an issue
*completely* independent from Sage (except insofar as we may or may
not need to maintain some patches to ensure that they don't require
SSL, but that is a separate issue that I will get to next).  From the
general standpoint of pip's design and functionality, it does not in
any way require SSL to work.  There was a time when it did, but only
due to a bug where some module assumed the `ssl` module would always
be importable which is not necessarily the case.  There are completely
legitimate reasons to either *explicitly* run pip without SSL support,
and there are completely legitimate reasons to simply not need it at
all or not care.  Therefore pip should be able to work (and does)
without SSL support, without patching.  The same should be true for R,
and if this is not the case (and I'm not convinced it isn't), then it
should be for the same or similar reasons as pip.  Again, this is
purely from an abstract standpoint in how that software should,
ideally, be designed.

Second: The question is, should it be possible to build/install Sage
(specifically the distribution) without an SSL library?  There are two
sub-problems that arise from this question:

    a) If we agree that that should at least be *possible* (I think it
should be, even if not the default) to build Sage without SSL, then
all of Sage's dependencies should be able to build without SSL.  This
includes pip and R.  If these packages satisfy the first issue then
there is no problem; nothing to discuss.  But your assertion is that R
can't even be built without SSL support unless it is patched.  I would
consider that an upstream deficiency that should be addressed
aggressively just in principle if nothing else.

    b) If we agree that it should not be possible to build Sage
without SSL support (which I think is a poor decision, due to the
first point) then there is no issue about needing to maintain a patch
to remove SSL requirement from any package.  But there is the separate
issue of having this added dependency that may be inconvenient for
some people.

Third: There's a question of who the audience is.  For the "casual"
user who does not care about building things or compiling things or
licenses or patches and just wants to run Sage, and be able to install
packages from pip and CRAN (should the need even arise) this should
all Just Work.  From that point of view, they should be installing
Sage from pre-built binaries, and those binaries should include the
necessary SSL support, period, end of story.  This requirement is
independent of how SSL support is achieved, what that means for
developers or maintainers of binary packages, etc.

Does that help at all?

I think we're nearly in agreement, except maybe about the extent to
which SSL support should be mandated in all cases.

Best,
Erik

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