New (experimental) PETSc Debian package
Adam C Powell IV
hazelsct at mit.edu
Thu Aug 3 19:51:31 CEST 2000
Hooray! My first Debian package! Still preliminary, but I think I'll
celebrate anyway. :-)
Get the source and i386 binary debs at http://lyre.mit.edu/~powell/debs
(or follow the links buried in http://lyre.mit.edu/~powell/debian.html).
Issues/questions:
* It's currently in section devel (shlibs in libs, docs in docs),
maybe it belongs in math?
* I put the header files in /usr/include/petsc, should they just go
in /usr/include? There are quite a few of them...
* Once installed, you can build against it using
PETSC_DIR=/usr/lib/petsc (bmake is there, include and lib are
symlinked somewhat appropriately, see below) and PETSC_ARCH=linux.
* It currently depends on mpich, because there are a couple of things
I can't find in the lam packages (like MPE, and the machines list).
* It currently depends on atlas, because it's so much faster! I'll
change this if anyone complains.
* Shared libs are built from static ones, which may break on
platforms requiring -fPIC.
* There doesn't seem to be a "make install" target, so all of that is
done in debian/rules, which seems inelegant.
To do (at some point in the future :-):
* Fix the link in /usr/share/doc/petsc-doc/readme.html to point to
/usr/include/petsc/petscversion.h .
* Make the binary library dependencies right. (Currently, petsc1
only depends on libc6, it should depend on mpich, atlas2 and
xlib6g; petsc-dev should depend on mpich-dev, atlas-dev and
xlib6g-dev.)
* Build the C++ wrappers using BOPT=O/c++ and include in packages as
appropriate.
* Build both sets of libs with BOPT=g and BOPT=O (and g/c++, O/c++)
with switching between them in /etc/alternatives. This may be a
bit messy with my current placement of libs in /usr/lib...
* Add symlinks from /usr/lib/petsc to readme.html and docs, add the
makefile, and redo the symlink to /usr/lib so BOPT works right,
that way PETSC_DIR will have everything people are looking for.
* Try to put all (well, perhaps most, I don't know what issues may
arise) of the examples in petsc-dev.examples, or maybe a separate
petsc-test package, so one can cd
/usr/share/doc/petsc-[dev|test]/examples and type "make
BOPT=whatever testexamples testfortran" and it should all just
work...
* Oops, just discovered a native configure script in bin! Using this
would make the patch-debian file a lot smaller; it seems configure
would be more "elegant" than the current approach, and easier to
reconcile with future upgrades.
* Package BlockSolve, ParMETIS, etc., make the PETSc makefiles use
them, and make the packages depend on them. :-)
So, please try it, bang on it, bugreport and patch, share and enjoy it!
-Adam P.