diff options
-rw-r--r-- | buildtools/wafsamba/wafsamba.py | 6 | ||||
-rw-r--r-- | docs-xml/build/catalog.xml.in | 7 | ||||
-rw-r--r-- | docs-xml/manpages/smb.conf.5.xml | 5 | ||||
-rw-r--r-- | docs-xml/wscript_build | 25 | ||||
-rwxr-xr-x | wscript_build | 6 |
5 files changed, 40 insertions, 9 deletions
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py index 1f71bd39f34..50bd4fa6e2c 100644 --- a/buildtools/wafsamba/wafsamba.py +++ b/buildtools/wafsamba/wafsamba.py @@ -789,14 +789,16 @@ def SAMBAMANPAGES(bld, manpages): '''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' - os.environ["XML_CATALOG_FILES"] = 'file:///etc/xml/catalog file://' + bld.srcnode.abspath() + '/bin/default/docs-xml/build/catalog.xml' + bld.env.SAMBA_CATALOGS = 'file:///etc/xml/catalog file://' + bld.srcnode.abspath() + '/bin/default/docs-xml/build/catalog.xml' for m in manpages.split(): source = m + '.xml' bld.SAMBA_GENERATOR(m, source=source, target=m, group='final', - rule='${XSLTPROC} --xinclude --stringparam noreference 0 -o ${TGT}.xml --nonet ${SAMBA_EXPAND_XSL} ${SRC} && ${XSLTPROC} --nonet -o ${TGT} ${SAMBA_MAN_XSL} ${TGT}.xml' + rule='''export XML_CATALOG_FILES="${SAMBA_CATALOGS}" + ${XSLTPROC} --xinclude --stringparam noreference 0 -o ${TGT}.xml --nonet ${SAMBA_EXPAND_XSL} ${SRC} + ${XSLTPROC} --nonet -o ${TGT} ${SAMBA_MAN_XSL} ${TGT}.xml''' ) bld.INSTALL_FILES('${MANDIR}/man%s' % m[-1], m, flat=True) Build.BuildContext.SAMBAMANPAGES = SAMBAMANPAGES diff --git a/docs-xml/build/catalog.xml.in b/docs-xml/build/catalog.xml.in index 4b99cf50d4d..56d13a6cd39 100644 --- a/docs-xml/build/catalog.xml.in +++ b/docs-xml/build/catalog.xml.in @@ -6,9 +6,12 @@ <rewriteURI uriStartString="http://www.samba.org/samba/DTD/" - rewritePrefix="file://@abs_top_builddir@/build/DTD/"/> + rewritePrefix="file://@abs_top_srcdir@/build/DTD/"/> <rewriteURI uriStartString="http://www.gnu.org/licenses/" - rewritePrefix="file://@abs_top_builddir@/Samba3-ByExample/"/> + rewritePrefix="file://@abs_top_srcdir@/Samba3-ByExample/"/> + <rewriteURI + uriStartString="http://www.samba.org/samba/smbdotconf/" + rewritePrefix="file://@abs_top_builddir@/smbdotconf/"/> </catalog> diff --git a/docs-xml/manpages/smb.conf.5.xml b/docs-xml/manpages/smb.conf.5.xml index e09eee0d55f..a73382f54a6 100644 --- a/docs-xml/manpages/smb.conf.5.xml +++ b/docs-xml/manpages/smb.conf.5.xml @@ -757,7 +757,10 @@ chmod 1770 /usr/local/samba/lib/usershares <title>EXPLANATION OF EACH PARAMETER</title> <samba:parameterlist> - <xi:include href="../smbdotconf/parameters.all.xml" parse="xml"/> + <!-- The URI below is resolved to local generated version of parameters.all.xml //--> + <!-- WAF build places it in bin/default/docs-xml/smbdotconf/parameters.all.xml //--> + <!-- and we redirect there via use of XML_CATALOG_FILES, see docs-xml/build/catalog.xml.in //--> + <xi:include href="http://www.samba.org/samba/smbdotconf/parameters.all.xml" parse="xml"/> </samba:parameterlist> </refsect1> diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build index 011854b2e61..c5d5839d96a 100644 --- a/docs-xml/wscript_build +++ b/docs-xml/wscript_build @@ -1,5 +1,5 @@ #!/usr/bin/env python - +from samba_utils import save_file manpages=''' manpages/eventlogadm.8 manpages/findsmb.1 @@ -23,7 +23,6 @@ manpages=''' manpages/rpcclient.1 manpages/samba.7 manpages/sharesec.1 - manpages/smb.conf.5 manpages/smbcacls.1 manpages/smbclient.1 manpages/smbcontrol.1 @@ -87,8 +86,30 @@ pam_winbind_manpages = ''' krb5_locator_manpages = 'manpages/winbind_krb5_locator.7' +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' + for article in articles: + t += "<xi:include href='file://" + article.abspath(task.env) + "' parse='xml'/>\n" + t += "</section>\n" + save_file(parameter_all, t , create_dir=True) + return 0 + +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) + if ('XSLTPROC_MANPAGES' in bld.env and bld.env['XSLTPROC_MANPAGES']): + SMBDOTCONF_MANPAGE(bld, 'manpages/smb.conf.5') bld.SAMBAMANPAGES(manpages) if bld.CONFIG_SET('WITH_PAM_MODULES') and bld.CONFIG_SET('HAVE_PAM_START'): diff --git a/wscript_build b/wscript_build index 5434056fe1a..0098036531a 100755 --- a/wscript_build +++ b/wscript_build @@ -144,7 +144,9 @@ bld.RECURSE('testsuite/headers') bld.SYMBOL_CHECK() bld.DUP_SYMBOL_CHECK() -bld.env.ABS_TOP_BUILDDIR = bld.srcnode.abspath() + '/docs-xml' +bld.env.ABS_TOP_SRCDIR = bld.srcnode.abspath() + '/docs-xml' +bld.env.ABS_TOP_BUILDDIR = bld.srcnode.abspath() + '/bin/default/docs-xml' bld.CONFIGURE_FILE('docs-xml/build/catalog.xml', - ABS_TOP_BUILDDIR = bld.env.ABS_TOP_BUILDDIR) + ABS_TOP_BUILDDIR = bld.env.ABS_TOP_BUILDDIR, + ABS_TOP_SRCDIR=bld.env.ABS_TOP_SRCDIR) bld.RECURSE('docs-xml') |