Support XDG_RUNTIME_DIR being unset

Pekka Paalanen ppaalanen at
Mon Mar 11 11:01:45 PDT 2013

On Mon, 11 Mar 2013 10:12:08 -0700
Thiago Macieira <thiago.macieira at> wrote:

> On segunda-feira, 11 de março de 2013 17.10.53, Emilio Pozuelo Monfort wrote:
> > The XDG base directory specification[1] says that "If $XDG_RUNTIME_DIR
> > is not set applications should fall back to a replacement directory
> > with similar capabilities and print a warning message."
> > 
> > Currently we abort if XDG_RUNTIME_DIR is not set. The following patches
> > fall back to ~/.cache, as GLib does.
> Which relevant and recent distribution does not set XDG_RUNTIME_DIR?


But still, Emilio, the reason we on purpose fail on missing
XDG_RUNTIME_DIR is that there is no suitable "replacement directory
with similar capabilities" to be found in general.

For example, falling back to anything under $HOME will fail for
nfs-mounted home, I believe.

The requirements for XDG_RUNTIME_DIR are actually quite difficult
to fill without specific distribution support. Especially the following:

"The directory MUST be on a local file system and not shared with
any other system. The directory MUST by fully-featured by the
standards of the operating system. More specifically, on Unix-like
operating systems AF_UNIX sockets, symbolic links, hard links,
proper permissions, file locking, sparse files, memory mapping,
file change notifications, a reliable hard link count must be
supported, and no restrictions on the file name character set
should be imposed."


Therefore we want the user to explicitly shoot himself in the
foot if they have to. We actually used to have a fallback for
XDG_RUNTIME_DIR being unset, and it only caused confusion.


More information about the wayland-devel mailing list