Please do not reply directly to this email. All additional comments should be made in the comments box of this bug report.
Summary: Review Request: fox - A C++ library for GUI development
https://bugzilla.redhat.com/show_bug.cgi?id=431665
------- Additional Comments From pertusus@free.fr 2008-03-08 04:04 EST ------- (In reply to comment #11)
(In reply to comment #6)
Adie.stx looks like a config files. It should be in %_datadir, and it should be possible to override it with a file in %_sysconfdir and a file in $HOME/.something.
It is needed to be useful although an RFE will change that in the future not sure when though.
In the mean time Adie.stx should be better located.
fox-config should be a wrapper around pkg-config calls to avoid multilib conflicts.
I've removed it now in a newer version thats nearly ready.
I don't think this is the right way. Other packages building against fox may need it. Better is to propose upstream a fox-config-pkgconfig which would be a wrapper around pkgconfig.
the pkgconfig file for fox is wrong. There is certainly no need to link against all those libs to link against fox. Libs: should only contain link flags for libraries that will be used directly by applications linking against fox. Libs.static: should contain link flags for the remaining libraries linked against the fox library (but not needed directly by applications linking against the fox library).
You can have an idea about that by doing
ldd -u -r /usr/bin/adie
I have removed the static libraries using the *.la how do you propose I go about fixing this?
The .la files are not static libs. They are text files created by libtool to help linking/dlopening on platforms with insufficient shared library support, and are therefore not needed on linux in general and in fedora.
The issue of the pkgconfig file is completly different. The content of the .pc file is wrong. Indeed when linking against shared libraries you should only link against the library which provides the symbols you are using in your application. But if you look at the fox .pc file you'll see that all the libraries that are linked against fox are brought in: pkg-config fox --libs -lFOX-1.7 -lXext -lX11 -lXcursor -lXrender -lXrandr -lXfixes -lXi -lpthread -lrt -ljpeg -lpng -ltiff -lz -lbz2 -lm -lGLU -lGL
Those are not needed for an application linking against fox .the only link flag needed is -lFOX-1.7.
Now when you link statically, you have to precise all the libraries in the link command. Therefore pkgconfig has a way to distinguish between what is needed to link dynamically and what is needed to link statically.
in man pkg-config you can look at Libs and Libs.private in the METADATA FILE SYNTAX section.
As a side note there is also a Requires.private which has the same relation ship with Requires than Libs.private with Libs.