The branch, v4-2-test has been updated via a4fdd14 wafsamba: create unique names when building shared modules via 47c1038 wafsamba: remove unused variable in SAMBA_MODULE() via 3e865e1 wafsamba: passing 'subsystem' to SAMBA_MODULE() is not optional via f9fbb92 wafsamba: make it possible to pass bundled_name to SAMBA_LIBRARY() via 23a4ba8 wafadmin: backported the openbsd fixes from waf 1.7 via aada20e wafsamba: remove commented out code. via 8001ec4 Revert "waf: added suncc_wrap" via deb4041 wafsamba: generate an empty.c file if a SAMBA_{LIBRARY,SUBSYSTEM} doesn't have any source files via b2bb6ae wafsamba: flags from enviroment are put before our own internal versions via 573c452 wafsamba: filter out standard library paths from RPATH and LIBPATH via 28e48f3 wafsamba: fix ordering problems with lib-provided and internal RPATHs via c2a5e08 wafsamba: make it possible to specify ADDITIONAL_{CFLAGS,LDFLAGS} as env var to ./configure via 320ee4e wafsamba: improve -fvisibility=hidden, we should check it together this WERROR_CFLAGS via f36016e wafsamba: let CURRENT_CFLAGS() use bld.env.VISIBILITY_CFLAGS via c6f5361 wafsamba: move -fvisibility=hidden checks from lib/replace to wafsamba via 57855ba wafsamba: move '-fstack-protector' checks from lib/replace to wafsamba via 1e84abd0 wafsamba: move WERROR_CFLAGS checks from lib/replace to wafsamba via 17ae6ba wafsamba: move compiler / cflags related stuff from lib/replace to wafsamba via cb71b4b wafsamba: let TO_LIST(mylist) return a copy of mylist via 1b57443 wafsamba: check for rpath compiler/linker flags via fe9897b wafsamba: fill PRIVATE_NAME() logic again via 5a257a0 wafsamba: add -Werror=return-type for developer builds via 1b31b8e Reduce the no-op build times by 30% via 94aceed Don't use a nested function when testing for visibility attribute support. via ac06d67 Fix more pep8 issues in code I touched recently. via 488def5 Remove last instances of pep8 error E712 (use 'is' rather than '==' for booleans) via 99b4213 s3: lib, s3: modules: Fix compilation on Solaris. via 8a5df7d s4:dsdb/tests: add test_timevalues1() to verify timestamp values via a707d53 ldb: version 1.1.20 via cd82192 lib/ldb: fix logic in ldb_val_to_time() via 62487b6 Remove use of the "staticforward" macro via 84008fe ldb: bump to version 1.1.19 via 3a97cea ldb: Allow to register extended match rules from f45d30c s3-pam_smbpass: Fix memory leak in pam_sm_authenticate().
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-2-test - Log ----------------------------------------------------------------- commit a4fdd14b366ea145678ea3387a894d596358003a Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jan 17 00:24:53 2015 +0100 wafsamba: create unique names when building shared modules After commit 76fdcf5c15bd904c3686f0c2dd93d27486c61ca4, we could endup with bin/default/source3/auth/libauth-samba4.so being created two times. Once by SAMBA3_LIBRARY('auth',...) and once again by SAMBA3_MODULE('auth_samba4', ...). As a result bin/default/source3/auth/libauth-samba4.so gets randomly overwritten. SAMBA3_MODULE('auth_samba4', ...) results in bin/default/source3/auth/libauth_module_samba4.so now. Bug: https://bugzilla.samba.org/show_bug.cgi?id=10112 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jelmer Vernooij <jel...@samba.org> Autobuild-User(master): Stefan Metzmacher <me...@samba.org> Autobuild-Date(master): Mon Jan 19 04:43:53 CET 2015 on sn-devel-104 (cherry picked from commit 47155641cb48d39d3ee7d8b8962f5ed6b23617d4) Autobuild-User(v4-2-test): Karolin Seeger <ksee...@samba.org> Autobuild-Date(v4-2-test): Tue Jan 27 13:22:33 CET 2015 on sn-devel-104 commit 47c1038b18852041ae003d0cef64b6d7721ba8dc Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jan 17 00:24:53 2015 +0100 wafsamba: remove unused variable in SAMBA_MODULE() Bug: https://bugzilla.samba.org/show_bug.cgi?id=10112 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jelmer Vernooij <jel...@samba.org> (cherry picked from commit 4da20e2e31790ca54f17b4a6039c24b7b502ac5f) commit 3e865e12913e3483f8a83b5ab0c8f57fca1e71e8 Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jan 17 00:24:53 2015 +0100 wafsamba: passing 'subsystem' to SAMBA_MODULE() is not optional Bug: https://bugzilla.samba.org/show_bug.cgi?id=10112 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jelmer Vernooij <jel...@samba.org> (cherry picked from commit 85a30cc44070b09de963961ccfa3d7c40144317b) commit f9fbb92f20d59539c544b2f8a2eddc309ca6e539 Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jan 17 00:24:53 2015 +0100 wafsamba: make it possible to pass bundled_name to SAMBA_LIBRARY() Bug: https://bugzilla.samba.org/show_bug.cgi?id=10112 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jelmer Vernooij <jel...@samba.org> (cherry picked from commit 7668e457a6463fb2c1d7499659f37d10ca322190) commit 23a4ba874011814580e81bbb811c7a401e7868a6 Author: Thomas Nagy <tnagy2po...@gmail.com> Date: Tue Sep 17 00:00:40 2013 +0200 wafadmin: backported the openbsd fixes from waf 1.7 This is a backport from waf 1.5... Reviewed-by: Michael Adam <ob...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Fri Jan 9 02:02:07 CET 2015 on sn-devel-104 (cherry picked from commit 115eb94215f4d9c73d05606de2ad978f6b48d07f) commit aada20e0c0659e3bc556fabbae203eaddacba1b3 Author: Michael Adam <ob...@samba.org> Date: Mon Dec 22 11:30:21 2014 +0100 wafsamba: remove commented out code. This code has only ever been there as commented out... Pair-Programmed-With: Stefan Metzmacher <me...@samba.org> Signed-off-by: Michael Adam <ob...@samba.org> Signed-off-by: Stefan Metzmacher <me...@samba.org> (cherry picked from commit 9f2979a1a42f4714bdc49d09e4b5094333409834) commit 8001ec4fa7a9f0a1fcf3a958552dd68d9dc42514 Author: Michael Adam <ob...@samba.org> Date: Mon Dec 22 11:27:40 2014 +0100 Revert "waf: added suncc_wrap" This reverts commit 65743f932b511db009655847e77288c95c0aa525. Conflicts: buildtools/wafsamba/samba_optimisation.py Signed-off-by: Michael Adam <ob...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> (cherry picked from commit ffff95d421e3ca7fa31ec668a2e8fc7fdaee05df) commit deb4041958bcd4b236fc82092a4bff42fafd2442 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Dec 19 13:10:30 2014 +0100 wafsamba: generate an empty.c file if a SAMBA_{LIBRARY,SUBSYSTEM} doesn't have any source files This is better than passing '-' as filename to the compiler/linker. This replaces commit 65743f932b511db009655847e77288c95c0aa525. Bug: https://bugzilla.samba.org/show_bug.cgi?id=9334 Bug: https://bugzilla.samba.org/show_bug.cgi?id=10315 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> (cherry picked from commit d7bd51a79d0784d3db809c0c5e82193f79799dc3) commit b2bb6aeb8057ac725f6ad12378344b201c3a3ba2 Author: Ralph Boehme <s...@samba.org> Date: Fri Dec 19 09:05:33 2014 +0100 wafsamba: flags from enviroment are put before our own internal versions Ensure user provided CPPFLAGS and LDFLAGS are put *behind* our internally computed compiler and linker flags. Bug: https://bugzilla.samba.org/show_bug.cgi?id=10877 Pair-Programmed-With: Michael Adam <ob...@samba.org> Pair-Programmed-With: Stefan Metzmacher <me...@samba.org> Signed-off-by: Ralph Boehme <s...@samba.org> Signed-off-by: Michael Adam <ob...@samba.org> Signed-off-by: Stefan Metzmacher <me...@samba.org> (cherry picked from commit a6bda1f2bc85779feb9680bc74821da5ccd401c5) commit 573c4522f25f434b8dd3ceac622075d16c1d4eac Author: Michael Adam <ob...@samba.org> Date: Thu Dec 18 21:36:07 2014 +0100 wafsamba: filter out standard library paths from RPATH and LIBPATH We should avoid passing them explicitly to the compiler/linker. We ask the compiler with the '-print-search-dirs' argument or fallback to [ '/usr/lib', '/usr/lib64' ]. Pair-Programmed-With: Stefan Metzmacher <me...@samba.org> Signed-off-by: Michael Adam <ob...@samba.org> Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 707dc16987c982b75c83cd5b06d4373c23e777e0) commit 28e48f36c792b73e36b49c879d095d984cc75e69 Author: Michael Adam <ob...@samba.org> Date: Thu Dec 18 18:09:15 2014 +0100 wafsamba: fix ordering problems with lib-provided and internal RPATHs When a library or system (like cups) provides an RPATH, e.g. with -Wl,-R or -Wl,-rpath, this was added by waf to the LINKFLAGS, wich was later prepended to our RPATH. But if the path by chance contains an older version of one of our internal libraries like talloc, this would lead to linking the too old talloc into our binaries. This has been observed on, e.g., FreeBSD, but it is a general problem. This patch fixes the problem by specially parsing the RPATH linker options from the pkg-config(, cups-config, ....) output and putting the paths into the RPATH_<lib> container, which is then later correctly appended to our internal RPATH. This is a better fix than commit 64f5e24100a764ec198cab9a8d2c43fa86e7027c as it touches wafsamba only. 64f5e24100a764ec198cab9a8d2c43fa86e7027c is already in waf 1.5 upstream, but has some possible bugs, e.g. it doesn't handle -Wl,-R, (with ',' at the end) or some combinations where the path is given via an additional -Wl,/path argument. Bug: https://bugzilla.samba.org/show_bug.cgi?id=10548 Pair-Programmed-With: Stefan Metzmacher <me...@samba.org> Signed-off-by: Michael Adam <ob...@samba.org> Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit dc808a466ef835535a3d4bb87f19316eeff1c567) commit c2a5e0818fa61118d352b7367785ad72688feb77 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Jan 7 11:13:04 2015 +0100 wafsamba: make it possible to specify ADDITIONAL_{CFLAGS,LDFLAGS} as env var to ./configure CFLAGS and LDFLAGS are also used during the configure checks and might impact their results. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> (cherry picked from commit d744c7c080d81121b84a592a95761e03c2a1090c) commit 320ee4ed36fe2b1c4bb22942373ad13768ae420f Author: Stefan Metzmacher <me...@samba.org> Date: Wed Jan 7 09:16:57 2015 +0100 wafsamba: improve -fvisibility=hidden, we should check it together this WERROR_CFLAGS GCC ignores -fvisibility=hidden with a warning instead of failing om some platforms (e.g. Solaris). Bug: https://bugzilla.samba.org/show_bug.cgi?id=11031 Based on a patch from Tom Schulz <sch...@adi.com>. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> (cherry picked from commit 46fdd6221e9c64b459e0d05e6d02d89deb8dafb5) commit f36016e8102e6b94aeac8b7b267cb445a10d1e74 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Jan 7 09:58:38 2015 +0100 wafsamba: let CURRENT_CFLAGS() use bld.env.VISIBILITY_CFLAGS This is better than a hardcoded value in multiple places. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> (cherry picked from commit 52eb8854ff8535577c9282f8e4133875fbb0ed33) commit c6f5361d4995ee706e1656e823516b336b49af8c Author: Stefan Metzmacher <me...@samba.org> Date: Wed Jan 7 09:56:56 2015 +0100 wafsamba: move -fvisibility=hidden checks from lib/replace to wafsamba Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> (cherry picked from commit 4683fc0f1dc5af3bcf81edaebfbd6c8d3b38df9e) commit 57855ba89a723cbafddf3398beca2fa41c09d95f Author: Stefan Metzmacher <me...@samba.org> Date: Wed Jan 7 09:54:43 2015 +0100 wafsamba: move '-fstack-protector' checks from lib/replace to wafsamba This moves the check to the end of the configure run, which means we no longer use this on configure checks, but only for the real build. This behavior is similar than our developer cflags. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> (cherry picked from commit 208be32c6a9b275c507fb5e3334b832a3cb9578a) commit 1e84abd0509cbd98def1a4c82233b452f19a1439 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Jan 7 09:52:53 2015 +0100 wafsamba: move WERROR_CFLAGS checks from lib/replace to wafsamba Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> (cherry picked from commit 0f4ce418ae1410a294aa6e629beea68c6a16aff8) commit 17ae6ba5c18b79721e639f486095a182adc82497 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Jan 7 09:48:38 2015 +0100 wafsamba: move compiler / cflags related stuff from lib/replace to wafsamba We should have this just in one central place. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> (cherry picked from commit 7a3dc668528f398458851aca5d27ff789414343a) commit cb71b4b1aafaa3fae8c19b6d2cfd1b0e40d2ff95 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Jan 7 09:41:02 2015 +0100 wafsamba: let TO_LIST(mylist) return a copy of mylist In most cases we have TO_LIST(mystring) which returns an independent list. newlist = TO_LIST(mylist) returned just a reference to mylist. Which means newlist.append("end") would also modify mylist. TO_LIST() should always return an independent list. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> (cherry picked from commit ab4b988ba2ba85ec2bfb01d7711d6870b3e0f710) commit 1b5744352fef07c4a6f9492946a6bf0a9a4a4c9a Author: Ralph Boehme <s...@samba.org> Date: Thu Dec 18 06:37:28 2014 +0100 wafsamba: check for rpath compiler/linker flags Older SunOS linker only support -Wl,-R,/path instead of -Wl,-rpath,/path. Bug: https://bugzilla.samba.org/show_bug.cgi?id=10112 Pair-Programmed-With: Stefan Metzmacher <me...@samba.org> Signed-off-by: Ralph Boehme <s...@samba.org> Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> (cherry picked from commit 89cc31f5cf9181f04f3ca1a5f7000ee15a74e86e) commit fe9897b71356cc788aa8a41e0cc9e478615312a2 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Dec 18 15:05:12 2014 +0100 wafsamba: fill PRIVATE_NAME() logic again We append bld.env.PRIVATE_EXTENSION to the name of private libraries again, but only unless they have a abi_directory, vnum or soname defined. This avoids naming conflicts with system libraries, e.g. libidmap.so on Solaris Bug: https://bugzilla.samba.org/show_bug.cgi?id=10112 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> (cherry picked from commit 76fdcf5c15bd904c3686f0c2dd93d27486c61ca4) commit 5a257a02951717089b7fa76bcabeb1bfaab7e22b Author: Stefan Metzmacher <me...@samba.org> Date: Fri Nov 7 09:36:16 2014 +0100 wafsamba: add -Werror=return-type for developer builds This avoids errors like this: ../source3/utils/status.c: In function ‘print_share_mode’: ../source3/utils/status.c:126:3: error: ‘return’ with no value, in function returning non-void [-Werror=return-type] return; Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 6ff9388172909ce249fd6254703eee707d821731) commit 1b31b8e50bdfe566f074d9f61ee60c3c90b60ffb Author: Thomas Nagy <tnagy2po...@gmail.com> Date: Fri Sep 26 23:46:01 2014 +0200 Reduce the no-op build times by 30% Change-Id: Ie68436c1e7c75c1786e9ed6b6a54d2b55abbbcea Reviewed-by: Matthieu Patou <m...@matws.net> Reviewed-by: Stefan Metzmacher <me...@samba.org> Autobuild-User(master): Michael Adam <ob...@samba.org> Autobuild-Date(master): Fri Oct 3 13:25:18 CEST 2014 on sn-devel-104 (cherry picked from commit 1c5ef289a872cf0dc78b2e9dd35b20fa99db86fb) commit 94aceede403e5f7e9d56758aa0f54e1b4ca59a08 Author: Jelmer Vernooij <jel...@samba.org> Date: Sat Nov 8 16:22:30 2014 +0000 Don't use a nested function when testing for visibility attribute support. Some compilers support __attribute__((visibility)), but not nested functions (e.g. http://www.cprover.org/goto-cc/) Change-Id: I01a5dd6f5f913664621c4090e2dca177527436bb Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749983 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749985 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749986 Signed-Off-By: Jelmer Vernooij <jel...@debian.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Mon Nov 10 08:29:19 CET 2014 on sn-devel-104 (cherry picked from commit 2afc5b797826780c07e04ed153edc82f410668a2) commit ac06d67a7208e4e9b30d5225de691c6902e7b0d6 Author: Jelmer Vernooij <jel...@samba.org> Date: Mon Jun 2 02:53:01 2014 +0200 Fix more pep8 issues in code I touched recently. Signed-Off-By: Jelmer Vernooij <jel...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> Change-Id: I35f3204bdf5d00b3280d703427ded2fa2163a6f7 (similar to commit 0c2408531709eb720a2e96f72afbc2ecbfe6b06d) This only backports the buildtools/wafsamba/ changes commit 488def5030d9a14473fe4a7c701c908bb426a568 Author: Jelmer Vernooij <jel...@samba.org> Date: Mon Jun 2 02:36:13 2014 +0200 Remove last instances of pep8 error E712 (use 'is' rather than '==' for booleans) Signed-Off-By: Jelmer Vernooij <jel...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> Change-Id: I43b394a6225b4c2049d979fda75548c82d781f67 (cherry picked from commit bd6faaf56a6237874cc84ddb8be0f09a9b742a54) commit 99b421326d7dbb56cdf0674ff1620fcf16be85b3 Author: Jeremy Allison <j...@samba.org> Date: Fri Oct 3 09:24:04 2014 -0700 s3: lib, s3: modules: Fix compilation on Solaris. Based on work from YOUZHONG YANG <youzh...@gmail.com>. Code needs fixing when HAVE_STRUCT_MSGHDR_MSG_CONTROL is not defined. Also Solaris doesn't have msg_flags field (which we set to zero anyway, so if we initialize the entire struct to zero, we never need to refer to it). https://bugzilla.samba.org/show_bug.cgi?id=10849 Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Autobuild-User(master): Andreas Schneider <a...@cryptomilk.org> Autobuild-Date(master): Mon Oct 6 12:33:36 CEST 2014 on sn-devel-104 (cherry picked from commit 57bcb8055eb3e15c4ce7bcdeeef7efed175ed347) commit 8a5df7dcdddca59a65a24991004261084df359f1 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Jan 9 08:56:59 2015 +0100 s4:dsdb/tests: add test_timevalues1() to verify timestamp values Bug: https://bugzilla.samba.org/show_bug.cgi?id=9810 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Reviewed-by: Günther Deschner <g...@samba.org> Autobuild-User(master): Stefan Metzmacher <me...@samba.org> Autobuild-Date(master): Sat Jan 24 20:17:20 CET 2015 on sn-devel-104 (cherry picked from commit dc2f91020e3b52942f8aab60fd1db70d2afadd51) commit a707d5343f5c77777205273966bab39c24328a36 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jan 19 17:17:13 2015 +0100 ldb: version 1.1.20 - Bug 9810 - validate_ldb of String(Generalized-Time) does not accept millisecond format ".000Z" Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Reviewed-by: Günther Deschner <g...@samba.org> (cherry picked from commit c7af8ae9d2aa19db2533e69b8a4d7c1b6f8e2d9f) commit cd82192b2bf8a838412d2cc5785d95353823b41d Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jan 19 15:47:58 2015 +0100 lib/ldb: fix logic in ldb_val_to_time() 040408072012Z should represent 20040408072012.0Z as well as 20040408072012.000Z or 20040408072012.RandomIgnoredCharaters...Z Bug: https://bugzilla.samba.org/show_bug.cgi?id=9810 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Reviewed-by: Günther Deschner <g...@samba.org> (cherry picked from commit d1b515535da46591d3a646a848c7427b6ff951a7) commit 62487b6719d944bdac4690008bce7bb28be42259 Author: Petr Viktorin <pvikt...@redhat.com> Date: Wed Dec 3 13:59:58 2014 +0100 Remove use of the "staticforward" macro This macro was used for compatibility with broken compilers. Since Python 2.3, it is always defined as `static`, and only exists "for source compatibility with old C extensions". Signed-off-by: Petr Viktorin <pvikt...@redhat.com> Reviewed-by: Jelmer Vernooij <jel...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> (cherry picked from commit 02980268e8641a1558c6f475d4669ce4d663504d) commit 84008feb4a4cd419db0e0f5ad02cf86a489822f1 Author: Andrew Bartlett <abart...@samba.org> Date: Fri Dec 19 15:25:03 2014 +1300 ldb: bump to version 1.1.19 Signed-off-by: Andrew Bartlett <abart...@samba.org> Pair-programmed-by: Garming Sam <garm...@catalyst.net.nz> Signed-off-by: Garming Sam <garm...@catalyst.net.nz> (cherry picked from commit 02f6ab85a0dcec59c12384a8738eecf7d322071f) commit 3a97ceaa5ca4ac6ffec8760cca92b57ff4af70b5 Author: Samuel Cabrero <samuelcabr...@kernevil.me> Date: Wed Nov 5 11:02:25 2014 +0100 ldb: Allow to register extended match rules This allows to extend LDB by registering extended match rules from outside the library itself. This is necessary when the implementation requires knowledge about syntaxes implemented in samba extensions, like the LDAP_MATCHING_RULE_TRANSITIVE_EVAL match. Signed-off-by: Samuel Cabrero <samuelcabr...@kernevil.me> Singed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Garming Sam <garm...@catalyst.net.nz> (cherry picked from commit faa4be0535fd41bf282b1afc749a05412f4ee96c) ----------------------------------------------------------------------- Summary of changes: buildtools/wafadmin/Tools/ccroot.py | 18 +- buildtools/wafadmin/Tools/gcc.py | 4 + buildtools/wafadmin/Tools/gxx.py | 4 + buildtools/wafsamba/samba3.py | 13 +- buildtools/wafsamba/samba_autoconf.py | 21 +- buildtools/wafsamba/samba_bundled.py | 16 +- buildtools/wafsamba/samba_conftests.py | 82 +++++++ buildtools/wafsamba/samba_deps.py | 6 +- buildtools/wafsamba/samba_optimisation.py | 250 +++++++++++++++++---- buildtools/wafsamba/samba_utils.py | 3 +- buildtools/wafsamba/wafsamba.py | 72 ++++-- buildtools/wafsamba/wscript | 47 ++++ lib/ldb-samba/pyldb.c | 2 +- lib/ldb/ABI/{ldb-1.1.16.sigs => ldb-1.1.19.sigs} | 1 + lib/ldb/ABI/{ldb-1.1.16.sigs => ldb-1.1.20.sigs} | 1 + ...ldb-util-1.1.10.sigs => pyldb-util-1.1.19.sigs} | 0 ...ldb-util-1.1.10.sigs => pyldb-util-1.1.20.sigs} | 0 lib/ldb/common/ldb.c | 5 + lib/ldb/common/ldb_match.c | 177 ++++++++++++--- lib/ldb/common/ldb_msg.c | 38 +++- lib/ldb/include/ldb_module.h | 13 ++ lib/ldb/include/ldb_private.h | 6 + lib/ldb/pyldb.c | 14 +- lib/ldb/wscript | 2 +- lib/ntdb/pyntdb.c | 2 +- lib/replace/wscript | 45 ---- lib/tevent/pytevent.c | 12 +- pidl/lib/Parse/Pidl/Samba4/Python.pm | 4 +- source3/lib/unix_msg/unix_msg.c | 19 +- source3/modules/vfs_aio_fork.c | 5 +- source3/passdb/py_passdb.c | 6 +- source4/dsdb/tests/python/ldap.py | 40 ++++ source4/libcli/pysmb.c | 2 +- source4/librpc/rpc/pyrpc.c | 2 +- source4/scripting/bin/samba_upgradeprovision | 2 +- 35 files changed, 730 insertions(+), 204 deletions(-) copy lib/ldb/ABI/{ldb-1.1.16.sigs => ldb-1.1.19.sigs} (99%) copy lib/ldb/ABI/{ldb-1.1.16.sigs => ldb-1.1.20.sigs} (99%) copy lib/ldb/ABI/{pyldb-util-1.1.10.sigs => pyldb-util-1.1.19.sigs} (100%) copy lib/ldb/ABI/{pyldb-util-1.1.10.sigs => pyldb-util-1.1.20.sigs} (100%) Changeset truncated at 500 lines: diff --git a/buildtools/wafadmin/Tools/ccroot.py b/buildtools/wafadmin/Tools/ccroot.py index 264bdc7..d59cf26 100644 --- a/buildtools/wafadmin/Tools/ccroot.py +++ b/buildtools/wafadmin/Tools/ccroot.py @@ -177,10 +177,14 @@ def get_target_name(self): dir, name = os.path.split(self.target) - if self.env.DEST_BINFMT == 'pe' and getattr(self, 'vnum', None) and 'cshlib' in self.features: - # include the version in the dll file name, - # the import lib file name stays unversionned. - name = name + '-' + self.vnum.split('.')[0] + if 'cshlib' in self.features and getattr(self, 'vnum', None): + nums = self.vnum.split('.') + if self.env.DEST_BINFMT == 'pe': + # include the version in the dll file name, + # the import lib file name stays unversionned. + name = name + '-' + nums[0] + elif self.env.DEST_OS == 'openbsd': + pattern = '%s.%s.%s' % (pattern, nums[0], nums[1]) return os.path.join(dir, pattern % name) @@ -598,14 +602,16 @@ def apply_vnum(self): if not path: return if self.env.DEST_OS == 'openbsd': - bld.install_as(path + os.sep + name2, node, env=self.env, chmod=self.link_task.chmod) + libname = self.link_task.outputs[0].name + bld.install_as('%s%s%s' % (path, os.sep, libname), node, env=self.env) else: bld.install_as(path + os.sep + name3, node, env=self.env) bld.symlink_as(path + os.sep + name2, name3) bld.symlink_as(path + os.sep + libname, name3) # the following task is just to enable execution from the build dir :-/ - self.create_task('vnum', node, [node.parent.find_or_declare(name2), node.parent.find_or_declare(name3)]) + if self.env.DEST_OS != 'openbsd': + self.create_task('vnum', node, [node.parent.find_or_declare(name2), node.parent.find_or_declare(name3)]) def exec_vnum_link(self): for x in self.outputs: diff --git a/buildtools/wafadmin/Tools/gcc.py b/buildtools/wafadmin/Tools/gcc.py index 420b44f..a6be0b2 100644 --- a/buildtools/wafadmin/Tools/gcc.py +++ b/buildtools/wafadmin/Tools/gcc.py @@ -114,6 +114,10 @@ def gcc_modifier_aix(conf): v['SHLIB_MARKER'] = '' @conftest +def gcc_modifier_openbsd(conf): + conf.env['SONAME_ST'] = [] + +@conftest def gcc_modifier_platform(conf): # * set configurations specific for a platform. # * the destination platform is detected automatically by looking at the macros the compiler predefines, diff --git a/buildtools/wafadmin/Tools/gxx.py b/buildtools/wafadmin/Tools/gxx.py index 8f4a0bf..4984122 100644 --- a/buildtools/wafadmin/Tools/gxx.py +++ b/buildtools/wafadmin/Tools/gxx.py @@ -112,6 +112,10 @@ def gxx_modifier_aix(conf): v['SHLIB_MARKER'] = '' @conftest +def gxx_modifier_openbsd(conf): + conf.env['SONAME_ST'] = [] + +@conftest def gxx_modifier_platform(conf): # * set configurations specific for a platform. # * the destination platform is detected automatically by looking at the macros the compiler predefines, diff --git a/buildtools/wafsamba/samba3.py b/buildtools/wafsamba/samba3.py index 64cd8c7..ffe6784 100644 --- a/buildtools/wafsamba/samba3.py +++ b/buildtools/wafsamba/samba3.py @@ -6,16 +6,17 @@ from optparse import SUPPRESS_HELP from samba_utils import os_path_relpath, TO_LIST from samba_autoconf import library_flags + def SAMBA3_ADD_OPTION(opt, option, help=(), dest=None, default=True, with_name="with", without_name="without"): if default is None: - default_str="auto" - elif default == True: - default_str="yes" - elif default == False: - default_str="no" + default_str = "auto" + elif default is True: + default_str = "yes" + elif default is False: + default_str = "no" else: - default_str=str(default) + default_str = str(default) if help == (): help = ("Build with %s support (default=%s)" % (option, default_str)) diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index f60ce9d..cb33630 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -646,6 +646,10 @@ def SAMBA_CONFIG_H(conf, path=None): if not IN_LAUNCH_DIR(conf): return + if conf.CHECK_CFLAGS(['-fstack-protector']) and conf.CHECK_LDFLAGS(['-fstack-protector']): + conf.ADD_CFLAGS('-fstack-protector') + conf.ADD_LDFLAGS('-fstack-protector') + if Options.options.debug: conf.ADD_CFLAGS('-g', testflags=True) @@ -671,6 +675,8 @@ def SAMBA_CONFIG_H(conf, path=None): testflags=True) conf.ADD_CFLAGS('-Werror=declaration-after-statement -Wdeclaration-after-statement', testflags=True) + conf.ADD_CFLAGS('-Werror=return-type -Wreturn-type', + testflags=True) conf.ADD_CFLAGS('-Wformat=2 -Wno-format-y2k', testflags=True) # This check is because for ldb_search(), a NULL format string @@ -697,6 +703,19 @@ int main(void) { if Options.options.pedantic: conf.ADD_CFLAGS('-W', testflags=True) + + # Let people pass an additional ADDITIONAL_{CFLAGS,LDFLAGS} + # environment variables which are only used the for final build. + # + # The CFLAGS and LDFLAGS environment variables are also + # used for the configure checks which might impact their results. + conf.add_os_flags('ADDITIONAL_CFLAGS') + if conf.env.ADDITIONAL_CFLAGS and conf.CHECK_CFLAGS(conf.env['ADDITIONAL_CFLAGS']): + conf.env['EXTRA_CFLAGS'].extend(conf.env['ADDITIONAL_CFLAGS']) + conf.add_os_flags('ADDITIONAL_LDFLAGS') + if conf.env.ADDITIONAL_LDFLAGS and conf.CHECK_LDFLAGS(conf.env['ADDITIONAL_LDFLAGS']): + conf.env['EXTRA_LDFLAGS'].extend(conf.env['ADDITIONAL_LDFLAGS']) + if path is None: conf.write_config_header('config.h', top=True) else: @@ -775,7 +794,7 @@ def CURRENT_CFLAGS(bld, target, cflags, allow_warnings=True, hide_symbols=False) list = bld.env['PICKY_CFLAGS']; ret.extend(list) if hide_symbols and bld.env.HAVE_VISIBILITY_ATTR: - ret.append('-fvisibility=hidden') + ret.append(bld.env.VISIBILITY_CFLAGS) return ret diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py index 45946d5..515590f 100644 --- a/buildtools/wafsamba/samba_bundled.py +++ b/buildtools/wafsamba/samba_bundled.py @@ -7,11 +7,25 @@ from samba_utils import * def PRIVATE_NAME(bld, name, private_extension, private_library): '''possibly rename a library to include a bundled extension''' + if not private_library: + return name + # we now use the same private name for libraries as the public name. # see http://git.samba.org/?p=tridge/junkcode.git;a=tree;f=shlib for a # demonstration that this is the right thing to do # also see http://lists.samba.org/archive/samba-technical/2011-January/075816.html - return name + if private_extension: + return name + + extension = bld.env.PRIVATE_EXTENSION + + if extension and name.startswith('%s' % extension): + return name + + if extension and name.endswith('%s' % extension): + return name + + return "%s-%s" % (name, extension) def target_in_list(target, lst, default): diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py index ec98ba0..1afc6c9 100644 --- a/buildtools/wafsamba/samba_conftests.py +++ b/buildtools/wafsamba/samba_conftests.py @@ -4,6 +4,7 @@ import os, shutil, re import Build, Configure, Utils from Configure import conf +import config_c from samba_utils import * @@ -506,3 +507,84 @@ def CHECK_XSLTPROC_MANPAGES(conf): if not conf.CONFIG_SET('XSLTPROC_MANPAGES'): print "A local copy of the docbook.xsl wasn't found on your system" \ " consider installing package like docbook-xsl" + +# +# Determine the standard libpath for the used compiler, +# so we can later use that to filter out these standard +# library paths when some tools like cups-config or +# python-config report standard lib paths with their +# ldflags (-L...) +# +@conf +def CHECK_STANDARD_LIBPATH(conf): + # at least gcc and clang support this: + try: + cmd = conf.env.CC + ['-print-search-dirs'] + out = Utils.cmd_output(cmd).split('\n') + except ValueError: + # option not supported by compiler - use a standard list of directories + dirlist = [ '/usr/lib', '/usr/lib64' ] + except: + raise Utils.WafError('Unexpected error running "%s"' % (cmd)) + else: + dirlist = [] + for line in out: + line = line.strip() + if line.startswith("libraries: ="): + dirliststr = line[len("libraries: ="):] + dirlist = [ os.path.normpath(x) for x in dirliststr.split(':') ] + break + + conf.env.STANDARD_LIBPATH = dirlist + + +waf_config_c_parse_flags = config_c.parse_flags; +def samba_config_c_parse_flags(line1, uselib, env): + # + # We do a special treatment of the rpath components + # in the linkflags line, because currently the upstream + # parse_flags function is incomplete with respect to + # treatment of the rpath. The remainder of the linkflags + # line is later passed to the original funcion. + # + lst1 = shlex.split(line1) + lst2 = [] + while lst1: + x = lst1.pop(0) + + # + # NOTE on special treatment of -Wl,-R and -Wl,-rpath: + # + # It is important to not put a library provided RPATH + # into the LINKFLAGS but in the RPATH instead, since + # the provided LINKFLAGS get prepended to our own internal + # RPATH later, and hence can potentially lead to linking + # in too old versions of our internal libs. + # + # We do this filtering here on our own because of some + # bugs in the real parse_flags() function. + # + if x == '-Wl,-rpath' or x == '-Wl,-R': + linkflags.remove(x) + x = lst1.pop(0) + if x.startswith('-Wl,'): + rpath = x[4:] + else: + rpath = x + elif x.startswith('-Wl,-R,'): + rpath = x[7:] + elif x.startswith('-Wl,-R'): + rpath = x[6:] + elif x.startswith('-Wl,-rpath,'): + rpath = x[11:] + else: + lst2.append(x) + continue + + env.append_value('RPATH_' + uselib, rpath) + + line2 = ' '.join(lst2) + waf_config_c_parse_flags(line2, uselib, env) + + return +config_c.parse_flags = samba_config_c_parse_flags diff --git a/buildtools/wafsamba/samba_deps.py b/buildtools/wafsamba/samba_deps.py index c00744e..3be9956 100644 --- a/buildtools/wafsamba/samba_deps.py +++ b/buildtools/wafsamba/samba_deps.py @@ -1021,7 +1021,7 @@ def save_samba_deps(bld, tgt_list): denv.outenv[t.sname] = tdeps depsfile = os.path.join(bld.bdir, "sambadeps") - denv.store(depsfile) + denv.store_fast(depsfile) @@ -1031,12 +1031,12 @@ def load_samba_deps(bld, tgt_list): denv = Environment.Environment() try: debug('deps: checking saved dependencies') - denv.load(depsfile) + denv.load_fast(depsfile) if (denv.version != savedeps_version or denv.savedeps_inputs != savedeps_inputs or denv.savedeps_outputs != savedeps_outputs): return False - except: + except Exception: return False # check if critical files have changed diff --git a/buildtools/wafsamba/samba_optimisation.py b/buildtools/wafsamba/samba_optimisation.py index f0f430d..5def580 100644 --- a/buildtools/wafsamba/samba_optimisation.py +++ b/buildtools/wafsamba/samba_optimisation.py @@ -6,8 +6,10 @@ # overall this makes some build tasks quite a bit faster -from TaskGen import feature, after -import preproc, Task +import os +import Build, Utils, Node +from TaskGen import feature, after, before +import preproc @feature('cc', 'cxx') @after('apply_type_vars', 'apply_lib_vars', 'apply_core') @@ -122,44 +124,208 @@ def hash_constraints(self): return sum Task.TaskBase.hash_constraints = hash_constraints +def hash_env_vars(self, env, vars_lst): + idx = str(id(env)) + str(vars_lst) + try: + return self.cache_sig_vars[idx] + except KeyError: + pass + + m = Utils.md5() + m.update(''.join([str(env[a]) for a in vars_lst])) + + ret = self.cache_sig_vars[idx] = m.digest() + return ret +Build.BuildContext.hash_env_vars = hash_env_vars + + +def store_fast(self, filename): + file = open(filename, 'wb') + data = self.get_merged_dict() + try: + Build.cPickle.dump(data, file, -1) + finally: + file.close() +Environment.Environment.store_fast = store_fast + +def load_fast(self, filename): + file = open(filename, 'rb') + try: + data = Build.cPickle.load(file) + finally: + file.close() + self.table.update(data) +Environment.Environment.load_fast = load_fast + +def is_this_a_static_lib(self, name): + try: + cache = self.cache_is_this_a_static_lib + except AttributeError: + cache = self.cache_is_this_a_static_lib = {} + try: + return cache[name] + except KeyError: + ret = cache[name] = 'cstaticlib' in self.bld.name_to_obj(name, self.env).features + return ret +TaskGen.task_gen.is_this_a_static_lib = is_this_a_static_lib + +def shared_ancestors(self): + try: + cache = self.cache_is_this_a_static_lib + except AttributeError: + cache = self.cache_is_this_a_static_lib = {} + try: + return cache[id(self)] + except KeyError: + + ret = [] + if 'cshlib' in self.features: # or 'cprogram' in self.features: + if getattr(self, 'uselib_local', None): + lst = self.to_list(self.uselib_local) + ret = [x for x in lst if not self.is_this_a_static_lib(x)] + cache[id(self)] = ret + return ret +TaskGen.task_gen.shared_ancestors = shared_ancestors + +@feature('cc', 'cxx') +@after('apply_link', 'init_cc', 'init_cxx', 'apply_core') +def apply_lib_vars(self): + """after apply_link because of 'link_task' + after default_cc because of the attribute 'uselib'""" + + # after 'apply_core' in case if 'cc' if there is no link + + env = self.env + app = env.append_value + seen_libpaths = set([]) + + # OPTIMIZATION 1: skip uselib variables already added (700ms) + seen_uselib = set([]) + + # 1. the case of the libs defined in the project (visit ancestors first) + # the ancestors external libraries (uselib) will be prepended + self.uselib = self.to_list(self.uselib) + names = self.to_list(self.uselib_local) + + seen = set([]) + tmp = Utils.deque(names) # consume a copy of the list of names + while tmp: + lib_name = tmp.popleft() + # visit dependencies only once + if lib_name in seen: + continue + + y = self.name_to_obj(lib_name) + if not y: + raise Utils.WafError('object %r was not found in uselib_local (required by %r)' % (lib_name, self.name)) + y.post() + seen.add(lib_name) + + # OPTIMIZATION 2: pre-compute ancestors shared libraries (100ms) + tmp.extend(y.shared_ancestors()) + + # link task and flags + if getattr(y, 'link_task', None): + + link_name = y.target[y.target.rfind('/') + 1:] + if 'cstaticlib' in y.features: + app('STATICLIB', link_name) + elif 'cshlib' in y.features or 'cprogram' in y.features: + # WARNING some linkers can link against programs + app('LIB', link_name) + + # the order + self.link_task.set_run_after(y.link_task) + + # for the recompilation + dep_nodes = getattr(self.link_task, 'dep_nodes', []) + self.link_task.dep_nodes = dep_nodes + y.link_task.outputs + + # OPTIMIZATION 3: reduce the amount of function calls + # add the link path too + par = y.link_task.outputs[0].parent + if id(par) not in seen_libpaths: + seen_libpaths.add(id(par)) + tmp_path = par.bldpath(self.env) + if not tmp_path in env['LIBPATH']: + env.prepend_value('LIBPATH', tmp_path) + + + # add ancestors uselib too - but only propagate those that have no staticlib + for v in self.to_list(y.uselib): + if v not in seen_uselib: + seen_uselib.add(v) + if not env['STATICLIB_' + v]: + if not v in self.uselib: + self.uselib.insert(0, v) + + # 2. the case of the libs defined outside + for x in self.uselib: + for v in self.p_flag_vars: + val = self.env[v + '_' + x] + if val: + self.env.append_value(v, val) + +@feature('cprogram', 'cshlib', 'cstaticlib') +@after('apply_lib_vars') +@before('apply_obj_vars') +def samba_before_apply_obj_vars(self): + """before apply_obj_vars for uselib, this removes the standard pathes""" + + def is_standard_libpath(env, path): + for _path in env.STANDARD_LIBPATH: + if _path == os.path.normpath(path): + return True + return False + + v = self.env + + for i in v['RPATH']: + if is_standard_libpath(v, i): + v['RPATH'].remove(i) + + for i in v['LIBPATH']: + if is_standard_libpath(v, i): + v['LIBPATH'].remove(i) + +@feature('cc') +@before('apply_incpaths', 'apply_obj_vars_cc') +def samba_stash_cppflags(self): + """Fix broken waf ordering of CPPFLAGS""" + + self.env.SAVED_CPPFLAGS = self.env.CPPFLAGS -- Samba Shared Repository