David Faure faure at kde.org
Wed Dec 5 07:21:29 PST 2012

On Monday 03 December 2012 12:00:07 Thomas Kluyver wrote:
> I'm thinking of adding support for $XDG_RUNTIME_DIR to PyXDG. However, I
> want to check how to handle the case where it isn't set. From the spec:
> *If $XDG_RUNTIME_DIR is not set applications should fall back to a
> replacement directory with similar capabilities and print a warning
> message. Applications should use this directory for communication and
> synchronization purposes and should not place larger files in it, since it
> might reside in runtime memory and cannot necessarily be swapped out to
> disk.
> *I've read a few discussions around Ubuntu's implementation of this, and
> the consensus appears to be that there is no standard directory that will
> reliably have the right properties. So, from 12.10, Ubuntu will ensure that
> XDG_RUNTIME_DIR is set by default.
> Therefore, my thinking is to provide no fallback, so if the environment
> variable is not set, the Python variable will have a useless value too. Or,
> if implemented as a function, it would raise an exception. Applications
> that need to handle this case would then have to handle it themselves. Does
> that sound reasonable?

Not very convenient, to expect apps to implement themselves a fallback.

In Qt, I implemented this:

if XDG_RUNTIME_DIR isn't set, mkdir /tmp/runtime-$USER,
then ensure that it's owned by the user (otherwise bail out),
then chmod to 0700 (and if that fails, bail out).

At least this makes your framework easier to use, because it returns something 
that works out of the box, in normal circumstances, without requiring the user 
or the distro to prepare the directory and set an env var...

David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE, in particular KDE Frameworks 5

More information about the xdg mailing list