[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Sage 5.9.beta1 and debian : progress report



Le 27/03/2013 20:34, Julien Puydt a écrit :
- change debian_pruner.py's "sagedir=" line to point to where you
unpacked sage sources

- run debian_pruner.py to do magic symlinking

To be more explicit about what the sage pruner does: you have to know that the sage build process knows if a spkg (say foo-3.14.spkg) has been built by checking if $SAGE/spkg/installed/foo-3.14 exists.

So what the pruner does is decide if some part of the build process can be pruned (hence the name) by checking (using the spkg_to_dpkg dictionary) which debian packages are on the system. If it sees it has all required debian packages, then it does the following :

- copy the directory structures from the debian packages in sage directory

- symlink all the files from the debian packages in the sage directory

- create the $SAGE/spkg/installed/foo-3.14 (with a line saying it's using the system package)


Additionally, there is a 'workarounds' system which will also add even more symlinks when debian's directory structure isn't the one expected in other packages, or replace some symlinks by copies if sage needs to write in them later.

Of course, if the pruner doesn't create $SAGE/spkg/installed/foo-3.14 (because it's unsupported or the debian packages aren't found) then the sage build system will build it.

If you know what a build stamp is, a file in $SAGE/spkg/installed/ is just that ; and if you know about gnu stow, it's mostly what my symlinks are (and that's why the functions have 'stow' in their names).

If that isn't clear enough, please ask!

Snark on #debian-science


Reply to: