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

Karolin Seeger kseeger at samba.org
Mon Dec 1 06:07:38 MST 2014


The branch, v4-1-stable has been updated
       via  1eb23eb VERSION: Disable git snapshots for the 4.1.14 release.
       via  b692217 WHATSNEW: Add release notes for Samba 4.1.14.
       via  4ddd4c6 s4-dns: dlz-bind: Add trailing '.' to all fqdn strings
       via  a5adad6 s4-dns: Add support for BIND 9.10
       via  a30eeec s4-dns: Update dlz_minimal.h based on BIND release 9.10
       via  8fed025 s4-dns: Check DLZ_DLOPEN_VERSION for different BIND versions
       via  221934c s4-dns: Update template variables, change BIND98 --> BIND9_8
       via  c4ae1b4 samba: pass down size_t instead of int to add_string_to_array().
       via  fed8ae0 lib/util: use size_t for add_string_to_array().
       via  e0b65dd s3-proto: remove duplicate proto for add_string_to_array().
       via  2947da5 Revert "buildtools: Rename perl vendorarch configure option."
       via  13c1147 Revert "buildtools: Add perl vendorlib configure option."
       via  a3a75d7 Revert "wafsamba: If perl can't provide defaults, define them."
       via  3b4dc66 Revert "wafsamba: Fail with error message if perl doesn't provide valid dirs."
       via  699bcec pidl/wscript: remove --with-perl-* options
       via  999867a Revert "autobuild: Set perl vendorlib direcotry."
       via  8f967e2 Revert "script/autobuild: make use of --with-perl-{arch,lib}-install-dir"
       via  23aba84 pidl: remove superfluous "use lib ...".
       via  6feada1 pidl: fix the perl module search path (use lib ...) when installing pidl.
       via  50f3e56 wafsamba: add perl_fixup parameter to INSTALL_FILES
       via  016f1ef s3:build: don't detect perl in source3/wscript again.
       via  711a810 pidl/wscript: don't check for perl again.
       via  94e9dae build: do full SAMBA_CHECK_PERL() check in configure
       via  dff2c03 wafsamba: add samba_perl.py with SAMBA_CHECK_PERL() higher level check.
       via  78cb744 dynconfig: implement PERL_ARCH_INSTALL_DIR
       via  89cc025 dynconfig: implement PERL_LIB_INSTALL_DIR.
       via  f839d6c lib/ldb/wscript: pass dep_vars=['LDB_VERSION'] to SAMBA_GENERATOR()
       via  226ccc7 docs-xml/wscript_build: pass dep_vars=bld.dynconfig_varnames() to SAMBA_GENERATOR()
       via  48e500d dynconfig/wscript: add dynconfig_varnames()
       via  d9d873c wafsamba: let SAMBA_BLDOPTIONS() use dep_vars=['defines'] instead of always=True
       via  e19b17a wafsamba: fix dependencies on environment variables for python_fixup
       via  81c781d wafsamba: allow an optional dep_vars list to be passed to SAMBA_GENERATOR()
       via  f0cf2c0 wafsamba: fix dependency for SAMBA_GENERATOR() when passing vars!=None
       via  ae97d88 wafsamba: fix dependency calculation for SAMBA_GENERATOR()
       via  cfbf91e wafsamba: improve wording in a comment
       via  6392749 wafsamba: remove unused variable from copy_and_fix_python_path
       via  cda88f3 docs: Always declare rule to build parameters.all.xml and do it first
       via  fd0fe9a docs: define and include entities for the docs
       via  422d803 docs: remove the file prefix from included path names
       via  f66abcc docs: update XInclude year to conform with current standard
       via  3aa6401 pdb_tdb: Fix a TALLOC/SAFE_FREE mixup
       via  60501b0 s3-keytab: fix keytab array NULL termination.
       via  1d9c15f spoolss: remove unused fill_job_info3()
       via  bcd16d6 spoolss: fix jobid in level 3 EnumJobs response
       via  20f803b spoolss: fix jobid in level 2 GetJob and EnumJobs responses
       via  e1fb94b spoolss: fix jobid in level 1 GetJob and EnumJobs responses
       via  7bf4cb0 spoolss: fix GetJob jobid lookups
       via  9f438fd printing: add jobid_to_sysjob helper function
       via  00f6184 s3:smbd: fix file corruption using "write cache size != 0"
       via  907e64c s3: nmbd: Ensure NetBIOS names are only 15 characters stored.
       via  56ed600 s3: libsmbclient - smb2. MacOSX 10 SMB2 server doesn't set STATUS_NO_MORE_FILES when handed a non-wildcard path.
       via  5126c01 spoolss: fix handling of bad EnumJobs levels
       via  39a9211 s3-nmbd: Fix netbios name truncation.
       via  0e03a17 There are tests all over the SMB1 code to check that srv_send_smb fails, but it never returns false.
       via  859a84d s3: daemons - ensure nmbd and winbindd are consistent in command line processing by adding POPT_COMMON_DYNCONFIG.
       via  43fbaf6 vfs_glusterfs: Remove "integer fd" code and store the glfs pointers.
       via  ad4629b vfs_glusterfs: smb_stat_ex_from_stat commenting and cleanup.
       via  6a2496a vfs_glusterfs: Comment the top of the file.
       via  1883e25 nss_winbind: add getgroupmembership for FreeBSD
       via  0548c9e VERSION: Bump version up to 4.1.14...
      from  3211982 VERSION: Disable git snapshots for the 4.1.13 release.

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


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

