Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 547444 - dev-libs/openssl: add non-standard Debian-specific symbol versions
Summary: dev-libs/openssl: add non-standard Debian-specific symbol versions
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-22 23:52 UTC by Olaf Leidinger
Modified: 2024-01-24 14:49 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
for openssl-0.9.8 (version-script-0.9.8.patch,1.10 KB, patch)
2015-04-22 23:53 UTC, Olaf Leidinger
Details | Diff
for >=openssl-1.0 (version-script-1.0.patch,108.13 KB, patch)
2015-04-22 23:54 UTC, Olaf Leidinger
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Olaf Leidinger 2015-04-22 23:52:04 UTC
I use at least two binary applications, which are built on Debian: Guitar Pro and Spotify. Both depend on specific symbols in libcrypto:

/usr/lib32/libcrypto.so.0.9.8: version `OPENSSL_0.9.8' not found

This issue is present for a long time, c.f.:
https://forums.gentoo.org/viewtopic-t-835256-start-0.html

http://rt.openssl.org/Ticket/Display.html?id=1222&user=guest&pass=guest

Thus, I dug into the openssl package building of debian and found a patch they apply to every openssl build. They add a version script patch, which basically adds a file and changes the configure script. The patch works fine for me for openssl:0.9.8 and openssl:0. 


So far, I worked around the issue by dropping precompiled openssl libraries into the application folders. But that's bad due to the lack of automatic updates. It would be great to apply the patch, too, since Debian/Ubuntu is the de-facto standard for proprietary software.




Reproducible: Always
Comment 1 Olaf Leidinger 2015-04-22 23:53:58 UTC
Created attachment 401848 [details, diff]
for openssl-0.9.8

patch from debian's openssl source package (debian/patches/version-script.patch)
Comment 2 Olaf Leidinger 2015-04-22 23:54:35 UTC
Created attachment 401850 [details, diff]
for >=openssl-1.0
Comment 3 eroen 2015-04-23 07:52:57 UTC
Adding symbols to a library should be done by upstream, not individual distros. Otherwise we run into pointless cross-distro incompatibility, both for binaries as you describe and from developers making incorrect assumptions from running tests on systems with heavy distro-level modifications.

If debian ships a custom-patched and incompatible openssl build, the solution is not for other distros to follow their poor example. In stead, I suggest:

a) Ask debian to stop it. This usually does not work, and in this case that would break binary compatibility there.

b) Ask openssl upstream to provide versioned symbols. From the bug you linked it looks like someone did a while back and they are uninterested.

c) Ask whoever is providing your troublesome binaries to either not link against openssl (good) or to bundle every library they link to that could potentially be linked against openssl.(less good)
Comment 4 Olaf Leidinger 2015-04-23 08:28:39 UTC
I fully agree that things like this should be upstream. But since they are not interested and many proprietary software is built on Ubuntu nowadays, it would make sense to ship symbols - or at least to provide a way to use the binaries:

It seems to be possible to "work around" the issue by *forcing* the bfd linker for openssl. As suggested in bug #545670 the app starts when building with LDFLAGS+="-fuse-ld=bfd". This doesn't add the symbols, but at least makes missing symbols *somehow* not fatal. This is what other distributions like ArchLinux do:

$ spotify
/opt/spotify/spotify-client/spotify: /usr/lib64/libcrypto.so.1.0.0: no version information available (required by /opt/spotify/spotify-client/spotify)
/opt/spotify/spotify-client/spotify: /usr/lib64/libssl.so.1.0.0: no version information available (required by /opt/spotify/spotify-client/spotify)


Thus, I suggest to add "-fuse-ld=bfd" to LDFLAGS in openssl ebuils by default, or at least add a warning about the consequences when using the gold linker when building openssl.
Comment 5 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2015-04-23 22:10:52 UTC
This issue came up in bug 545670
Comment 6 SpanKY gentoo-dev 2015-04-27 03:39:26 UTC
eroen covered things nicely in comment #3