Let's do SOVERSION according to traditions and documentation

Jin Liu m.liu.jin at gmail.com
Mon Feb 23 12:14:28 GMT 2026


Out of curiosity, I ran a similar check (attachment) to Harald's. And
yeah, 149 "mismatches" in my machine, of which 25 looks like in KDE:

libAppStreamQt.so.3 -> /usr/lib/libAppStreamQt.so.1.1.2 (version: .3,
target version: .1.1.2)
libdolphinprivate.so.6 -> /usr/lib/libdolphinprivate.so.25.12.2
(version: .6, target version: .25.12.2)
libdolphinvcs.so.6 -> /usr/lib/libdolphinvcs.so.25.12.2 (version: .6,
target version: .25.12.2)
libgwenviewlib.so.5 -> /usr/lib/libgwenviewlib.so.4.97.0 (version: .5,
target version: .4.97.0)
libkddockwidgets-qt6.so.3 -> /usr/lib/libkddockwidgets-qt6.so.2.4.0
(version: .3, target version: .2.4.0)
libkdebugsettingscore.so.6 ->
/usr/lib/libkdebugsettingscore.so.25.12.2 (version: .6, target
version: .25.12.2)
libkdebugsettings.so.6 -> /usr/lib/libkdebugsettings.so.25.12.2
(version: .6, target version: .25.12.2)
libkdecorations3private.so.2 ->
/usr/lib/libkdecorations3private.so.6.6.0 (version: .2, target
version: .6.6.0)
libKExiv2Qt6.so.0 -> /usr/lib/libKExiv2Qt6.so.5.1.0 (version: .0,
target version: .5.1.0)
libKF6BalooWidgets.so.6 -> /usr/lib/libKF6BalooWidgets.so.25.12.2
(version: .6, target version: .25.12.2)
libKF6FileMetaData.so.3 -> /usr/lib/libKF6FileMetaData.so.6.23.0
(version: .3, target version: .6.23.0)
libKF6PulseAudioQt.so.5 -> /usr/lib/libKF6PulseAudioQt.so.1.7.0
(version: .5, target version: .1.7.0)
libKF6ScreenDpms.so.8 -> /usr/lib/libKF6ScreenDpms.so.6.6.0 (version:
.8, target version: .6.6.0)
libKF6Screen.so.8 -> /usr/lib/libKF6Screen.so.6.6.0 (version: .8,
target version: .6.6.0)
libKGlobalAccelD.so.0 -> /usr/lib/libKGlobalAccelD.so.6.6.0 (version:
.0, target version: .6.6.0)
libKirigamiAddonsStatefulApp.so.6 ->
/usr/lib/libKirigamiAddonsStatefulApp.so.1.11.0 (version: .6, target
version: .1.11.0)
libKirigamiApp.so.6 -> /usr/lib/libKirigamiApp.so.1.11.0 (version: .6,
target version: .1.11.0)
libkjournald.so.0 -> /usr/lib/libkjournald.so.25.12.2 (version: .0,
target version: .25.12.2)
libKNightTime.so.0 -> /usr/lib/libKNightTime.so.6.6.0 (version: .0,
target version: .6.6.0)
libkpmcore.so.13 -> /usr/lib/libkpmcore.so.25.12.2 (version: .13,
target version: .25.12.2)
libkquickcontrolsprivate.so.0 ->
/usr/lib/libkquickcontrolsprivate.so.6.23.0 (version: .0, target
version: .6.23.0)
libKQuickImageEditor.so.1 -> /usr/lib/libKQuickImageEditor.so.0.6.0
(version: .1, target version: .0.6.0)
libkrdccore.so.5 -> /usr/lib/libkrdccore.so.25.12.2 (version: .5,
target version: .25.12.2)
libKSaneCore6.so.1 -> /usr/lib/libKSaneCore6.so.25.12.2 (version: .1,
target version: .25.12.2)
libKSaneWidgets6.so.6 -> /usr/lib/libKSaneWidgets6.so.25.12.2
(version: .6, target version: .25.12.2)
libKSysGuardFormatter.so.2 -> /usr/lib/libKSysGuardFormatter.so.6.6.0
(version: .2, target version: .6.6.0)
libKSysGuardSensorFaces.so.2 ->
/usr/lib/libKSysGuardSensorFaces.so.6.6.0 (version: .2, target
version: .6.6.0)
libKSysGuardSensors.so.2 -> /usr/lib/libKSysGuardSensors.so.6.6.0
(version: .2, target version: .6.6.0)
libKSysGuardSystemStats.so.2 ->
/usr/lib/libKSysGuardSystemStats.so.6.6.0 (version: .2, target
version: .6.6.0)
libPlasmaActivities.so.7 -> /usr/lib/libPlasmaActivities.so.6.6.0
(version: .7, target version: .6.6.0)
libPlasmaActivitiesStats.so.1 ->
/usr/lib/libPlasmaActivitiesStats.so.6.6.0 (version: .1, target
version: .6.6.0)
libpowerdevilcore.so.2 -> /usr/lib/libpowerdevilcore.so.6.6.0
(version: .2, target version: .6.6.0)

Neal Gompa <ngompa13 at gmail.com> 于2026年2月23日周一 19:54写道:
> Actually, it's fairly rare that soversions match software versions in
> Unix. To give you a deeply Unixy example: rpm itself doesn't link the
> version to soversion[0] and uses soversion 10 for rpm 6.0. Libraries
> like libtukit, libjpeg, libusb, libudev, libc (glibc), libbtrfsutil,
> and libvirt are other examples where these don't match.
>
> The historical convention is that there is zero relationship between
> the software version and the ABI version, and libtool (which is the
> progenitor of the ABI versioning convention everyone follows) has some
> rules about this[1].
>
> Plasma *mostly* follows these rules for its libraries.
>
> [0]: https://github.com/rpm-software-management/rpm/blob/rpm-6.0.1-release/CMakeLists.txt#L47-L54
> [1]: https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: soname_mismatch.py
Type: text/x-python
Size: 740 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20260223/5a626d87/attachment.py>


More information about the kde-core-devel mailing list