[sage-devel] Re: Some work on Minimal Sage in Gentoo

2007-03-18 Thread Mark

Here's a basic ebuild to merge sage-2.3 to /opt.  It is not in
compliance with gentoo quality control standards, etc. etc.  It puts
sage under /opt/sage/ as listed in the top-level sage makefile.

Gentoo complains of a number of fast and loose things going on in
some of the compiled code.  Some of these things might be necessary
(for sage) even if gentoo complains about them.   I'll put the log up
later (my dept. server seems to be done ATM).

**
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

DESCRIPTION=Software for Algebra and Geometry Experimentation
HOMEPAGE=http://modular.math.washington.edu/sage/;
SRC_URI=http://modular.math.washington.edu/sage/dist/src/${P}.tar;
LICENSE=
SLOT=0

KEYWORDS=x86
IUSE=

DEPEND=
RDEPEND=${DEPEND}


#S=${WORKDIR}/${P}

src_compile() {
emake || die emake failed
sed -e 's:\(^SAGE_ROOT=\).*:\1/opt/sage:' sage  tmpfile
mv tmpfile sage
}

src_install() {
emake DESTDIR=${D}/opt/sage install || die emake install
failed
}


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~--~~~~--~~--~--~---



[sage-devel] Re: Some work on Minimal Sage in Gentoo

2007-03-16 Thread William Stein

On 3/16/07, Mark [EMAIL PROTECTED] wrote:
 I've wanted to make a minimal sage for some time.  I finally got
 motivated to do some work on it. Don't ask what I _should_ have been
 doing.
 I'm working with gentoo linux ... it has nice package management and
 many of the things I needed were included already.  I'll make as many
 comments as I can to help other reconstruct what I did.

 Essentially, I did these steps:

 1) Extracted sage-2.3 from the overall sage distribution.

 tar xf sage-2.3  # the top level distro
 cd sage-2.3/spkg/standard
 tar xf sage-2.3  # the specific sage code
 mv sage-2.3 workdir

 2) Use a different setup.py and a edit one small thing

 cd workdir
 # add marksetup.py to workdir
 cp other/location/marksetup.py ./
 # fix one path problem
 sed -e 's:../../../:../../:' sage/libs/cf/cf.pyxe  tmpfile
 mv tmpfile sage/libs/cf/cf.pyxe

 3) Build the csage stuff by hand and make it available
 this library build isn't quite right

I'm curious  -- Is there something wrong with SAGE's csage build process?

 4) Make sure the following programs are installed via portage
(gentoo's package manager):
  you might need more ... i already had a bunch of stuff installed
  you might have to unmask some of these as well (a gentoo thing)

I just want to emphasize concern here.  SAGE is not likely to work correctly
if you replace the components it uses by ones with different versions.  In
many cases we program around or patch issues in specific versions of
the dependent programs, and in other cases we use new features that
were recently added.   For example...

 maxima 5.9.3

In maxima, I think version 5.10, a lot of the special functions stuff was
reorganized -- there's no way SAGE will past its test suite with maxima
5.9.3.  Moreover, SAGE currently ships with maxima 5.11 and assumes
it is available.

 gsl 1.8

SAGE ships with gsl 1.9.  I don't remember if we had to change anything
going from 1.8 to 1.9 -- I think probably not, though there were some important
bug fixes in 1.9.

 ntl 5.4-r1

SAGE will work fine with that.

 singular 3.0.2.1 (i used my own ebuild, but the built in should be ok)

Probably this is fine...

 pexpect .999

SAGE uses pexpect version 2.0.  The current official version of pexpect
is version 2.1, but SAGE will not work with pexpect 2.1 at all.  I have no
idea if SAGE will work at all with pexpect .999.

 blas-atlas-3.7.24

Should be fine.

 mpfr-2.2.1_p1

Should be fine.

 numpy-1.0.1-r1

Should be fine.

 5) use my shoddy ebuilds for these:
  you will need to fish out singular-3.0.2-gentoo.diff for factory
to use the ebuild I have here

 pari 2.3.1 (simply a version bump from 2.3.0 in portage)

SAGE should not work at all with an officially released PARI.
For SAGE we do some nontrivial patching to the library, e.g,.
replacing calls to exit() with calls to abort().

 factory 3.0.2.1 (from singular)

I think Martin A might have fixed a bug in factory that needed
to be fixed in order to use it from SAGE.

 iml-1.0.1

I made some minor changes to IML for using in SAGE,
but nothing that affects the interface.  The changes were
to remove the atlas dependency.  However, Martin A. implemented
arbitrary precision p-adic system solving for the IML included
in SAGE, whereas the official release version doesn't have that.

 mpfi-1.3.4

Carl Witty said he fixed several bugs in mpfi that were uncovered
in the course of wrapping it for use in SAGE.

 mwrank-061003

