6cfd83
From 6858ecbb9c407ff6d2b22cac283ea2461af1757b Mon Sep 17 00:00:00 2001
0ba406
From: Robbie Harwood <rharwood@redhat.com>
0ba406
Date: Thu, 20 Aug 2020 17:49:29 -0400
0ba406
Subject: [PATCH] Unify kvno option documentation
0ba406
0ba406
Add missing kvno options to the kvno.rst synopsis and option
0ba406
descriptions, and to the kvno usage message.  Remove mention of '-h'
0ba406
(help text), from kvno.rst as it is an implicit option.  Note that the
0ba406
three new caching options were added in release 1.19.
0ba406
0ba406
Indicate the two exclusions (-u/-S and --u2u with the S4U2Self options)
0ba406
and dependency (-P on S4U2Self) where they are missing.
0ba406
0ba406
Switch xusage() to print only a single localized string, rather than
0ba406
running each line of output through localization separately.
0ba406
0ba406
Leave kvno -C undocumented for now, as the semantics of
0ba406
KRB5_GC_CANONICALIZE are minimally useful and likely to change.
0ba406
0ba406
[ghudson@mit.edu: edited documentation and commit message]
0ba406
0ba406
ticket: 7476
0ba406
tags: pullup
0ba406
target_version: 1.18-next
0ba406
0ba406
(cherry picked from commit becd1ad6830b526d08ddaf5b2b6f213154c6446c)
0ba406
(cherry picked from commit 52e3695cc5ef00766e12adfe8ed276c2885e71bb)
0ba406
---
6cfd83
 doc/user/user_commands/kvno.rst | 24 +++++++++++++-----------
6cfd83
 src/clients/kvno/kvno.c         | 15 +++++++++------
6cfd83
 src/man/kvno.man                | 24 +++++++++++++-----------
6cfd83
 3 files changed, 35 insertions(+), 28 deletions(-)
0ba406
0ba406
diff --git a/doc/user/user_commands/kvno.rst b/doc/user/user_commands/kvno.rst
6cfd83
index 718313576..65c44e1c0 100644
0ba406
--- a/doc/user/user_commands/kvno.rst
0ba406
+++ b/doc/user/user_commands/kvno.rst
0ba406
@@ -10,13 +10,9 @@ SYNOPSIS
0ba406
 [**-c** *ccache*]
0ba406
 [**-e** *etype*]
0ba406
 [**-q**]
0ba406
-[**-h**]
0ba406
+[**-u** | **-S** *sname*]
0ba406
 [**-P**]
0ba406
-[**-S** *sname*]
0ba406
-[**-I** *for_user*]
0ba406
-[**-U** *for_user*]
0ba406
-[**-F** *cert_file*]
0ba406
-[**--u2u** *ccache*]
0ba406
+[[{**-F** *cert_file* | {**-I** | **-U**} *for_user*} [**-P**]] | **--u2u** *ccache*]
0ba406
 *service1 service2* ...
0ba406
 
0ba406
 
0ba406
@@ -39,13 +35,18 @@ OPTIONS
0ba406
     of all the services named on the command line.  This is useful in
0ba406
     certain backward compatibility situations.
0ba406
 
0ba406
+**-k** *keytab*
0ba406
+    Decrypt the acquired tickets using *keytab* to confirm their
0ba406
+    validity.
0ba406
+
0ba406
 **-q**
0ba406
     Suppress printing output when successful.  If a service ticket
0ba406
     cannot be obtained, an error message will still be printed and
0ba406
     kvno will exit with nonzero status.
0ba406
 
0ba406
-**-h**
0ba406
-    Prints a usage statement and exits.
0ba406
+**-u**
0ba406
+    Use the unknown name type in requested service principal names.
0ba406
+    This option Cannot be used with *-S*.
0ba406
 
0ba406
 **-P**
0ba406
     Specifies that the *service1 service2* ...  arguments are to be
6cfd83
@@ -76,16 +77,17 @@ OPTIONS
6cfd83
 
6cfd83
 **--cached-only**
6cfd83
     Only retrieve credentials already present in the cache, not from
6cfd83
-    the KDC.
6cfd83
+    the KDC.  (Added in release 1.19.)
6cfd83
 
6cfd83
 **--no-store**
6cfd83
     Do not store retrieved credentials in the cache.  If
6cfd83
     **--out-cache** is also specified, credentials will still be
6cfd83
-    stored into the output credential cache.
6cfd83
+    stored into the output credential cache.  (Added in release 1.19.)
6cfd83
 
6cfd83
 **--out-cache** *ccache*
6cfd83
     Initialize *ccache* and store all retrieved credentials into it.
6cfd83
-    Do not store acquired credentials in the input cache.
6cfd83
+    Do not store acquired credentials in the input cache.  (Added in
6cfd83
+    release 1.19.)
6cfd83
 
6cfd83
 **--u2u** *ccache*
6cfd83
     Requests a user-to-user ticket.  *ccache* must contain a local
0ba406
diff --git a/src/clients/kvno/kvno.c b/src/clients/kvno/kvno.c
6cfd83
index 9d85864f6..c5f6bf700 100644
0ba406
--- a/src/clients/kvno/kvno.c
0ba406
+++ b/src/clients/kvno/kvno.c
6cfd83
@@ -38,15 +38,18 @@
0ba406
 static char *prog;
