libbson-1.5.0-0.1.rc2.fc26 removes soname aliases visiable on RPM level as "libbson-1.0.so.0(LIBBSON_*)(64bit)" provides and keeps "libbson-1.0.so.0()(64bit)" only.
The 1.5.0-rc2 will be pushed into rawhide only and I will rebuild the three affected packages there:
mongo-c-driver-1.3.5-6.fc26.src.rpm perl-MongoDB-1.4.5-1.fc26.src.rpm php-pecl-mongodb-1.1.8-4.fc26.src.rpm
-- Petr
On 13/10/16 13:50, Petr Pisar wrote:
libbson-1.5.0-0.1.rc2.fc26 removes soname aliases visiable on RPM level as "libbson-1.0.so.0(LIBBSON_*)(64bit)" provides and keeps "libbson-1.0.so.0()(64bit)" only.
That's not an "soname alias" it's a symbol versioning provide.
So are you saying that this library has stopped using symbol versioning?
Tom
On 13/10/16 14:05, Tom Hughes wrote:
On 13/10/16 13:50, Petr Pisar wrote:
libbson-1.5.0-0.1.rc2.fc26 removes soname aliases visiable on RPM level as "libbson-1.0.so.0(LIBBSON_*)(64bit)" provides and keeps "libbson-1.0.so.0()(64bit)" only.
That's not an "soname alias" it's a symbol versioning provide.
So are you saying that this library has stopped using symbol versioning?
I think https://jira.mongodb.org/browse/CDRIVER-1347 is likely the root cause although I don't see where the code they removed was actually setting the specific versions.
So it seems they changed how they export the symbols and hide private symbols, but the question is whether the new ABI can really be described as unchanged if there used to be five different ABIs supported in the same library and now there is only one!
In other words, does the soname need to change?
Tom
On 2016-10-13, Tom Hughes tom@compton.nu wrote:
On 13/10/16 14:05, Tom Hughes wrote:
On 13/10/16 13:50, Petr Pisar wrote:
libbson-1.5.0-0.1.rc2.fc26 removes soname aliases visiable on RPM level as "libbson-1.0.so.0(LIBBSON_*)(64bit)" provides and keeps "libbson-1.0.so.0()(64bit)" only.
That's not an "soname alias" it's a symbol versioning provide.
So are you saying that this library has stopped using symbol versioning?
I think https://jira.mongodb.org/browse/CDRIVER-1347 is likely the root cause although I don't see where the code they removed was actually setting the specific versions.
So it seems they changed how they export the symbols and hide private symbols, but the question is whether the new ABI can really be described as unchanged if there used to be five different ABIs supported in the same library and now there is only one!
Technically, the versioned symbols disappeared. The unversioned symbols remained. The reality was that the symbol versioning in the libbson was never properly used and updated.
In other words, does the soname need to change?
The soname did not change. But packages built against older library linked to versioned symbols. Thus they had to be rebuild.
I'm not very verse in version symboling. If you think the removal requires bumping soname (technically probably yes because you simply cannot run the old executable against the new library), you can try to explain it to the upstream. At the and it's only a release candidate. But be prepared they are quite obstinate about this packaging stuff.
-- Petr
On Čt, 2016-10-13 at 14:32 +0000, Petr Pisar wrote:
On 2016-10-13, Tom Hughes tom@compton.nu wrote:
In other words, does the soname need to change?
The soname did not change. But packages built against older library linked to versioned symbols. Thus they had to be rebuild.
I'm not very verse in version symboling. If you think the removal requires bumping soname (technically probably yes because you simply cannot run the old executable against the new library), you can try to explain it to the upstream. At the and it's only a release candidate. But be prepared they are quite obstinate about this packaging stuff.
I do not think it is worth it. Effectively rpm dependencies detect this breakage anyway so there is no need to change the soname.