diff --git a/doc/ChangeLog b/doc/ChangeLog index b70e70fdc..4a86e4509 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,9 @@ +2006-08-22 Werner Koch + + * yat2m.c (parse_file): Added code to skip a line after @mansect. + + * gnupg7.texi: New. + 2006-08-21 Werner Koch * Makefile.am: Added other doc files from gpg 1.4. diff --git a/doc/Makefile.am b/doc/Makefile.am index 73350fdc6..77e48aaed 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -24,8 +24,8 @@ EXTRA_DIST = DETAILS HACKING TRANSLATE OpenPGP KEYSERVER samplekeys.asc \ gnupg-badge-openpgp.pdf \ gnupg-card-architecture.eps gnupg-card-architecture.png \ gnupg-card-architecture.pdf \ - faq.raw FAQ faq.html \ - opt-homedir.texi see-also-note.texi + faq.raw FAQ faq.html gnupg7.texi \ + opt-homedir.texi see-also-note.texi BUILT_SOURCES = gnupg-card-architecture.eps gnupg-card-architecture.png \ gnupg-card-architecture.pdf FAQ faq.html @@ -46,8 +46,9 @@ AM_MAKEFINFOFLAGS = -I $(srcdir) YAT2M_OPTIONS = -I $(srcdir) \ --release "GnuPG @PACKAGE_VERSION@" --source "GNU Privacy Guard" -myman_sources = gpg.texi gpgsm.texi gpg-agent.texi scdaemon.texi tools.texi -myman_pages = gpg2.1 gpgsm.1 gpg-agent.1 scdaemon.1 \ +myman_sources = gnupg7.texi gpg.texi gpgsm.texi gpg-agent.texi \ + scdaemon.texi tools.texi +myman_pages = gnupg.7 gpg2.1 gpgsm.1 gpg-agent.1 scdaemon.1 gpgv2.1 \ watchgnupg.1 gpgconf.1 addgnupghome.8 gpg-preset-passphrase.1 \ gpg-connect-agent.1 gpgparsemail.1 symcryptrun.1 \ gpgsm-gencert.sh.1 diff --git a/doc/tools.texi b/doc/tools.texi index d4f698482..07fcfd2d7 100644 --- a/doc/tools.texi +++ b/doc/tools.texi @@ -9,6 +9,7 @@ GnuPG comes with a couple of smaller tools: @menu * watchgnupg:: Read logs from a socket. +* gpgv:: Verify OpenPGP signatures. * addgnupghome:: Create .gnupg home directories. * gpgconf:: Modify .gnupg home directories. * gpgsm-gencert.sh:: Generate an X.509 certificate request. @@ -88,6 +89,135 @@ Display a brief help page and exit @include see-also-note.texi +@c +@c GPGV +@c +@manpage gpgv2.1 +@node gpgv +@section Verify OpenPGP signatures +@ifset manverb +.B gpgv +\- Verify OpenPGP signatures +@end ifset + +@mansect synopsis +@ifset manverb +.B gpgv2 +.RI [ options ] +.I signed_files +@end ifset + +@mansect description +@code{gpgv2} is an OpenPGP signature verification tool. + +This program is actually a stripped down version of @code{gpg} which is +only able to check signatures. It is somewhat smaller than the fully blown +@code{gpg} and uses a different (and simpler) way to check that +the public keys used to make the signature are valid. There are +no configuration files and only a few options are implemented. + +@code{gpgv2} assumes that all keys in the keyring are trustworthy. +By default it uses a keyring named @file{trustedkeys.gpg} which is +assumed to be in the home directory as defined by GnuPG or set by an +option or an environment variable. An option may be used to specify +another keyring or even multiple keyrings. + +@noindent +@mansect options +@code{gpgv2} recognizes these options: + +@table @gnupgtabopt + +@item --verbose +@itemx -v +@opindex verbose +Gives more information during processing. If used +twice, the input data is listed in detail. + +@item --quiet +@itemx -q +@opindex quiet +Try to be as quiet as possible. + +@item --keyring @var{file} +@opindex keyring +Add @var{file} to the list of keyrings. +If @var{file} begins with a tilde and a slash, these +are replaced by the HOME directory. If the filename +does not contain a slash, it is assumed to be in the +home-directory ("~/.gnupg" if --homedir is not used). + +@item --status-fd @var{n} +@opindex status-fd +Write special status strings to the file descriptor @var{n}. See the +file DETAILS in the documentation for a listing of them. + +@item --logger-fd @code{n} +@opindex logger-fd +Write log output to file descriptor @code{n} and not to stderr. + +@item --ignore-time-conflict +@opindex ignore-time-conflict +GnuPG normally checks that the timestamps associated with keys and +signatures have plausible values. However, sometimes a signature seems to +be older than the key due to clock problems. This option turns these +checks into warnings. + +@include opt-homedir.texi + +@end table + +@mansect return value + +The program returns 0 if everything was fine, 1 if at least +one signature was bad, and other error codes for fatal errors. + +@mansect examples +@subsection Examples + +@table @asis + +@item gpgv2 @code{pgpfile} +@itemx gpgv2 @code{sigfile} +Verify the signature of the file. The second form +is used for detached signatures, where @code{sigfile} is the detached +signature (either ASCII armored or binary) and are the signed +data; if this is not given the name of the file holding the signed data is +constructed by cutting off the extension (".asc", ".sig" or ".sign") from +@code{sigfile}. + +@end table + +@mansect environment +@subsection Environment + +@table @asis + +@item HOME +Used to locate the default home directory. + +@item GNUPGHOME +If set directory used instead of "~/.gnupg". + +@end table + +@mansect files +@subsection FILES + +@table @asis + +@item ~/.gnupg/trustedkeys.gpg +The default keyring with the allowed keys + +@end table + +@mansect see also +@command{gpg2}(1) +@include see-also-note.texi + + + + @c @c ADDGNUPGHOME @c diff --git a/doc/yat2m.c b/doc/yat2m.c index 39feea9fe..6d8786bad 100644 --- a/doc/yat2m.c +++ b/doc/yat2m.c @@ -40,8 +40,12 @@ go into the man page. These macros need to be used without leading left space. Processing starts after a "manpage" macro has been seen. "mansect" identifies the section and yat2m make sure to - emit the sections in the proper order. To insert verbatim troff - markup, the follwing texinfo code may be used: + emit the sections in the proper order. Note that @mansect skips + the next input line if that line begins with @subsection or + @chapheading. + + To insert verbatim troff markup, the follwing texinfo code may be + used: @ifset manverb .B whateever you want @@ -51,11 +55,24 @@ @c man:.B whatever you want - This is useful in case you need just one line. @section is - ignored, however @subsection gets rendered as ".SS". @menu is - completely skipped. Several man pages may be extracted from one - file, either using the --store or the --select option. - Makefile snippet from GnuPG: + This is useful in case you need just one line. If you want to + include parts only in the man page but keep the texinfo + translation you may use: + + @ifset isman + stuff to be rendered only on man pages + @end ifset + + or to exclude stuff from man pages: + + @ifclear isman + stuff not to be rendered on man pages + @end ifclear + + the keyword @section is ignored, however @subsection gets rendered + as ".SS". @menu is completely skipped. Several man pages may be + extracted from one file, either using the --store or the --select + option. */ @@ -794,6 +811,7 @@ parse_file (const char *fname, FILE *fp, char **section_name) int in_verbatim = 0; int in_pause = 0; int skip_to_end = 0; /* Used to skip over menu entries. */ + int skip_sect_line = 0; /* Skip after @mansect. */ line = xmalloc (LINESIZE); while (fgets (line, LINESIZE, fp)) @@ -810,6 +828,15 @@ parse_file (const char *fname, FILE *fp, char **section_name) break; } line[--n] = 0; + + if (skip_sect_line) + { + skip_sect_line = 0; + if (!strncmp (line, "@subsection", 11) + || !strncmp (line, "@chapheading", 12)) + continue; + } + /* We only parse lines we need and ignore the rest. There are a few macros used to control this as well as one @ifset command. Parts we know about are saved away into containers @@ -862,6 +889,7 @@ parse_file (const char *fname, FILE *fp, char **section_name) free (*section_name); *section_name = ascii_strupr (xstrdup (p)); in_pause = 0; + skip_sect_line = 1; } } else if (n == 9 && !memcmp (line, "@manpause", 9))