aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2008-11-18 18:01:03 +0000
committerWerner Koch <[email protected]>2008-11-18 18:01:03 +0000
commit5dc1c18c3ad839f83e454ab03b2d680cee6ec41c (patch)
treea0a04aba5eecf71ca7af32241b2feda78fb42037
parentCleaned up unused gpgsm and gpg options. (diff)
downloadgnupg-5dc1c18c3ad839f83e454ab03b2d680cee6ec41c.tar.gz
gnupg-5dc1c18c3ad839f83e454ab03b2d680cee6ec41c.zip
Print library versions according to GNU standards.
Diffstat (limited to '')
-rw-r--r--agent/ChangeLog5
-rw-r--r--agent/gpg-agent.c25
-rw-r--r--g10/ChangeLog8
-rw-r--r--g10/gpg.c81
-rw-r--r--g10/gpgv.c21
-rw-r--r--scd/ChangeLog5
-rw-r--r--scd/scdaemon.c30
-rw-r--r--sm/ChangeLog6
-rw-r--r--sm/gpgsm.c83
9 files changed, 162 insertions, 102 deletions
diff --git a/agent/ChangeLog b/agent/ChangeLog
index c22797d34..b8f30e879 100644
--- a/agent/ChangeLog
+++ b/agent/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-18 Werner Koch <[email protected]>
+
+ * gpg-agent.c (make_libversion): New.
+ (my_strusage): Print libgcrypt version
+
2008-11-11 Werner Koch <[email protected]>
* call-scd.c (membuf_data_cb): Change return type to
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index ad12b1870..454d71590 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -280,11 +280,30 @@ static unsigned long pth_thread_id (void)
Functions.
*/
+static char *
+make_libversion (const char *libname, const char *(*getfnc)(const char*))
+{
+ const char *s;
+ char *result;
+
+ if (maybe_setuid)
+ {
+ gcry_control (GCRYCTL_INIT_SECMEM, 0, 0); /* Drop setuid. */
+ maybe_setuid = 0;
+ }
+ s = getfnc (NULL);
+ result = xmalloc (strlen (libname) + 1 + strlen (s) + 1);
+ strcpy (stpcpy (stpcpy (result, libname), " "), s);
+ return result;
+}
+
static const char *
my_strusage (int level)
{
+ static char *ver_gcry;
const char *p;
+
switch (level)
{
case 11: p = "gpg-agent (GnuPG)";
@@ -293,6 +312,12 @@ my_strusage (int level)
case 17: p = PRINTABLE_OS_NAME; break;
case 19: p = _("Please report bugs to <" PACKAGE_BUGREPORT ">.\n");
break;
+ case 20:
+ if (!ver_gcry)
+ ver_gcry = make_libversion ("libgcrypt", gcry_check_version);
+ p = ver_gcry;
+ break;
+
case 1:
case 40: p = _("Usage: gpg-agent [options] (-h for help)");
break;
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 389ee5954..eec3d6f0b 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,11 @@
+2008-11-18 Werner Koch <[email protected]>
+
+ * gpg.c (build_lib_list): Remove.
+ (make_libversion): New.
+ (my_strusage): Use it.
+ * gpgv.c (make_libversion): New.
+ (my_strusage): Print libgcrypt version.
+
2008-11-13 Werner Koch <[email protected]>
* gpgv.c: Use new ARGPARSE macros and re-indent.
diff --git a/g10/gpg.c b/g10/gpg.c
index 942d26c04..ee6061a22 100644
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -766,7 +766,6 @@ static int maybe_setuid = 1;
static char *build_list( const char *text, char letter,
const char *(*mapf)(int), int (*chkf)(int) );
-static char *build_lib_list (const char *text);
static void set_cmd( enum cmd_and_opt_values *ret_cmd,
enum cmd_and_opt_values new_cmd );
static void print_mds( const char *fname, int algo );
@@ -776,11 +775,30 @@ static void add_keyserver_url( const char *string, int which );
static void emergency_cleanup (void);
+static char *
+make_libversion (const char *libname, const char *(*getfnc)(const char*))
+{
+ const char *s;
+ char *result;
+
+ if (maybe_setuid)
+ {
+ gcry_control (GCRYCTL_INIT_SECMEM, 0, 0); /* Drop setuid. */
+ maybe_setuid = 0;
+ }
+ s = getfnc (NULL);
+ result = xmalloc (strlen (libname) + 1 + strlen (s) + 1);
+ strcpy (stpcpy (stpcpy (result, libname), " "), s);
+ return result;
+}
+
+
static const char *
my_strusage( int level )
{
- static char *digests, *pubkeys, *ciphers, *zips, *libs;
- const char *p;
+ static char *digests, *pubkeys, *ciphers, *zips, *ver_gcry;
+ const char *p;
+
switch( level ) {
case 11: p = "gpg (GnuPG)";
break;
@@ -790,14 +808,20 @@ my_strusage( int level )
_("Please report bugs to <[email protected]>.\n");
break;
+ case 20:
+ if (!ver_gcry)
+ ver_gcry = make_libversion ("libgcrypt", gcry_check_version);
+ p = ver_gcry;
+ break;
+
#ifdef IS_DEVELOPMENT_VERSION
- case 20:
+ case 25:
p="NOTE: THIS IS A DEVELOPMENT VERSION!";
break;
- case 21:
+ case 26:
p="It is only intended for test purposes and should NOT be";
break;
- case 22:
+ case 27:
p="used in a production environment or with production keys!";
break;
#endif
@@ -847,11 +871,6 @@ my_strusage( int level )
check_compress_algo);
p = zips;
break;
- case 38:
- if (!libs)
- libs = build_lib_list(_("Used libraries:"));
- p = libs;
- break;
default: p = NULL;
}
@@ -914,46 +933,6 @@ build_list( const char *text, char letter,
}
-static char *
-build_lib_list (const char *text)
-{
- struct { const char *name; const char *version; } array[3];
- int idx;
- size_t n;
- char *list, *p;
-
- if (maybe_setuid)
- gcry_control (GCRYCTL_INIT_SECMEM, 0, 0); /* Drop setuid. */
-
- idx = 0;
- array[idx].name = "gcrypt";
- array[idx++].version = gcry_check_version (NULL);
- array[idx].name = NULL;
- array[idx++].version = NULL;
-
- n = strlen (text) + 1;
- for (idx=0; array[idx].name; idx++)
- {
- n += 2 + strlen (array[idx].name);
- if (array[idx].version)
- n += 1 + strlen (array[idx].version) + 1;
- }
- n++;
- list = xmalloc (n+1);
- p = stpcpy (stpcpy (list, text), " ");
- for (idx=0; array[idx].name; idx++)
- {
- if (idx)
- p = stpcpy (p, ", ");
- p = stpcpy (p, array[idx].name);
- if (array[idx].version)
- p = stpcpy (stpcpy (stpcpy (p, "("), array[idx].version), ")");
- }
- strcpy (p, "\n");
- return list;
-}
-
-
static void
wrong_args( const char *text)
{
diff --git a/g10/gpgv.c b/g10/gpgv.c
index e708d5c21..2f64f83c7 100644
--- a/g10/gpgv.c
+++ b/g10/gpgv.c
@@ -87,10 +87,24 @@ static ARGPARSE_OPTS opts[] = {
int g10_errors_seen = 0;
+static char *
+make_libversion (const char *libname, const char *(*getfnc)(const char*))
+{
+ const char *s;
+ char *result;
+
+ s = getfnc (NULL);
+ result = xmalloc (strlen (libname) + 1 + strlen (s) + 1);
+ strcpy (stpcpy (stpcpy (result, libname), " "), s);
+ return result;
+}
+
static const char *
my_strusage( int level )
{
+ static char *ver_gcry;
const char *p;
+
switch (level)
{
case 11: p = "gpgv (GnuPG)";
@@ -106,6 +120,13 @@ my_strusage( int level )
"Check signatures against known trusted keys\n");
break;
+ case 20:
+ if (!ver_gcry)
+ ver_gcry = make_libversion ("libgcrypt", gcry_check_version);
+ p = ver_gcry;
+ break;
+
+
default: p = NULL;
}
return p;
diff --git a/scd/ChangeLog b/scd/ChangeLog
index 200381ca2..8c63f3b20 100644
--- a/scd/ChangeLog
+++ b/scd/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-18 Werner Koch <[email protected]>
+
+ * scdaemon.c (make_libversion): New.
+ (my_strusage): Print libgcrypt and libksba version.
+
2008-11-03 Werner Koch <[email protected]>
* command.c (server_local_s): Add field DISCONNECT_ALLOWED.
diff --git a/scd/scdaemon.c b/scd/scdaemon.c
index b65f47e46..8cabec5e6 100644
--- a/scd/scdaemon.c
+++ b/scd/scdaemon.c
@@ -200,10 +200,30 @@ static int fixed_gcry_pth_init (void)
+static char *
+make_libversion (const char *libname, const char *(*getfnc)(const char*))
+{
+ const char *s;
+ char *result;
+
+ if (maybe_setuid)
+ {
+ gcry_control (GCRYCTL_INIT_SECMEM, 0, 0); /* Drop setuid. */
+ maybe_setuid = 0;
+ }
+ s = getfnc (NULL);
+ result = xmalloc (strlen (libname) + 1 + strlen (s) + 1);
+ strcpy (stpcpy (stpcpy (result, libname), " "), s);
+ return result;
+}
+
+
static const char *
my_strusage (int level)
{
+ static char *ver_gcry, *ver_ksba;
const char *p;
+
switch (level)
{
case 11: p = "scdaemon (GnuPG)";
@@ -212,6 +232,16 @@ my_strusage (int level)
case 17: p = PRINTABLE_OS_NAME; break;
case 19: p = _("Please report bugs to <" PACKAGE_BUGREPORT ">.\n");
break;
+ case 20:
+ if (!ver_gcry)
+ ver_gcry = make_libversion ("libgcrypt", gcry_check_version);
+ p = ver_gcry;
+ break;
+ case 21:
+ if (!ver_ksba)
+ ver_ksba = make_libversion ("libksba", ksba_check_version);
+ p = ver_ksba;
+ break;
case 1:
case 40: p = _("Usage: scdaemon [options] (-h for help)");
break;
diff --git a/sm/ChangeLog b/sm/ChangeLog
index 6b9a5c327..e33ba0bd9 100644
--- a/sm/ChangeLog
+++ b/sm/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-18 Werner Koch <[email protected]>
+
+ * gpgsm.c (make_libversion): New.
+ (my_strusage): Use new fucntion.
+ (build_lib_list): Remove.
+
2008-11-13 Werner Koch <[email protected]>
* gpgsm.c: Remove all unused options. Use ARGPARSE macros.
diff --git a/sm/gpgsm.c b/sm/gpgsm.c
index eebe2c1a5..5177d108e 100644
--- a/sm/gpgsm.c
+++ b/sm/gpgsm.c
@@ -413,7 +413,6 @@ static int default_validation_model;
static char *build_list (const char *text,
const char *(*mapf)(int), int (*chkf)(int));
-static char *build_lib_list (const char *text);
static void set_cmd (enum cmd_and_opt_values *ret_cmd,
enum cmd_and_opt_values new_cmd );
@@ -479,10 +478,29 @@ our_md_test_algo (int algo)
}
+static char *
+make_libversion (const char *libname, const char *(*getfnc)(const char*))
+{
+ const char *s;
+ char *result;
+
+ if (maybe_setuid)
+ {
+ gcry_control (GCRYCTL_INIT_SECMEM, 0, 0); /* Drop setuid. */
+ maybe_setuid = 0;
+ }
+ s = getfnc (NULL);
+ result = xmalloc (strlen (libname) + 1 + strlen (s) + 1);
+ strcpy (stpcpy (stpcpy (result, libname), " "), s);
+ return result;
+}
+
+
static const char *
my_strusage( int level )
{
- static char *digests, *pubkeys, *ciphers, *libs;
+ static char *digests, *pubkeys, *ciphers;
+ static char *ver_gcry, *ver_ksba;
const char *p;
switch (level)
@@ -502,6 +520,17 @@ my_strusage( int level )
"default operation depends on the input data\n");
break;
+ case 20:
+ if (!ver_gcry)
+ ver_gcry = make_libversion ("libgcrypt", gcry_check_version);
+ p = ver_gcry;
+ break;
+ case 21:
+ if (!ver_ksba)
+ ver_ksba = make_libversion ("libksba", ksba_check_version);
+ p = ver_ksba;
+ break;
+
case 31: p = "\nHome: "; break;
case 32: p = opt.homedir; break;
case 33: p = _("\nSupported algorithms:\n"); break;
@@ -522,11 +551,6 @@ my_strusage( int level )
digests = build_list("Hash: ", gcry_md_algo_name, our_md_test_algo );
p = digests;
break;
- case 38:
- if (!libs)
- libs = build_lib_list(_("Used libraries:"));
- p = libs;
- break;
default: p = NULL; break;
}
@@ -566,49 +590,6 @@ build_list (const char *text, const char * (*mapf)(int), int (*chkf)(int))
return list;
}
-static char *
-build_lib_list (const char *text)
-{
- struct { const char *name; const char *version; } array[5];
- int idx;
- size_t n;
- char *list, *p;
-
- if (maybe_setuid)
- gcry_control (GCRYCTL_INIT_SECMEM, 0, 0); /* Drop setuid. */
-
- idx = 0;
- array[idx].name = "gcrypt";
- array[idx++].version = gcry_check_version (NULL);
- array[idx].name = "ksba";
- array[idx++].version = ksba_check_version (NULL);
- array[idx].name = "assuan";
- array[idx++].version = GNUPG_LIBASSUAN_VERSION;
- array[idx].name = NULL;
- array[idx++].version = NULL;
-
- n = strlen (text) + 1;
- for (idx=0; array[idx].name; idx++)
- {
- n += 2 + strlen (array[idx].name);
- if (array[idx].version)
- n += 1 + strlen (array[idx].version) + 1;
- }
- n++;
- list = xmalloc (n+1);
- p = stpcpy (stpcpy (list, text), " ");
- for (idx=0; array[idx].name; idx++)
- {
- if (idx)
- p = stpcpy (p, ", ");
- p = stpcpy (p, array[idx].name);
- if (array[idx].version)
- p = stpcpy (stpcpy (stpcpy (p, "("), array[idx].version), ")");
- }
- strcpy (p, "\n");
- return list;
-}
-
/* Set the file pointer into binary mode if required. */
static void
@@ -939,7 +920,7 @@ main ( int argc, char **argv)
}
- /* initialize the secure memory. */
+ /* Initialize the secure memory. */
gcry_control (GCRYCTL_INIT_SECMEM, 16384, 0);
maybe_setuid = 0;