|Anonymous | Login | Signup for a new account||2018-11-16 22:49 UTC|
|My View | View Issues | Change Log | Roadmap | Doomseeker Issue Support Ranking | Rules | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003242||Doomseeker||[All Projects] Bug||public||2017-09-01 15:39||2018-10-27 22:53|
|Platform||x86_64||OS||Debian GNU/Linux||OS Version||buster/sid|
|Target Version||1.2||Fixed in Version||1.2|
|Summary||0003242: libwadseeker: Doesn't distinguish version from ELF shared object filename, ABI cannot safely change|
|Description||Libwadseeker builds into a shared object named libwadseeker.so. For compatibility and to avoid breaking some systems with multiple versions of Libwadseeker, the shared object should be named according to its version e.g. libwadseeker.so.1 and/or libwadseeker.so.1.1, alternatively libwadseeker-1.1.so and/or libwadseeker-1.so.|
Lintian warning tag: shlib-without-versioned-soname (severity normal, certainty possible)
|Steps To Reproduce||Present in debian.drdteam.org binary builds and debuild source builds at /usr/lib/libwadseeker.so (tested with Doomseeker source).|
|Additional Information||I'm not entirely sure if this is an upstream issue of development practice, a packaging issue which downstream should always handle or me not calling CMake or debuild correctly.|
|Attached Files||readelf.log [^] (3,971 bytes) 2017-09-01 15:51|
|Also the SONAME, not just the filename.|
|Engine libraries are also affected, but not yet caught by lintian because they live in /usr/share/doomseeker/engines instead of /usr/lib (issue 0003232).|
|I think it will also be necessary to lock all exported symbols in Wadseeker namespace.|
edited on: 2017-10-12 07:27
It may not be elegant, but a quick fix (without extensive testing) to this would be:
- set_target_properties(wadseeker PROPERTIES AUTOMOC ON) + set_target_properties(wadseeker PROPERTIES AUTOMOC ON VERSION 1.2)
in src/wadseeker/CMakeLists.txt. This created libwadseeker.so to be a symlink to libwadseeker.so.1.2 with the appropriate SONAME.
I tried VERSION and SOVERSION in project() and set() too, that had no effect (despite me setting CMP0048 policy to NEW).
Since your earlier note, the plugins have been moved to lib and lintian still doesn't care. Are you sure that the plugins need an SOVERSION? Right now Doomseeker implements its own cross platform ABI versioning check, so we wouldn't be doing anything with it anyway.
|I'll have to check again, but at least earlier debuild(1) didn't use CPackDeb but the regular building process by default.|
edited on: 2018-02-26 07:00
- set(CPACK_DEBIAN_DOOMSEEKER_PACKAGE_DEPENDS "libwadseeker" PARENT_SCOPE) + #set(CPACK_DEBIAN_DOOMSEEKER_PACKAGE_DEPENDS "libwadseeker1" PARENT_SCOPE)
Both "#" and depends name change intended or not?
|The removal of the line yes (should be picked up by dpkg-shlibdep now that the SOVERSION is in place), the fact that I didn't actually remove the line no.|
|See Zalewa's comment on BitBucket on VERSION_STRING from WADSEEKER_LIBVERSION.|
Frankly I couldn't possibly care less about that style change. If Zalewa wants to change it to be done that way he can, but would suggest doing it next time versions are bumped.
I mean there is a reason I did it the way I did, but since the two forms are functionally identical it's not even worth debating since it could be decoupled later if the scenario I'm thinking of is even remotely relevant.
Compiled this in Docker and 'readelf -d' says SONAME is libwadseeker.so.1
Lib and symlinks also appear to be correct:
So I think we can consider this as "tested".
|I trust your test should be enough, Zalewa. I can't see why it wouldn't be with SONAME and filenames. Thank you.|
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
|Supporters:||No one explicitly supports this issue yet.|
|Opponents:||No one explicitly opposes this issue yet.|
|2017-09-01 15:39||WubTheCaptain||New Issue|
|2017-09-01 15:45||WubTheCaptain||Note Added: 0018211|
|2017-09-01 15:51||WubTheCaptain||File Added: readelf.log|
|2017-09-01 16:03||WubTheCaptain||Note Added: 0018212|
|2017-09-01 16:30||Zalewa||Relationship added||child of 0003246|
|2017-09-18 07:50||Zalewa||Note Added: 0018310|
|2017-10-05 01:48||WubTheCaptain||Status||new => acknowledged|
|2017-10-12 07:25||WubTheCaptain||Note Added: 0018544|
|2017-10-12 07:27||WubTheCaptain||Note Edited: 0018544||View Revisions|
|2018-02-26 06:01||Blzut3||Assigned To||=> Blzut3|
|2018-02-26 06:01||Blzut3||Status||acknowledged => assigned|
|2018-02-26 06:01||Blzut3||Target Version||=> 1.2|
|2018-02-26 06:21||Blzut3||Note Added: 0019088|
|2018-02-26 06:21||Blzut3||Status||assigned => needs review|
|2018-02-26 06:56||WubTheCaptain||Note Added: 0019089|
|2018-02-26 07:00||WubTheCaptain||Note Added: 0019090|
|2018-02-26 07:00||WubTheCaptain||Note Edited: 0019090||View Revisions|
|2018-02-26 07:03||Blzut3||Note Added: 0019091|
|2018-03-03 06:38||WubTheCaptain||Status||needs review => needs testing|
|2018-03-03 06:42||WubTheCaptain||Note Added: 0019101|
|2018-03-03 06:42||WubTheCaptain||Status||needs testing => needs review|
|2018-03-03 09:36||Blzut3||Note Added: 0019102|
|2018-03-03 16:53||WubTheCaptain||Status||needs review => needs testing|
|2018-03-03 20:53||Zalewa||Note Added: 0019118|
|2018-03-03 21:00||WubTheCaptain||Note Added: 0019120|
|2018-03-03 21:00||WubTheCaptain||Status||needs testing => resolved|
|2018-03-03 21:00||WubTheCaptain||Fixed in Version||=> 1.2|
|2018-03-03 21:00||WubTheCaptain||Resolution||open => fixed|
|2018-10-08 09:23||WubTheCaptain||Relationship added||related to 0003546|
|2018-10-27 22:53||WubTheCaptain||Status||resolved => closed|
Questions or other issues? Contact Us.
|Copyright © 2000 - 2018 MantisBT Team|