[git] GnuPG - branch, master, updated. gnupg-2.1.0-beta834-27-gade531a

by Werner Koch cvs at cvs.gnupg.org
Fri Oct 3 13:06:20 CEST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, master has been updated
       via  ade531acac5041b8346581fe323f36b9dcfee502 (commit)
       via  6522a68d8d11e15ee77102e6830f251c2d9f440d (commit)
       via  a6fcdbc9e0fc0e45a3badc23813e689e83059b61 (commit)
       via  09a8f75f303388ebc77fc9b4f8b70431af2f6902 (commit)
       via  b15d5d42adf31c0797797ebe19c471ab6f52c668 (commit)
       via  9c380384dafb213334f8834178c5ceb0bf33db6e (commit)
      from  688a903b4b3ad348c0d09e9d3fab8a12f4f94311 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ade531acac5041b8346581fe323f36b9dcfee502
Author: Werner Koch <wk at gnupg.org>
Date:   Fri Oct 3 13:02:06 2014 +0200

    Some doc fixes and a fix for "make distcheck".
    
    --

diff --git a/README b/README
index 94c0756..ad52077 100644
--- a/README
+++ b/README
@@ -2,28 +2,39 @@
                       =========================
                              Version 2.1
 
-   THIS IS A DEVELOPMENT VERSION AND NOT INTENDED FOR REGULAR USE.
-
           Copyright 1997-1998, 2013-2014 Werner Koch
           Copyright 1998-2013 Free Software Foundation, Inc.
 
 
 * INTRODUCTION
 
-  GnuPG is a tool for secure communication and data storage.  It can
-  be used to encrypt data and to create digital signatures.  It
-  includes an advanced key management facility and is compliant with
-  the proposed OpenPGP Internet standard as described in RFC4880 and
-  the S/MIME standard as described by several RFCs.
+  GnuPG is a complete and free implementation of the OpenPGP standard
+  as defined by RFC4880 (also known as PGP).  GnuPG allows to encrypt
+  and sign data and communication, features a versatile key management
+  system as well as access modules for public key directories.
+
+  GnuPG, also known as GPG, is a command line tool with features for
+  easy integration with other applications.  A wealth of frontend
+  applications and libraries making use of GnuPG are available.  Since
+  version 2 GnuPG provides support for S/MIME and Secure Shell in
+  addition to OpenPGP.
+
+  GnuPG is Free Software (meaning that it respects your freedom). It
+  can be freely used, modified and distributed under the terms of the
+  GNU General Public License.
+
+  We are currently maintaining three branches of GnuPG:
+
+  - 2.1 (i.e. this release) is the latest development with a lot of
+    new features.
 
-  GnuPG is distributed under the terms of the GNU General Public
-  License.  See the file COPYING for details.  GnuPG works best on
-  GNU/Linux or *BSD systems.  Most other Unices are also supported but
-  are not as well tested as the Free Unices.
+  - 2.0 is the current stable version for general use.
 
-  GnuPG-2 is the stable version of GnuPG integrating support for
-  OpenPGP and S/MIME.  It does not conflict with an installed 1.4
-  OpenPGP-only version.
+  - 1.4 is the old standalone version which is most suitable for older
+    or embedded platforms.
+
+  You may not install 2.1 and 2.0 at the same time.  However, it is
+  possible to install 1.4 along with any of the 2.x versions.
 
 
 * BUILD INSTRUCTIONS
@@ -115,22 +126,15 @@
   exists and copies them to the new store.  The old secring.gpg is
   kept for use by older versions of gpg.
 
-  GPG's smartcard commands --card-edit and --card-status as well as some
-  of the card related sub-commands of --edit-key are not yet fully
-  supported.  However, signing and decryption with a smartcard does
-  work.
-
-  Note that gpg-agent now uses a fixed socket by default.  All tools
-  will start the gpg-agent as needed.  In general there is no more
-  need to set the GPG_AGENT_INFO environment variable.  The
-  SSH_AUTH_SOCK environment variable should be set to a fixed value.
+  Note that gpg-agent now uses a fixed socket.  All tools will start
+  the gpg-agent as needed.  The formerly used environment variable
+  GPG_AGENT_INFO is ignored by 2.1.  The SSH_AUTH_SOCK environment
+  variable should be set to a fixed value.
 
   The Dirmngr is now part of GnuPG proper and also used to access
-  OpenPGP keyservers.  The directroy layout of Dirmngr changed to make
+  OpenPGP keyservers.  The directory layout of Dirmngr changed to make
   use of the GnuPG directories.  Dirmngr is started by gpg or gpgsm as
-  needed needed. There is no more need to install a separate dirmngr
-  package.
-
+  needed. There is no more need to install a separate Dirmngr package.
 
 
 * DOCUMENTATION
@@ -203,10 +207,12 @@
 
   Commercial grade support for GnuPG is available; for a listing of
   offers see https://www.gnupg.org/service.html .  Maintaining and
-  improving GnuPG is costly.  Since 2001, g10 Code GmbH, a German
-  company owned and headed by GnuPG's principal author Werner Koch, is
-  bearing the majority of these costs.  To help them carry on this
-  work, they need your support.  See https://gnupg.org/donate/ .
+  improving GnuPG requires a lot of time.  Since 2001, g10 Code GmbH,
+  a German company owned and headed by GnuPG's principal author Werner
+  Koch, is bearing the majority of these costs.  To keep GnuPG in a
+  healthy state, they need your support.
+
+  Please consider to donate at https://gnupg.org/donate/ .
 
 
 # This file is Free Software; as a special exception the authors gives
diff --git a/po/de.po b/po/de.po
index d5db5df..d3bd5ff 100644
--- a/po/de.po
+++ b/po/de.po
@@ -4342,7 +4342,8 @@ msgstr "WARNUNG: \"%s%s\" ist eine veraltete Option - sie hat keine Wirkung.\n"
 
 #, c-format
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "%s:%u: Die Option \"%s\" is veraltet - sie hat eine Wirkung nur in %s.\n"
+msgstr ""
+"%s:%u: Die Option \"%s\" is veraltet - sie hat eine Wirkung nur in %s.\n"
 
 #, c-format
 msgid ""
diff --git a/tests/openpgp/Makefile.am b/tests/openpgp/Makefile.am
index 17d1911..cc28027 100644
--- a/tests/openpgp/Makefile.am
+++ b/tests/openpgp/Makefile.am
@@ -76,8 +76,9 @@ EXTRA_DIST = defs.inc pinentry.sh $(TESTS) $(TEST_FILES) ChangeLog-2011 \
 CLEANFILES = prepared.stamp x y yy z out err  $(data_files) \
 	     plain-1 plain-2 plain-3 trustdb.gpg *.lock .\#lk* \
 	     *.test.log gpg_dearmor gpg.conf gpg-agent.conf S.gpg-agent \
-	     pubring.gpg secring.gpg pubring.pkr secring.skr \
-	     gnupg-test.stop pubring.gpg~ random_seed gpg-agent.log
+	     pubring.gpg pubring.gpg~ pubring.kbx pubring.kbx~ \
+	     secring.gpg pubring.pkr secring.skr \
+	     gnupg-test.stop random_seed gpg-agent.log
 
 clean-local:
 	-rm -rf private-keys-v1.d openpgp-revocs.d

commit 6522a68d8d11e15ee77102e6830f251c2d9f440d
Author: Werner Koch <wk at gnupg.org>
Date:   Fri Oct 3 12:35:22 2014 +0200

    build: Add configure options --disable-{ntb,gnu}tls.
    
    * configure.ac: Add --disable-ntbtls and --disable-gnutls.

diff --git a/configure.ac b/configure.ac
index 9e1dd89..28268f1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -93,6 +93,7 @@ have_libgcrypt=no
 have_libassuan=no
 have_ksba=no
 have_ntbtls=no
+have_gnutls=no
 have_npth=no
 have_libusb=no
 have_adns=no
@@ -829,16 +830,27 @@ fi
 # NTBTLS is our TLS library.  If it is not available fallback to
 # GNUTLS.
 #
-AM_PATH_NTBTLS("$NEED_NTBTLS_API:$NEED_NTBTLS_VERSION",
-               [have_ntbtls=yes],[have_ntbtls=no])
-
+AC_ARG_ENABLE(ntbtls,
+              AC_HELP_STRING([--disable-ntbtls],
+                             [disable the use of NTBTLS as TLS library]),
+              try_ntbtls=$enableval, try_ntbtls=yes)
+if test x"$try_ntbtls" = xyes ; then
+  AM_PATH_NTBTLS("$NEED_NTBTLS_API:$NEED_NTBTLS_VERSION",
+                 [have_ntbtls=yes],[have_ntbtls=no])
+fi
 if test "$have_ntbtls" = yes ; then
    use_tls_library=ntbtls
    AC_DEFINE(HTTP_USE_NTBTLS, 1, [Enable NTBTLS support in http.c])
 else
-  PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= $NEED_GNUTLS_VERSION],
-                                 [have_gnutls=yes],
-                                 [have_gnutls=no])
+  AC_ARG_ENABLE(gnutls,
+                AC_HELP_STRING([--disable-gnutls],
+                               [disable GNUTLS as fallback TLS library]),
+                try_gnutls=$enableval, try_gnutls=yes)
+  if test x"$try_gnutls" = xyes ; then
+    PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= $NEED_GNUTLS_VERSION],
+                                   [have_gnutls=yes],
+                                   [have_gnutls=no])
+  fi
   if test "$have_gnutls" = "yes"; then
     AC_SUBST([LIBGNUTLS_CFLAGS])
     AC_SUBST([LIBGNUTLS_LIBS])

commit a6fcdbc9e0fc0e45a3badc23813e689e83059b61
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Fri Sep 19 19:38:13 2014 +0200

    gpg: Check gpg-agent version before 2.1 migration.
    
    * g10/call-agent.c, g10/call-agent.h (agent_get_version): New.
    * g10/migrate.c (migrate_secring): Abort migration if
    agent_get_version returns not at least 2.1.0
    
    --
    GnuPG-bug-id: 1718
    
    On the first installation of GnuPG 2.1 it is likely that an
    old gpg-agent is still running in the environment. In that
    case the migration would fail.
    
    Signed-off-by: Andre Heinecke <aheinecke at intevation.de>

diff --git a/g10/call-agent.c b/g10/call-agent.c
index 58f4a92..080df18 100644
--- a/g10/call-agent.c
+++ b/g10/call-agent.c
@@ -2277,3 +2277,33 @@ agent_passwd (ctrl_t ctrl, const char *hexkeygrip, const char *desc,
                          cache_nonce_status_cb, &cn_parm);
   return err;
 }
+
+/* Return the version reported by gpg-agent.  */
+gpg_error_t
+agent_get_version (ctrl_t ctrl, char **r_version)
+{
+  gpg_error_t err;
+  membuf_t data;
+
+  err = start_agent (ctrl, 0);
+  if (err)
+    return err;
+
+  init_membuf (&data, 64);
+  err = assuan_transact (agent_ctx, "GETINFO version",
+                        membuf_data_cb, &data,
+                        NULL, NULL, NULL, NULL);
+  if (err)
+    {
+      xfree (get_membuf (&data, NULL));
+      *r_version = NULL;
+    }
+  else
+    {
+      put_membuf (&data, "", 1);
+      *r_version = get_membuf (&data, NULL);
+      if (!*r_version)
+        err = gpg_error_from_syserror ();
+    }
+  return err;
+}
diff --git a/g10/call-agent.h b/g10/call-agent.h
index 1deb854..5b4cd09 100644
--- a/g10/call-agent.h
+++ b/g10/call-agent.h
@@ -192,6 +192,8 @@ gpg_error_t agent_delete_key (ctrl_t ctrl, const char *hexkeygrip,
 /* Change the passphrase of a key.  */
 gpg_error_t agent_passwd (ctrl_t ctrl, const char *hexkeygrip, const char *desc,
                           char **cache_nonce_addr, char **passwd_nonce_addr);
+/* Get the version reported by gpg-agent.  */
+gpg_error_t agent_get_version (ctrl_t ctrl, char **r_version);
 
 
 #endif /*GNUPG_G10_CALL_AGENT_H*/
diff --git a/g10/migrate.c b/g10/migrate.c
index 9a21cfe..5cb3512 100644
--- a/g10/migrate.c
+++ b/g10/migrate.c
@@ -29,6 +29,7 @@
 #include "keydb.h"
 #include "util.h"
 #include "main.h"
+#include "call-agent.h"
 
 
 #ifdef HAVE_DOSISH_SYSTEM
@@ -46,6 +47,7 @@ migrate_secring (ctrl_t ctrl)
   dotlock_t lockhd = NULL;
   char *secring = NULL;
   char *flagfile = NULL;
+  char *agent_version = NULL;
 
   secring = make_filename (opt.homedir, "secring" EXTSEP_S "gpg", NULL);
   if (access (secring, F_OK))
@@ -72,6 +74,27 @@ migrate_secring (ctrl_t ctrl)
       goto leave;
     }
 
