Proposal: Stateless configuration by extending XDG_CONFIG_DIRS

Ikey Doherty michael.i.doherty at
Mon Mar 14 13:32:35 UTC 2016


I would like to propose extending the current range of XDG_CONFIG_DIRS
to support stateless operating systems.

In a stateless operating system, the /usr tree is considered to be the
domain of the vendor, i.e. the OS files themselves. Files in /etc/ and
/var, i.e. mutable nodes in the filesystem, are considered to be owned
exclusively by the local system administrator (i.e. unix account euid 0)

In order to keep these split-domains, vendor-provided files must then
not violate this specification, and must instead provide files in the
/usr tree (This is under the assumption of course that the Operating
System no longer has a split /usr / tree.)

Therefore I propose that XDG_CONFIG_DIRS is extended to also support
a new vendor location:


It is also proposed on the glib bug linked below that we could extend
support for "/run/xdg" also for systemd-style runtime trees.

Notably, this is within the $(datadir) and *not* $(sysconfdir).
It should also have a lower priority than the existing $(sysconfdir)/xdg
directory, which in all cases should be respected as a local system-wide
*override* to the vendor directory.

Many benefits come from this approach: a less poluted /etc/ tree, a
complete domain-split between OS files and local system administrator
files, and no longer having to perform so-called "three-way merge" on
the local $(sysconfdir) files vs the vendor-provided OS files.

For the relevant glib discussion, please see:

For a larger discussion on this topic, please see:

This has already been implemented in the Clear Linux Project for Intel
Architecture, and as such converging on a standard now that the work
has been shown to work and be beneficial, would help all parties
moving forward into a more stateless era.

Many thanks,

- Ikey Doherty

More information about the xdg mailing list