[SCM] Samba Shared Repository - branch v4-2-test updated

Karolin Seeger kseeger at samba.org
Tue Jan 27 05:23:06 MST 2015


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 <metze at 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 <metze at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>
    
    Autobuild-User(master): Stefan Metzmacher <metze at 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 <kseeger at samba.org>
    Autobuild-Date(v4-2-test): Tue Jan 27 13:22:33 CET 2015 on sn-devel-104

commit 47c1038b18852041ae003d0cef64b6d7721ba8dc
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>
    (cherry picked from commit 4da20e2e31790ca54f17b4a6039c24b7b502ac5f)

commit 3e865e12913e3483f8a83b5ab0c8f57fca1e71e8
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>
    (cherry picked from commit 85a30cc44070b09de963961ccfa3d7c40144317b)

commit f9fbb92f20d59539c544b2f8a2eddc309ca6e539
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>
    (cherry picked from commit 7668e457a6463fb2c1d7499659f37d10ca322190)

commit 23a4ba874011814580e81bbb811c7a401e7868a6
Author: Thomas Nagy <tnagy2pow10 at 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 <obnox at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at 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 <obnox at 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 <metze at samba.org>
    
    Signed-off-by: Michael Adam <obnox at samba.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit 9f2979a1a42f4714bdc49d09e4b5094333409834)

commit 8001ec4fa7a9f0a1fcf3a958552dd68d9dc42514
Author: Michael Adam <obnox at 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 <obnox at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit ffff95d421e3ca7fa31ec668a2e8fc7fdaee05df)

commit deb4041958bcd4b236fc82092a4bff42fafd2442
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    (cherry picked from commit d7bd51a79d0784d3db809c0c5e82193f79799dc3)

commit b2bb6aeb8057ac725f6ad12378344b201c3a3ba2
Author: Ralph Boehme <slow at 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 <obnox at samba.org>
    Pair-Programmed-With: Stefan Metzmacher <metze at samba.org>
    
    Signed-off-by: Ralph Boehme <slow at samba.org>
    Signed-off-by: Michael Adam <obnox at samba.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit a6bda1f2bc85779feb9680bc74821da5ccd401c5)

commit 573c4522f25f434b8dd3ceac622075d16c1d4eac
Author: Michael Adam <obnox at 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 <metze at samba.org>
    
    Signed-off-by: Michael Adam <obnox at samba.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 707dc16987c982b75c83cd5b06d4373c23e777e0)

commit 28e48f36c792b73e36b49c879d095d984cc75e69
Author: Michael Adam <obnox at 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 <metze at samba.org>
    
    Signed-off-by: Michael Adam <obnox at samba.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit dc808a466ef835535a3d4bb87f19316eeff1c567)

commit c2a5e0818fa61118d352b7367785ad72688feb77
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    (cherry picked from commit d744c7c080d81121b84a592a95761e03c2a1090c)

commit 320ee4ed36fe2b1c4bb22942373ad13768ae420f
Author: Stefan Metzmacher <metze at 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 <schulz at adi.com>.
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    (cherry picked from commit 46fdd6221e9c64b459e0d05e6d02d89deb8dafb5)

commit f36016e8102e6b94aeac8b7b267cb445a10d1e74
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    (cherry picked from commit 52eb8854ff8535577c9282f8e4133875fbb0ed33)

commit c6f5361d4995ee706e1656e823516b336b49af8c
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    (cherry picked from commit 4683fc0f1dc5af3bcf81edaebfbd6c8d3b38df9e)

commit 57855ba89a723cbafddf3398beca2fa41c09d95f
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    (cherry picked from commit 208be32c6a9b275c507fb5e3334b832a3cb9578a)

commit 1e84abd0509cbd98def1a4c82233b452f19a1439
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    (cherry picked from commit 0f4ce418ae1410a294aa6e629beea68c6a16aff8)

commit 17ae6ba5c18b79721e639f486095a182adc82497
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    (cherry picked from commit 7a3dc668528f398458851aca5d27ff789414343a)

commit cb71b4b1aafaa3fae8c19b6d2cfd1b0e40d2ff95
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    (cherry picked from commit ab4b988ba2ba85ec2bfb01d7711d6870b3e0f710)

commit 1b5744352fef07c4a6f9492946a6bf0a9a4a4c9a
Author: Ralph Boehme <slow at 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 <metze at samba.org>
    
    Signed-off-by: Ralph Boehme <slow at samba.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    (cherry picked from commit 89cc31f5cf9181f04f3ca1a5f7000ee15a74e86e)

commit fe9897b71356cc788aa8a41e0cc9e478615312a2
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    (cherry picked from commit 76fdcf5c15bd904c3686f0c2dd93d27486c61ca4)

commit 5a257a02951717089b7fa76bcabeb1bfaab7e22b
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 6ff9388172909ce249fd6254703eee707d821731)

commit 1b31b8e50bdfe566f074d9f61ee60c3c90b60ffb
Author: Thomas Nagy <tnagy2pow10 at 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 <mat at matws.net>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at 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 <jelmer at 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 <jelmer at debian.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at 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 <jelmer at 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 <jelmer at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    Change-Id: I35f3204bdf5d00b3280d703427ded2fa2163a6f7
    
    (similar to commit 0c2408531709eb720a2e96f72afbc2ecbfe6b06d)
    This only backports the buildtools/wafsamba/ changes

commit 488def5030d9a14473fe4a7c701c908bb426a568
Author: Jelmer Vernooij <jelmer at 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 <jelmer at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    Change-Id: I43b394a6225b4c2049d979fda75548c82d781f67
    (cherry picked from commit bd6faaf56a6237874cc84ddb8be0f09a9b742a54)

commit 99b421326d7dbb56cdf0674ff1620fcf16be85b3
Author: Jeremy Allison <jra at 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 <youzhong at 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 <jra at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at 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 <metze at 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 <metze at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Günther Deschner <gd at samba.org>
    
    Autobuild-User(master): Stefan Metzmacher <metze at 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 <metze at 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 <metze at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Günther Deschner <gd at samba.org>
    (cherry picked from commit c7af8ae9d2aa19db2533e69b8a4d7c1b6f8e2d9f)

commit cd82192b2bf8a838412d2cc5785d95353823b41d
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Günther Deschner <gd at samba.org>
    (cherry picked from commit d1b515535da46591d3a646a848c7427b6ff951a7)

commit 62487b6719d944bdac4690008bce7bb28be42259
Author: Petr Viktorin <pviktori at 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 <pviktori at redhat.com>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    (cherry picked from commit 02980268e8641a1558c6f475d4669ce4d663504d)

commit 84008feb4a4cd419db0e0f5ad02cf86a489822f1
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri Dec 19 15:25:03 2014 +1300

    ldb: bump to version 1.1.19
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Pair-programmed-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 02f6ab85a0dcec59c12384a8738eecf7d322071f)

commit 3a97ceaa5ca4ac6ffec8760cca92b57ff4af70b5
Author: Samuel Cabrero <samuelcabrero at 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 <samuelcabrero at kernevil.me>
    Singed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at 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'] = []
+
+ at 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'] = []
+
+ at 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...)
+#
+ at 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
+
+ at feature('cc', 'cxx')
+ at 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)
+
+ at feature('cprogram', 'cshlib', 'cstaticlib')
+ at after('apply_lib_vars')
+ at 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)
+
+ at feature('cc')
+ at 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


More information about the samba-cvs mailing list