Red Hat Bugzilla – Bug 146024
liblinc.so.1 not included with gnome-libs
Last modified: 2007-11-30 17:10:59 EST
On GNOME 2.2 systems, such as RH9 or RHEL3, using:
pkg-config --libs libgnome-2.0
when compiling applications caused them to be linked to liblinc.so.1.
This library does not seem to be included in my FC3 installation,
which is causing some applications (in particular, a version of zenity
I compiled) to no longer run.
Mark may know the story.
Yeah, so the story is:
- ORBit2 used to explicitly put the link line for all its
dependancies in Libs: (in the pkgconfig file) so anything that
Requires: ORBit-2.0 ended up with -llinc on the link line
(Would have been the same problem if linc had been in the
- linc was subsumed by ORBit2, everything in RHEL4 has been
rebuilt or upgraded and, so, no package requires the linc
- So, if there are programs that were built against libgnome
on RHEL3, and those programs aren't part of packages which
require linc (e.g. with autogenerated requires), then those
programs are hosed if you upgrade from RHEL3 to RHEL4
- To workaround this, you should be able to install the RHEL3
linc RPM on the upgraded system
I'm not sure if we can do anything about this really - if deprecated
packages get removed on upgrade when nothing requires them, then
there's not much we can do about programs that either aren't packaged
or don't have the appropriate requires.
Interestingly, I think the RHEL3 eclipse has the same problem on
RHEL4. I don't know why that doesn't have the correct requires.
In eclipse upstream we stopped using pkg-config so we could avoid
linking to liblinc. I guess my thoughts on this break was that
distributions would install liblinc as a requirement for ORBit2, since
otherwise I think ORBit2 is breaking binary compatibility.
I don't think there's any break in binary compatibility here - well,
maybe at the distribution level there is. We deprecated and removed a
library, but of course some programs which were built on RHEL3 may
still be linked against the library. There's nothing unusual about
that - its the same for any deprecated/removed library.
But there are two unusual things here, both of which are bugs IMHO:
- applications need never have linked directly to liblinc. That
was an ORBit2 bug and has since been fixed, but the fix doesn't
help us now
- applications that did link directly to liblinc should have
had a Requires: linc (autogenerated most likely). Do you know
why this didn't happen for eclipse?
I'm not filing this bug about eclipse in particular, although I knew
about the problem because we had to work around it. This came about
because I installed FC3 on my RHEL3 machine dual-boot for some
testing, and GNOME applications I had compiled myself (such as zenity)
I could not run on a native FC3 machine, causing a bunch of scripts to
For eclipse, we don't ship RPMs, we post binaries on eclipse.org and
found that users on FC systems don't have liblinc installed by default.
Okay, my argument is that if we deprecate and remove any library, then
any program that links to the library and is either
a) a part of a package which doesn't require the library or
b) is not owned by any package, but built from source
is going to break on upgrade and there's not a whole lot we can do
So, as long as we have the policy that we can deprecate libraries if
nothing in the distro is using it, then these issues are going to come up.
The unfortunate part here is that programs only accidently linked
directly to liblinc.
FWIW, you should be able to install linc on FC3 to workaround the
problem - I suspect the RHEL3 RPM might even work.