openafs/doc
Michael Meffie c66971ce42 man-pages: Generate man pages with Pod::Man
The generate-man script is currently a shell script which invokes the
pod2man command for each pod file to be converted into a man page. This
makes the pod conversion slow, since we load Perl and create a Pod::Man
parser for each pod file.  In addition to being slow, generate-man
leaves behind a partially created man page when an error is
encountered during the pod2man execution.

To fix these issues, rewrite generate-man as a Perl script which uses
the Pod::Man module directly.  The Pod::Man parser is created only once
and is reused to generate each man page.  The Pod::Man module supports
this type of batch mode operation by clearing its internal state after
each man page is created.

We have some special processing to determine the man page names for the
pages in section 3, so create a sub class to handle the pod filename to
man page title determination, and add a helper function to support
processing more than one section with a single parser instance.

Be sure to cleanup any partially created man pages if an error is
encountered during the pod to man conversion.  This will let us use this
script in the Makefiles in the future.

Change-Id: I8d3cce1edc62c490e93d05f72609dfde4b599a1b
Reviewed-on: https://gerrit.openafs.org/15774
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
2024-07-09 12:25:55 -04:00
..
doxygen JAVA: remove unsupported JAVA component 2024-06-13 12:18:15 -04:00
man-pages man-pages: Generate man pages with Pod::Man 2024-07-09 12:25:55 -04:00
pdf initial-pdf-with-embedded-cmr-fonts-20010606 2001-06-06 18:58:13 +00:00
protocol Remove almost all bcopy/bzero/bcmp calls 2024-06-28 14:23:42 -04:00
txt prdb.txt: correct fixed header length 2021-10-28 00:56:26 -04:00
xml doc: Remove stray sect2 end tag 2022-08-23 01:06:37 -04:00
LICENSE Rework the Kerberos Autoconf probes 2010-06-15 16:30:04 -07:00
README doc: relocate notes from arch to txt 2017-08-03 20:44:28 -04:00

What's in the "doc" subdirectory

** doc/man-pages
pod sources for man pages (converted from original IBM html source).

** doc/xml
xml sources for manuals (converted from original IBM html source).
Note: The doc/xml/AdminRef uses doc/xml/AdminRef/pod2refentry to convert the
pod man pages to xml for printing.  pod goes directly to html just fine.

** doc/pdf
Old Transarc (and possibly pre-Transarc) protocol and API documentation for
which we have no other source.

** doc/txt
Technical notes, Windows notes, and examples.

** doc/doxygen
Configuration files for the doxygen tool to generate documentation from
the annotated sources. See the 'dox' Makefile target in the top level
Makefile.