PETSc Debian Package
Current Status
Adam Powell, last modified November 13, 2005 for version 2.3.0-1, upstream
petch level 2
Package archive,
PTS page
NOTE: I have removed all but the latest package for each PETSc release
from my archive (keeping of course the latest woody and sid, etc.). You may be
able to get most of them on Fumitomo Ikai's
Debian snapshot server
(description,
DP story), or you can
write to me to request them.
I have also removed the latest stable backports from the archive linked
above; you can find them instead in my aptable
archive. Eventually I will do this for the latest unstable packages as
well.
BREAKING NEWS: Anthony Towns has okayed upload of PETSc 2.1.3 into
woody, so we won't have to release obsolete 2.1.1 (which is broken on IA-64
and HPPA)! August 4, 2002: Woody released with 2.1.3-1.woody.1. Very cool.
This page documents my effort to package the
PETSc software suite
for the Debian operating system. PETSc is a scalable framework for
scientific computations on parallel processing machines or clusters, currently
focused on solving systems of partial differential equations. The
upstream authors are at Argonne National Labs.
I'm also working on a 3-D viewer library, see the
illuminator page.
Package description:
The package description that was here is now in the README.Debian
file that ships with libpetsc2.2.0-dev (libpetsc2.3.0-dev in
unstable).
Questions/issues:
- On PPC, some of the tests fail (bug
91322). I'll have to debug this at some point, and maybe try a newer
compiler.
- The linux_alpha_dec PETSC_ARCH doesn't currently build properly.
This will get fixed soon. Like, when the fstat bug is resolved in
the Q Fortran compilers... UPDATE: as of 2.1.1.30-1, this works with static
libs (shlibs disabled), though it is likely broken in 2.1.3-1, because linking
C executables with fortran shlibs doesn't seem to work.
- It would be nice to have pre-compiled mpich and lam versions available (see
bug 189327). But the archive bloat
would be pretty substantial (even with just mpich, the archive has 595 MiB of
PETSc packages!), and it's easy to build from source using either one.
- Need to somehow get PETSC_SYS_LIB and PESC_MPI_LIB from
$(PETSC_DIR)/bmake/$(PETSC_ARCH)/variables and packages into petsc.m4
file.
To do (in roughly decreasing order of priority):
- Make a C++ class library in a thin wrapper (header files) and contribute
upstream, along with a test or two. (Soon obsolete because PETSc 3 will use
SIDL)
- (Long-term) Think about how to incorporate the complex libs into this
framework (possibly as static libs only?). UPDATE: these will now only bulid
with the C++ std::complex class, so we'll have to make the C++ libs available
in order to make this work.
- (Long-term) Patch the configure.in to make it work and send the patch
upstream. Using this would make the patch-debian file somewhat smaller and
would get rid of some of the ugliness in rules' install targets, and would be
easier to reconcile with future upgrades. UPDATE: the system now reportedly
works, but the Debian packaging still doesn't use it; I'll test and adjust as
necessary when I find the time. UPDATE: with version 2.1.5, upstream
switched to a python version of configure, which is likely to not work right
with anything I try. I'll leave it as-is until 3.0 is released.
- (Long-term) Make an unstructured mesh class with ParMETIS distribution
and 3-D viewing, and contribute it upstream. UPDATE: PETSc 2.1.1 seems to
already have such a class, at least for 2-D triangular meshes; it was removed
for 2.2.x to build into the 3.x series, and then merged back into 2.3.1 (not
yet released).
Finished projects:
- Switch to using shared libraries, including shared libmpe when Junichi
closes bug 143192, and libg2c
when my (forthcoming) wishlist bug for that is closed. I've already started
this with 2.1.3-3, and will rebuild and upload when 143192 is closed. UPDATE
2002/9/7: it seems g77 3.1 and 3.2 have shared libg2c, 3.2 even splits it out
into a separate package! So in unstable, I've moved to gcc/g77/g++-3.2 as of
2.1.3-3, and it seems to work, though it will be broken on HPPA and IA-64
until 143192 is closed. DONE in 2.1.3-3, actually works in 2.1.3-7.
- Migrate to the Doogie Build System or something like it so I can cleanly
separate various patches made to the various pieces of PETSc, from upstream
patches to my own C++ header patches, bmake files, etc. DONE in
2.1.3-2.
- Add a petsc.m4 to /usr/share/aclocal. DONE in 2.1.3-3, actually works in
2.1.3-4.
- If bug #69864 is approved
(proposed Debian policy amendment), then change
/usr/share/doc/petsc2.0.29-examples/examples to src. UPDATE: this policy
amendment has not passed, but the package change was made a long time ago:
the -examples package was eliminated and the examples tree tarball added to
the -doc package.
- Switch back from gcc-3.2 to gcc so dependencies like
Illuminator will build again. DONE in
2.1.3-8.
- On ARM, parts of libpetscmat do not compile successfully due to an
internal compiler error in gcc. RESOLVED with gcc-3.3.
- Make PETSc link to the new
hypre
package (first uploaded 2003/10/2) and
(Par)METIS
package (first uploaded 2003/3/27). Note:
because the licenses make hypre and *METIS non-free, this would split the
PETSc package into free and contrib versions, which I will not upload because
of archive bloat (with stable, testing and unstable free mpich versions
alone, it takes nearly 595 MiB!). But it would be good to have a
compile-time option to build hypre- and parmetis-linked PETSc, as there is
for lam. DONE in 2.2.0-2.
Adam Powell