On 6/22/07, didier deshommes <[EMAIL PROTECTED]> wrote: > > This is unbelievably cool. I just had to hard reinstall IPython > > because I hacked it too hard and couldn't hg revert to the previous > > revision. A little tutorial on how one hacks a SAGE package would > > really help developers such as Dave Saunders, who is working on > > linbox_wrap, too. > > I'm not sure how to write this since it seems to be so "easy" to me. > I'll start from the begining, ie I won't worry about dumbing it down > too much and stating obvious things. > > Q: what is a SAGE package? > A: A SAGE package (spkg) is a script that builds an install a piece of > software for your SAGE installation. Thus an spkg usually has 2 things > in it: > - The source code of the software > - The script that will build and install the software into SAGE.
Could you say something about the fact that currently there is no way to uninstall a SAGE package, since we don't track what files are actually installed. That said, we definitely *could* implement something simple that stores a list of all files installed in the install certificate in the spkg/installed directory. I'm thinking of something like computing a list of all files before then after the install, hence getting a list of what was installed (plus a list of files overwritten). Anyway, I'm just randomly throwing this out for comment. Maybe people who do gentoo/rpm/deb's can make a more intelligent comment. For SAGE uninstall isn't a big deal, since essentially nobody ever wants to uninstall a package. > Q: What does one look like? > A: Look in SAGE_ROOT/spkg/standard and you'll find a bunch of files > with .spkg extensions. For example box-1.0.spkg might be a package > living there. An spkg is just a tar ball. If you decompress > box-1.0.spkg, you'll see something that looks like this: > box-1.0/ > spkg-install -- (required) shell script run to install the package > spkg-check -- (optional) runs the packages test suite after > spkg-install succeeds > SAGE.txt -- Any modification done to the src/ directory are > recorded here > /patches -- (optional) any files needed by spkg-install for patching > /src -- the software that has to be installed. > /.hg -- A mercurial repository that has > spkg-install, spkg-rebuild, > spkg-check, SAGE.txt and all contents patches. Excellent and clear. You're really doing an awesome job on this "coding sprint" project!! > Q: What's new about this format? What's all the fuss about? > A: It was decided that: > -- Having the installation scripts under version control would be a > good idea for people that have to make and modify spkg's frequently. > -- Separating source code and installation scripts would would keep > us from the temptation of forking other projects. I also think this > will force us Cool. 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/ -~----------~----~----~----~------~----~------~--~---