Merge pull request #12750 from keszybz/tmpfiles-c-copy
Make tmpfiles C use --root
This commit is contained in:
commit
6c75f78e94
|
@ -36,6 +36,37 @@
|
||||||
<filename>…</filename>
|
<filename>…</filename>
|
||||||
<filename>/usr/share/user-tmpfiles.d/*.conf</filename>
|
<filename>/usr/share/user-tmpfiles.d/*.conf</filename>
|
||||||
</literallayout></para>
|
</literallayout></para>
|
||||||
|
|
||||||
|
<programlisting>#Type Path Mode User Group Age Argument
|
||||||
|
f /file/to/create mode user group - content
|
||||||
|
F /file/to/create-or-truncate mode user group - content
|
||||||
|
w /file/to/write-to - - - - content
|
||||||
|
d /directory/to/create-and-cleanup mode user group cleanup-age -
|
||||||
|
D /directory/to/create-and-remove mode user group cleanup-age -
|
||||||
|
e /directory/to/cleanup mode user group cleanup-age -
|
||||||
|
v /subvolume/to/create mode user group - -
|
||||||
|
v /subvolume-or-directory/to/create mode user group - -
|
||||||
|
Q /subvolume/to/create mode user group - -
|
||||||
|
p /fifo/to/create mode user group - -
|
||||||
|
L /symlink/to/create - - - - symlink/target/path
|
||||||
|
c /dev/char-device-to-create mode user group - -
|
||||||
|
b /dev/block-device-to-create mode user group - -
|
||||||
|
# p+, L+, c+, b+ create target unconditionally
|
||||||
|
C /target/to/create - - - - /source/to/copy
|
||||||
|
x /path-or-glob/to/ignore - - - - -
|
||||||
|
X /path-or-glob/to/ignore/recursively - - - - -
|
||||||
|
r /empty/dir/to/remove - - - - -
|
||||||
|
R /dir/to/remove/recursively - - - - -
|
||||||
|
z /path-or-glob/to/adjust/mode mode user group - MAC context
|
||||||
|
Z /path-or-glob/to/adjust/mode/recursively mode user group - MAC context
|
||||||
|
t /path-or-glob/to/set/xattrs - - - - xattrs
|
||||||
|
T /path-or-glob/to/set/xattrs/recursively - - - - xattrs
|
||||||
|
h /path-or-glob/to/set/attrs - - - - file attrs
|
||||||
|
H /path-or-glob/to/set/attrs/recursively - - - - file attrs
|
||||||
|
a /path-or-glob/to/set/acls - - - - POSIX ACLs
|
||||||
|
A /path-or-glob/to/set/acls/recursively - - - - POSIX ACLs
|
||||||
|
# a+, A+ append ACLs
|
||||||
|
</programlisting>
|
||||||
</refsynopsisdiv>
|
</refsynopsisdiv>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
|
|
|
@ -2613,13 +2613,22 @@ static int parse_line(const char *fname, unsigned line, const char *buffer, bool
|
||||||
|
|
||||||
case COPY_FILES:
|
case COPY_FILES:
|
||||||
if (!i.argument) {
|
if (!i.argument) {
|
||||||
i.argument = strappend("/usr/share/factory/", i.path);
|
i.argument = path_join(arg_root, "/usr/share/factory/", i.path);
|
||||||
if (!i.argument)
|
if (!i.argument)
|
||||||
return log_oom();
|
return log_oom();
|
||||||
|
|
||||||
} else if (!path_is_absolute(i.argument)) {
|
} else if (!path_is_absolute(i.argument)) {
|
||||||
*invalid_config = true;
|
*invalid_config = true;
|
||||||
log_error("[%s:%u] Source path is not absolute.", fname, line);
|
log_error("[%s:%u] Source path is not absolute.", fname, line);
|
||||||
return -EBADMSG;
|
return -EBADMSG;
|
||||||
|
|
||||||
|
} else if (arg_root) {
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
p = prefix_root(arg_root, i.argument);
|
||||||
|
if (!p)
|
||||||
|
return log_oom();
|
||||||
|
free_and_replace(i.argument, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
path_simplify(i.argument, false);
|
path_simplify(i.argument, false);
|
||||||
|
@ -2713,7 +2722,6 @@ static int parse_line(const char *fname, unsigned line, const char *buffer, bool
|
||||||
p = path_join(arg_root, i.path);
|
p = path_join(arg_root, i.path);
|
||||||
if (!p)
|
if (!p)
|
||||||
return log_oom();
|
return log_oom();
|
||||||
|
|
||||||
free_and_replace(i.path, p);
|
free_and_replace(i.path, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue