mirror of
https://github.com/systemd/systemd
synced 2026-03-23 23:34:52 +01:00
Compare commits
14 Commits
8f876748d3
...
463aef23a7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
463aef23a7 | ||
|
|
fac5588944 | ||
|
|
caf8c6ea3f | ||
|
|
f238549b5a | ||
|
|
a8d1a8e96d | ||
|
|
8d5b391b19 | ||
|
|
e04eae5e1c | ||
|
|
12085ebb40 | ||
|
|
f12c5d36a9 | ||
|
|
6839ce3318 | ||
|
|
fce9abb227 | ||
|
|
dab1fe1a8e | ||
|
|
d6029680df | ||
|
|
be0d27ee0c |
2
TODO
2
TODO
@ -83,6 +83,8 @@ Janitorial Clean-ups:
|
|||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
|
||||||
|
* use credentials logic/TPM2 logic to store homed signing key
|
||||||
|
|
||||||
* New udev block device symlink names:
|
* New udev block device symlink names:
|
||||||
/dev/disk/by-parttypelabel/<pttype>/<ptlabel>. Use case: if pt label is used
|
/dev/disk/by-parttypelabel/<pttype>/<ptlabel>. Use case: if pt label is used
|
||||||
as partition image version string, this is a safe way to reference a specific
|
as partition image version string, this is a safe way to reference a specific
|
||||||
|
|||||||
@ -289,10 +289,10 @@ sensor:modalias:acpi:*KIOX000A*:dmi:*svn*CytrixTechnology:*pn*Complex11t:*
|
|||||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:pnVostro5581:*
|
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:pnVostro5581:*
|
||||||
ACCEL_LOCATION=base
|
ACCEL_LOCATION=base
|
||||||
|
|
||||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:pnLatitude9520:*:ct10:*
|
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0A3E:*
|
||||||
ACCEL_LOCATION=base
|
ACCEL_LOCATION=base
|
||||||
|
|
||||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:pnLatitude7420:*
|
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0B0B:*
|
||||||
ACCEL_LOCATION=base
|
ACCEL_LOCATION=base
|
||||||
|
|
||||||
# Dell Venue 8 Pro 3845
|
# Dell Venue 8 Pro 3845
|
||||||
|
|||||||
@ -49,7 +49,7 @@ if conf.get('ENABLE_HWDB') == 1
|
|||||||
|
|
||||||
if install_sysconfdir
|
if install_sysconfdir
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'udev/hwdb.d')))
|
mkdir_p.format(sysconfdir / 'udev/hwdb.d'))
|
||||||
|
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
'test -n "$DESTDIR" || @0@/systemd-hwdb update'.format(rootbindir))
|
'test -n "$DESTDIR" || @0@/systemd-hwdb update'.format(rootbindir))
|
||||||
|
|||||||
@ -240,8 +240,8 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>--make-machine-id-directory=yes|no|auto</option></term>
|
<term><option>--make-machine-id-directory=yes|no|auto</option></term>
|
||||||
<listitem><para>Control creation and deletion of the top-level machine ID directory on the file
|
<listitem><para>Control creation and deletion of the top-level machine ID directory on the file
|
||||||
system containing boot loader entries (i.e. beneath the file system returned by
|
system containing boot loader entries (i.e. beneath the file system returned by the
|
||||||
<option>--print-boot-path</option> above) during <option>install</option> and
|
<option>--print-boot-path</option> option, see above) during <option>install</option> and
|
||||||
<option>remove</option>, respectively. <literal>auto</literal> is equivalent to
|
<option>remove</option>, respectively. <literal>auto</literal> is equivalent to
|
||||||
<literal>yes</literal> if <filename>/etc/machine-id</filename> resides on a filesystem other than
|
<literal>yes</literal> if <filename>/etc/machine-id</filename> resides on a filesystem other than
|
||||||
tmpfs and <literal>no</literal> otherwise (in the latter case the machine ID is likely transient and
|
tmpfs and <literal>no</literal> otherwise (in the latter case the machine ID is likely transient and
|
||||||
|
|||||||
@ -83,12 +83,9 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>ProcessSizeMax=</varname></term>
|
<term><varname>ProcessSizeMax=</varname></term>
|
||||||
|
|
||||||
<listitem><para>The maximum size in bytes of a core
|
<listitem><para>The maximum size in bytes of a core which will be processed. Core dumps exceeding
|
||||||
which will be processed. Core dumps exceeding this size
|
this size may be stored, but the backtrace will not be generated. Like other sizes in this same
|
||||||
may be stored, but the backtrace will not be generated.
|
config file, the usual suffixes to the base of 1024 are allowed (B, K, M, G, T, P, and E).</para>
|
||||||
Like other sizes in this same config file, the usual
|
|
||||||
suffixes to the base of 1024 are allowed (B, K, M,
|
|
||||||
G, T, P, and E.)</para>
|
|
||||||
|
|
||||||
<para>Setting <varname>Storage=none</varname> and <varname>ProcessSizeMax=0</varname>
|
<para>Setting <varname>Storage=none</varname> and <varname>ProcessSizeMax=0</varname>
|
||||||
disables all coredump handling except for a log entry.</para>
|
disables all coredump handling except for a log entry.</para>
|
||||||
@ -99,9 +96,8 @@
|
|||||||
<term><varname>ExternalSizeMax=</varname></term>
|
<term><varname>ExternalSizeMax=</varname></term>
|
||||||
<term><varname>JournalSizeMax=</varname></term>
|
<term><varname>JournalSizeMax=</varname></term>
|
||||||
|
|
||||||
<listitem><para>The maximum (compressed or uncompressed) size in bytes of a
|
<listitem><para>The maximum (compressed or uncompressed) size in bytes of a core to be saved. Unit
|
||||||
core to be saved. Unit suffixes are allowed just as in
|
suffixes are allowed just as in <option>ProcessSizeMax=</option>.</para></listitem>
|
||||||
<option>ProcessSizeMax=</option></para></listitem>.
|
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -120,9 +116,8 @@
|
|||||||
by core dumps might temporarily exceed these limits while
|
by core dumps might temporarily exceed these limits while
|
||||||
core dumps are processed. Note that old core dumps are also
|
core dumps are processed. Note that old core dumps are also
|
||||||
removed based on time via
|
removed based on time via
|
||||||
<citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Set
|
<citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||||
either value to 0 to turn off size-based
|
Set either value to 0 to turn off size-based cleanup.</para></listitem>
|
||||||
clean-up.</para></listitem>
|
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
|
|||||||
@ -162,7 +162,7 @@
|
|||||||
<term><option>-1</option></term>
|
<term><option>-1</option></term>
|
||||||
|
|
||||||
<listitem><para>Show information of the most recent core dump only, instead of listing all known core
|
<listitem><para>Show information of the most recent core dump only, instead of listing all known core
|
||||||
dumps. (Equivalent to <option>--reverse -n 1</option></para></listitem>
|
dumps. Equivalent to <option>--reverse -n 1</option>.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
|||||||
106
man/meson.build
106
man/meson.build
@ -37,7 +37,7 @@ man_pages = []
|
|||||||
html_pages = []
|
html_pages = []
|
||||||
source_xml_files = []
|
source_xml_files = []
|
||||||
dbus_docs = []
|
dbus_docs = []
|
||||||
foreach tuple : xsltproc.found() ? manpages : []
|
foreach tuple : manpages
|
||||||
stem = tuple[0]
|
stem = tuple[0]
|
||||||
section = tuple[1]
|
section = tuple[1]
|
||||||
aliases = tuple[2]
|
aliases = tuple[2]
|
||||||
@ -54,49 +54,50 @@ foreach tuple : xsltproc.found() ? manpages : []
|
|||||||
htmlaliases += alias + '.html'
|
htmlaliases += alias + '.html'
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
mandirn = join_paths(get_option('mandir'), 'man' + section)
|
mandirn = get_option('mandir') / ('man' + section)
|
||||||
|
|
||||||
if condition == '' or conf.get(condition) == 1
|
if condition == '' or conf.get(condition) == 1
|
||||||
p1 = custom_target(
|
|
||||||
man,
|
|
||||||
input : xml,
|
|
||||||
output : [man] + manaliases,
|
|
||||||
command : xslt_cmd + [custom_man_xsl, '@INPUT@'],
|
|
||||||
depends : custom_entities_ent,
|
|
||||||
install : want_man,
|
|
||||||
install_dir : mandirn)
|
|
||||||
man_pages += p1
|
|
||||||
|
|
||||||
p2 = []
|
|
||||||
foreach htmlalias : htmlaliases
|
|
||||||
link = custom_target(
|
|
||||||
htmlalias,
|
|
||||||
output : htmlalias,
|
|
||||||
command : [ln, '-fs', html, '@OUTPUT@'])
|
|
||||||
if want_html
|
|
||||||
dst = join_paths(docdir, 'html', htmlalias)
|
|
||||||
cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst)
|
|
||||||
meson.add_install_script('sh', '-c', cmd)
|
|
||||||
p2 += link
|
|
||||||
endif
|
|
||||||
html_pages += link
|
|
||||||
endforeach
|
|
||||||
|
|
||||||
p3 = custom_target(
|
|
||||||
html,
|
|
||||||
input : xml,
|
|
||||||
output : html,
|
|
||||||
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
|
|
||||||
depends : [custom_entities_ent, p2],
|
|
||||||
install : want_html,
|
|
||||||
install_dir : join_paths(docdir, 'html'))
|
|
||||||
html_pages += p3
|
|
||||||
|
|
||||||
file = files(tuple[0] + '.xml')
|
file = files(tuple[0] + '.xml')
|
||||||
source_xml_files += file
|
|
||||||
if tuple[0].startswith('org.freedesktop.')
|
if tuple[0].startswith('org.freedesktop.')
|
||||||
dbus_docs += file
|
dbus_docs += file
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if xsltproc.found()
|
||||||
|
p1 = custom_target(
|
||||||
|
man,
|
||||||
|
input : xml,
|
||||||
|
output : [man] + manaliases,
|
||||||
|
command : xslt_cmd + [custom_man_xsl, '@INPUT@'],
|
||||||
|
depends : custom_entities_ent,
|
||||||
|
install : want_man,
|
||||||
|
install_dir : mandirn)
|
||||||
|
man_pages += p1
|
||||||
|
|
||||||
|
p2 = []
|
||||||
|
foreach htmlalias : htmlaliases
|
||||||
|
link = custom_target(
|
||||||
|
htmlalias,
|
||||||
|
output : htmlalias,
|
||||||
|
command : [ln, '-fs', html, '@OUTPUT@'])
|
||||||
|
if want_html
|
||||||
|
dst = docdir / 'html' / htmlalias
|
||||||
|
cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst)
|
||||||
|
meson.add_install_script('sh', '-c', cmd)
|
||||||
|
p2 += link
|
||||||
|
endif
|
||||||
|
html_pages += link
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
p3 = custom_target(
|
||||||
|
html,
|
||||||
|
input : xml,
|
||||||
|
output : html,
|
||||||
|
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
|
||||||
|
depends : [custom_entities_ent, p2],
|
||||||
|
install : want_html,
|
||||||
|
install_dir : docdir / 'html')
|
||||||
|
html_pages += p3
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
message('Skipping @0@.@1@ because @2@ is false'.format(stem, section, condition))
|
message('Skipping @0@.@1@ because @2@ is false'.format(stem, section, condition))
|
||||||
endif
|
endif
|
||||||
@ -132,7 +133,7 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
|
|||||||
html = stem + '.html'
|
html = stem + '.html'
|
||||||
man = stem + '.' + section
|
man = stem + '.' + section
|
||||||
|
|
||||||
mandirn = join_paths(get_option('mandir'), 'man' + section)
|
mandirn = get_option('mandir') / ('man' + section)
|
||||||
|
|
||||||
p1 = custom_target(
|
p1 = custom_target(
|
||||||
man,
|
man,
|
||||||
@ -152,7 +153,7 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
|
|||||||
output : htmlalias,
|
output : htmlalias,
|
||||||
command : [ln, '-fs', html, '@OUTPUT@'])
|
command : [ln, '-fs', html, '@OUTPUT@'])
|
||||||
if want_html
|
if want_html
|
||||||
dst = join_paths(docdir, 'html', htmlalias)
|
dst = docdir / 'html' / htmlalias
|
||||||
cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst)
|
cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst)
|
||||||
meson.add_install_script('sh', '-c', cmd)
|
meson.add_install_script('sh', '-c', cmd)
|
||||||
p2 += link
|
p2 += link
|
||||||
@ -167,7 +168,7 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
|
|||||||
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
|
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
|
||||||
depends : [custom_entities_ent, p2],
|
depends : [custom_entities_ent, p2],
|
||||||
install : want_html and have_lxml,
|
install : want_html and have_lxml,
|
||||||
install_dir : join_paths(docdir, 'html'))
|
install_dir : docdir / 'html')
|
||||||
html_pages += p3
|
html_pages += p3
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
@ -213,3 +214,26 @@ configure_file(
|
|||||||
input : 'html.in',
|
input : 'html.in',
|
||||||
output : 'html',
|
output : 'html',
|
||||||
configuration : buildroot_substs)
|
configuration : buildroot_substs)
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
update_dbus_docs = custom_target(
|
||||||
|
'update-dbus-docs',
|
||||||
|
output : 'update-dbus-docs',
|
||||||
|
command : [update_dbus_docs_py, '--build-dir', project_build_root, '@INPUT@'],
|
||||||
|
input : dbus_docs)
|
||||||
|
|
||||||
|
if conf.get('BUILD_MODE_DEVELOPER') == 1
|
||||||
|
test('dbus-docs-fresh',
|
||||||
|
update_dbus_docs_py,
|
||||||
|
args : ['--build-dir', project_build_root, '--test', dbus_docs])
|
||||||
|
endif
|
||||||
|
|
||||||
|
update_man_rules = custom_target(
|
||||||
|
'update-man-rules',
|
||||||
|
output : 'update-man-rules',
|
||||||
|
command : [sh, '-c',
|
||||||
|
'cd @0@ && '.format(project_build_root) +
|
||||||
|
'python3 @0@/tools/update-man-rules.py $(find @0@ -wholename "*/man/*.xml") >t && '.format(project_source_root) +
|
||||||
|
'mv t @0@/rules/meson.build'.format(meson.current_source_dir())],
|
||||||
|
depends : custom_entities_ent)
|
||||||
|
|||||||
@ -67,7 +67,7 @@
|
|||||||
|
|
||||||
<para>This is a simple mechanism to provide static user and group records via JSON drop-in files. Such
|
<para>This is a simple mechanism to provide static user and group records via JSON drop-in files. Such
|
||||||
user records should be defined in the format described by the <ulink
|
user records should be defined in the format described by the <ulink
|
||||||
url="https://systemd.io/USER_RECORD">JSON User Record</ulink> specification and be placed in one of the
|
url="https://systemd.io/USER_RECORD">JSON User Records</ulink> specification and be placed in one of the
|
||||||
aforementioned directories under a file name composed of the user name suffixed with
|
aforementioned directories under a file name composed of the user name suffixed with
|
||||||
<filename>.user</filename>, with a world-readable access mode. A symlink named after the user record's
|
<filename>.user</filename>, with a world-readable access mode. A symlink named after the user record's
|
||||||
UID formatted in decimal and suffixed with <filename>.user</filename> pointing to the primary record file
|
UID formatted in decimal and suffixed with <filename>.user</filename> pointing to the primary record file
|
||||||
|
|||||||
@ -373,7 +373,7 @@
|
|||||||
|
|
||||||
<listitem><para>A lower-case string (mostly numeric, no spaces or other characters outside of 0–9,
|
<listitem><para>A lower-case string (mostly numeric, no spaces or other characters outside of 0–9,
|
||||||
a–z, ".", "_" and "-") identifying the operating system extensions support level, to indicate which
|
a–z, ".", "_" and "-") identifying the operating system extensions support level, to indicate which
|
||||||
extension images are supported. See:
|
extension images are supported. See
|
||||||
<citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry>)
|
<citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry>)
|
||||||
for more information.</para>
|
for more information.</para>
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
and hence the systemd control group hierarchy.</para>
|
and hence the systemd control group hierarchy.</para>
|
||||||
|
|
||||||
<para>The module also applies various resource management and runtime parameters to the new session, as
|
<para>The module also applies various resource management and runtime parameters to the new session, as
|
||||||
configured in the <ulink url="https://systemd.io/USER_RECORD">JSON User Record</ulink> of the user, when
|
configured in the <ulink url="https://systemd.io/USER_RECORD">JSON User Records</ulink> of the user, when
|
||||||
one is defined.</para>
|
one is defined.</para>
|
||||||
|
|
||||||
<para>On login, this module — in conjunction with <filename>systemd-logind.service</filename> — ensures the
|
<para>On login, this module — in conjunction with <filename>systemd-logind.service</filename> — ensures the
|
||||||
|
|||||||
@ -452,8 +452,8 @@
|
|||||||
<para>If the special value <literal>auto</literal> is specified, the source to copy from is
|
<para>If the special value <literal>auto</literal> is specified, the source to copy from is
|
||||||
automatically picked up from the running system (or the image specified with
|
automatically picked up from the running system (or the image specified with
|
||||||
<option>--image=</option> — if used). A partition that matches both the configured partition type (as
|
<option>--image=</option> — if used). A partition that matches both the configured partition type (as
|
||||||
declared with <varname>Type=</varname> above), and the currently mounted directory appropriate for
|
declared with <varname>Type=</varname> described above), and the currently mounted directory
|
||||||
that partition type is determined. For example, if the partition type is set to
|
appropriate for that partition type is determined. For example, if the partition type is set to
|
||||||
<literal>root</literal> the partition backing the root directory (<filename>/</filename>) is used as
|
<literal>root</literal> the partition backing the root directory (<filename>/</filename>) is used as
|
||||||
source to copy from — if its partition type is set to <literal>root</literal> as well. If the
|
source to copy from — if its partition type is set to <literal>root</literal> as well. If the
|
||||||
declared type is <literal>usr</literal> the partition backing <filename>/usr/</filename> is used as
|
declared type is <literal>usr</literal> the partition backing <filename>/usr/</filename> is used as
|
||||||
@ -529,7 +529,7 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>MakeDirectories=</varname></term>
|
<term><varname>MakeDirectories=</varname></term>
|
||||||
|
|
||||||
<listitem><para>akes one or more absolute paths, separated by whitespace, each declaring a directory
|
<listitem><para>Takes one or more absolute paths, separated by whitespace, each declaring a directory
|
||||||
to create within the new file system. Behaviour is similar to <varname>CopyFiles=</varname>, but
|
to create within the new file system. Behaviour is similar to <varname>CopyFiles=</varname>, but
|
||||||
instead of copying in a set of files this just creates the specified directories with the default
|
instead of copying in a set of files this just creates the specified directories with the default
|
||||||
mode of 0755 owned by the root user and group, plus all their parent directories (with the same
|
mode of 0755 owned by the root user and group, plus all their parent directories (with the same
|
||||||
@ -564,10 +564,10 @@
|
|||||||
are copied in or the file system configured with <varname>Format=</varname> is created.</para>
|
are copied in or the file system configured with <varname>Format=</varname> is created.</para>
|
||||||
|
|
||||||
<para>The LUKS2 UUID is automatically derived from the partition UUID in a stable fashion. If
|
<para>The LUKS2 UUID is automatically derived from the partition UUID in a stable fashion. If
|
||||||
<literal>key-file</literal> or <literal>key-file+tpm2</literal> is used a key is added to the LUKS2
|
<literal>key-file</literal> or <literal>key-file+tpm2</literal> is used, a key is added to the LUKS2
|
||||||
superblock, configurable with the <option>--key-file=</option> switch to
|
superblock, configurable with the <option>--key-file=</option> option to
|
||||||
<command>systemd-repart</command>. If <literal>tpm2</literal> or <literal>key-file+tpm2</literal> is
|
<command>systemd-repart</command>. If <literal>tpm2</literal> or <literal>key-file+tpm2</literal> is
|
||||||
used a key is added to the LUKS2 superblock that is enrolled to the local TPM2 chip, as configured
|
used, a key is added to the LUKS2 superblock that is enrolled to the local TPM2 chip, as configured
|
||||||
with the <option>--tpm2-device=</option> and <option>--tpm2-pcrs=</option> options to
|
with the <option>--tpm2-device=</option> and <option>--tpm2-pcrs=</option> options to
|
||||||
<command>systemd-repart</command>.</para>
|
<command>systemd-repart</command>.</para>
|
||||||
|
|
||||||
@ -623,7 +623,7 @@
|
|||||||
has no effect on explicit mounts, such as those done via <citerefentry
|
has no effect on explicit mounts, such as those done via <citerefentry
|
||||||
project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry> or
|
project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry> or
|
||||||
<citerefentry
|
<citerefentry
|
||||||
project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para>
|
project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
||||||
|
|
||||||
<para>If both bit 50 and 59 are set for a partition (i.e. the partition is marked both read-only and
|
<para>If both bit 50 and 59 are set for a partition (i.e. the partition is marked both read-only and
|
||||||
marked for file system growing) the latter is typically without effect: the read-only flag takes
|
marked for file system growing) the latter is typically without effect: the read-only flag takes
|
||||||
|
|||||||
@ -552,38 +552,62 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
|
|||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><command>bind</command> <replaceable>UNIT</replaceable> <replaceable>PATH</replaceable> [<replaceable>PATH</replaceable>]</term>
|
<term>
|
||||||
|
<command>bind</command>
|
||||||
|
<replaceable>UNIT</replaceable>
|
||||||
|
<replaceable>PATH</replaceable>
|
||||||
|
[<replaceable>PATH</replaceable>]
|
||||||
|
</term>
|
||||||
|
|
||||||
<listitem><para>Bind mounts a file or directory from the host into the specified unit's view. The first path
|
<listitem><para>Bind-mounts a file or directory from the host into the specified unit's mount
|
||||||
argument is the source file or directory on the host, the second path argument is the destination file or
|
namespace. The first path argument is the source file or directory on the host, the second path
|
||||||
directory in the unit's view. When the latter is omitted, the destination path in the unit's view is the same as
|
argument is the destination file or directory in the unit's mount namespace. When the latter is
|
||||||
the source path on the host. When combined with the <option>--read-only</option> switch, a ready-only bind
|
omitted, the destination path in the unit's mount namespace is the same as the source path on the
|
||||||
mount is created. When combined with the <option>--mkdir</option> switch, the destination path is first created
|
host. When combined with the <option>--read-only</option> switch, a ready-only bind mount is
|
||||||
before the mount is applied. Note that this option is currently only supported for units that run within a mount
|
created. When combined with the <option>--mkdir</option> switch, the destination path is first
|
||||||
namespace (e.g.: with <option>RootImage=</option>, <option>PrivateMounts=</option>, etc.). This command supports bind
|
created before the mount is applied.</para>
|
||||||
mounting directories, regular files, device nodes, <constant>AF_UNIX</constant> socket nodes, as well as FIFOs.
|
|
||||||
The bind mount is ephemeral, and it is undone as soon as the current unit process exists.
|
<para>Note that this option is currently only supported for units that run within a mount namespace
|
||||||
Note that the namespace mentioned here, where the bind mount will be added to, is the one where the main service
|
(e.g.: with <option>RootImage=</option>, <option>PrivateMounts=</option>, etc.). This command
|
||||||
process runs, as other processes run in distinct namespaces (e.g.: <option>ExecReload=</option>,
|
supports bind-mounting directories, regular files, device nodes, <constant>AF_UNIX</constant>
|
||||||
<option>ExecStartPre=</option>, etc.) </para></listitem>
|
socket nodes, as well as FIFOs. The bind mount is ephemeral, and it is undone as soon as the
|
||||||
|
current unit process exists. Note that the namespace mentioned here, where the bind mount will be
|
||||||
|
added to, is the one where the main service process runs. Other processes (those exececuted by
|
||||||
|
<option>ExecReload=</option>, <option>ExecStartPre=</option>, etc.) run in distinct namespaces.
|
||||||
|
</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><command>mount-image</command> <replaceable>UNIT</replaceable> <replaceable>IMAGE</replaceable> [<replaceable>PATH</replaceable> [<replaceable>PARTITION_NAME</replaceable>:<replaceable>MOUNT_OPTIONS</replaceable>]]</term>
|
<term>
|
||||||
|
<command>mount-image</command>
|
||||||
|
<replaceable>UNIT</replaceable>
|
||||||
|
<replaceable>IMAGE</replaceable>
|
||||||
|
[<replaceable>PATH</replaceable>
|
||||||
|
[<replaceable>PARTITION_NAME</replaceable>:<replaceable>MOUNT_OPTIONS</replaceable>]]
|
||||||
|
</term>
|
||||||
|
|
||||||
<listitem><para>Mounts an image from the host into the specified unit's view. The first path argument is the source
|
<listitem><para>Mounts an image from the host into the specified unit's mount namespace. The first
|
||||||
image on the host, the second path argument is the destination directory in the unit's view (ie: inside
|
path argument is the source image on the host, the second path argument is the destination
|
||||||
<option>RootImage=</option>/<option>RootDirectory=</option>). Any following argument is interpreted as a
|
directory in the unit's mount namespace (i.e. inside
|
||||||
colon-separated tuple of partition name and comma-separated list of mount options for that partition. The format is the
|
<option>RootImage=</option>/<option>RootDirectory=</option>). The following argument, if any, is
|
||||||
same as the service <option>MountImages=</option> setting. When combined with the <option>--read-only</option> switch, a
|
interpreted as a colon-separated tuple of partition name and comma-separated list of mount options
|
||||||
ready-only mount is created. When combined with the <option>--mkdir</option> switch, the destination path is first
|
for that partition. The format is the same as the service <option>MountImages=</option>
|
||||||
created before the mount is applied. Note that this option is currently only supported for units that run within a mount
|
setting. When combined with the <option>--read-only</option> switch, a ready-only mount is
|
||||||
namespace (e.g.: with <option>RootImage=</option>, <option>PrivateMounts=</option>, etc.).
|
created. When combined with the <option>--mkdir</option> switch, the destination path is first
|
||||||
Note that the namespace mentioned here, where the image mount will be added to, is the one where the main service
|
created before the mount is applied.</para>
|
||||||
process runs, as other processes run in distinct namespaces (e.g.: <option>ExecReload=</option>,
|
|
||||||
<option>ExecStartPre=</option>, etc.). Example:
|
<para>Note that this option is currently only supported for units that run within a mount namespace
|
||||||
|
(i.e. with <option>RootImage=</option>, <option>PrivateMounts=</option>, etc.). Note that the
|
||||||
|
namespace mentioned here where the image mount will be added to, is the one where the main service
|
||||||
|
process runs. Note that the namespace mentioned here, where the bind mount will be
|
||||||
|
added to, is the one where the main service process runs. Other processes (those exececuted by
|
||||||
|
<option>ExecReload=</option>, <option>ExecStartPre=</option>, etc.) run in distinct namespaces.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>Example:
|
||||||
<programlisting>systemctl mount-image foo.service /tmp/img.raw /var/lib/image root:ro,nosuid</programlisting>
|
<programlisting>systemctl mount-image foo.service /tmp/img.raw /var/lib/image root:ro,nosuid</programlisting>
|
||||||
<programlisting>systemctl mount-image --mkdir bar.service /tmp/img.raw /var/lib/baz/img</programlisting></para></listitem>
|
<programlisting>systemctl mount-image --mkdir bar.service /tmp/img.raw /var/lib/baz/img</programlisting>
|
||||||
|
</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -2185,9 +2209,9 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
|
|||||||
<term><option>--lines=</option></term>
|
<term><option>--lines=</option></term>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>When used with <command>status</command>, controls the number of journal lines to show, counting from
|
<para>When used with <command>status</command>, controls the number of journal lines to show,
|
||||||
the most recent ones. Takes a positive integer argument, or 0 to disable journal output. Defaults to
|
counting from the most recent ones. Takes a positive integer argument, or 0 to disable journal
|
||||||
10.</para>
|
output. Defaults to 10.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -2208,8 +2232,9 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
|
|||||||
<term><option>--firmware-setup</option></term>
|
<term><option>--firmware-setup</option></term>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>When used with the <command>reboot</command> command, indicate to the system's firmware to reboot into
|
<para>When used with the <command>reboot</command> command, indicate to the system's firmware to
|
||||||
the firmware setup interface. Note that this functionality is not available on all systems.</para>
|
reboot into the firmware setup interface. Note that this functionality is not available on all
|
||||||
|
systems.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -2217,10 +2242,10 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
|
|||||||
<term><option>--boot-loader-menu=</option></term>
|
<term><option>--boot-loader-menu=</option></term>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>When used with the <command>reboot</command> command, indicate to the system's boot loader to show the
|
<para>When used with the <command>reboot</command> command, indicate to the system's boot loader to
|
||||||
boot loader menu on the following boot. Takes a time value as parameter — indicating the menu timeout. Pass
|
show the boot loader menu on the following boot. Takes a time value as parameter — indicating the
|
||||||
zero in order to disable the menu timeout. Note that not all boot loaders support this
|
menu timeout. Pass zero in order to disable the menu timeout. Note that not all boot loaders
|
||||||
functionality.</para>
|
support this functionality.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -2228,10 +2253,10 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
|
|||||||
<term><option>--boot-loader-entry=</option></term>
|
<term><option>--boot-loader-entry=</option></term>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>When used with the <command>reboot</command> command, indicate to the system's boot loader to boot into
|
<para>When used with the <command>reboot</command> command, indicate to the system's boot loader to
|
||||||
a specific boot loader entry on the following boot. Takes a boot loader entry identifier as argument, or
|
boot into a specific boot loader entry on the following boot. Takes a boot loader entry identifier
|
||||||
<literal>help</literal> in order to list available entries. Note that not all boot loaders support this
|
as argument, or <literal>help</literal> in order to list available entries. Note that not all boot
|
||||||
functionality.</para>
|
loaders support this functionality.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
|||||||
@ -84,7 +84,7 @@
|
|||||||
<term><option>--pkcs11-token-uri=</option><replaceable>URI</replaceable></term>
|
<term><option>--pkcs11-token-uri=</option><replaceable>URI</replaceable></term>
|
||||||
|
|
||||||
<listitem><para>Enroll a PKCS#11 security token or smartcard (e.g. a YubiKey). Expects a PKCS#11
|
<listitem><para>Enroll a PKCS#11 security token or smartcard (e.g. a YubiKey). Expects a PKCS#11
|
||||||
smart card URI referring to the token. Alternatively the special value <literal>auto</literal> may
|
smartcard URI referring to the token. Alternatively the special value <literal>auto</literal> may
|
||||||
be specified, in order to automatically determine the URI of a currently plugged in security token
|
be specified, in order to automatically determine the URI of a currently plugged in security token
|
||||||
(of which there must be exactly one). The special value <literal>list</literal> may be used to
|
(of which there must be exactly one). The special value <literal>list</literal> may be used to
|
||||||
enumerate all suitable PKCS#11 tokens currently plugged in. The security token must contain an RSA
|
enumerate all suitable PKCS#11 tokens currently plugged in. The security token must contain an RSA
|
||||||
|
|||||||
@ -307,7 +307,7 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><literal>passwd.shell.root</literal></term>
|
<term><literal>passwd.shell.root</literal></term>
|
||||||
|
|
||||||
<listitem><para>Specifies the shell binary to use for the specified account when creating it.
|
<listitem><para>Specifies the shell binary to use for the specified account.
|
||||||
Equivalent to the credential of the same name defined for the
|
Equivalent to the credential of the same name defined for the
|
||||||
<citerefentry><refentrytitle>systemd-sysusers.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>systemd-sysusers.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||||
service.</para></listitem>
|
service.</para></listitem>
|
||||||
|
|||||||
@ -90,7 +90,7 @@
|
|||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>--image=<replaceable>path</replaceable></option></term>
|
<term><option>--image=<replaceable>path</replaceable></option></term>
|
||||||
<listitem><para>Takes a path to a device node or refular file as argument. This is similar to
|
<listitem><para>Takes a path to a device node or regular file as argument. This is similar to
|
||||||
<option>--root=</option> as described above, but operates on a disk image instead of a directory
|
<option>--root=</option> as described above, but operates on a disk image instead of a directory
|
||||||
tree.</para></listitem>
|
tree.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|||||||
@ -1375,12 +1375,12 @@ After=sys-subsystem-net-devices-ens1.device</programlisting>
|
|||||||
</orderedlist>
|
</orderedlist>
|
||||||
|
|
||||||
<para>The combination of the three operations above ensures that it is possible to log into the
|
<para>The combination of the three operations above ensures that it is possible to log into the
|
||||||
host's user account inside the container as if it was local to the container. The user is only mapped
|
container using the same account information as on the host. The user is only mapped transiently,
|
||||||
transiently, while the container is running and the mapping itself does not result in persistent
|
while the container is running, and the mapping itself does not result in persistent changes to the
|
||||||
changes to the container (except maybe for generated log messages at login time, and similar). Note
|
container (except maybe for log messages generated at login time, and similar). Note that in
|
||||||
that in particular the UID/GID assignment in the container is not made persistently. If the user is
|
particular the UID/GID assignment in the container is not made persistently. If the user is mapped
|
||||||
mapped transiently, it is best to not allow the user to make persistent changes to the container. If
|
transiently, it is best to not allow the user to make persistent changes to the container. If the
|
||||||
the user leaves files or directories owned by the user, and those UIDs/GIDs are recycled during later
|
user leaves files or directories owned by the user, and those UIDs/GIDs are reused during later
|
||||||
container invocations (possibly with a different <option>--bind-user=</option> mapping), those files
|
container invocations (possibly with a different <option>--bind-user=</option> mapping), those files
|
||||||
and directories will be accessible to the "new" user.</para>
|
and directories will be accessible to the "new" user.</para>
|
||||||
|
|
||||||
@ -1581,9 +1581,9 @@ After=sys-subsystem-net-devices-ens1.device</programlisting>
|
|||||||
-b</programlisting>
|
-b</programlisting>
|
||||||
|
|
||||||
<para>The above command line will invoke the specified image file <filename>image.raw</filename> in
|
<para>The above command line will invoke the specified image file <filename>image.raw</filename> in
|
||||||
volatile mode, i.e with an empty <filename>/etc/</filename> and <filename>/var/</filename>, so that
|
volatile mode, i.e. with empty <filename>/etc/</filename> and <filename>/var/</filename>. The
|
||||||
the container's payload recognizes this as first boot condition, and will invoke
|
container payload will recognize this as a first boot, and will invoke
|
||||||
<filename>systemd-firstboot.service</filename>, which then read the two passed credentials to
|
<filename>systemd-firstboot.service</filename>, which then reads the two passed credentials to
|
||||||
configure the system's initial locale and root password.</para>
|
configure the system's initial locale and root password.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|||||||
@ -35,8 +35,8 @@
|
|||||||
<para>Most of <command>systemd-portabled</command>'s functionality is accessible through the
|
<para>Most of <command>systemd-portabled</command>'s functionality is accessible through the
|
||||||
<citerefentry><refentrytitle>portablectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> command.</para>
|
<citerefentry><refentrytitle>portablectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> command.</para>
|
||||||
|
|
||||||
<para>See the <ulink url="https://systemd.io/PORTABLE_SERVICES">Portable
|
<para>See <ulink url="https://systemd.io/PORTABLE_SERVICES">Portable Services</ulink> for details about
|
||||||
Services Documentation</ulink> for details about the concepts this service implements.</para>
|
the concepts this service implements.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
|
|||||||
@ -275,7 +275,7 @@ search foobar.com barbar.com
|
|||||||
fragility in both directions: a valid global name could be obscured by a local name, and resolution of
|
fragility in both directions: a valid global name could be obscured by a local name, and resolution of
|
||||||
a relative local name could suddenly break when a new top-level domain is created, or when a new
|
a relative local name could suddenly break when a new top-level domain is created, or when a new
|
||||||
subdomain of a top-level domain in registered. Resolving any given name as either relative or absolute
|
subdomain of a top-level domain in registered. Resolving any given name as either relative or absolute
|
||||||
avoids this ambiguity.)</para></footnote></para></listitem>
|
avoids this ambiguity.</para></footnote></para></listitem>
|
||||||
|
|
||||||
<listitem><para>This resolver has a notion of the special <literal>.local</literal> domain used for
|
<listitem><para>This resolver has a notion of the special <literal>.local</literal> domain used for
|
||||||
MulticastDNS, and will not route queries with that suffix to unicast DNS servers unless explicitly
|
MulticastDNS, and will not route queries with that suffix to unicast DNS servers unless explicitly
|
||||||
|
|||||||
@ -46,7 +46,7 @@
|
|||||||
operating system tree. When one or more system extension images are activated, their
|
operating system tree. When one or more system extension images are activated, their
|
||||||
<filename>/usr/</filename> and <filename>/opt/</filename> hierarchies are combined via
|
<filename>/usr/</filename> and <filename>/opt/</filename> hierarchies are combined via
|
||||||
<literal>overlayfs</literal> with the same hierarchies of the host OS, and the host
|
<literal>overlayfs</literal> with the same hierarchies of the host OS, and the host
|
||||||
<filename>/usr/</filename> and <filename>/opt</filename> overmounted with it ("merging"). When they are
|
<filename>/usr/</filename> and <filename>/opt/</filename> overmounted with it ("merging"). When they are
|
||||||
deactivated, the mount point is disassembled — again revealing the unmodified original host version of
|
deactivated, the mount point is disassembled — again revealing the unmodified original host version of
|
||||||
the hierarchy ("unmerging"). Merging thus makes the extension's resources suddenly appear below the
|
the hierarchy ("unmerging"). Merging thus makes the extension's resources suddenly appear below the
|
||||||
<filename>/usr/</filename> and <filename>/opt/</filename> hierarchies as if they were included in the
|
<filename>/usr/</filename> and <filename>/opt/</filename> hierarchies as if they were included in the
|
||||||
@ -71,7 +71,7 @@
|
|||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem><para>Plain directories or btrfs subvolumes containing the OS tree</para></listitem>
|
<listitem><para>Plain directories or btrfs subvolumes containing the OS tree</para></listitem>
|
||||||
<listitem><para>Disk images with a GPT disk label, following the <ulink
|
<listitem><para>Disk images with a GPT disk label, following the <ulink
|
||||||
url="https://systemd.io/DISCOVERABLE_PARTITIONS">Discoverable Partition Specification</ulink></para></listitem>
|
url="https://systemd.io/DISCOVERABLE_PARTITIONS">Discoverable Partitions Specification</ulink></para></listitem>
|
||||||
<listitem><para>Disk images lacking a partition table, with a naked Linux file system (e.g. squashfs or ext4)</para></listitem>
|
<listitem><para>Disk images lacking a partition table, with a naked Linux file system (e.g. squashfs or ext4)</para></listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
|
|
||||||
@ -127,13 +127,15 @@
|
|||||||
<title>Uses</title>
|
<title>Uses</title>
|
||||||
|
|
||||||
<para>The primary use case for system images are immutable environments where debugging and development
|
<para>The primary use case for system images are immutable environments where debugging and development
|
||||||
tools shall optionally be made available, but not included in the immutable base OS image itself
|
tools shall optionally be made available, but not included in the immutable base OS image itself (e.g.
|
||||||
(e.g. <filename>strace</filename> and <filename>gdb</filename> shall be an optionally installable
|
<citerefentry project='man-pages'><refentrytitle>strace</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||||
addition in order to make debugging/development easier). System extension images should not be
|
and
|
||||||
misunderstood as a generic software packaging framework, as no dependency scheme is available: system
|
<citerefentry project='man-pages'><refentrytitle>gdb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||||
extensions should carry all files they need themselves, except for those already shipped in the
|
shall be an optionally installable addition in order to make debugging/development easier). System
|
||||||
underlying host system image. Typically, system extension images are built at the same time as the base
|
extension images should not be misunderstood as a generic software packaging framework, as no dependency
|
||||||
OS image — within the same build system.</para>
|
scheme is available: system extensions should carry all files they need themselves, except for those
|
||||||
|
already shipped in the underlying host system image. Typically, system extension images are built at the
|
||||||
|
same time as the base OS image — within the same build system.</para>
|
||||||
|
|
||||||
<para>Another use case for the system extension concept is temporarily overriding OS supplied resources
|
<para>Another use case for the system extension concept is temporarily overriding OS supplied resources
|
||||||
with newer ones, for example to install a locally compiled development version of some low-level
|
with newer ones, for example to install a locally compiled development version of some low-level
|
||||||
|
|||||||
@ -262,7 +262,7 @@
|
|||||||
names in status messages (e.g. <literal>systemd-journald.service</literal>), instead of the longer
|
names in status messages (e.g. <literal>systemd-journald.service</literal>), instead of the longer
|
||||||
and more informative descriptions set with <varname>Description=</varname> (e.g. <literal>Journal
|
and more informative descriptions set with <varname>Description=</varname> (e.g. <literal>Journal
|
||||||
Logging Service</literal>). If <option>combined</option>, the system manager will use both unit names
|
Logging Service</literal>). If <option>combined</option>, the system manager will use both unit names
|
||||||
and descriptions in status messages (e.g. <literal>systemdmd-jouranld.service - Journal Logging
|
and descriptions in status messages (e.g. <literal>systemd-journald.service - Journal Logging
|
||||||
Service</literal>).</para>
|
Service</literal>).</para>
|
||||||
|
|
||||||
<para>See
|
<para>See
|
||||||
|
|||||||
@ -34,14 +34,14 @@
|
|||||||
JSON user/group records from classic UNIX/glibc NSS user/group records in order to provide full backwards
|
JSON user/group records from classic UNIX/glibc NSS user/group records in order to provide full backwards
|
||||||
compatibility. It may also pick up statically defined JSON user/group records from drop-in files in
|
compatibility. It may also pick up statically defined JSON user/group records from drop-in files in
|
||||||
<filename>/etc/userdb/</filename>, <filename>/run/userdb/</filename>,
|
<filename>/etc/userdb/</filename>, <filename>/run/userdb/</filename>,
|
||||||
<filename>/run/host/userdb/</filename> and <filename>/use/lib/userdb/</filename>.</para>
|
<filename>/run/host/userdb/</filename> and <filename>/usr/lib/userdb/</filename>.</para>
|
||||||
|
|
||||||
<para>Most of <command>systemd-userdbd</command>'s functionality is accessible through the
|
<para>Most of <command>systemd-userdbd</command>'s functionality is accessible through the
|
||||||
<citerefentry><refentrytitle>userdbctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>userdbctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||||
command.</para>
|
command.</para>
|
||||||
|
|
||||||
<para>The user and group records this service provides access to follow the <ulink
|
<para>The user and group records this service provides access to follow the <ulink
|
||||||
url="https://systemd.io/USER_RECORD">JSON User Record</ulink> and <ulink
|
url="https://systemd.io/USER_RECORD">JSON User Records</ulink> and <ulink
|
||||||
url="https://systemd.io/GROUP_RECORD">JSON Group Record</ulink> definitions. This service implements the
|
url="https://systemd.io/GROUP_RECORD">JSON Group Record</ulink> definitions. This service implements the
|
||||||
<ulink url="https://systemd.io/USER_GROUP_API">User/Group Record Lookup API via Varlink</ulink>, and
|
<ulink url="https://systemd.io/USER_GROUP_API">User/Group Record Lookup API via Varlink</ulink>, and
|
||||||
multiplexes access other services implementing this API, too. It is thus both server and client of this
|
multiplexes access other services implementing this API, too. It is thus both server and client of this
|
||||||
|
|||||||
@ -241,7 +241,7 @@
|
|||||||
<para>This option is supported only for disk images that contain a single file system, without an
|
<para>This option is supported only for disk images that contain a single file system, without an
|
||||||
enveloping partition table. Images that contain a GPT partition table should instead include both
|
enveloping partition table. Images that contain a GPT partition table should instead include both
|
||||||
root file system and matching Verity data in the same image, implementing the <ulink
|
root file system and matching Verity data in the same image, implementing the <ulink
|
||||||
url="https://systemd.io/DISCOVERABLE_PARTITIONS">Discoverable Partition Specification</ulink>.</para>
|
url="https://systemd.io/DISCOVERABLE_PARTITIONS">Discoverable Partitions Specification</ulink>.</para>
|
||||||
|
|
||||||
<xi:include href="system-only.xml" xpointer="singular"/></listitem>
|
<xi:include href="system-only.xml" xpointer="singular"/></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -402,14 +402,15 @@
|
|||||||
<term><varname>ExtensionImages=</varname></term>
|
<term><varname>ExtensionImages=</varname></term>
|
||||||
|
|
||||||
<listitem><para>This setting is similar to <varname>MountImages=</varname> in that it mounts a file
|
<listitem><para>This setting is similar to <varname>MountImages=</varname> in that it mounts a file
|
||||||
system hierarchy from a block device node or loopback file, but instead of providing a destination path,
|
system hierarchy from a block device node or loopback file, but instead of providing a destination
|
||||||
an overlay will be set up. This option expects a whitespace separated list of mount definitions. Each
|
path, an overlay will be set up. This option expects a whitespace separated list of mount
|
||||||
definition consists of a source path, optionally followed by a colon and a list of mount options.</para>
|
definitions. Each definition consists of a source path, optionally followed by a colon and a list of
|
||||||
|
mount options.</para>
|
||||||
|
|
||||||
<para>A read-only OverlayFS will be set up on top of <filename>/usr/</filename> and
|
<para>A read-only OverlayFS will be set up on top of <filename>/usr/</filename> and
|
||||||
<filename>/opt/</filename> hierarchies from the root. The order in which the images are listed
|
<filename>/opt/</filename> hierarchies. The order in which the images are listed will determine the
|
||||||
will determine the order in which the overlay is laid down: images specified first to last will result
|
order in which the overlay is laid down: images specified first to last will result in overlayfs
|
||||||
in overlayfs layers bottom to top.</para>
|
layers bottom to top.</para>
|
||||||
|
|
||||||
<para>Mount options may be defined as a single comma-separated list of options, in which case they
|
<para>Mount options may be defined as a single comma-separated list of options, in which case they
|
||||||
will be implicitly applied to the root partition on the image, or a series of colon-separated tuples
|
will be implicitly applied to the root partition on the image, or a series of colon-separated tuples
|
||||||
@ -2304,7 +2305,7 @@ SystemCallErrorNumber=EPERM</programlisting>
|
|||||||
|
|
||||||
<listitem><para>Sets environment variables for executed processes. Each line is unquoted using the
|
<listitem><para>Sets environment variables for executed processes. Each line is unquoted using the
|
||||||
rules described in "Quoting" section in
|
rules described in "Quoting" section in
|
||||||
<citerefentry><refentrytitle>systemd.syntax</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>systemd.syntax</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||||
and becomes a list of variable assignments. If you need to assign a value containing spaces or the
|
and becomes a list of variable assignments. If you need to assign a value containing spaces or the
|
||||||
equals sign to a variable, put quotes around the whole assignment. Variable expansion is not
|
equals sign to a variable, put quotes around the whole assignment. Variable expansion is not
|
||||||
performed inside the strings and the <literal>$</literal> character has no special meaning. Specifier
|
performed inside the strings and the <literal>$</literal> character has no special meaning. Specifier
|
||||||
|
|||||||
@ -457,7 +457,7 @@
|
|||||||
<term><varname>MTUBytes=</varname></term>
|
<term><varname>MTUBytes=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>The maximum transmission unit in bytes to set for the
|
<para>The maximum transmission unit in bytes to set for the
|
||||||
device. The usual suffixes K, M, G, are supported and are
|
device. The usual suffixes K, M, G are supported and are
|
||||||
understood to the base of 1024.</para>
|
understood to the base of 1024.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -465,7 +465,7 @@
|
|||||||
<term><varname>BitsPerSecond=</varname></term>
|
<term><varname>BitsPerSecond=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>The speed to set for the device, the value is rounded
|
<para>The speed to set for the device, the value is rounded
|
||||||
down to the nearest Mbps. The usual suffixes K, M, G, are
|
down to the nearest Mbps. The usual suffixes K, M, G are
|
||||||
supported and are understood to the base of 1000.</para>
|
supported and are understood to the base of 1000.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -788,7 +788,7 @@
|
|||||||
<term><varname>GenericSegmentOffloadMaxBytes=</varname></term>
|
<term><varname>GenericSegmentOffloadMaxBytes=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Specifies the maximum size of a Generic Segment Offload (GSO) packet the
|
<para>Specifies the maximum size of a Generic Segment Offload (GSO) packet the
|
||||||
device should accept. The usual suffixes K, M, G, are supported and are
|
device should accept. The usual suffixes K, M, G are supported and are
|
||||||
understood to the base of 1024. An unsigned integer in the range 1…65536.
|
understood to the base of 1024. An unsigned integer in the range 1…65536.
|
||||||
Defaults to unset.</para>
|
Defaults to unset.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -796,8 +796,8 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>GenericSegmentOffloadMaxSegments=</varname></term>
|
<term><varname>GenericSegmentOffloadMaxSegments=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Specifies the maximum number of a Generic Segment Offload (GSO) segments the device should
|
<para>Specifies the maximum number of Generic Segment Offload (GSO) segments the device should
|
||||||
accept. An unsigned integer in the range 1…65535. Defaults to unset.</para>
|
accept. An unsigned integer in the range 1…65535. Defaults to unset.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
|||||||
@ -390,7 +390,7 @@
|
|||||||
<term><varname>DefaultPVID=</varname></term>
|
<term><varname>DefaultPVID=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>This specifies the default port VLAN ID of a newly attached bridge port.
|
<para>This specifies the default port VLAN ID of a newly attached bridge port.
|
||||||
Set this to an integer in the range 1–4094 or <literal>none</literal> to disable the PVID.</para>
|
Set this to an integer in the range 1…4094 or <literal>none</literal> to disable the PVID.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -460,7 +460,7 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>Id=</varname></term>
|
<term><varname>Id=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>The VLAN ID to use. An integer in the range 0–4094.
|
<para>The VLAN ID to use. An integer in the range 0…4094.
|
||||||
This setting is compulsory.</para>
|
This setting is compulsory.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -654,7 +654,7 @@
|
|||||||
<term><varname>TTL=</varname></term>
|
<term><varname>TTL=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>A fixed Time To Live N on Virtual eXtensible Local Area Network packets.
|
<para>A fixed Time To Live N on Virtual eXtensible Local Area Network packets.
|
||||||
Takes <literal>inherit</literal> or a number in the range 0–255. 0 is a special
|
Takes <literal>inherit</literal> or a number in the range 0…255. 0 is a special
|
||||||
value meaning inherit the inner protocol's TTL value. <literal>inherit</literal>
|
value meaning inherit the inner protocol's TTL value. <literal>inherit</literal>
|
||||||
means that it will inherit the outer protocol's TTL value.</para>
|
means that it will inherit the outer protocol's TTL value.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -913,7 +913,7 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>TunnelId=</varname></term>
|
<term><varname>TunnelId=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Specifies the tunnel identifier. Takes an number in the range 1–4294967295. The value used
|
<para>Specifies the tunnel identifier. Takes an number in the range 1…4294967295. The value used
|
||||||
must match the <literal>PeerTunnelId=</literal> value being used at the peer. This setting is
|
must match the <literal>PeerTunnelId=</literal> value being used at the peer. This setting is
|
||||||
compulsory.</para>
|
compulsory.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -1002,7 +1002,7 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>SessionId=</varname></term>
|
<term><varname>SessionId=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Specifies the session identifier. Takes an number in the range 1–4294967295. The value used
|
<para>Specifies the session identifier. Takes an number in the range 1…4294967295. The value used
|
||||||
must match the <literal>SessionId=</literal> value being used at the peer. This setting is
|
must match the <literal>SessionId=</literal> value being used at the peer. This setting is
|
||||||
compulsory.</para>
|
compulsory.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -1010,7 +1010,7 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>PeerSessionId=</varname></term>
|
<term><varname>PeerSessionId=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Specifies the peer session identifier. Takes an number in the range 1–4294967295.
|
<para>Specifies the peer session identifier. Takes an number in the range 1…4294967295.
|
||||||
The value used must match the <literal>PeerSessionId=</literal> value being used at the peer.
|
The value used must match the <literal>PeerSessionId=</literal> value being used at the peer.
|
||||||
This setting is compulsory.</para>
|
This setting is compulsory.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -1234,7 +1234,7 @@
|
|||||||
<term><varname>TTL=</varname></term>
|
<term><varname>TTL=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>A fixed Time To Live N on tunneled packets. N is a
|
<para>A fixed Time To Live N on tunneled packets. N is a
|
||||||
number in the range 1–255. 0 is a special value meaning that
|
number in the range 1…255. 0 is a special value meaning that
|
||||||
packets inherit the TTL value. The default value for IPv4
|
packets inherit the TTL value. The default value for IPv4
|
||||||
tunnels is 0 (inherit). The default value for IPv6 tunnels is
|
tunnels is 0 (inherit). The default value for IPv6 tunnels is
|
||||||
64.</para>
|
64.</para>
|
||||||
@ -1256,7 +1256,7 @@
|
|||||||
It is only used for IPv6 tunnels.
|
It is only used for IPv6 tunnels.
|
||||||
A flow label of zero is used to indicate packets that have
|
A flow label of zero is used to indicate packets that have
|
||||||
not been labeled.
|
not been labeled.
|
||||||
It can be configured to a value in the range 0–0xFFFFF, or be
|
It can be configured to a value in the range 0…0xFFFFF, or be
|
||||||
set to <literal>inherit</literal>, in which case the original flowlabel is used.</para>
|
set to <literal>inherit</literal>, in which case the original flowlabel is used.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -1673,15 +1673,15 @@
|
|||||||
<para>Sets a comma-separated list of IP (v4 or v6) addresses with CIDR masks
|
<para>Sets a comma-separated list of IP (v4 or v6) addresses with CIDR masks
|
||||||
from which this peer is allowed to send incoming traffic and to
|
from which this peer is allowed to send incoming traffic and to
|
||||||
which outgoing traffic for this peer is directed.</para>
|
which outgoing traffic for this peer is directed.</para>
|
||||||
|
|
||||||
<para>The catch-all 0.0.0.0/0 may be specified for matching all IPv4 addresses,
|
<para>The catch-all 0.0.0.0/0 may be specified for matching all IPv4 addresses,
|
||||||
and ::/0 may be specified for matching all IPv6 addresses.</para>
|
and ::/0 may be specified for matching all IPv6 addresses.</para>
|
||||||
<para>Note that this only affects "routing inside the network interface itself",
|
|
||||||
as in, which wireguard peer packets with a specific destination address are sent to,
|
<para>Note that this only affects <emphasis>routing inside the network interface itself</emphasis>,
|
||||||
and what source addresses are accepted from which peer.</para>
|
i.e. the packets that pass through the tunnel itself. To cause packets to be sent via the tunnel in
|
||||||
<para>To cause packets to be sent via wireguard in first place, a route needs
|
the first place, an appropriate route needs to be added as well — either in the
|
||||||
to be added, as well - either in the <literal>[Routes]</literal> section on the
|
<literal>[Routes]</literal> section on the <literal>.network</literal> matching the wireguard
|
||||||
<literal>.network</literal> matching the wireguard interface, or outside of networkd.
|
interface, or externally to <filename>systemd-networkd</filename>.</para>
|
||||||
</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -1823,7 +1823,7 @@
|
|||||||
<term><varname>AdUserPortKey=</varname></term>
|
<term><varname>AdUserPortKey=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Specifies the 802.3ad user defined portion of the port key. Takes a number in the range
|
<para>Specifies the 802.3ad user defined portion of the port key. Takes a number in the range
|
||||||
0–1023.</para>
|
0…1023.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -2036,9 +2036,9 @@
|
|||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>[BatmanAdvanced] Section Options</title>
|
<title>[BatmanAdvanced] Section Options</title>
|
||||||
<para>The [BatmanAdvanced] section only applies for
|
|
||||||
netdevs of kind <literal>batadv</literal> and accepts the
|
<para>The [BatmanAdvanced] section only applies for netdevs of kind <literal>batadv</literal> and accepts
|
||||||
following keys:</para>
|
the following keys:</para>
|
||||||
|
|
||||||
<variablelist class='network-directives'>
|
<variablelist class='network-directives'>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
|||||||
@ -1423,7 +1423,7 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
|
|||||||
<term><varname>Metric=</varname></term>
|
<term><varname>Metric=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>The metric of the route. Takes an unsigned integer in the range 0…4294967295.
|
<para>The metric of the route. Takes an unsigned integer in the range 0…4294967295.
|
||||||
Defaluts to unset, and the kernel's default will be used.</para>
|
Defaults to unset, and the kernel's default will be used.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -1615,9 +1615,10 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
|
|||||||
<term><varname>SendHostname=</varname></term>
|
<term><varname>SendHostname=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>When true (the default), the machine's hostname (or the value specified with
|
<para>When true (the default), the machine's hostname (or the value specified with
|
||||||
<varname>Hostname=</varname> below) will be sent to the DHCP server. Note that the hostname must
|
<varname>Hostname=</varname>, described below) will be sent to the DHCP server. Note that the
|
||||||
consist only of 7-bit ASCII lower-case characters and no spaces or dots, and be formatted as a
|
hostname must consist only of 7-bit ASCII lower-case characters and no spaces or dots, and be
|
||||||
valid DNS domain name. Otherwise, the hostname is not sent even if this option is true.</para>
|
formatted as a valid DNS domain name. Otherwise, the hostname is not sent even if this option is
|
||||||
|
true.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -1911,8 +1912,8 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
|
|||||||
<term><varname>FallbackLeaseLifetimeSec=</varname></term>
|
<term><varname>FallbackLeaseLifetimeSec=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Allows to set DHCPv4 lease lifetime when DHCPv4 server does not send the lease lifetime.
|
<para>Allows to set DHCPv4 lease lifetime when DHCPv4 server does not send the lease lifetime.
|
||||||
Takes one of <literal>forever</literal> or <literal>infinity</literal> means that the address
|
Takes one of <literal>forever</literal> or <literal>infinity</literal>. The latter means that the
|
||||||
never expires. Defaults to unset.</para>
|
address never expires. Defaults to unset.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -2339,9 +2340,9 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>ServerAddress=</varname></term>
|
<term><varname>ServerAddress=</varname></term>
|
||||||
<listitem><para>Specifies server address for the DHCP server. Takes an IPv4 address with prefix
|
<listitem><para>Specifies server address for the DHCP server. Takes an IPv4 address with prefix
|
||||||
length, e.g., <literal>192.168.0.1/24</literal>. This setting may be useful when the link which
|
length, for example <literal>192.168.0.1/24</literal>. This setting may be useful when the link on
|
||||||
DHCP server running on has multiple static addresses. When unset, one of static addresses in
|
which the DHCP server is running has multiple static addresses. When unset, one of static addresses
|
||||||
the link will be automatically selected. Defaults to unset.</para></listitem>
|
in the link will be automatically selected. Defaults to unset.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -2521,23 +2522,22 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
|
|||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>[DHCPServerStaticLease] Section Options</title>
|
<title>[DHCPServerStaticLease] Section Options</title>
|
||||||
<para>The <literal>[DHCPServerStaticLease]</literal> section configures a static DHCP lease to
|
<para>The <literal>[DHCPServerStaticLease]</literal> section configures a static DHCP lease to assign a
|
||||||
assign a pre-set IPv4 address to a specific device based on its MAC address. This section can be
|
fixed IPv4 address to a specific device based on its MAC address. This section can be specified multiple
|
||||||
specified multiple times.</para>
|
times.</para>
|
||||||
|
|
||||||
<variablelist class='network-directives'>
|
<variablelist class='network-directives'>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>MACAddress=</varname></term>
|
<term><varname>MACAddress=</varname></term>
|
||||||
|
|
||||||
<listitem><para>The hardware address of a device which should be assigned IPv4 address
|
<listitem><para>The hardware address of a device to match. This key is mandatory.</para></listitem>
|
||||||
specified in <varname>Address=</varname>. This key is mandatory.</para></listitem>
|
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>Address=</varname></term>
|
<term><varname>Address=</varname></term>
|
||||||
|
|
||||||
<listitem><para>IPv4 address that should be assigned to a device with a hardware address
|
<listitem><para>The IPv4 address that should be assigned to the device that was matched with
|
||||||
specified in <varname>MACAddress=</varname>. This key is mandatory.</para></listitem>
|
<varname>MACAddress=</varname>. This key is mandatory.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|||||||
@ -202,7 +202,7 @@
|
|||||||
capabilities (see
|
capabilities (see
|
||||||
<citerefentry project='man-pages'><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
<citerefentry project='man-pages'><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||||
for details). The <varname>AmbientCapability=</varname> setting
|
for details). The <varname>AmbientCapability=</varname> setting
|
||||||
specifies capability which will be passed to to started program
|
specifies capability which will be passed to the started program
|
||||||
in the inheritable and ambient capability sets. This will grant
|
in the inheritable and ambient capability sets. This will grant
|
||||||
these capabilities to this process. This setting correspond to
|
these capabilities to this process. This setting correspond to
|
||||||
the <option>--ambient-capability=</option> command line switch.
|
the <option>--ambient-capability=</option> command line switch.
|
||||||
|
|||||||
@ -207,7 +207,7 @@ disable *</programlisting>
|
|||||||
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para><citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
<para><citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||||
has a discussion of packaging scriptlets.</para>
|
has a discussion of packaging scriptlets.</para>
|
||||||
|
|
||||||
<para>Fedora page introducing the use of presets:
|
<para>Fedora page introducing the use of presets:
|
||||||
|
|||||||
@ -1134,7 +1134,7 @@
|
|||||||
<literal>\;</literal>.</para>
|
<literal>\;</literal>.</para>
|
||||||
|
|
||||||
<para>Each command line is unquoted using the rules described in "Quoting" section in
|
<para>Each command line is unquoted using the rules described in "Quoting" section in
|
||||||
<citerefentry><refentrytitle>systemd.syntax</refentrytitle><manvolnum>5</manvolnum></citerefentry>. The
|
<citerefentry><refentrytitle>systemd.syntax</refentrytitle><manvolnum>7</manvolnum></citerefentry>. The
|
||||||
first item becomes the command to execute, and the subsequent items the arguments.</para>
|
first item becomes the command to execute, and the subsequent items the arguments.</para>
|
||||||
|
|
||||||
<para>This syntax is inspired by shell syntax, but only the meta-characters and expansions
|
<para>This syntax is inspired by shell syntax, but only the meta-characters and expansions
|
||||||
|
|||||||
@ -1535,7 +1535,7 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>ConditionControlGroupController=</varname></term>
|
<term><varname>ConditionControlGroupController=</varname></term>
|
||||||
|
|
||||||
<listitem><para>Check whether given cgroup controllers (eg. <literal>cpu</literal>) are available
|
<listitem><para>Check whether given cgroup controllers (e.g. <literal>cpu</literal>) are available
|
||||||
for use on the system or whether the legacy v1 cgroup or the modern v2 cgroup hierarchy is used.
|
for use on the system or whether the legacy v1 cgroup or the modern v2 cgroup hierarchy is used.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|||||||
@ -585,6 +585,17 @@
|
|||||||
for --user instances).</para></listitem>
|
for --user instances).</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><constant>SIGRTMIN+25</constant></term>
|
||||||
|
|
||||||
|
<listitem><para>Upon receiving this signal the systemd manager will reexecute itself. This
|
||||||
|
is mostly equivalent to <command>systemctl daemon-reexec</command> except that it will be
|
||||||
|
done asynchronously.</para>
|
||||||
|
|
||||||
|
<para>The systemd system manager treats this signal the same way as
|
||||||
|
<constant>SIGTERM</constant>.</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><constant>SIGRTMIN+26</constant></term>
|
<term><constant>SIGRTMIN+26</constant></term>
|
||||||
|
|
||||||
|
|||||||
@ -550,6 +550,7 @@ w- /proc/sys/vm/swappiness - - - - 10</programlisting></para>
|
|||||||
|
|
||||||
<refsect2>
|
<refsect2>
|
||||||
<title>Age</title>
|
<title>Age</title>
|
||||||
|
|
||||||
<para>The date field, when set, is used to decide what files to
|
<para>The date field, when set, is used to decide what files to
|
||||||
delete when cleaning. If a file or directory is older than the
|
delete when cleaning. If a file or directory is older than the
|
||||||
current time minus the age field, it is deleted. The field
|
current time minus the age field, it is deleted. The field
|
||||||
@ -582,10 +583,9 @@ w- /proc/sys/vm/swappiness - - - - 10</programlisting></para>
|
|||||||
and <varname>X</varname>. If omitted or set to
|
and <varname>X</varname>. If omitted or set to
|
||||||
<literal>-</literal>, no automatic clean-up is done.</para>
|
<literal>-</literal>, no automatic clean-up is done.</para>
|
||||||
|
|
||||||
<para>If the age field starts with a tilde character
|
<para>If the age field starts with a tilde character <literal>~</literal>, clean-up is only applied to
|
||||||
<literal>~</literal>, the clean-up is only applied to files and
|
files and directories one level inside the directory specified, but not the files and directories
|
||||||
directories one level inside the directory specified, but not
|
immediately inside it.</para>
|
||||||
the files and directories immediately inside it.</para>
|
|
||||||
|
|
||||||
<para>The age of a file system entry is determined from its last
|
<para>The age of a file system entry is determined from its last
|
||||||
modification timestamp (mtime), its last access timestamp (atime),
|
modification timestamp (mtime), its last access timestamp (atime),
|
||||||
@ -595,30 +595,25 @@ w- /proc/sys/vm/swappiness - - - - 10</programlisting></para>
|
|||||||
the age field. To restrict the deletion based on particular type
|
the age field. To restrict the deletion based on particular type
|
||||||
of file timestamps, the age-by argument can be used.</para>
|
of file timestamps, the age-by argument can be used.</para>
|
||||||
|
|
||||||
<para>The age-by argument, when (optionally) specified along
|
<para>The age-by argument overrides the timestamp types to be used for the age check. It can be
|
||||||
with age will check if the file system entry has aged by the
|
specified by prefixing the age argument with a sequence of characters to specify the timestamp types
|
||||||
type of file timestamp(s) provided. It can be specified by
|
and a colon (<literal>:</literal>):
|
||||||
prefixing the age argument with a set of file timestamp types
|
<literal><replaceable>age-by</replaceable>...:<replaceable>cleanup-age</replaceable></literal>. The
|
||||||
followed by a colon character <literal>:</literal>, i.e.,
|
argument can consist of <constant>a</constant> (<constant>A</constant> for directories),
|
||||||
<literal><replaceable>age-by</replaceable>:<replaceable>cleanup-age</replaceable></literal>.
|
<constant>b</constant> (<constant>B</constant> for directories), <constant>c</constant>
|
||||||
The argument can be a set of:
|
(<constant>C</constant> for directories), or <constant>m</constant> (<constant>M</constant> for
|
||||||
<constant>a</constant> (<constant>A</constant> for directories),
|
directories). Those respectively indicate access, creation, last status change, and last modification
|
||||||
<constant>b</constant> (<constant>B</constant> for directories),
|
time of a file system entry. The lower-case letter signifies that the given timestamp type should be
|
||||||
<constant>c</constant> (<constant>C</constant> for directories; ignored by default), or
|
considered for files, while the upper-case letter signifies that the given timestamp type should be
|
||||||
<constant>m</constant> (<constant>M</constant> for directories),
|
considered for directories. See <citerefentry
|
||||||
indicating access, creation, last status change, and last
|
project='man-pages'><refentrytitle>statx</refentrytitle><manvolnum>2</manvolnum></citerefentry> file
|
||||||
modification times of a file system entry respectively. See
|
timestamp fields for more details about timestamp types.</para>
|
||||||
<citerefentry project='man-pages'><refentrytitle>statx</refentrytitle><manvolnum>2</manvolnum></citerefentry>
|
|
||||||
file timestamp fields for more details.</para>
|
|
||||||
|
|
||||||
<para>If unspecified, the age-by field defaults to
|
<para>If not specified, the age-by field defaults to <constant>abcmABM</constant>, i.e. by default all
|
||||||
<constant>abcmABM</constant>,
|
file timestamps are taken into consideration, with the exception of the last status change timestamp
|
||||||
i.e., by default all file timestamps are taken into consideration,
|
(ctime) for directories. This is because the aging logic itself will alter the ctime whenever it
|
||||||
with the exception of the last status change timestamp (ctime) for
|
deletes a file inside it. To ensure that running the aging logic does not feed back into the next
|
||||||
directories. This is because the aging logic itself will alter the
|
iteration of itself, ctime for directories is ignored by default.</para>
|
||||||
ctime whenever it deletes a file inside it. To ensure that running
|
|
||||||
the aging logic does not feed back into the next iteration of it,
|
|
||||||
ctime for directories is ignored by default.</para>
|
|
||||||
|
|
||||||
<para>For example:<programlisting>
|
<para>For example:<programlisting>
|
||||||
# Files created and modified, and directories accessed more than
|
# Files created and modified, and directories accessed more than
|
||||||
|
|||||||
@ -42,7 +42,7 @@
|
|||||||
url="https://systemd.io/USER_GROUP_API">User/Group Record Lookup API via Varlink</ulink>, and may also
|
url="https://systemd.io/USER_GROUP_API">User/Group Record Lookup API via Varlink</ulink>, and may also
|
||||||
pick up drop-in JSON user and group records from <filename>/etc/userdb/</filename>,
|
pick up drop-in JSON user and group records from <filename>/etc/userdb/</filename>,
|
||||||
<filename>/run/userdb/</filename>, <filename>/run/host/userdb/</filename>,
|
<filename>/run/userdb/</filename>, <filename>/run/host/userdb/</filename>,
|
||||||
<filename>/use/lib/userdb/</filename>.</para>
|
<filename>/usr/lib/userdb/</filename>.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
<listitem><para>Controls whether to include user/group lookups in the output that are defined using
|
<listitem><para>Controls whether to include user/group lookups in the output that are defined using
|
||||||
drop-in files in <filename>/etc/userdb/</filename>, <filename>/run/userdb/</filename>,
|
drop-in files in <filename>/etc/userdb/</filename>, <filename>/run/userdb/</filename>,
|
||||||
<filename>/run/host/userdb/</filename>, <filename>/use/lib/userdb/</filename>. If
|
<filename>/run/host/userdb/</filename>, <filename>/usr/lib/userdb/</filename>. If
|
||||||
<option>--with-dropin=no</option> is used these records are suppressed. If
|
<option>--with-dropin=no</option> is used these records are suppressed. If
|
||||||
<option>--with-dropin=yes</option> is specified such users/groups are included in the output (which
|
<option>--with-dropin=yes</option> is specified such users/groups are included in the output (which
|
||||||
is the default).</para></listitem>
|
is the default).</para></listitem>
|
||||||
@ -260,7 +260,7 @@
|
|||||||
<citerefentry><refentrytitle>systemd-userdbd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>systemd-userdbd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||||
and picks up JSON user/group records from <filename>/etc/userdb/</filename>,
|
and picks up JSON user/group records from <filename>/etc/userdb/</filename>,
|
||||||
<filename>/run/userdb/</filename>, <filename>/run/host/userdb/</filename>,
|
<filename>/run/userdb/</filename>, <filename>/run/host/userdb/</filename>,
|
||||||
<filename>/use/lib/userdb/</filename>.</para></listitem>
|
<filename>/usr/lib/userdb/</filename>.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|||||||
410
meson.build
410
meson.build
@ -101,9 +101,9 @@ conf.set10('BUMP_PROC_SYS_FS_FILE_MAX', get_option('bump-proc-sys-fs-file-max'))
|
|||||||
conf.set10('BUMP_PROC_SYS_FS_NR_OPEN', get_option('bump-proc-sys-fs-nr-open'))
|
conf.set10('BUMP_PROC_SYS_FS_NR_OPEN', get_option('bump-proc-sys-fs-nr-open'))
|
||||||
conf.set('HIGH_RLIMIT_NOFILE', 512*1024)
|
conf.set('HIGH_RLIMIT_NOFILE', 512*1024)
|
||||||
|
|
||||||
# join_paths ignores the preceding arguments if an absolute component is
|
# Meson ignores the preceding arguments when joining paths if an absolute
|
||||||
# encountered, so this should canonicalize various paths when they are
|
# component is encountered, so this should canonicalize various paths when they
|
||||||
# absolute or relative.
|
# are absolute or relative.
|
||||||
prefixdir = get_option('prefix')
|
prefixdir = get_option('prefix')
|
||||||
if not prefixdir.startswith('/')
|
if not prefixdir.startswith('/')
|
||||||
error('Prefix is not absolute: "@0@"'.format(prefixdir))
|
error('Prefix is not absolute: "@0@"'.format(prefixdir))
|
||||||
@ -113,105 +113,105 @@ if prefixdir != rootprefixdir and rootprefixdir != '/' and not prefixdir.strip('
|
|||||||
rootprefixdir, prefixdir))
|
rootprefixdir, prefixdir))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bindir = join_paths(prefixdir, get_option('bindir'))
|
bindir = prefixdir / get_option('bindir')
|
||||||
libdir = join_paths(prefixdir, get_option('libdir'))
|
libdir = prefixdir / get_option('libdir')
|
||||||
sysconfdir = join_paths(prefixdir, get_option('sysconfdir'))
|
sysconfdir = prefixdir / get_option('sysconfdir')
|
||||||
includedir = join_paths(prefixdir, get_option('includedir'))
|
includedir = prefixdir / get_option('includedir')
|
||||||
datadir = join_paths(prefixdir, get_option('datadir'))
|
datadir = prefixdir / get_option('datadir')
|
||||||
localstatedir = join_paths('/', get_option('localstatedir'))
|
localstatedir = '/' / get_option('localstatedir')
|
||||||
|
|
||||||
rootbindir = join_paths(rootprefixdir, 'bin')
|
rootbindir = rootprefixdir / 'bin'
|
||||||
rootsbindir = join_paths(rootprefixdir, split_bin ? 'sbin' : 'bin')
|
rootsbindir = rootprefixdir / (split_bin ? 'sbin' : 'bin')
|
||||||
rootlibexecdir = join_paths(rootprefixdir, 'lib/systemd')
|
rootlibexecdir = rootprefixdir / 'lib/systemd'
|
||||||
|
|
||||||
rootlibdir = get_option('rootlibdir')
|
rootlibdir = get_option('rootlibdir')
|
||||||
if rootlibdir == ''
|
if rootlibdir == ''
|
||||||
rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
|
rootlibdir = rootprefixdir / libdir.split('/')[-1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
install_sysconfdir = get_option('install-sysconfdir') != 'false'
|
install_sysconfdir = get_option('install-sysconfdir') != 'false'
|
||||||
install_sysconfdir_samples = get_option('install-sysconfdir') == 'true'
|
install_sysconfdir_samples = get_option('install-sysconfdir') == 'true'
|
||||||
# Dirs of external packages
|
# Dirs of external packages
|
||||||
pkgconfigdatadir = get_option('pkgconfigdatadir') == '' ? join_paths(datadir, 'pkgconfig') : get_option('pkgconfigdatadir')
|
pkgconfigdatadir = get_option('pkgconfigdatadir') != '' ? get_option('pkgconfigdatadir') : datadir / 'pkgconfig'
|
||||||
pkgconfiglibdir = get_option('pkgconfiglibdir') == '' ? join_paths(libdir, 'pkgconfig') : get_option('pkgconfiglibdir')
|
pkgconfiglibdir = get_option('pkgconfiglibdir') != '' ? get_option('pkgconfiglibdir') : libdir / 'pkgconfig'
|
||||||
polkitpolicydir = join_paths(datadir, 'polkit-1/actions')
|
polkitpolicydir = datadir / 'polkit-1/actions'
|
||||||
polkitrulesdir = join_paths(datadir, 'polkit-1/rules.d')
|
polkitrulesdir = datadir / 'polkit-1/rules.d'
|
||||||
polkitpkladir = join_paths(localstatedir, 'lib/polkit-1/localauthority/10-vendor.d')
|
polkitpkladir = localstatedir / 'lib/polkit-1/localauthority/10-vendor.d'
|
||||||
xinitrcdir = get_option('xinitrcdir') == '' ? join_paths(sysconfdir, 'X11/xinit/xinitrc.d') : get_option('xinitrcdir')
|
xinitrcdir = get_option('xinitrcdir') != '' ? get_option('xinitrcdir') : sysconfdir / 'X11/xinit/xinitrc.d'
|
||||||
rpmmacrosdir = get_option('rpmmacrosdir')
|
rpmmacrosdir = get_option('rpmmacrosdir')
|
||||||
if rpmmacrosdir != 'no'
|
if rpmmacrosdir != 'no'
|
||||||
rpmmacrosdir = join_paths(prefixdir, rpmmacrosdir)
|
rpmmacrosdir = prefixdir / rpmmacrosdir
|
||||||
endif
|
endif
|
||||||
modprobedir = join_paths(rootprefixdir, 'lib/modprobe.d')
|
modprobedir = rootprefixdir / 'lib/modprobe.d'
|
||||||
|
|
||||||
# Our own paths
|
# Our own paths
|
||||||
pkgdatadir = join_paths(datadir, 'systemd')
|
pkgdatadir = datadir / 'systemd'
|
||||||
environmentdir = join_paths(prefixdir, 'lib/environment.d')
|
environmentdir = prefixdir / 'lib/environment.d'
|
||||||
pkgsysconfdir = join_paths(sysconfdir, 'systemd')
|
pkgsysconfdir = sysconfdir / 'systemd'
|
||||||
userunitdir = join_paths(prefixdir, 'lib/systemd/user')
|
userunitdir = prefixdir / 'lib/systemd/user'
|
||||||
userpresetdir = join_paths(prefixdir, 'lib/systemd/user-preset')
|
userpresetdir = prefixdir / 'lib/systemd/user-preset'
|
||||||
tmpfilesdir = join_paths(prefixdir, 'lib/tmpfiles.d')
|
tmpfilesdir = prefixdir / 'lib/tmpfiles.d'
|
||||||
sysusersdir = join_paths(prefixdir, 'lib/sysusers.d')
|
sysusersdir = prefixdir / 'lib/sysusers.d'
|
||||||
sysctldir = join_paths(prefixdir, 'lib/sysctl.d')
|
sysctldir = prefixdir / 'lib/sysctl.d'
|
||||||
binfmtdir = join_paths(prefixdir, 'lib/binfmt.d')
|
binfmtdir = prefixdir / 'lib/binfmt.d'
|
||||||
modulesloaddir = join_paths(prefixdir, 'lib/modules-load.d')
|
modulesloaddir = prefixdir / 'lib/modules-load.d'
|
||||||
networkdir = join_paths(rootprefixdir, 'lib/systemd/network')
|
networkdir = rootprefixdir / 'lib/systemd/network'
|
||||||
pkgincludedir = join_paths(includedir, 'systemd')
|
pkgincludedir = includedir / 'systemd'
|
||||||
systemgeneratordir = join_paths(rootlibexecdir, 'system-generators')
|
systemgeneratordir = rootlibexecdir / 'system-generators'
|
||||||
usergeneratordir = join_paths(prefixdir, 'lib/systemd/user-generators')
|
usergeneratordir = prefixdir / 'lib/systemd/user-generators'
|
||||||
systemenvgeneratordir = join_paths(prefixdir, 'lib/systemd/system-environment-generators')
|
systemenvgeneratordir = prefixdir / 'lib/systemd/system-environment-generators'
|
||||||
userenvgeneratordir = join_paths(prefixdir, 'lib/systemd/user-environment-generators')
|
userenvgeneratordir = prefixdir / 'lib/systemd/user-environment-generators'
|
||||||
systemshutdowndir = join_paths(rootlibexecdir, 'system-shutdown')
|
systemshutdowndir = rootlibexecdir / 'system-shutdown'
|
||||||
systemsleepdir = join_paths(rootlibexecdir, 'system-sleep')
|
systemsleepdir = rootlibexecdir / 'system-sleep'
|
||||||
systemunitdir = join_paths(rootprefixdir, 'lib/systemd/system')
|
systemunitdir = rootprefixdir / 'lib/systemd/system'
|
||||||
systempresetdir = join_paths(rootprefixdir, 'lib/systemd/system-preset')
|
systempresetdir = rootprefixdir / 'lib/systemd/system-preset'
|
||||||
udevlibexecdir = join_paths(rootprefixdir, 'lib/udev')
|
udevlibexecdir = rootprefixdir / 'lib/udev'
|
||||||
udevrulesdir = join_paths(udevlibexecdir, 'rules.d')
|
udevrulesdir = udevlibexecdir / 'rules.d'
|
||||||
udevhwdbdir = join_paths(udevlibexecdir, 'hwdb.d')
|
udevhwdbdir = udevlibexecdir / 'hwdb.d'
|
||||||
catalogdir = join_paths(prefixdir, 'lib/systemd/catalog')
|
catalogdir = prefixdir / 'lib/systemd/catalog'
|
||||||
kernelinstalldir = join_paths(prefixdir, 'lib/kernel/install.d')
|
kernelinstalldir = prefixdir / 'lib/kernel/install.d'
|
||||||
factorydir = join_paths(datadir, 'factory')
|
factorydir = datadir / 'factory'
|
||||||
bootlibdir = join_paths(prefixdir, 'lib/systemd/boot/efi')
|
bootlibdir = prefixdir / 'lib/systemd/boot/efi'
|
||||||
testsdir = join_paths(prefixdir, 'lib/systemd/tests')
|
testsdir = prefixdir / 'lib/systemd/tests'
|
||||||
systemdstatedir = join_paths(localstatedir, 'lib/systemd')
|
systemdstatedir = localstatedir / 'lib/systemd'
|
||||||
catalogstatedir = join_paths(systemdstatedir, 'catalog')
|
catalogstatedir = systemdstatedir / 'catalog'
|
||||||
randomseeddir = join_paths(localstatedir, 'lib/systemd')
|
randomseeddir = localstatedir / 'lib/systemd'
|
||||||
profiledir = join_paths(rootlibexecdir, 'portable', 'profile')
|
profiledir = rootlibexecdir / 'portable' / 'profile'
|
||||||
ntpservicelistdir = join_paths(rootprefixdir, 'lib/systemd/ntp-units.d')
|
ntpservicelistdir = rootprefixdir / 'lib/systemd/ntp-units.d'
|
||||||
|
|
||||||
docdir = get_option('docdir')
|
docdir = get_option('docdir')
|
||||||
if docdir == ''
|
if docdir == ''
|
||||||
docdir = join_paths(datadir, 'doc/systemd')
|
docdir = datadir / 'doc/systemd'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dbuspolicydir = get_option('dbuspolicydir')
|
dbuspolicydir = get_option('dbuspolicydir')
|
||||||
if dbuspolicydir == ''
|
if dbuspolicydir == ''
|
||||||
dbuspolicydir = join_paths(datadir, 'dbus-1/system.d')
|
dbuspolicydir = datadir / 'dbus-1/system.d'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dbussessionservicedir = get_option('dbussessionservicedir')
|
dbussessionservicedir = get_option('dbussessionservicedir')
|
||||||
if dbussessionservicedir == ''
|
if dbussessionservicedir == ''
|
||||||
dbussessionservicedir = join_paths(datadir, 'dbus-1/services')
|
dbussessionservicedir = datadir / 'dbus-1/services'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dbussystemservicedir = get_option('dbussystemservicedir')
|
dbussystemservicedir = get_option('dbussystemservicedir')
|
||||||
if dbussystemservicedir == ''
|
if dbussystemservicedir == ''
|
||||||
dbussystemservicedir = join_paths(datadir, 'dbus-1/system-services')
|
dbussystemservicedir = datadir / 'dbus-1/system-services'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
pamlibdir = get_option('pamlibdir')
|
pamlibdir = get_option('pamlibdir')
|
||||||
if pamlibdir == ''
|
if pamlibdir == ''
|
||||||
pamlibdir = join_paths(rootlibdir, 'security')
|
pamlibdir = rootlibdir / 'security'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
pamconfdir = get_option('pamconfdir')
|
pamconfdir = get_option('pamconfdir')
|
||||||
if pamconfdir == ''
|
if pamconfdir == ''
|
||||||
pamconfdir = join_paths(prefixdir, 'lib/pam.d')
|
pamconfdir = prefixdir / 'lib/pam.d'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libcryptsetup_plugins_dir = get_option('libcryptsetup-plugins-dir')
|
libcryptsetup_plugins_dir = get_option('libcryptsetup-plugins-dir')
|
||||||
if libcryptsetup_plugins_dir == ''
|
if libcryptsetup_plugins_dir == ''
|
||||||
libcryptsetup_plugins_dir = join_paths(rootlibdir, 'cryptsetup')
|
libcryptsetup_plugins_dir = rootlibdir / 'cryptsetup'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
memory_accounting_default = get_option('memory-accounting-default')
|
memory_accounting_default = get_option('memory-accounting-default')
|
||||||
@ -219,19 +219,19 @@ status_unit_format_default = get_option('status-unit-format-default')
|
|||||||
|
|
||||||
conf.set_quoted('BINFMT_DIR', binfmtdir)
|
conf.set_quoted('BINFMT_DIR', binfmtdir)
|
||||||
conf.set_quoted('BOOTLIBDIR', bootlibdir)
|
conf.set_quoted('BOOTLIBDIR', bootlibdir)
|
||||||
conf.set_quoted('CATALOG_DATABASE', join_paths(catalogstatedir, 'database'))
|
conf.set_quoted('CATALOG_DATABASE', catalogstatedir / 'database')
|
||||||
conf.set_quoted('CERTIFICATE_ROOT', get_option('certificate-root'))
|
conf.set_quoted('CERTIFICATE_ROOT', get_option('certificate-root'))
|
||||||
conf.set_quoted('DOC_DIR', docdir)
|
conf.set_quoted('DOC_DIR', docdir)
|
||||||
conf.set_quoted('DOCUMENT_ROOT', join_paths(pkgdatadir, 'gatewayd'))
|
conf.set_quoted('DOCUMENT_ROOT', pkgdatadir / 'gatewayd')
|
||||||
conf.set_quoted('ENVIRONMENT_DIR', environmentdir)
|
conf.set_quoted('ENVIRONMENT_DIR', environmentdir)
|
||||||
conf.set_quoted('INCLUDE_DIR', includedir)
|
conf.set_quoted('INCLUDE_DIR', includedir)
|
||||||
conf.set_quoted('LIBDIR', libdir)
|
conf.set_quoted('LIBDIR', libdir)
|
||||||
conf.set_quoted('MODPROBE_DIR', modprobedir)
|
conf.set_quoted('MODPROBE_DIR', modprobedir)
|
||||||
conf.set_quoted('MODULESLOAD_DIR', modulesloaddir)
|
conf.set_quoted('MODULESLOAD_DIR', modulesloaddir)
|
||||||
conf.set_quoted('PKGSYSCONFDIR', pkgsysconfdir)
|
conf.set_quoted('PKGSYSCONFDIR', pkgsysconfdir)
|
||||||
conf.set_quoted('POLKIT_AGENT_BINARY_PATH', join_paths(bindir, 'pkttyagent'))
|
conf.set_quoted('POLKIT_AGENT_BINARY_PATH', bindir / 'pkttyagent')
|
||||||
conf.set_quoted('PREFIX', prefixdir)
|
conf.set_quoted('PREFIX', prefixdir)
|
||||||
conf.set_quoted('RANDOM_SEED', join_paths(randomseeddir, 'random-seed'))
|
conf.set_quoted('RANDOM_SEED', randomseeddir / 'random-seed')
|
||||||
conf.set_quoted('RANDOM_SEED_DIR', randomseeddir)
|
conf.set_quoted('RANDOM_SEED_DIR', randomseeddir)
|
||||||
conf.set_quoted('RC_LOCAL_PATH', get_option('rc-local'))
|
conf.set_quoted('RC_LOCAL_PATH', get_option('rc-local'))
|
||||||
conf.set_quoted('ROOTBINDIR', rootbindir)
|
conf.set_quoted('ROOTBINDIR', rootbindir)
|
||||||
@ -241,29 +241,29 @@ conf.set_quoted('ROOTPREFIX', rootprefixdir)
|
|||||||
conf.set_quoted('ROOTPREFIX_NOSLASH', rootprefixdir_noslash)
|
conf.set_quoted('ROOTPREFIX_NOSLASH', rootprefixdir_noslash)
|
||||||
conf.set_quoted('SYSCONF_DIR', sysconfdir)
|
conf.set_quoted('SYSCONF_DIR', sysconfdir)
|
||||||
conf.set_quoted('SYSCTL_DIR', sysctldir)
|
conf.set_quoted('SYSCTL_DIR', sysctldir)
|
||||||
conf.set_quoted('SYSTEMCTL_BINARY_PATH', join_paths(rootbindir, 'systemctl'))
|
conf.set_quoted('SYSTEMCTL_BINARY_PATH', rootbindir / 'systemctl')
|
||||||
conf.set_quoted('SYSTEMD_BINARY_PATH', join_paths(rootlibexecdir, 'systemd'))
|
conf.set_quoted('SYSTEMD_BINARY_PATH', rootlibexecdir / 'systemd')
|
||||||
conf.set_quoted('SYSTEMD_CATALOG_DIR', catalogdir)
|
conf.set_quoted('SYSTEMD_CATALOG_DIR', catalogdir)
|
||||||
conf.set_quoted('SYSTEMD_CGROUPS_AGENT_PATH', join_paths(rootlibexecdir, 'systemd-cgroups-agent'))
|
conf.set_quoted('SYSTEMD_CGROUPS_AGENT_PATH', rootlibexecdir / 'systemd-cgroups-agent')
|
||||||
conf.set_quoted('SYSTEMD_CRYPTSETUP_PATH', join_paths(rootlibexecdir, 'systemd-cryptsetup'))
|
conf.set_quoted('SYSTEMD_CRYPTSETUP_PATH', rootlibexecdir / 'systemd-cryptsetup')
|
||||||
conf.set_quoted('SYSTEMD_EXPORT_PATH', join_paths(rootlibexecdir, 'systemd-export'))
|
conf.set_quoted('SYSTEMD_EXPORT_PATH', rootlibexecdir / 'systemd-export')
|
||||||
conf.set_quoted('SYSTEMD_FSCK_PATH', join_paths(rootlibexecdir, 'systemd-fsck'))
|
conf.set_quoted('SYSTEMD_FSCK_PATH', rootlibexecdir / 'systemd-fsck')
|
||||||
conf.set_quoted('SYSTEMD_GROWFS_PATH', join_paths(rootlibexecdir, 'systemd-growfs'))
|
conf.set_quoted('SYSTEMD_GROWFS_PATH', rootlibexecdir / 'systemd-growfs')
|
||||||
conf.set_quoted('SYSTEMD_HOMEWORK_PATH', join_paths(rootlibexecdir, 'systemd-homework'))
|
conf.set_quoted('SYSTEMD_HOMEWORK_PATH', rootlibexecdir / 'systemd-homework')
|
||||||
conf.set_quoted('SYSTEMD_IMPORT_FS_PATH', join_paths(rootlibexecdir, 'systemd-import-fs'))
|
conf.set_quoted('SYSTEMD_IMPORT_FS_PATH', rootlibexecdir / 'systemd-import-fs')
|
||||||
conf.set_quoted('SYSTEMD_IMPORT_PATH', join_paths(rootlibexecdir, 'systemd-import'))
|
conf.set_quoted('SYSTEMD_IMPORT_PATH', rootlibexecdir / 'systemd-import')
|
||||||
conf.set_quoted('SYSTEMD_KBD_MODEL_MAP', join_paths(pkgdatadir, 'kbd-model-map'))
|
conf.set_quoted('SYSTEMD_KBD_MODEL_MAP', pkgdatadir / 'kbd-model-map')
|
||||||
conf.set_quoted('SYSTEMD_LANGUAGE_FALLBACK_MAP', join_paths(pkgdatadir, 'language-fallback-map'))
|
conf.set_quoted('SYSTEMD_LANGUAGE_FALLBACK_MAP', pkgdatadir / 'language-fallback-map')
|
||||||
conf.set_quoted('SYSTEMD_MAKEFS_PATH', join_paths(rootlibexecdir, 'systemd-makefs'))
|
conf.set_quoted('SYSTEMD_MAKEFS_PATH', rootlibexecdir / 'systemd-makefs')
|
||||||
conf.set_quoted('SYSTEMD_PULL_PATH', join_paths(rootlibexecdir, 'systemd-pull'))
|
conf.set_quoted('SYSTEMD_PULL_PATH', rootlibexecdir / 'systemd-pull')
|
||||||
conf.set_quoted('SYSTEMD_SHUTDOWN_BINARY_PATH', join_paths(rootlibexecdir, 'systemd-shutdown'))
|
conf.set_quoted('SYSTEMD_SHUTDOWN_BINARY_PATH', rootlibexecdir / 'systemd-shutdown')
|
||||||
conf.set_quoted('SYSTEMD_STDIO_BRIDGE_BINARY_PATH', join_paths(bindir, 'systemd-stdio-bridge'))
|
conf.set_quoted('SYSTEMD_STDIO_BRIDGE_BINARY_PATH', bindir / 'systemd-stdio-bridge')
|
||||||
conf.set_quoted('SYSTEMD_TEST_DATA', join_paths(testsdir, 'testdata'))
|
conf.set_quoted('SYSTEMD_TEST_DATA', testsdir / 'testdata')
|
||||||
conf.set_quoted('SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH', join_paths(rootbindir, 'systemd-tty-ask-password-agent'))
|
conf.set_quoted('SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH', rootbindir / 'systemd-tty-ask-password-agent')
|
||||||
conf.set_quoted('SYSTEMD_UPDATE_HELPER_PATH', join_paths(rootlibexecdir, 'systemd-update-helper'))
|
conf.set_quoted('SYSTEMD_UPDATE_HELPER_PATH', rootlibexecdir / 'systemd-update-helper')
|
||||||
conf.set_quoted('SYSTEMD_USERWORK_PATH', join_paths(rootlibexecdir, 'systemd-userwork'))
|
conf.set_quoted('SYSTEMD_USERWORK_PATH', rootlibexecdir / 'systemd-userwork')
|
||||||
conf.set_quoted('SYSTEMD_VERITYSETUP_PATH', join_paths(rootlibexecdir, 'systemd-veritysetup'))
|
conf.set_quoted('SYSTEMD_VERITYSETUP_PATH', rootlibexecdir / 'systemd-veritysetup')
|
||||||
conf.set_quoted('SYSTEM_CONFIG_UNIT_DIR', join_paths(pkgsysconfdir, 'system'))
|
conf.set_quoted('SYSTEM_CONFIG_UNIT_DIR', pkgsysconfdir / 'system')
|
||||||
conf.set_quoted('SYSTEM_DATA_UNIT_DIR', systemunitdir)
|
conf.set_quoted('SYSTEM_DATA_UNIT_DIR', systemunitdir)
|
||||||
conf.set_quoted('SYSTEM_ENV_GENERATOR_DIR', systemenvgeneratordir)
|
conf.set_quoted('SYSTEM_ENV_GENERATOR_DIR', systemenvgeneratordir)
|
||||||
conf.set_quoted('SYSTEM_GENERATOR_DIR', systemgeneratordir)
|
conf.set_quoted('SYSTEM_GENERATOR_DIR', systemgeneratordir)
|
||||||
@ -278,13 +278,13 @@ conf.set_quoted('UDEVLIBEXECDIR', udevlibexecdir)
|
|||||||
conf.set_quoted('UDEV_HWDB_DIR', udevhwdbdir)
|
conf.set_quoted('UDEV_HWDB_DIR', udevhwdbdir)
|
||||||
conf.set_quoted('UDEV_RULES_DIR', udevrulesdir)
|
conf.set_quoted('UDEV_RULES_DIR', udevrulesdir)
|
||||||
conf.set_quoted('UPDATE_HELPER_USER_TIMEOUT', get_option('update-helper-user-timeout'))
|
conf.set_quoted('UPDATE_HELPER_USER_TIMEOUT', get_option('update-helper-user-timeout'))
|
||||||
conf.set_quoted('USER_CONFIG_UNIT_DIR', join_paths(pkgsysconfdir, 'user'))
|
conf.set_quoted('USER_CONFIG_UNIT_DIR', pkgsysconfdir / 'user')
|
||||||
conf.set_quoted('USER_DATA_UNIT_DIR', userunitdir)
|
conf.set_quoted('USER_DATA_UNIT_DIR', userunitdir)
|
||||||
conf.set_quoted('USER_ENV_GENERATOR_DIR', userenvgeneratordir)
|
conf.set_quoted('USER_ENV_GENERATOR_DIR', userenvgeneratordir)
|
||||||
conf.set_quoted('USER_GENERATOR_DIR', usergeneratordir)
|
conf.set_quoted('USER_GENERATOR_DIR', usergeneratordir)
|
||||||
conf.set_quoted('USER_KEYRING_PATH', join_paths(pkgsysconfdir, 'import-pubring.gpg'))
|
conf.set_quoted('USER_KEYRING_PATH', pkgsysconfdir / 'import-pubring.gpg')
|
||||||
conf.set_quoted('USER_PRESET_DIR', userpresetdir)
|
conf.set_quoted('USER_PRESET_DIR', userpresetdir)
|
||||||
conf.set_quoted('VENDOR_KEYRING_PATH', join_paths(rootlibexecdir, 'import-pubring.gpg'))
|
conf.set_quoted('VENDOR_KEYRING_PATH', rootlibexecdir / 'import-pubring.gpg')
|
||||||
|
|
||||||
conf.set('ANSI_OK_COLOR', 'ANSI_' + get_option('ok-color').underscorify().to_upper())
|
conf.set('ANSI_OK_COLOR', 'ANSI_' + get_option('ok-color').underscorify().to_upper())
|
||||||
conf.set10('ENABLE_URLIFY', get_option('urlify'))
|
conf.set10('ENABLE_URLIFY', get_option('urlify'))
|
||||||
@ -1857,7 +1857,7 @@ foreach tuple : [['myhostname', 'ENABLE_NSS_MYHOSTNAME'],
|
|||||||
module = tuple[0]
|
module = tuple[0]
|
||||||
|
|
||||||
sym = 'src/nss-@0@/nss-@0@.sym'.format(module)
|
sym = 'src/nss-@0@/nss-@0@.sym'.format(module)
|
||||||
version_script_arg = join_paths(project_source_root, sym)
|
version_script_arg = project_source_root / sym
|
||||||
|
|
||||||
sources = ['src/nss-@0@/nss-@0@.c'.format(module)]
|
sources = ['src/nss-@0@/nss-@0@.c'.format(module)]
|
||||||
if tuple.length() > 2
|
if tuple.length() > 2
|
||||||
@ -1922,8 +1922,8 @@ executable(
|
|||||||
install_dir : rootlibexecdir)
|
install_dir : rootlibexecdir)
|
||||||
|
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(rootlibexecdir, 'systemd'),
|
rootlibexecdir / 'systemd',
|
||||||
join_paths(rootsbindir, 'init'))
|
rootsbindir / 'init')
|
||||||
|
|
||||||
public_programs += executable(
|
public_programs += executable(
|
||||||
'systemd-analyze',
|
'systemd-analyze',
|
||||||
@ -2028,8 +2028,8 @@ if conf.get('ENABLE_ENVIRONMENT_D') == 1
|
|||||||
install_dir : userenvgeneratordir)
|
install_dir : userenvgeneratordir)
|
||||||
|
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(sysconfdir, 'environment'),
|
sysconfdir / 'environment',
|
||||||
join_paths(environmentdir, '99-environment.conf'))
|
environmentdir / '99-environment.conf')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if conf.get('ENABLE_HIBERNATE') == 1
|
if conf.get('ENABLE_HIBERNATE') == 1
|
||||||
@ -2100,12 +2100,12 @@ if conf.get('ENABLE_RESOLVE') == 1
|
|||||||
install : true)
|
install : true)
|
||||||
|
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(bindir, 'resolvectl'),
|
bindir / 'resolvectl',
|
||||||
join_paths(rootsbindir, 'resolvconf'))
|
rootsbindir / 'resolvconf')
|
||||||
|
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(bindir, 'resolvectl'),
|
bindir / 'resolvectl',
|
||||||
join_paths(bindir, 'systemd-resolve'))
|
bindir / 'systemd-resolve')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if conf.get('ENABLE_LOGIND') == 1
|
if conf.get('ENABLE_LOGIND') == 1
|
||||||
@ -2144,7 +2144,7 @@ if conf.get('ENABLE_LOGIND') == 1
|
|||||||
install_dir : rootbindir)
|
install_dir : rootbindir)
|
||||||
|
|
||||||
if conf.get('HAVE_PAM') == 1
|
if conf.get('HAVE_PAM') == 1
|
||||||
version_script_arg = join_paths(project_source_root, pam_systemd_sym)
|
version_script_arg = project_source_root / pam_systemd_sym
|
||||||
pam_systemd = shared_library(
|
pam_systemd = shared_library(
|
||||||
'pam_systemd',
|
'pam_systemd',
|
||||||
pam_systemd_c,
|
pam_systemd_c,
|
||||||
@ -2362,7 +2362,7 @@ if conf.get('ENABLE_HOMED') == 1
|
|||||||
install_dir : rootbindir)
|
install_dir : rootbindir)
|
||||||
|
|
||||||
if conf.get('HAVE_PAM') == 1
|
if conf.get('HAVE_PAM') == 1
|
||||||
version_script_arg = join_paths(project_source_root, pam_systemd_home_sym)
|
version_script_arg = project_source_root / pam_systemd_home_sym
|
||||||
pam_systemd = shared_library(
|
pam_systemd = shared_library(
|
||||||
'pam_systemd_home',
|
'pam_systemd_home',
|
||||||
pam_systemd_home_c,
|
pam_systemd_home_c,
|
||||||
@ -2385,13 +2385,13 @@ endif
|
|||||||
foreach alias : (['halt', 'poweroff', 'reboot', 'shutdown'] +
|
foreach alias : (['halt', 'poweroff', 'reboot', 'shutdown'] +
|
||||||
(conf.get('HAVE_SYSV_COMPAT') == 1 ? ['runlevel', 'telinit'] : []))
|
(conf.get('HAVE_SYSV_COMPAT') == 1 ? ['runlevel', 'telinit'] : []))
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(rootbindir, 'systemctl'),
|
rootbindir / 'systemctl',
|
||||||
join_paths(rootsbindir, alias))
|
rootsbindir / alias)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(rootbindir, 'udevadm'),
|
rootbindir / 'udevadm',
|
||||||
join_paths(rootlibexecdir, 'systemd-udevd'))
|
rootlibexecdir / 'systemd-udevd')
|
||||||
|
|
||||||
if conf.get('ENABLE_BACKLIGHT') == 1
|
if conf.get('ENABLE_BACKLIGHT') == 1
|
||||||
executable(
|
executable(
|
||||||
@ -2828,7 +2828,7 @@ if conf.get('ENABLE_BINFMT') == 1
|
|||||||
mkdir_p.format(binfmtdir))
|
mkdir_p.format(binfmtdir))
|
||||||
if install_sysconfdir
|
if install_sysconfdir
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'binfmt.d')))
|
mkdir_p.format(sysconfdir / 'binfmt.d'))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -3105,7 +3105,7 @@ public_programs += executable(
|
|||||||
install : true)
|
install : true)
|
||||||
|
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
'systemd-mount', join_paths(bindir, 'systemd-umount'))
|
'systemd-mount', bindir / 'systemd-umount')
|
||||||
|
|
||||||
public_programs += executable(
|
public_programs += executable(
|
||||||
'systemd-run',
|
'systemd-run',
|
||||||
@ -3307,7 +3307,7 @@ if conf.get('HAVE_KMOD') == 1
|
|||||||
mkdir_p.format(modulesloaddir))
|
mkdir_p.format(modulesloaddir))
|
||||||
if install_sysconfdir
|
if install_sysconfdir
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'modules-load.d')))
|
mkdir_p.format(sysconfdir / 'modules-load.d'))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -3387,8 +3387,8 @@ custom_target(
|
|||||||
output : 'systemd-runtest.env',
|
output : 'systemd-runtest.env',
|
||||||
command : [sh, '-c',
|
command : [sh, '-c',
|
||||||
'{ echo SYSTEMD_TEST_DATA=@0@; echo SYSTEMD_CATALOG_DIR=@1@; } >@OUTPUT@'.format(
|
'{ echo SYSTEMD_TEST_DATA=@0@; echo SYSTEMD_CATALOG_DIR=@1@; } >@OUTPUT@'.format(
|
||||||
join_paths(project_source_root, 'test'),
|
project_source_root / 'test',
|
||||||
join_paths(project_build_root, 'catalog'))],
|
project_build_root / 'catalog')],
|
||||||
build_by_default : true)
|
build_by_default : true)
|
||||||
|
|
||||||
test_cflags = ['-DTEST_CODE=1']
|
test_cflags = ['-DTEST_CODE=1']
|
||||||
@ -3430,7 +3430,7 @@ foreach tuple : tests
|
|||||||
build_by_default : want_tests != 'false',
|
build_by_default : want_tests != 'false',
|
||||||
install_rpath : rootlibexecdir,
|
install_rpath : rootlibexecdir,
|
||||||
install : install_tests,
|
install : install_tests,
|
||||||
install_dir : join_paths(testsdir, type))
|
install_dir : testsdir / type)
|
||||||
|
|
||||||
if type == 'manual'
|
if type == 'manual'
|
||||||
message('@0@ is a manual test'.format(name))
|
message('@0@ is a manual test'.format(name))
|
||||||
@ -3546,16 +3546,13 @@ foreach tuple : fuzzers
|
|||||||
if b == name
|
if b == name
|
||||||
test('@0@_@1@'.format(b, c),
|
test('@0@_@1@'.format(b, c),
|
||||||
exe,
|
exe,
|
||||||
args : [join_paths(project_source_root, p)])
|
args : [project_source_root / p])
|
||||||
endif
|
endif
|
||||||
endforeach
|
endforeach
|
||||||
endif
|
endif
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
run_target(
|
alias_target('fuzzers', fuzzer_exes)
|
||||||
'fuzzers',
|
|
||||||
depends : fuzzer_exes,
|
|
||||||
command : ['true'])
|
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
|
|
||||||
@ -3608,8 +3605,8 @@ if get_option('mode') == 'developer' and want_tests != 'false' and jekyll.found(
|
|||||||
test('github-pages',
|
test('github-pages',
|
||||||
jekyll,
|
jekyll,
|
||||||
args : ['build',
|
args : ['build',
|
||||||
'--source', join_paths(project_source_root, 'docs'),
|
'--source', project_source_root / 'docs',
|
||||||
'--destination', join_paths(project_build_root, '_site')])
|
'--destination', project_build_root / '_site'])
|
||||||
endif
|
endif
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
@ -3659,7 +3656,7 @@ foreach tuple : sanitizers
|
|||||||
output : name,
|
output : name,
|
||||||
depends : build,
|
depends : build,
|
||||||
command : [ln, '-fs',
|
command : [ln, '-fs',
|
||||||
join_paths(build.full_path(), b),
|
build.full_path() / b,
|
||||||
'@OUTPUT@'],
|
'@OUTPUT@'],
|
||||||
build_by_default : true)
|
build_by_default : true)
|
||||||
else
|
else
|
||||||
@ -3674,7 +3671,7 @@ foreach tuple : sanitizers
|
|||||||
env : ['UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1'],
|
env : ['UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1'],
|
||||||
timeout : 60,
|
timeout : 60,
|
||||||
args : [exe.full_path(),
|
args : [exe.full_path(),
|
||||||
join_paths(project_source_root, p)])
|
project_source_root / p])
|
||||||
endif
|
endif
|
||||||
endforeach
|
endforeach
|
||||||
endif
|
endif
|
||||||
@ -3734,101 +3731,67 @@ run_target(
|
|||||||
depends : [man, libsystemd, libudev],
|
depends : [man, libsystemd, libudev],
|
||||||
command : [check_api_docs_sh, libsystemd.full_path(), libudev.full_path()])
|
command : [check_api_docs_sh, libsystemd.full_path(), libudev.full_path()])
|
||||||
|
|
||||||
############################################################
|
alias_target('update-dbus-docs', update_dbus_docs)
|
||||||
|
alias_target('update-man-rules', update_man_rules)
|
||||||
if dbus_docs.length() > 0
|
|
||||||
custom_target(
|
|
||||||
'update-dbus-docs',
|
|
||||||
output : 'update-dbus-docs',
|
|
||||||
command : [update_dbus_docs_py,
|
|
||||||
'--build-dir=@0@'.format(project_build_root),
|
|
||||||
'@INPUT@'],
|
|
||||||
input : dbus_docs)
|
|
||||||
|
|
||||||
if conf.get('BUILD_MODE_DEVELOPER') == 1
|
|
||||||
test('dbus-docs-fresh',
|
|
||||||
update_dbus_docs_py,
|
|
||||||
args : ['--build-dir=@0@'.format(project_build_root),
|
|
||||||
'--test'] + dbus_docs)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
custom_target(
|
|
||||||
'update-man-rules',
|
|
||||||
output : 'update-man-rules',
|
|
||||||
command : [sh, '-c',
|
|
||||||
'cd @0@ && '.format(meson.build_root()) +
|
|
||||||
'python3 @0@/tools/update-man-rules.py $(find @0@ -wholename "*/man/*.xml") >t && '.format(project_source_root) +
|
|
||||||
'mv t @0@/man/rules/meson.build'.format(meson.current_source_dir())],
|
|
||||||
depends : custom_entities_ent)
|
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
watchdog_opt = service_watchdog == '' ? 'disabled' : service_watchdog
|
|
||||||
|
|
||||||
status = [
|
|
||||||
'@0@ @1@'.format(meson.project_name(), meson.project_version()),
|
|
||||||
|
|
||||||
'build mode: @0@'.format(get_option('mode')),
|
|
||||||
'split /usr: @0@'.format(split_usr),
|
|
||||||
'split bin-sbin: @0@'.format(split_bin),
|
|
||||||
'prefix directory: @0@'.format(prefixdir),
|
|
||||||
'rootprefix directory: @0@'.format(rootprefixdir),
|
|
||||||
'sysconf directory: @0@'.format(sysconfdir),
|
|
||||||
'include directory: @0@'.format(includedir),
|
|
||||||
'lib directory: @0@'.format(libdir),
|
|
||||||
'rootlib directory: @0@'.format(rootlibdir),
|
|
||||||
'SysV init scripts: @0@'.format(sysvinit_path),
|
|
||||||
'SysV rc?.d directories: @0@'.format(sysvrcnd_path),
|
|
||||||
'PAM modules directory: @0@'.format(pamlibdir),
|
|
||||||
'PAM configuration directory: @0@'.format(pamconfdir),
|
|
||||||
'libcryptsetup plugins directory: @0@'.format(libcryptsetup_plugins_dir),
|
|
||||||
'RPM macros directory: @0@'.format(rpmmacrosdir),
|
|
||||||
'modprobe.d directory: @0@'.format(modprobedir),
|
|
||||||
'D-Bus policy directory: @0@'.format(dbuspolicydir),
|
|
||||||
'D-Bus session directory: @0@'.format(dbussessionservicedir),
|
|
||||||
'D-Bus system directory: @0@'.format(dbussystemservicedir),
|
|
||||||
'bash completions directory: @0@'.format(bashcompletiondir),
|
|
||||||
'zsh completions directory: @0@'.format(zshcompletiondir),
|
|
||||||
'extra start script: @0@'.format(get_option('rc-local')),
|
|
||||||
'debug shell: @0@ @ @1@'.format(get_option('debug-shell'),
|
|
||||||
get_option('debug-tty')),
|
|
||||||
'system UIDs: <=@0@ (alloc >=@1@)'.format(conf.get('SYSTEM_UID_MAX'),
|
|
||||||
conf.get('SYSTEM_ALLOC_UID_MIN')),
|
|
||||||
'system GIDs: <=@0@ (alloc >=@1@)'.format(conf.get('SYSTEM_GID_MAX'),
|
|
||||||
conf.get('SYSTEM_ALLOC_GID_MIN')),
|
|
||||||
'dynamic UIDs: @0@…@1@'.format(dynamic_uid_min, dynamic_uid_max),
|
|
||||||
'container UID bases: @0@…@1@'.format(container_uid_base_min, container_uid_base_max),
|
|
||||||
'static UID/GID allocations: @0@'.format(' '.join(static_ugids)),
|
|
||||||
'/dev/kvm access mode: @0@'.format(get_option('dev-kvm-mode')),
|
|
||||||
'render group access mode: @0@'.format(get_option('group-render-mode')),
|
|
||||||
'certificate root directory: @0@'.format(get_option('certificate-root')),
|
|
||||||
'support URL: @0@'.format(support_url),
|
|
||||||
'nobody user name: @0@'.format(nobody_user),
|
|
||||||
'nobody group name: @0@'.format(nobody_group),
|
|
||||||
'fallback hostname: @0@'.format(get_option('fallback-hostname')),
|
|
||||||
|
|
||||||
'default DNSSEC mode: @0@'.format(default_dnssec),
|
|
||||||
'default DNS-over-TLS mode: @0@'.format(default_dns_over_tls),
|
|
||||||
'default mDNS mode: @0@'.format(default_mdns),
|
|
||||||
'default LLMNR mode: @0@'.format(default_llmnr),
|
|
||||||
'default cgroup hierarchy: @0@'.format(default_hierarchy),
|
|
||||||
'default net.naming-scheme setting: @0@'.format(default_net_naming_scheme),
|
|
||||||
'default KillUserProcesses setting: @0@'.format(kill_user_processes),
|
|
||||||
'default locale: @0@'.format(default_locale),
|
|
||||||
'default user $PATH: @0@'.format(
|
|
||||||
default_user_path != '' ? default_user_path : '(same as system services)'),
|
|
||||||
'systemd service watchdog: @0@'.format(watchdog_opt)]
|
|
||||||
|
|
||||||
alt_dns_servers = '\n '.join(dns_servers.split(' '))
|
|
||||||
alt_ntp_servers = '\n '.join(ntp_servers.split(' '))
|
|
||||||
status += [
|
|
||||||
'default DNS servers: @0@'.format(alt_dns_servers),
|
|
||||||
'default NTP servers: @0@'.format(alt_ntp_servers)]
|
|
||||||
|
|
||||||
alt_time_epoch = run_command('date', '-Is', '-u', '-d',
|
alt_time_epoch = run_command('date', '-Is', '-u', '-d',
|
||||||
'@@0@'.format(time_epoch)).stdout().strip()
|
'@@0@'.format(time_epoch)).stdout().strip()
|
||||||
status += [
|
|
||||||
'time epoch: @0@ (@1@)'.format(time_epoch, alt_time_epoch)]
|
summary({
|
||||||
|
'build mode' : get_option('mode'),
|
||||||
|
'split /usr' : split_usr,
|
||||||
|
'split bin-sbin' : split_bin,
|
||||||
|
'prefix directory' : prefixdir,
|
||||||
|
'rootprefix directory' : rootprefixdir,
|
||||||
|
'sysconf directory' : sysconfdir,
|
||||||
|
'include directory' : includedir,
|
||||||
|
'lib directory' : libdir,
|
||||||
|
'rootlib directory' : rootlibdir,
|
||||||
|
'SysV init scripts' : sysvinit_path,
|
||||||
|
'SysV rc?.d directories' : sysvrcnd_path,
|
||||||
|
'PAM modules directory' : pamlibdir,
|
||||||
|
'PAM configuration directory' : pamconfdir,
|
||||||
|
'libcryptsetup plugins directory' : libcryptsetup_plugins_dir,
|
||||||
|
'RPM macros directory' : rpmmacrosdir,
|
||||||
|
'modprobe.d directory' : modprobedir,
|
||||||
|
'D-Bus policy directory' : dbuspolicydir,
|
||||||
|
'D-Bus session directory' : dbussessionservicedir,
|
||||||
|
'D-Bus system directory' : dbussystemservicedir,
|
||||||
|
'bash completions directory' : bashcompletiondir,
|
||||||
|
'zsh completions directory' : zshcompletiondir,
|
||||||
|
'extra start script' : get_option('rc-local'),
|
||||||
|
'debug shell' : '@0@ @ @1@'.format(get_option('debug-shell'),
|
||||||
|
get_option('debug-tty')),
|
||||||
|
'system UIDs' : '<=@0@ (alloc >=@1@)'.format(conf.get('SYSTEM_UID_MAX'),
|
||||||
|
conf.get('SYSTEM_ALLOC_UID_MIN')),
|
||||||
|
'system GIDs' : '<=@0@ (alloc >=@1@)'.format(conf.get('SYSTEM_GID_MAX'),
|
||||||
|
conf.get('SYSTEM_ALLOC_GID_MIN')),
|
||||||
|
'dynamic UIDs' : '@0@…@1@'.format(dynamic_uid_min, dynamic_uid_max),
|
||||||
|
'container UID bases' : '@0@…@1@'.format(container_uid_base_min, container_uid_base_max),
|
||||||
|
'static UID/GID allocations' : ' '.join(static_ugids),
|
||||||
|
'/dev/kvm access mode' : get_option('dev-kvm-mode'),
|
||||||
|
'render group access mode' : get_option('group-render-mode'),
|
||||||
|
'certificate root directory' : get_option('certificate-root'),
|
||||||
|
'support URL' : support_url,
|
||||||
|
'nobody user name' : nobody_user,
|
||||||
|
'nobody group name' : nobody_group,
|
||||||
|
'fallback hostname' : get_option('fallback-hostname'),
|
||||||
|
'default DNSSEC mode' : default_dnssec,
|
||||||
|
'default DNS-over-TLS mode' : default_dns_over_tls,
|
||||||
|
'default mDNS mode' : default_mdns,
|
||||||
|
'default LLMNR mode' : default_llmnr,
|
||||||
|
'default DNS servers' : dns_servers.split(' '),
|
||||||
|
'default NTP servers' : ntp_servers.split(' '),
|
||||||
|
'default cgroup hierarchy' : default_hierarchy,
|
||||||
|
'default net.naming-scheme value' : default_net_naming_scheme,
|
||||||
|
'default KillUserProcesses value' : kill_user_processes,
|
||||||
|
'default locale' : default_locale,
|
||||||
|
'default user $PATH' :
|
||||||
|
default_user_path != '' ? default_user_path : '(same as system services)',
|
||||||
|
'systemd service watchdog' : service_watchdog == '' ? 'disabled' : service_watchdog,
|
||||||
|
'time epoch' : '@0@ (@1@)'.format(time_epoch, alt_time_epoch)})
|
||||||
|
|
||||||
# TODO:
|
# TODO:
|
||||||
# CFLAGS: ${OUR_CFLAGS} ${CFLAGS}
|
# CFLAGS: ${OUR_CFLAGS} ${CFLAGS}
|
||||||
@ -3836,15 +3799,17 @@ status += [
|
|||||||
# LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS}
|
# LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS}
|
||||||
|
|
||||||
if conf.get('ENABLE_EFI') == 1
|
if conf.get('ENABLE_EFI') == 1
|
||||||
status += 'efi arch: @0@'.format(efi_arch)
|
summary({'efi arch' : efi_arch},
|
||||||
|
section : 'Extensible Firmware Interface')
|
||||||
|
|
||||||
if have_gnu_efi
|
if have_gnu_efi
|
||||||
status += [
|
summary({
|
||||||
'EFI machine type: @0@'.format(EFI_MACHINE_TYPE_NAME),
|
'EFI machine type' : EFI_MACHINE_TYPE_NAME,
|
||||||
'EFI CC @0@'.format(' '.join(efi_cc)),
|
'EFI CC' : '@0@'.format(' '.join(efi_cc)),
|
||||||
'EFI lds: @0@'.format(efi_lds),
|
'EFI lds' : efi_lds,
|
||||||
'EFI crt0: @0@'.format(efi_crt0),
|
'EFI crt0' : efi_crt0,
|
||||||
'EFI include directory: @0@'.format(efi_incdir)]
|
'EFI include directory' : efi_incdir},
|
||||||
|
section : 'Extensible Firmware Interface')
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -3999,13 +3964,10 @@ else
|
|||||||
missing += 'DNS-over-TLS'
|
missing += 'DNS-over-TLS'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
status += [
|
summary({
|
||||||
'',
|
'enabled' : ', '.join(found),
|
||||||
'enabled features: @0@'.format(', '.join(found)),
|
'disabled' : ', '.join(missing)},
|
||||||
'',
|
section : 'Features')
|
||||||
'disabled features: @0@'.format(', '.join(missing)),
|
|
||||||
'']
|
|
||||||
message('\n '.join(status))
|
|
||||||
|
|
||||||
if rootprefixdir != rootprefix_default
|
if rootprefixdir != rootprefix_default
|
||||||
warning('\n' +
|
warning('\n' +
|
||||||
|
|||||||
@ -12,7 +12,7 @@ if conf.get('ENABLE_NETWORKD') == 1
|
|||||||
|
|
||||||
if install_sysconfdir
|
if install_sysconfdir
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'systemd/network')))
|
mkdir_p.format(sysconfdir / 'systemd/network'))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ if bashcompletiondir == ''
|
|||||||
if bash_completion.found()
|
if bash_completion.found()
|
||||||
bashcompletiondir = bash_completion.get_pkgconfig_variable('completionsdir')
|
bashcompletiondir = bash_completion.get_pkgconfig_variable('completionsdir')
|
||||||
else
|
else
|
||||||
bashcompletiondir = join_paths(datadir, 'bash-completion/completions')
|
bashcompletiondir = datadir / 'bash-completion/completions'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
zshcompletiondir = get_option('zshcompletiondir')
|
zshcompletiondir = get_option('zshcompletiondir')
|
||||||
if zshcompletiondir == ''
|
if zshcompletiondir == ''
|
||||||
zshcompletiondir = join_paths(datadir, 'zsh/site-functions')
|
zshcompletiondir = datadir / 'zsh/site-functions'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
custom_target(
|
custom_target(
|
||||||
|
|||||||
@ -71,14 +71,14 @@ if conf.get('ENABLE_EFI') == 1 and get_option('gnu-efi') != 'false'
|
|||||||
efi_libdir = get_option('efi-libdir')
|
efi_libdir = get_option('efi-libdir')
|
||||||
if efi_libdir == ''
|
if efi_libdir == ''
|
||||||
# New location first introduced with gnu-efi 3.0.11
|
# New location first introduced with gnu-efi 3.0.11
|
||||||
efi_libdir = join_paths('/usr/lib/gnuefi', EFI_MACHINE_TYPE_NAME)
|
efi_libdir = '/usr/lib/gnuefi' / EFI_MACHINE_TYPE_NAME
|
||||||
cmd = run_command(test, '-e', efi_libdir)
|
cmd = run_command(test, '-e', efi_libdir)
|
||||||
|
|
||||||
if cmd.returncode() != 0
|
if cmd.returncode() != 0
|
||||||
# Fall back to the old approach
|
# Fall back to the old approach
|
||||||
cmd = run_command(efi_cc + ['-print-multi-os-directory'])
|
cmd = run_command(efi_cc + ['-print-multi-os-directory'])
|
||||||
if cmd.returncode() == 0
|
if cmd.returncode() == 0
|
||||||
path = join_paths('/usr/lib', cmd.stdout().strip())
|
path = '/usr/lib' / cmd.stdout().strip()
|
||||||
cmd = run_command(env, 'realpath', '-e', path)
|
cmd = run_command(env, 'realpath', '-e', path)
|
||||||
if cmd.returncode() == 0
|
if cmd.returncode() == 0
|
||||||
efi_libdir = cmd.stdout().strip()
|
efi_libdir = cmd.stdout().strip()
|
||||||
@ -148,13 +148,13 @@ if have_gnu_efi
|
|||||||
|
|
||||||
efi_location_map = [
|
efi_location_map = [
|
||||||
# New locations first introduced with gnu-efi 3.0.11
|
# New locations first introduced with gnu-efi 3.0.11
|
||||||
[join_paths(efi_libdir, 'efi.lds'),
|
[efi_libdir / 'efi.lds',
|
||||||
join_paths(efi_libdir, 'crt0.o')],
|
efi_libdir / 'crt0.o'],
|
||||||
# Older locations...
|
# Older locations...
|
||||||
[join_paths(efi_libdir, 'gnuefi', 'elf_@0@_efi.lds'.format(gnu_efi_path_arch)),
|
[efi_libdir / 'gnuefi' / 'elf_@0@_efi.lds'.format(gnu_efi_path_arch),
|
||||||
join_paths(efi_libdir, 'gnuefi', 'crt0-efi-@0@.o'.format(gnu_efi_path_arch))],
|
efi_libdir / 'gnuefi' / 'crt0-efi-@0@.o'.format(gnu_efi_path_arch)],
|
||||||
[join_paths(efi_libdir, 'elf_@0@_efi.lds'.format(gnu_efi_path_arch)),
|
[efi_libdir / 'elf_@0@_efi.lds'.format(gnu_efi_path_arch),
|
||||||
join_paths(efi_libdir, 'crt0-efi-@0@.o'.format(gnu_efi_path_arch))]]
|
efi_libdir / 'crt0-efi-@0@.o'.format(gnu_efi_path_arch)]]
|
||||||
efi_lds = ''
|
efi_lds = ''
|
||||||
foreach location : efi_location_map
|
foreach location : efi_location_map
|
||||||
if efi_lds == ''
|
if efi_lds == ''
|
||||||
@ -191,7 +191,7 @@ if have_gnu_efi
|
|||||||
'-nostdlib',
|
'-nostdlib',
|
||||||
'-std=gnu99',
|
'-std=gnu99',
|
||||||
'-isystem', efi_incdir,
|
'-isystem', efi_incdir,
|
||||||
'-isystem', join_paths(efi_incdir, gnu_efi_path_arch),
|
'-isystem', efi_incdir / gnu_efi_path_arch,
|
||||||
'-I', fundamental_path,
|
'-I', fundamental_path,
|
||||||
'-DSD_BOOT',
|
'-DSD_BOOT',
|
||||||
'-include', efi_config_h,
|
'-include', efi_config_h,
|
||||||
|
|||||||
@ -578,8 +578,7 @@ static int manager_setup_signals(Manager *m) {
|
|||||||
SIGRTMIN+22, /* systemd: set log level to LOG_DEBUG */
|
SIGRTMIN+22, /* systemd: set log level to LOG_DEBUG */
|
||||||
SIGRTMIN+23, /* systemd: set log level to LOG_INFO */
|
SIGRTMIN+23, /* systemd: set log level to LOG_INFO */
|
||||||
SIGRTMIN+24, /* systemd: Immediate exit (--user only) */
|
SIGRTMIN+24, /* systemd: Immediate exit (--user only) */
|
||||||
|
SIGRTMIN+25, /* systemd: reexecute manager */
|
||||||
/* .. one free signal here ... */
|
|
||||||
|
|
||||||
/* Apparently Linux on hppa had fewer RT signals until v3.18,
|
/* Apparently Linux on hppa had fewer RT signals until v3.18,
|
||||||
* SIGRTMAX was SIGRTMIN+25, and then SIGRTMIN was lowered,
|
* SIGRTMAX was SIGRTMIN+25, and then SIGRTMIN was lowered,
|
||||||
@ -2846,6 +2845,10 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t
|
|||||||
/* This is a nop on init */
|
/* This is a nop on init */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
m->objective = MANAGER_REEXECUTE;
|
||||||
|
break;
|
||||||
|
|
||||||
case 26:
|
case 26:
|
||||||
case 29: /* compatibility: used to be mapped to LOG_TARGET_SYSLOG_OR_KMSG */
|
case 29: /* compatibility: used to be mapped to LOG_TARGET_SYSLOG_OR_KMSG */
|
||||||
manager_restore_original_log_target(m);
|
manager_restore_original_log_target(m);
|
||||||
|
|||||||
@ -210,9 +210,9 @@ meson.add_install_script('sh', '-c', mkdir_p.format(systemgeneratordir))
|
|||||||
meson.add_install_script('sh', '-c', mkdir_p.format(usergeneratordir))
|
meson.add_install_script('sh', '-c', mkdir_p.format(usergeneratordir))
|
||||||
|
|
||||||
if install_sysconfdir
|
if install_sysconfdir
|
||||||
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'system')))
|
meson.add_install_script('sh', '-c', mkdir_p.format(pkgsysconfdir / 'system'))
|
||||||
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'user')))
|
meson.add_install_script('sh', '-c', mkdir_p.format(pkgsysconfdir / 'user'))
|
||||||
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(sysconfdir, 'xdg/systemd')))
|
meson.add_install_script('sh', '-c', mkdir_p.format(sysconfdir / 'xdg/systemd'))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
|
|||||||
@ -5,7 +5,7 @@ if conf.get('HAVE_LIBCRYPTSETUP_PLUGINS') == 1
|
|||||||
cryptsetup_token_c_args = ['-fvisibility=hidden']
|
cryptsetup_token_c_args = ['-fvisibility=hidden']
|
||||||
|
|
||||||
cryptsetup_token_sym = files('cryptsetup-token.sym')
|
cryptsetup_token_sym = files('cryptsetup-token.sym')
|
||||||
cryptsetup_token_sym_path = join_paths(meson.current_source_dir(), 'cryptsetup-token.sym')
|
cryptsetup_token_sym_path = meson.current_source_dir() / 'cryptsetup-token.sym'
|
||||||
|
|
||||||
if conf.get('HAVE_TPM2') == 1
|
if conf.get('HAVE_TPM2') == 1
|
||||||
cryptsetup_token_systemd_tpm2_sources = files('''
|
cryptsetup_token_systemd_tpm2_sources = files('''
|
||||||
|
|||||||
@ -14,8 +14,8 @@ sources = '''
|
|||||||
|
|
||||||
# for sd-boot
|
# for sd-boot
|
||||||
fundamental_source_paths = []
|
fundamental_source_paths = []
|
||||||
foreach s : sources
|
foreach source : sources
|
||||||
fundamental_source_paths += join_paths(meson.current_source_dir(), s)
|
fundamental_source_paths += meson.current_source_dir() / source
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
# for libbasic
|
# for libbasic
|
||||||
|
|||||||
@ -62,7 +62,7 @@ endforeach
|
|||||||
|
|
||||||
if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
|
if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
|
||||||
install_data('browse.html',
|
install_data('browse.html',
|
||||||
install_dir : join_paths(pkgdatadir, 'gatewayd'))
|
install_dir : pkgdatadir / 'gatewayd')
|
||||||
|
|
||||||
if get_option('create-log-dirs')
|
if get_option('create-log-dirs')
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
|
|||||||
@ -15,7 +15,7 @@ if want_kernel_install
|
|||||||
|
|
||||||
if install_sysconfdir
|
if install_sysconfdir
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
|
mkdir_p.format(sysconfdir / 'kernel/install.d'))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -171,7 +171,7 @@ libsystemd_static = static_library(
|
|||||||
c_args : libsystemd_c_args)
|
c_args : libsystemd_c_args)
|
||||||
|
|
||||||
libsystemd_sym = files('libsystemd.sym')
|
libsystemd_sym = files('libsystemd.sym')
|
||||||
libsystemd_sym_path = join_paths(meson.current_source_dir(), 'libsystemd.sym')
|
libsystemd_sym_path = meson.current_source_dir() / 'libsystemd.sym'
|
||||||
|
|
||||||
static_libsystemd = get_option('static-libsystemd')
|
static_libsystemd = get_option('static-libsystemd')
|
||||||
static_libsystemd_pic = static_libsystemd == 'true' or static_libsystemd == 'pic'
|
static_libsystemd_pic = static_libsystemd == 'true' or static_libsystemd == 'pic'
|
||||||
|
|||||||
@ -19,10 +19,10 @@ libudev_sources = files(
|
|||||||
libudev_includes = [includes, include_directories('.')]
|
libudev_includes = [includes, include_directories('.')]
|
||||||
|
|
||||||
libudev_sym = files('libudev.sym')
|
libudev_sym = files('libudev.sym')
|
||||||
libudev_sym_path = join_paths(meson.current_source_dir(), 'libudev.sym')
|
libudev_sym_path = meson.current_source_dir() / 'libudev.sym'
|
||||||
|
|
||||||
install_headers('libudev.h')
|
install_headers('libudev.h')
|
||||||
libudev_h_path = join_paths(meson.current_source_dir(), 'libudev.h')
|
libudev_h_path = meson.current_source_dir() / 'libudev.h'
|
||||||
|
|
||||||
libudev_basic = static_library(
|
libudev_basic = static_library(
|
||||||
'udev-basic',
|
'udev-basic',
|
||||||
|
|||||||
@ -20,8 +20,8 @@ endif
|
|||||||
# If you know a way that allows the same variables to be used
|
# If you know a way that allows the same variables to be used
|
||||||
# in sources list and concatenated to a string for test_env,
|
# in sources list and concatenated to a string for test_env,
|
||||||
# let me know.
|
# let me know.
|
||||||
kbd_model_map = join_paths(meson.current_source_dir(), 'kbd-model-map')
|
kbd_model_map = meson.current_source_dir() / 'kbd-model-map'
|
||||||
language_fallback_map = join_paths(meson.current_source_dir(), 'language-fallback-map')
|
language_fallback_map = meson.current_source_dir() / 'language-fallback-map'
|
||||||
|
|
||||||
if conf.get('ENABLE_LOCALED') == 1
|
if conf.get('ENABLE_LOCALED') == 1
|
||||||
install_data('kbd-model-map',
|
install_data('kbd-model-map',
|
||||||
|
|||||||
@ -279,12 +279,28 @@ static int button_dispatch(sd_event_source *s, int fd, uint32_t revents, void *u
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else if (ev.type == EV_KEY && ev.value == 0) {
|
} else if (ev.type == EV_KEY && ev.value == 0) {
|
||||||
if (ev.code == KEY_RESTART) {
|
|
||||||
if (b->manager->reboot_key_long_press_event_source) {
|
switch (ev.code) {
|
||||||
|
|
||||||
|
case KEY_POWER:
|
||||||
|
case KEY_POWER2:
|
||||||
|
if (b->manager->power_key_long_press_event_source) {
|
||||||
/* Long press event timer is still pending and key release
|
/* Long press event timer is still pending and key release
|
||||||
event happened. This means that key press duration was
|
event happened. This means that key press duration was
|
||||||
insufficient to trigger a long press event
|
insufficient to trigger a long press event
|
||||||
*/
|
*/
|
||||||
|
log_struct(LOG_INFO,
|
||||||
|
LOG_MESSAGE("Power key pressed short."),
|
||||||
|
"MESSAGE_ID=" SD_MESSAGE_POWER_KEY_STR);
|
||||||
|
|
||||||
|
b->manager->power_key_long_press_event_source = sd_event_source_unref(b->manager->power_key_long_press_event_source);
|
||||||
|
|
||||||
|
manager_handle_action(b->manager, INHIBIT_HANDLE_POWER_KEY, b->manager->handle_power_key, b->manager->power_key_ignore_inhibited, true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_RESTART:
|
||||||
|
if (b->manager->reboot_key_long_press_event_source) {
|
||||||
log_struct(LOG_INFO,
|
log_struct(LOG_INFO,
|
||||||
LOG_MESSAGE("Reboot key pressed short."),
|
LOG_MESSAGE("Reboot key pressed short."),
|
||||||
"MESSAGE_ID=" SD_MESSAGE_REBOOT_KEY_STR);
|
"MESSAGE_ID=" SD_MESSAGE_REBOOT_KEY_STR);
|
||||||
@ -293,6 +309,30 @@ static int button_dispatch(sd_event_source *s, int fd, uint32_t revents, void *u
|
|||||||
|
|
||||||
manager_handle_action(b->manager, INHIBIT_HANDLE_REBOOT_KEY, b->manager->handle_reboot_key, b->manager->reboot_key_ignore_inhibited, true);
|
manager_handle_action(b->manager, INHIBIT_HANDLE_REBOOT_KEY, b->manager->handle_reboot_key, b->manager->reboot_key_ignore_inhibited, true);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_SLEEP:
|
||||||
|
if (b->manager->suspend_key_long_press_event_source) {
|
||||||
|
log_struct(LOG_INFO,
|
||||||
|
LOG_MESSAGE("Suspend key pressed short."),
|
||||||
|
"MESSAGE_ID=" SD_MESSAGE_SUSPEND_KEY_STR);
|
||||||
|
|
||||||
|
b->manager->suspend_key_long_press_event_source = sd_event_source_unref(b->manager->suspend_key_long_press_event_source);
|
||||||
|
|
||||||
|
manager_handle_action(b->manager, INHIBIT_HANDLE_SUSPEND_KEY, b->manager->handle_suspend_key, b->manager->suspend_key_ignore_inhibited, true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KEY_SUSPEND:
|
||||||
|
if (b->manager->hibernate_key_long_press_event_source) {
|
||||||
|
log_struct(LOG_INFO,
|
||||||
|
LOG_MESSAGE("Hibernate key pressed short."),
|
||||||
|
"MESSAGE_ID=" SD_MESSAGE_HIBERNATE_KEY_STR);
|
||||||
|
|
||||||
|
b->manager->hibernate_key_long_press_event_source = sd_event_source_unref(b->manager->hibernate_key_long_press_event_source);
|
||||||
|
|
||||||
|
manager_handle_action(b->manager, INHIBIT_HANDLE_HIBERNATE_KEY, b->manager->handle_hibernate_key, b->manager->hibernate_key_ignore_inhibited, true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (ev.type == EV_SW && ev.value > 0) {
|
} else if (ev.type == EV_SW && ev.value > 0) {
|
||||||
|
|||||||
@ -22,8 +22,8 @@ if conf.get('ENABLE_PORTABLED') == 1
|
|||||||
install_data('org.freedesktop.portable1.policy',
|
install_data('org.freedesktop.portable1.policy',
|
||||||
install_dir : polkitpolicydir)
|
install_dir : polkitpolicydir)
|
||||||
|
|
||||||
install_data('profile/default/service.conf', install_dir : join_paths(profiledir, 'default'))
|
install_data('profile/default/service.conf', install_dir : profiledir / 'default')
|
||||||
install_data('profile/nonetwork/service.conf', install_dir : join_paths(profiledir, 'nonetwork'))
|
install_data('profile/nonetwork/service.conf', install_dir : profiledir / 'nonetwork')
|
||||||
install_data('profile/strict/service.conf', install_dir : join_paths(profiledir, 'strict'))
|
install_data('profile/strict/service.conf', install_dir : profiledir / 'strict')
|
||||||
install_data('profile/trusted/service.conf', install_dir : join_paths(profiledir, 'trusted'))
|
install_data('profile/trusted/service.conf', install_dir : profiledir / 'trusted')
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -77,7 +77,7 @@ foreach header : _systemd_headers + _not_installed_headers + [libudev_h_path]
|
|||||||
check_compilation_sh,
|
check_compilation_sh,
|
||||||
args : cc.cmd_array() + ['-c', '-x'] + opt +
|
args : cc.cmd_array() + ['-c', '-x'] + opt +
|
||||||
['-Werror', '-include',
|
['-Werror', '-include',
|
||||||
join_paths(meson.current_source_dir(), header)])
|
meson.current_source_dir() / header])
|
||||||
endif
|
endif
|
||||||
endforeach
|
endforeach
|
||||||
endforeach
|
endforeach
|
||||||
|
|||||||
@ -153,7 +153,7 @@ endforeach
|
|||||||
|
|
||||||
if install_sysconfdir_samples
|
if install_sysconfdir_samples
|
||||||
install_data('udev.conf',
|
install_data('udev.conf',
|
||||||
install_dir : join_paths(sysconfdir, 'udev'))
|
install_dir : sysconfdir / 'udev')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
custom_target(
|
custom_target(
|
||||||
@ -167,7 +167,7 @@ custom_target(
|
|||||||
|
|
||||||
if install_sysconfdir
|
if install_sysconfdir
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'udev/rules.d')))
|
mkdir_p.format(sysconfdir / 'udev/rules.d'))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
|
|||||||
@ -23,5 +23,5 @@ custom_target(
|
|||||||
|
|
||||||
if install_sysconfdir
|
if install_sysconfdir
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
|
mkdir_p.format(sysconfdir / 'sysctl.d'))
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -140,7 +140,7 @@ if want_tests != 'false' and dmi_arches.contains(host_machine.cpu_family())
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
foreach p : out.stdout().split()
|
foreach p : out.stdout().split()
|
||||||
source = join_paths(project_source_root, p)
|
source = project_source_root / p
|
||||||
name = 'dmidecode_' + p.split('/')[-1].split('.')[0]
|
name = 'dmidecode_' + p.split('/')[-1].split('.')[0]
|
||||||
|
|
||||||
test(name,
|
test(name,
|
||||||
|
|||||||
@ -52,6 +52,5 @@ endforeach
|
|||||||
|
|
||||||
if enable_tmpfiles and install_sysconfdir
|
if enable_tmpfiles and install_sysconfdir
|
||||||
meson.add_install_script(
|
meson.add_install_script(
|
||||||
'sh', '-c',
|
'sh', '-c', mkdir_p.format(sysconfdir / 'tmpfiles.d'))
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'tmpfiles.d')))
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -307,17 +307,17 @@ install_data('user-.slice.d/10-defaults.conf',
|
|||||||
|
|
||||||
if install_sysconfdir
|
if install_sysconfdir
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(pkgsysconfdir, 'user'),
|
pkgsysconfdir / 'user',
|
||||||
join_paths(sysconfdir, 'xdg/systemd/user'))
|
sysconfdir / 'xdg/systemd/user')
|
||||||
endif
|
endif
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(dbussystemservicedir, 'org.freedesktop.systemd1.service'),
|
dbussystemservicedir / 'org.freedesktop.systemd1.service',
|
||||||
join_paths(dbussessionservicedir, 'org.freedesktop.systemd1.service'))
|
dbussessionservicedir / 'org.freedesktop.systemd1.service')
|
||||||
if conf.get('HAVE_SYSV_COMPAT') == 1
|
if conf.get('HAVE_SYSV_COMPAT') == 1
|
||||||
foreach i : [1, 2, 3, 4, 5]
|
foreach i : [1, 2, 3, 4, 5]
|
||||||
meson.add_install_script(
|
meson.add_install_script(
|
||||||
'sh', '-c',
|
'sh', '-c',
|
||||||
mkdir_p.format(join_paths(systemunitdir, 'runlevel@0@.target.wants'.format(i))))
|
mkdir_p.format(systemunitdir / 'runlevel@0@.target.wants'.format(i)))
|
||||||
endforeach
|
endforeach
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user