From 444822f7c13700fd250cd24c05ec231baef6247d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ed=C3=AAnis=20Freindorfer=20Azevedo?= Date: Mon, 27 Dec 2021 09:33:54 -0300 Subject: [PATCH] Support `XDG Base Dir Spec 0.8`. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This version of the spec (latest as of 27.12.2021) adds a variable `$XDG_STATE_HOME` that may be used for log files, as described: ``` ... $XDG_STATE_HOME defines the base directory relative to which user-specific state files should be stored. If $XDG_STATE_HOME is either not set or empty, a default equal to $HOME/.local/state should be used. The $XDG_STATE_HOME contains state data that should persist between (application) restarts, but that is not important or portable enough to the user that it should be stored in $XDG_DATA_HOME. It may contain: actions history (logs, history, recently used files, …) ... ``` - https://specifications.freedesktop.org/basedir/0.8/ Signed-off-by: Edênis Freindorfer Azevedo Part-of: --- hw/xfree86/common/xf86Helper.c | 6 +++--- hw/xfree86/man/Xorg.man | 2 +- hw/xfree86/man/xorg.conf.man | 2 +- include/meson.build | 4 ++-- include/xorg-config.h.meson.in | 8 ++++---- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 5be6d0395..ffa49f5be 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -1162,12 +1162,12 @@ xf86LogInit(void) if (xf86LogFileFrom == X_DEFAULT) { /* When not running as root, we won't be able to write to /var/log */ if (geteuid() != 0) { - if ((env = getenv("XDG_DATA_HOME"))) + if ((env = getenv("XDG_STATE_HOME"))) snprintf(buf, sizeof(buf), "%s/%s", env, - DEFAULT_XDG_DATA_HOME_LOGDIR); + DEFAULT_XDG_STATE_HOME_LOGDIR); else if ((env = getenv("HOME"))) snprintf(buf, sizeof(buf), "%s/%s/%s", env, - DEFAULT_XDG_DATA_HOME, DEFAULT_XDG_DATA_HOME_LOGDIR); + DEFAULT_XDG_STATE_HOME, DEFAULT_XDG_STATE_HOME_LOGDIR); if (env) { xf86_mkdir_p(buf); diff --git a/hw/xfree86/man/Xorg.man b/hw/xfree86/man/Xorg.man index a77b4ffaa..8aa9a4e7b 100644 --- a/hw/xfree86/man/Xorg.man +++ b/hw/xfree86/man/Xorg.man @@ -271,7 +271,7 @@ as the server log file. The default log file when running as root is .BI @logdir@/Xorg. n .log and for non root it is -.BI $XDG_DATA_HOME/xorg/Xorg. n .log +.BI $XDG_STATE_HOME/xorg/Xorg. n .log where .I n is the display number of the diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man index b677f5d4a..a8107d9ad 100644 --- a/hw/xfree86/man/xorg.conf.man +++ b/hw/xfree86/man/xorg.conf.man @@ -452,7 +452,7 @@ The default log file name when running as root is .RE and for non root it is .RS 11 -.RI $XDG_DATA_HOME/xorg/Xorg. .log +.RI $XDG_STATE_HOME/xorg/Xorg. .log .RE .PP .RS 7 diff --git a/include/meson.build b/include/meson.build index e57ea92f3..c76017550 100644 --- a/include/meson.build +++ b/include/meson.build @@ -371,8 +371,8 @@ xorg_data.set('XORG_VERSION_CURRENT', release) xorg_data.set_quoted('XF86CONFIGFILE', 'xorg.conf') xorg_data.set_quoted('XCONFIGFILE', 'xorg.conf') xorg_data.set_quoted('XCONFIGDIR', 'xorg.conf.d') -xorg_data.set_quoted('DEFAULT_XDG_DATA_HOME', '.local/share') -xorg_data.set_quoted('DEFAULT_XDG_DATA_HOME_LOGDIR', 'xorg') +xorg_data.set_quoted('DEFAULT_XDG_STATE_HOME', '.local/state') +xorg_data.set_quoted('DEFAULT_XDG_STATE_HOME_LOGDIR', 'xorg') xorg_data.set_quoted('DEFAULT_LOGDIR', log_dir) xorg_data.set_quoted('DEFAULT_LOGPREFIX', 'Xorg.') xorg_data.set_quoted('DEFAULT_MODULE_PATH', join_paths(get_option('prefix'), module_dir)) diff --git a/include/xorg-config.h.meson.in b/include/xorg-config.h.meson.in index 9f040c2ee..1339479ea 100644 --- a/include/xorg-config.h.meson.in +++ b/include/xorg-config.h.meson.in @@ -51,11 +51,11 @@ /* Default logfile prefix */ #mesondefine DEFAULT_LOGPREFIX -/* Default XDG_DATA dir under HOME */ -#mesondefine DEFAULT_XDG_DATA_HOME +/* Default XDG_STATE dir under HOME */ +#mesondefine DEFAULT_XDG_STATE_HOME -/* Default log dir under XDG_DATA_HOME */ -#mesondefine DEFAULT_XDG_DATA_HOME_LOGDIR +/* Default log dir under XDG_STATE_HOME */ +#mesondefine DEFAULT_XDG_STATE_HOME_LOGDIR /* Building DRI-capable DDX. */ #mesondefine XF86DRI