+  if (!agent_get_version (ctrl, &agent_version))
+    {
+      if (!gnupg_compare_version (agent_version, "2.1.0"))
+        {
+          log_error ("error: GnuPG agent version \"%s\" is too old. ",
+                     agent_version);
+          log_error ("Please install an updated GnuPG agent.\n");
+          log_error ("migration aborted\n");
+          xfree (agent_version);
+          goto leave;
+        }
+      xfree (agent_version);
+    }
+  else
+    {
+      log_error ("error: GnuPG agent unusable. "
+                 "Please check that a GnuPG agent can be started.\n");
+      log_error ("migration aborted\n");
+      goto leave;
+    }
+
   log_info ("porting secret keys from '%s' to gpg-agent\n", secring);
   if (!import_old_secring (ctrl, secring))
     {

commit 09a8f75f303388ebc77fc9b4f8b70431af2f6902
Author: Werner Koch <wk at gnupg.org>
Date:   Fri Oct 3 12:13:25 2014 +0200

    po: Auto update translations.
    
    --

diff --git a/po/fr.po b/po/fr.po
index 11f724a..2ba5e46 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -333,9 +333,6 @@ msgstr "ne pas capturer le clavier et la souris"
 msgid "use a log file for the server"
 msgstr "utiliser un fichier journal pour le serveur"
 
-msgid "use a standard location for the socket"
-msgstr "utiliser un emplacement de socket standard"
-
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr "|PROG|utiliser PROG pour entrer le code personnel"
 
@@ -373,9 +370,6 @@ msgstr ""
 msgid "enable putty support"
 msgstr "non pris en charge"
 
-msgid "|FILE|write environment settings also to FILE"
-msgstr "|FICHIER|écrire aussi les réglages d'env. dans FICHIER"
-
 # @EMAIL@ is currently an URL
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
@@ -419,14 +413,6 @@ msgstr "lecture des options de « %s »\n"
 msgid "NOTE: '%s' is not considered an option\n"
 msgstr "Remarque : « %s » n'est pas considéré comme une option\n"
 
-#, c-format
-msgid "error creating '%s': %s\n"
-msgstr "erreur de création de « %s » : %s\n"
-
-#, c-format
-msgid "can't create directory '%s': %s\n"
-msgstr "impossible de créer le répertoire « %s » : %s\n"
-
 msgid "name of socket too long\n"
 msgstr "nom de socket trop long\n"
 
@@ -459,6 +445,10 @@ msgid "listening on socket '%s'\n"
 msgstr "écoute sur la socket « %s »\n"
 
 #, c-format
+msgid "can't create directory '%s': %s\n"
+msgstr "impossible de créer le répertoire « %s » : %s\n"
+
+#, c-format
 msgid "directory '%s' created\n"
 msgstr "répertoire « %s » créé\n"
 
@@ -502,15 +492,6 @@ msgid "no gpg-agent running in this session\n"
 msgstr ""
 "aucune instance de gpg-agent n'est en cours d'exécution dans cette session\n"
 
-#, fuzzy, c-format
-#| msgid "malformed DIRMNGR_INFO environment variable\n"
-msgid "malformed %s environment variable\n"
-msgstr "la variable d'environnement DIRMNGR_INFO est mal définie\n"
-
-#, c-format
-msgid "gpg-agent protocol version %d is not supported\n"
-msgstr "le protocole gpg-agent version %d n'est pas pris en charge\n"
-
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
 msgstr ""
 "Utilisation : gpg-preset-passphrase [options] KEYGRIP (-h pour l'aide)\n"
@@ -833,10 +814,6 @@ msgstr "attente pour permettre à l'agent d'arriver… (%d s)\n"
 msgid "connection to agent established\n"
 msgstr "connexion à l'agent établie\n"
 
-msgid "can't connect to the agent - trying fall back\n"
-msgstr ""
-"impossible de se connecter à l'agent — essai avec la solution de repli\n"
-
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
 msgstr "pas d'instance de Dirmngr en cours d'exécution — démarrage de « %s »\n"
@@ -1726,13 +1703,16 @@ msgstr "afficher les clefs et les empreintes"
 msgid "list secret keys"
 msgstr "afficher les clefs secrètes"
 
+msgid "generate a new key pair"
+msgstr "générer une nouvelle paire de clefs"
+
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly generate a new key pair"
 msgstr "générer une nouvelle paire de clefs"
 
-msgid "generate a new key pair"
-msgstr "générer une nouvelle paire de clefs"
+msgid "full featured key pair generation"
+msgstr ""
 
 msgid "generate a revocation certificate"
 msgstr "générer un certificat de révocation"
@@ -3667,9 +3647,9 @@ msgid "   (%d) RSA (set your own capabilities)\n"
 msgstr "   (%d) RSA (indiquez vous-même les capacités)\n"
 
 #, fuzzy, c-format
-#| msgid "   (%d) RSA\n"
-msgid "   (%d) ECC\n"
-msgstr "   (%d) RSA\n"
+#| msgid "   (%d) ECDSA and ECDH\n"
+msgid "   (%d) ECC and ECC\n"
+msgstr "   (%d) ECDSA et ECDH\n"
 
 #, fuzzy, c-format
 #| msgid "  (%d) ECDSA (sign only)\n"
@@ -3886,6 +3866,19 @@ msgstr ""
 "Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique\n"
 "ou (O)ui/(Q)uitter ? "
 
+#, fuzzy
+#| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgid "Change (N)ame, (E)mail, or (Q)uit? "
+msgstr ""
+"Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique ou (Q)uitter ? "
+
+#, fuzzy
+#| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
+msgstr ""
+"Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique\n"
+"ou (O)ui/(Q)uitter ? "
+
 msgid "Please correct the error first\n"
 msgstr "Veuillez d'abord corriger l'erreur\n"
 
@@ -3962,6 +3955,10 @@ msgstr "Faut-il quand même utiliser cette clef ? (o/N) "
 msgid "creating anyway\n"
 msgstr "génération d'une nouvelle clef\n"
 
+#, c-format
+msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
+msgstr ""
+
 msgid "Key generation canceled.\n"
 msgstr "La génération de clef a été annulée.\n"
 
@@ -4420,8 +4417,20 @@ msgstr "Attention : « %s » est une commande déconseillée — ne l'utilise
 msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
 msgstr "%s : %u : option « %s » obsolète — non prise en compte\n"
 
-#, c-format
-msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
+#, fuzzy, c-format
+#| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
+msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
+msgstr "Attention : « %s » est une option obsolète — non prise en compte\n"
+
+#, fuzzy, c-format
+#| msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
+msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
+msgstr "%s : %u : option « %s » obsolète — non prise en compte\n"
+
+#, fuzzy, c-format
+#| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
+msgid ""
+"WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
 msgstr "Attention : « %s » est une option obsolète — non prise en compte\n"
 
 msgid "Uncompressed"
@@ -4879,6 +4888,10 @@ msgstr ""
 "les données ne sont pas enregistrées ; utilisez l'option « --output » pour\n"
 "les enregistrer\n"
 
+#, c-format
+msgid "error creating '%s': %s\n"
+msgstr "erreur de création de « %s » : %s\n"
+
 msgid "Detached signature.\n"
 msgstr "Signature détachée.\n"
 
@@ -7167,6 +7180,11 @@ msgstr ""
 "pas d'instance de dirmngr en cours d'exécution —\n"
 "démarrage d'une nouvelle instance\n"
 
+#, fuzzy, c-format
+#| msgid "malformed DIRMNGR_INFO environment variable\n"
+msgid "malformed %s environment variable\n"
+msgstr "la variable d'environnement DIRMNGR_INFO est mal définie\n"
+
 #, c-format
 msgid "dirmngr protocol version %d is not supported\n"
 msgstr "le protocole dirmngr version %d n'est pas pris en charge\n"
@@ -8186,6 +8204,24 @@ msgstr ""
 "Vérifier une phrase de passe donnée sur l'entrée standard par rapport à "
 "ficmotif\n"
 
+#~ msgid "use a standard location for the socket"
+#~ msgstr "utiliser un emplacement de socket standard"
+
+#~ msgid "|FILE|write environment settings also to FILE"
+#~ msgstr "|FICHIER|écrire aussi les réglages d'env. dans FICHIER"
+
+#~ msgid "gpg-agent protocol version %d is not supported\n"
+#~ msgstr "le protocole gpg-agent version %d n'est pas pris en charge\n"
+
+#~ msgid "can't connect to the agent - trying fall back\n"
+#~ msgstr ""
+#~ "impossible de se connecter à l'agent — essai avec la solution de repli\n"
+
+#, fuzzy
+#~| msgid "   (%d) RSA\n"
+#~ msgid "   (%d) ECC\n"
+#~ msgstr "   (%d) RSA\n"
+
 #, fuzzy
 #~| msgid "can't create directory '%s': %s\n"
 #~ msgid "can't create directory `%s': %s\n"
@@ -8305,9 +8341,6 @@ msgstr ""
 #~ msgid "deleting secret key not implemented\n"
 #~ msgstr "la suppression de clef secrète n'est pas implémentée\n"
 
-#~ msgid "   (%d) ECDSA and ECDH\n"
-#~ msgstr "   (%d) ECDSA et ECDH\n"
-
 #~ msgid "10 translator see trustdb.c:uid_trust_string_fixed"
 #~ msgstr "11 le traducteur a bien lu ce qu'il fallait :)"
 
diff --git a/po/ja.po b/po/ja.po
index 73de77a..365365a 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -323,9 +323,6 @@ msgstr "キーボードとマウスを占有しない"
 msgid "use a log file for the server"
 msgstr "サーバのログ・ファイルを使う"
 
-msgid "use a standard location for the socket"
-msgstr "ソケットに標準の場所を使う"
-
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr "|PGM|PGMをPIN入力プログラムとして使う"
 
@@ -359,9 +356,6 @@ msgstr "sshサポートを有功にする"
 msgid "enable putty support"
 msgstr "puttyサポートを有功にする"
 
-msgid "|FILE|write environment settings also to FILE"
-msgstr "|FILE|FILEに環境変数の設定も書き出す"
-
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
 #. reporting address without breaking the translations.
@@ -402,14 +396,6 @@ msgstr "'%s' からオプションを読み込みます\n"
 msgid "NOTE: '%s' is not considered an option\n"
 msgstr "*注意*: '%s'はオプションとは考えられません\n"
 
-#, c-format
-msgid "error creating '%s': %s\n"
-msgstr "'%s'の作成エラー: %s\n"
-
-#, c-format
-msgid "can't create directory '%s': %s\n"
-msgstr "ディレクトリ'%s'が作成できません: %s\n"
-
 msgid "name of socket too long\n"
 msgstr "ソケット名が長すぎます\n"
 
@@ -440,6 +426,10 @@ msgid "listening on socket '%s'\n"
 msgstr "ソケット'%s'でlisten\n"
 
 #, c-format
+msgid "can't create directory '%s': %s\n"
+msgstr "ディレクトリ'%s'が作成できません: %s\n"
+
+#, c-format
 msgid "directory '%s' created\n"
 msgstr "ディレクトリ'%s'が作成されました\n"
 
@@ -482,14 +472,6 @@ msgstr "%s %s 停止しました\n"
 msgid "no gpg-agent running in this session\n"
 msgstr "このセッションでgpg-agentは実行されていません\n"
 
-#, c-format
-msgid "malformed %s environment variable\n"
-msgstr "環境変数%sが破壊されています\n"
-
-#, c-format
-msgid "gpg-agent protocol version %d is not supported\n"
-msgstr "gpg-agentプロトコル・バージョン%dはサポートされていません\n"
-
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
 msgstr "使い方: gpg-preset-passphrase [オプション] KEYGRIP (ヘルプは -h)\n"
 
@@ -804,9 +786,6 @@ msgstr "agentの起動のため、%d秒待ちます\n"
 msgid "connection to agent established\n"
 msgstr "エージェントへの接続が確立しました。\n"
 
-msgid "can't connect to the agent - trying fall back\n"
-msgstr "agentに接続できません - フォールバックしてみます\n"
-
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
 msgstr "dirmngrが動いていません - 開始します'%s'\n"
@@ -1664,13 +1643,16 @@ msgstr "鍵とフィンガープリントの一覧"
 msgid "list secret keys"
 msgstr "秘密鍵の一覧"
 
+msgid "generate a new key pair"
+msgstr "新しい鍵対を生成"
+
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly generate a new key pair"
 msgstr "新しい鍵対を生成"
 
-msgid "generate a new key pair"
-msgstr "新しい鍵対を生成"
+msgid "full featured key pair generation"
+msgstr ""
 
 msgid "generate a revocation certificate"
 msgstr "失効証明書を生成"
@@ -3522,8 +3504,9 @@ msgstr "   (%d) DSA (特性をあなた自身で設定)\n"
 msgid "   (%d) RSA (set your own capabilities)\n"
 msgstr "   (%d) RSA (特性をあなた自身で設定)\n"
 
-#, c-format
-msgid "   (%d) ECC\n"
+#, fuzzy, c-format
+#| msgid "   (%d) ECC\n"
+msgid "   (%d) ECC and ECC\n"
 msgstr "   (%d) ECC\n"
 
 #, c-format
@@ -3730,6 +3713,16 @@ msgstr "名前(N)、コメント(C)、電子メール(E)の変更、または終
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr "名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? "
 
+#, fuzzy
+#| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgid "Change (N)ame, (E)mail, or (Q)uit? "
+msgstr "名前(N)、コメント(C)、電子メール(E)の変更、または終了(Q)? "
+
+#, fuzzy
+#| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
+msgstr "名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? "
+
 msgid "Please correct the error first\n"
 msgstr "まずエラーを修正してください\n"
 
@@ -3806,6 +3799,10 @@ msgstr "それでもこの鍵を使いますか? (y/N) "
 msgid "creating anyway\n"
 msgstr "新しい鍵を生成\n"
 
+#, c-format
+msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
+msgstr ""
+
 msgid "Key generation canceled.\n"
 msgstr "鍵の生成が取り消されました。\n"
 
@@ -4236,8 +4233,22 @@ msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
 msgstr ""
 "%s:%u: \"%s\"は、使われなくなったオプションです - なんの効果もありません\n"
 
-#, c-format
-msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
+#, fuzzy, c-format
+#| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
+msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
+msgstr ""
+"*警告*: \"%s\"は、使われなくなったオプションです - なんの効果もありません\n"
+
+#, fuzzy, c-format
+#| msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
+msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
+msgstr ""
+"%s:%u: \"%s\"は、使われなくなったオプションです - なんの効果もありません\n"
+
+#, fuzzy, c-format
+#| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
+msgid ""
+"WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
 msgstr ""
 "*警告*: \"%s\"は、使われなくなったオプションです - なんの効果もありません\n"
 
@@ -4639,6 +4650,10 @@ msgid "data not saved; use option \"--output\" to save it\n"
 msgstr ""
 "データは保存されていません。保存には\"--output\"オプションを使ってください\n"
 
+#, c-format
+msgid "error creating '%s': %s\n"
+msgstr "'%s'の作成エラー: %s\n"
+
 msgid "Detached signature.\n"
 msgstr "分離署名。\n"
 
@@ -6764,6 +6779,10 @@ msgid "no running dirmngr - starting one\n"
 msgstr "dirmngrが動いていません - 開始します\n"
 
 #, c-format
+msgid "malformed %s environment variable\n"
+msgstr "環境変数%sが破壊されています\n"
+
+#, c-format
 msgid "dirmngr protocol version %d is not supported\n"
 msgstr "dirmngrプロトコル・バージョン%dはサポートされていません\n"
 
@@ -7744,6 +7763,18 @@ msgstr ""
 "形式: gpg-check-pattern [オプション] パターンファイル\n"
 "パターンファイルに対して標準入力のパスフレーズを確認する\n"
 
+#~ msgid "use a standard location for the socket"
+#~ msgstr "ソケットに標準の場所を使う"
+
+#~ msgid "|FILE|write environment settings also to FILE"
+#~ msgstr "|FILE|FILEに環境変数の設定も書き出す"
+
+#~ msgid "gpg-agent protocol version %d is not supported\n"
+#~ msgstr "gpg-agentプロトコル・バージョン%dはサポートされていません\n"
+
+#~ msgid "can't connect to the agent - trying fall back\n"
+#~ msgstr "agentに接続できません - フォールバックしてみます\n"
+
 #, fuzzy
 #~| msgid "can't create directory '%s': %s\n"
 #~ msgid "can't create directory `%s': %s\n"
diff --git a/po/uk.po b/po/uk.po
index 9a7090e..785fae5 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -333,9 +333,6 @@ msgstr "не захоплювати керування клавіатурою і
 msgid "use a log file for the server"
 msgstr "використовувати файл журналу для сервера"
 
-msgid "use a standard location for the socket"
-msgstr "використовувати для сокета стандартне розташування"
-
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr "використовувати вказану програму пінзаписів"
 
@@ -369,9 +366,6 @@ msgstr "увімкнути підтримку ssh"
 msgid "enable putty support"
 msgstr "увімкнути підтримку putty"
 
-msgid "|FILE|write environment settings also to FILE"
-msgstr "записати параметри середовища і до файла"
-
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
 #. reporting address without breaking the translations.
@@ -412,14 +406,6 @@ msgstr "прочитати параметри з «%s»\n"
 msgid "NOTE: '%s' is not considered an option\n"
 msgstr "ЗАУВАЖЕННЯ: %s не призначено для звичайного використання!\n"
 
-#, c-format
-msgid "error creating '%s': %s\n"
-msgstr "помилка створення «%s»: %s.\n"
-
-#, c-format
-msgid "can't create directory '%s': %s\n"
-msgstr "не вдалося створити каталог «%s»: %s\n"
-
 msgid "name of socket too long\n"
 msgstr "назва сокета є надто довгою\n"
 
@@ -450,6 +436,10 @@ msgid "listening on socket '%s'\n"
 msgstr "очікування даних на сокеті «%s»\n"
 
 #, c-format
+msgid "can't create directory '%s': %s\n"
+msgstr "не вдалося створити каталог «%s»: %s\n"
+
+#, c-format
 msgid "directory '%s' created\n"
 msgstr "створено каталог «%s»\n"
 
@@ -494,14 +484,6 @@ msgstr "%s %s зупинено\n"
 msgid "no gpg-agent running in this session\n"
 msgstr "у цьому сеансі не запущено gpg-agent\n"
 
-#, c-format
-msgid "malformed %s environment variable\n"
-msgstr "помилкове форматування змінної середовища %s\n"
-
-#, c-format
-msgid "gpg-agent protocol version %d is not supported\n"
-msgstr "підтримки версії протоколу gpg-agent %d не передбачено\n"
-
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
 msgstr ""
 "Використання: gpg-preset-passphrase [параметри] KEYGRIP (-h — довідка)\n"
@@ -826,10 +808,6 @@ msgstr "очікування на працездатність агента… (
 msgid "connection to agent established\n"
 msgstr "встановлено з’єднання з агентом\n"
 
-msgid "can't connect to the agent - trying fall back\n"
-msgstr ""
-"не вдалося встановити з’єднання з агентом, використовуємо резервний варіант\n"
-
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
 msgstr "Dirmngr не запущено — запускаємо «%s»\n"
@@ -1705,13 +1683,16 @@ msgstr "показати список ключів і відбитків"
 msgid "list secret keys"
 msgstr "показати список закритих ключів"
 
+msgid "generate a new key pair"
+msgstr "створити пару ключів"
+
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly generate a new key pair"
 msgstr "створити пару ключів"
 
-msgid "generate a new key pair"
-msgstr "створити пару ключів"
+msgid "full featured key pair generation"
+msgstr ""
 
 msgid "generate a revocation certificate"
 msgstr "створити сертифікат відкликання"
@@ -3636,9 +3617,10 @@ msgstr "   (%d) DSA (із визначенням можливостей влас
 msgid "   (%d) RSA (set your own capabilities)\n"
 msgstr "   (%d) RSA (із визначенням можливостей власноруч)\n"
 
-#, c-format
-msgid "   (%d) ECC\n"
-msgstr "   (%d) ECC\n"
+#, fuzzy, c-format
+#| msgid "   (%d) ECDSA and ECDH\n"
+msgid "   (%d) ECC and ECC\n"
+msgstr "   (%d) ECDSA і ECDH\n"
 
 #, c-format
 msgid "  (%d) ECC (sign only)\n"
@@ -3849,6 +3831,17 @@ msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr ""
 "Змінити назву (N), коментар (C), ел. пошту (E) або гаразд (O) чи вийти (Q)? "
 
+#, fuzzy
+#| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgid "Change (N)ame, (E)mail, or (Q)uit? "
+msgstr "Змінити назву (N), коментар (C), ел. пошту (E) або вийти (Q)? "
+
+#, fuzzy
+#| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
+msgstr ""
+"Змінити назву (N), коментар (C), ел. пошту (E) або гаразд (O) чи вийти (Q)? "
+
 msgid "Please correct the error first\n"
 msgstr "Спочатку виправте помилку\n"
 
@@ -3924,6 +3917,10 @@ msgstr "Попри все використовувати цей ключ? (y/N 
 msgid "creating anyway\n"
 msgstr "створення нового ключа\n"
 
+#, c-format
+msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
+msgstr ""
+
 msgid "Key generation canceled.\n"
 msgstr "Створення ключа скасовано.\n"
 
@@ -4373,8 +4370,20 @@ msgstr "УВАГА: «%s» вважається застарілою коман
 msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
 msgstr "%s:%u: застарілий параметр «%s» — він не працюватиме\n"
 
-#, c-format
-msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
+#, fuzzy, c-format
+#| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
+msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
+msgstr "УВАГА: «%s» є застарілим параметром — він не працюватиме\n"
+
+#, fuzzy, c-format
+#| msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
+msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
+msgstr "%s:%u: застарілий параметр «%s» — він не працюватиме\n"
+
+#, fuzzy, c-format
+#| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
+msgid ""
+"WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
 msgstr "УВАГА: «%s» є застарілим параметром — він не працюватиме\n"
 
 msgid "Uncompressed"
@@ -4788,6 +4797,10 @@ msgstr ""
 "дані не збережено; скористайтеся для їхнього збереження параметром «--"
 "output»\n"
 
+#, c-format
+msgid "error creating '%s': %s\n"
+msgstr "помилка створення «%s»: %s.\n"
+
 msgid "Detached signature.\n"
 msgstr "Від’єднаний підпис.\n"
 
@@ -6971,6 +6984,10 @@ msgid "no running dirmngr - starting one\n"
 msgstr "dirmngr не запущено — запускаємо\n"
 
 #, c-format
+msgid "malformed %s environment variable\n"
+msgstr "помилкове форматування змінної середовища %s\n"
+
+#, c-format
 msgid "dirmngr protocol version %d is not supported\n"
 msgstr "підтримки протоколу dirmngr версії %d не передбачено\n"
 
@@ -7961,6 +7978,23 @@ msgstr ""
 "Синтаксис: gpg-check-pattern [параметри] файл_шаблонів\n"
 "Перевірити пароль, вказаний у stdin, за допомогою файла_шаблонів\n"
 
+#~ msgid "use a standard location for the socket"
+#~ msgstr "використовувати для сокета стандартне розташування"
+
+#~ msgid "|FILE|write environment settings also to FILE"
+#~ msgstr "записати параметри середовища і до файла"
+
+#~ msgid "gpg-agent protocol version %d is not supported\n"
+#~ msgstr "підтримки версії протоколу gpg-agent %d не передбачено\n"
+
+#~ msgid "can't connect to the agent - trying fall back\n"
+#~ msgstr ""
+#~ "не вдалося встановити з’єднання з агентом, використовуємо резервний "
+#~ "варіант\n"
+
+#~ msgid "   (%d) ECC\n"
+#~ msgstr "   (%d) ECC\n"
+
 #, fuzzy
 #~| msgid "can't create directory '%s': %s\n"
 #~ msgid "can't create directory `%s': %s\n"
@@ -8073,9 +8107,6 @@ msgstr ""
 #~ msgid "too many entries in pk cache - disabled\n"
 #~ msgstr "занадто багато записів у кеші pk — вимкнено\n"
 
-#~ msgid "   (%d) ECDSA and ECDH\n"
-#~ msgstr "   (%d) ECDSA і ECDH\n"
-
 #~ msgid "the IDEA cipher plugin is not present\n"
 #~ msgstr "не виявлено додатка шифрування IDEA\n"
 

commit b15d5d42adf31c0797797ebe19c471ab6f52c668
Author: Werner Koch <wk at gnupg.org>
Date:   Fri Oct 3 12:13:05 2014 +0200

    po: Update German translation.

diff --git a/po/de.po b/po/de.po
index 8804b24..d5db5df 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnupg-2.1.0\n"
 "Report-Msgid-Bugs-To: translations at gnupg.org\n"
-"PO-Revision-Date: 2014-08-14 17:12+0200\n"
+"PO-Revision-Date: 2014-10-03 12:12+0200\n"
 "Last-Translator: Werner Koch <wk at gnupg.org>\n"
 "Language-Team: German <de at li.org>\n"
 "Language: de\n"
@@ -318,9 +318,6 @@ msgstr "Tastatur und Maus nicht \"grabben\""
 msgid "use a log file for the server"
 msgstr "Logausgaben in eine Datei umlenken"
 
-msgid "use a standard location for the socket"
-msgstr "Benutze einen Standardnamen für den Socket"
-
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr "|PGM|benutze PGM as PIN-Entry"
 
@@ -354,9 +351,6 @@ msgstr "SSH Unterstützung einschalten"
 msgid "enable putty support"
 msgstr "PuTTY Unterstützung einschalten"
 
-msgid "|FILE|write environment settings also to FILE"
-msgstr "|DATEI|Schreibe die Umgebungsvariablen auf DATEI"
-
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
 #. reporting address without breaking the translations.
@@ -399,14 +393,6 @@ msgstr "Optionen werden aus '%s' gelesen\n"
 msgid "NOTE: '%s' is not considered an option\n"
 msgstr "Hinweis: `%s' wird nicht als Option betrachtet\n"
 
-#, c-format
-msgid "error creating '%s': %s\n"
-msgstr "Fehler beim Erstellen von `%s': %s\n"
-
-#, c-format
-msgid "can't create directory '%s': %s\n"
-msgstr "Verzeichnis `%s' kann nicht erzeugt werden: %s\n"
-
 msgid "name of socket too long\n"
 msgstr "Der Name des Sockets ist zu lang\n"
 
@@ -437,6 +423,10 @@ msgid "listening on socket '%s'\n"
 msgstr "Es wird auf Socket `%s' gehört\n"
 
 #, c-format
+msgid "can't create directory '%s': %s\n"
+msgstr "Verzeichnis `%s' kann nicht erzeugt werden: %s\n"
+
+#, c-format
 msgid "directory '%s' created\n"
 msgstr "Verzeichnis `%s' erzeugt\n"
 
@@ -479,14 +469,6 @@ msgstr "%s %s angehalten\n"
 msgid "no gpg-agent running in this session\n"
 msgstr "Der gpg-agent läuft nicht für diese Session\n"
 
-#, c-format
-msgid "malformed %s environment variable\n"
-msgstr "Fehlerhafte %s Variable\n"
-
-#, c-format
-msgid "gpg-agent protocol version %d is not supported\n"
-msgstr "GPG-Agent-Protokoll-Version %d wird nicht unterstützt\n"
-
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
 msgstr "Aufruf: gpg-preset-passphrase [Optionen] KEYGRIP (-h für Hilfe)\n"
 
@@ -812,9 +794,6 @@ msgstr "Warte bis der gpg-agent bereit ist ... (%ds)\n"
 msgid "connection to agent established\n"
 msgstr "Verbindung zum gpg-agent aufgebaut\n"
 
-msgid "can't connect to the agent - trying fall back\n"
-msgstr "Verbindung zum gpg-agent nicht möglich - Ersatzmethode wird versucht\n"
-
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
 msgstr "Kein aktiver Dirmngr - `%s' wird gestartet\n"
@@ -1694,11 +1673,14 @@ msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\""
 msgid "list secret keys"
 msgstr "Liste der geheimen Schlüssel"
 
+msgid "generate a new key pair"
+msgstr "Ein neues Schlüsselpaar erzeugen"
+
 msgid "quickly generate a new key pair"
 msgstr "Schnell ein neues Schlüsselpaar erzeugen"
 
-msgid "generate a new key pair"
-msgstr "Ein neues Schlüsselpaar erzeugen"
+msgid "full featured key pair generation"
+msgstr "Ein neues Schlüsselpaar erzeugen (alle Optionen)"
 
 msgid "generate a revocation certificate"
 msgstr "Ein Schlüsselwiderruf-Zertifikat erzeugen"
@@ -3266,12 +3248,10 @@ msgstr ""
 "dazu führen, daß eine andere User-ID als primär angesehen wird.\n"
 
 msgid "WARNING: Your encryption subkey expires soon.\n"
-msgstr ""
+msgstr "WARNUNG: Ihr Unterschlüssel zum Verschlüsseln wird bald verfallen.\n"
 
-#, fuzzy
-#| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Sie können das Verfallsdatum eines v3-Schlüssels nicht ändern\n"
+msgstr "Bitte erwägen Sie, dessen Verfallsdatum auch zu ändern.\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
@@ -3618,8 +3598,8 @@ msgid "   (%d) RSA (set your own capabilities)\n"
 msgstr "   (%d) RSA (Leistungsfähigkeit selber einstellbar)\n"
 
 #, c-format
-msgid "   (%d) ECC\n"
-msgstr "   (%d) ECC\n"
+msgid "   (%d) ECC and ECC\n"
+msgstr "  (%d) ECC und ECC\n"
 
 #, c-format
 msgid "  (%d) ECC (sign only)\n"
@@ -3825,6 +3805,12 @@ msgstr "Ändern: (N)ame, (K)ommentar, (E)-Mail oder (A)bbrechen? "
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr "Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(A)bbrechen? "
 
+msgid "Change (N)ame, (E)mail, or (Q)uit? "
+msgstr "Ändern: (N)ame, (E)-Mail oder (A)bbrechen? "
+
+msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
+msgstr "Ändern: (N)ame, (E)-Mail oder (F)ertig/(A)bbrechen? "
+
 msgid "Please correct the error first\n"
 msgstr "Bitte beseitigen Sie zuerst den Fehler\n"
 
@@ -3898,6 +3884,10 @@ msgstr "Trotzdem erzeugen? (j/N) "
 msgid "creating anyway\n"
 msgstr "wird trotzdem erzeugt\n"
 
+#, c-format
+msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
+msgstr "Hinweis: \"%s %s\" ruft den erweiterten Dialog auf.\n"
+
 msgid "Key generation canceled.\n"
 msgstr "Schlüsselerzeugung abgebrochen.\n"
 
@@ -4347,8 +4337,19 @@ msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
 msgstr "%s:%u: Die Option \"%s\" is veraltet - sie hat keine Wirkung\n"
 
 #, c-format
-msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
-msgstr "WARNUNG: \"%s\" ist eine veraltete Option - sie hat keine Wirkung.\n"
+msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
+msgstr "WARNUNG: \"%s%s\" ist eine veraltete Option - sie hat keine Wirkung.\n"
+
+#, c-format
+msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
+msgstr "%s:%u: Die Option \"%s\" is veraltet - sie hat eine Wirkung nur in %s.\n"
+
+#, c-format
+msgid ""
+"WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
+msgstr ""
+"WARNUNG: \"%s%s\" ist eine veraltete Option - sie hat eine Wirkung nur\n"
+"in %s.\n"
 
 msgid "Uncompressed"
 msgstr "nicht komprimiert"
@@ -4784,6 +4785,10 @@ msgid "data not saved; use option \"--output\" to save it\n"
 msgstr ""
 "Daten wurden nicht gespeichert; verwenden Sie dafür die Option \"--output\"\n"
 
+#, c-format
+msgid "error creating '%s': %s\n"
+msgstr "Fehler beim Erstellen von `%s': %s\n"
+
 msgid "Detached signature.\n"
 msgstr "Abgetrennte Beglaubigungen.\n"
 
@@ -7007,6 +7012,10 @@ msgid "no running dirmngr - starting one\n"
 msgstr "Dirmngr läuft nicht - ein neuer wird gestartet\n"
 
 #, c-format
+msgid "malformed %s environment variable\n"
+msgstr "Fehlerhafte %s Variable\n"
+
+#, c-format
 msgid "dirmngr protocol version %d is not supported\n"
 msgstr "Dirmngr Protocol Version %d wird nicht unterstützt\n"
 
@@ -7995,6 +8004,22 @@ msgstr ""
 "Syntax: gpg-check-pattern [optionen] Musterdatei\n"
 "Die von stdin gelesene Passphrase gegen die Musterdatei prüfen\n"
 
+#~ msgid "use a standard location for the socket"
+#~ msgstr "Benutze einen Standardnamen für den Socket"
+
+#~ msgid "|FILE|write environment settings also to FILE"
+#~ msgstr "|DATEI|Schreibe die Umgebungsvariablen auf DATEI"
+
+#~ msgid "gpg-agent protocol version %d is not supported\n"
+#~ msgstr "GPG-Agent-Protokoll-Version %d wird nicht unterstützt\n"
+
+#~ msgid "can't connect to the agent - trying fall back\n"
+#~ msgstr ""
+#~ "Verbindung zum gpg-agent nicht möglich - Ersatzmethode wird versucht\n"
+
+#~ msgid "   (%d) ECC\n"
+#~ msgstr "   (%d) ECC\n"
+
 #~ msgid "can't create directory `%s': %s\n"
 #~ msgstr " git describe --match gnupg-2.1.*[0-9] --long"
 
@@ -8077,9 +8102,6 @@ msgstr ""
 #~ msgid "deleting secret key not implemented\n"
 #~ msgstr "Löschen des geheimen Schlüssel ist nicht implementiert\n"
 
-#~ msgid "   (%d) ECDSA and ECDH\n"
-#~ msgstr "  (%d) ECDSA und ECDH\n"
-
 #~ msgid "10 translator see trustdb.c:uid_trust_string_fixed"
 #~ msgstr "10"
 

commit 9c380384dafb213334f8834178c5ceb0bf33db6e
Author: Werner Koch <wk at gnupg.org>
Date:   Fri Oct 3 11:58:58 2014 +0200

    Remove support for the GPG_AGENT_INFO envvar.
    
    * agent/agent.h (opt): Remove field use_standard_socket.
    * agent/command.c (cmd_killagent): Always allow killing.
    * agent/gpg-agent.c (main): Turn --{no,}use-standard-socket and
    --write-env-file into dummy options.  Always return true for
    --use-standard-socket-p. Do not print the GPG_AGENT_INFO envvar
    setting or set that envvar.
    (create_socket_name): Simplify by removing non standard socket
    support.
    (check_for_running_agent): Ditto.
    * common/asshelp.c (start_new_gpg_agent): Remove GPG_AGENT_INFO use.
    * common/simple-pwquery.c (agent_open): Ditto.
    * configure.ac (GPG_AGENT_INFO_NAME): Remove.
    * g10/server.c (gpg_server): Do not print the AgentInfo comment.
    * g13/server.c (g13_server): Ditto.
    * sm/server.c (gpgsm_server): Ditto.
    * tools/gpgconf.c (main): Simplify by removing non standard socket
    support.
    --
    
    The indented fix to allow using a different socket than the one in the
    gnupg home directory is to change Libassuan to check whether the
    socket files exists as a regualr file with a special keyword to
    redirect to another socket file name.

diff --git a/agent/agent.h b/agent/agent.h
index a420bae..7342475 100644
--- a/agent/agent.h
+++ b/agent/agent.h
@@ -58,9 +58,6 @@ struct
   int batch;           /* Batch mode */
   const char *homedir; /* Configuration directory name */
 
-  /* True if we are listening on the standard socket.  */
-  int use_standard_socket;
-
   /* True if we handle sigusr2.  */
   int sigusr2_enabled;
 
diff --git a/agent/command.c b/agent/command.c
index e17232e..8c68498 100644
--- a/agent/command.c
+++ b/agent/command.c
@@ -2605,8 +2605,7 @@ cmd_updatestartuptty (assuan_context_t ctx, char *line)
 static const char hlp_killagent[] =
   "KILLAGENT\n"
   "\n"
-  "If the agent has been started using a standard socket\n"
-  "we allow a client to stop the agent.";
+  "Stop the agent.";
 static gpg_error_t
 cmd_killagent (assuan_context_t ctx, char *line)
 {
@@ -2614,9 +2613,6 @@ cmd_killagent (assuan_context_t ctx, char *line)
 
   (void)line;
 
-  if (!opt.use_standard_socket)
-    return set_error (GPG_ERR_NOT_SUPPORTED, "no --use-standard-socket");
-
   ctrl->server_local->stopme = 1;
   assuan_set_flag (ctx, ASSUAN_FORCE_CLOSE, 1);
   return 0;
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index 3febaf8..0c163e1 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -1,7 +1,7 @@
 /* gpg-agent.c  -  The GnuPG Agent
  * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009,
  *               2010 Free Software Foundation, Inc.
- * Copyright (C) 2013 Werner Koch
+ * Copyright (C) 2013, 2014 Werner Koch
  *
  * This file is part of GnuPG.
  *
@@ -152,9 +152,8 @@ static ARGPARSE_OPTS opts[] = {
   { oNoDetach, "no-detach" ,0, N_("do not detach from the console")},
   { oNoGrab, "no-grab"     ,0, N_("do not grab keyboard and mouse")},
   { oLogFile, "log-file"   ,2, N_("use a log file for the server")},
-  { oUseStandardSocket, "use-standard-socket", 0,
-                      N_("use a standard location for the socket")},
-  { oNoUseStandardSocket, "no-use-standard-socket", 0, "@"},
+  { oUseStandardSocket, "use-standard-socket", 0, "@"},      /* dummy */
+  { oNoUseStandardSocket, "no-use-standard-socket", 0, "@"}, /* dummy */
   { oPinentryProgram, "pinentry-program", 2 ,
                                N_("|PGM|use PGM as the PIN-Entry program") },
   { oPinentryTouchFile, "pinentry-touch-file", 2 , "@" },
@@ -207,8 +206,7 @@ static ARGPARSE_OPTS opts[] = {
       "@"
 #endif
   },
-  { oWriteEnvFile, "write-env-file", 2|8,
-            N_("|FILE|write environment settings also to FILE")},
+  { oWriteEnvFile, "write-env-file", 2|8, "@" }, /* dummy */
   {0}
 };
 
@@ -314,7 +312,7 @@ static int active_connections;
    Local prototypes.
  */
 
-static char *create_socket_name (char *standard_name, char *template);
+static char *create_socket_name (char *standard_name);
 static gnupg_fd_t create_server_socket (char *name, int is_ssh,
                                         assuan_sock_nonce_t *nonce);
 static void create_directories (void);
@@ -325,7 +323,7 @@ static void agent_deinit_default_ctrl (ctrl_t ctrl);
 static void handle_connections (gnupg_fd_t listen_fd,
                                 gnupg_fd_t listen_fd_ssh);
 static void check_own_socket (void);
-static int check_for_running_agent (int silent, int mode);
+static int check_for_running_agent (int silent);
 
 /* Pth wrapper function definitions. */
 ASSUAN_SYSTEM_NPTH_IMPL;
@@ -620,7 +618,6 @@ main (int argc, char **argv )
   int debug_wait = 0;
   int gpgconf_list = 0;
   gpg_error_t err;
-  const char *env_file_name = NULL;
   struct assuan_malloc_hooks malloc_hooks;
 
   /* Before we do anything else we save the list of currently open
@@ -670,9 +667,6 @@ main (int argc, char **argv )
 
   /* Set default options.  */
   parse_rereadable_options (NULL, 0); /* Reset them to default values. */
-#ifdef USE_STANDARD_SOCKET
-  opt.use_standard_socket = 1;
-#endif
 
   shell = getenv ("SHELL");
   if (shell && strlen (shell) >= 3 && !strcmp (shell+strlen (shell)-3, "csh") )
@@ -830,8 +824,8 @@ main (int argc, char **argv )
         case oXauthority: default_xauthority = xstrdup (pargs.r.ret_str);
           break;
 
-        case oUseStandardSocket:   opt.use_standard_socket = 1; break;
-        case oNoUseStandardSocket: opt.use_standard_socket = 0; break;
+        case oUseStandardSocket:   /* dummy */ break;
+        case oNoUseStandardSocket: /* dummy */ break;
 
         case oFakedSystemTime:
           {
@@ -853,12 +847,7 @@ main (int argc, char **argv )
 #        endif
           break;
 
-        case oWriteEnvFile:
-          if (pargs.r_type)
-            env_file_name = pargs.r.ret_str;
-          else
-            env_file_name = make_filename ("~/.gpg-agent-info", NULL);
-          break;
+        case oWriteEnvFile: /* dummy */ break;
 
         default : pargs.err = configfp? 1:2; break;
 	}
@@ -914,7 +903,7 @@ main (int argc, char **argv )
         print the status directly to stderr. */
       opt.debug = 0;
       set_debug ();
-      check_for_running_agent (0, 0);
+      check_for_running_agent (0);
       agent_exit (0);
     }
 
@@ -945,9 +934,9 @@ main (int argc, char **argv )
 
   if (gpgconf_list == 3)
     {
-      if (opt.use_standard_socket && !opt.quiet)
-        log_info ("configured to use the standard socket\n");
-      agent_exit (!opt.use_standard_socket);
+      /* We now use the standard socket always - return true for
+         backward compatibility.  */
+      agent_exit (0);
     }
   else if (gpgconf_list == 2)
     agent_exit (0);
@@ -1077,14 +1066,11 @@ main (int argc, char **argv )
 
 
       /* Create the sockets.  */
-      socket_name = create_socket_name
-        (GPG_AGENT_SOCK_NAME, "gpg-XXXXXX/"GPG_AGENT_SOCK_NAME);
-
+      socket_name = create_socket_name (GPG_AGENT_SOCK_NAME);
       fd = create_server_socket (socket_name, 0, &socket_nonce);
       if (opt.ssh_support)
         {
-          socket_name_ssh = create_socket_name
-            (GPG_AGENT_SSH_SOCK_NAME, "gpg-XXXXXX/"GPG_AGENT_SSH_SOCK_NAME);
+          socket_name_ssh = create_socket_name (GPG_AGENT_SSH_SOCK_NAME);
           fd_ssh = create_server_socket (socket_name_ssh, 1, &socket_nonce_ssh);
         }
       else
