After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 756654 - private ABI is exposed via public headers
private ABI is exposed via public headers
Status: RESOLVED FIXED
Product: yelp
Classification: Applications
Component: General
3.18.x
Other Linux
: Normal normal
: ---
Assigned To: Yelp maintainers
Yelp maintainers
Depends on:
Blocks:
 
 
Reported: 2015-10-15 17:15 UTC by Michael Biebl
Modified: 2015-10-26 22:24 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Michael Biebl 2015-10-15 17:15:27 UTC
In 901b4fb82e007e9d93deb3f1e13cc36d5b2bf37b parts of libyelp were moved into a pkg-private libyelpcommon library. This includes yelp-uri.c, yelp-uri-builder.h and yelp-settings.h. 
This means, those symbols are no longer part of the public ABI.

Yet the header files yelp-uri.h, yelp-uri-builder.h and yelp-settings.h are still installed as public API in /usr/include/yelp

If those symbols are not meant to be part of the public API, the header files should not be installed.

If those symbols are supposed to be part of the public API, the libyelpcommon library should move to $libdir and have a proper pkg-config file.
Comment 1 David King 2015-10-26 12:28:34 UTC
(In reply to Michael Biebl from comment #0)
> In 901b4fb82e007e9d93deb3f1e13cc36d5b2bf37b parts of libyelp were moved into
> a pkg-private libyelpcommon library. This includes yelp-uri.c,
> yelp-uri-builder.h and yelp-settings.h. 
> This means, those symbols are no longer part of the public ABI.

This seems to only be the case if providing some extra options to the linker, and not the general case. Nevertheless, this should be fixed on master with commit e6444f9cf1f1d204f302d8e461b56ded477a0259.
Comment 2 Michael Biebl 2015-10-26 22:24:33 UTC
Hm, so the fix for this is to declare private API/ABI public again. I'd call that a very creative fix for the issue at hand.
So we are going back and forth on this.

I begin to wonder if libyelp should really be public. It's ABI seems to break on each new majore GNOME release and there are no 3rd party consumers of that API.

Maybe it would be easier to just turn libyelp into a noinst_LTLIBRARIES and link it statically inside yelp.