[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Fri Jan 31 15:23:04 MST 2014


The branch, master has been updated
       via  fca80dc selftest: updated docs.py script
       via  2c86758 docs: Always declare rule to build parameters.all.xml and do it first
       via  464009c docs: change default of usershare path to use an entity
       via  7d9cb4d docs: change default of cache directory to use an entity
       via  f243479 docs: change default of winbindd privileged socket directory to use an entity
       via  c729ab8 docs: change default of samba kcc command to use an entity
       via  7a93e0f docs: change default of ntp signd socket directory to use an entity
       via  072b053 docs: change default of spn update command to use an entity
       via  79229f4 docs: change default in private directory to use an entity
       via  31a48b8 docs: change default in lock directory to use an entity
       via  d0839f3 docs: change default in state directory to use an entity
       via  9a76eed docs: change default in winbindd socket directory to use an entity
       via  308b8b2 docs: change default in ncalrpc dir to use an entity
       via  9143987 docs: change default in smb passwd file to use an entity
       via  e450a98 docs: change default in dns update command to use an entity
       via  44026cf docs: change default in pid directory to use an entity
       via  53522ac docs: Allow smb.conf.5 to still be generated outside the waf build
       via  57ba012 docs: define and include entities for the docs
      from  0e552e0 docs: adjust the defaults for list parameters to include commas to match testparm output

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


- Log -----------------------------------------------------------------
commit fca80dccf86d00b3dfe42f35b78b0538e3cd1c0e
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Tue Dec 24 15:33:42 2013 +1300

    selftest: updated docs.py script
    
    The script now checks the parameter defaults against the documentation by using
    the output of testparm and samba-tool testparm.
    
    It now also uses the ElementTree xml library.
    
    Change-Id: I2657c8c56a8c8383735e659dc9f636b4c5ab460b
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at samba.org>
    Autobuild-Date(master): Fri Jan 31 23:22:09 CET 2014 on sn-devel-104

commit 2c86758b04515998c690f293fada2cc43116d764
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jan 15 18:11:41 2014 +1300

    docs: Always declare rule to build parameters.all.xml and do it first
    
    This ensures this file and the rule to generate it can always be found.
    
    Andrew Bartlett
    
    Change-Id: I76d9f4470e2678fc2df4e3a13642737128938f3a
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 464009c01d747c12be682a92400a24a871cff0c1
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Jan 9 13:32:32 2014 +1300

    docs: change default of usershare path to use an entity
    
    Change-Id: Idf9b8b95387f9b31b1cf8d3d548adb8361de0534
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 7d9cb4df4496cdb1afc649a074459e4c3d64e676
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Jan 9 13:18:14 2014 +1300

    docs: change default of cache directory to use an entity
    
    Change-Id: I555524324d671a30c8bfb130ba95e745492a50b2
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit f243479ade4ff6c9db550a8b49b825d27ba5f44d
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Jan 9 13:08:35 2014 +1300

    docs: change default of winbindd privileged socket directory to use an entity
    
    Change-Id: Ia520090dbad50a6d3fc5b7bdc1982cfc15174b16
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit c729ab83f0625fd8fb443419be0335aa4f33bf65
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Jan 9 13:08:05 2014 +1300

    docs: change default of samba kcc command to use an entity
    
    Change-Id: I63c10ca0efc83496ffcd720edc00bd711ce53eac
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 7a93e0fa9cc962d17680a0c67781c076a4547918
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Jan 9 13:07:48 2014 +1300

    docs: change default of ntp signd socket directory to use an entity
    
    Change-Id: Id66dcd5b587c4c355961d8e9d10cdf0d1e17a6ad
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 072b053c00a2676a4b34d07180b67e920a00ac5b
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Jan 9 13:07:33 2014 +1300

    docs: change default of spn update command to use an entity
    
    Change-Id: I05720c79767311593d93277e2ba82f6bde212518
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 79229f41115d667d211b84aa7cedfdc114e3386a
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Thu Jan 9 12:35:03 2014 +1300

    docs: change default in private directory to use an entity
    
    Change-Id: I4d015f2a75d8f404e0db64382b6d71bb9b59b8e3
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 31a48b832d3bcfb4549ec5fbe34db0da25cc7618
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Thu Jan 9 12:33:27 2014 +1300

    docs: change default in lock directory to use an entity
    
    Change-Id: Ie36185c0c9f439747a855885138093197f60786a
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit d0839f3b0f49b9cbe0bfe466e4cd62bbd8de19c6
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Thu Jan 9 12:31:17 2014 +1300

    docs: change default in state directory to use an entity
    
    Change-Id: I955779e117183ea42c86c092df9f6e3fda936f3c
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 9a76eedd0c080811a60cdfab7f8c6cc5b44baf20
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Thu Jan 9 12:27:18 2014 +1300

    docs: change default in winbindd socket directory to use an entity
    
    Change-Id: I8b3305f789cf081c5289c9d2653aecd8aa828577
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 308b8b2f10215f649e60682b1224c535bb68d90c
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Thu Jan 9 12:23:31 2014 +1300

    docs: change default in ncalrpc dir to use an entity
    
    Change-Id: I53e66f778731f44aba9fa2e1e18f157bea9c2974
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 9143987405dcde0973e9a2c7039bce12dd97cf50
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Thu Jan 9 12:19:48 2014 +1300

    docs: change default in smb passwd file to use an entity
    
    Change-Id: Ia81d677657ec0013c9cc7bfaecc2d88faf50f07c
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit e450a980b51860619d4f27ea251bf5a242f1ddc7
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Thu Jan 9 12:15:28 2014 +1300

    docs: change default in dns update command to use an entity
    
    Change-Id: I911eabd0271d0b3cdd15b5232a837ca3289997ae
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 44026cf32e42220f08f4d3f2705599230e138936
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Thu Jan 9 12:07:32 2014 +1300

    docs: change default in pid directory to use an entity
    
    Change-Id: I4e4d5c7e1a82aa0788423efe2cba2e828f127346
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 53522ac9946c78b00d4beb081777c80190b2f100
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Jan 14 13:07:52 2014 +1300

    docs: Allow smb.conf.5 to still be generated outside the waf build
    
    This will be needed once we start to use the XML entities for the
    configure-dependent paths.
    
    Change-Id: I2b64f02bb365cc099178b63b2b24bdb239dbb7c1
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 57ba012c10fb21f261a3ab9136be05a694278df9
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Thu Jan 9 12:01:18 2014 +1300

    docs: define and include entities for the docs
    
    This allows for dynamic default settings to be generated.
    
    Change-Id: If8b93d233fb941bc7e3073ccf4b5ec0b0a231bd9
    Pair-programmed-with: Andrew Bartlett <abartlet at samba.org>
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

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

Summary of changes:
 buildtools/wafsamba/wafsamba.py                    |    6 +-
 docs-xml/smbdotconf/domain/dnsupdatecommand.xml    |    2 +-
 docs-xml/smbdotconf/domain/spnupdatecommand.xml    |    2 +-
 docs-xml/smbdotconf/generate-file-list.sh          |   22 +++-
 docs-xml/smbdotconf/misc/cachedirectory.xml        |    2 +-
 docs-xml/smbdotconf/misc/lockdirectory.xml         |    2 +-
 docs-xml/smbdotconf/misc/ncalrpcdir.xml            |    2 +-
 docs-xml/smbdotconf/misc/piddirectory.xml          |    2 +-
 docs-xml/smbdotconf/misc/statedirectory.xml        |    2 +-
 docs-xml/smbdotconf/misc/usersharepath.xml         |    2 +-
 .../security/ntpsigndsocketdirectory.xml           |    2 +-
 docs-xml/smbdotconf/security/privatedir.xml        |    2 +-
 docs-xml/smbdotconf/security/sambakcccommand.xml   |    2 +-
 docs-xml/smbdotconf/security/smbpasswdfile.xml     |    2 +-
 .../winbind/winbinddprivilegedsocketdirectory.xml  |    2 +-
 .../smbdotconf/winbind/winbinddsocketdirectory.xml |    2 +-
 docs-xml/wscript_build                             |   30 +++-
 dynconfig/wscript                                  |   35 ++++-
 python/samba/tests/docs.py                         |  155 +++++++++++++++-----
 wscript_build                                      |   13 +-
 20 files changed, 210 insertions(+), 79 deletions(-)


Changeset truncated at 500 lines:

diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index caa6fb1..aeb9418 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -806,7 +806,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 +814,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/smbdotconf/domain/dnsupdatecommand.xml b/docs-xml/smbdotconf/domain/dnsupdatecommand.xml
index 08ff90a..0c7ed99 100644
--- a/docs-xml/smbdotconf/domain/dnsupdatecommand.xml
+++ b/docs-xml/smbdotconf/domain/dnsupdatecommand.xml
@@ -10,6 +10,6 @@
 	</para>
 </description>
 
-<value type="default">$prefix/sbin/samba_dnsupdate</value>
+<value type="default">&pathconfig.SCRIPTSBINDIR;/samba_dnsupdate</value>
 <value type="example">/usr/local/sbin/dnsupdate</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/domain/spnupdatecommand.xml b/docs-xml/smbdotconf/domain/spnupdatecommand.xml
index f63be84..0d3a6f6 100644
--- a/docs-xml/smbdotconf/domain/spnupdatecommand.xml
+++ b/docs-xml/smbdotconf/domain/spnupdatecommand.xml
@@ -9,6 +9,6 @@
 	</para>
 </description>
 
-<value type="default">$prefix/sbin/samba_spnupdate</value>
+<value type="default">&pathconfig.SCRIPTSBINDIR;/samba_spnupdate</value>
 <value type="example">/usr/local/sbin/spnupdate</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/generate-file-list.sh b/docs-xml/smbdotconf/generate-file-list.sh
index 68b2abe..a03ed11 100755
--- a/docs-xml/smbdotconf/generate-file-list.sh
+++ b/docs-xml/smbdotconf/generate-file-list.sh
@@ -1,4 +1,20 @@
 #!/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.SMB_PASSWD_FILE     '\${prefix}/private/smbpasswd'>
+<!ENTITY pathconfig.WINBINDD_SOCKET_DIR '\${prefix}/var/run/ncalrpc'>
+]>"
+
 DIR=.
 if [ "x$1" != "x" ]
 then
