Le Thu, 10 May 2012 22:37:15 -0700 (PDT),
P Purkayastha <ppu...@gmail.com> a écrit :

> On Friday, May 11, 2012 1:19:04 AM UTC+8, Snark wrote:
> >
> >
> > 2) I understand the convenience of being able to install sage 
> > with minimum requirements in restricted cases, but still don't get
> > why such a nice endeavour means all other cases must endure a long 
> > compilation and big installations -- why aren't all parts of sage
> > like gcc, and compiled *only when needed* !? 
> >
>  
> I think the problem is versioning. You will need to ensure that the
> correct versions are installed system wide. Supporting something like
> this will require a major overhaul of the build system IMHO. The
> current process ensures that you have a working Sage by simply typing
> "make". Yes, the compile times are huge and there are a lot of
> duplication of libraries but this is as close to a painless compiled
> install as you can get.

Let me state again that I'm not against having a "just type 'make'"
sage available ; as I think was made pretty clear from the point (2)
quoted above.

Most spkg should check if their software isn't already available (with
a suitable version), and if so, just stop there.

The current situation is :
(1) most spkg install themselves unconditionally (long compilation,
huge disk use) ;
(2) worse, other pieces of sage have checks in place to break if one of
their deps wasn't installed like in step (1)!

How do other open source projects do? They have some kind of configure
check for their deps. No deps, no build. The developpers work from the
deps onward. The packagers package ; and if something is annoying for
packagers, upstream moves to make it easy. Making something available
in a "just type 'make'" fashion is just a packaging means among others.

Many projects have packages available for quite a few distributions
(linux, *BSD, windows, mac, etc), precisely because even if the
developpers don't package, the code is flexible enough to accommodate.
Packaging isn't forking. No ugly all-in-one
will-never-enter-the-main-distribution packages.

Any time I mention that, people answer :
(1) about versioning problems : it's less a problem for other projects,
since they just deal with their direct deps and don't have to care
about the deps of their deps and the deps of the deps of their deps,
etc. The recent problems with readline? If sage had used what was
there, there wouldn't be any. I provided patches for debian multiarch
support, because that will be a problem in the future : debian provides
patched programs which deal with it, but since sage doesn't go through
them...
(2) about compatibility issues : like (1).
(3) about subtle bugs : they exist, whether you take care of all
your deps yourself or just let someone else provide them. But a piece of
code used in more various situations will make them uncovered sooner and
pinpoint them better.
(4) "It's impossible!" : it is possible because many distributions exist
which have thousands of packages, and it's possible because many other
projects exist.
(5) "It's too hard!" : it's in fact simpler, since you're separating
roles more clearly (developpers vs packagers). The current sage has to
deal with problems in windows, in MOSX, in debian, in mandriva, in
sunOS, in *BSD, etc! If there's a compiler problem on one platform, let
the packagers for that platform deal with it, if it's not a code issue!
(6) "But sage is so different, so much more complex!" : oh, yes, sage is
different, but precisely because it makes every effort to do so! Oh,
yes, it is complex, but precisely because it wants to take care of the
whole tree of deps instead of only the leafs!

Notice that I'm not just ranting : I open bug reports and provide
patches (which sometimes get rejected because what every other project
would consider a bug is a sage feature!).

Snark on #sagemath

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to