I'm trying to produce Linux packages, in both `.rpm' RedHat package
format and also in `.deb' Debian Package format, of the compiler and
libraries for a new language (Mercury).
Unfortunately we have found that libc 6.0 (glibc-2.0) is not binary
compatible with libc 6.1 (glibc-2.1) as far as libraries are
concerned. This means that if we ship binaries built with libc 6.0
and a user installs them on a system running libc 6.1, then although
the binary executables that we ship, e.g. the compiler, work fine,
unfortunately when the user tries to link his program with the Mercury
libraries, the result is either link errors, or an executable that
when run gets segmentation faults.
Now, having to ship different binaries for libc 6.0 and libc 6.1 is a
complete pain (particularly when multiplied by the three package
formats .tar.gz, .rpm, and .deb, not to mention all the different
architectures...), but this incompatibility is at least documented in
the glibc FAQ, so I'm not complaining too much about that.
My question is about the .rpm and .deb package systems.
What do we need to do to ensure that the user will not be able to
install a package built for libc 6.0 on a system with libc 6.1?
Any hints on how to do this would be most appreciated.
P.S. Email CC's of any follow-ups would be appreciated.
WWW: <http://www.cs.mu.oz.au/~fjh> | of excellence is a lethal habit"