Make it easier to set alternative SONAME for pjproject libraries.#4905
Make it easier to set alternative SONAME for pjproject libraries.#4905jkroonza wants to merge 1 commit intopjsip:masterfrom
Conversation
|
Since pjproject doesn't modify the so version on ABI changes, it's often difficult to detect breakage due to ABI changes. This makes it easier for packagers of pjproject to use an alternative SONAME resulting in distribution mechanisms like preserved-rebuild on Gentoo to maintain package consistency during upgrade processes. |
There was a problem hiding this comment.
Pull request overview
This PR introduces an overridable SONAME-version variable to allow customizing the shared-library version suffix, and updates selected component build Makefiles to use it when naming shared libraries.
Changes:
- Add
PJ_SONAME_VERSION(defaulting toPJ_VERSION_MAJOR) inversion.mak. - Switch PJSIP shared library filename suffixes to
$(PJ_SONAME_VERSION). - Switch PJMEDIA shared library filename suffixes to
$(PJ_SONAME_VERSION).
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
version.mak |
Adds an exported, overridable PJ_SONAME_VERSION variable. |
pjsip/build/Makefile |
Uses PJ_SONAME_VERSION for PJSIP-related shared library filenames. |
pjmedia/build/Makefile |
Uses PJ_SONAME_VERSION for PJMEDIA-related shared library filenames. |
f722bc2 to
e592816
Compare
Signed-off-by: Jaco Kroon <jaco@uls.co.za>
| else | ||
| APP_THIRD_PARTY_LIBS += -lwebrtc-aec3 | ||
| APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc-aec3.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libwebrtc.$(SHLIB_SUFFIX) | ||
| APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc-aec3.$(SHLIB_SUFFIX).$(PJ_SONAME_VERSION) $(PJ_DIR)/third_party/lib/libwebrtc.$(SHLIB_SUFFIX) |
There was a problem hiding this comment.
In the webrtc-aec3 shared-library branch, APP_THIRD_PARTY_LIB_FILES lists the unversioned file as libwebrtc.$(SHLIB_SUFFIX) instead of libwebrtc-aec3.$(SHLIB_SUFFIX). This is inconsistent with the library name used elsewhere (libwebrtc-aec3) and will point to the wrong file when webrtc-aec3 is enabled with shared libs. Update the second path to reference libwebrtc-aec3.$(SHLIB_SUFFIX).
| APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc-aec3.$(SHLIB_SUFFIX).$(PJ_SONAME_VERSION) $(PJ_DIR)/third_party/lib/libwebrtc.$(SHLIB_SUFFIX) | |
| APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc-aec3.$(SHLIB_SUFFIX).$(PJ_SONAME_VERSION) $(PJ_DIR)/third_party/lib/libwebrtc-aec3.$(SHLIB_SUFFIX) |
No description provided.