From 313cf5af8fc62305d172b12a361a372af18fff0c Mon Sep 17 00:00:00 2001 From: Lukas Slebodnik Date: Apr 01 2017 13:22:52 +0000 Subject: rhbz#1401172 - Missing symbol versioning provided by libldb.so with strict CFLAGS Fix configure time detection with -Werror=implicit-function-declaration -Werror=implicit-int (cherry picked from commit 0860bd70dc11f366834335206da184dc54be2b72) --- diff --git a/0001-lib-replace-Fix-detection-of-features.patch b/0001-lib-replace-Fix-detection-of-features.patch new file mode 100644 index 0000000..05ae94c --- /dev/null +++ b/0001-lib-replace-Fix-detection-of-features.patch @@ -0,0 +1,99 @@ +From b7ae41e6ca133e08f1dc62bd49436f51f490f46b Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Tue, 6 Dec 2016 18:07:18 +0100 +Subject: [PATCH 1/4] lib replace: Fix detection of features +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If configure script is executed with stricter cflags +"-Werrorr=implicit-function-declaration -Werror=implicit-int" +then detection of few features will fail. + + Checking for C99 vsnprintf : not found + Checking for HAVE_SHARED_MMAP : not found + Checking for HAVE_MREMAP : not found + +lib/replace/test/shared_mmap.c:18:1: + error: return type defaults to ‘int’ [-Werror=implicit-int] + main() + ^~~~ +lib/replace/test/shared_mmap.c: In function ‘main’: +lib/replace/test/shared_mmap.c:25:16: + error: implicit declaration of function ‘exit’ + [-Werror=implicit-function-declaration] + if (fd == -1) exit(1); + ^~~~ +lib/replace/test/shared_mmap.c:25:16: + warning: incompatible implicit declaration of built-in function ‘exit’ +lib/replace/test/shared_mmap.c:25:16: + note: include ‘’ or provide a declaration of ‘exit’ + +Signed-off-by: Lukas Slebodnik +Reviewed-by: Andreas Schneider +Reviewed-by: Ralph Boehme +--- + lib/replace/test/shared_mmap.c | 5 ++++- + lib/replace/test/shared_mremap.c | 5 ++++- + lib/replace/test/snprintf.c | 2 +- + 3 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/lib/replace/test/shared_mmap.c b/lib/replace/test/shared_mmap.c +index 50dad8d69648a6993e64d3d0433576319e1ad462..9d6e3fc95aa5d0981df1530582236ba826d1a432 100644 +--- a/lib/replace/test/shared_mmap.c ++++ b/lib/replace/test/shared_mmap.c +@@ -4,6 +4,9 @@ + #if defined(HAVE_UNISTD_H) + #include + #endif ++#ifdef HAVE_STDLIB_H ++#include ++#endif + #include + #include + #include +@@ -15,7 +18,7 @@ + #define MAP_FILE 0 + #endif + +-main() ++int main(void) + { + int *buf; + int i; +diff --git a/lib/replace/test/shared_mremap.c b/lib/replace/test/shared_mremap.c +index 05032ad12e3aa0feb755207ea032216e0665fe0a..08040e2e595f356155f4fb5977b3637b1e76aefb 100644 +--- a/lib/replace/test/shared_mremap.c ++++ b/lib/replace/test/shared_mremap.c +@@ -3,6 +3,9 @@ + #if defined(HAVE_UNISTD_H) + #include + #endif ++#ifdef HAVE_STDLIB_H ++#include ++#endif + #include + #include + #include +@@ -18,7 +21,7 @@ + #define MAP_FAILED (int *)-1 + #endif + +-main() ++int main(void) + { + int *buf; + int fd; +diff --git a/lib/replace/test/snprintf.c b/lib/replace/test/snprintf.c +index d06630bcc98d54033fdb5c7e62ecb91eae13e01b..77473f067b26589330d8d1a602d3334332795837 100644 +--- a/lib/replace/test/snprintf.c ++++ b/lib/replace/test/snprintf.c +@@ -26,4 +26,4 @@ void foo(const char *format, ...) + printf("1"); + exit(0); + } +-main() { foo("hello"); } ++int main(void) { foo("hello"); } +-- +2.11.1 + diff --git a/0002-WAF-Fix-detection-of-linker-features.patch b/0002-WAF-Fix-detection-of-linker-features.patch new file mode 100644 index 0000000..640374d --- /dev/null +++ b/0002-WAF-Fix-detection-of-linker-features.patch @@ -0,0 +1,45 @@ +From f4c0a750d4adebcf2342a44e85f04526c34268c8 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Tue, 6 Dec 2016 18:07:36 +0100 +Subject: [PATCH 2/4] WAF: Fix detection of linker features +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Following check of linker feature failed with strict CFLAGS +"-Werrorr=implicit-function-declaration -Werror=implicit-int" + + Checking for rpath library support : not found + Checking for -Wl,--version-script support : not found + +../main.c: In function ‘main’: +../main.c:1:26: error: implicit declaration of function ‘lib_func’ + [-Werror=implicit-function-declaration] + int main(void) {return !(lib_func() == 42);} + ^~~~~~~~ + +Signed-off-by: Lukas Slebodnik +Reviewed-by: Andreas Schneider +Reviewed-by: Ralph Boehme +--- + buildtools/wafsamba/samba_conftests.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py +index 045f858e9cdaae7ee5754a2c7fbef6642a7fee59..c9f8fdc0131838b44dc92196fa95c6b2f7aea506 100644 +--- a/buildtools/wafsamba/samba_conftests.py ++++ b/buildtools/wafsamba/samba_conftests.py +@@ -286,7 +286,9 @@ def CHECK_LIBRARY_SUPPORT(conf, rpath=False, version_script=False, msg=None): + os.makedirs(subdir) + + Utils.writef(os.path.join(subdir, 'lib1.c'), 'int lib_func(void) { return 42; }\n') +- Utils.writef(os.path.join(dir, 'main.c'), 'int main(void) {return !(lib_func() == 42);}\n') ++ Utils.writef(os.path.join(dir, 'main.c'), ++ 'int lib_func(void);\n' ++ 'int main(void) {return !(lib_func() == 42);}\n') + + bld = Build.BuildContext() + bld.log = conf.log +-- +2.11.1 + diff --git a/0003-WAF-Fix-detection-os-sysname.patch b/0003-WAF-Fix-detection-os-sysname.patch new file mode 100644 index 0000000..ad17bd9 --- /dev/null +++ b/0003-WAF-Fix-detection-os-sysname.patch @@ -0,0 +1,47 @@ +From be12f82cf1ca652b06995e84971c878621315d24 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Tue, 6 Dec 2016 18:07:43 +0100 +Subject: [PATCH 3/4] WAF: Fix detection os sysname ... +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Detection of sysname failed with stricter CFLAGS +"-Werrorr=implicit-function-declaration -Werror=implicit-int" + + Checking uname sysname type : not found + Checking uname machine type : not found + Checking uname release type : not found + Checking uname version type : not found + +../test.c: In function ‘main’: +../test.c:8:32: error: implicit declaration of function ‘printf’ + [-Werror=implicit-function-declaration] + printf("%s", n.sysname); + ^~~~~~ +../test.c:8:32: warning: incompatible implicit declaration + of built-in function ‘printf’ +../test.c:8:32: note: include ‘’ or provide a declaration of ‘printf’ + +Signed-off-by: Lukas Slebodnik +Reviewed-by: Andreas Schneider +Reviewed-by: Ralph Boehme +--- + buildtools/wafsamba/samba_conftests.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py +index c9f8fdc0131838b44dc92196fa95c6b2f7aea506..72e432164984c7faa9bc93745d401b5c38849d37 100644 +--- a/buildtools/wafsamba/samba_conftests.py ++++ b/buildtools/wafsamba/samba_conftests.py +@@ -438,6 +438,7 @@ def CHECK_UNAME(conf): + ret = True + for v in "sysname machine release version".split(): + if not conf.CHECK_CODE(''' ++ int printf(const char *format, ...); + struct utsname n; + if (uname(&n) == -1) return -1; + printf("%%s", n.%s); +-- +2.11.1 + diff --git a/0004-WAF-Fix-detection-of-IPv6.patch b/0004-WAF-Fix-detection-of-IPv6.patch new file mode 100644 index 0000000..579b934 --- /dev/null +++ b/0004-WAF-Fix-detection-of-IPv6.patch @@ -0,0 +1,45 @@ +From 59abfcb7945103cd4031abac86d51cd51ce052ca Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Tue, 6 Dec 2016 18:07:50 +0100 +Subject: [PATCH 4/4] WAF: Fix detection of IPv6 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Detection of IPv6 failed with strict CFLAGS due to missing +header file. + + Checking for HAVE_IPV6 : not found + +../test.c: In function ‘main’: +../test.c:226:34: error: implicit declaration of function + ‘if_nametoindex’ [-Werror=implicit-function-declaration] + int idx = if_nametoindex("iface1"); + ^~~~~~~~~~~~~~ + +Signed-off-by: Lukas Slebodnik +Reviewed-by: Andreas Schneider +Reviewed-by: Ralph Boehme + +Autobuild-User(master): Ralph Böhme +Autobuild-Date(master): Mon Jan 2 18:03:20 CET 2017 on sn-devel-144 +--- + lib/replace/wscript | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/replace/wscript b/lib/replace/wscript +index 1dfd90293ea6835a22510242e063bf3d2a20d263..ea0d5d09b895a7a119eb783f803ff5b9019e37df 100644 +--- a/lib/replace/wscript ++++ b/lib/replace/wscript +@@ -189,7 +189,7 @@ def configure(conf): + ''', + define='HAVE_IPV6', + lib='nsl socket', +- headers='sys/socket.h netdb.h netinet/in.h') ++ headers='sys/socket.h netdb.h netinet/in.h net/if.h') + + if conf.CONFIG_SET('HAVE_SYS_UCONTEXT_H') and conf.CONFIG_SET('HAVE_SIGNAL_H'): + conf.CHECK_CODE(''' +-- +2.11.1 + diff --git a/libldb.spec b/libldb.spec index f3adbd5..f3a2436 100644 --- a/libldb.spec +++ b/libldb.spec @@ -14,7 +14,7 @@ Name: libldb Version: 1.1.29 -Release: 4%{?dist} +Release: 5%{?dist} Group: Development/Libraries Summary: A schema-less, ldap like, API and database Requires: libtalloc%{?_isa} >= %{talloc_version} @@ -54,6 +54,10 @@ BuildRequires: python3-tevent %endif # Patches +Patch0001: 0001-lib-replace-Fix-detection-of-features.patch +Patch0002: 0002-WAF-Fix-detection-of-linker-features.patch +Patch0003: 0003-WAF-Fix-detection-os-sysname.patch +Patch0004: 0004-WAF-Fix-detection-of-IPv6.patch %description An extensible library that implements an LDAP like API to access remote LDAP @@ -146,6 +150,10 @@ Development files for the Python bindings for the LDB library %prep %setup -q -n ldb-%{version} +%patch0001 -p1 +%patch0002 -p1 +%patch0003 -p1 +%patch0004 -p1 %build @@ -265,6 +273,11 @@ rm -rf %{buildroot} %endif %changelog +* Sat Apr 01 2017 Lukas Slebodnik - 1.1.29-5 +- rhbz#1401172 - Missing symbol versioning provided by libldb.so with strict CFLAGS +- Fix configure time detection with -Werror=implicit-function-declaration + -Werror=implicit-int + * Fri Feb 10 2017 Fedora Release Engineering - 1.1.29-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild