From b2d9ad357e136b289238eb05648c504d0c0bc06b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Tue, 24 Dec 2013 10:21:45 -0500
Subject: [PATCH] man,units: tmpfiles.d(5) cleanup
Condition for /lib (necessary for split /usr) was missing from the unit.
Some changes which were done in tmpfiles.d(5) were not carried over to
systemd-tmpfiles(1).
Also use markup where possible.
Conflicts:
man/tmpfiles.d.xml
---
man/systemd-tmpfiles.xml | 53 ++++++----
man/tmpfiles.d.xml | 168 +++++++++++++++++++-------------
units/systemd-tmpfiles-setup.service.in | 1 +
3 files changed, 134 insertions(+), 88 deletions(-)
diff --git a/man/systemd-tmpfiles.xml b/man/systemd-tmpfiles.xml
index ba727e1..91c0372 100644
--- a/man/systemd-tmpfiles.xml
+++ b/man/systemd-tmpfiles.xml
@@ -54,7 +54,9 @@
<refsynopsisdiv>
<cmdsynopsis>
- <command>systemd-tmpfiles <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt" rep="repeat">CONFIGURATION FILE</arg></command>
+ <command>systemd-tmpfiles</command>
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
+ <arg choice="opt" rep="repeat"><replaceable>CONFIGFILE</replaceable></arg>
</cmdsynopsis>
<para><filename>systemd-tmpfiles-setup.service</filename></para>
@@ -67,22 +69,20 @@
<title>Description</title>
<para><command>systemd-tmpfiles</command> creates,
- deletes and cleans up volatile and temporary files and
+ deletes, and cleans up volatile and temporary files and
directories, based on the configuration file format and
- location specified in <citerefentry>
- <refentrytitle>tmpfiles.d</refentrytitle>
- <manvolnum>5</manvolnum>
- </citerefentry>.</para>
+ location specified in
+ <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+ </para>
<para>If invoked with no arguments, it applies all
directives from all configuration files. If one or
more filenames are passed on the command line, only
the directives in these files are applied. If only
the basename of a configuration file is specified,
- all configuration directories as specified in <citerefentry>
- <refentrytitle>tmpfiles.d</refentrytitle>
- <manvolnum>5</manvolnum>
- </citerefentry> are searched for a matching file.</para>
+ all configuration directories as specified in
+ <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ are searched for a matching file.</para>
</refsect1>
<refsect1>
@@ -94,12 +94,25 @@
<varlistentry>
<term><option>--create</option></term>
- <listitem><para>If this option is passed, all
- files and directories marked with f,
- F, d, D in the configuration files are
- created. Files and directories marked with z,
- Z have their ownership, access mode and security
- labels set.</para></listitem>
+ <listitem><para>If this option is
+ passed, all files and directories
+ marked with <varname>f</varname>,
+ <varname>F</varname>,
+ <varname>w</varname>,
+ <varname>d</varname>,
+ <varname>D</varname>,
+ <varname>p</varname>,
+ <varname>L</varname>,
+ <varname>c</varname>,
+ <varname>b</varname>,
+ <varname>m</varname> in the
+ configuration files are created or
+ written to. Files and directories
+ marked with <varname>z</varname>,
+ <varname>Z</varname>,
+ <varname>m</varname> have their
+ ownership, access mode and security
+ labels set. </para></listitem>
</varlistentry>
<varlistentry>
@@ -113,9 +126,11 @@
<varlistentry>
<term><option>--remove</option></term>
<listitem><para>If this option is
- passed, all files and directories marked
- with r, R in the configuration files
- are removed.</para></listitem>
+ passed, all files and directories
+ marked with <varname>r</varname>,
+ <varname>R</varname> in the
+ configuration files are
+ removed.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--prefix=PATH</option></term>
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
index e8b630d..a00637b 100644
--- a/man/tmpfiles.d.xml
+++ b/man/tmpfiles.d.xml
@@ -67,23 +67,32 @@
<title>Configuration Format</title>
<para>Each configuration file shall be named in the
- style of <filename><package>.conf</filename>.
- Files in <filename>/etc/</filename> override files
- with the same name in <filename>/usr/lib/</filename>
- and <filename>/run/</filename>. Files in
- <filename>/run/</filename> override files with the same
- name in <filename>/usr/lib/</filename>. Packages
+ style of
+ <filename><replaceable>package</replaceable>.conf</filename>
+ or
+ <filename><replaceable>package</replaceable>-<replaceable>part</replaceable>.conf</filename>.
+ The second variant should be used when it is desirable
+ to make it easy to override just this part of
+ configuration.</para>
+
+ <para>Files in <filename>/etc/tmpfiles.d</filename>
+ override files with the same name in
+ <filename>/usr/lib/tmpfiles.d</filename> and
+ <filename>/run/tmpfiles.d</filename>. Files in
+ <filename>/run/tmpfiles.d</filename> override files
+ with the same name in
+ <filename>/usr/lib/tmpfiles.d</filename>. Packages
should install their configuration files in
- <filename>/usr/lib/</filename>. Files in
- <filename>/etc/</filename> are reserved for the local
- administrator, who may use this logic to override the
- configuration files installed by vendor packages. All
- configuration files are sorted by their filename in
- lexicographic order, regardless in which of the
- directories they reside. If multiple files specify the
- same path, the entry in the file with the lexicographically
- earliest name will be applied, all all other conflicting
- entries logged as errors.</para>
+ <filename>/usr/lib/tmpfiles.d</filename>. Files in
+ <filename>/etc/tmpfiles.d</filename> are reserved for
+ the local administrator, who may use this logic to
+ override the configuration files installed by vendor
+ packages. All configuration files are sorted by their
+ filename in lexicographic order, regardless in which
+ of the directories they reside. If multiple files
+ specify the same path, the entry in the file with the
+ lexicographically earliest name will be applied, all
+ all other conflicting entries logged as errors.</para>
<para>If the administrator wants to disable a
configuration file supplied by the vendor, the
@@ -93,10 +102,10 @@
same filename.</para>
<para>The configuration format is one line per path
- containing action, path, mode, ownership, age and argument
+ containing type, path, mode, ownership, age, and argument
fields:</para>
- <programlisting>Type Path Mode UID GID Age Argument
+ <programlisting>#Type Path Mode UID GID Age Argument
d /run/user 0755 root root 10d -
L /tmp/foobar - - - - /dev/null</programlisting>
@@ -109,12 +118,12 @@ L /tmp/foobar - - - - /dev/null</programlisting>
<variablelist>
<varlistentry>
<term><varname>f</varname></term>
- <listitem><para>Create a file if it does not exist yet (optionally writing a short string into it, if the argument parameter is passed)</para></listitem>
+ <listitem><para>Create a file if it does not exist yet. If the argument parameter is given, it will be written to the file.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>F</varname></term>
- <listitem><para>Create or truncate a file (optionally writing a short string into it, if the argument parameter is passed)</para></listitem>
+ <listitem><para>Create or truncate a file. If the argument parameter is given, it will be written to the file.</para></listitem>
</varlistentry>
<varlistentry>
@@ -127,32 +136,32 @@ L /tmp/foobar - - - - /dev/null</programlisting>
<varlistentry>
<term><varname>d</varname></term>
- <listitem><para>Create a directory if it does not exist yet</para></listitem>
+ <listitem><para>Create a directory if it does not exist yet.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>D</varname></term>
- <listitem><para>Create or empty a directory</para></listitem>
+ <listitem><para>Create or empty a directory.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>p</varname></term>
- <listitem><para>Create a named pipe (FIFO) if it does not exist yet</para></listitem>
+ <listitem><para>Create a named pipe (FIFO) if it does not exist yet.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>L</varname></term>
- <listitem><para>Create a symlink if it does not exist yet</para></listitem>
+ <listitem><para>Create a symlink if it does not exist yet.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>c</varname></term>
- <listitem><para>Create a character device node if it does not exist yet</para></listitem>
+ <listitem><para>Create a character device node if it does not exist yet.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>b</varname></term>
- <listitem><para>Create a block device node if it does not exist yet</para></listitem>
+ <listitem><para>Create a block device node if it does not exist yet.</para></listitem>
</varlistentry>
<varlistentry>
@@ -174,11 +183,12 @@ L /tmp/foobar - - - - /dev/null</programlisting>
as controlled with the Age
parameter. Note that lines of
this type do not influence the
- effect of r or R lines. Lines
- of this type accept
+ effect of <varname>r</varname>
+ or <varname>R</varname> lines.
+ Lines of this type accept
shell-style globs in place of
- normal path
- names.</para></listitem>
+ normal path names.
+ </para></listitem>
</varlistentry>
<varlistentry>
@@ -187,28 +197,31 @@ L /tmp/foobar - - - - /dev/null</programlisting>
during cleaning. Use this type
to exclude paths from clean-up
as controlled with the Age
- parameter. Unlike x this
+ parameter. Unlike
+ <varname>x</varname>, this
parameter will not exclude the
- content if path is a directory,
- but only directory itself.
- Note that lines of this type do
- not influence the effect of r
- or R lines. Lines of this type
- accept shell-style globs in
- place of normal path
- names.</para></listitem>
+ content if path is a
+ directory, but only directory
+ itself. Note that lines of
+ this type do not influence the
+ effect of <varname>r</varname>
+ or <varname>R</varname> lines.
+ Lines of this type accept
+ shell-style globs in place of
+ normal path names.
+ </para></listitem>
</varlistentry>
<varlistentry>
<term><varname>r</varname></term>
<listitem><para>Remove a file
- or directory if it
- exists. This may not be used
- to remove non-empty
- directories, use R for
- that. Lines of this type
- accept shell-style globs in
- place of normal path
+ or directory if it exists.
+ This may not be used to remove
+ non-empty directories, use
+ <varname>R</varname> for that.
+ Lines of this type accept
+ shell-style globs in place of
+ normal path
names.</para></listitem>
</varlistentry>
@@ -308,11 +321,14 @@ L /tmp/foobar - - - - /dev/null</programlisting>
<para>The file access mode to use when
creating this file or directory. If omitted or
when set to -, the default is used: 0755 for
- directories, 0644 for all other file
- objects. For z, Z lines, if omitted or when set
- to -, the file access mode will not be
- modified. This parameter is ignored for x, r,
- R, L lines.</para>
+ directories, 0644 for all other file objects.
+ For <varname>z</varname>, <varname>Z</varname>
+ lines, if omitted or when set to
+ <literal>-</literal>, the file access mode
+ will not be modified. This parameter is
+ ignored for <varname>x</varname>,
+ <varname>r</varname>, <varname>R</varname>,
+ <varname>L</varname> lines.</para>
</refsect2>
<refsect2>
@@ -321,10 +337,15 @@ L /tmp/foobar - - - - /dev/null</programlisting>
<para>The user and group to use for this file
or directory. This may either be a numeric
user/group ID or a user or group name. If
- omitted or when set to -, the default 0 (root)
- is used. For z, Z lines, when omitted or when set to -,
- the file ownership will not be modified.
- These parameters are ignored for x, r, R, L lines.</para>
+ omitted or when set to <literal>-</literal>,
+ the default 0 (root) is used. For
+ <varname>z</varname>, <varname>Z</varname>
+ lines, when omitted or when set to -, the file
+ ownership will not be modified. These
+ parameters are ignored for
+ <varname>x</varname>, <varname>r</varname>,
+ <varname>R</varname>, <varname>L</varname>
+ lines.</para>
</refsect2>
<refsect2>
@@ -357,28 +378,37 @@ L /tmp/foobar - - - - /dev/null</programlisting>
<para>When the age is set to zero, the files are cleaned
unconditionally.</para>
- <para>The age field only applies to lines starting with
- d, D and x. If omitted or set to -, no automatic clean-up
- is done.</para>
+ <para>The age field only applies to lines
+ starting with <varname>d</varname>,
+ <varname>D</varname>, and
+ <varname>x</varname>. If omitted or set to
+ <literal>-</literal>, no automatic clean-up is
+ done.</para>
<para>If the age field starts with a tilde
- character (~), the clean-up is only applied to
- files and directories one level inside the
- directory specified, but not the files and
- directories immediately inside it.</para>
+ character <literal>~</literal>, the clean-up
+ is only applied to files and directories one
+ level inside the directory specified, but not
+ the files and directories immediately inside
+ it.</para>
</refsect2>
<refsect2>
<title>Argument</title>
- <para>For L lines determines the destination
- path of the symlink. For c, b determines the
+ <para>For <varname>L</varname> lines
+ determines the destination path of the
+ symlink. For <varname>c</varname>,
+ <varname>b</varname> determines the
major/minor of the device node, with major and
- minor formatted as integers, separated by :,
- e.g. "1:3". For f, F, w may be used to specify
- a short string that is written to the file,
- suffixed by a newline. Ignored for all other
- lines.</para>
+ minor formatted as integers, separated by
+ <literal>:</literal>, e.g.
+ <literal>1:3</literal>. For
+ <varname>f</varname>, <varname>F</varname>,
+ and <varname>w</varname> may be used to
+ specify a short string that is written to the
+ file, suffixed by a newline. Ignored for all
+ other lines.</para>
</refsect2>
</refsect1>
diff --git a/units/systemd-tmpfiles-setup.service.in b/units/systemd-tmpfiles-setup.service.in
index 6f98063..3405e28 100644
--- a/units/systemd-tmpfiles-setup.service.in
+++ b/units/systemd-tmpfiles-setup.service.in
@@ -14,6 +14,7 @@ Conflicts=shutdown.target
After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target
Before=sysinit.target shutdown.target
ConditionDirectoryNotEmpty=|/usr/lib/tmpfiles.d
+ConditionDirectoryNotEmpty=|/lib/tmpfiles.d
ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d
ConditionDirectoryNotEmpty=|/etc/tmpfiles.d
ConditionDirectoryNotEmpty=|/run/tmpfiles.d