Summary of changes:
 VERSION                                     |   2 +-
 WHATSNEW.txt                                |  94 +++++++++++-
 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/wscript_build                      |  30 ++--
 dynconfig/wscript                           |  55 ++++++-
 lib/ldb/wscript                             |   3 +-
 lib/util/samba_util.h                       |   2 +-
 lib/util/util_strlist.c                     |   2 +-
 libcli/ldap/ldap_message.h                  |   2 +-
 libgpo/gpext/gpext.c                        |   2 +-
 nsswitch/winbind_nss_freebsd.c              |  74 ++++++++-
 pidl/pidl                                   |   1 -
 pidl/wscript                                |   7 +-
 script/autobuild.py                         |   9 +-
 source3/include/printing.h                  |   1 +
 source3/include/proto.h                     |   3 -
 source3/lib/eventlog/eventlog.c             |   2 +-
 source3/lib/util_names.c                    |  10 +-
 source3/libads/kerberos_keytab.c            |   3 +-
 source3/libads/ldap.c                       |   2 +-
 source3/libnet/libnet_join.c                |   4 +-
 source3/libsmb/cli_smb2_fnum.c              |  14 ++
 source3/modules/vfs_glusterfs.c             | 169 +++++++--------------
 source3/nmbd/nmbd.c                         |   3 +-
 source3/nmbd/nmbd_nameregister.c            |  76 +++++++++-
 source3/passdb/pdb_tdb.c                    |   2 +-
 source3/printing/printing.c                 |  70 ++++++---
 source3/rpc_server/lsa/srv_lsa_nt.c         |   2 +-
 source3/rpc_server/netlogon/srv_netlog_nt.c |   2 +-
 source3/rpc_server/spoolss/srv_spoolss_nt.c | 222 +++++++++++++++++----------
 source3/rpcclient/cmd_spoolss.c             |   5 +-
 source3/smbd/oplock.c                       |   3 +
 source3/smbd/process.c                      |   2 +-
 source3/winbindd/winbindd.c                 |   1 +
 source3/winbindd/winbindd_cm.c              |   2 +-
 source3/wscript                             |   1 -
 source4/dns_server/dlz_bind9.c              |  77 ++++++++--
 source4/dns_server/dlz_minimal.h            | 227 ++++++++++++++++++++--------
 source4/dns_server/wscript_build            |  10 ++
 source4/setup/named.conf.dlz                |   7 +-
 source4/torture/dns/dlz_bind9.c             |  24 +--
 source4/torture/rpc/samba3rpc.c             |   4 +-
 source4/torture/rpc/samr.c                  |   2 +-
 source4/torture/rpc/wkssvc.c                |  10 +-
 wscript                                     |   2 +-
 wscript_build                               |  13 +-
 49 files changed, 1007 insertions(+), 445 deletions(-)
 create mode 100644 buildtools/wafsamba/samba_perl.py


Changeset truncated at 500 lines:

diff --git a/VERSION b/VERSION
index f965464..cbe4336 100644
--- a/VERSION
+++ b/VERSION
@@ -25,7 +25,7 @@
 ########################################################
 SAMBA_VERSION_MAJOR=4
 SAMBA_VERSION_MINOR=1
