On Feb 23, 2010, at 9:53 PM, Robert Bradshaw wrote:

On Feb 23, 2010, at 1:44 PM, Kasper Peeters wrote:

It would be better for end users if we built standard rpm/deb/etc.
packages that integrate well with the rest of each Linux, OS X,
Solaris, Windows, etc., operating system, and of course regularly
tested that the full test suite passes on each system, and when
packages on those systems get old or too new, deal with those
problems.  That would be wonderful.  Unfortunately, we have to be
realistic, given the resources that we have available.

The problem is that, by relying on your own versions of many tools
and libraries, you essentially prevent other people from helping
you with packaging for those rpm/deb/etc. systems. Because those
other people are now burdened with the task of separating those
libraries and patching things on the Sage side. Which is harder for
them, because they do not know what to watch out for. As a result, you are burdened with more work, because now _you_ have to take care of making
Sage installation/compilation easy, instead of having distribution
packagers take care of that.

We would have to take care of making Sage installation/compilation easy anyways, as many of the packages we rely on (often the most fragile ones) are rather specialized math programs that aren't always in all the standard distributions, and it would fall on us to do all the work to get them into all the packaging systems. And we would probably have to roll our own for Solaris, OS X, or any other platform that doesn't yet have a large packaging distribution infrastructure. It would also make Sage releases much more dependent on outside people and projects--right now if one finds a bug in an upstream package one can get it into the next sage release rather than wait for upstream to accept and push it. Also if there were one package repository/system that all supported platforms used, things would be much simpler.

I have some personal experience with Cython. I'm very greatful for whoever makes .dep and .rpm packages of Cython, but I do have to admit that they're not always up to date and I'm glad I can get the new Cython into Sage before waiting for every packaging system we would rely on to finally upgrade to the latest.

The consequence is clearly visible: there are no up-to-date packages
of Sage for any of the Linux distributions.

I'm playing devils advocate here a bit, but there are up-to-date binaries of Sage for many Linux distributions, so it would seem that's (for the moment) a more effective way to go. Note that if they accepted monolithic packages this would be much easier.

Which means that for many
users, installing Sage is actually _harder_ than installing most other
software.

That is sad but true.

But don't get me wrong: I am definitely not saying that it is easy to
make Sage deal with distribution-supplied libraries, and I fully
understand the historical reasons for shipping Sage with such a large
number of spkg's.
What I am saying is that, in the long run, it is much better to steer
clear of that.
And therefore, that it would be unwise to add more of your own
versions
of libraries, _especially_ when it concerns libraries which every
distribution
already ships with (like gcc-lib). I can see that Macports is having
problems
with the 'we ship everything ourselves' logic, and I don't see how
Sage is
going to avoid that.

Despite my defense of the way things are, I am very excited about the recent push for the Gentoo port, and I'm curious to see how it will be maintaining it over, say, the next year. We will see if, for example, library versioning issues are a major headache or non- issue. Perhaps eventually this will even become the default way of building/distributing Sage for Linux. I'm not sure how we would move away from the monolithic source and binary model for other platforms though, especially given our mission of being a viable alternative to the commercial offerings.

[pressed send too soon]

Another thing I really like about the monolithic approach is that it makes it really easy to install Sage as non-root, as many times as you want, and to move and delete them. Of course some users could care less about this.

- Robert

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