File gnupg-2.0.10-tmpdir.diff of Package gpg2

# create gpg-agent socket in TMPDIR
Index: gnupg-2.0.12/agent/gpg-agent.c
===================================================================
--- gnupg-2.0.12.orig/agent/gpg-agent.c	2009-06-03 18:07:56.000000000 +0200
+++ gnupg-2.0.12/agent/gpg-agent.c	2009-06-18 11:40:02.000000000 +0200
@@ -937,6 +937,10 @@ main (int argc, char **argv )
       gnupg_fd_t fd_ssh;
       pid_t pid;
 
+      char *tmp1, *tmp;
+      char *tmp2 = "gpg-XXXXXX/S.gpg-agent";
+      size_t len;
+
       /* Remove the DISPLAY variable so that a pinentry does not
          default to a specific display.  There is still a default
          display when gpg-agent was started using --display or a
@@ -948,13 +952,23 @@ main (int argc, char **argv )
         unsetenv ("DISPLAY");
 #endif
 
+      if ((tmp1 = getenv("TMPDIR")) == NULL)
+        tmp1 = "/tmp";
+
+      len = strlen(tmp1) + strlen(tmp2) + 10;
+      tmp = malloc(len);
+
+      snprintf(tmp, len, "%s%s%s", tmp1, tmp1 && strlen(tmp1) > 0 ? "/" : "", tmp2);
 
       /* Create the sockets.  */
       socket_name = create_socket_name 
-        ("S.gpg-agent", "/tmp/gpg-XXXXXX/S.gpg-agent");
-      if (opt.ssh_support)
-	socket_name_ssh = create_socket_name 
-          ("S.gpg-agent.ssh", "/tmp/gpg-XXXXXX/S.gpg-agent.ssh");
+        ("S.gpg-agent", tmp);
+      if (opt.ssh_support) {
+        snprintf(tmp, len, "%s%s%s.ssh", tmp1, tmp1 && strlen(tmp1) > 0 ? "/" : "", tmp2);
+	    socket_name_ssh = create_socket_name 
+          ("S.gpg-agent.ssh", tmp);
+      }
+      free(tmp);
 
       fd = create_server_socket (socket_name, 0, &socket_nonce);
       if (opt.ssh_support)