[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Sun Mar 15 22:36:02 MDT 2015


The branch, master has been updated
       via  65379ef param: Use IDL-based constants for NBT and NBT dgram ports
       via  c253f95 smb.conf.5: Mark "dgram port" and "nbt port" as deprecated
       via  67c041a samba-tool drs: Ensure we do not replicate all secrets to an RODC, even with --local
       via  023055e torture3: Rename LOCAL-WBCLIENT to WBCLIENT-MULTI-PING
       via  dbc4320 selftest: Run LOCAL-WBCLIENT against a test environment, not none
       via  2881175 dsdb-repl: Always set DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING when we are an RODC
       via  b5be45c s4-process_model: Remove prefork and onefork
       via  98d2d8d selftest: Fix comments in provision_promoted_dc
       via  91629ae pygensec: Add bindings for gensec_set_target_service and gensec_set_target_hostname
       via  3c0e3af Transition to waf 1.8: wrapped conf.check_cfg
       via  5771276 Transition to waf 1.8: replaced on_results by update_outputs
       via  2ab6c10 Update the copy of waf to current 1.5
       via  782e8d6 lib/param: Add hook that allows modification of default settings.
       via  a549b45 Require at least Python 2.6.
       via  44113a4 selftest: use server_maxtime = 9000 by default
       via  9198246 s4.2/fsmo.py: fixed fsmo transfer exception
       via  09b3e42 s4:auth/gensec_gssapi: let gensec_gssapi_update() return NT_STATUS_LOGON_FAILURE for unknown errors
      from  dd43b70 librpc: use the correct "MSServerClusterMgmtAPI" auth service for clusapi.

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


- Log -----------------------------------------------------------------
commit 65379ef3a44972698fd64905edfbb8865b338df8
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Sun Mar 1 20:04:00 2015 +1300

    param: Use IDL-based constants for NBT and NBT dgram ports
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Mon Mar 16 05:35:56 CET 2015 on sn-devel-104

commit c253f956ef0b40a8d1d877acfd5da9d27ec0d0b4
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Sun Mar 1 20:00:05 2015 +1300

    smb.conf.5: Mark "dgram port" and "nbt port" as deprecated
    
    These are not honored in the source3 codebase, so keeping them is confusing.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11126

commit 67c041ab7693106b44a098d82d7422ea5aa48445
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri Feb 20 17:54:32 2015 +1300

    samba-tool drs: Ensure we do not replicate all secrets to an RODC, even with --local
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>

commit 023055ec80ef0bb82e68a7e1677dac2eff061cf2
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Feb 23 11:52:58 2015 +1300

    torture3: Rename LOCAL-WBCLIENT to WBCLIENT-MULTI-PING
    
    This is not a local test, it should not be named LOCAL-*
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>

commit dbc43200968a4a54fc1b820bd74737beb63a2343
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Feb 23 11:49:29 2015 +1300

    selftest: Run LOCAL-WBCLIENT against a test environment, not none
    
    The issue with this test was that it ran against whatever was
    listening (or not) at the build prefix, not what was running under
    make test
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>

commit 288117507f6ba0faa25bc83df532cdd254738e00
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri Feb 20 17:55:49 2015 +1300

    dsdb-repl: Always set DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING when we are an RODC
    
    Unless we are using DRSUAPI_EXOP_REPL_SECRET, always remove
    DRSUAPI_DRS_WRIT_REP and always set
    DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING
    
    Otherwise, we will not work as an RODC, because replication will fail
    with access denied errors.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>

commit b5be45c453bd51373bade26c29828b500ba586ec
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Feb 19 14:44:00 2015 +1300

    s4-process_model: Remove prefork and onefork
    
    While it is possible to run Samba in these modes, it isn't tested and
    isn't required.
    
    Each of these modes requires that SIGCHLD be set to SIGIGN, and that
    breaks samba_runcmd_*().
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>

commit 98d2d8d6cd53a5cff6b9ec17ddc3ee9cb8a75b3e
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Feb 17 15:47:47 2015 +1300

    selftest: Fix comments in provision_promoted_dc
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>

commit 91629aeb48b1a6b748b3d391a39deb156ff2b25b
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Mar 2 13:58:21 2015 +1300

    pygensec: Add bindings for gensec_set_target_service and gensec_set_target_hostname
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jelmer Vernooij <jelmer at samba.org>

commit 3c0e3af39541f15eef0f9017cb1622706e73e46a
Author: Thomas Nagy <tnagy2pow10 at gmail.com>
Date:   Sat Mar 7 15:31:19 2015 +0100

    Transition to waf 1.8: wrapped conf.check_cfg
    
    Reviewed-By: Jelmer Vernooij <jelmer at samba.org>
    
    (forward ported to current master by abartlet)
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 5771276be91ec3aad6a7d8cf396ee4721a171feb
Author: Thomas Nagy <tnagy2pow10 at gmail.com>
Date:   Sat Mar 7 15:31:18 2015 +0100

    Transition to waf 1.8: replaced on_results by update_outputs
    
    Reviewed-By: Jelmer Vernooij <jelmer at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 2ab6c10f843c2bd703528bf5b753d8a74e97cf3a
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Mar 7 15:31:17 2015 +0100

    Update the copy of waf to current 1.5
    
    After making the update, this commit reverts the upstream addition of
    LDVERSION support in Python.py, which is necessary for Python 3
    support in waf. This change conflicts with the last remaining
    Samba-specific change in waf to help with cross-compilation.
    
    Change-Id: Iedfdc0199e9d10dfbd910c4eab50c23f984b6e2d
    Signed-Off-By: Jelmer Vernooij <jelmer at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 782e8d6aabd6535448992f1ee69f25c71e8f2b6c
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Mar 16 12:30:27 2015 +1300

    lib/param: Add hook that allows modification of default settings.
    
    This is useful for reducing the amount of configuration necessary for
    OpenChange.
    
    The hook is ideally registered from a plugin initialization function,
    so that it automatically gets used whenever the plugin is installed.
    
    This makes it possible for plugins to e.g. extend the default value for
    the list of enabled dcerpc endpoint services.
    
    Like all our interfaces, callers are expected to use this API
    responsibly. For example, OpenChange should only enable its DCE/RPC
    interface if it has been provisioned.
    
    Change-Id: Ic8bacdd8b4c92a2a4b97cfa1a50dc41365b78071
    Signed-Off-By: Jelmer Vernooij <jelmer at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit a549b45ed7747e8817ff07e8e755ef04edb35574
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Mar 8 15:54:07 2015 +0100

    Require at least Python 2.6.
    
    Per discussion on the list earlier this year.
    
    Change-Id: I085c6e8253b2b8183749c2b0962714c350b2d440
    Signed-off-by: Jelmer Vernooij <jelmer at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 44113a45dcf139f7ac95f217dcc9aab45a203975
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sun Mar 15 23:06:47 2015 +0100

    selftest: use server_maxtime = 9000 by default
    
    With something like this:
    
    samba.stdout:
    [1730(16549)/1735 at 2h9m58s] samba4.blackbox.dbcheck(dc)
    ERROR: Testsuite[samba4.blackbox.dbcheck(dc)]
    REASON: unable to set up environment dc:local - exiting
    
    samba.stderr:
    samba: maximum runtime exceeded - terminating at 1426447450, current ts:
    1426447450
    samba child process 653 exited with value 0
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 9198246f91c02e33ed7a3580588557d0fb9f8811
Author: Steve Howells <steve.howells at moscowfirst.com>
Date:   Sat Jan 31 16:09:17 2015 +0000

    s4.2/fsmo.py: fixed fsmo transfer exception
    
    In transfer_role() there is an duplicate call to samdb.modify() inside the if statement
    where the type of role is being determined (specifically for the naming fsmo). This
    call is unnecessary as after the if statement their is a correct call, with a try/catch
    block, used by all fsmo transfers that will handle errors - such as the DC with the
    fsmo role being offline.
    
    The call to samdb.modify() inside the if statement for naming fsmo has been removed.
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=10924
    
    Signed-off-by: Steve Howells <steve.howells at moscowfirst.com>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Marc Muehlfeld <mmuehlfeld at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 09b3e42e70b35bfa1985e70780a67085644b9914
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Mar 13 14:39:10 2015 +0100

    s4:auth/gensec_gssapi: let gensec_gssapi_update() return NT_STATUS_LOGON_FAILURE for unknown errors
    
    The 'nt_status' variable is set to NT_STATUS_OK before.
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11164
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

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

Summary of changes:
 buildtools/wafadmin/3rdparty/build_file_tracker.py |  54 ++++
 buildtools/wafadmin/3rdparty/prefork.py            | 276 +++++++++++++++++++++
 buildtools/wafadmin/Node.py                        |   2 +-
 buildtools/wafadmin/TaskGen.py                     |   2 +-
 buildtools/wafadmin/Tools/tex.py                   |   2 +-
 buildtools/wafadmin/Utils.py                       |  12 +-
 buildtools/wafsamba/samba_autoconf.py              |   4 +
 buildtools/wafsamba/samba_autoproto.py             |   2 +-
 buildtools/wafsamba/samba_pidl.py                  |   4 +-
 buildtools/wafsamba/wafsamba.py                    |   2 +-
 buildtools/wafsamba/wscript                        |   2 +-
 docs-xml/smbdotconf/protocol/dgramport.xml         |   3 +-
 docs-xml/smbdotconf/protocol/nbtport.xml           |   2 +
 lib/param/loadparm.c                               |  38 ++-
 lib/param/param.h                                  |  15 ++
 lib/param/param_table.c                            |   6 +-
 python/samba/netcmd/drs.py                         |   5 +-
 python/samba/netcmd/fsmo.py                        |   1 -
 selftest/selftest.pl                               |   2 +-
 selftest/target/Samba4.pm                          |   4 +-
 source3/param/loadparm.c                           |   5 +-
 source3/selftest/tests.py                          |   4 +-
 source3/torture/torture.c                          |   4 +-
 source3/wscript                                    |   6 +-
 source3/wscript_configure_system_ncurses           |   2 +-
 source4/auth/gensec/gensec_gssapi.c                |   4 +-
 source4/auth/gensec/pygensec.c                     |  40 +++
 source4/dsdb/repl/drepl_out_helpers.c              |   3 +
 source4/heimdal_build/wscript_build                |  14 +-
 source4/lib/tls/wscript                            |   4 +-
 source4/smbd/process_onefork.c                     | 149 -----------
 source4/smbd/process_prefork.c                     | 207 ----------------
 source4/smbd/wscript_build                         |  17 --
 wscript                                            |   4 +-
 wscript_configure_system_mitkrb5                   |   6 +-
 35 files changed, 484 insertions(+), 423 deletions(-)
 create mode 100644 buildtools/wafadmin/3rdparty/build_file_tracker.py
 create mode 100755 buildtools/wafadmin/3rdparty/prefork.py
 delete mode 100644 source4/smbd/process_onefork.c
 delete mode 100644 source4/smbd/process_prefork.c


Changeset truncated at 500 lines:

diff --git a/buildtools/wafadmin/3rdparty/build_file_tracker.py b/buildtools/wafadmin/3rdparty/build_file_tracker.py
new file mode 100644
index 0000000..9c48928
--- /dev/null
+++ b/buildtools/wafadmin/3rdparty/build_file_tracker.py
@@ -0,0 +1,54 @@
+#! /usr/bin/env python
+# encoding: utf-8
+# Thomas Nagy, 2015
+
+"""
+Force tasks to use file timestamps to force partial rebuilds when touch-ing build files
+
+touch out/libfoo.a
+... rebuild what depends on libfoo.a
+
+to use::
+    def options(opt):
+        opt.tool_options('build_file_tracker')
+"""
+
+import os
+import Task, Utils
+
+def signature(self):
+	try: return self.cache_sig[0]
+	except AttributeError: pass
+
+	self.m = Utils.md5()
+
+	# explicit deps
+	exp_sig = self.sig_explicit_deps()
+
+	# env vars
+	var_sig = self.sig_vars()
+
+	# implicit deps
+	imp_sig = Task.SIG_NIL
+	if self.scan:
+		try:
+			imp_sig = self.sig_implicit_deps()
+		except ValueError:
+			return self.signature()
+
+	# timestamp dependency on build files only (source files are hashed)
+	buf = []
+	for k in self.inputs + getattr(self, 'dep_nodes', []) + self.generator.bld.node_deps.get(self.unique_id(), []):
+		if k.id & 3 == 3:
+			t = os.stat(k.abspath(self.env)).st_mtime
+			buf.append(t)
+	self.m.update(str(buf))
+
+	# we now have the signature (first element) and the details (for debugging)
+	ret = self.m.digest()
+	self.cache_sig = (ret, exp_sig, imp_sig, var_sig)
+	return ret
+
+Task.Task.signature_bak = Task.Task.signature # unused, kept just in case
+Task.Task.signature = signature # overridden
+
diff --git a/buildtools/wafadmin/3rdparty/prefork.py b/buildtools/wafadmin/3rdparty/prefork.py
new file mode 100755
index 0000000..1c760c2
--- /dev/null
+++ b/buildtools/wafadmin/3rdparty/prefork.py
@@ -0,0 +1,276 @@
+#! /usr/bin/env python
+# encoding: utf-8
+# Thomas Nagy, 2015 (ita)
+#
+# prefer the waf 1.8 version
+
+"""
+The full samba build can be faster by ~10%, but there are a few limitations:
+* only one build process should be run at a time as the servers would use the same ports
+* only one build command is going to be called ("waf build configure build" would not work)
+
+def build(bld):
+
+    mod = Utils.load_tool('prefork')
+    mod.build(bld)
+    ...
+    (build declarations after)
+"""
+
+import os, re, socket, threading, sys, subprocess, time, atexit, traceback
+try:
+	import SocketServer
+except ImportError:
+	import socketserver as SocketServer
+try:
+	from queue import Queue
+except ImportError:
+	from Queue import Queue
+try:
+	import cPickle
+except ImportError:
+	import pickle as cPickle
+
+DEFAULT_PORT = 51200
+
+HEADER_SIZE = 128
+
+REQ = 'REQ'
+RES = 'RES'
+BYE = 'BYE'
+
+def make_header(params):
+	header = ','.join(params)
+	if sys.hexversion > 0x3000000:
+		header = header.encode('iso8859-1')
+	header = header.ljust(HEADER_SIZE)
+	assert(len(header) == HEADER_SIZE)
+	return header
+
+
+re_valid_query = re.compile('^[a-zA-Z0-9_, ]+$')
+class req(SocketServer.StreamRequestHandler):
+	def handle(self):
+		while 1:
+			try:
+				self.process_command()
+			except Exception as e:
+				print(e)
+				break
+
+	def process_command(self):
+		query = self.rfile.read(HEADER_SIZE)
+		if not query:
+			return
+		#print(len(query))
+		assert(len(query) == HEADER_SIZE)
+		if sys.hexversion > 0x3000000:
+			query = query.decode('iso8859-1')
+		#print "%r" % query
+		if not re_valid_query.match(query):
+			raise ValueError('Invalid query %r' % query)
+
+		query = query.strip().split(',')
+
+		if query[0] == REQ:
+			self.run_command(query[1:])
+		elif query[0] == BYE:
+			raise ValueError('Exit')
+		else:
+			raise ValueError('Invalid query %r' % query)
+
+	def run_command(self, query):
+
+		size = int(query[0])
+		data = self.rfile.read(size)
+		assert(len(data) == size)
+		kw = cPickle.loads(data)
+
+		# run command
+		ret = out = err = exc = None
+		cmd = kw['cmd']
+		del kw['cmd']
+		#print(cmd)
+
+		try:
+			if kw['stdout'] or kw['stderr']:
+				p = subprocess.Popen(cmd, **kw)
+				(out, err) = p.communicate()
+				ret = p.returncode
+			else:
+				ret = subprocess.Popen(cmd, **kw).wait()
+		except Exception as e:
+			ret = -1
+			exc = str(e) + traceback.format_exc()
+
+		# write the results
+		if out or err or exc:
+			data = (out, err, exc)
+			data = cPickle.dumps(data, -1)
+		else:
+			data = ''
+
+		params = [RES, str(ret), str(len(data))]
+
+		self.wfile.write(make_header(params))
+
+		if data:
+			self.wfile.write(data)
+
+def create_server(conn, cls):
+	#SocketServer.ThreadingTCPServer.allow_reuse_address = True
+	#server = SocketServer.ThreadingTCPServer(conn, req)
+
+	SocketServer.TCPServer.allow_reuse_address = True
+	server = SocketServer.TCPServer(conn, req)
+	#server.timeout = 6000 # seconds
+	server.serve_forever(poll_interval=0.001)
+
+if __name__ == '__main__':
+	if len(sys.argv) > 1:
+		port = int(sys.argv[1])
+	else:
+		port = DEFAULT_PORT
+	#conn = (socket.gethostname(), port)
+	conn = ("127.0.0.1", port)
+	#print("listening - %r %r\n" % conn)
+	create_server(conn, req)
+else:
+
+	import Runner, Utils
+
+	def init_task_pool(self):
+		# lazy creation, and set a common pool for all task consumers
+		pool = self.pool = []
+		for i in range(self.numjobs):
+			consumer = Runner.get_pool()
+			pool.append(consumer)
+			consumer.idx = i
+		self.ready = Queue(0)
+		def setq(consumer):
+			consumer.ready = self.ready
+			try:
+				threading.current_thread().idx = consumer.idx
+			except Exception as e:
+				print(e)
+		for x in pool:
+			x.ready.put(setq)
+		return pool
+	Runner.Parallel.init_task_pool = init_task_pool
+
+	PORT = 51200
+
+	def make_server(idx):
+		port = PORT + idx
+		cmd = [sys.executable, os.path.abspath(__file__), str(port)]
+		proc = subprocess.Popen(cmd)
+		proc.port = port
+		return proc
+
+	def make_conn(srv):
+		#port = PORT + idx
+		port = srv.port
+		conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+		conn.connect(('127.0.0.1', port))
+		return conn
+
+	SERVERS = []
+	CONNS = []
+	def close_all():
+		while CONNS:
+			conn = CONNS.pop()
+			try:
+				conn.close()
+			except:
+				pass
+		while SERVERS:
+			srv = SERVERS.pop()
+			try:
+				srv.kill()
+			except:
+				pass
+	atexit.register(close_all)
+
+	def put_data(conn, data):
+		conn.send(data)
+
+	def read_data(conn, siz):
+		ret = conn.recv(siz)
+		if not ret:
+			print("closed connection?")
+
+		assert(len(ret) == siz)
+		return ret
+
+	def exec_command(cmd, **kw):
+		if 'log' in kw:
+			log = kw['log']
+			kw['stdout'] = kw['stderr'] = subprocess.PIPE
+			del(kw['log'])
+		else:
+			kw['stdout'] = kw['stderr'] = None
+		kw['shell'] = isinstance(cmd, str)
+
+		idx = threading.current_thread().idx
+		kw['cmd'] = cmd
+
+		data = cPickle.dumps(kw, -1)
+		params = [REQ, str(len(data))]
+		header = make_header(params)
+
+		conn = CONNS[idx]
+
+		put_data(conn, header)
+		put_data(conn, data)
+
+		data = read_data(conn, HEADER_SIZE)
+		if sys.hexversion > 0x3000000:
+			data = data.decode('iso8859-1')
+
+		lst = data.split(',')
+		ret = int(lst[1])
+		dlen = int(lst[2])
+
+		out = err = None
+		if dlen:
+			data = read_data(conn, dlen)
+			(out, err, exc) = cPickle.loads(data)
+			if exc:
+				raise Utils.WafError('Execution failure: %s' % exc)
+
+		if out:
+			log.write(out)
+		if err:
+			log.write(err)
+
+		return ret
+
+	def __init__(self):
+		threading.Thread.__init__(self)
+
+		# identifier of the current thread
+		self.idx = len(SERVERS)
+
+		# create a server and wait for the connection
+		srv = make_server(self.idx)
+		SERVERS.append(srv)
+
+		conn = None
+		for x in range(30):
+			try:
+				conn = make_conn(srv)
+				break
+			except socket.error:
+				time.sleep(0.01)
+		if not conn:
+			raise ValueError('Could not start the server!')
+		CONNS.append(conn)
+
+		self.setDaemon(1)
+		self.start()
+	Runner.TaskConsumer.__init__ = __init__
+
+	def build(bld):
+		# dangerous, there is no other command hopefully
+		Utils.exec_command = exec_command
+
diff --git a/buildtools/wafadmin/Node.py b/buildtools/wafadmin/Node.py
index 236dd0d..4fa205c 100644
--- a/buildtools/wafadmin/Node.py
+++ b/buildtools/wafadmin/Node.py
@@ -663,7 +663,7 @@ class Node(object):
 	def update_build_dir(self, env=None):
 
 		if not env:
-			for env in bld.all_envs:
+			for env in self.bld.all_envs:
 				self.update_build_dir(env)
 			return
 
diff --git a/buildtools/wafadmin/TaskGen.py b/buildtools/wafadmin/TaskGen.py
index ae1834a..52d0236 100644
--- a/buildtools/wafadmin/TaskGen.py
+++ b/buildtools/wafadmin/TaskGen.py
@@ -567,7 +567,7 @@ def exec_rule(self):
 	if getattr(self, 'cwd', None):
 		tsk.cwd = self.cwd
 
-	if getattr(self, 'on_results', None):
+	if getattr(self, 'on_results', None) or getattr(self, 'update_outputs', None):
 		Task.update_outputs(cls)
 
 	if getattr(self, 'always', None):
diff --git a/buildtools/wafadmin/Tools/tex.py b/buildtools/wafadmin/Tools/tex.py
index 2dd748b..700c54f 100644
--- a/buildtools/wafadmin/Tools/tex.py
+++ b/buildtools/wafadmin/Tools/tex.py
@@ -154,7 +154,7 @@ def tex_build(task, command='LATEX'):
 		task.env.SRCFILE = srcfile
 		ret = fun(task)
 		if ret:
-			error('error when calling %s %s' % (command, latex_compile_cmd))
+			error('error when calling %s %s' % (command, latex_fun))
 			return ret
 
 	return None # ok
diff --git a/buildtools/wafadmin/Utils.py b/buildtools/wafadmin/Utils.py
index 91ded93..cff6719 100644
--- a/buildtools/wafadmin/Utils.py
+++ b/buildtools/wafadmin/Utils.py
@@ -416,15 +416,15 @@ def pprint(col, str, label='', sep='\n'):
 	"print messages in color"
 	sys.stderr.write("%s%s%s %s%s" % (Logs.colors(col), str, Logs.colors.NORMAL, label, sep))
 
-def check_dir(dir):
+def check_dir(path):
 	"""If a folder doesn't exists, create it."""
-	try:
-		os.lstat(dir)
-	except OSError:
+	if not os.path.isdir(path):
 		try:
-			os.makedirs(dir)
+			os.makedirs(path)
 		except OSError, e:
-			raise WafError("Cannot create folder '%s' (original error: %s)" % (dir, e))
+			if not os.path.isdir(path):
+				raise Errors.WafError('Cannot create the folder %r' % path, ex=e)
+
 
 def cmd_output(cmd, **kw):
 
diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py
index 905adc7..4f646fd 100644
--- a/buildtools/wafsamba/samba_autoconf.py
+++ b/buildtools/wafsamba/samba_autoconf.py
@@ -846,3 +846,7 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(conf):
     if not sys.platform.startswith("openbsd") and conf.env.undefined_ignore_ldflags == []:
         if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']):
             conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup']
+
+ at conf
+def CHECK_CFG(self, *k, **kw):
+    return self.check_cfg(*k, **kw)
diff --git a/buildtools/wafsamba/samba_autoproto.py b/buildtools/wafsamba/samba_autoproto.py
index 2d8ea54..bad627a 100644
--- a/buildtools/wafsamba/samba_autoproto.py
+++ b/buildtools/wafsamba/samba_autoproto.py
@@ -13,7 +13,7 @@ def SAMBA_AUTOPROTO(bld, header, source):
         name = name,
         source = source,
         target = header,
-        on_results=True,
+        update_outputs=True,
         ext_out='.c',
         before ='cc',
         rule = '${PERL} "${SCRIPT}/mkproto.pl" --srcdir=.. --builddir=. --public=/dev/null --private="${TGT}" ${SRC}'
diff --git a/buildtools/wafsamba/samba_pidl.py b/buildtools/wafsamba/samba_pidl.py
index 2393c72..110b15e 100644
--- a/buildtools/wafsamba/samba_pidl.py
+++ b/buildtools/wafsamba/samba_pidl.py
@@ -78,7 +78,7 @@ def SAMBA_PIDL(bld, pname, source,
     t = bld(rule='cd .. && %s %s ${PERL} "${PIDL}" --quiet ${OPTIONS} --outputdir ${OUTPUTDIR} -- "${SRC[0].abspath(env)}"' % (cpp, cc),
             ext_out    = '.c',
             before     = 'cc',
-            on_results = True,
+            update_outputs = True,
             shell      = True,
             source     = source,
             target     = out_files,
@@ -135,7 +135,7 @@ def SAMBA_PIDL_TABLES(bld, name, target):
             rule     = '${PERL} ${SRC} --output ${TGT} | sed "s|default/||" > ${TGT}',
             ext_out  = '.c',
             before   = 'cc',
-            on_results = True,
+            update_outputs = True,
             shell    = True,
             source   = '../../librpc/tables.pl',
             target   = target,
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index c054315..c423e60 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -638,7 +638,7 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
         source=bld.EXPAND_VARIABLES(source, vars=vars),
         target=target,
         shell=isinstance(rule, str),
-        on_results=True,
+        update_outputs=True,
         before='cc',
         ext_out='.c',
         samba_type='GENERATOR',
diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
index 8027c00..3180543 100755
--- a/buildtools/wafsamba/wscript
+++ b/buildtools/wafsamba/wscript
@@ -383,7 +383,7 @@ def configure(conf):
     conf.CHECK_INLINE()
 
     # check for pkgconfig
-    conf.check_cfg(atleast_pkgconfig_version='0.0.0')
+    conf.CHECK_CFG(atleast_pkgconfig_version='0.0.0')
 
     conf.DEFINE('_GNU_SOURCE', 1, add_to_cflags=True)
     conf.DEFINE('_XOPEN_SOURCE_EXTENDED', 1, add_to_cflags=True)
diff --git a/docs-xml/smbdotconf/protocol/dgramport.xml b/docs-xml/smbdotconf/protocol/dgramport.xml
index ee10e9c..a90310d 100644
--- a/docs-xml/smbdotconf/protocol/dgramport.xml
+++ b/docs-xml/smbdotconf/protocol/dgramport.xml
@@ -6,6 +6,7 @@
 <description>
 	<para>Specifies which ports the server should listen on for NetBIOS datagram traffic.</para>
 </description>
-
+<para>This parameter is deprecated, as it is not honoured in the
+majority of the code base.</para>
 <value type="default">138</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/protocol/nbtport.xml b/docs-xml/smbdotconf/protocol/nbtport.xml
index 1d99270..f7ec1e7 100644
--- a/docs-xml/smbdotconf/protocol/nbtport.xml
+++ b/docs-xml/smbdotconf/protocol/nbtport.xml
@@ -8,5 +8,7 @@
 		services traffic.</para>
 </description>


-- 
Samba Shared Repository


More information about the samba-cvs mailing list