[PATCH] assorted fixes to man page generator

Alexander Bokovoy ab at samba.org
Thu Oct 12 12:36:49 UTC 2017

On pe, 06 loka 2017, Alexander Bokovoy via samba-technical wrote:
> Hi,
> Please review and push.
Andreas gave me RB+ and I tried to push the patches updated with bug
references twice today but the builds fail in unrelated places.

I'm attaching updated patches here for reference to re-push when
autobuild is stable.

/ Alexander Bokovoy
-------------- next part --------------
>From 182983b58db60457fb162eb6e2d2db31874c586c Mon Sep 17 00:00:00 2001
From: Alexander Bokovoy <ab at samba.org>
Date: Fri, 6 Oct 2017 22:49:11 +0300
Subject: [PATCH 1/2] smb.conf.5: sort parameters alphabetically

Content of each separate parameter description file is added
into a parameters.all.xml file before compiling smb.conf.5.

The issue is that POSIX file systems generally don't give any
promises over how glob-produced files are sorted. Thus, we need to sort
them in a predictable way.

This patch adds sorting based on a file name as a string. Since all
parameter files named after the parameter itself (plus .xml), we can
use file name sorting.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13081

Signed-off-by: Alexander Bokovoy <ab at samba.org>
Reviewed-By: Andreas Schneider <asn at samba.org>
 docs-xml/wscript_build | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build
index e329ad40295..5670572167f 100644
--- a/docs-xml/wscript_build
+++ b/docs-xml/wscript_build
@@ -1,5 +1,6 @@
 #!/usr/bin/env python
 from samba_utils import save_file
+import os
@@ -131,7 +132,13 @@ def smbdotconf_generate_parameter_list(task):
     save_file(parameter_all, t , create_dir=True)
     return 0
-articles = bld.path.ant_glob("smbdotconf/**/*.xml", flat=True)
+# Since nothing really forces sorting in glob, we have to sort by file name
+# POSIX file systems aren't required to return sorted content but we want
+# smb.conf parameters to be sorted alphabetically
+sources = bld.path.ant_glob("smbdotconf/**/*.xml", flat=False)
+articles = " ".join(sorted([x.relpath_gen(bld.path) for x in sources],
+                           key=lambda m: m.split(os.sep)[-1]))
 parameter_all = 'smbdotconf/parameters.all.xml'

>From bc9d5fd52625f8b04f9b0c293be70fd9b2653048 Mon Sep 17 00:00:00 2001
From: Alexander Bokovoy <ab at samba.org>
Date: Fri, 6 Oct 2017 22:52:36 +0300
Subject: [PATCH 2/2] man pages: properly ident lists

It took me some time (original bug was filed in 2013!) but now
lists in smb.conf.5 are properly idented.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=9613

Signed-Off-By: Alexander Bokovoy <ab at samba.org>
Reviewed-By: Andreas Schneider <asn at samba.org>
 docs-xml/xslt/man.xsl | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docs-xml/xslt/man.xsl b/docs-xml/xslt/man.xsl
index d9cc1def72c..e252b56d5e5 100644
--- a/docs-xml/xslt/man.xsl
+++ b/docs-xml/xslt/man.xsl
@@ -43,6 +43,7 @@
   <!-- * content (if any) before getting the list items -->
     select="*[not(self::listitem) and not(self::title)]"/>
+  <xsl:text>
   <xsl:apply-templates select="listitem"/>
   <xsl:if test="(parent::para or parent::listitem) or following-sibling::node()">

More information about the samba-technical mailing list