[PATCH] doc: remove support for rst2man

David Bremner david at tethera.net
Sun Jan 18 08:55:10 PST 2015


It was becoming increasingly complicated to support rst2man, and there
were apparently not many people that relied on it.
---

Now's your chance to tell us how useful rst2man support is to you.

 INSTALL            |  7 ++----
 NEWS               |  6 +++++
 configure          | 20 +++--------------
 doc/INSTALL        | 13 -----------
 doc/Makefile.local |  7 ++----
 doc/prerst2man.py  | 64 ------------------------------------------------------
 6 files changed, 13 insertions(+), 104 deletions(-)
 delete mode 100644 doc/prerst2man.py

diff --git a/INSTALL b/INSTALL
index b543c50..eaccd93 100644
--- a/INSTALL
+++ b/INSTALL
@@ -75,14 +75,11 @@ Talloc, and zlib which are each described below:
 Building Documentation
 ----------------------
 
-By default the documentation for notmuch is built using sphinx.
+To build the documentation for notmuch you need at least version 1.0
+of sphinx (Jul. 2010).
 
 Sphinx is available from www.sphinx-doc.org.
 
-If you prefer, you can build the man pages using rst2man, from the
-python docutils package. See doc/INSTALL for details.
-
-
 Installing Dependencies from Packages
 -------------------------------------
 
diff --git a/NEWS b/NEWS
index abb5ad7..53e06aa 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,11 @@
 Notmuch 0.20 (UNRELEASED)
 
+Documentation
+-------------
+
+Support for using rst2man in place of sphinx to build the
+docmumentation has been removed.
+
 Contrib
 -------
 
diff --git a/configure b/configure
index 137acea..a6b49ae 100755
--- a/configure
+++ b/configure
@@ -447,19 +447,9 @@ 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"
+    printf "No (so will not install man pages).\n"
     have_sphinx=0
-
-    printf "Checking if rst2man is available... "
-    if rst2man -V > /dev/null 2>&1; then
-       printf "Yes.\n"
-       have_rst2man=1
-    else
-       printf "No (so will not install man pages).\n"
-       have_rst2man=0
-    fi
 fi
 
 libdir_in_ldconfig=0
@@ -848,9 +838,6 @@ 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}
-
 # Whether there's a doxygen binary available for building api documentation
 HAVE_DOXYGEN=${have_doxygen}
 
@@ -978,9 +965,8 @@ cat > sh.config <<EOF
 # Whether the Xapian version in use supports compaction
 NOTMUCH_HAVE_XAPIAN_COMPACT=${have_xapian_compact}
 
-# Whether there's either sphinx or rst2man available for building
-# documentation
-NOTMUCH_HAVE_MAN=$((have_sphinx || have_rst2man))
+# do we have man pages?
+NOTMUCH_HAVE_MAN=$((have_sphinx))
 
 # Name of python interpreter
 NOTMUCH_PYTHON=${python}
diff --git a/doc/INSTALL b/doc/INSTALL
index e37c2b9..0585476 100644
--- a/doc/INSTALL
+++ b/doc/INSTALL
@@ -1,9 +1,6 @@
 This file contains some more detailed information about building and
 installing the documentation.
 
-Building with sphinx.
----------------------
-
 - You need sphinx at least version 1.0.
 
 - You can build build and install man pages with 'make install-man'
@@ -12,13 +9,3 @@ Building with sphinx.
   (currently only the man pages) with
 
      'make install-{man|info|html|pdf}'
-
-Building the man pages
-----------------------
-
-- You can build the man pages with rst2man (from python-docutils) with
-  'make rst2man'.
-
-- Currently there is no support to automagically install the resulting
-  nroff files, but it should work to modify the target install-man
-  in doc/Makefile.local.
diff --git a/doc/Makefile.local b/doc/Makefile.local
index e7d0bac..0bdf2e1 100644
--- a/doc/Makefile.local
+++ b/doc/Makefile.local
@@ -7,7 +7,6 @@ SPHINXOPTS    := -q
 SPHINXBUILD   = sphinx-build
 DOCBUILDDIR      := $(dir)/_build
 
-prerst2man := python $(srcdir)/$(dir)/prerst2man.py
 mkdocdeps := python $(srcdir)/$(dir)/mkdocdeps.py
 
 # Internal variables.
@@ -50,8 +49,6 @@ 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
 	@echo "Fatal: build dependency fail."
 	@false
@@ -79,10 +76,10 @@ 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),0)
 build-man:
 install-man:
-	@echo "No sphinx or rst2man, will not install man pages."
+	@echo "No sphinx, will not install man pages."
 else
 build-man: ${MAN_GZIP_FILES}
 install-man: ${MAN_GZIP_FILES}
diff --git a/doc/prerst2man.py b/doc/prerst2man.py
deleted file mode 100644
index 968722a..0000000
--- a/doc/prerst2man.py
+++ /dev/null
@@ -1,64 +0,0 @@
-from sys import argv
-from datetime import date
-from os.path import dirname, isdir
-from os import makedirs, system
-import re
-
-sourcedir = argv[1]
-outdir = argv[2]
-
-if not isdir(outdir):
-    makedirs(outdir, 0o755)
-
-with open(sourcedir + "/conf.py") as cf:
-    exec(cf.read())
-
-
-def header(file, startdocname, command, description, authors, section):
-    file.write("""
-{0:s}
-{1:s}
-{2:s}
-
-:Date:   {3:s}
-:Version: {4:s}
-:Manual section: {5:d}
-:Manual group: {6:s}
-
-""".format(
-'-' * len(description),
-description,
-'-' * len(description),
-date.today().isoformat(), release, section, project))
-
-blankre = re.compile("^\s*$")
-for page in man_pages:
-    outdirname = outdir + '/' + dirname(page[0])
-    if not isdir(outdirname):
-        makedirs(outdirname, 0o755)
-    filename = outdir + '/' + page[0] + '.rst'
-    outfile = open(filename, 'w')
-    infile = open(sourcedir + '/' + page[0] + '.rst', 'r')
-
-    # this is a crude hack. We look for the first blank line, and
-    # insert the rst2man header there.
-    #
-    # XXX consider really parsing input
-
-    count = 0
-    lines = infile.readlines()
-    for line in lines:
-        outfile.write(line)
-        if (blankre.match(line)):
-            break
-        count = count + 1
-
-    del lines[0:count + 1]
-
-    header(outfile, *page)
-
-    outfile.write("".join(lines))
-    outfile.close()
-
-    system('set -x; rst2man {0} {1}/{2}.{3}'
-           .format(filename, outdir, page[0], page[4]))
-- 
2.1.4



More information about the notmuch mailing list