Mailinglist Archive: opensuse-packaging (114 mails)

< Previous Next >
[opensuse-packaging] Best practices for a library with backends?
Hi,

I am getting involved with https://github.com/libyui , the UI
library powering YaST.

The basic design is a core library, libyui, which provides the API
but has no actual UI. One of the 3 backends, libyui-{ncurses,gtk,qt},
is needed.

I am looking for examples of best practices of versioning the shared
libraries and setting up the dependencies among the parts of the
framework.

Current problems of libyui in this area:

- not being careful about the so-versioning. That is a solved
problem for a single(!) library, see
https://github.com/openSUSE/libzypp/blob/a01b41c7dfe42a1fae9d9431fbad61997fb04b5a/VERSION.cmake

- the user-facing ABI of libyui and the backend-facing ABI are not
well separated. Is there any project which has figured this out?

- expressing the dependency "the core lib needs at least one backend
with a matching ABI" is done via the yui_backend symbol but that
breaks bootstrapping the build (See Fedora 19 on
https://build.opensuse.org/project/monitor/devel:libraries:libyui )

Can you point me to any projects that handle this situation (common
api + backends), however well?
--
Martin Vidner, Cloud & Systems Management Team
http://en.opensuse.org/User:Mvidner

Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu
< Previous Next >
This Thread
  • No further messages