Zandronum Chat on our Discord Server Get the latest version: 3.1
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003242Doomseeker[All Projects] Bugpublic2017-09-01 15:392018-10-27 22:53
ReporterWubTheCaptain 
Assigned ToBlzut3 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
Platformx86_64OSDebian GNU/LinuxOS Versionbuster/sid
Product Version1.1 
Target Version1.2Fixed in Version1.2 
Summary0003242: libwadseeker: Doesn't distinguish version from ELF shared object filename, ABI cannot safely change
DescriptionLibwadseeker 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 ReproducePresent in debian.drdteam.org binary builds and debuild source builds at /usr/lib/libwadseeker.so (tested with Doomseeker source).
Additional InformationI'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 [^]'
Attached Fileslog file icon readelf.log [^] (3,971 bytes) 2017-09-01 15:51

- Relationships
related to 0003546closedBlzut3 DRD Team's Debian Package Repository: Lintian warning package-name-doesnt-match-sonames libwadseeker1 
child of 0003246acknowledged Debian packaging 

-  Notes
User avatar (0018211)
WubTheCaptain (reporter)
2017-09-01 15:45

Also the SONAME, not just the filename.
User avatar (0018212)
WubTheCaptain (reporter)
2017-09-01 16:03

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).
User avatar (0018310)
Zalewa (developer)
2017-09-18 07:50

I think it will also be necessary to lock all exported symbols in Wadseeker namespace.
User avatar (0018544)
WubTheCaptain (reporter)
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).

User avatar (0019088)
Blzut3 (administrator)
2018-02-26 06:21

'https://bitbucket.org/Doomseeker/doomseeker/commits/7ec904eabfa2c49d25e29b3d64251704198dcacb [^]'

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.
User avatar (0019089)
WubTheCaptain (reporter)
2018-02-26 06:56

I'll have to check again, but at least earlier debuild(1) didn't use CPackDeb but the regular building process by default.
User avatar (0019090)
WubTheCaptain (reporter)
2018-02-26 07:00
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?

User avatar (0019091)
Blzut3 (administrator)
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.
User avatar (0019101)
WubTheCaptain (reporter)
2018-03-03 06:42

See Zalewa's comment on BitBucket on VERSION_STRING from WADSEEKER_LIBVERSION.
User avatar (0019102)
Blzut3 (administrator)
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.
User avatar (0019118)
Zalewa (developer)
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".
User avatar (0019120)
WubTheCaptain (reporter)
2018-03-03 21:00

I trust your test should be enough, Zalewa. I can't see why it wouldn't be with SONAME and filenames. Thank you.

Issue Community Support
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.

- 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 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.

Links


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker