From eed0883378c859ee3b4e43832346e7666aaa4f40 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Sun, 6 Apr 2014 10:31:09 +1700 Subject: [PATCH] [PATCH 5/7] doc: Allow rst2man.py as an alternative to rst2man --- 83/01e79069ed0cf5ae7a5f8242a183b637554746 | 182 ++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 83/01e79069ed0cf5ae7a5f8242a183b637554746 diff --git a/83/01e79069ed0cf5ae7a5f8242a183b637554746 b/83/01e79069ed0cf5ae7a5f8242a183b637554746 new file mode 100644 index 000000000..da139954f --- /dev/null +++ b/83/01e79069ed0cf5ae7a5f8242a183b637554746 @@ -0,0 +1,182 @@ +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 82EB7431FAE + for ; Sat, 5 Apr 2014 10:31:43 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" +X-Spam-Flag: NO +X-Spam-Score: 0 +X-Spam-Level: +X-Spam-Status: No, score=0 tagged_above=-999 required=5 + tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001] + 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 CPkyIqB19YhS for ; + Sat, 5 Apr 2014 10:31:37 -0700 (PDT) +Received: from qmta15.westchester.pa.mail.comcast.net + (qmta15.westchester.pa.mail.comcast.net [76.96.59.228]) + by olra.theworths.org (Postfix) with ESMTP id 268F9431FC0 + for ; Sat, 5 Apr 2014 10:31:28 -0700 (PDT) +Received: from omta10.westchester.pa.mail.comcast.net ([76.96.62.28]) + by qmta15.westchester.pa.mail.comcast.net with comcast + id mFuc1n0020cZkys5FHXT2B; Sat, 05 Apr 2014 17:31:27 +0000 +Received: from odin.tremily.us ([24.18.63.50]) + by omta10.westchester.pa.mail.comcast.net with comcast + id mHXS1n00N152l3L3WHXTZw; Sat, 05 Apr 2014 17:31:27 +0000 +Received: from mjolnir.tremily.us (unknown [192.168.0.140]) + by odin.tremily.us (Postfix) with ESMTPS id 67EFB1103C1B; + Sat, 5 Apr 2014 10:31:26 -0700 (PDT) +Received: (nullmailer pid 16921 invoked by uid 1000); + Sat, 05 Apr 2014 17:31:15 -0000 +From: "W. Trevor King" +To: notmuch@notmuchmail.org +Subject: [PATCH 5/7] doc: Allow rst2man.py as an alternative to rst2man +Date: Sat, 5 Apr 2014 10:31:09 -0700 +Message-Id: + +X-Mailer: git-send-email 1.9.1.353.gc66d89d +In-Reply-To: +References: +In-Reply-To: +References: +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; + s=q20140121; t=1396719087; + bh=pA1t9ChZWMir5BXJfljawrzzmFw6nHncXINLUCSvNgQ=; + h=Received:Received:Received:Received:From:To:Subject:Date: + Message-Id; + b=hTcNmrNp6jktDN9LsPcPm93PaD87H2X+YtHXkCXDIo6uIy1JsHFhZvteKKzX20e4y + 5I6z2K/xaBsCteQQIRwmLemXXMSsfdRKh8BjlUISNZAuy3opSVhXSck0AtNwRicRB5 + 3eLtbqeYmBIgrps6gDOkyvQ9d7316a3SC4HfnNf9B7Prw+2o2jUdbZ2yTPJ0UriXEK + yFWWs6oIjYB6TQo5/p3gKrE05Fs0pi0U+E6uJcI1L1/V83KXBu5Y9b/AmnW214twel + wiA3AEY48tY3Lu3mzaDuGbkLjfAa7qR9hQ8zz0pCc0nlWYMdAcF3lJwzA+Hocu6bgO + Zwhnl2T5CkLfg== +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 17:31:43 -0000 + +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 +--- + 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 + -- 2.26.2