On Thu, Dec 17, 2009 at 2:16 PM, Dr. David Kirkby
<david.kir...@onetel.net> wrote:
> William Stein wrote:
>
>>> I've never run Gentoo linux and have not run Linux much, so I am not saying 
>>> your
>>> approach of using system libraries, rather than Sage libraries is wrong. In
>>> fact, your approach is more typical of how most software packages are 
>>> built. I
>>> do not know of any other where the source file consists of virtually all the
>>> software needed to build a package.
>>
>> Commercial software is sometimes built this way... but you'll never know :-)
>
> Yes, I realise that. But Sage's approach is quite unusual in the open-source
> world.

Yep.  It's necessary though, because the goal of Sage is to compete
with the closed source math software systems not the open source ones
(and support the open source ones while we're at it too!).

> Normally there is a file which tell you what to install. If there were
> 100 dependencies, I suspect 99% of people would give up.

I also suspect that, but with 99% replaced by 99.9999%.

Imagine if to build Sage from source I told you to please build and
install *developer* versions of the following programs first:  atlas
blas boehm_gc boost cddlib cliquer conway_polynomials cvxopt cython
docutils ecl eclib ecm f2c flint flintqs fortran freetype gap gd
gdmodule genus2reduction gfan ghmm givaro gnutls gsl iml ipython
jinja jinja2 lapack lcalc libfplll libgcrypt libgpg_error libm4ri
libpng linbox matplotlib maxima mercurial moin mpfi mpfr mpir mpir
mpmath networkx ntl numeric numpy opencdk palp pari pari pexpect pil
polybori polytopes_db pycrypto pygments pynac pyprocessing python
python_gnutls ratpoints readline rubiks (3 solvers) sagenb scipy
scipy_sandbox
scons setuptools singular sphinx sqlalchemy sqlite symmetrica sympow
sympy tachyon termcap twisted weave zlib zn_poly zodb3.

Oh, and please install exactly the right versions.  And by the way
many of these have to be patched to fully work (e.g., Python on
Itanium needs a patch or it segfaults when you try to tab complete).

The above task -- building and installing devel versions of all the
above -- isn't easy.    That's basically what these guys packaging
Sage for various linux distros are doing.  I greatly applaud their
effort.

>>> If you were porting to VMS, then I could see that having one method for
>>> Unix-like systems and another for VMS might be quite reasonable. Likewise I 
>>> can
>>> see the logic for Windows. But I'm less convinced myself about the wisdom of
>>> using a different approach on Gentoo, then on any other Unix or Linux 
>>> system.
>>
>> Well the default sage-x.y.z.tar source distribution will continue to
>> build the same way on Gentoo as everywhere else.  François is just
>> properly integrating a Gentoo-provided Sage into the Gentoo
>> environment.   This is exactly like Tim Abbott integrating Sage into
>> Debian.
>
> OK. My understanding of Gentoo is limited. I gather it all gets built from
> source, so I can see the logic.
>
>
>>>> Of course checking whether you can use a system package rather than
>>>> the sage provided one is a big complication, which would get lots of -1
>>>> if suggested. But it is nice to know that it is actually doable.
>>> Yes, I can imagine you would get lots of -1's.
>>
>> It wouldn't be so bad to try this but have it *off* by default, and
>> make it so one can turn it on with an environment variable.
>
> I suspect it needs one environment variable for each package, so one can 
> choose
> whether or not to install a particular library. Perhaps one variable which 
> stops
> all libraries being built, and another specific libraries.
>
> So the readline.spkg would have something like:
>
> if [ "x$SAGE_NO_LIBS" = "xyes" ] || [ "x$SAGE_NO_READLINE" = "xyes" ] ; then
>    # do not build readline, but exit as if built properly.
>    exit 0
> fi
>
> That way, SAGE_NO_LIBS could be used to stop all libraries being built, and
> SAGE_NO_READLINE could be used to stop just readline being built.

Better would be a single environment variable such as

   SAGE_USE_SYSTEM_LIBRARY="readline libz sqlite"

with a space separated list of libraries


>
> I suspect the issue with gnutls not building on OpenSolaris
>
> http://trac.sagemath.org/sage_trac/ticket/7387
>
> could be solved if there were environment variables SAGE_NO_GPG_ERROR and
> SAGE_NO_GCRYPT in the packages for libgpg_error-1.6.p2.spkg and
> libgcrypt-1.4.4.p1.spkg. I say that, as if those headers and libraries are
> deleted from the SAGE_LOCAL, OpenSolaris will get further than it otherwise
> does. (It does eventually fail elsewhere).

Cool.

William

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