Message ID | 062d00aaa485dd2c8524f6822a524cb3cb3bdc55.camel@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [bug#53781,shepherd] support: Use XDG_STATE_HOME for log files. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Hello Liliana, Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > 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 > XDG_STATE_HOME. > * doc/shepherd.texi: Adjust accordingly. > * tests/basic.sh: Adjust accordingly. > --- > doc/shepherd.texi | 3 ++- > modules/shepherd/support.scm | 4 ++-- > tests/basic.sh | 4 +++- > 3 files changed, 7 insertions(+), 4 deletions(-) [...] > diff --git a/tests/basic.sh b/tests/basic.sh > index 5079aa1..5ef1fb0 100644 > --- a/tests/basic.sh > +++ b/tests/basic.sh > @@ -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 I don't get why you define XDG_DATA_HOME here, as it wasn't used before and it is a test and shouldn't need to be backward compatible except for testing such backward compatibility. Otherwise it LGTM! Thank you for the patch. Cheers, - Brice
Hi, Liliana Marie Prikler <liliana.prikler@gmail.com> skribis: > 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 > XDG_STATE_HOME. > * doc/shepherd.texi: Adjust accordingly. > * tests/basic.sh: Adjust accordingly. Pushed as ec2a0b07a6dedcbec3cf6bb7328b144a117873e8, thanks! Ludo’.
diff --git a/doc/shepherd.texi b/doc/shepherd.texi index 94f6131..b779a5f 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_DATA_DIR/.local/share/shepherd/shepherd.log}. +@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 21c59f7..72b74ba 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")) "/shepherd")) (define %user-runtime-dir diff --git a/tests/basic.sh b/tests/basic.sh index 5079aa1..5ef1fb0 100644 --- a/tests/basic.sh +++ b/tests/basic.sh @@ -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