@@ -8,12 +24,12 @@ fi
 OLD=`pwd`
 cd $DIR
 
-echo "<section xmlns:xi=\"http://www.w3.org/2003/XInclude\">"
+echo "<section>"
 for I in `find . -mindepth 2 -type f -name '*.xml' | sort -t/ -k3 | xargs`
 do 
-	echo "<xi:include href='$I' parse='xml'/>"
+	cat $I
 done
-                
 echo "</section>"
 
+
 cd $OLD
diff --git a/docs-xml/smbdotconf/misc/cachedirectory.xml b/docs-xml/smbdotconf/misc/cachedirectory.xml
index 1cb8124..b3b0d3e 100644
--- a/docs-xml/smbdotconf/misc/cachedirectory.xml
+++ b/docs-xml/smbdotconf/misc/cachedirectory.xml
@@ -17,6 +17,6 @@
 	</para>
 </description>
 
-<value type="default">${prefix}/var/cache</value>
+<value type="default">&pathconfig.CACHEDIR;</value>
 <value type="example">/var/run/samba/locks/cache</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/misc/lockdirectory.xml b/docs-xml/smbdotconf/misc/lockdirectory.xml
index cbe10d5..51c8003 100644
--- a/docs-xml/smbdotconf/misc/lockdirectory.xml
+++ b/docs-xml/smbdotconf/misc/lockdirectory.xml
@@ -16,6 +16,6 @@
 	</para>
 </description>
 
-<value type="default">${prefix}/var/locks</value>
+<value type="default">&pathconfig.LOCKDIR;</value>
 <value type="example">/var/run/samba/locks</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/misc/ncalrpcdir.xml b/docs-xml/smbdotconf/misc/ncalrpcdir.xml
index 01b5b5c..5085050 100644
--- a/docs-xml/smbdotconf/misc/ncalrpcdir.xml
+++ b/docs-xml/smbdotconf/misc/ncalrpcdir.xml
@@ -8,6 +8,6 @@
 	<para>This will allow Samba and other unix processes to interact over DCE/RPC without using TCP/IP. Additionally a sub-directory 'np' has restricted permissions, and allows a trusted communication channel between Samba processes</para>
 </description>
 
-<value type="default">${prefix}/var/ncalrpc</value>
+<value type="default">&pathconfig.NCALRPCDIR;</value>
 <value type="example">/var/run/samba/ncalrpc</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/misc/piddirectory.xml b/docs-xml/smbdotconf/misc/piddirectory.xml
index 35e0223..2ad25e0 100644
--- a/docs-xml/smbdotconf/misc/piddirectory.xml
+++ b/docs-xml/smbdotconf/misc/piddirectory.xml
@@ -9,6 +9,6 @@
 	</para>
 </description>
 
-<value type="default">${prefix}/var/locks</value>
+<value type="default">&pathconfig.PIDDIR;</value>
 <value type="example">/var/run/</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/misc/statedirectory.xml b/docs-xml/smbdotconf/misc/statedirectory.xml
index f8cfcdf..418fb61 100644
--- a/docs-xml/smbdotconf/misc/statedirectory.xml
+++ b/docs-xml/smbdotconf/misc/statedirectory.xml
@@ -17,6 +17,6 @@
 	</para>
 </description>
 
-<value type="default">${prefix}/var/locks</value>
+<value type="default">&pathconfig.STATEDIR;</value>
 <value type="example">/var/run/samba/locks/state</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/misc/usersharepath.xml b/docs-xml/smbdotconf/misc/usersharepath.xml
index cad64be..a095f17 100644
--- a/docs-xml/smbdotconf/misc/usersharepath.xml
+++ b/docs-xml/smbdotconf/misc/usersharepath.xml
@@ -28,5 +28,5 @@
 	</para>
 
 </description>
-<value type="default">STATEDIR/usershare</value> with the compile time value of STATEDIR.
+<value type="default">&pathconfig.STATEDIR;/usershares</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/security/ntpsigndsocketdirectory.xml b/docs-xml/smbdotconf/security/ntpsigndsocketdirectory.xml
index 718626d..bc04efd 100644
--- a/docs-xml/smbdotconf/security/ntpsigndsocketdirectory.xml
+++ b/docs-xml/smbdotconf/security/ntpsigndsocketdirectory.xml
@@ -13,5 +13,5 @@
 		directive in <filename>ntp.conf</filename>.</para>
 </description>
 
-<value type="default">$prefix/run/samba/ntp_signd</value>
+<value type="default">&pathconfig.NTP_SIGND_SOCKET_DIR;</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/security/privatedir.xml b/docs-xml/smbdotconf/security/privatedir.xml
index 2f4b576..cd7c28a 100644
--- a/docs-xml/smbdotconf/security/privatedir.xml
+++ b/docs-xml/smbdotconf/security/privatedir.xml
@@ -11,5 +11,5 @@
 </para>
 </description>
 
-<value type="default">${prefix}/private</value>
+<value type="default">&pathconfig.PRIVATE_DIR;</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/security/sambakcccommand.xml b/docs-xml/smbdotconf/security/sambakcccommand.xml
index 9621792..2e8b28e 100644
--- a/docs-xml/smbdotconf/security/sambakcccommand.xml
+++ b/docs-xml/smbdotconf/security/sambakcccommand.xml
@@ -14,6 +14,6 @@
 	</para>
 </description>
 
-<value type="default">$prefix/sbin/samba_kcc</value>
+<value type="default">&pathconfig.SCRIPTSBINDIR;/samba_kcc</value>
 <value type="example">/usr/local/bin/kcc</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/security/smbpasswdfile.xml b/docs-xml/smbdotconf/security/smbpasswdfile.xml
index 209fa74..e751885 100644
--- a/docs-xml/smbdotconf/security/smbpasswdfile.xml
+++ b/docs-xml/smbdotconf/security/smbpasswdfile.xml
@@ -15,5 +15,5 @@ smb passwd file = /etc/samba/smbpasswd
     </para>
 </description>
 
-<value type="default">${prefix}/private/smbpasswd</value>
+<value type="default">&pathconfig.SMB_PASSWD_FILE;</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml b/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml
index 94769a1..200e0ae 100644
--- a/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml
+++ b/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml
@@ -10,5 +10,5 @@
 
 <related>winbindd socket directory</related>
 
-<value type="default">$prefix/lib/winbindd_privileged</value>
+<value type="default">&pathconfig.WINBINDD_PRIVILEGED_SOCKET_DIR;</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml b/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml
index 5fd32ff..d26ad15 100644
--- a/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml
+++ b/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml
@@ -14,5 +14,5 @@
 
 <related>winbindd privileged socket directory</related>
 
-<value type="default">$prefix/run/samba/winbindd</value>
+<value type="default">&pathconfig.WINBINDD_SOCKET_DIR;</value>
 </samba:parameter>
diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build
index d1b3ec5..d59d4b5 100644
--- a/docs-xml/wscript_build
+++ b/docs-xml/wscript_build
@@ -98,22 +98,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/2001/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='" + 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,
+                    always=True)
+
 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..a7cfa0a 100755
--- a/dynconfig/wscript
+++ b/dynconfig/wscript
@@ -345,29 +345,48 @@ def configure(conf):
         conf.start_msg("Dynconfig[%s]: " % (varname))
         conf.end_msg("'%s'" % (value), 'GREEN')
 
-def dynconfig_cflags(bld, list=None):
-    '''work out the extra CFLAGS for dynconfig.c'''
-    cflags = []
-    # override some paths when running from the build directory
+def get_override(bld):
     override = { 'MODULESDIR'    : 'bin/modules',
                  'PYTHONDIR'     : 'bin/python',
                  'PYTHONARCHDIR' : 'bin/python',
                  'BINDIR'        : 'bin',
                  'SBINDIR'       : 'bin',
-                 'CODEPAGEDIR'   : os.path.join(bld.env.srcdir, 'codepages'),
-                 'SCRIPTSBINDIR' : os.path.join(bld.env.srcdir, 'source4/scripting/bin'),
-                 'SETUPDIR'      : os.path.join(bld.env.srcdir, 'source4/setup') }
+                 'CODEPAGEDIR'   : 'codepages',
+                 'SCRIPTSBINDIR' : 'source4/scripting/bin',
+                 'SETUPDIR'      : 'source4/setup'
+                 }
+    return override
+
+def dynconfig_cflags(bld, list=None):
+    '''work out the extra CFLAGS for dynconfig.c'''
+    cflags = []
     for varname in dynconfig.keys():
         if list and not varname in list:
             continue
         value = bld.env[varname]
         if not Options.is_install:
+            override = get_override(bld)
             if varname in override:
-                value = os.path.join(os.getcwd(), override[varname])
+                value = os.path.join(bld.env.srcdir, override[varname])
         cflags.append('-D%s="%s"' % (varname, value))
     return cflags
 Build.BuildContext.dynconfig_cflags = dynconfig_cflags
 
+def pathconfig_entities(bld, list=None):
+    '''work out the extra entities for the docs'''
+    entities = []
+    for varname in dynconfig.keys():
+        if list and not varname in list:
+            continue
+        value = bld.env[varname]
+        if not Options.is_install:
+            override = get_override(bld)
+            if varname in override:
+                value = os.path.join(bld.env.srcdir, override[varname])
+        entities.append("<!ENTITY pathconfig.%s   '%s'>" % (varname, value))
+    return entities
+Build.BuildContext.pathconfig_entities = pathconfig_entities
+
 def build(bld):
     cflags = bld.dynconfig_cflags()
     version_header = 'version.h'
diff --git a/python/samba/tests/docs.py b/python/samba/tests/docs.py
index c1b3716..afa9fdd 100644
--- a/python/samba/tests/docs.py
+++ b/python/samba/tests/docs.py
@@ -21,54 +21,42 @@
 
 import samba
 import samba.tests
-from samba.tests import TestSkipped
+from samba.tests import TestSkipped, TestCaseInTempDir
 
 import errno
 import os
 import re
 import subprocess
+import xml.etree.ElementTree as ET
 
-
-class TestCase(samba.tests.TestCase):
+class TestCase(samba.tests.TestCaseInTempDir):
 
     def _format_message(self, parameters, message):
         parameters = list(parameters)
         parameters.sort()
         return message + '\n\n    %s' % ('\n    '.join(parameters))
 
-
-class NoXsltProc(Exception):
-
-    def __init__(self):
-        Exception.__init__(self, "'xsltproc' is not installed")
-
-
 def get_documented_parameters(sourcedir):
     path = os.path.join(sourcedir, "bin", "default", "docs-xml", "smbdotconf")
     if not os.path.exists(os.path.join(path, "parameters.all.xml")):
         raise Exception("Unable to find parameters.all.xml")
     try:
-        p = subprocess.Popen(
-            ["xsltproc", "--xinclude", "--param", "smb.context", "ALL", os.path.join(sourcedir, "docs-xml", "smbdotconf", "generate-context.xsl"), "parameters.all.xml"],
-            stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
-            cwd=path)
-    except OSError, e:
-        if e.errno == errno.ENOENT:
-            raise NoXsltProc()
-        raise
-    out, err = p.communicate()
-    assert p.returncode == 0, "returncode was %r" % p.returncode
-    for l in out.splitlines():
-        m = re.match('<samba:parameter .*?name="([^"]*?)"', l)
-        if "removed=\"1\"" in l:
-            continue
-        if m:
-            name = m.group(1)
-            yield name
-        m = re.match('.*<synonym>(.*)</synonym>.*', l)
-        if m:
-            name = m.group(1)
-            yield name
+        p = open(os.path.join(path, "parameters.all.xml"), 'r')
+    except IOError, e:
+        raise Exception("Error opening parameters file")
+    out = p.read()
+
+    root = ET.fromstring(out)
+    for parameter in root:
+        name = parameter.attrib.get('name')
+        if parameter.attrib.get('removed') == "1":
+           continue
+        yield name
+        syn = parameter.findall('synonym')
+        if syn is not None:
+            for sy in syn:
+                yield sy.text
+    p.close()
 
 
 def get_implementation_parameters(sourcedir):
@@ -96,15 +84,69 @@ def get_implementation_parameters(sourcedir):
     finally:
         f.close()
 
+def get_default_triples(sourcedir):
+    path = os.path.join(sourcedir, "bin", "default", "docs-xml", "smbdotconf")
+    if not os.path.exists(os.path.join(path, "parameters.all.xml")):
+        raise Exception("Unable to find parameters.all.xml")
+    try:
+        p = open(os.path.join(path, "parameters.all.xml"), 'r')
+    except IOError, e:
+        raise Exception("Error opening parameters file")
+    out = p.read()
+
+    root = ET.fromstring(out)
+    for parameter in root:
+        name = parameter.attrib.get("name")
+        values = parameter.findall("value")
+        defaults = []
+        for value in values:
+            if value.attrib.get("type") == "default":
+                defaults.append(value)
+        if len(defaults) == 0:
+            continue
+        elif len(defaults) > 1:
+            raise Exception("More than one default found for parameter %s" % name)
+        default_text = defaults[0].text
+        if default_text is None:
+            default_text = ""
+        context = parameter.attrib.get("context")
+        yield name, default_text, context
+    p.close()
 
 class SmbDotConfTests(TestCase):
 
+    # defines the cases where the defaults may differ from the documentation
+    special_cases = set(['log level', 'path', 'ldapsam:trusted', 'spoolss: architecture',
+                         'share:fake_fscaps', 'ldapsam:editposix', 'rpc_daemon:DAEMON',
+                         'rpc_server:SERVER', 'panic action', 'homedir map', 'NIS homedir',
+                         'server string', 'netbios name', 'socket options', 'use mmap',
+                         'ctdbd socket', 'printing', 'printcap name', 'queueresume command',
+                         'queuepause command','lpresume command', 'lppause command',
+                         'lprm command', 'lpq command', 'print command', 'template homedir'])
+
+    def setUp(self):
+        super(SmbDotConfTests, self).setUp()
+        # create a minimal smb.conf file for testparm
+        self.smbconf = os.path.join(self.tempdir, "paramtestsmb.conf")
+        f = open(self.smbconf, 'w')
+        try:
+            f.write("""
+[test]
+   path = /
+""")
+        finally:
+            f.close()
+
+    def tearDown(self):
+        super(SmbDotConfTests, self).tearDown()
+        os.unlink(self.smbconf)
+
     def test_unknown(self):
-        topdir = samba.source_tree_topdir()
+        topdir = os.path.abspath(samba.source_tree_topdir())
         try:
             documented = set(get_documented_parameters(topdir))
-        except NoXsltProc:
-            raise TestSkipped("'xsltproc' is missing, unable to load parameters")
+        except e:
+            self.fail("Unable to load parameters")
         parameters = set(get_implementation_parameters(topdir))
         # Filter out parametric options, since we can't find them in the parm
         # table
@@ -115,13 +157,52 @@ class SmbDotConfTests(TestCase):
                 "Parameters that are documented but not in the implementation:"))
 
     def test_undocumented(self):
-        topdir = samba.source_tree_topdir()
+        topdir = os.path.abspath(samba.source_tree_topdir())
         try:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list