From 1ab0a06beef34c356e24919b30dba8f15cbe828d Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Sat, 5 Apr 2014 22:05:31 +0300 Subject: [PATCH] Re: [PATCH 5/7] doc: Allow rst2man.py as an alternative to rst2man --- a3/c2510b8b446b24fb8f94ba34876871df6cbed1 | 189 ++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 a3/c2510b8b446b24fb8f94ba34876871df6cbed1 diff --git a/a3/c2510b8b446b24fb8f94ba34876871df6cbed1 b/a3/c2510b8b446b24fb8f94ba34876871df6cbed1 new file mode 100644 index 000000000..6bbdf1557 --- /dev/null +++ b/a3/c2510b8b446b24fb8f94ba34876871df6cbed1 @@ -0,0 +1,189 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 1F22A431FB6 + for ; Sat, 5 Apr 2014 12:05:48 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 0 +X-Spam-Level: +X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] + autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id zG8OQGF4RQ3n for ; + Sat, 5 Apr 2014 12:05:40 -0700 (PDT) +Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) + by olra.theworths.org (Postfix) with ESMTP id AEC71431FAF + for ; Sat, 5 Apr 2014 12:05:39 -0700 (PDT) +Received: from guru.guru-group.fi (localhost [IPv6:::1]) + by guru.guru-group.fi (Postfix) with ESMTP id D5364100051; + Sat, 5 Apr 2014 22:05:31 +0300 (EEST) +From: Tomi Ollila +To: "W. Trevor King" , notmuch@notmuchmail.org +Subject: Re: [PATCH 5/7] doc: Allow rst2man.py as an alternative to rst2man +In-Reply-To: + +References: + +User-Agent: Notmuch/0.17+174~gef82849 (http://notmuchmail.org) Emacs/24.3.1 + (x86_64-unknown-linux-gnu) +X-Face: HhBM'cA~ +MIME-Version: 1.0 +Content-Type: text/plain +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sat, 05 Apr 2014 19:05:48 -0000 + +On Sat, Apr 05 2014, "W. Trevor King" wrote: + +> Gentoo's dev-python/docutils-0.10 installs Docutils scripts with a +> *.py extension, so I have /usr/bin/rst2man.py and no rst2man script. +> This patch supports users with both types of systems by checking for +> rst2man, falling back on rst2man.py, and giving up only if neither is +> found. Users can also set the new RST2MAN path variable explicitly +> when they call Make: +> +> make RST2MAN=/my/custom/rst_to_man_converter build-man +> +> I use POSIX's 'command -v' [1] to find the path to rst2man or +> rst2man.py, and save that as RST2MAN in Makefile.config. We can use a +> non-empty RST2MAN to check for the availability of an rst2man program, +> so there's no need for a separate HAVE_RST2MAN. Then pass the +> configured RST2MAN path through to prerst2man.py to use in its system +> call. +> +> [1]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html + +This series looks good to me. + +Except the reference to _POSIX_ page. One knows how consistent these +specifications are; alternative: + +http://pubs.opengroup.org/onlinepubs/009695399/utilities/command.html + +mentions additionally that -v flag +"(On systems supporting the User Portability Utilities option.)" + +Also, we don't give such a treatment to other command either; I'd rather +see RST2MAN=rst2man, RST2MAN=rst2man.py *and* RST2MAN= lines used +instead -- the last to set RST2MAN to empty string instead of being unset. + +Tomi + + +> --- +> configure | 12 +++++++----- +> doc/Makefile.local | 6 +++--- +> doc/prerst2man.py | 9 +++++---- +> 3 files changed, 15 insertions(+), 12 deletions(-) +> +> diff --git a/configure b/configure +> index 1d430b9..81c286b 100755 +> --- a/configure +> +++ b/configure +> @@ -400,7 +400,6 @@ printf "Checking if sphinx is available and supports nroff output... " +> if hash sphinx-build > /dev/null 2>&1 && python -m sphinx.writers.manpage > /dev/null 2>&1 ; then +> printf "Yes.\n" +> have_sphinx=1 +> - have_rst2man=0 +> else +> printf "No (falling back to rst2man).\n" +> have_sphinx=0 +> @@ -408,10 +407,12 @@ else +> printf "Checking if rst2man is available... " +> if rst2man -V > /dev/null 2>&1; then +> printf "Yes.\n" +> - have_rst2man=1 +> + RST2MAN=$(command -v rst2man) +> + elif rst2man.py -V > /dev/null 2>&1; then +> + printf "Yes.\n" +> + RST2MAN=$(command -v rst2man.py) +> else +> printf "No (so will not install man pages).\n" +> - have_rst2man=0 +> fi +> fi +> +> @@ -788,8 +789,9 @@ HAVE_EMACS = ${have_emacs} +> # Whether there's a sphinx-build binary available for building documentation +> HAVE_SPHINX=${have_sphinx} +> +> -# Whether there's a rst2man binary available for building documentation +> -HAVE_RST2MAN=${have_rst2man} +> +# The path to the rst2man program for building documentation. Set to +> +# an empty string if no such program is available. +> +RST2MAN=${RST2MAN} +> +> # The directory to which desktop files should be installed +> desktop_dir = \$(prefix)/share/applications +> diff --git a/doc/Makefile.local b/doc/Makefile.local +> index 0980c71..e08fc99 100644 +> --- a/doc/Makefile.local +> +++ b/doc/Makefile.local +> @@ -42,8 +42,8 @@ ifeq ($(HAVE_SPHINX),1) +> mkdir -p $(DOCBUILDDIR)/man/man$${section}; \ +> mv $(DOCBUILDDIR)/man/*.$${section} $(DOCBUILDDIR)/man/man$${section}; \ +> done +> -else ifeq ($(HAVE_RST2MAN),1) +> - $(prerst2man) $(srcdir)/doc $(DOCBUILDDIR)/man +> +else ifdef RST2MAN +> + $(prerst2man) "$(RST2MAN)" $(srcdir)/doc $(DOCBUILDDIR)/man +> else +> @echo "Fatal: build dependency fail." +> @false +> @@ -51,7 +51,7 @@ endif +> +> # Do not try to build or install man pages if a man page converter is +> # not available. +> -ifeq ($(HAVE_SPHINX)$(HAVE_RST2MAN),00) +> +ifeq ($(HAVE_SPHINX)$(RST2MAN),0) +> build-man: +> install-man: +> @echo "No sphinx or rst2man, will not install man pages." +> diff --git a/doc/prerst2man.py b/doc/prerst2man.py +> index 437dea9..81ce817 100644 +> --- a/doc/prerst2man.py +> +++ b/doc/prerst2man.py +> @@ -4,8 +4,9 @@ from os.path import dirname, isdir +> from os import makedirs, system +> import re +> +> -sourcedir = argv[1] +> -outdir = argv[2] +> +rst2man = argv[1] +> +sourcedir = argv[2] +> +outdir = argv[3] +> +> if not isdir(outdir): +> makedirs(outdir, 0o755) +> @@ -59,5 +60,5 @@ for page in man_pages: +> outfile.write("".join(lines)) +> outfile.close() +> +> - system('set -x; rst2man {0} {1}/{2}.{3}' +> - .format(filename, outdir, page[0], page[4])) +> + system('set -x; {0} {1} {2}/{3}.{4}' +> + .format(rst2man, filename, outdir, page[0], page[4])) +> -- +> 1.9.1.353.gc66d89d +> +> _______________________________________________ +> notmuch mailing list +> notmuch@notmuchmail.org +> http://notmuchmail.org/mailman/listinfo/notmuch -- 2.26.2