Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The soname is equal to major version minus age. In version 2.31.0 the major version is 2 and the age is is set to 0. In versuin 2.31.1 the major version is 2 and the age is is set to 1. This means the soname goes backwards from 2 to 1. The full library version changes from 2.0.31 to 1.1.31 The soname should not go backwards, so this soname change looks like a mistake that should be reverted. The major, minor, age for a library should change in one of three ways: 1) increase major by one, reset minor and age to 0. 2) increase major by one, reset minor to 0 and increase age by 1. 3) increase minor by 1, retain the values of major and age. 1) is for non-backward compatible changes to the library (changes or removals to the old ABI). Soname changes and applications using the library must be recompiled. 2) is for when there are ABI additions to the library, but no ABI changes or removals. Application compiled against the old version of the library don't need to be recompiled, and the soname (major version minus age) does not change. 3) is for minor updates with no ABI additions, changes or removals. The major, manor, patch version of the software project should not be used as major, minor, age for the library. Especially true for using the patch version as age, because that means the soname goes backwards for patch releases as happened here.
- Loading branch information