[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