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.

