|
Size: 4045
Comment:
|
Size: 4309
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 4: | Line 4: |
| The [[http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html|XDG Base Directory Specification]] (XDGBDS) defines four directories in a users home directory that should be used for so called [[DotFilesList|DotFiles]]. Please refer to [[http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html|the specification]] for directory definitions and further details. Debian does not require that packages conform to the ''XDGBDS'' but [[UpstreamGuide#User_home_directories|strongly encourages]] upstreams to do so. Debian packages should not be patched for conformance to avoid unnecessary deviation from upstream and other distributions. | The [[http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html|XDG Base Directory Specification]] (XDGBDS) defines four categories of so called [[DotFilesList|DotFiles]] and the corresponding directories in a users home directory that should be used for those. The categories are cache, configuration, data and runtime files. There is not yet a separate categorie for "state" files although such a categorie has been requested several times (see [[#state|State proposal]] below. Please refer to [[http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html|the specification]] for directory definitions and further details. Debian does not require that packages conform to the ''XDGBDS'' but [[UpstreamGuide#User_home_directories|strongly encourages]] upstreams to do so. Debian packages should not be patched for conformance to avoid unnecessary deviation from upstream and other distributions. |
Translation(s): none
The XDG Base Directory Specification (XDGBDS) defines four categories of so called DotFiles and the corresponding directories in a users home directory that should be used for those. The categories are cache, configuration, data and runtime files. There is not yet a separate categorie for "state" files although such a categorie has been requested several times (see State proposal below.
Please refer to the specification for directory definitions and further details. Debian does not require that packages conform to the XDGBDS but strongly encourages upstreams to do so. Debian packages should not be patched for conformance to avoid unnecessary deviation from upstream and other distributions.
Tools and libraries
Debian contains several libraries for different languages that help to implement the XDGBDS:
Haskell: haskell-xdg-basedir
Python: python-xdg/python3-xdg
C++/QT: libqtxdg
C/Gnome: via glib)
Status of Packages
Debian does not require packages to conform to the XDGBDS and there is not (yet) a coordinated effort to encourage upstreams to do so. But to avoid duplication of effort we can collect upstream bug reports here regarding XDGBDS conformance.
mplayer: upstream bug
xmonad: upstream bug
bugs not yet filled/found: ZSH, gimp, ssh, gnupg, mplayer, dbus, libpurple/pidgin,
Links
Modify your application to use XDG folders - Blog post from Lionel Dricot
Fedora initiative to make packages conform to XDGBDS
Gnome Goal to conform to XDGBDS
Proposal: STATE directory
This is a recurring request/complaint (see this or this) on the xdg-freedesktop mailing list to introduce another directory for state information that does not belong in any of the existing categories (see also home-dir.proposal. Examples for this information are:
- history files of shells, repls, anything that uses libreadline
- logfiles
- state of application windows on exit
- recently opened file
- last time application was run
The above example information is not essential data. However it should still persist on reboots of the system unlike cache data that a user might consider putting in a TMPFS. On the other hand the data is rather volatile and does not make sense to be checked into a VCS. The files are also not the data files that an application works on.
Some questions that might help to distinguish between the different classes:
|
DATA |
CONFIG |
STATE |
CACHE |
RUNTIME |
sync across machines? |
yes? |
yes |
no |
no |
no |
manage in VCS (Git/SVN)? |
no |
yes |
no |
no |
no |
should be backed up? |
yes |
yes |
yes |
no |
no |
can live in tmpfs? |
no |
no |
no |
yes |
yes? |
contains much data? |
yes |
no |
no |
yes |
no |
