Bug 116914

Summary: extra unneeded lib in Libs: in .pc file from gtkspell-devel
Product: [Fedora] Fedora Reporter: Kirill Kolyshkin <kolyshkin>
Component: gtkspellAssignee: Matthew Barnes <mbarnes>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: mitr, msw
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 2.0.11-2 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-05-24 14:37:28 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Kirill Kolyshkin 2004-02-26 13:23:37 UTC
Description of problem:
When building software that uses gtkspell, configure usually calls
'pkg-config --libs gtkspell-2.0' and adds the result to LIBS. The
problem is pkg-config returns -laspell among these:

# grep Libs /usr/lib/pkgconfig/gtkspell-2.0.pc
Libs: -L${libdir} -lgtkspell -laspell
# pkg-config --libs gtkspell-2.0
-Wl,--export-dynamic -lgtkspell -laspell -lgtk-x11-2.0 -lgdk-x11-2.0
-latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0
-lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

So, software is being build with libaspell, which is actually not
needed, because gtkspell library requires it anyway:
[root@kir src]# ldd /usr/lib/libgtkspell.so | grep aspell
        libaspell.so.15 => /usr/lib/libaspell.so.15 (0x40406000)

The problem is not that a problem, until you try to build an rpm from
software which uses gtkspell. The problem is resulting package depends
on exact libaspell file (in my case this is /usr/lib/libaspell.so.15).
But it should not depend on libaspell, since gtkspell already depends
on it!


The solution is to remove -laspell from Libs: line of
/usr/lib/pkgconfig/gtkspell-2.0.pc file. Packages builds and works
fine, and dependency on libaspell file is gone.

As I understand, Libs: line in .pc file should contains libraries that
are needed to build some software that uses that package, and not the
libraries that this very package was build with.

Version-Release number of selected component (if applicable):
$ rpm -q gtkspell
gtkspell-2.0.4-4

How reproducible:
Try to build rpm from some program that uses gtkspell (in my case this
is logjam from http://kir.vtx.ru/logjam/). Check its depencencies:

Actual results:
$ rpm -q --requires logjam | grep aspell
libaspell.so.15


Expected results:
Package that uses gtkspell should not require libaspell.so

Additional info:

Comment 1 Kirill Kolyshkin 2004-02-26 13:45:01 UTC
Added Matt Wilson to Cc: as he is actual packager of gtkspell

Comment 2 Matthew Barnes 2006-05-17 14:14:01 UTC
Thanks for the bug report.  Sorry this has been in limbo for so long.  I just
recently took over packaging duties for gtkspell.

I have forwarded this bug to the upstream maintainer to get this take.
(Or at least I tried... gtkspell-devel-list seems inactive and I'm not sure if
Nathan Fredrickson is still the current maintainer.)

The tricky bit is that gtkspell links with the pspell library if the aspell
library is not available at configuration time.  But I think the gist of your
argument is still correct, so I will fix this locally if I don't hear back from
upstream.