]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-path: add support for XDG_STATE_HOME
authorLennart Poettering <lennart@poettering.net>
Mon, 26 Jun 2023 16:55:14 +0000 (18:55 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 28 Jun 2023 19:55:33 +0000 (21:55 +0200)
man/sd_path_lookup.xml
src/libsystemd/sd-path/sd-path.c
src/path/path.c
src/systemd/sd-path.h

index eda43960e799f857fd2aa47613e6e0a96df693ae..4c1346712b4c778fae6f8ab4a3e6aa93a1fabade 100644 (file)
@@ -55,6 +55,7 @@
 
         <constant>SD_PATH_USER_CONFIGURATION</constant>,
         <constant>SD_PATH_USER_RUNTIME</constant>,
+        <constant>SD_PATH_USER_STATE_PRIVATE</constant>,
         <constant>SD_PATH_USER_STATE_CACHE</constant>,
 
         <constant>SD_PATH_USER</constant>,
index 52074803601384afdff536b892ef7d14157f7a5a..36c4d89e062445f92209a8eecd5890ba357fceaf 100644 (file)
@@ -281,6 +281,9 @@ static int get_path(uint64_t type, char **buffer, const char **ret) {
         case SD_PATH_USER_STATE_CACHE:
                 return from_home_dir("XDG_CACHE_HOME", ".cache", buffer, ret);
 
+        case SD_PATH_USER_STATE_PRIVATE:
+                return from_home_dir("XDG_STATE_HOME", ".local/state", buffer, ret);
+
         case SD_PATH_USER:
                 r = get_home_dir(buffer);
                 if (r < 0)
index 52662402474154ed60e09422ca07e25d96e0dbd6..1daa345ebea5492cbc3ac83b49601aed0bff0e75 100644 (file)
@@ -41,6 +41,8 @@ static const char* const path_table[_SD_PATH_MAX] = {
         [SD_PATH_USER_CONFIGURATION]                          = "user-configuration",
         [SD_PATH_USER_RUNTIME]                                = "user-runtime",
         [SD_PATH_USER_STATE_CACHE]                            = "user-state-cache",
+        [SD_PATH_USER_STATE_PRIVATE]                          = "user-state-private",
+
         [SD_PATH_USER]                                        = "user",
         [SD_PATH_USER_DOCUMENTS]                              = "user-documents",
         [SD_PATH_USER_MUSIC]                                  = "user-music",
index 0b61484f5e62815f3c0ad42b06134851ca1d7e00..d3ee2eff6b51958949f12ef5e7a9c20e0bcb23ec 100644 (file)
@@ -53,9 +53,10 @@ enum {
         SD_PATH_USER_SHARED,
 
         /* User configuration, state, runtime ... */
-        SD_PATH_USER_CONFIGURATION, /* takes both actual configuration (like /etc) and state (like /var/lib) */
+        SD_PATH_USER_CONFIGURATION,
         SD_PATH_USER_RUNTIME,
         SD_PATH_USER_STATE_CACHE,
+        /* → SD_PATH_USER_STATE_PRIVATE is added at the bottom */
 
         /* User resources */
         SD_PATH_USER, /* $HOME itself */
@@ -116,6 +117,8 @@ enum {
         SD_PATH_SYSTEMD_SEARCH_SYSTEM_ENVIRONMENT_GENERATOR,
         SD_PATH_SYSTEMD_SEARCH_USER_ENVIRONMENT_GENERATOR,
 
+        SD_PATH_USER_STATE_PRIVATE,
+
         _SD_PATH_MAX
 };