[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Wed Jun 22 16:44:02 UTC 2022


The branch, master has been updated
       via  9788e92bf12 build: Ensure that SAMBA_GENERATOR() tasks fail on error
       via  6f96bb40e79 docs: Show current system path for smb.conf in &smb.conf entity
       via  45094bd8913 docs-xml: Use &pathconfig.WINBINDD_SOCKET_DIR; to avoid reference to old /tmp/.winbindd
       via  f3de9f6c2e0 build: Allow &pathconfig XML entities to be used in all manpages, not just smb.conf
      from  f68374aac54 lib:cmdline: Fix error handling of --client-protection=sign|encrypt|off

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


- Log -----------------------------------------------------------------
commit 9788e92bf1251b4791ca84e83aa9437101e7d436
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Jun 21 19:23:26 2022 +1200

    build: Ensure that SAMBA_GENERATOR() tasks fail on error
    
    Previously the error from inside the shell was eaten.
    
    This showed up particularly as a failure to notice errors when running xsltproc
    to build the manpages.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Wed Jun 22 16:43:30 UTC 2022 on sn-devel-184

commit 6f96bb40e79574af2cd5579557c196be07b5c9f2
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Jun 21 11:44:04 2022 +1200

    docs: Show current system path for smb.conf in &smb.conf entity
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit 45094bd891318f650ac5f0a1bb88e9cbb08729fd
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jun 20 14:35:19 2022 +1200

    docs-xml: Use &pathconfig.WINBINDD_SOCKET_DIR; to avoid reference to old /tmp/.winbindd
    
    We can now write docs that follow how the software on this system was
    built, which is much less confusing for users.  Also /tmp/.winbindd
    has not been used for a long time.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15101
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit f3de9f6c2e004caab3c410b70c9a7424d5dc8627
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jun 20 14:34:05 2022 +1200

    build: Allow &pathconfig XML entities to be used in all manpages, not just smb.conf
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15101
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

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

Summary of changes:
 buildtools/wafsamba/wafsamba.py                    | 13 ++++++--
 docs-xml/Makefile                                  | 10 ++++--
 docs-xml/build/DTD/samba-doc                       |  5 +++
 docs-xml/build/DTD/samba.entities                  |  2 +-
 ...-file-list.sh => generate-pathconf-entities.sh} | 24 +++------------
 docs-xml/manpages/idmap_hash.8.xml                 |  2 +-
 docs-xml/manpages/idmap_ldap.8.xml                 |  2 +-
 docs-xml/manpages/idmap_script.8.xml               |  2 +-
 docs-xml/manpages/libsmbclient.7.xml               |  2 +-
 docs-xml/manpages/net.8.xml                        | 20 ++++++------
 docs-xml/manpages/winbindd.8.xml                   | 35 +++++++++++++--------
 docs-xml/smbdotconf/generate-file-list.sh          | 24 +++------------
 docs-xml/wscript_build                             | 36 +++++++++++++++++-----
 13 files changed, 98 insertions(+), 79 deletions(-)
 copy docs-xml/{smbdotconf/generate-file-list.sh => generate-pathconf-entities.sh} (80%)


Changeset truncated at 500 lines:

diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index 79fe8b5e575..79f352878a8 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -913,12 +913,19 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
     dep_vars.append('ruledeps')
     dep_vars.append('SAMBA_GENERATOR_VARS')
 
