[opensuse-packaging] Bogus rpmlint error packaging a shared C++ library
Hi! Amazon has recently created new C++ dependencies for their AWS SDK in C++, those are aws-c-common, aws-c-event-stream and aws-checksums. I am currently in the process of packaging aws-c-common as a shared library package [1]. Unfortunately, I got stuck in the process with one strange issue: [ 18s] libaws-c-common1.0.0.x86_64: W: shlib-unversioned-lib libaws-c-common.so.0unstable [ 18s] Your package matches the Shared Library Policy Naming Scheme but contains an [ 18s] unversioned library. Therefore it is very unlikely that your package can be [ 18s] installed in parallel to another version of this library package. Consider [ 18s] moving unversioned parts into a runtime package. [ 18s] [ 18s] libaws-c-common1.0.0.x86_64: E: shlib-policy-name-error (Badness: 10000) libaws-c-common0unstable [ 18s] Your package contains a single shared library but is not named after its [ 18s] SONAME. The thing is that the actual packages don't contain the symbolic link in question: suse-laptop:/var/tmp/build-root/openSUSE_Factory-x86_64/home/abuild/rpmbuild/RPMS/x86_64 # rpm -ql *rpm |grep unstable suse-laptop:/var/tmp/build-root/openSUSE_Factory-x86_64/home/abuild/rpmbuild/RPMS/x86_64 # Yet rpmlint is complaining. Anyone has got any idea? Adrian
[1] https://build.opensuse.org/package/show/home:glaubitz:branches:devel:librari... -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Jan 24 2019, John Paul Adrian Glaubitz
The thing is that the actual packages don't contain the symbolic link in question:
But it has a library with that soname, and that is what counts. Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 1/24/19 2:35 PM, Andreas Schwab wrote:
On Jan 24 2019, John Paul Adrian Glaubitz
wrote: The thing is that the actual packages don't contain the symbolic link in question:
But it has a library with that soname, and that is what counts.
You mean the SONAME is part of the shared libary file? i.e., running objcopy on libaws-c-common.so.1.0.0 would still dump that SONAME? Adrian -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thu, 24 Jan 2019, John Paul Adrian Glaubitz wrote:
On 1/24/19 2:35 PM, Andreas Schwab wrote:
On Jan 24 2019, John Paul Adrian Glaubitz
wrote: The thing is that the actual packages don't contain the symbolic link in question:
But it has a library with that soname, and that is what counts.
You mean the SONAME is part of the shared libary file?
i.e., running objcopy on libaws-c-common.so.1.0.0 would still dump that SONAME?
readelf -d would, yes. Somehow their setup is broken.
Adrian
--
Richard Biener
On 1/24/19 2:44 PM, Richard Biener wrote:
You mean the SONAME is part of the shared libary file?
i.e., running objcopy on libaws-c-common.so.1.0.0 would still dump that SONAME?
readelf -d would, yes. Somehow their setup is broken.
Right. That was what I was looking for: suse-laptop:/var/tmp/build-root/openSUSE_Factory-x86_64/home/abuild/rpmbuild/BUILD/aws-c-common-0.3.0/build # readelf -d libaws-c-common.so.1.0.0 |grep SONAME 0x000000000000000e (SONAME) Library soname: [libaws-c-common.so.0unstable] suse-laptop:/var/tmp/build-root/openSUSE_Factory-x86_64/home/abuild/rpmbuild/BUILD/aws-c-common-0.3.0/build # Will patch upstream. Adrian -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thursday 2019-01-24 14:44, Richard Biener wrote:
On Thu, 24 Jan 2019, John Paul Adrian Glaubitz wrote:
On 1/24/19 2:35 PM, Andreas Schwab wrote:
On Jan 24 2019, John Paul Adrian Glaubitz
wrote: The thing is that the actual packages don't contain the symbolic link in question:
But it has a library with that soname, and that is what counts.
You mean the SONAME is part of the shared libary file?
i.e., running objcopy on libaws-c-common.so.1.0.0 would still dump that SONAME?
readelf -d would, yes. Somehow their setup is broken.
Unusual, but not necessarily broken -- as far as the packaging guidelines are concerned. [ 18s] libaws-c-common1.0.0.x86_64: W: shlib-unversioned-lib libaws-c-common.so.0unstable If the SONAME is libaws-c-common.so.0unstable, then the package must be named libaws-c-common0unstable, not libaws-c-common1_0_0 (and not libaws-c-common1.0.0 either!). -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 1/24/19 4:03 PM, Jan Engelhardt wrote:
Unusual, but not necessarily broken -- as far as the packaging guidelines are concerned.
[ 18s] libaws-c-common1.0.0.x86_64: W: shlib-unversioned-lib libaws-c-common.so.0unstable
If the SONAME is libaws-c-common.so.0unstable, then the package must be named libaws-c-common0unstable, not libaws-c-common1_0_0 (and not libaws-c-common1.0.0 either!).
Yes, I'm aware that the library package name has to match the SONAME. I don't think though that we having "0unstable" as SOVERSION is desirable. Adrian -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thu, 24 Jan 2019, John Paul Adrian Glaubitz wrote:
On 1/24/19 4:03 PM, Jan Engelhardt wrote:
Unusual, but not necessarily broken -- as far as the packaging guidelines are concerned.
[ 18s] libaws-c-common1.0.0.x86_64: W: shlib-unversioned-lib libaws-c-common.so.0unstable
If the SONAME is libaws-c-common.so.0unstable, then the package must be named libaws-c-common0unstable, not libaws-c-common1_0_0 (and not libaws-c-common1.0.0 either!).
Yes, I'm aware that the library package name has to match the SONAME.
I don't think though that we having "0unstable" as SOVERSION is desirable.
Yeah, if that suggests the ABI isn't stable we don't want to ship
this kind of state.
Richard.
--
Richard Biener
On 1/24/19 4:17 PM, Richard Biener wrote:
Yes, I'm aware that the library package name has to match the SONAME.
I don't think though that we having "0unstable" as SOVERSION is desirable.
Yeah, if that suggests the ABI isn't stable we don't want to ship this kind of state.
Are we actually shipping the package if it's not submitted to Factory? The libraries are currently needed for the Public Cloud Team only and I'll just keep them in Cloud:Tools until the stuff has stabilized. The alternative would be not upgrading the package aws-sdk-cpp at all which is not an option for us. Adrian -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thu, 24 Jan 2019, John Paul Adrian Glaubitz wrote:
On 1/24/19 4:17 PM, Richard Biener wrote:
Yes, I'm aware that the library package name has to match the SONAME.
I don't think though that we having "0unstable" as SOVERSION is desirable.
Yeah, if that suggests the ABI isn't stable we don't want to ship this kind of state.
Are we actually shipping the package if it's not submitted to Factory?
The libraries are currently needed for the Public Cloud Team only and I'll just keep them in Cloud:Tools until the stuff has stabilized.
The alternative would be not upgrading the package aws-sdk-cpp at all which is not an option for us.
The alternative is to not provide a "unstable" shared library but
only ship a static variant for that case. Or bump the SONAME
SUSE-internal for each source change.
Richard.
--
Richard Biener
On 25/01/2019 01:36, John Paul Adrian Glaubitz wrote:
On 1/24/19 4:03 PM, Jan Engelhardt wrote:
Unusual, but not necessarily broken -- as far as the packaging guidelines are concerned.
[ 18s] libaws-c-common1.0.0.x86_64: W: shlib-unversioned-lib libaws-c-common.so.0unstable
If the SONAME is libaws-c-common.so.0unstable, then the package must be named libaws-c-common0unstable, not libaws-c-common1_0_0 (and not libaws-c-common1.0.0 either!).
Yes, I'm aware that the library package name has to match the SONAME.
I don't think though that we having "0unstable" as SOVERSION is desirable.
Adrian
Well then the best course of action is to convince upstream of that and get them to do something different next release. -- Simon Lees (Simotek) http://simotek.net Emergency Update Team keybase.io/simotek SUSE Linux Adelaide Australia, UTC+10:30 GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B
participants (5)
-
Andreas Schwab
-
Jan Engelhardt
-
John Paul Adrian Glaubitz
-
Richard Biener
-
Simon Lees