-SAMBA_VERSION_RELEASE=13
+SAMBA_VERSION_RELEASE=14
 
 ########################################################
 # If a official release has a serious bug              #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 963b614..f96bfdf 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,4 +1,94 @@
                    ==============================
+                   Release Notes for Samba 4.1.14
+                          December 1, 2014
+                   ==============================
+
+
+This is the latest stable release of Samba 4.1.
+
+
+Changes since 4.1.13:
+---------------------
+
+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: nmbd fails to accept "--piddir" option.
+    * BUG 10896: s3-nmbd: Fix netbios name truncation.
+    * BUG 10904: s3: libsmbclient-smb2. MacOSX 10 SMB2 server doesn't set
+      STATUS_NO_MORE_FILES when handed a non-wildcard path.
+    * BUG 10920: s3: nmbd: Ensure NetBIOS names are only 15 characters stored.
+
+
+o   Günther Deschner <gd at samba.org>
+    * BUG 10942: Cleanup add_string_to_array and usage.
+
+
+o   David Disseldorp <ddiss at samba.org>
+    * BUG 10898: spoolss: Fix handling of bad EnumJobs levels.
+    * BUG 10905: spoolss: Fix jobid in level 3 EnumJobs response.
+
+
+o   Amitay Isaacs <amitay at gmail.com>
+    * BUG 10620: s4-dns: Add support for BIND 9.10.
+
+
+o   Björn Jacke <bj at sernet.de>
+    * BUG 10835: nss_winbind: Add getgroupmembership for FreeBSD.
+
+
+o   Volker Lendecke <vl at samba.org>
+    * BUG 10932: pdb_tdb: Fix a TALLOC/SAFE_FREE mixup.
+
+
+o   Stefan Metzmacher <metze at samba.org>
+    * BUG 10472: pidl/wscript: Remove --with-perl-* options.
+    * BUG 10921: s3:smbd: Fix file corruption using "write cache size != 0".
+
+
+o   Jose A. Rivera <jarrpa at redhat.com>
+    * BUG 10889: vfs_glusterfs: Remove "integer fd" code and store the glfs
+      pointers.
+
+
+o   Matt Rogers <mrogers at redhat.com>
+    * BUG 10933: s3-keytab: Fix keytab array NULL termination.
+
+
+o   Richard Sharpe <realrichardsharpe at gmail.com>
+    * BUG 10880: S3: 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.1 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.1.13
                          October 20, 2014
                    ==============================
@@ -80,10 +170,8 @@ database (https://bugzilla.samba.org/).
 ======================================================================
 
 
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
 
-======================================================================
 
                    ==============================
                    Release Notes for Samba 4.1.12
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 55ed540..62d988e 100644
--- a/buildtools/wafsamba/samba_patterns.py
+++ b/buildtools/wafsamba/samba_patterns.py
@@ -202,6 +202,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 aaa0939..c8220c2 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
 
@@ -701,8 +704,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:
@@ -724,9 +725,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:
@@ -735,16 +765,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)
@@ -752,12 +788,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
 
 
@@ -804,7 +841,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'
@@ -812,13 +849,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/wscript_build b/docs-xml/wscript_build
index 9c6042f..7af0f68 100644
--- a/docs-xml/wscript_build
+++ b/docs-xml/wscript_build
@@ -97,22 +97,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):
     ''' assemble and build smb.conf.5 manual page'''
-    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)
-    bld.SAMBAMANPAGES(target)
+    bld.SAMBAMANPAGES(target, parameter_all)
 
 if ('XSLTPROC_MANPAGES' in bld.env and bld.env['XSLTPROC_MANPAGES']):
 
diff --git a/dynconfig/wscript b/dynconfig/wscript
index aa4e66e..6410c38 100755
--- a/dynconfig/wscript
+++ b/dynconfig/wscript
@@ -111,6 +111,16 @@ dynconfig = {
          'FHS-PATH':  '${PYTHONARCHDIR}',
          'OVERWRITE': True,
     },
+    'PERL_LIB_INSTALL_DIR' : {
+         'STD-PATH':  '${PERL_LIB_INSTALL_DIR}',
+         'FHS-PATH':  '${PERL_LIB_INSTALL_DIR}',
+         'OVERWRITE': True,
+    },
+    'PERL_ARCH_INSTALL_DIR' : {
+         'STD-PATH':  '${PERL_ARCH_INSTALL_DIR}',


-- 
Samba Shared Repository


More information about the samba-cvs mailing list