The official release should be fine.

 6) Build it:
 python marksetup.py build

 7) Figure out everthing that built, but has run time errors!
 to be determined
 I haven't tested the produced code AT ALL.  It may well be complete
 junk.
 I just wanted to get what I've done up so others can (maybe) take
 advantage of it
 and/or make progress on it.


 Files (ebuilds and marksetup.py) can be found at:
 http://www.cs.pitt.edu/~fenner/work/projects/minimal-sage/minimal-sage.tgz

Just out of curiosity, how difficult would it be to create a non-minimal normal
SAGE ebuild?  This would likely actually work perfectly, and hence would
get a lot of use.  Bobby Moretti did this with a Debian package at one point,
and it was pretty impressive and would have been really useful had somebody
volunteered to maintain it.

William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~--~~~~--~~--~--~---



[sage-devel] Re: Some work on Minimal Sage in Gentoo

2007-03-16 Thread Mark

William,

Well, I had a nice reply typed and ... and I lost it.  Typical.  I'll
try again ... but it won't be nearly as witty.

Gentoo has the following higher versions available (then what I used):
pexpect-2.1 (not sure why I only read .999)
maxima-5.11.0
gsl-1.9

I forgot to mention that there is also a pyrexembed ebuild in my file
tarball.


On the issue of a batteries included sage for gentoo:  this is
definitely doable.  In fact, I could the following roadmap (note,
portage is the gentoo package build and management system):

1)  Simple ebuild that just runs the sage build process and install
all of the sage stuff out of the way (/opt/sage).  The difficult
step would be divorcing the build time location from the run time
location (b/c portage does a build to a dummy location and then
copies it to the live filesystem).

2)  Individual ebuilds for each sage specific package that install
into
(/opt/sage).  The ebuilds would live in their own space (not the
gentoo main tree).  They would also be renamed to prevent
conflicts with live packages.

Now the fun stuff:

3)  Use as many live ebuilds as possible and as few custom
ebuilds/sources as possible.  Install into the main tree when
possible but if we need a customized package for sage, we could
put it somewhere out of the way.  At some point, we'd also add
ebuilds
for those packages that aren't in portage at all.

4)  Use only live ebuilds.  Have separate ebuilds for customized
packages (treat these as unique packages unrelated to the
mainstream version).  Portage can install multiple versions of
packages but I'm not sure how general it is.  In the worst case,
we could have separate subdirectories for different versions if
need be (/usr/lib/ntl-123 and /usr/lib/ntl-sage/ or so).  Making
sure that there aren't conflicts between mainstream and customized
versions would be a pain.

Anyway, just some thoughts.

Regards,
Mark


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~--~~~~--~~--~--~---



[sage-devel] Re: Some work on Minimal Sage in Gentoo

2007-03-16 Thread Mark

William,

Sorry.  About the csage build process:  I built by hand b/c the
automated process has the whole nine yards of autoconf tools with
it.  I couldn't find the location for specifying Python.h and I
noticed there were only two source files and two headers.  So, I
compiled by hand.  The problem I referred to was in my hand building
process  I don't think I built it 100% correctly.

Mark


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~--~~~~--~~--~--~---



[sage-devel] Re: Some work on Minimal Sage in Gentoo

2007-03-16 Thread William Stein

On 3/16/07, Mark [EMAIL PROTECTED] wrote:
 Gentoo has the following higher versions available (then what I used):
 pexpect-2.1 (not sure why I only read .999)

Do not use pexpect-2.1.  It is very broken.

 maxima-5.11.0
 gsl-1.9

Good.

 On the issue of a batteries included sage for gentoo:  this is
 definitely doable.  In fact, I could the following roadmap (note,
 portage is the gentoo package build and management system):

 1)  Simple ebuild that just runs the sage build process and install
 all of the sage stuff out of the way (/opt/sage).  The difficult
 step would be divorcing the build time location from the run time
 location (b/c portage does a build to a dummy location and then
 copies it to the live filesystem).

One option is to just copy the build directory over to the run-time
location at the end of the build, i.e., as make install.  This should work
if you run SAGE once from the target location.  Let me know when
you succeed at doing this.  It would be a significant step forward
for SAGE.

 2)  Individual ebuilds for each sage specific package that install
 into
 (/opt/sage).  The ebuilds would live in their own space (not the
 gentoo main tree).  They would also be renamed to prevent
 conflicts with live packages.

OK.

 Now the fun stuff:

 3)  Use as many live ebuilds as possible and as few custom
 ebuilds/sources as possible.  Install into the main tree when
 possible but if we need a customized package for sage, we could
 put it somewhere out of the way.  At some point, we'd also add
 ebuilds
 for those packages that aren't in portage at all.

Makes sense.  Note that you really _must_ look in the SAGE.txt
files and spkg-install files in each .spkg to see if any patches were
needed for SAGE, and the same should be done when a package
gets upgraded.

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~--~~~~--~~--~--~---