Proposal: Stateless configuration by extending XDG_CONFIG_DIRS
Ikey Doherty
michael.i.doherty at intel.com
Mon Mar 14 13:32:35 UTC 2016
Hello,
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:
/usr/share/xdg
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:
https://bugzilla.gnome.org/show_bug.cgi?id=763539
For a larger discussion on this topic, please see:
https://clearlinux.org/features/stateless
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