[SCM] Samba Shared Repository - branch v4-0-stable updated

Karolin Seeger kseeger at samba.org
Mon Dec 8 01:06:41 MST 2014


The branch, v4-0-stable has been updated
       via  21764ef VERSION: Disable git snapshots for the 4.0.23 release.
       via  7771dd9 WHATSNEW: Add release notes for Samba 4.0.23.
       via  fa1312b Revert "buildtools: Rename perl vendorarch configure option."
       via  c0b2e50 Revert "buildtools: Add perl vendorlib configure option."
       via  f5b9478 Revert "wafsamba: If perl can't provide defaults, define them."
       via  350b5a9 Revert "wafsamba: Fail with error message if perl doesn't provide valid dirs."
       via  31259de3 pidl/wscript: remove --with-perl-* options
       via  24cefe9 Revert "autobuild: Set perl vendorlib direcotry."
       via  cba45a0 Revert "script/autobuild: make use of --with-perl-{arch,lib}-install-dir"
       via  8909e3a pidl: remove superfluous "use lib ...".
       via  9a05421 pidl: fix the perl module search path (use lib ...) when installing pidl.
       via  6d80bf2 wafsamba: add perl_fixup parameter to INSTALL_FILES
       via  c32733c s3:build: don't detect perl in source3/wscript again.
       via  c4206a4 pidl/wscript: don't check for perl again.
       via  23d6857 build: do full SAMBA_CHECK_PERL() check in configure
       via  0a7eb79 wafsamba: add samba_perl.py with SAMBA_CHECK_PERL() higher level check.
       via  8e22d02 dynconfig: implement PERL_ARCH_INSTALL_DIR
       via  b93425a dynconfig: implement PERL_LIB_INSTALL_DIR.
       via  f96620b lib/ldb/wscript: pass dep_vars=['LDB_VERSION'] to SAMBA_GENERATOR()
       via  6efcb38 docs-xml/wscript_build: pass dep_vars=bld.dynconfig_varnames() to SAMBA_GENERATOR()
       via  9568232 dynconfig/wscript: add dynconfig_varnames()
       via  8f14452 wafsamba: let SAMBA_BLDOPTIONS() use dep_vars=['defines'] instead of always=True
       via  456fff6 wafsamba: fix dependencies on environment variables for python_fixup
       via  3fa0be6 wafsamba: allow an optional dep_vars list to be passed to SAMBA_GENERATOR()
       via  b0e06ec wafsamba: fix dependency for SAMBA_GENERATOR() when passing vars!=None
       via  569dc70 wafsamba: fix dependency calculation for SAMBA_GENERATOR()
       via  e6c47c7 wafsamba: improve wording in a comment
       via  ddde1a3 wafsamba: remove unused variable from copy_and_fix_python_path
       via  34fd427 docs: Always declare rule to build parameters.all.xml and do it first
       via  ec40d2d docs: define and include entities for the docs
       via  39da7d0 docs: remove the file prefix from included path names
       via  899e891 docs: update XInclude year to conform with current standard
       via  eacacbf pdb_tdb: Fix a TALLOC/SAFE_FREE mixup
       via  5632bd1 spoolss: remove unused fill_job_info3()
       via  d36d541 spoolss: fix jobid in level 3 EnumJobs response
       via  89e112d spoolss: fix jobid in level 2 GetJob and EnumJobs responses
       via  8812feb spoolss: fix jobid in level 1 GetJob and EnumJobs responses
       via  0b1a54b spoolss: fix GetJob jobid lookups
       via  136f4d0 printing: add jobid_to_sysjob helper function
       via  7e486b9 s3:smbd: fix file corruption using "write cache size != 0"
       via  1b0da1d spoolss: fix handling of bad EnumJobs levels
       via  76ff1da s3-nmbd: Fix netbios name truncation.
       via  e158ed9 There are tests all over the SMB1 code to check that srv_send_smb fails, but it never returns false.
       via  2ec015b s3: daemons - ensure nmbd and winbindd are consistent in command line processing by adding POPT_COMMON_DYNCONFIG.
       via  5b9d192 s3: nmbd: Ensure the main nmbd process doesn't create zombies.
       via  7432a08 pthreadpool: Slightly serialize jobs
       via  a163255 s3: lib: Signal handling - ensure smbrun and change password code save and restore existing SIGCHLD handlers.
       via  1dda86f lib: util: Signal handling - change CatchChild() and CatchChildLeaveStatus() to return the previous handler.
       via  6642684 s3: smb2cli: query info return length check was reversed.
       via  c6493fc s3-libads: Add all machine account principals to the keytab.
       via  bbf24d3 registry: Don't leave dangling transactions
       via  f88c106 s3-winbindd: Do not use domain SID from LookupSids for Sids2UnixIDs call
       via  f42f4d0 s3: Move init_lsa_ref_domain_list to lib
       via  372f228 s3-libnet: Make sure we do not overwrite precreated SPNs.
       via  f0b99bc s3-libnet: Add libnet_join_get_machine_spns().
       via  4e2e567 s3-libads: Add function to search for an element in an array.
       via  1d16c07 s3-libads: Add a function to retrieve the SPNs of a computer account.
       via  29f42cb s3-libads: Improve service principle guessing.
       via  cdc4cc3 nsswitch: Skip groups we were not able to map.
       via  42cc79d docs: mention incompatibility between kernel oplocks and streams_xattr
       via  c047ff3 WHATSNEW: Fix typo.
       via  7dbddb7 VERSION: Bump version number up to 4.0.23...
      from  f6fd102 VERSION: Disable git snapshots for the 4.0.22 release.

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-0-stable


- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 VERSION                                        |   2 +-
 WHATSNEW.txt                                   | 100 ++++++++++-
 buildtools/wafadmin/Tools/perl.py              |  51 +-----
 buildtools/wafsamba/samba_patterns.py          |   4 +-
 buildtools/wafsamba/samba_perl.py              |  62 +++++++
 buildtools/wafsamba/wafsamba.py                |  77 ++++++---
 docs-xml/manpages/vfs_streams_xattr.8.xml      |   4 +
 docs-xml/wscript_build                         |  30 +++-
 dynconfig/wscript                              |  55 ++++++-
 lib/ldb/wscript                                |   3 +-
 lib/util/samba_util.h                          |   4 +-
 lib/util/signal.c                              |   8 +-
 libcli/smb/smb2cli_query_info.c                |   2 +-
 nsswitch/winbind_nss_linux.c                   |   5 +
 pidl/pidl                                      |   1 -
 pidl/wscript                                   |   7 +-
 script/autobuild.py                            |   9 +-
 source3/Makefile.in                            |   4 +
 source3/{librpc/crypto/gse.h => include/lsa.h} |  17 +-
 source3/include/printing.h                     |   1 +
 source3/lib/lsa.c                              |  67 ++++++++
 source3/lib/pthreadpool/pthreadpool.c          |   6 +-
 source3/lib/smbrun.c                           |  18 +-
 source3/libads/ads_proto.h                     |   8 +
 source3/libads/kerberos_keytab.c               |  74 ++++++---
 source3/libads/ldap.c                          |  91 ++++++++++
 source3/libads/sasl.c                          | 124 +++++++-------
 source3/libnet/libnet_join.c                   |  59 ++++++-
 source3/nmbd/nmbd.c                            |   6 +-
 source3/nmbd/nmbd_nameregister.c               |  76 ++++++++-
 source3/passdb/pdb_tdb.c                       |   2 +-
 source3/printing/printing.c                    |  70 ++++++--
 source3/registry/reg_api.c                     |   2 +-
 source3/rpc_server/lsa/srv_lsa_nt.c            |  48 +-----
 source3/rpc_server/samr/srv_samr_chgpasswd.c   |   9 +-
 source3/rpc_server/spoolss/srv_spoolss_nt.c    | 219 ++++++++++++++++---------
 source3/rpc_server/wscript_build               |   2 +-
 source3/smbd/oplock.c                          |   3 +
 source3/smbd/process.c                         |   2 +-
 source3/winbindd/wb_sids2xids.c                |  33 +++-
 source3/winbindd/winbindd.c                    |   1 +
 source3/wscript                                |   1 -
 source3/wscript_build                          |   4 +
 wscript                                        |   2 +-
 wscript_build                                  |  13 +-
 45 files changed, 1005 insertions(+), 381 deletions(-)
 create mode 100644 buildtools/wafsamba/samba_perl.py
 copy source3/{librpc/crypto/gse.h => include/lsa.h} (74%)
 create mode 100644 source3/lib/lsa.c


Changeset truncated at 500 lines:

diff --git a/VERSION b/VERSION
index bd69f93..e0e7f36 100644
--- a/VERSION
+++ b/VERSION
@@ -25,7 +25,7 @@
 ########################################################
 SAMBA_VERSION_MAJOR=4
 SAMBA_VERSION_MINOR=0
-SAMBA_VERSION_RELEASE=22
+SAMBA_VERSION_RELEASE=23
 
 ########################################################
 # If a official release has a serious bug              #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 92014060..c74580b 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,4 +1,98 @@
                    ==============================
+                   Release Notes for Samba 4.0.23
+                         December 08, 2014
+                   ==============================
+
+
+This is the latest stable release of Samba 4.0.
+
+
+Changes since 4.0.22:
+---------------------
+
+o   Michael Adam <obnox at samba.org>
+    * BUG 10472: Revert buildtools/wafadmin/Tools/perl.py back to upstream
+      state.
+
+
+o   Jeremy Allison <jra at samba.org>
+    * BUG 10711: s3:daemons: Ensure nmbd and winbindd are consistent in
+      command line processing by adding POPT_COMMON_DYNCONFIG.
+    * BUG 10779: pthreadpool: Slightly serialize jobs.
+    * BUG 10830: s3:nmbd: Ensure the main nmbd process doesn't create zombies.
+    * BUG 10831: SIGCLD Signal handler not correctly reinstalled on old library
+      code use - smbrun etc.
+    * BUG 10848: s3:smb2cli: Query info return length check was reversed.
+    * BUG 10896: s3:nmbd: Fix netbios name truncation.
+
+
+o   Günther Deschner <gd at samba.org>
+    * BUG 9984: s3-libnet: Make sure we do not overwrite precreated SPNs.
+
+
+o   David Disseldorp <ddiss at samba.org>
+    * BUG 10898: spoolss: Fix handling of bad EnumJobs levels.
+    * BUG 10905: spoolss: Fix print job enumeration.
+
+
+o   Björn Jacke <bj at sernet.de>
+    * BUG docs: Mention incompatibility between kernel oplocks and
+      streams_xattr.
+
+
+o   Volker Lendecke <vl at samba.org>
+    * BUG 10860: registry: Don't leave dangling transactions.
+    * BUG 10932: pdb_tdb: Fix a TALLOC/SAFE_FREE mixup.
+
+
+o   Stefan Metzmacher <metze at samba.org>
+    * BUG 10472: Revert buildtools/wafadmin/Tools/perl.py back to upstream
+      state.
+    * BUG 10921: s3:smbd: Fix file corruption using "write cache size != 0".
+
+
+o   Christof Schmitt <cs at samba.org>
+    * BUG 10838: s3-winbindd: Do not use domain SID from LookupSids for
+    * Sids2UnixIDs call.
+
+
+o   Andreas Schneider <asn at samba.org>
+    * BUG 9984: s3-libnet: Add libnet_join_get_machine_spns().
+    * BUG 9985: s3-libads: Add all machine account principals to the keytab.
+    * BUG 10472: wafsamba: If perl can't provide defaults, define them.
+    * BUG 10824: nsswitch: Skip groups we were not able to map.
+    * BUG 10829: s3-libads: Improve service principle guessing.
+
+
+o   Richard Sharpe <realrichardsharpe at gmail.com>
+    * BUG: source3/smbd/process.c::srv_send_smb() returns true on the error
+      path.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 4.0 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+Release notes for older releases follow:
+----------------------------------------
+
+                   ==============================
                    Release Notes for Samba 4.0.22
                          September 15, 2014
                    ==============================
@@ -12,7 +106,7 @@ o  New parameter "winbind request timeout" has been added (bug #3204). Please
    see smb.conf man page for details.
 
 
-Changes since 4.1.21:
+Changes since 4.0.21:
 ---------------------
 
 o   Michael Adam <obnox at samba.org>
@@ -106,8 +200,8 @@ database (https://bugzilla.samba.org/).
 ======================================================================
 
 
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
+
 
                    ==============================
                    Release Notes for Samba 4.0.21
diff --git a/buildtools/wafadmin/Tools/perl.py b/buildtools/wafadmin/Tools/perl.py
index 0f34e79..a6787a8 100644
--- a/buildtools/wafadmin/Tools/perl.py
+++ b/buildtools/wafadmin/Tools/perl.py
@@ -98,53 +98,12 @@ def check_perl_ext_devel(conf):
 	conf.env.EXTUTILS_TYPEMAP  = read_out('print "$Config{privlib}/ExtUtils/typemap"')
 	conf.env.perlext_PATTERN   = '%s.' + read_out('print $Config{dlext}')[0]
 
-	def try_any(keys):
-		for k in keys:
-			conf.start_msg("Checking for perl $Config{%s}:" % k)
-			try:
-				v = read_out('print $Config{%s}' % k)[0]
-				conf.end_msg("'%s'" % (v), 'GREEN')
-				return v
-			except IndexError:
-				conf.end_msg(False, 'YELLOW')
-				pass
-		return None
-
-	perl_arch_install_dir = None
-	if getattr(Options.options, 'perl_arch_install_dir', None):
-		perl_arch_install_dir = Options.options.perl_arch_install_dir
-	if perl_arch_install_dir is None:
-		perl_arch_install_dir = try_any(['vendorarch', 'sitearch', 'archlib'])
-	if perl_arch_install_dir is None:
-		conf.fatal('No perl arch install directory autodetected.' +
-			   'Please define it with --with-perl-arch-install-dir.')
-	conf.start_msg("PERL_ARCH_INSTALL_DIR: ")
-	conf.end_msg("'%s'" % (perl_arch_install_dir), 'GREEN')
-	conf.env.PERL_ARCH_INSTALL_DIR = perl_arch_install_dir
-
-	perl_lib_install_dir = None
-	if getattr(Options.options, 'perl_lib_install_dir', None):
-		perl_lib_install_dir = Options.options.perl_lib_install_dir
-	if perl_lib_install_dir is None:
-		perl_lib_install_dir = try_any(['vendorlib', 'sitelib', 'privlib'])
-	if perl_lib_install_dir is None:
-		conf.fatal('No perl lib install directory autodetected. ' +
-			   'Please define it with --with-perl-lib-install-dir.')
-	conf.start_msg("PERL_LIB_INSTALL_DIR: ")
-	conf.end_msg("'%s'" % (perl_lib_install_dir), 'GREEN')
-	conf.env.PERL_LIB_INSTALL_DIR = perl_lib_install_dir
+	if getattr(Options.options, 'perlarchdir', None):
+		conf.env.ARCHDIR_PERL = Options.options.perlarchdir
+	else:
+		conf.env.ARCHDIR_PERL = read_out('print $Config{sitearch}')[0]
 
 def set_options(opt):
 	opt.add_option("--with-perl-binary", type="string", dest="perlbinary", help = 'Specify alternate perl binary', default=None)
+	opt.add_option("--with-perl-archdir", type="string", dest="perlarchdir", help = 'Specify directory where to install arch specific files', default=None)
 
-	opt.add_option("--with-perl-arch-install-dir",
-		       type="string",
-		       dest="perl_arch_install_dir",
-		       help = ('Specify directory where to install arch specific files'),
-		       default=None)
-
-	opt.add_option("--with-perl-lib-install-dir",
-		       type="string",
-		       dest="perl_lib_install_dir",
-		       help = ('Specify directory where to install vendor specific files'),
-		       default=None)
diff --git a/buildtools/wafsamba/samba_patterns.py b/buildtools/wafsamba/samba_patterns.py
index 615d918..953ef49 100644
--- a/buildtools/wafsamba/samba_patterns.py
+++ b/buildtools/wafsamba/samba_patterns.py
@@ -199,6 +199,6 @@ def SAMBA_BLDOPTIONS(bld, target):
     '''generate the bld_options.c for Samba'''
     t = bld.SAMBA_GENERATOR(target,
                             rule=write_build_options,
-                            target=target,
-                            always=True)
+                            dep_vars=['defines'],
+                            target=target)
 Build.BuildContext.SAMBA_BLDOPTIONS = SAMBA_BLDOPTIONS
diff --git a/buildtools/wafsamba/samba_perl.py b/buildtools/wafsamba/samba_perl.py
new file mode 100644
index 0000000..3909aba
--- /dev/null
+++ b/buildtools/wafsamba/samba_perl.py
@@ -0,0 +1,62 @@
+import Build
+from samba_utils import *
+from Configure import conf
+
+done = {}
+
+ at conf
+def SAMBA_CHECK_PERL(conf, mandatory=True, version=(5,0,0)):
+    #
+    # TODO: use the @runonce mechanism for this.
+    # The problem is that @runonce currently does
+    # not seem to work together with @conf...
+    # So @runonce (and/or) @conf needs fixing.
+    #
+    if "done" in done:
+        return
+    done["done"] = True
+    conf.find_program('perl', var='PERL', mandatory=mandatory)
+    conf.check_tool('perl')
+    path_perl = conf.find_program('perl')
+    conf.env.PERL_SPECIFIED = (conf.env.PERL != path_perl)
+    conf.check_perl_version(version)
+
+    def read_perl_config_var(cmd):
+        return Utils.to_list(Utils.cmd_output([conf.env.PERL, '-MConfig', '-e', cmd]))
+
+    def check_perl_config_var(var):
+        conf.start_msg("Checking for perl $Config{%s}:" % var)
+        try:
+            v = read_perl_config_var('print $Config{%s}' % var)[0]
+            conf.end_msg("'%s'" % (v), 'GREEN')
+            return v
+        except IndexError:
+            conf.end_msg(False, 'YELLOW')
+            pass
+        return None
+
+    vendor_prefix = check_perl_config_var('vendorprefix')
+
+    perl_arch_install_dir = None
+    if vendor_prefix == conf.env.PREFIX:
+        perl_arch_install_dir = check_perl_config_var('vendorarch');
+    if perl_arch_install_dir is None:
+        perl_arch_install_dir = "${LIBDIR}/perl5";
+    conf.start_msg("PERL_ARCH_INSTALL_DIR: ")
+    conf.end_msg("'%s'" % (perl_arch_install_dir), 'GREEN')
+    conf.env.PERL_ARCH_INSTALL_DIR = perl_arch_install_dir
+
+    perl_lib_install_dir = None
+    if vendor_prefix == conf.env.PREFIX:
+        perl_lib_install_dir = check_perl_config_var('vendorlib');
+    if perl_lib_install_dir is None:
+        perl_lib_install_dir = "${DATADIR}/perl5";
+    conf.start_msg("PERL_LIB_INSTALL_DIR: ")
+    conf.end_msg("'%s'" % (perl_lib_install_dir), 'GREEN')
+    conf.env.PERL_LIB_INSTALL_DIR = perl_lib_install_dir
+
+    perl_inc = read_perl_config_var('print "@INC"')
+    perl_inc.remove('.')
+    conf.start_msg("PERL_INC: ")
+    conf.end_msg("%s" % (perl_inc), 'GREEN')
+    conf.env.PERL_INC = perl_inc
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index 47393ad..d26b7b5 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -16,6 +16,7 @@ from samba_patterns import *
 from samba_pidl import *
 from samba_autoproto import *
 from samba_python import *
+from samba_perl import *
 from samba_deps import *
 from samba_bundled import *
 import samba_install
@@ -578,6 +579,7 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
                     public_headers_install=True,
                     header_path=None,
                     vars=None,
+                    dep_vars=[],
                     always=False):
     '''A generic source generator target'''
 
