[Users] Revisiting the socket_dir $TMPDIR issue

Michael Schwendt bugreporter at abwesend.de
Tue Nov 4 19:35:39 CET 2014

Hello everyone, especially the developers!

This is about the issue with Claws Mail, Firefox and mailto handlers,
where Claws Mail is started more than once because of a different tmp dir
than $TMPDIR due to either Firefox altering an unset $TMPDIR or other
programs deleting a set $TMPDIR (e.g. gnome-terminal does that). It has
been discussed on the list before as well as in various other places.

Trying once more to figure out how it could be fixed, it has been suggested
that following the XDG basedir spec would be a solution:


And indeed, using glib's g_get_user_runtime_dir() instead of
g_get_tmp_dir() even works for the gnome-terminal's mailto handler issue.


If $XDG_RUNTIME_DIR is not set, g_get_user_runtime_dir() falls back

  $ echo $XDG_CACHE_HOME

  $ xdg-user-dir RUNTIME

Would that be an option (if not putting the file below $HOME/.claws-mail instead)?

diff -Nurb --strip-trailing-cr claws-mail-3.11.1-orig/src/main.c claws-mail-3.11.1/src/main.c
--- claws-mail-3.11.1-orig/src/main.c	2014-10-27 19:58:13.000000000 +0100
+++ claws-mail-3.11.1/src/main.c	2014-11-04 19:13:50.172033231 +0100
@@ -2144,7 +2144,7 @@
 		gint stat_ok;
 		socket_dir = g_strdup_printf("%s%cclaws-mail-%d",
-					   g_get_tmp_dir(), G_DIR_SEPARATOR,
+					   g_get_user_runtime_dir(), G_DIR_SEPARATOR,

More information about the Users mailing list