[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[shepherd] 01/03: support: Use XDG_STATE_HOME for log files.

From: Ludovic Courtès
Subject: [shepherd] 01/03: support: Use XDG_STATE_HOME for log files.
Date: Thu, 24 Mar 2022 18:10:03 -0400 (EDT)

civodul pushed a commit to branch master
in repository shepherd.

commit ec2a0b07a6dedcbec3cf6bb7328b144a117873e8
Author: Liliana Marie Prikler <>
AuthorDate: Fri Feb 4 09:07:09 2022 +0100

    support: Use XDG_STATE_HOME for log files.
    As per XDG Base Directory Specification 0.8, "action history" (such as logs)
    ought to be stored in $XDG_STATE_HOME, defaulting to $HOME/.local/state.
    Respect this specification.
    * modules/shepherd/support.scm (%user-log-dir): Define in terms of
    * doc/shepherd.texi: Adjust accordingly.
    * tests/ Adjust accordingly.
    Signed-off-by: Ludovic Courtès <>
 doc/shepherd.texi            | 3 ++-
 modules/shepherd/support.scm | 4 ++--
 tests/               | 4 +++-
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/doc/shepherd.texi b/doc/shepherd.texi
index 6298e93..589ece0 100644
--- a/doc/shepherd.texi
+++ b/doc/shepherd.texi
@@ -419,7 +419,8 @@ permissions are not as expected.
 Log output into @var{file}.
 For unprivileged users, the default log file is
+@file{$XDG_STATE_HOME/shepherd/shepherd.log} with @file{$XDG_STATE_HOME}
+defaulting to @file{$HOME/.local/state}.
 @cindex syslog
 When running as root, the default behavior is to connect to
diff --git a/modules/shepherd/support.scm b/modules/shepherd/support.scm
index 41ca1b8..2d6673c 100644
--- a/modules/shepherd/support.scm
+++ b/modules/shepherd/support.scm
@@ -277,8 +277,8 @@ There is NO WARRANTY, to the extent permitted by law.")))
 (define %user-log-dir
   ;; Default log directory if shepherd is run as a normal user.
-  (string-append (or (getenv "XDG_DATA_DIR")
-                     (string-append user-homedir "/.local/share"))
+  (string-append (or (getenv "XDG_STATE_HOME")
+                     (string-append user-homedir "/.local/state"))
 (define %user-runtime-dir
diff --git a/tests/ b/tests/
index 5079aa1..5ef1fb0 100644
--- a/tests/
+++ b/tests/
@@ -260,7 +260,9 @@ test -f "$log"
 # Set XDG_CONFIG_HOME for configuration files.
 export XDG_CONFIG_HOME=$confdir
-export XDG_DATA_DIR=$datadir
+export XDG_DATA_HOME=$datadir
+# Reuse XDG_DATA_HOME as XDG_STATE_HOME for backwards compatibility.
+export XDG_STATE_HOME=$datadir
 mkdir -p $confdir/shepherd
 mkdir -p $datadir/shepherd
 mv $conf $confdir/shepherd/init.scm

reply via email to

[Prev in Thread] Current Thread [Next in Thread]