Shared Libs Policy/en
Summarized version of the policy:
- Definition:
- A shared library (`.so` file) is intended for use by multiple programs.
- Explicitly loaded `.so` files (e.g., plugins) are not covered by this policy.
- Policy Summary:
- Avoid placing a new soname in a package with the same name where the old soname was located.
- Packaging Libraries:
- Libraries should be packaged in a way that the package name changes with each ABI break.
- The package should be named `lib%name%abiversion`, where `%abiversion` is the variable part.
- Development parts of libraries should be in a separate (only one for each library) package named `lib%name-devel`.
- Static libraries should be in a separate package named `lib%name-devel-static`.
- Choosing the Right %abiversion:
- Use the soversion if explicitly used by library authors.
- Otherwise, choose a convenient naming scheme (e.g., sequential numbers).
- Legacy Libraries and Backports:
- Move old libraries to the 'System/Legacy libraries' group when a new version appears.