MantisBT - Doomseeker |
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 |
|
Reporter | WubTheCaptain | |
Assigned To | Blzut3 | |
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | |
Platform | x86_64 | OS | Debian GNU/Linux | OS Version | buster/sid |
Product Version | 1.1 | |
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.
'https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-depends [^]'
'https://www.debian.org/doc/debian-policy/ch-files.html#s-libraries [^]'
'https://lintian.debian.org/tags/shlib-without-versioned-soname.html [^]' |
Tags | No tags attached. |
Relationships | related to | 0003546 | closed | Blzut3 | DRD Team's Debian Package Repository: Lintian warning package-name-doesnt-match-sonames libwadseeker1 | child of | 0003246 | acknowledged | | Debian packaging |
|
Attached Files | readelf.log (3,971) 2017-09-01 15:51 https://zandronum.com/tracker/file_download.php?file_id=2187&type=bug |
|
Issue History |
Date Modified | Username | Field | Change |
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 | bug_revision_view_page.php?bugnote_id=18544#r11136 |
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 | bug_revision_view_page.php?bugnote_id=19090#r11430 |
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 |
Notes |
|
|
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). |
|
|
(0018310)
|
Zalewa
|
2017-09-18 07:50
|
|
I think it will also be necessary to lock all exported symbols in Wadseeker namespace. |
|
|
(0018544)
|
WubTheCaptain
|
2017-10-12 07:25
(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).
|
|
|
(0019088)
|
Blzut3
|
2018-02-26 06:21
|
|
|
|
|
I'll have to check again, but at least earlier debuild(1) didn't use CPackDeb but the regular building process by default. |
|
|
|
- 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?
|
|
|
(0019091)
|
Blzut3
|
2018-02-26 07:03
|
|
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. |
|
|
(0019102)
|
Blzut3
|
2018-03-03 09:36
|
|
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. |
|
|
(0019118)
|
Zalewa
|
2018-03-03 20:53
|
|
Compiled this in Docker and 'readelf -d' says SONAME is libwadseeker.so.1
Lib and symlinks also appear to be correct:
root@30376b026750:/doomseeker# ls -la /usr/local/lib/x86_64-linux-gnu/ | grep wadseeker
lrwxrwxrwx 1 root root 17 Mar 3 20:48 libwadseeker.so -> libwadseeker.so.1
lrwxrwxrwx 1 root root 19 Mar 3 20:48 libwadseeker.so.1 -> libwadseeker.so.1.2
-rw-r--r-- 1 root root 925077 Mar 3 20:47 libwadseeker.so.1.2
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. |
|