0ba406
 static int quiet = 0;
0ba406
 
0ba406
+#define XUSAGE_BREAK "\n\t"
0ba406
+
0ba406
 static void
0ba406
 xusage()
0ba406
 {
0ba406
-    fprintf(stderr, _("usage: %s [-C] [-u] [-c ccache] [-e etype]\n"), prog);
0ba406
-    fprintf(stderr, _("\t[-k keytab] [-S sname] [{-I | -U} for_user | "
0ba406
-                      "[-F cert_file] [-P]]\n"));
6cfd83
-    fprintf(stderr, _("\t[--cached-only] [--no-store] [--out-cache ccache] "
6cfd83
-                      "[--u2u ccache]\n"));
6cfd83
-    fprintf(stderr, _("\tservice1 service2 ...\n"));
0ba406
+    fprintf(stderr, _("usage: %s [-c ccache] [-e etype] [-k keytab] [-q] "
0ba406
+                      "[-u | -S sname]" XUSAGE_BREAK
0ba406
+                      "[[{-F cert_file | {-I | -U} for_user} [-P]] | "
0ba406
+                      "--u2u ccache]" XUSAGE_BREAK
6cfd83
+                      "[--cached-only] [--no-store] [--out-cache] "
0ba406
+                      "service1 service2 ...\n"),
0ba406
+            prog);
0ba406
     exit(1);
0ba406
 }
0ba406
 
0ba406
diff --git a/src/man/kvno.man b/src/man/kvno.man
6cfd83
index b9f6739eb..22318324d 100644
0ba406
--- a/src/man/kvno.man
0ba406
+++ b/src/man/kvno.man
0ba406
@@ -36,13 +36,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
0ba406
 [\fB\-c\fP \fIccache\fP]
0ba406
 [\fB\-e\fP \fIetype\fP]
0ba406
 [\fB\-q\fP]
0ba406
-[\fB\-h\fP]
0ba406
+[\fB\-u\fP | \fB\-S\fP \fIsname\fP]
0ba406
 [\fB\-P\fP]
0ba406
-[\fB\-S\fP \fIsname\fP]
0ba406
-[\fB\-I\fP \fIfor_user\fP]
0ba406
-[\fB\-U\fP \fIfor_user\fP]
0ba406
-[\fB\-F\fP \fIcert_file\fP]
0ba406
-[\fB\-\-u2u\fP \fIccache\fP]
0ba406
+[[{\fB\-F\fP \fIcert_file\fP | {\fB\-I\fP | \fB\-U\fP} \fIfor_user\fP} [\fB\-P\fP]] | \fB\-\-u2u\fP \fIccache\fP]
0ba406
 \fIservice1 service2\fP ...
0ba406
 .SH DESCRIPTION
0ba406
 .sp
0ba406
@@ -60,13 +56,18 @@ Specifies the enctype which will be requested for the session key
0ba406
 of all the services named on the command line.  This is useful in
0ba406
 certain backward compatibility situations.
0ba406
 .TP
0ba406
+\fB\-k\fP \fIkeytab\fP
0ba406
+Decrypt the acquired tickets using \fIkeytab\fP to confirm their
0ba406
+validity.
0ba406
+.TP
0ba406
 \fB\-q\fP
0ba406
 Suppress printing output when successful.  If a service ticket
0ba406
 cannot be obtained, an error message will still be printed and
0ba406
 kvno will exit with nonzero status.
0ba406
 .TP
0ba406
-\fB\-h\fP
0ba406
-Prints a usage statement and exits.
0ba406
+\fB\-u\fP
0ba406
+Use the unknown name type in requested service principal names.
0ba406
+This option Cannot be used with \fI\-S\fP\&.
0ba406
 .TP
0ba406
 \fB\-P\fP
0ba406
 Specifies that the \fIservice1 service2\fP ...  arguments are to be
6cfd83
@@ -97,16 +98,17 @@ certificate file must be in PEM format.
6cfd83
 .TP
6cfd83
 \fB\-\-cached\-only\fP
6cfd83
 Only retrieve credentials already present in the cache, not from
6cfd83
-the KDC.
6cfd83
+the KDC.  (Added in release 1.19.)
6cfd83
 .TP
6cfd83
 \fB\-\-no\-store\fP
6cfd83
 Do not store retrieved credentials in the cache.  If
6cfd83
 \fB\-\-out\-cache\fP is also specified, credentials will still be
6cfd83
-stored into the output credential cache.
6cfd83
+stored into the output credential cache.  (Added in release 1.19.)
6cfd83
 .TP
6cfd83
 \fB\-\-out\-cache\fP \fIccache\fP
6cfd83
 Initialize \fIccache\fP and store all retrieved credentials into it.
6cfd83
-Do not store acquired credentials in the input cache.
6cfd83
+Do not store acquired credentials in the input cache.  (Added in
6cfd83
+release 1.19.)
6cfd83
 .TP
6cfd83
 \fB\-\-u2u\fP \fIccache\fP
6cfd83
 Requests a user\-to\-user ticket.  \fIccache\fP must contain a local