waf: Add possibility to build with system libwbclient/libsmbclient

Andrew Bartlett abartlet at samba.org
Wed Apr 18 02:08:13 MDT 2012


On Tue, 2012-04-17 at 17:49 +0200, Andreas Schneider wrote:
> The branch, master has been updated
>        via  0a4ab49 waf: Use Logs.info() instead of print.
>        via  2c49782 waf: Add possibility to build with system libwbclient.
>        via  e3ffb31 s3-waf: Add possibility to build with system libsmbclient.
>        via  c09c288 s3-waf: Fix client/smbclient dependencies.
>       from  1334ed7 s3:libsmb/cliconnect: make use of ntlmssp_is_anonymous()
> 
> http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
> 
> 
> - Log -----------------------------------------------------------------
> commit 0a4ab49c3e3f6b121a5b8b9ae85976c3077cd361
> Author: Andreas Schneider <asn at samba.org>
> Date:   Tue Apr 17 14:11:45 2012 +0200
> 
>     waf: Use Logs.info() instead of print.
>     
>     Autobuild-User: Andreas Schneider <asn at cryptomilk.org>
>     Autobuild-Date: Tue Apr 17 17:48:23 CEST 2012 on sn-devel-104
> 
> commit 2c49782dc1069eebc9f5a5cd2a055b5912665595
> Author: Andreas Schneider <asn at samba.org>
> Date:   Tue Apr 17 12:34:48 2012 +0200
> 
>     waf: Add possibility to build with system libwbclient.
>
> commit e3ffb31554927a24df35576bd753ee4eb2dc2a3c
> Author: Andreas Schneider <asn at samba.org>
> Date:   Mon Apr 16 17:05:35 2012 +0200
> 
>     s3-waf: Add possibility to build with system libsmbclient.
> 
> commit c09c288f7c239ec0d73091061d417e1562825c64
> Author: Andreas Schneider <asn at samba.org>
> Date:   Mon Apr 16 17:07:05 2012 +0200
> 
>     s3-waf: Fix client/smbclient dependencies.

Andreas,

I have a number of concerns about these build changes, and am sorry our
timezones didn't allow a full discussion last night.  I think there are
some challenges with what you are trying to do, and while I don't want
to get in your way, if you could allow me a little time to review the
changes, it might help us find the best way to resolve all our needs,
and a chance to discuss issues you may not have considered.  

Is there any chance you could give me that chance?  My work pattern
gives me great flexibility for review, and in most cases it would be
just seeing them by e-mail over the course of my working day would work.
It shouldn't put you too far behind, and give me a good chance to
provide feedback.

On these specific changes:

> -----------------------------------------------------------------------
> 
> Summary of changes:
>  nsswitch/libwbclient/wscript       |   28 ++++++++++++++++++++
>  nsswitch/libwbclient/wscript_build |    9 ------
>  source3/libsmb/wscript             |   40 +++++++++++++++++++++++++++++
>  source3/wscript_build              |   49 ++++++------------------------------
>  wscript                            |    2 +
>  wscript_build_embedded_heimdal     |    4 ++-
>  wscript_build_system_heimdal       |    4 ++-
>  wscript_build_system_mitkrb5       |    4 ++-
>  8 files changed, 87 insertions(+), 53 deletions(-)
>  create mode 100644 nsswitch/libwbclient/wscript
>  delete mode 100644 nsswitch/libwbclient/wscript_build
>  create mode 100644 source3/libsmb/wscript
> 
> 
> Changeset truncated at 500 lines:
> 
> diff --git a/nsswitch/libwbclient/wscript b/nsswitch/libwbclient/wscript
> new file mode 100644
> index 0000000..8390af1
> --- /dev/null
> +++ b/nsswitch/libwbclient/wscript
> @@ -0,0 +1,28 @@
> +#!/usr/bin/env python
> +
> +import Options, Logs
> +
> +def configure(conf):
> +    if conf.CHECK_BUNDLED_SYSTEM_PKG('wbclient', minversion='0'):
> +        conf.define('USING_SYSTEM_LIBWBCLIENT', 1)
> +
> +def build(bld):
> +    if bld.CONFIG_SET('USING_SYSTEM_LIBWBCLIENT'):
> +        Logs.info("\tSelected system libwbclient build")
> +        return
> +
> +    Logs.info("\tSelected embedded libwbclient build")
> +
> +    bld.SAMBA_LIBRARY('wbclient',
> +                      source='''
> +                             wbc_guid.c
> +                             wbc_idmap.c
> +                             wbclient.c
> +                             wbc_pam.c
> +                             wbc_pwd.c
> +                             wbc_sid.c
> +                             wbc_util.c''',
> +                      deps='winbind-client',
> +                      pc_files='wbclient.pc',
> +                      public_headers='wbclient.h',
> +                      vnum='0')

The libwbclient build is a bit interesting it seems, as we have not had
a proper version before.  However, Samba4-s3fs strictly depends on the
version 0.8 in master (for IDMAP_BOTH support, I may need to bump the
version to reflect my changes).  That is, it won't work with just any
'version 0' libwbclient. 

For my part, I'll update the version number in the libwbclient header,
but the goal Simo shared with me of using the libwbclient from 3.6
simply won't work. 

On libsmbclient, I wonder if we can find a less intrusive solution to
your concerns.  I understand that you want to be able to build packages
against master's libsmbclient, but then have the user install the 3.6
libsmbclient, and not have the linking fail due to the upgrade to
version symbols.  Is that the issue, or have I misunderstood it?  It
seems a fairly niche use case, but perhaps I don't fully understand the
combinations you propose to support. 

(I realise how this could have been a bigger issue before the dependency
was trimmed down to just smbget and our torture tools)

If the symbol versions are such a great issue, would it not be simpler
to just turn symbol versions back off?  I only added them recently, they
can be (optionally) disabled if they cause that much trouble.  For my
part, I'm concerned about how many additional options we both want to
support and test in the long term, where the use case is so far only
defined as transitional packaging need for Red Hat.  

I realise that Red Hat has unique packaging concerns that have not come
up for the other vendors already packaging Samba4, and that you have are
trying to address these in a limited timeframe.  Just as with the MIT
krb5 issue, I am more than willing to work constructively with you on
these.  The best way I can do that is if I get a chance to discuss the
changes you want, so we can find the best outcome all-round.

Thanks,

Andrew Bartlett

-- 
Andrew Bartlett                                http://samba.org/~abartlet/
Authentication Developer, Samba Team           http://samba.org



More information about the samba-technical mailing list