Bug 146024 - liblinc.so.1 not included with gnome-libs
Summary: liblinc.so.1 not included with gnome-libs
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: ORBit2
Version: 3
Hardware: All
OS: Linux
medium
high
Target Milestone: ---
Assignee: Mark McLoughlin
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-01-24 19:40 UTC by Billy Biggs
Modified: 2007-11-30 22:10 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2005-01-28 08:06:22 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Billy Biggs 2005-01-24 19:40:22 UTC
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.

Comment 1 Havoc Pennington 2005-01-24 23:46:23 UTC
Mark may know the story.


Comment 2 Mark McLoughlin 2005-01-25 09:25:11 UTC
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
     ORBit-2.0 Requires:)

  - linc was subsumed by ORBit2, everything in RHEL4 has been
    rebuilt or upgraded and, so, no package requires the linc
    package.

  - 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.

Comment 3 Billy Biggs 2005-01-25 13:18:18 UTC
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.

Comment 4 Mark McLoughlin 2005-01-25 13:37:26 UTC
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?

Comment 5 Billy Biggs 2005-01-25 14:03:33 UTC
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
fail.

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.

Comment 6 Mark McLoughlin 2005-01-28 08:06:22 UTC
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
about it.

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.


Note You need to log in before you can comment on or make changes to this bug.