4bcfaef0ab18ab10804729d3a4cf2e48fee3c449
[openafs.git] / doc / man-pages / README
1                             OpenAFS Man Pages
2
3 Overview
4
5   This directory contains the POD source and (in releases) the generated
6   man pages for OpenAFS commands and files.  The man pages are based on
7   the original IBM AFS Administration Reference manual, released with the
8   rest of AFS under the IBM Public License 1.0.  They were converted from
9   HTML to POD, editing, and are currently maintained in POD.
10
11   The man pages are very much a work in progress.  The original source
12   material dated from IBM's public release of AFS, and many changes since
13   made in OpenAFS are not reflected in the man pages.  Help and
14   contributions are actively solicited.  Please see "How You Can Help"
15   below for more information.
16
17   The long-term goal is for every command shipped with OpenAFS and every
18   configuration or data file written or read by OpenAFS to have its own
19   man page.  Section one is used for commands that don't require special
20   privileges, section eight for commands for AFS administrators and local
21   system administrators, and section five for file formats and
22   configuration files, with the exception that command suites are kept
23   together (so, for instance, all fs commands are documented in section
24   one even though some of them are only usable by a local system
25   administrator).
26
27   The OpenAFS man pages are discussed on the openafs-doc mailing list at
28   openafs.org.  If you plan on contributing to the man page project,
29   please join that mailing list and send suggestions, patches, and
30   contributions there.  The coordinator of the OpenAFS man page project is
31   Russ Allbery <rra@stanford.edu>; feel free to contact me directly with
32   questions (although using the mailing list is generally better and will
33   probably result in a faster response).
34
35 POD and Man Page Generation
36
37   The OpenAFS man pages are maintained in POD (Plain Old Documentation),
38   the documentation system originally developed for Perl.  This is not an
39   uncontroversial choice, since POD isn't as rich and full-featured as
40   other possible alternatives such as Docbook RefEntry.  On the other
41   hand, POD is very close to plain text, can be easier to edit and
42   maintain for those not familiar with the documentation format, and has
43   more mature tools for conversion to formatted man pages, an output
44   format that is particularly important on Unix/Linux.  There are many
45   good arguments either way, and fundamentally the decision was made to
46   use POD because I prefer it and I'm volunteering to write and edit the
47   pages and maintain them going forward.
48
49   To convert the POD source to formatted man pages, you need the pod2man
50   utility.  This utility has come with Perl for many years, so if you have
51   Perl installed, you almost certainly have some version of it available.
52   For the best results, install Pod::Simple 3.03 or later and podlators
53   2.00 or later from CPAN and use that pod2man, but the results from the
54   pod2man that comes with Perl 5.8 or later will be very good.  If you are
55   using earlier versions of Perl, the output should be adequate and
56   readable but may contain some formatting glitches.
57
58   Preformatted man pages will be included in distribution tarballs, but
59   those man pages may be generated with older versions of the conversion
60   utilities.  To regenerate the man pages, run regen.sh at the top of the
61   OpenAFS source tree (this will also regenerate the Autoconf scripts).
62
63   Conversion to HTML can be done via any of the POD to HTML converters
64   available (there are many of them).  Evaluation of the best tool to use
65   for OpenAFS and exactly how to do the conversion to get the highest
66   quality results is still underway; when complete, details will be
67   included here.
68
69 Formatting Standards
70
71   Each command or configuration file should have a separate man page in a
72   separate POD file.  Command suites (fs, pts, vos, etc.) should have an
73   overview man page that lists the available subcommands by category,
74   documents common options, and discusses the general use of the suite.
75   Then, each operation code in the suite should have a separate man page,
76   named after the command with the space between the command suite and the
77   operation code replaced with an underscore.
78
79   All man pages must follow the standard layout for man page sections and
80   formatting.  The best general reference is the pod2man man page,
81   although the sections used for OpenAFS man pages aren't quite the same
82   (see below).  In particular, please use the following markup:
83
84    * B<> for all commands, command/operation code pairs, and options.
85    * F<> for file names, directory names, partition names, or paths.
86    * <I<>> for user-provided arguments (note the surrounding <>).
87    * I<> for terms being defined or titles of works.
88    * C<> for command examples, ACL characters, and example arguments.
89
90   Also see the afs(1) man page for general rules about how OpenAFS man
91   pages are formatted and for standard terminology to use when talking
92   about OpenAFS commands.
93
94   Each man page should have the following sections:  NAME, SYNOPSIS (for
95   commands only), DESCRIPTION, CAUTIONS, OPTIONS (for commands only),
96   OUTPUT (where appropriate), EXAMPLES, PRIVILEGE REQUIRED (for commands
97   only), SEE ALSO, and COPYRIGHT, generally in that order.  Be sure to
98   include the IBM copyright in all man pages derived from the original IBM
99   documentation.  If you wrote the man page yourself, please include your
100   own copyright and a statement that the man page is released under the
101   IBM Public License Version 1.0, or under some other license that is
102   sufficiently compatible that we can use your work.  If you use another
103   license and that license isn't "public domain," you have to give the
104   full license text in the man page; please don't use a license so long
105   that this is annoying.
106
107   The SYNOPSIS section should start with the full command name and the
108   full names of all options, and then have a second section showing the
109   most abbreviated form of the command name and its options.  If the
110   command has aliases, it should have additional sections showing those.
111   Please be sure to follow all of the formatting requirements for
112   commands, flags, and options.  Enclose optional arguments in [] and
113   choices in () separated by |.  Command names and options are marked up
114   with B<> as mentioned above; all other literal text that should be
115   entered on the command line gets no markup.
116
117   References to other OpenAFS man pages should be given as L<afs(1)>.
118   Other man pages should be noted like df(1), without the L<> markup.
119   References to functions should be noted like function() with the
120   trailing parens.  The POD converters know how to format these sorts of
121   references appropriately.  References to other sections in the same page
122   should be given as L<SECTION>.
123
124   Command and output examples should be indented three spaces.  Commands
125   entered by the user should be given on a line beginning with %.  If the
126   command doesn't fit in 80 columns, put in a backslash at a logical break
127   point and continue the line with an additional four spaces of
128   indentation.  Output examples may be wrapped with an additional four
129   spaces of indentation but probably shouldn't be; not wrapping makes the
130   man page look somewhat less readable, but is less confusing when
131   converted to other formats such as HTML.
132
133   POD does not allow markup in verbatim paragraphs (which are indicated by
134   indenting the first line of the paragraph), so metasyntactic variables
135   in examples should be shown like <this> with simple angle brackets
136   surrounding the variable.  For consistency in formatting, references to
137   those variables should be formatted the same in following text.
138
139 How You Can Help
140
141   The OpenAFS man page project is just starting, and a lot of work remains
142   to be done.  Any and all contributions are greatly appreciated.  What
143   follows is a list of the ways that you can help in order of increasing
144   helpfulness.  If you only have time to do something near the top of the
145   list, please do; every little bit helps.  If you have more time and can
146   do something closer to the bottom of the list, that's even better and
147   your contribution can be included more rapidly.
148
149    * Point out places OpenAFS behavior has changed since the documentation
150      was written, or point out missing documentation.  Please check the
151      "Known Problems" list below to make sure that the item is not already
152      noted.
153
154    * Point out formatting problems, typos, formatting inconsistency, and
155      other markup or language problems in the man pages.
156
157    * Provide missing documentation in some form (text, HTML, whatever)
158      that can be incorporated into the man pages, or detailed explanations
159      of how the existing documentation needs to be changed to match what
160      the tools actually do.
161
162    * Provide missing man pages in POD format suitable for immediate
163      inclusion in the documentation.  Please try to follow the formatting
164      standards documented in the "Formatting Standards" section above, and
165      look at the existing man pages for examples.
166
167    * Provide patches against the POD source that correct formatting
168      problems, typos, formatting inconsistencies, or other markup or
169      language problems with the man pages.
170
171    * Provide patches against the POD source that add or correct the
172      documentation of commands or file formats for changes in OpenAFS.
173
174   Please send contributions either to the openafs-doc list or as bugs
175   filed via the bug reporting instructions at <http://www.openafs.org/>.
176   If you do submit a bug, please send me a note at rra@stanford.edu with
177   the bug number so that I'm aware of it, as I don't always notice new
178   bugs.
179
180 Known Problems
181
182   The current man pages have the following known deficiencies.  Please
183   don't just report the deficiency again, but any contributions towards
184   fixing it are greatly appreciated.
185
186    * The section five and section eight man pages have not yet had an
187      initial editing pass and many of the section five man pages are
188      missing because the original reference page names didn't easily
189      convert to man page names.  This is currently being fixed.  Please do
190      not start working on the section five or section eight man pages yet
191      or bother reporting problems with them; they will be changing
192      significantly in the near future.
193
194    * The following commands have no man pages:
195
196        fs getcalleraccess
197        fs getcrypt
198        fs listaliases
199        fs newalias
200        fs rxstatpeer
201        fs rxstatproc
202        fs setcbaddr
203        fs setcrypt
204        pts interactive
205        pts quit
206        pts sleep
207        pts source
208        vos changeloc
209        vos clone
210        vos convertROtoRW
211        vos copy
212        vos shadow
213        vos size
214
215    * klog.krb, pagsh.krb, and tokens.krb need to be listed as alternative
216      names in the NAME line of the non-.krb man pages, links should be
217      installed on man page installation, and the behavior of pagsh.krb
218      should be documented in the pagsh man page.
219
220    * Some of the documentation in fs getserverprefs needs minor updates to
221      reflect what happens in the dynroot case.
222
223    * fs sysname documentation needs to include the possibility of setting
224      multiple sysnames and the resulting behavior.
225
226    * The afsd man page is horribly out of date.  It doesn't explain
227      dynroot, many options are missing, and some of the options described
228      are no longer valid.  It also still assumes that -settime is the
229      default and says that the system must be rebooted after shutdown,
230      which isn't the case at least on Linux.
231
232    * All of the paths in the man pages are the Transarc paths.  I'm not
233      sure how best to deal with the possibility of installing OpenAFS in
234      multiple different paths, but it would be good to at least
235      acknowledge the issue.
236
237    * bos listkeys assumes that you're using the kaserver.
238
239    * I'm fairly sure that the fileserver man page no longer documents all
240      of the fileserver options.
241
242    * The package man page should probably mention the (pointless) package
243      apropos and package help commands, or they could be removed.  There
244      used to be separate man pages for them, but that seemed rather
245      pointless.
246
247    * There are lingering references to AFS Development or AFS Product
248      Support in descriptions of options that one should generally not
249      use.  Also, all of the manual references refer to the "IBM" manual.
250      We should decide how to handle this terminology-wise.
251
252   If you notice other problems, please send them to the openafs-doc list
253   even if you don't have time to fix them.  Someone else might, and we
254   want to track all of the issues.