@@ -587,11 +589,8 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
     if not enabled:
         return
 
-    dep_vars = []
-    if isinstance(vars, dict):
-        dep_vars = vars.keys()
-    elif isinstance(vars, list):
-        dep_vars = vars
+    dep_vars.append('ruledeps')
+    dep_vars.append('SAMBA_GENERATOR_VARS')
 
     bld.SET_BUILD_GROUP(group)
     t = bld(
@@ -603,9 +602,13 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
         before='cc',
         ext_out='.c',
         samba_type='GENERATOR',
-        dep_vars = [rule] + dep_vars,
+        dep_vars = dep_vars,
         name=name)
 
+    if vars is None:
+        vars = {}
+    t.env.SAMBA_GENERATOR_VARS = vars
+
     if always:
         t.always = True
 
@@ -703,8 +706,6 @@ def copy_and_fix_python_path(task):
         replacement="""sys.path.insert(0, "%s")
 sys.path.insert(1, "%s")""" % (task.env["PYTHONARCHDIR"], task.env["PYTHONDIR"])
 
-    shebang = None
-
     if task.env["PYTHON"][0] == "/":
         replacement_shebang = "#!%s\n" % task.env["PYTHON"]
     else:
@@ -726,9 +727,38 @@ sys.path.insert(1, "%s")""" % (task.env["PYTHONARCHDIR"], task.env["PYTHONDIR"])
     os.chmod(installed_location, 0755)
     return 0
 
+def copy_and_fix_perl_path(task):
+    pattern='use lib "$RealBin/lib";'
+
+    replacement = ""
+    if not task.env["PERL_LIB_INSTALL_DIR"] in task.env["PERL_INC"]:
+         replacement = 'use lib "%s";' % task.env["PERL_LIB_INSTALL_DIR"]
+
+    if task.env["PERL"][0] == "/":
+        replacement_shebang = "#!%s\n" % task.env["PERL"]
+    else:
+        replacement_shebang = "#!/usr/bin/env %s\n" % task.env["PERL"]
+
+    installed_location=task.outputs[0].bldpath(task.env)
+    source_file = open(task.inputs[0].srcpath(task.env))
+    installed_file = open(installed_location, 'w')
+    lineno = 0
+    for line in source_file:
+        newline = line
+        if lineno == 0 and task.env["PERL_SPECIFIED"] == True and line[:2] == "#!":
+            newline = replacement_shebang
+        elif pattern in line:
+            newline = line.replace(pattern, replacement)
+        installed_file.write(newline)
+        lineno = lineno + 1
+    installed_file.close()
+    os.chmod(installed_location, 0755)
+    return 0
+
 
 def install_file(bld, destdir, file, chmod=MODE_644, flat=False,
-                 python_fixup=False, destname=None, base_name=None):
+                 python_fixup=False, perl_fixup=False,
+                 destname=None, base_name=None):
     '''install a file'''
     destdir = bld.EXPAND_VARIABLES(destdir)
     if not destname:
@@ -737,16 +767,22 @@ def install_file(bld, destdir, file, chmod=MODE_644, flat=False,
             destname = os.path.basename(destname)
     dest = os.path.join(destdir, destname)
     if python_fixup:
-        # fixup the python path it will use to find Samba modules
+        # fix the path python will use to find Samba modules
         inst_file = file + '.inst'
         bld.SAMBA_GENERATOR('python_%s' % destname,
                             rule=copy_and_fix_python_path,
+                            dep_vars=["PYTHON","PYTHON_SPECIFIED","PYTHONDIR","PYTHONARCHDIR"],
+                            source=file,
+                            target=inst_file)
+        file = inst_file
+    if perl_fixup:
+        # fix the path perl will use to find Samba modules
+        inst_file = file + '.inst'
+        bld.SAMBA_GENERATOR('perl_%s' % destname,
+                            rule=copy_and_fix_perl_path,
+                            dep_vars=["PERL","PERL_SPECIFIED","PERL_LIB_INSTALL_DIR"],
                             source=file,
                             target=inst_file)
-        bld.add_manual_dependency(bld.path.find_or_declare(inst_file), bld.env["PYTHONARCHDIR"])
-        bld.add_manual_dependency(bld.path.find_or_declare(inst_file), bld.env["PYTHONDIR"])
-        bld.add_manual_dependency(bld.path.find_or_declare(inst_file), str(bld.env["PYTHON_SPECIFIED"]))
-        bld.add_manual_dependency(bld.path.find_or_declare(inst_file), bld.env["PYTHON"])
         file = inst_file
     if base_name:
         file = os.path.join(base_name, file)
@@ -754,12 +790,13 @@ def install_file(bld, destdir, file, chmod=MODE_644, flat=False,
 
 
 def INSTALL_FILES(bld, destdir, files, chmod=MODE_644, flat=False,
-                  python_fixup=False, destname=None, base_name=None):
+                  python_fixup=False, perl_fixup=False,
+                  destname=None, base_name=None):
     '''install a set of files'''
     for f in TO_LIST(files):
         install_file(bld, destdir, f, chmod=chmod, flat=flat,
-                     python_fixup=python_fixup, destname=destname,
-                     base_name=base_name)
+                     python_fixup=python_fixup, perl_fixup=perl_fixup,
+                     destname=destname, base_name=base_name)
 Build.BuildContext.INSTALL_FILES = INSTALL_FILES
 
 
@@ -806,7 +843,7 @@ def MANPAGES(bld, manpages, install):
             bld.INSTALL_FILES('${MANDIR}/man%s' % m[-1], m, flat=True)
 Build.BuildContext.MANPAGES = MANPAGES
 
-def SAMBAMANPAGES(bld, manpages):
+def SAMBAMANPAGES(bld, manpages, extra_source=None):
     '''build and install manual pages'''
     bld.env.SAMBA_EXPAND_XSL = bld.srcnode.abspath() + '/docs-xml/xslt/expand-sambadoc.xsl'
     bld.env.SAMBA_MAN_XSL = bld.srcnode.abspath() + '/docs-xml/xslt/man.xsl'
@@ -814,13 +851,15 @@ def SAMBAMANPAGES(bld, manpages):
 
     for m in manpages.split():
         source = m + '.xml'
+        if extra_source is not None:
+            source = [source, extra_source]
         bld.SAMBA_GENERATOR(m,
                             source=source,
                             target=m,
                             group='final',
                             rule='''XML_CATALOG_FILES="${SAMBA_CATALOGS}"
                                     export XML_CATALOG_FILES
-                                    ${XSLTPROC} --xinclude --stringparam noreference 0 -o ${TGT}.xml --nonet ${SAMBA_EXPAND_XSL} ${SRC}
+                                    ${XSLTPROC} --xinclude --stringparam noreference 0 -o ${TGT}.xml --nonet ${SAMBA_EXPAND_XSL} ${SRC[0].abspath(env)}
                                     ${XSLTPROC} --nonet -o ${TGT} ${SAMBA_MAN_XSL} ${TGT}.xml'''
                             )
         bld.INSTALL_FILES('${MANDIR}/man%s' % m[-1], m, flat=True)
diff --git a/docs-xml/manpages/vfs_streams_xattr.8.xml b/docs-xml/manpages/vfs_streams_xattr.8.xml
index 215fead..c10ece8 100644
--- a/docs-xml/manpages/vfs_streams_xattr.8.xml
+++ b/docs-xml/manpages/vfs_streams_xattr.8.xml
@@ -43,6 +43,10 @@
 	the size of xattrs. So this module might work for applications like IE
 	that stores small zone information in streams but will fail for
 	applications that store serious amounts of data in ADSs.</para>
+
+	<para>CAUTION: Make sure to set "kernel oplocks = no" in smb.conf if
+	if you use this module because this combination is currently broken.
+	See Bug 7537 for details.</para>
 </refsect1>
 
 <refsect1>
diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build
index 25e381e..f23a210 100644
--- a/docs-xml/wscript_build
+++ b/docs-xml/wscript_build
@@ -93,22 +93,34 @@ def smbdotconf_generate_parameter_list(task):
     parameter_all = task.outputs[0].bldpath(task.env)
     articles = task.inputs
 
-    t = '<section xmlns:xi="http://www.w3.org/2003/XInclude">\n'
+    entities = bld.pathconfig_entities()
+    t = "<!DOCTYPE section [\n"
+
+    for entity in entities:
+        t += "%s\n" % entity
+
+    t += "]>\n"
+    t += "<section>\n"
     for article in articles:
-        t += "<xi:include href='file://" + article.abspath(task.env) + "' parse='xml'/>\n"
+        f = open(article.abspath(task.env), 'r')
+        t += f.read()
+        f.close()
+
     t += "</section>\n"
     save_file(parameter_all, t , create_dir=True)
     return 0
 
+articles = bld.path.ant_glob("smbdotconf/**/*.xml")
+parameter_all = 'smbdotconf/parameters.all.xml'
+bld.SAMBA_GENERATOR(parameter_all,
+                    source=articles,
+                    target=parameter_all,
+                    rule=smbdotconf_generate_parameter_list,
+                    dep_vars=bld.dynconfig_varnames())
+
 def SMBDOTCONF_MANPAGE(bld, target):


-- 
Samba Shared Repository


More information about the samba-cvs mailing list