[OpenAFS-Doc] Re: [OpenAFS-devel] The OpenAFS man page project

Jeffrey Hutzelman jhutz@cmu.edu
Fri, 09 Dec 2005 21:58:58 -0500


Without having looked at the source Russ committed...

On Friday, December 09, 2005 03:28:43 PM -0800 Russ Allbery 
<rra@stanford.edu> wrote:



> The POD source is converted to formatted man pages as part of running
> regen.sh so that consumers of release tarballs won't have to have pod2man
> available to get man pages.

OK, but since man pages are not an essential operational part of the 
system, people checking things out of CVS should _also_ not be required to 
have pod2man available in order to build the software.  I would suggest 
that regen.sh check for availability of pod2man, and if it is not 
available, print a warning and move on.

In an ideal world, this would be fatal when building release source; one 
way to do this would be to make regen.sh take a command-line switch which, 
when given, indicates that this is a release build and it should be more 
strict.  We can then cause make_release to use that switch when 
constructing the source tarballs for releases.


While I generally support the idea of building the man pages at regen time, 
I anticipate that folks packaging OpenAFS may want to run pod2man on the 
"right" platform, to get more consistency with whatever conventions are 
used on that platform.  It might be good to do something to facilitate 
regenerating the man pages without doing the autoconf step.  Similarly, as 
the number of man pages gets large, we may actually want regen to run a 
make-like operation so only pages which do not exist or whose sources have 
changed get rebuilt.



>   The quality of the conversion should be
> adequate for any version of Perl released in the past five years, but for
> best results you want to use pod2man that comes with Perl 5.8 or later, or
> alternately install Pod::Simple 3.03 (or later) and podlators 2.00 (or
> later) from CPAN before running regen.sh.

Again, I think it would be good for the script to print a warning if the 
best tools are not available.


> The breakdown of man pages between sections is somewhat arbitrary,
> particularly since I wanted to keep command suites together.  Yes, vos is
> in section one and bos is in section eight and this doesn't necessarily
> make a tremendous amount of sense.  If someone comes up with a clear
> guideline for what should go where, I'm all ears; in the meantime, this
> seemed vaguely reasonable, and we can always move commands later.
> Unfortunately, where OpenAFS itself installs commands (bin or etc or
> root.server) also needs to be reviewed and isn't a particularly great
> guide.

Well, when you talk about etc and root.server, you're clearly looking at 
where things are being installed in the transarc-paths case.  That case 
exists for compatibility, and so deliberately installs things where AFS has 
always installed them.  It should not be changed.

For the non-transarc-paths case, we chose to install things according to 
GNU conventions, in which

- binaries that will be invoked by ordinary users are installed in bin
- binaries that will be invoked by system administrators, either directly
  or indirectly (e.g. by system startup scripts) are installed in sbin
- binaries that are normally invoked only by other programs are installed
  in libexec/openafs

Things in the first category should be documented in man1.
Things in the other two categories should be documented in man8.



Thanks for all the work you've done on this, Russ.

-- Jeff