+    shell=isinstance(rule, str)
+
+    # This ensures that if the command (executed in the shell) fails
+    # (returns non-zero), the build fails
+    if shell:
+        rule = "set -e; " + rule
+
     bld.SET_BUILD_GROUP(group)
     t = bld(
         rule=rule,
         source=bld.EXPAND_VARIABLES(source, vars=vars),
+        shell=shell,
         target=target,
-        shell=isinstance(rule, str),
         update_outputs=True,
         before='c',
         ext_out='.c',
@@ -1180,10 +1187,10 @@ def SAMBAMANPAGES(bld, manpages, extra_source=None):
         source = [m + '.xml']
         if extra_source is not None:
             source = [source, extra_source]
-        # ${SRC[1]} and ${SRC[2]} are not referenced in the
+        # ${SRC[1]}, ${SRC[2]} and ${SRC[3]} are not referenced in the
         # SAMBA_GENERATOR but trigger the dependency calculation so
         # ensures that manpages are rebuilt when these change.
-        source += ['build/DTD/samba.entities', 'build/DTD/samba.build.version']
+        source += ['build/DTD/samba.build.pathconfig', 'build/DTD/samba.entities', 'build/DTD/samba.build.version']
         bld.SAMBA_GENERATOR(m,
                             source=source,
                             target=m,
diff --git a/docs-xml/Makefile b/docs-xml/Makefile
index c614097f6c0..ae50b14d79a 100644
--- a/docs-xml/Makefile
+++ b/docs-xml/Makefile
@@ -17,7 +17,7 @@ DBLATEX_OPTIONS = -p xslt/latex.xsl -i xslt/latex
 
 DATETIME := $(shell date +%Y%m%d%H%M%S)
 
-XSLTPROC_DEPS = build/catalog.xml build/DTD/samba.build.version
+XSLTPROC_DEPS = build/catalog.xml build/DTD/samba.build.version build/DTD/samba.build.pathconfig
 
 ifeq ($(PROFILE), Y)
 XSLTPROC += --profile --load-trace --timing
@@ -57,6 +57,7 @@ clean::
 	rm -f xslt/figures/*pdf
 	rm -f $(SMBDOTCONFDOC)/parameters.*.xml
 	rm -f build/catalog.xml
+	rm -f DTD/samba.build.pathconfig
 
 # Output format targets
 pdf:: $(patsubst %,$(PDFDIR)/%.pdf,$(MAIN_DOCS))
@@ -177,13 +178,18 @@ $(MANPAGEDIR)/smb.conf.5.xml: parameters
 # the parameters xml files. Otherwise, when parameters.*.xml does not exist
 # yet, the parameters are not generated when smb.conf.5.xml is newer than
 # any smbdotconf/*/*.xml file ...
-.PHONY: parameters
+.PHONY: parameters pathconf
 
 parameters: $(SMBDOTCONFDOC)/parameters.all.xml
 
+pathconf: build/DTD/samba.build.pathconfig
+
 $(SMBDOTCONFDOC)/parameters.all.xml: $(wildcard $(SMBDOTCONFDOC)/*/*.xml) $(SMBDOTCONFDOC)/generate-file-list.sh
 	$(SMBDOTCONFDOC)/generate-file-list.sh $(SMBDOTCONFDOC) > $@
 
+build/DTD/samba.build.pathconfig: generate-pathconf-entities.sh
+	./generate-pathconf-entities.sh > $@
+
 $(OUTPUTDIR):
 	test -d $@ || mkdir $@
 
diff --git a/docs-xml/build/DTD/samba-doc b/docs-xml/build/DTD/samba-doc
index 9873aa03458..e4a52789257 100644
--- a/docs-xml/build/DTD/samba-doc
+++ b/docs-xml/build/DTD/samba-doc
@@ -28,6 +28,11 @@
 	"http://www.samba.org/samba/LOCAL.BUILDDIR.DTD/samba.build.version">
 %samba.build.version;
 
+<!ENTITY % samba.build.pathconfig PUBLIC
+	"-//Samba-Team//VERSION Samba Build Version//EN"
+	"http://www.samba.org/samba/LOCAL.BUILDDIR.DTD/samba.build.pathconfig">
+%samba.build.pathconfig;
+
 <!-- smb.conf options -->
 
 <!ELEMENT smbconfblock ((smbconfoption|smbconfsection|smbconfcomment)*)>
diff --git a/docs-xml/build/DTD/samba.entities b/docs-xml/build/DTD/samba.entities
index 15a5ba83fb9..bba0c2c396b 100644
--- a/docs-xml/build/DTD/samba.entities
+++ b/docs-xml/build/DTD/samba.entities
@@ -896,7 +896,7 @@
 <!ENTITY smbd '<application>smbd</application>'>
 <!ENTITY nmbd '<application>nmbd</application>'>
 <!ENTITY testparm '<application>testparm</application>'>
-<!ENTITY smb.conf '<filename>smb.conf</filename>'>
+<!ENTITY smb.conf '<filename>&pathconfig.CONFIGFILE;</filename>'>
 <!ENTITY smbclient '<application>smbclient</application>'>
 <!ENTITY winbindd '<application>winbindd</application>'>
 <!ENTITY net '<application>net</application>'>
diff --git a/docs-xml/smbdotconf/generate-file-list.sh b/docs-xml/generate-pathconf-entities.sh
similarity index 80%
copy from docs-xml/smbdotconf/generate-file-list.sh
copy to docs-xml/generate-pathconf-entities.sh
index 27c9c5b753e..6c0c31a3522 100755
--- a/docs-xml/smbdotconf/generate-file-list.sh
+++ b/docs-xml/generate-pathconf-entities.sh
@@ -1,10 +1,9 @@
-#!/bin/sh
-#
+
 # This is the fallback table for when we use the docs-xml build
 # system.  When build as part of the main waf build, these are set to
 # the full correct path for the system.
 #
-echo "<!DOCTYPE section [
+echo "
 <!ENTITY pathconfig.SCRIPTSBINDIR        '\${prefix}/sbin'>
 <!ENTITY pathconfig.LOCKDIR              '\${prefix}/var/lock'>
 <!ENTITY pathconfig.NCALRPCDIR           '\${prefix}/var/run/ncalrpc'>
@@ -18,20 +17,5 @@ echo "<!DOCTYPE section [
 <!ENTITY pathconfig.NTP_SIGND_SOCKET_DIR '\${prefix}/var/lib/ntp_signd'>
 <!ENTITY pathconfig.MITKDCPATH           '\${prefix}/sbin/krb5kdc'>
 <!ENTITY pathconfig.SAMBA_DATADIR        '\${prefix}/var/samba'>
-]>"
-
-DIR=.
-if [ "x$1" != "x" ]; then
-	DIR="$1"
-fi
-
-OLD=$(pwd)
-cd $DIR
-
-echo "<section>"
-for I in $(find . -mindepth 2 -type f -name '*.xml' | sort -t/ -k3 | xargs); do
-	cat $I
-done
-echo "</section>"
-
-cd $OLD
+<!ENTITY pathconfig.CONFIGFILE           '\${prefix}/etc/smb.conf'>
+"
diff --git a/docs-xml/manpages/idmap_hash.8.xml b/docs-xml/manpages/idmap_hash.8.xml
index fd3a2d68240..03ff02a486b 100644
--- a/docs-xml/manpages/idmap_hash.8.xml
+++ b/docs-xml/manpages/idmap_hash.8.xml
@@ -25,7 +25,7 @@
 	  This plugin also implements the nss_info API and can be used
 	  to support a local name mapping files if enabled via the
 	  "winbind normalize names" and "winbind nss info"
-	  parameters in smb.conf.
+	  parameters in &smb.conf;.
 	  The module divides the range into subranges for each domain that is being
 	  handled by the idmap config.
 
diff --git a/docs-xml/manpages/idmap_ldap.8.xml b/docs-xml/manpages/idmap_ldap.8.xml
index 0601f6164cc..80f272d3fa3 100644
--- a/docs-xml/manpages/idmap_ldap.8.xml
+++ b/docs-xml/manpages/idmap_ldap.8.xml
@@ -41,7 +41,7 @@
 		<listitem><para>
 			Defines the directory base suffix to use for
 			SID/uid/gid mapping entries.  If not defined, idmap_ldap will default
-			to using the "ldap idmap suffix" option from smb.conf.
+			to using the "ldap idmap suffix" option from &smb.conf;.
 		</para></listitem>
 		</varlistentry>
 
diff --git a/docs-xml/manpages/idmap_script.8.xml b/docs-xml/manpages/idmap_script.8.xml
index 95afde18693..2e7f2be59fd 100644
--- a/docs-xml/manpages/idmap_script.8.xml
+++ b/docs-xml/manpages/idmap_script.8.xml
@@ -60,7 +60,7 @@
 
 	<para>
 	The tdb2 idmap backend supports an external program for performing id mappings
-	through the smb.conf option <parameter>idmap config * : script</parameter> or
+	through the &smb.conf; option <parameter>idmap config * : script</parameter> or
 	its deprecated legacy form <parameter>idmap : script</parameter>.
 	</para>
 
diff --git a/docs-xml/manpages/libsmbclient.7.xml b/docs-xml/manpages/libsmbclient.7.xml
index 8dab4d06cba..a08a4ae95ce 100644
--- a/docs-xml/manpages/libsmbclient.7.xml
+++ b/docs-xml/manpages/libsmbclient.7.xml
@@ -93,7 +93,7 @@
 	When libsmbclient is invoked by an application it searches for a directory called
 	<filename>.smb</filename> in the $HOME directory that is specified in the users shell
 	environment. It then searches for a file called <filename>smb.conf</filename> which,
-	if present, will fully over-ride the system <filename>/etc/samba/smb.conf</filename> file. If
+	if present, will fully over-ride the system &smb.conf; file. If
 	instead libsmbclient finds a file called <filename>~/.smb/smb.conf.append</filename>,
 	it will read the system <filename>/etc/samba/smb.conf</filename> and then append the
 	contents of the <filename>~/.smb/smb.conf.append</filename> to it.
diff --git a/docs-xml/manpages/net.8.xml b/docs-xml/manpages/net.8.xml
index 5a37119aa20..557cf0d0883 100644
--- a/docs-xml/manpages/net.8.xml
+++ b/docs-xml/manpages/net.8.xml
@@ -2111,7 +2111,7 @@ commands.
 </para>
 
 <para>
-To set this up, first set up your smb.conf by adding to the [global] section:
+To set this up, first set up your &smb.conf; by adding to the [global] section:
 
 usershare path = /usr/local/samba/lib/usershares
 
@@ -2126,7 +2126,7 @@ which means that a file in that directory can be renamed or deleted only
 by the owner of the file).
 
 Finally, tell smbd how many usershares you will allow by adding to the [global]
-section of smb.conf a line such as :
+section of &smb.conf; a line such as :
 
 usershare max shares = 100.
 
@@ -2154,7 +2154,7 @@ Add or replace a new user defined share, with name "sharename".
 
 <para>
 "path" specifies the absolute pathname on the system to be exported.
-Restrictions may be put on this, see the global smb.conf parameters:
+Restrictions may be put on this, see the global &smb.conf; parameters:
 "usershare owner only", "usershare prefix allow list", and
 "usershare prefix deny list".
 </para>
@@ -2166,7 +2166,7 @@ on the share when browsed to by a client.
 
 <para>The optional "acl" field
 specifies which users have read and write access to the entire share.
-Note that guest connections are not allowed unless the smb.conf parameter
+Note that guest connections are not allowed unless the &smb.conf; parameter
 "usershare allow guests" has been set. The definition of a user
 defined share acl is: "user:permission", where user is a valid
 username on the system and permission can be "F", "R", or "D".
@@ -2184,9 +2184,9 @@ authenticated user has read-only access.
 
 <para>
 The optional "guest_ok" has the same effect as the parameter of the
-same name in smb.conf, in that it allows guest access to this user
+same name in &smb.conf;, in that it allows guest access to this user
 defined share. This parameter is only allowed if the global parameter
-"usershare allow guests" has been set to true in the smb.conf.
+"usershare allow guests" has been set to true in the &smb.conf;.
 </para>
 
 There is no separate command to modify an existing user defined share,
@@ -2268,7 +2268,7 @@ by enabling the RPC conf mode and specifying the address of the remote server.
 
 <para>
 The deployment of this configuration data can be activated in two levels from the
-<emphasis>smb.conf</emphasis> file: Share definitions from registry are
+<emphasis>&smb.conf;</emphasis> file: Share definitions from registry are
 activated by setting <parameter>registry shares</parameter> to
 <quote>yes</quote> in the [global] section and global configuration options are
 activated by setting <smbconfoption name="include">registry</smbconfoption> in
@@ -2721,7 +2721,7 @@ win32 eventlog files (usually *.evt). evt files are used by the native Windows e
 
 <para>
 The import and export of evt files can only succeed when <parameter>eventlog list</parameter> is used in
-<emphasis>smb.conf</emphasis> file.
+<emphasis>&smb.conf;</emphasis> file.
 See the <citerefentry><refentrytitle>smb.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manpage for details.
 </para>
 
@@ -2750,7 +2750,7 @@ Prints a eventlog *.evt file to standard output.
 Imports a eventlog *.evt file defined by <replaceable>filename</replaceable> into the
 samba internal tdb representation of eventlog defined by <replaceable>eventlog</replaceable>.
 <replaceable>eventlog</replaceable> needs to part of the <parameter>eventlog list</parameter>
-defined in smb.conf.
+defined in &smb.conf;.
 See the <citerefentry><refentrytitle>smb.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manpage for details.
 </para>
 
@@ -2763,7 +2763,7 @@ See the <citerefentry><refentrytitle>smb.conf</refentrytitle> <manvolnum>5</manv
 Exports the samba internal tdb representation of eventlog defined by <replaceable>eventlog</replaceable>
 to a eventlog *.evt file defined by <replaceable>filename</replaceable>.
 <replaceable>eventlog</replaceable> needs to part of the <parameter>eventlog list</parameter>
-defined in smb.conf.
+defined in &smb.conf;.
 See the <citerefentry><refentrytitle>smb.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manpage for details.
 </para>
 
diff --git a/docs-xml/manpages/winbindd.8.xml b/docs-xml/manpages/winbindd.8.xml
index 7a643b8879c..e60bd655ec0 100644
--- a/docs-xml/manpages/winbindd.8.xml
+++ b/docs-xml/manpages/winbindd.8.xml
@@ -432,28 +432,36 @@ auth  required    /lib/security/pam_unix.so \
 		</varlistentry>
 
 		<varlistentry>
-		<term>/tmp/.winbindd/pipe</term>
+		<term>&pathconfig.WINBINDD_SOCKET_DIR;/pipe</term>
 		<listitem><para>The UNIX pipe over which clients communicate with
 		the <command>winbindd</command> program.  For security reasons, the
 		winbind client will only attempt to connect to the winbindd daemon
-		if both the <filename>/tmp/.winbindd</filename> directory
-		and <filename>/tmp/.winbindd/pipe</filename> file are owned by
-		root. </para></listitem>
+		if both the <filename>&pathconfig.WINBINDD_SOCKET_DIR;</filename> directory
+		and <filename>&pathconfig.WINBINDD_SOCKET_DIR;/pipe</filename> file are owned by
+		root. </para>
+
+		<para><smbconfoption name="winbindd socket directory"/>
+		overrides this default.</para>
+
+		</listitem>
 		</varlistentry>
 
 		<varlistentry>
-		<term>$LOCKDIR/winbindd_privileged/pipe</term>
+		<term>$STATEDIR/winbindd_privileged/pipe</term>
 	        <listitem><para>The UNIX pipe over which 'privileged' clients
                 communicate with the <command>winbindd</command> program.  For security
                 reasons, access to some winbindd functions - like those needed by
                 the <command>ntlm_auth</command> utility - is restricted.  By default,
                 only users in the 'root' group will get this access, however the administrator
-                may change the group permissions on $LOCKDIR/winbindd_privileged to allow
+                may change the group permissions on $STATEDIR/winbindd_privileged to allow
                 programs like 'squid' to use ntlm_auth.
 		Note that the winbind client will only attempt to connect to the winbindd daemon
-		if both the <filename>$LOCKDIR/winbindd_privileged</filename> directory
-		and <filename>$LOCKDIR/winbindd_privileged/pipe</filename> file are owned by
-		root. </para></listitem>
+		if both the <filename>$STATEDIR/winbindd_privileged</filename> directory
+		and <filename>$STATEDIR/winbindd_privileged/pipe</filename> file are owned by
+		root. </para>
+		<para><smbconfoption name="state dir"/> controls what
+		$STATEDIR refers to.</para>
+		</listitem>
 		</varlistentry>
 
 		<varlistentry>
@@ -463,11 +471,12 @@ auth  required    /lib/security/pam_unix.so \
 		</varlistentry>
 
 		<varlistentry>
-		<term>$LOCKDIR/winbindd_idmap.tdb</term>
+		<term>$STATEDIR/winbindd_idmap.tdb</term>
 		<listitem><para>Storage for the Windows NT rid to UNIX user/group
-		id mapping.  The lock directory is specified when Samba is initially
-		compiled using the <parameter>--with-lockdir</parameter> option.
-		This directory is by default <filename>/usr/local/samba/var/locks
+		id mapping.  The directory is specified when Samba is initially
+		compiled using the
+		<parameter>--with-statedir</parameter> option or <smbconfoption name="state dir"/>.
+		The default directory in this installation is <filename>&pathconfig.STATEDIR;
 		</filename>. </para></listitem>
 		</varlistentry>
 
diff --git a/docs-xml/smbdotconf/generate-file-list.sh b/docs-xml/smbdotconf/generate-file-list.sh
index 27c9c5b753e..dd981b3c472 100755
--- a/docs-xml/smbdotconf/generate-file-list.sh
+++ b/docs-xml/smbdotconf/generate-file-list.sh
@@ -1,24 +1,10 @@
 #!/bin/sh
 #
-# This is the fallback table for when we use the docs-xml build
-# system.  When build as part of the main waf build, these are set to
-# the full correct path for the system.
-#
-echo "<!DOCTYPE section [
-<!ENTITY pathconfig.SCRIPTSBINDIR        '\${prefix}/sbin'>
-<!ENTITY pathconfig.LOCKDIR              '\${prefix}/var/lock'>
-<!ENTITY pathconfig.NCALRPCDIR           '\${prefix}/var/run/ncalrpc'>
-<!ENTITY pathconfig.PIDDIR               '\${prefix}/var/run'>
-<!ENTITY pathconfig.STATEDIR             '\${prefix}/var/locks'>
-<!ENTITY pathconfig.PRIVATE_DIR          '\${prefix}/private'>
-<!ENTITY pathconfig.BINDDNS_DIR          '\${prefix}/bind-dns'>
-<!ENTITY pathconfig.SMB_PASSWD_FILE      '\${prefix}/private/smbpasswd'>
-<!ENTITY pathconfig.WINBINDD_SOCKET_DIR  '\${prefix}/var/run/winbindd'>
-<!ENTITY pathconfig.CACHEDIR             '\${prefix}/var/cache'>
-<!ENTITY pathconfig.NTP_SIGND_SOCKET_DIR '\${prefix}/var/lib/ntp_signd'>
-<!ENTITY pathconfig.MITKDCPATH           '\${prefix}/sbin/krb5kdc'>
-<!ENTITY pathconfig.SAMBA_DATADIR        '\${prefix}/var/samba'>
-]>"
+set -e
+echo "<!DOCTYPE section ["
+$(dirname $0)/../generate-pathconf-entities.sh
+
+echo "]>"
 
 DIR=.
 if [ "x$1" != "x" ]; then
diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build
index c8c4b68e514..40f55141ad8 100644
--- a/docs-xml/wscript_build
+++ b/docs-xml/wscript_build
@@ -116,10 +116,7 @@ vfs_module_manpages = ['vfs_acl_tdb',
                        'vfs_xattr_tdb',
                        'vfs_zfsacl' ]
 
-def smbdotconf_generate_parameter_list(task):
-    parameter_all = task.outputs[0].bldpath(task.env)
-    articles = task.inputs
-
+def generate_path_entity_list():
     entities = bld.pathconfig_entities()
 
     # We need this if we build with Heimdal as we can't easily make
@@ -129,15 +126,24 @@ def smbdotconf_generate_parameter_list(task):
     if bld.CONFIG_SET('MIT_KDC_PATH'):
         mit_kdc_path = bld.CONFIG_GET('MIT_KDC_PATH')
 
-    t = "<!DOCTYPE section [\n" +\
-        "\n".join(entities) +\
+    t = "\n".join(entities) +\
         "\n" +\
         "<!ENTITY pathconfig.MITKDCPATH   " + mit_kdc_path + ">\n" +\
+        "\n"
+    return t
+
+def smbdotconf_generate_parameter_list_file(task):
+    parameter_all = task.outputs[0].bldpath(task.env)
+    articles = task.inputs
+
+    t = "<!DOCTYPE section [\n" +\
+        generate_path_entity_list() + \
         "]>\n" +\
         "<section>\n" +\
         "".join(art.read() for art in articles) +\
 	"</section>\n"
 
+
     save_file(parameter_all, t , create_dir=True)
     return 0
 
@@ -152,9 +158,25 @@ articles = " ".join(sorted([x.path_from(bld.path) for x in sources],
 bld.SAMBA_GENERATOR(parameter_all,
                     source=articles,
                     target=parameter_all,
-                    rule=smbdotconf_generate_parameter_list,
+                    rule=smbdotconf_generate_parameter_list_file)
+
+def generate_path_entity_file(task):
+    path_entities_file = task.outputs[0].bldpath(task.env)
+
+    save_file(path_entities_file,
+              generate_path_entity_list(),
+              create_dir=True)
+    return 0
+
+path_entities = 'build/DTD/samba.build.pathconfig'
+
+bld.SAMBA_GENERATOR(path_entities,
+                    source=articles,
+                    target=path_entities,
+                    rule=generate_path_entity_file,
                     dep_vars=bld.dynconfig_varnames())
 
+
 def SMBDOTCONF_MANPAGE(bld, target):
     ''' assemble and build smb.conf.5 manual page'''
     bld.SAMBAMANPAGES(target, parameter_all)


-- 
Samba Shared Repository



More information about the samba-cvs mailing list