aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Kahn Gillmor <[email protected]>2014-09-25 18:45:37 +0000
committerWerner Koch <[email protected]>2014-09-25 20:28:36 +0000
commitc76117f8b0165fe5cec5e7f234f55f5a4cd7f0ab (patch)
tree82d1bfe207daaf6e80d5cbd9d91473dde7620839
parentgpg: Need to init the trustdb for import. (diff)
downloadgnupg-c76117f8b0165fe5cec5e7f234f55f5a4cd7f0ab.tar.gz
gnupg-c76117f8b0165fe5cec5e7f234f55f5a4cd7f0ab.zip
gpg: Warn about (but don't fail) on scdaemon options in gpg.conf.
* g10/gpg.c: Add config options that should belong in scdaemon.conf * g10/main.h, g10/misc.c (obsolete_scdaemon_option): New. -- In gpg2, the following options are only relevant for scdaemon: reader-port ctapi-driver pcsc-driver disable-ccid but in gpg1, they are options for gpg itself. Some users of gpg1 might have these options in their ~/.gnupg/gpg.conf, which causes gpg2 to fail hard if it reads that config file. gpg2 should not fail hard, though giving a warning (and suggesting a move to scdaemon.conf) seems OK. This patch does *not* reintroduce any documentation for these options in gpg.texi, even to indicate that they are "dummy" options, since scdaemon.texi contains the appropriate documentation. Debian-bug-id: 762844 Program names factored out from obsolete_scdaemon_option to make reuse without new translations easier. -wk This is a backport of commit 371c2b14b0347209efd23b4e54e1981a12d7aeab with parts of 20c6da50d4f6264d26d113d7de606971f719a0ca but without those which would change existing translated strings. -wk
-rw-r--r--g10/gpg.c36
-rw-r--r--g10/main.h2
-rw-r--r--g10/misc.c14
3 files changed, 48 insertions, 4 deletions
diff --git a/g10/gpg.c b/g10/gpg.c
index 1a8e6e7c0..12d4295a0 100644
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -358,6 +358,10 @@ enum cmd_and_opt_values
oKeyidFormat,
oExitOnStatusWriteError,
oLimitCardInsertTries,
+ oReaderPort,
+ octapiDriver,
+ opcscDriver,
+ oDisableCCID,
oRequireCrossCert,
oNoRequireCrossCert,
oAutoKeyLocate,
@@ -506,10 +510,6 @@ static ARGPARSE_OPTS opts[] = {
ARGPARSE_s_n (oDryRun, "dry-run", N_("do not make any changes")),
ARGPARSE_s_n (oInteractive, "interactive", N_("prompt before overwriting")),
- ARGPARSE_s_n (oUseAgent, "use-agent", "@"),
- ARGPARSE_s_n (oNoUseAgent, "no-use-agent", "@"),
- ARGPARSE_s_s (oGpgAgentInfo, "gpg-agent-info", "@"),
-
ARGPARSE_s_n (oBatch, "batch", "@"),
ARGPARSE_s_n (oAnswerYes, "yes", "@"),
ARGPARSE_s_n (oAnswerNo, "no", "@"),
@@ -761,6 +761,21 @@ static ARGPARSE_OPTS opts[] = {
ARGPARSE_s_s (oAutoKeyLocate, "auto-key-locate", "@"),
ARGPARSE_s_n (oNoAutoKeyLocate, "no-auto-key-locate", "@"),
+ /* Dummy options with warnings. */
+ ARGPARSE_s_n (oUseAgent, "use-agent", "@"),
+ ARGPARSE_s_n (oNoUseAgent, "no-use-agent", "@"),
+ ARGPARSE_s_s (oGpgAgentInfo, "gpg-agent-info", "@"),
+ ARGPARSE_s_s (oReaderPort, "reader-port", "@"),
+ ARGPARSE_s_s (octapiDriver, "ctapi-driver", "@"),
+ ARGPARSE_s_s (opcscDriver, "pcsc-driver", "@"),
+ ARGPARSE_s_n (oDisableCCID, "disable-ccid", "@"),
+
+ /* Dummy options. */
+ ARGPARSE_s_n (oNoop, "sk-comments", "@"),
+ ARGPARSE_s_n (oNoop, "no-sk-comments", "@"),
+ ARGPARSE_s_n (oNoop, "compress-keys", "@"),
+ ARGPARSE_s_n (oNoop, "compress-sigs", "@"),
+
ARGPARSE_end ()
};
@@ -2239,6 +2254,19 @@ main (int argc, char **argv)
obsolete_option (configname, configlineno, "--gpg-agent-info");
break;
+ case oReaderPort:
+ obsolete_scdaemon_option (configname, configlineno, "reader-port");
+ break;
+ case octapiDriver:
+ obsolete_scdaemon_option (configname, configlineno, "ctapi-driver");
+ break;
+ case opcscDriver:
+ obsolete_scdaemon_option (configname, configlineno, "pcsc-driver");
+ break;
+ case oDisableCCID:
+ obsolete_scdaemon_option (configname, configlineno, "disable-ccid");
+ break;
+
case oAnswerYes: opt.answer_yes = 1; break;
case oAnswerNo: opt.answer_no = 1; break;
case oKeyring: append_to_strlist( &nrings, pargs.r.ret_str); break;
diff --git a/g10/main.h b/g10/main.h
index 99048203e..226898d29 100644
--- a/g10/main.h
+++ b/g10/main.h
@@ -118,6 +118,8 @@ void deprecated_warning(const char *configname,unsigned int configlineno,
void deprecated_command (const char *name);
void obsolete_option (const char *configname, unsigned int configlineno,
const char *name);
+void obsolete_scdaemon_option (const char *configname,
+ unsigned int configlineno, const char *name);
int string_to_cipher_algo (const char *string);
int string_to_digest_algo (const char *string);
diff --git a/g10/misc.c b/g10/misc.c
index 43ea0d2e3..ef03776ef 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -851,6 +851,20 @@ obsolete_option (const char *configname, unsigned int configlineno,
}
+void
+obsolete_scdaemon_option (const char *configname, unsigned int configlineno,
+ const char *name)
+{
+ if (configname)
+ log_info (_("%s:%u: \"%s%s\" is obsolete in this file"
+ " - it only has effect in %s\n"),
+ configname, configlineno, name, "--", "scdaemon.conf");
+ else
+ log_info (_("WARNING: \"%s%s\" is an obsolete option"
+ " - it has no effect except on %s\n"), "--", name, "scdaemon");
+}
+
+
/*
* Wrapper around gcry_cipher_map_name to provide a fallback using the
* "Sn" syntax as used by the preference strings.