@@ -1100,10 +1086,7 @@ main (int argc, char **argv )
 #ifdef HAVE_W32_SYSTEM
       (void)csh_style;
       (void)nodetach;
-      (void)env_file_name;
       pid = getpid ();
-      es_printf ("set %s=%s;%lu;1\n",
-                 GPG_AGENT_INFO_NAME, socket_name, (ulong)pid);
 #else /*!HAVE_W32_SYSTEM*/
       pid = fork ();
       if (pid == (pid_t)-1)
@@ -1113,7 +1096,7 @@ main (int argc, char **argv )
         }
       else if (pid)
         { /* We are the parent */
-          char *infostr, *infostr_ssh_sock, *infostr_ssh_valid;
+          char *infostr_ssh_sock, *infostr_ssh_valid;
 
           /* Close the socket FD. */
           close (fd);
@@ -1133,14 +1116,7 @@ main (int argc, char **argv )
             log_info ("no saved signal mask\n");
 #endif /*HAVE_SIGPROCMASK*/
 
-          /* Create the info string: <name>:<pid>:<protocol_version> */
-          if (asprintf (&infostr, "%s=%s:%lu:1",
-                        GPG_AGENT_INFO_NAME, socket_name, (ulong)pid ) < 0)
-            {
-              log_error ("out of core\n");
-              kill (pid, SIGTERM);
-              exit (1);
-            }
+          /* Create the SSH info string if enabled. */
 	  if (opt.ssh_support)
 	    {
 	      if (asprintf (&infostr_ssh_sock, "SSH_AUTH_SOCK=%s",
@@ -1164,37 +1140,8 @@ main (int argc, char **argv )
 	  if (opt.ssh_support)
 	    *socket_name_ssh = 0;
 
-          if (env_file_name)
-            {
-              estream_t fp;
-
-              fp = es_fopen (env_file_name, "w,mode=-rw");
-              if (!fp)
-                log_error (_("error creating '%s': %s\n"),
-                             env_file_name, strerror (errno));
-              else
-                {
-                  es_fputs (infostr, fp);
-                  es_putc ('\n', fp);
-                  if (opt.ssh_support)
-                    {
-                      es_fputs (infostr_ssh_sock, fp);
-                      es_putc ('\n', fp);
-                    }
-                  es_fclose (fp);
-                }
-            }
-
-
           if (argc)
             { /* Run the program given on the commandline.  */
-              if (putenv (infostr))
-                {
-                  log_error ("failed to set environment: %s\n",
-                             strerror (errno) );
-                  kill (pid, SIGTERM );
-                  exit (1);
-                }
               if (opt.ssh_support && (putenv (infostr_ssh_sock)
                                       || putenv (infostr_ssh_valid)))
                 {
@@ -1222,8 +1169,6 @@ main (int argc, char **argv )
                  shell's eval to set it */
               if (csh_style)
                 {
-                  *strchr (infostr, '=') = ' ';
-                  es_printf ("setenv %s;\n", infostr);
 		  if (opt.ssh_support)
 		    {
 		      *strchr (infostr_ssh_sock, '=') = ' ';
@@ -1232,14 +1177,12 @@ main (int argc, char **argv )
                 }
               else
                 {
-                  es_printf ( "%s; export %s;\n", infostr, GPG_AGENT_INFO_NAME);
 		  if (opt.ssh_support)
 		    {
 		      es_printf ("%s; export SSH_AUTH_SOCK;\n",
                                  infostr_ssh_sock);
 		    }
                 }
-              xfree (infostr);
 	      if (opt.ssh_support)
 		{
 		  xfree (infostr_ssh_sock);
@@ -1496,45 +1439,18 @@ get_agent_scd_notify_event (void)
 
 
 
-/* Create a name for the socket.  With USE_STANDARD_SOCKET given as
-   true using STANDARD_NAME in the home directory or if given as
-   false from the mkdir type name TEMPLATE.  In the latter case a
-   unique name in a unique new directory will be created.  In both
-   cases check for valid characters as well as against a maximum
-   allowed length for a unix domain socket is done.  The function
-   terminates the process in case of an error.  Returns: Pointer to an
-   allocated string with the absolute name of the socket used.  */
+/* Create a name for the socket in the home directory as using
+   STANDARD_NAME.  We also check for valid characters as well as
+   against a maximum allowed length for a unix domain socket is done.
+   The function terminates the process in case of an error.  Returns:
+   Pointer to an allocated string with the absolute name of the socket
+   used.  */
 static char *
-create_socket_name (char *standard_name, char *template)
+create_socket_name (char *standard_name)
 {
-  char *name, *p;
-
-  if (opt.use_standard_socket)
-    name = make_filename (opt.homedir, standard_name, NULL);
-  else
-    {
-      /* Prepend the tmp directory to the template.  */
-      p = getenv ("TMPDIR");
-      if (!p || !*p)
-        p = "/tmp";
-      if (p[strlen (p) - 1] == '/')
-        name = xstrconcat (p, template, NULL);
-      else
-        name = xstrconcat (p, "/", template, NULL);
-
-      p = strrchr (name, '/');
-      if (!p)
-	BUG ();
-      *p = 0;
-      if (!mkdtemp (name))
-	{
-	  log_error (_("can't create directory '%s': %s\n"),
-		     name, strerror (errno));
-	  agent_exit (2);
-	}
-      *p = '/';
-    }
+  char *name;
 
+  name = make_filename (opt.homedir, standard_name, NULL);
   if (strchr (name, PATHSEP_C))
     {
       log_error (("'%s' are not allowed in the socket name\n"), PATHSEP_S);
@@ -1583,22 +1499,22 @@ create_server_socket (char *name, int is_ssh, assuan_sock_nonce_t *nonce)
 
   /* Our error code mapping on W32CE returns EEXIST thus we also test
      for this. */
-  if (opt.use_standard_socket && rc == -1
+  if (rc == -1
       && (errno == EADDRINUSE
 #ifdef HAVE_W32_SYSTEM
           || errno == EEXIST
 #endif
           ))
     {
-      /* Check whether a gpg-agent is already running on the standard
-         socket.  We do this test only if this is not the ssh socket.
+      /* Check whether a gpg-agent is already running.
+         We do this test only if this is not the ssh socket.
          For ssh we assume that a test for gpg-agent has already been
          done and reuse the requested ssh socket.  Testing the
          ssh-socket is not possible because at this point, though we
          know the new Assuan socket, the Assuan server and thus the
          ssh-agent server is not yet operational.  This would lead to
          a hang.  */
-      if (!is_ssh && !check_for_running_agent (1, 1))
+      if (!is_ssh && !check_for_running_agent (1))
         {
           log_set_prefix (NULL, JNLIB_LOG_WITH_PREFIX);
           log_set_file (NULL);
@@ -1623,8 +1539,7 @@ create_server_socket (char *name, int is_ssh, assuan_sock_nonce_t *nonce)
                  gpg_strerror (gpg_error_from_errno (errno)));
 
       assuan_sock_close (fd);
-      if (opt.use_standard_socket)
-        *name = 0; /* Inhibit removal of the socket by cleanup(). */
+      *name = 0; /* Inhibit removal of the socket by cleanup(). */
       agent_exit (2);
     }
 
@@ -2429,9 +2344,6 @@ check_own_socket (void)
   if (disable_check_own_socket)
     return;
 
-  if (!opt.use_standard_socket)
-    return; /* This check makes only sense in standard socket mode.  */
-
   if (check_own_socket_running || shutdown_pending)
     return;  /* Still running or already shutting down.  */
 
@@ -2452,73 +2364,25 @@ check_own_socket (void)
 
 
 /* Figure out whether an agent is available and running. Prints an
-   error if not.  If SILENT is true, no messages are printed.  Usually
-   started with MODE 0.  Returns 0 if the agent is running. */
+   error if not.  If SILENT is true, no messages are printed.
+   Returns 0 if the agent is running. */
 static int
-check_for_running_agent (int silent, int mode)
+check_for_running_agent (int silent)
 {
-  int rc;
-  char *infostr, *p;
+  gpg_error_t err;
+  char *sockname;
   assuan_context_t ctx = NULL;
-  int prot, pid;
-
-  if (!mode)
-    {
-      infostr = getenv (GPG_AGENT_INFO_NAME);
-      if (!infostr || !*infostr)
-        {
-          if (!check_for_running_agent (silent, 1))
-            return 0; /* Okay, its running on the standard socket. */
-          if (!silent)
-            log_error (_("no gpg-agent running in this session\n"));
-          return -1;
-        }
 
-      infostr = xstrdup (infostr);
-      if ( !(p = strchr (infostr, PATHSEP_C)) || p == infostr)
-        {
-          xfree (infostr);
-          if (!check_for_running_agent (silent, 1))
-            return 0; /* Okay, its running on the standard socket. */
-          if (!silent)
-            log_error (_("malformed %s environment variable\n"),
-                       GPG_AGENT_INFO_NAME);
-          return -1;
-        }
-
-      *p++ = 0;
-      pid = atoi (p);
-      while (*p && *p != PATHSEP_C)
-        p++;
-      prot = *p? atoi (p+1) : 0;
-      if (prot != 1)
-        {
-          xfree (infostr);
-          if (!silent)
-            log_error (_("gpg-agent protocol version %d is not supported\n"),
-                       prot);
-          if (!check_for_running_agent (silent, 1))
-            return 0; /* Okay, its running on the standard socket. */
-          return -1;
-        }
-    }
-  else /* MODE != 0 */
-    {
-      infostr = make_filename (opt.homedir, GPG_AGENT_SOCK_NAME, NULL);
-      pid = (pid_t)(-1);
-    }
+  sockname = make_filename (opt.homedir, GPG_AGENT_SOCK_NAME, NULL);
 
-  rc = assuan_new (&ctx);
-  if (! rc)
-    rc = assuan_socket_connect (ctx, infostr, pid, 0);
-  xfree (infostr);
-  if (rc)
+  err = assuan_new (&ctx);
+  if (!err)
+    err = assuan_socket_connect (ctx, sockname, (pid_t)(-1), 0);
+  xfree (sockname);
+  if (err)
     {
-      if (!mode && !check_for_running_agent (silent, 1))
-        return 0; /* Okay, its running on the standard socket. */
-
-      if (!mode && !silent)
-        log_error ("can't connect to the agent: %s\n", gpg_strerror (rc));
+      if (!silent)
+        log_error (_("no gpg-agent running in this session\n"));
 
       if (ctx)
 	assuan_release (ctx);
diff --git a/common/asshelp.c b/common/asshelp.c
index 5e3f663..e97d396 100644
--- a/common/asshelp.c
+++ b/common/asshelp.c
@@ -359,14 +359,11 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
                      gpg_error_t (*status_cb)(ctrl_t, int, ...),
                      ctrl_t status_cb_arg)
 {
-  /* If we ever failed to connect via a socket we will force the use
-     of the pipe based server for the lifetime of the process.  */
-  static int force_pipe_server = 0;
-
-  gpg_error_t err = 0;
-  char *infostr, *p;
+  gpg_error_t err;
   assuan_context_t ctx;
   int did_success_msg = 0;
+  char *sockname;
+  const char *argv[5];
 
   *r_ctx = NULL;
 
@@ -377,200 +374,96 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
       return err;
     }
 
- restart:
-  infostr = force_pipe_server? NULL : getenv (GPG_AGENT_INFO_NAME);
-  if (!infostr || !*infostr)
+  sockname = make_absfilename (homedir, GPG_AGENT_SOCK_NAME, NULL);
+  err = assuan_socket_connect (ctx, sockname, 0, 0);
+  if (err)
     {
-      char *sockname;
-      const char *argv[5];
-      pid_t pid;
-      int excode;
-
-      /* First check whether we can connect at the standard
-         socket.  */
-      sockname = make_absfilename (homedir, GPG_AGENT_SOCK_NAME, NULL);
-      err = assuan_socket_connect (ctx, sockname, 0, 0);
+      char *abs_homedir;
+      lock_spawn_t lock;
 
-      if (err)
-        {
-          char *abs_homedir;
+      /* With no success start a new server.  */
+      if (!agent_program || !*agent_program)
+        agent_program = gnupg_module_name (GNUPG_MODULE_NAME_AGENT);
 
-          /* With no success start a new server.  */
-          if (!agent_program || !*agent_program)
-            agent_program = gnupg_module_name (GNUPG_MODULE_NAME_AGENT);
+      if (verbose)
+        log_info (_("no running gpg-agent - starting '%s'\n"),
+                  agent_program);
 
-          if (verbose)
-            log_info (_("no running gpg-agent - starting '%s'\n"),
-                      agent_program);
+      if (status_cb)
+        status_cb (status_cb_arg, STATUS_PROGRESS,
+                   "starting_agent ? 0 0", NULL);
 
-          if (status_cb)
-            status_cb (status_cb_arg, STATUS_PROGRESS,
-                       "starting_agent ? 0 0", NULL);
+      /* We better pass an absolute home directory to the agent just
+         in case gpg-agent does not convert the passed name to an
+         absolute one (which it should do).  */
+      abs_homedir = make_absfilename_try (homedir, NULL);
+      if (!abs_homedir)
+        {
+          gpg_error_t tmperr = gpg_err_make (errsource,
+                                             gpg_err_code_from_syserror ());
+          log_error ("error building filename: %s\n",gpg_strerror (tmperr));
+          xfree (sockname);
+          assuan_release (ctx);
+          return tmperr;
+        }
 
-          /* We better pass an absolute home directory to the agent
-             just in casee gpg-agent does not convert the passed name
-             to an absolute one (which it should do).  */
-          abs_homedir = make_absfilename_try (homedir, NULL);
-          if (!abs_homedir)
-            {
-              gpg_error_t tmperr = gpg_err_make (errsource,
-                                                 gpg_err_code_from_syserror ());
-              log_error ("error building filename: %s\n",gpg_strerror (tmperr));
-              xfree (sockname);
-	      assuan_release (ctx);
-              return tmperr;
-            }
+      if (fflush (NULL))
+        {
+          gpg_error_t tmperr = gpg_err_make (errsource,
+                                             gpg_err_code_from_syserror ());
+          log_error ("error flushing pending output: %s\n",
+                     strerror (errno));
+          xfree (sockname);
+          assuan_release (ctx);
+          xfree (abs_homedir);
+          return tmperr;
+        }
 
-          if (fflush (NULL))
-            {
-              gpg_error_t tmperr = gpg_err_make (errsource,
-                                                 gpg_err_code_from_syserror ());
-              log_error ("error flushing pending output: %s\n",
-                         strerror (errno));
-              xfree (sockname);
-	      assuan_release (ctx);
-              xfree (abs_homedir);
-              return tmperr;
-            }
+      /* If the agent has been configured for use with a standard
+         socket, an environment variable is not required and thus
+         we we can savely start the agent here.  */
 
-          argv[0] = "--homedir";
-          argv[1] = abs_homedir;
-          argv[2] = "--use-standard-socket-p";
-          argv[3] = NULL;
-          err = gnupg_spawn_process_fd (agent_program, argv, -1, -1, -1, &pid);
+      argv[0] = "--homedir";
+      argv[1] = abs_homedir;
+      argv[2] = "--use-standard-socket";
+      argv[3] = "--daemon";
+      argv[4] = NULL;
+
+      if (!(err = lock_spawning (&lock, homedir, "agent", verbose))
+          && assuan_socket_connect (ctx, sockname, 0, 0))
+        {
+          err = gnupg_spawn_process_detached (agent_program, argv,NULL);
           if (err)
-            log_debug ("starting '%s' for testing failed: %s\n",
+            log_error ("failed to start agent '%s': %s\n",
                        agent_program, gpg_strerror (err));
-          else if ((err = gnupg_wait_process (agent_program, pid, 1, &excode)))
+          else
             {
-              if (excode == -1)
-                log_debug ("running '%s' for testing failed (wait): %s\n",
-                           agent_program, gpg_strerror (err));
-            }
-          gnupg_release_process (pid);
+              int i;
 
-          if (!err && !excode)
-            {
-              /* If the agent has been configured for use with a
-                 standard socket, an environment variable is not
-                 required and thus we we can savely start the agent
-                 here.  */
-              lock_spawn_t lock;
-
-              argv[0] = "--homedir";
-              argv[1] = abs_homedir;
-              argv[2] = "--use-standard-socket";
-              argv[3] = "--daemon";
-              argv[4] = NULL;
-
-              if (!(err = lock_spawning (&lock, homedir, "agent", verbose))
-                  && assuan_socket_connect (ctx, sockname, 0, 0))
+              for (i=0; i < SECS_TO_WAIT_FOR_AGENT; i++)
                 {
-                  err = gnupg_spawn_process_detached (agent_program, argv,NULL);
-                  if (err)
-                    log_error ("failed to start agent '%s': %s\n",
-                               agent_program, gpg_strerror (err));
-                  else
+                  if (verbose)
+                    log_info (_("waiting for the agent to come up ... (%ds)\n"),
+                              SECS_TO_WAIT_FOR_AGENT - i);
+                  gnupg_sleep (1);
+                  err = assuan_socket_connect (ctx, sockname, 0, 0);
+                  if (!err)
                     {
-                      int i;
-
-                      for (i=0; i < SECS_TO_WAIT_FOR_AGENT; i++)
+                      if (verbose)
                         {
-                          if (verbose)
-                            log_info (_("waiting for the agent "
-                                        "to come up ... (%ds)\n"),
-                                      SECS_TO_WAIT_FOR_AGENT - i);
-                          gnupg_sleep (1);
-                          err = assuan_socket_connect (ctx, sockname, 0, 0);
-                          if (!err)
-                            {
-                              if (verbose)
-                                {
-                                  log_info (_("connection to agent "
-                                              "established\n"));
-                                  did_success_msg = 1;
-                                }
-                              break;
-                            }
+                          log_info (_("connection to agent established\n"));
+                          did_success_msg = 1;
                         }
+                      break;
                     }
                 }
-
-              unlock_spawning (&lock, "agent");
             }
-          else
-            {
-              /* If using the standard socket is not the default we
-                 start the agent as a pipe server which gives us most
-                 of the required features except for passphrase
-                 caching etc.  */
-              const char *pgmname;
-              assuan_fd_t no_close_list[3];
-              int i;
-
-              if ( !(pgmname = strrchr (agent_program, '/')))
-                pgmname = agent_program;
-              else
-                pgmname++;
-
-              argv[0] = pgmname;   /* (Assuan expects a standard argv.)  */
-              argv[1] = "--homedir";
-              argv[2] = abs_homedir;
-              argv[3] = "--server";
-              argv[4] = NULL;
-
-              i=0;
-              if (log_get_fd () != -1)
-                no_close_list[i++] = assuan_fd_from_posix_fd (log_get_fd ());
-              no_close_list[i++] = assuan_fd_from_posix_fd (fileno (stderr));
-              no_close_list[i] = ASSUAN_INVALID_FD;
-
-              /* Connect to the agent and perform initial handshaking. */
-              err = assuan_pipe_connect (ctx, agent_program, argv,
-                                         no_close_list, NULL, NULL, 0);
-            }
-          xfree (abs_homedir);
         }
-      xfree (sockname);
-    }
-  else
-    {
-      int prot;
-      int pid;
 
-      infostr = xstrdup (infostr);
-      if ( !(p = strchr (infostr, PATHSEP_C)) || p == infostr)
-        {
-          log_error (_("malformed %s environment variable\n"),
-                     GPG_AGENT_INFO_NAME);
-          xfree (infostr);
-          force_pipe_server = 1;
-          goto restart;
-        }
-      *p++ = 0;
-      pid = atoi (p);
-      while (*p && *p != PATHSEP_C)
-        p++;
-      prot = *p? atoi (p+1) : 0;
-      if (prot != 1)
-        {
-          log_error (_("gpg-agent protocol version %d is not supported\n"),
-                     prot);
-          xfree (infostr);
-          force_pipe_server = 1;
-          goto restart;
-        }
-
-      err = assuan_socket_connect (ctx, infostr, pid, 0);
-      xfree (infostr);
-      if (gpg_err_code (err) == GPG_ERR_ASS_CONNECT_FAILED)
-        {
-          log_info (_("can't connect to the agent - trying fall back\n"));
-          force_pipe_server = 1;
-          goto restart;
-        }
+      unlock_spawning (&lock, "agent");
+      xfree (abs_homedir);
     }
-
+  xfree (sockname);
   if (err)
     {
       log_error ("can't connect to the agent: %s\n", gpg_strerror (err));
@@ -582,11 +475,11 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
     log_debug (_("connection to agent established\n"));
 
   err = assuan_transact (ctx, "RESET",
-                        NULL, NULL, NULL, NULL, NULL, NULL);
+                         NULL, NULL, NULL, NULL, NULL, NULL);
   if (!err)
     err = send_pinentry_environment (ctx, errsource,
-                                    opt_lc_ctype, opt_lc_messages,
-                                    session_env);
+                                     opt_lc_ctype, opt_lc_messages,
+                                     session_env);
   if (err)
     {
       assuan_release (ctx);
diff --git a/common/exechelp-w32.c b/common/exechelp-w32.c
index 7bcd79b..05e9e10 100644
--- a/common/exechelp-w32.c
+++ b/common/exechelp-w32.c
@@ -754,10 +754,7 @@ gnupg_spawn_process_detached (const char *pgmname, const char *argv[],
   char *cmdline;
 
 
-  /* FIXME: We don't make use of ENVP yet.  It is currently only used
-     to pass the GPG_AGENT_INFO variable to gpg-agent.  As the default
-     on windows is to use a standard socket, this does not really
-     matter.  */
+  /* We don't use ENVP.  */
   (void)envp;
 
   if (access (pgmname, X_OK))
diff --git a/common/simple-pwquery.c b/common/simple-pwquery.c
index 7dcc057..0eff5c5 100644
--- a/common/simple-pwquery.c
+++ b/common/simple-pwquery.c
@@ -69,13 +69,12 @@
 #endif
 
 
-/* Name of the socket to be used if GPG_AGENT_INFO has not been
-   set. No default socket is used if this is NULL.  */
+/* Name of the socket to be used.  This is a kludge to keep on using
+   the existsing code despite that we only support a standard socket.  */
 static char *default_gpg_agent_info;
 
 
 
-
 

 
 #ifndef HAVE_STPCPY
@@ -324,14 +323,11 @@ agent_open (int *rfd)
   char *infostr, *p;
   struct sockaddr_un client_addr;
   size_t len;
-  int prot;
   char line[200];
   int nread;
 
   *rfd = -1;
-  infostr = getenv (GPG_AGENT_INFO_NAME);
-  if ( !infostr || !*infostr )
-    infostr = default_gpg_agent_info;
+  infostr = default_gpg_agent_info;
   if ( !infostr || !*infostr )
     {
 #ifdef SPWQ_USE_LOGGING
@@ -348,23 +344,12 @@ agent_open (int *rfd)
   if ( !(p = strchr ( infostr, PATHSEP_C)) || p == infostr
        || (p-infostr)+1 >= sizeof client_addr.sun_path )
     {
-#ifdef SPWQ_USE_LOGGING
-      log_error (_("malformed %s environment variable\n"), GPG_AGENT_INFO_NAME);
-#endif
       return SPWQ_NO_AGENT;
     }
   *p++ = 0;
 
   while (*p && *p != PATHSEP_C)
     p++;
-  prot = *p? atoi (p+1) : 0;
-  if ( prot != 1)
-    {
-#ifdef SPWQ_USE_LOGGING
-      log_error (_("gpg-agent protocol version %d is not supported\n"),prot);
-#endif
-      return SPWQ_PROTOCOL_ERROR;
-    }
 
 #ifdef HAVE_W32_SYSTEM
   fd = _w32_sock_new (AF_UNIX, SOCK_STREAM, 0);
diff --git a/configure.ac b/configure.ac
index be10791..9e1dd89 100644
--- a/configure.ac
+++ b/configure.ac
@@ -104,7 +104,6 @@ use_exec=yes
 use_trust_models=yes
 card_support=yes
 use_ccid_driver=yes
-use_standard_socket=yes
 dirmngr_auto_start=yes
 use_tls_library=no
 
@@ -707,30 +706,6 @@ fi
 AM_CONDITIONAL(USE_LDAPWRAPPER, test "$use_ldapwrapper" = yes)
 
 
-#
-# Allows enabling the use of a standard socket by default This is
-# gpg-agent's option --[no-]use-standard-socket.  For Windows we force
-# the use of this.
-#
-AC_MSG_CHECKING([whether to use a standard socket by default])
-AC_ARG_ENABLE(standard-socket,
-              AC_HELP_STRING([--disable-standard-socket],
-                             [don't use a standard socket by default]),
-              use_standard_socket=$enableval)
-tmp=""
-if test "$use_standard_socket" != yes; then
-  if test "$have_w32_system" = yes; then
-    use_standard_socket=yes
-    tmp=" (forced)"
-  fi
-fi
-AC_MSG_RESULT($use_standard_socket$tmp)
-if test "$use_standard_socket" = yes; then
-  AC_DEFINE(USE_STANDARD_SOCKET,1,
-            [Use the standard socket for the agent by default])
-fi
-
-
 # (These need to go after AC_PROG_CC so that $EXEEXT is defined)
 AC_DEFINE_UNQUOTED(EXEEXT,"$EXEEXT",[The executable file extension, if any])
 
@@ -1615,8 +1590,6 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf",
 
 AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool])
 
-AC_DEFINE_UNQUOTED(GPG_AGENT_INFO_NAME, "GPG_AGENT_INFO",
-                   [The name of the agent info envvar])
 AC_DEFINE_UNQUOTED(GPG_AGENT_SOCK_NAME, "S.gpg-agent",
                    [The name of the agent socket])
 AC_DEFINE_UNQUOTED(GPG_AGENT_SSH_SOCK_NAME, "S.gpg-agent.ssh",
@@ -1802,7 +1775,6 @@ echo "
         Default scdaemon:  $show_gnupg_scdaemon_pgm
         Default dirmngr:   $show_gnupg_dirmngr_pgm
 
-        Use standard socket: $use_standard_socket
         Dirmngr auto start:  $dirmngr_auto_start
         Readline support:    $gnupg_cv_have_readline
         DNS SRV support:     $use_dns_srv
diff --git a/doc/gpg-agent.texi b/doc/gpg-agent.texi
index b42d353..7c21889 100644
--- a/doc/gpg-agent.texi
+++ b/doc/gpg-agent.texi
@@ -53,10 +53,10 @@ independently from any protocol.  It is used as a backend for
 utilities.
 
 @ifset gpgtwoone
-The agent is usualy started on demand by @command{gpg}, @command{gpgsm},
- at command{gpgconf} or @command{gpg-connect-agent}.  Thus there is no
-reason to start it manually.  In case you want to use the included
-Secure Shell Agent you may start the agent using:
+The agent is automatically started on demand by @command{gpg},
+ at command{gpgsm}, @command{gpgconf}, or @command{gpg-connect-agent}.
+Thus there is no reason to start it manually.  In case you want to use
+the included Secure Shell Agent you may start the agent using:
 
 @example
 gpg-connect-agent /bye
@@ -174,11 +174,15 @@ default mode is to create a socket and listen for commands there.
 @item --daemon [@var{command line}]
 @opindex daemon
 Start the gpg-agent as a daemon; that is, detach it from the console
-and run it in the background.  Because @command{gpg-agent} prints out
+and run it in the background.
+ at ifclear gpgtwoone
+Because @command{gpg-agent} prints out
 important information required for further use, a common way of
 invoking gpg-agent is: @code{eval $(gpg-agent --daemon)} to setup the
 environment variables.  The option @option{--write-env-file} is
-another way commonly used to do this.  Yet another way is creating
+another way commonly used to do this.
+ at end ifclear
+Yet another way is creating
 a new process as a child of gpg-agent: @code{gpg-agent --daemon
 /bin/sh}.  This way you get a new shell with the environment setup
 properly; if you exit from this shell, gpg-agent terminates as well.
@@ -305,6 +309,7 @@ shell or the C-shell respectively.  The default is to guess it based on
 the environment variable @code{SHELL} which is correct in almost all
 cases.
 
+ at ifclear gpgtwoone
 @item --write-env-file @var{file}
 @opindex write-env-file
 Often it is required to connect to the agent from a process not being an
@@ -319,7 +324,7 @@ to be evaluated by a Bourne shell like in this simple example:
 eval $(cat @var{file})
 eval $(cut -d= -f 1 < @var{file} | xargs echo export)
 @end example
-
+ at end ifclear
 
 
 @item --no-grab
@@ -466,6 +471,11 @@ debugging purposes.
 @itemx --no-use-standard-socket
 @opindex use-standard-socket
 @opindex no-use-standard-socket
+ at ifset gpgtwoone
+Since GnuPG 2.1 the standard socket is always used.  These options
+have no more effect.
+ at end ifset
+ at ifclear gpgtwoone
 By enabling this option @command{gpg-agent} will listen on the socket
 named @file{S.gpg-agent}, located in the home directory, and not create
 a random socket below a temporary directory.  Tools connecting to
@@ -474,19 +484,16 @@ environment variable @var{GPG_AGENT_INFO} and then fall back to this
 socket.  This option may not be used if the home directory is mounted on
 a remote file system which does not support special files like fifos or
 sockets.
- at ifset gpgtwoone
-Note, that @option{--use-standard-socket} is the default on all
-systems since GnuPG 2.1.
- at end ifset
- at ifclear gpgtwoone
+
 Note, that @option{--use-standard-socket} is the default on
 Windows systems.
- at end ifclear
+
 The default may be changed at build time.  It is
 possible to test at runtime whether the agent has been configured for
 use with the standard socket by issuing the command @command{gpg-agent
 --use-standard-socket-p} which returns success if the standard socket
 option has been enabled.
+ at end ifclear
 
 @item --display @var{string}
 @itemx --ttyname @var{string}
@@ -751,6 +758,30 @@ This signal is used for internal purposes.
 @node Agent Examples
 @section Examples
 
+ at ifset gpgtwoone
+It is important to set the GPG_TTY environment variable in
+your login shell, for example in the @file{~/.bashrc} init script:
+
+ at cartouche
+ at example
+  export GPG_TTY=$(tty)
+ at end example
+ at end cartouche
+
+If you enabled the Ssh Agent Support, you also need to tell ssh about
+it by adding this to your init script:
+
+ at cartouche
+ at example
+unset SSH_AGENT_PID
+if [ "$@{gnupg_SSH_AUTH_SOCK_by:-0@}" -ne $$ ]; then
+  export SSH_AUTH_SOCK="$@{HOME@}/.gnupg/S.gpg-agent.ssh"
+fi
+ at end example
+ at end cartouche
+ at end ifset
+
+ at ifclear gpgtwoone
 The usual way to invoke @command{gpg-agent} is
 
 @example
@@ -786,6 +817,7 @@ and add something like (for Bourne shells)
 
 @noindent
 to your shell initialization file (e.g. @file{~/.bashrc}).
+ at end ifclear
 
 @c
 @c  Assuan Protocol
@@ -797,15 +829,21 @@ to your shell initialization file (e.g. @file{~/.bashrc}).
 Note: this section does only document the protocol, which is used by
 GnuPG components; it does not deal with the ssh-agent protocol.
 
+ at ifset gpgtwoone
+The @command{gpg-agent} daemon is started on demand by the GnuPG
+components.
+ at end ifset
+ at ifclear gpgtwoone
 The @command{gpg-agent} should be started by the login shell and set an
 environment variable to tell clients about the socket to be used.
 Clients should deny to access an agent with a socket name which does
 not match its own configuration.  An application may choose to start
-an instance of the gpgagent if it does not figure that any has been
-started; it should not do this if a gpgagent is running but not
+an instance of the gpg-agent if it does not figure that any has been
+started; it should not do this if a gpg-agent is running but not
 usable.  Because @command{gpg-agent} can only be used in background mode, no
 special command line option is required to activate the use of the
 protocol.
+ at end ifclear
 
 To identify a key we use a thing called keygrip which is the SHA-1 hash
 of an canonical encoded S-Expression of the public key as used in
diff --git a/doc/gpg.texi b/doc/gpg.texi
index 31bdda0..33329a1 100644
--- a/doc/gpg.texi
+++ b/doc/gpg.texi
@@ -1701,9 +1701,12 @@ This is dummy option. It has no effect when used with @command{gpg2}.
 @item --agent-program @var{file}
 @opindex agent-program
 Specify an agent program to be used for secret key operations.  The
-default value is the @file{/usr/bin/gpg-agent}.  This is only used
+default value is the @file{/usr/bin/gpg-agent}.
+ at ifclear gpgtwoone
+This is only used
 as a fallback when the environment variable @code{GPG_AGENT_INFO} is not
 set or a running agent cannot be connected.
+ at end ifclear
 
 @ifset gpgtwoone
 @item --dirmngr-program @var{file}
@@ -3040,6 +3043,10 @@ Operation is further controlled by a few environment variables:
   If set directory used instead of "~/.gnupg".
 
   @item GPG_AGENT_INFO
+ at ifset gpgtwoone
+  This variable was used by GnuPG versions before 2.1
+ at end ifset
+ at ifclear gpgtwoone
   Used to locate the gpg-agent.
 
   The value consists of 3 colon delimited fields: The first is the path
@@ -3047,6 +3054,7 @@ Operation is further controlled by a few environment variables:
   protocol version which should be set to 1. When starting the gpg-agent
   as described in its documentation, this variable is set to the correct
   value. The option @option{--gpg-agent-info} can be used to override it.
+ at end ifclear
 
   @item PINENTRY_USER_DATA
   This value is passed via gpg-agent to pinentry.  It is useful to convey
diff --git a/doc/gpgsm.texi b/doc/gpgsm.texi
index 078d2ad..bc6326c 100644
--- a/doc/gpgsm.texi
+++ b/doc/gpgsm.texi
@@ -358,9 +358,12 @@ Change the default name of the policy file to @var{filename}.
 @item --agent-program @var{file}
 @opindex agent-program
 Specify an agent program to be used for secret key operations.  The
-default value is the @file{/usr/local/bin/gpg-agent}.  This is only used
+default value is the @file{/usr/local/bin/gpg-agent}.
+ at ifclear gpgtwoone
+This is only used
 as a fallback when the environment variable @code{GPG_AGENT_INFO} is not
 set or a running agent cannot be connected.
+ at end ifclear
 
 @item --dirmngr-program @var{file}
 @opindex dirmngr-program
@@ -892,8 +895,12 @@ other programs of this software too.
 
 @item S.gpg-agent
 @cindex S.gpg-agent
-If this file exists and the environment variable @env{GPG_AGENT_INFO} is
-not set, @command{gpgsm} will first try to connect to this socket for
+If this file exists
+ at ifclear gpgtwoone
+and the environment variable @env{GPG_AGENT_INFO} is
+not set,
+ at end ifclear
+ at command{gpgsm} will first try to connect to this socket for
 accessing @command{gpg-agent} before starting a new @command{gpg-agent}
 instance.  Under Windows this socket (which in reality be a plain file
 describing a regular TCP listening port) is the standard way of
diff --git a/g10/server.c b/g10/server.c
index b019d1a..d02f20e 100644
--- a/g10/server.c
+++ b/g10/server.c
@@ -728,15 +728,12 @@ gpg_server (ctrl_t ctrl)
   if (opt.verbose || opt.debug)
     {
       char *tmp = NULL;
-      const char *s1 = getenv (GPG_AGENT_INFO_NAME);
 
       tmp = xtryasprintf ("Home: %s\n"
                           "Config: %s\n"
-                          "AgentInfo: %s\n"
                           "%s",
                           opt.homedir,
                           "fixme: need config filename",
-                          s1?s1:"[not set]",
                           hello);
       if (tmp)
         {
diff --git a/g13/server.c b/g13/server.c
index 573f670..07b74f8 100644
--- a/g13/server.c
+++ b/g13/server.c
@@ -612,15 +612,12 @@ g13_server (ctrl_t ctrl)
   if (opt.verbose || opt.debug)
     {
       char *tmp = NULL;
-      const char *s1 = getenv (GPG_AGENT_INFO_NAME);
 
       tmp = xtryasprintf ("Home: %s\n"
                           "Config: %s\n"
-                          "AgentInfo: %s\n"
                           "%s",
                           opt.homedir,
                           opt.config_filename,
-                          s1?s1:"[not set]",
                           hello);
       if (tmp)
         {
diff --git a/scd/scdaemon.c b/scd/scdaemon.c
index 9cc4d11..be99b00 100644
--- a/scd/scdaemon.c
+++ b/scd/scdaemon.c
@@ -206,9 +206,8 @@ static int ticker_disabled;
 
 
 

-static char *create_socket_name (int use_standard_socket,
-                                 char *standard_name, char *template);
-static gnupg_fd_t create_server_socket (int is_standard_name, const char *name,
+static char *create_socket_name (char *standard_name);
+static gnupg_fd_t create_server_socket (const char *name,
                                         assuan_sock_nonce_t *nonce);
 
 static void *start_connection_thread (void *arg);
@@ -399,7 +398,6 @@ main (int argc, char **argv )
   int gpgconf_list = 0;
   const char *config_filename = NULL;
   int allow_coredump = 0;
-  int standard_socket = 0;
   struct assuan_malloc_hooks malloc_hooks;
   int res;
   npth_t pipecon_handler;
@@ -445,12 +443,6 @@ main (int argc, char **argv )
   opt.allow_admin = 1;
   opt.pcsc_driver = DEFAULT_PCSC_DRIVER;
 
-#ifdef HAVE_W32_SYSTEM
-  standard_socket = 1;  /* Under Windows we always use a standard
-                           socket.  */
-#endif
-
-
   shell = getenv ("SHELL");
   if (shell && strlen (shell) >= 3 && !strcmp (shell+strlen (shell)-3, "csh") )
     csh_style = 1;
@@ -744,12 +736,8 @@ main (int argc, char **argv )
          back the name of that socket. */
       if (multi_server)
         {
-          socket_name = create_socket_name (standard_socket,
-                                            SCDAEMON_SOCK_NAME,
-                                            "gpg-XXXXXX/" SCDAEMON_SOCK_NAME);
-
-          fd = FD2INT(create_server_socket (standard_socket,
-                                            socket_name, &socket_nonce));
+          socket_name = create_socket_name (SCDAEMON_SOCK_NAME);
+          fd = FD2INT(create_server_socket (socket_name, &socket_nonce));
         }
 
       res = npth_attr_init (&tattr);
@@ -800,12 +788,8 @@ main (int argc, char **argv )
 #endif
 
       /* Create the socket.  */
-      socket_name = create_socket_name (standard_socket,
-                                        SCDAEMON_SOCK_NAME,
-                                        "gpg-XXXXXX/" SCDAEMON_SOCK_NAME);
-
-      fd = FD2INT (create_server_socket (standard_socket,
-                                         socket_name, &socket_nonce));
+      socket_name = create_socket_name (SCDAEMON_SOCK_NAME);
+      fd = FD2INT (create_server_socket (socket_name, &socket_nonce));
 
 
       fflush (NULL);
@@ -1026,46 +1010,17 @@ handle_tick (void)
 }
 
 
-/* Create a name for the socket.  With USE_STANDARD_SOCKET given as
-   true using STANDARD_NAME in the home directory or if given has
-   false from the mkdir type name TEMPLATE.  In the latter case a
-   unique name in a unique new directory will be created.  In both
-   cases check for valid characters as well as against a maximum
-   allowed length for a unix domain socket is done.  The function
-   terminates the process in case of an error.  Retunrs: Pointer to an
-   allcoated string with the absolute name of the socket used.  */
+/* Create a name for the socket.  We check for valid characters as
+   well as against a maximum allowed length for a unix domain socket
+   is done.  The function terminates the process in case of an error.
+   Retunrs: Pointer to an allcoated string with the absolute name of
+   the socket used.  */
 static char *
-create_socket_name (int use_standard_socket,
-		    char *standard_name, char *template)
+create_socket_name (char *standard_name)
 {
-  char *name, *p;
-
-  if (use_standard_socket)
-    name = make_filename (opt.homedir, standard_name, NULL);
-  else
-    {
-      /* Prepend the tmp directory to the template.  */
-      p = getenv ("TMPDIR");
-      if (!p || !*p)
-        p = "/tmp";
-      if (p[strlen (p) - 1] == '/')
-        name = xstrconcat (p, template, NULL);
-      else
-        name = xstrconcat (p, "/", template, NULL);
-
-      p = strrchr (name, '/');
-      if (!p)
-	BUG ();
-      *p = 0;
-      if (!mkdtemp (name))
-	{
-	  log_error (_("can't create directory '%s': %s\n"),
-		     name, strerror (errno));
-	  scd_exit (2);
-	}
-      *p = '/';
-    }
+  char *name;
 
+  name = make_filename (opt.homedir, standard_name, NULL);
   if (strchr (name, PATHSEP_C))
     {
       log_error (("'%s' are not allowed in the socket name\n"), PATHSEP_S);
@@ -1081,12 +1036,10 @@ create_socket_name (int use_standard_socket,
 
 
 
-/* Create a Unix domain socket with NAME.  IS_STANDARD_NAME indicates
-   whether a non-random socket is used.  Returns the file descriptor
+/* Create a Unix domain socket with NAME.  Returns the file descriptor
    or terminates the process in case of an error. */
 static gnupg_fd_t
-create_server_socket (int is_standard_name, const char *name,
-                      assuan_sock_nonce_t *nonce)
+create_server_socket (const char *name, assuan_sock_nonce_t *nonce)
 {
   struct sockaddr_un *serv_addr;
   socklen_t len;
@@ -1108,7 +1061,7 @@ create_server_socket (int is_standard_name, const char *name,
   len = SUN_LEN (serv_addr);
 
   rc = assuan_sock_bind (fd, (struct sockaddr*) serv_addr, len);
-  if (is_standard_name && rc == -1 && errno == EADDRINUSE)
+  if (rc == -1 && errno == EADDRINUSE)
     {
       remove (name);
       rc = assuan_sock_bind (fd, (struct sockaddr*) serv_addr, len);
diff --git a/sm/server.c b/sm/server.c
index 978e70a..0bee5b2 100644
--- a/sm/server.c
+++ b/sm/server.c
@@ -1299,18 +1299,15 @@ gpgsm_server (certlist_t default_recplist)
   if (opt.verbose || opt.debug)
     {
       char *tmp = NULL;
-      const char *s1 = getenv (GPG_AGENT_INFO_NAME);
 
       /* Fixme: Use the really used socket name.  */
       if (asprintf (&tmp,
                     "Home: %s\n"
                     "Config: %s\n"
-                    "AgentInfo: %s\n"
                     "DirmngrInfo: %s\n"
                     "%s",
                     opt.homedir,
                     opt.config_filename,
-                    s1?s1:"[not set]",
                     (dirmngr_user_socket_name ()
                      ? dirmngr_user_socket_name ()
                      : dirmngr_sys_socket_name ()),
diff --git a/tools/gpgconf.c b/tools/gpgconf.c
index cb37a25..f63c05e 100644
--- a/tools/gpgconf.c
+++ b/tools/gpgconf.c
@@ -366,28 +366,10 @@ main (int argc, char **argv)
         }
 
       {
-        char *infostr = getenv (GPG_AGENT_INFO_NAME);
-
-        if (!infostr || !*infostr)
-          infostr = make_filename (default_homedir (),
+        char *tmp = make_filename (default_homedir (),
                                    GPG_AGENT_SOCK_NAME, NULL);
-        else
-          {
-            char *tmp;
-
-            infostr = xstrdup (infostr);
-            tmp = strchr (infostr, PATHSEP_C);
-            if (!tmp || tmp == infostr)
-              {
-                xfree (infostr);
-                infostr = NULL;
-              }
-            else
-              *tmp = 0;
-          }
-        es_fprintf (outfp, "agent-socket:%s\n",
-                    infostr? gc_percent_escape (infostr) : "");
-        xfree (infostr);
+        es_fprintf (outfp, "agent-socket:%s\n", gc_percent_escape (tmp));
+        xfree (tmp);
       }
       {
         /* We need to use make_filename to expand a possible "~/".  */

-----------------------------------------------------------------------

Summary of changes:
 README                    |   68 ++++++------
 agent/agent.h             |    3 -
 agent/command.c           |    6 +-
 agent/gpg-agent.c         |  224 ++++++++-------------------------------
 common/asshelp.c          |  255 +++++++++++++--------------------------------
 common/exechelp-w32.c     |    5 +-
 common/simple-pwquery.c   |   21 +---
 configure.ac              |   52 ++++-----
 doc/gpg-agent.texi        |   68 +++++++++---
 doc/gpg.texi              |   10 +-
 doc/gpgsm.texi            |   13 ++-
 g10/call-agent.c          |   30 ++++++
 g10/call-agent.h          |    2 +
 g10/migrate.c             |   23 ++++
 g10/server.c              |    3 -
 g13/server.c              |    3 -
 po/de.po                  |  101 +++++++++++-------
 po/fr.po                  |  107 ++++++++++++-------
 po/ja.po                  |   93 +++++++++++------
 po/uk.po                  |  103 +++++++++++-------
 scd/scdaemon.c            |   81 +++-----------
 sm/server.c               |    3 -
 tests/openpgp/Makefile.am |    5 +-
 tools/gpgconf.c           |   24 +----
 24 files changed, 589 insertions(+), 714 deletions(-)


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list