Hi all,
I've been gathering bits and pieces of information regarding the packaging of shared libraries for a while now. As I understand it:
- Normal .so libraries with versioned filenames go into the base package for a program when they exist
- Unversioned .so libraries go into the -devel package -- If there are no versioned libraries for a program, should a versioned library be added or should the unversioned .so file be included in the base package?
- Libraries which are used by other programs at runtime should be versioned, and in %{_libdir} -- Are there exceptions to this? When is it appropriate to leverage subdirectories and /etc/ld.so.conf.d/?
- Libraries which are plugins to one specific program, and are dlopened by that program, do not need a versioned filename. They should go in their own subdierctory in %{_libdir} (e.g. /usr/lib/gstreamer-0.10) -- If packaged as seperate plugins, they should be in packages called packagename-plugins-pluginname, or something similar
- All shared library filenames should begin with lib
A lot of this isn't in the packaging guidelines, I think if these points could be clarified and included in the guidelines it would help to answer a lot of questions.
Thanks,
Rich