New (experimental) PETSc Debian package

Adam C Powell IV hazelsct at
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
(or follow the links buried in


   * 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
   * Build the C++ wrappers using BOPT=O/c++ and include in packages as
   * 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
   * 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.