GNOME Bugzilla – Bug 348123
Hide Bonobo from public EBook API
Last modified: 2013-09-14 16:49:38 UTC
Currently the fact that EBook uses Bonobo is exposed via a function that cannot be used by uses of libebook, as technically it's private. e_book_view_new() takes a Bonobo object and a EBookViewListener object, all of which is implementation details. This is also confusing: the number of people that have tried calling e_book_view_new() and wondered why they can't make it work... Attaching a patch that moves this function into e-book-view-private.h, which is not installed. This removes Bonobo and the listener from the public API, which is good.
Created attachment 69245 [details] [review] Patch
Created attachment 69312 [details] [review] Revised patch This patch fixes a warning in e-book-view.c and removes the Bonobo include from e-book.h.
yepp. making the life of potential contributors easier is important.
The patch can be committed Ross.
Committed to head, thanks!
Re-opening as this was reverted before release.
Ross : Please allow me to confer with Michael Meeks and revert back on available options - like skipping a soname bump for this change. Thanks.
Looks good to me - as long as we don't bump the .so name - which will screw OO.o. If the API is really not used externally there should be no need, ISVs doing real integration to any of this code on Linux will use dlopen anyway [ as we do ]. In general though it'd be good to do a quick audit for unused / internal APIs that crept into header files in error, and at least add #ifdef E_D_S_INTERNAL_API ... #endif guards to all of that. We do this in ORBit2, and treat the protected APIs as internal - and (of course) it's far quicker to scan/markup a lot of troublesome APIs that way. HTH.
Committed the patch after concurring with all the stakeholders w/o .so name changes. Ross and Michael : Thanks for all the help.