[SCM] Samba Shared Repository - branch master updated

Matthieu Patou mat at samba.org
Sat Oct 30 08:27:01 MDT 2010


The branch, master has been updated
       via  dc0000e provision: when deriving netbiosname from hostname force the netbiosname to be compliant
       via  edebb76 build: strip -single_module when doing bundle on mac OS X
       via  33b276c build: set shared libraries flags correctly on mac os X
      from  23b5880 talloc.3: Remove documentation for deprecated talloc_append_string, consistent with other deprecated functionality.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit dc0000e1a8f5233608d5bf59730200af3e041ce5
Author: Matthieu Patou <mat at matws.net>
Date:   Thu Oct 28 13:09:51 2010 +0400

    provision: when deriving netbiosname from hostname force the netbiosname to be compliant
    
    It means no space/_/-/@.... and less than 16 chars.
    
    Autobuild-User: Matthieu Patou <mat at samba.org>
    Autobuild-Date: Sat Oct 30 14:26:22 UTC 2010 on sn-devel-104

commit edebb76a616c40565383363bc240c0df50a850f3
Author: Matthieu Patou <mat at matws.net>
Date:   Sat Oct 30 16:51:20 2010 +0400

    build: strip -single_module when doing bundle on mac OS X

commit 33b276c2f16c4ec70cf392e850558cfd6703d7e6
Author: Matthieu Patou <mat at matws.net>
Date:   Sat Oct 30 16:50:33 2010 +0400

    build: set shared libraries flags correctly on mac os X

-----------------------------------------------------------------------

Summary of changes:
 buildtools/wafsamba/samba_conftests.py      |   21 +++++++++++++++++++++
 buildtools/wafsamba/wafsamba.py             |   12 ++++++++++++
 buildtools/wafsamba/wscript                 |    2 --
 source4/scripting/python/samba/provision.py |   16 +++++++++++++---
 source4/wscript                             |    5 +++++
 5 files changed, 51 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py
index 8a57d20..49cd4ff 100644
--- a/buildtools/wafsamba/samba_conftests.py
+++ b/buildtools/wafsamba/samba_conftests.py
@@ -93,6 +93,27 @@ def find_config_dir(conf):
         conf.fatal('cannot use the configuration test folder %r' % dir)
     return dir
 
+ at conf
+def CHECK_SHLIB_W_PYTHON(conf, msg):
+    '''check if we need -undefined dynamic_lookup'''
+
+    dir = find_config_dir(conf)
+
+    env = conf.env
+
+    snip = '''
+#include <Python.h>
+#include <crt_externs.h>
+#define environ (*_NSGetEnviron())
+
+static PyObject *ldb_module = NULL;
+int foo(int v) {
+    extern char **environ;
+    environ[0] = 1;
+    ldb_module = PyImport_ImportModule("ldb");
+    return v * 2;
+}'''
+    return conf.check(features='cc cshlib',uselib='PYEMBED',fragment=snip,msg=msg)
 
 # this one is quite complex, and should probably be broken up
 # into several parts. I'd quite like to create a set of CHECK_COMPOUND()
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index a9dfc40..35b39d3 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -972,3 +972,15 @@ def samba_display(self):
 
 Task.TaskBase.classes['Task'].old_display = Task.TaskBase.classes['Task'].display
 Task.TaskBase.classes['Task'].display = samba_display
+
+
+ at after('apply_link')
+ at feature('cshlib')
+def apply_bundle_remove_dynamiclib_patch(self):
+    if self.env['MACBUNDLE'] or getattr(self,'mac_bundle',False):
+        if not getattr(self,'vnum',None):
+            try:
+                self.env['LINKFLAGS'].remove('-dynamiclib')
+                self.env['LINKFLAGS'].remove('-single_module')
+            except ValueError:
+                pass
diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
index 49f1cf4..90aeb45 100644
--- a/buildtools/wafsamba/wscript
+++ b/buildtools/wafsamba/wscript
@@ -275,8 +275,6 @@ def configure(conf):
     else:
         conf.ADD_CFLAGS('-fPIC', testflags=True)
 
-    if sys.platform == 'darwin':
-        conf.ADD_LDFLAGS('-fno-common', testflags=True)
     conf.CHECK_INLINE()
 
     # check for pkgconfig
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index 5205ba5..49ad5d7 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -443,6 +443,11 @@ def guess_names(lp=None, hostname=None, domain=None, dnsdomain=None,
     netbiosname = lp.get("netbios name")
     if netbiosname is None:
         netbiosname = hostname
+        # remove forbidden chars
+        for char in  " !#$%&'()-.@^_{}~":
+            netbiosname = "".join(netbiosname.split(char))
+        #force the length to be <16
+        netbiosname = netbiosname[0:15]
     assert netbiosname is not None
     netbiosname = netbiosname.upper()
     if not valid_netbios_name(netbiosname):
@@ -534,7 +539,14 @@ def make_smbconf(smbconf, setup_path, hostname, domain, realm, serverrole,
     assert smbconf is not None
     if hostname is None:
         hostname = socket.gethostname().split(".")[0]
-    netbiosname = hostname.upper()
+        netbiosname = hostname.upper()
+        # remove forbidden chars
+        for char in  " !#$%&'()-.@^_{}~":
+            netbiosname = "".join(netbiosname.split(char))
+        #force the length to be <16
+        netbiosname = netbiosname[0:15]
+    else:
+        netbiosname = hostname.upper()
 
     if serverrole is None:
         serverrole = "standalone"
@@ -1436,12 +1448,10 @@ def provision(setup_dir, logger, session_info,
 
     lp = samba.param.LoadParm()
     lp.load(smbconf)
-
     names = guess_names(lp=lp, hostname=hostname, domain=domain,
                         dnsdomain=realm, serverrole=serverrole,
                         domaindn=domaindn, configdn=configdn, schemadn=schemadn,
                         serverdn=serverdn, sitename=sitename)
-
     paths = provision_paths_from_lp(lp, names.dnsdomain)
 
     paths.bind_gid = bind_gid
diff --git a/source4/wscript b/source4/wscript
index 45d147f..333079d 100644
--- a/source4/wscript
+++ b/source4/wscript
@@ -86,6 +86,11 @@ def configure(conf):
     conf.check_python_version((2,4,2))
     conf.check_python_headers(mandatory=True)
 
+    if not conf.env['HAVE_ENVIRON_DECL']:
+        if not conf.CHECK_SHLIB_W_PYTHON("Checking if -single_module is not needed"):
+            conf.env.append_value('shlib_LINKFLAGS', ['-single_module'])
+        if not conf.CHECK_SHLIB_W_PYTHON("Checking if -undefined dynamic_lookup is not need"):
+            conf.env.append_value('shlib_LINKFLAGS', ['-undefined', 'dynamic_lookup'])
     if int(conf.env['PYTHON_VERSION'][0]) >= 3:
         raise Utils.WafError('Python version 3.x is not supported by Samba yet')
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list