Bug 1401172

Summary: Missing symbol versioning provided by libldb.so with strict CFLAGS
Product: [Fedora] Fedora Reporter: Lukas Slebodnik <lslebodn>
Component: libldbAssignee: Jakub Hrozek <jhrozek>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 26CC: awilliam, gdeschner, jhrozek, rdieter, robatino, sgallagh, ssorce
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libldb-1.1.29-5.fc26 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-03 16:09:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Spec file changes none

Description Lukas Slebodnik 2016-12-03 09:57:31 UTC
Description of problem:
The latest upgrade to libldb-1.1.29 does not provide
the same versioned functions as previous version

Version-Release number of selected component (if applicable):
libldb-1.1.29-1.fc26

How reproducible:
Deterministic

Steps to Reproduce:
1. rpm -q --provides libldb-1.1.29-1.fc26.x86_64

Actual results:
libldb = 1.1.29-1.fc26
libldb(x86-64) = 1.1.29-1.fc26
libldb.so.1()(64bit)

Expected results:
bundled(libreplace)
libldb = 1.1.28-1.fc26
libldb(x86-64) = 1.1.28-1.fc26
libldb.so.1()(64bit)
libldb.so.1(LDB_0.9.10)(64bit)
libldb.so.1(LDB_0.9.12)(64bit)
libldb.so.1(LDB_0.9.15)(64bit)
libldb.so.1(LDB_0.9.16)(64bit)
// and many others


Additional info:
It's not bug in rpmbuild because symbols are missing in library

sh# objdump -p /usr/lib64/libldb.so.1 | grep  LDB_
sh# echo $?
1

Comment 1 Lukas Slebodnik 2016-12-03 10:05:23 UTC
sh# objdump -p /usr/lib64/libtdb.so.1 | grep  TDB_
sh# echo $?
1

Comment 2 Lukas Slebodnik 2016-12-03 10:07:30 UTC
The library requires versioned symbols from libtdb. But they are not provided by latest version of libtdb => BZ1401175

rpm -q --requires libldb | grep TDB
libtdb.so.1(TDB_1.2.1)(64bit)

Comment 3 Lukas Slebodnik 2016-12-03 17:46:04 UTC
Actually, it is very likely a bug in toolchain because rebuilding the same
srpm for fedora 25 gives correct result.

Anyway, this BZ should be considered as tracer for rebuilding libldb after fixing
the problem.

Comment 4 Lukas Slebodnik 2016-12-03 18:37:02 UTC
There was a change in redhat-rpm-config
diff -u -r 59/usr/lib/rpm/redhat/macros 60/usr/lib/rpm/redhat/macros
--- 59/usr/lib/rpm/redhat/macros        2016-12-03 19:11:47.961580325 +0100
+++ 60/usr/lib/rpm/redhat/macros        2016-12-03 19:11:58.676645157 +0100
@@ -147,7 +147,7 @@
 
 %__global_compiler_flags       -O2 -g -pipe -Wall -Werror=format-security -Wp,-_hardened_cflags}
 
-%__global_cflags       %{optflags}
+%__global_cflags       %{optflags} -Werror=implicit-function-declaration -Werro
 %__global_cxxflags     %{optflags}
 %__global_fflags       %{optflags} -I%_fmoddir
 %__global_fcflags      %{optflags} -I%_fmoddir


Extra compiler error flags caused that -Wl,--version was not recognized by waf.
> Checking uname sysname type              : not found 
> Checking uname machine type              : not found 
> Checking uname release type              : not found 
> Checking uname version type              : not found
> Checking for rpath library support       : not found 
> Checking for -Wl,--version-script support  : not found> Checking for C99 vsnprintf                                                        : not found 
> Checking for HAVE_SHARED_MMAP                                                     : not found 
> Checking for HAVE_MREMAP                                                          : not found

Comment 5 Lukas Slebodnik 2016-12-05 13:45:36 UTC
Created attachment 1228064 [details]
Spec file changes

Please consider to fix few spec file related patches.
The last one is required to pull correctly renamed pacakges
and therefore depends on BZ1401225 BZ1401226 BZ1401175

Comment 6 Adam Williamson 2016-12-05 22:46:19 UTC
This causes many openQA tests to fail, due to dependency chains that run through the problematic libldb (e.g. sssd-ipa , samba-client-libs ).

It's a clear F26 Alpha automatic blocker, as it prevents the composition of the Server DVD image: "Bugs which entirely prevent the composition of one or more of the release-blocking images required to be built for a currently-pending (pre-)release" - https://fedoraproject.org/wiki/QA:SOP_blocker_bug_process#Automatic_blockers

Comment 7 Adam Williamson 2016-12-05 22:47:23 UTC
sorry, I cited the wrong reason there. It actually hits "Unresolved dependencies on a release-blocking DVD-style (offline installer) image" - the Server DVD does compose, but contains packages with broken deps.

Comment 8 Adam Williamson 2016-12-09 19:15:54 UTC
This is fixed, for now, by reverting the redhat-rpm-config change and rebuilding ldb/tdb. If the change is made again, ldb/tdb will need to be fixed for it.

Comment 9 Lukas Slebodnik 2017-01-03 09:16:45 UTC
Patches from BZ1401231 required fro this BZ were pushed to samba master
* 59abfcb7945103cd4031abac86d51cd51ce052ca
* be12f82cf1ca652b06995e84971c878621315d24
* f4c0a750d4adebcf2342a44e85f04526c34268c8
* b7ae41e6ca133e08f1dc62bd49436f51f490f46b

It would be good to backport them even thought -Werror=implicit-function-declaration -Werror=implicit-int were removed from redhat-rpm-config

Comment 10 Fedora End Of Life 2017-02-28 10:43:15 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle.
Changing version to '26'.

Comment 11 Fedora Update System 2017-04-01 13:34:27 UTC
libldb-1.1.29-5.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-a1a98e19f0

Comment 12 Fedora Update System 2017-04-02 00:52:28 UTC
libldb-1.1.29-5.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-a1a98e19f0

Comment 13 Fedora Update System 2017-04-03 16:09:58 UTC
libldb-1.1.29-5.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.