Compare commits
12 Commits
faa73d4e0c
...
e2357b1c8a
Author | SHA1 | Date |
---|---|---|
Etienne Doms | e2357b1c8a | |
Yu Watanabe | 7a5b649fc0 | |
Zbigniew Jędrzejewski-Szmek | 9101cd1a23 | |
Zbigniew Jędrzejewski-Szmek | 08c1864f0d | |
perry_yuan | 617acbdaa4 | |
Zbigniew Jędrzejewski-Szmek | 141fdc8ada | |
Jörg Thalheim | d7aa78c32f | |
Yu Watanabe | 6b44ad0bf8 | |
Yu Watanabe | 725d9713a9 | |
Yu Watanabe | af7ce3faf8 | |
Yu Watanabe | c660668ed9 | |
Yu Watanabe | 23243adf69 |
19
NEWS
19
NEWS
|
@ -530,13 +530,15 @@ CHANGES WITH 247 in spe:
|
||||||
contention for selected parts of the unit hierarchy using the PSI
|
contention for selected parts of the unit hierarchy using the PSI
|
||||||
information reported by the kernel, and kills processes when memory
|
information reported by the kernel, and kills processes when memory
|
||||||
or swap pressure is above configured limits. This service is only
|
or swap pressure is above configured limits. This service is only
|
||||||
enabled in developer mode (see below) and should be considered a
|
enabled by default in developer mode (see below) and should be
|
||||||
preview in this release. Behaviour details and option names are
|
considered a preview in this release. Behaviour details and option
|
||||||
subject to change without the usual backwards-compatibility promises.
|
names are subject to change without the usual backwards-compatibility
|
||||||
|
promises.
|
||||||
|
|
||||||
* A new helper oomctl has been added to introspect systemd-oomd state.
|
* A new helper oomctl has been added to introspect systemd-oomd state.
|
||||||
If also is only available in developer mode and should be considered
|
If also is only enabled by default in developer mode and should be
|
||||||
a preview without the usual backwards-compatibility promises.
|
considered a preview without the usual backwards-compatibility
|
||||||
|
promises.
|
||||||
|
|
||||||
* New meson option -Dcompat-mutable-uid-boundaries= has been added. If
|
* New meson option -Dcompat-mutable-uid-boundaries= has been added. If
|
||||||
enabled, systemd reads the system UID boundaries from /etc/login.defs
|
enabled, systemd reads the system UID boundaries from /etc/login.defs
|
||||||
|
@ -598,6 +600,13 @@ CHANGES WITH 247 in spe:
|
||||||
* "systemctl edit" has been updated to show the original effective unit
|
* "systemctl edit" has been updated to show the original effective unit
|
||||||
contents in commented form in the text editor.
|
contents in commented form in the text editor.
|
||||||
|
|
||||||
|
* Units in user mode are now segregated into three new slices:
|
||||||
|
session.slice (units that form the core of graphical session),
|
||||||
|
app.slice ("normal" user applications), and background.slice
|
||||||
|
(low-priority tasks). Unless otherwise configured, user units are
|
||||||
|
placed in app.slice. The plan is to add resource limits and
|
||||||
|
protections for the different slices in the future.
|
||||||
|
|
||||||
Contributions from: Adolfo Jayme Barrientos, afg, Alec Moskvin, Alyssa
|
Contributions from: Adolfo Jayme Barrientos, afg, Alec Moskvin, Alyssa
|
||||||
Ross, Amitanand Chikorde, Andrew Hangsleben, Anita Zhang, Ansgar
|
Ross, Amitanand Chikorde, Andrew Hangsleben, Anita Zhang, Ansgar
|
||||||
Burchardt, Arian van Putten, Aurelien Jarno, Axel Rasmussen, bauen1,
|
Burchardt, Arian van Putten, Aurelien Jarno, Axel Rasmussen, bauen1,
|
||||||
|
|
|
@ -375,6 +375,10 @@ evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
|
||||||
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
|
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
|
||||||
KEYBOARD_KEY_100150=f20 # Mic mute toggle, should be micmute
|
KEYBOARD_KEY_100150=f20 # Mic mute toggle, should be micmute
|
||||||
|
|
||||||
|
# Dell Latitude privacy microphone mute
|
||||||
|
evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:sku0A3E:*
|
||||||
|
KEYBOARD_KEY_12001=f20 # Mic mute toggle, should be micmute
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
# Everex
|
# Everex
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
|
@ -42,12 +42,14 @@ if conf.get('ENABLE_HWDB') == 1
|
||||||
hwdb_files_test,
|
hwdb_files_test,
|
||||||
install_dir : udevhwdbdir)
|
install_dir : udevhwdbdir)
|
||||||
|
|
||||||
|
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(join_paths(sysconfdir, 'udev/hwdb.d')))
|
||||||
|
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
'test -n "$DESTDIR" || @0@/systemd-hwdb update'
|
'test -n "$DESTDIR" || @0@/systemd-hwdb update'
|
||||||
.format(rootbindir))
|
.format(rootbindir))
|
||||||
|
endif
|
||||||
|
|
||||||
if want_tests != 'false'
|
if want_tests != 'false'
|
||||||
parse_hwdb_py = find_program('parse_hwdb.py')
|
parse_hwdb_py = find_program('parse_hwdb.py')
|
||||||
|
|
|
@ -433,7 +433,7 @@
|
||||||
|
|
||||||
<listitem><para>The maximum line length to permit when converting stream logs into record logs. When a systemd
|
<listitem><para>The maximum line length to permit when converting stream logs into record logs. When a systemd
|
||||||
unit's standard output/error are connected to the journal via a stream socket, the data read is split into
|
unit's standard output/error are connected to the journal via a stream socket, the data read is split into
|
||||||
individual log records at newline (<literal>\n</literal>, ASCII 10) and NUL characters. If no such delimiter is
|
individual log records at newline (<literal>\n</literal>, ASCII 10) and <constant>NUL</constant> characters. If no such delimiter is
|
||||||
read for the specified number of bytes a hard log record boundary is artificially inserted, breaking up overly
|
read for the specified number of bytes a hard log record boundary is artificially inserted, breaking up overly
|
||||||
long lines into multiple log records. Selecting overly large values increases the possible memory usage of the
|
long lines into multiple log records. Selecting overly large values increases the possible memory usage of the
|
||||||
Journal daemon for each stream client, as in the worst case the journal daemon needs to buffer the specified
|
Journal daemon for each stream client, as in the worst case the journal daemon needs to buffer the specified
|
||||||
|
|
|
@ -244,7 +244,7 @@
|
||||||
<title>Session limits</title>
|
<title>Session limits</title>
|
||||||
|
|
||||||
<para>PAM modules earlier in the stack, that is those that come before <command>pam_systemd.so</command>,
|
<para>PAM modules earlier in the stack, that is those that come before <command>pam_systemd.so</command>,
|
||||||
can set session scope limits using the PAM context objects. The data for these objects is provided as NUL-terminated C strings
|
can set session scope limits using the PAM context objects. The data for these objects is provided as <constant>NUL</constant>-terminated C strings
|
||||||
and maps directly to the respective unit resource control directives. Note that these limits apply to individual sessions of the user,
|
and maps directly to the respective unit resource control directives. Note that these limits apply to individual sessions of the user,
|
||||||
they do not apply to all user processes as a combined whole. In particular, the per-user <command>user@.service</command> unit instance,
|
they do not apply to all user processes as a combined whole. In particular, the per-user <command>user@.service</command> unit instance,
|
||||||
which runs the <command>systemd --user</command> manager process and its children, and is tracked outside of any session, being shared
|
which runs the <command>systemd --user</command> manager process and its children, and is tracked outside of any session, being shared
|
||||||
|
|
|
@ -85,8 +85,8 @@
|
||||||
|
|
||||||
<programlisting>#define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1)</programlisting>
|
<programlisting>#define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1)</programlisting>
|
||||||
|
|
||||||
<para><function>SD_ID128_NULL</function> may be used to refer to the 128bit ID consisting of only NUL
|
<para><constant>SD_ID128_NULL</constant> may be used to refer to the 128bit ID consisting of only
|
||||||
bytes.</para>
|
<constant>NUL</constant> bytes.</para>
|
||||||
|
|
||||||
<para><function>SD_ID128_MAKE_STR()</function> is similar to <function>SD_ID128_MAKE()</function>, but creates a
|
<para><function>SD_ID128_MAKE_STR()</function> is similar to <function>SD_ID128_MAKE()</function>, but creates a
|
||||||
<type>const char*</type> expression that can be conveniently used in message formats and such:</para>
|
<type>const char*</type> expression that can be conveniently used in message formats and such:</para>
|
||||||
|
@ -107,9 +107,8 @@ int main(int argc, char **argv) {
|
||||||
puts("Match for coredumps: %s", SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP));
|
puts("Match for coredumps: %s", SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP));
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
|
|
||||||
<para><function>SD_ID128_FORMAT_STR()</function> and
|
<para><constant>SD_ID128_FORMAT_STR</constant> and <function>SD_ID128_FORMAT_VAL()</function> may
|
||||||
<function>SD_ID128_FORMAT_VAL()</function> may be used to format a
|
be used to format a 128-bit ID in a
|
||||||
128-bit ID in a
|
|
||||||
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
format string, as shown in the following example:</para>
|
format string, as shown in the following example:</para>
|
||||||
|
|
||||||
|
@ -120,8 +119,8 @@ int main(int argc, char **argv) {
|
||||||
return 0;
|
return 0;
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
|
|
||||||
<para><function>SD_ID128_UUID_FORMAT_STR()</function> is similar to
|
<para><constant>SD_ID128_UUID_FORMAT_STR</constant> is similar to
|
||||||
<function>SD_ID128_FORMAT_STR()</function> but includes separating hyphens to conform to the
|
<constant>SD_ID128_FORMAT_STR</constant> but includes separating hyphens to conform to the
|
||||||
"<ulink url="https://en.wikipedia.org/wiki/Universally_unique_identifier#Format">canonical representation</ulink>".
|
"<ulink url="https://en.wikipedia.org/wiki/Universally_unique_identifier#Format">canonical representation</ulink>".
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -137,7 +136,8 @@ int main(int argc, char **argv) {
|
||||||
return 0;
|
return 0;
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
|
|
||||||
<para>Use <function>sd_id128_is_null()</function> to check if an 128bit ID consists of only NUL bytes:</para>
|
<para>Use <function>sd_id128_is_null()</function> to check if an 128bit ID consists of only
|
||||||
|
<constant>NUL</constant> bytes:</para>
|
||||||
|
|
||||||
<programlisting>int main(int argc, char *argv[]) {
|
<programlisting>int main(int argc, char *argv[]) {
|
||||||
assert(sd_id128_is_null(SD_ID128_NULL));
|
assert(sd_id128_is_null(SD_ID128_NULL));
|
||||||
|
|
|
@ -620,8 +620,8 @@
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><constant>-EPROTOTYPE</constant></term>
|
<term><constant>-EPROTOTYPE</constant></term>
|
||||||
|
|
||||||
<listitem><para><function>sd_bus_add_object_vtable</function> and
|
<listitem><para><function>sd_bus_add_object_vtable()</function> and
|
||||||
<function>sd_bus_add_fallback_vtable</function> have been both called for the same bus
|
<function>sd_bus_add_fallback_vtable()</function> have been both called for the same bus
|
||||||
object path, which is not allowed.</para></listitem>
|
object path, which is not allowed.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,12 @@
|
||||||
<refsect2 id='errors'>
|
<refsect2 id='errors'>
|
||||||
<title>Errors</title>
|
<title>Errors</title>
|
||||||
|
|
||||||
|
<para>When <function>sd_bus_call()</function> internally receives a D-Bus error reply, it will set
|
||||||
|
<parameter>ret_error</parameter> if it is not <constant>NULL</constant>, and will return a negative
|
||||||
|
value mapped from the error reply, see
|
||||||
|
<citerefentry><refentrytitle>sd_bus_error_get_errno</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
||||||
|
</para>
|
||||||
|
|
||||||
<para>Returned errors may indicate the following problems:</para>
|
<para>Returned errors may indicate the following problems:</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
|
@ -180,7 +186,8 @@
|
||||||
<citerefentry><refentrytitle>sd_bus_call_method</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_call_method</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_call_method_async</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_call_method_async</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_new_method_call</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_new_method_call</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_append</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>sd_bus_message_append</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
|
<citerefentry><refentrytitle>sd_bus_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Description</title>
|
<title>Description</title>
|
||||||
|
|
||||||
<para><function>sd_bus_can_send</function> is mostly used for checking if file descriptor
|
<para><function>sd_bus_can_send()</function> is mostly used for checking if file descriptor
|
||||||
passing is available on the given bus. <parameter>type</parameter> can be any of the
|
passing is available on the given bus. <parameter>type</parameter> can be any of the
|
||||||
<constant>SD_BUS_TYPE</constant> constants.</para>
|
<constant>SD_BUS_TYPE</constant> constants.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
|
@ -72,7 +72,7 @@
|
||||||
is provided that combines them into one.</para>
|
is provided that combines them into one.</para>
|
||||||
|
|
||||||
<para><function>sd_bus_default_flush_close()</function> is similar to
|
<para><function>sd_bus_default_flush_close()</function> is similar to
|
||||||
<function>sd_bus_flush_close_unref</function>, but does not take a bus pointer argument and
|
<function>sd_bus_flush_close_unref()</function>, but does not take a bus pointer argument and
|
||||||
instead iterates over any of the "default" buses opened by
|
instead iterates over any of the "default" buses opened by
|
||||||
<citerefentry><refentrytitle>sd_bus_default</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_default</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_default_user</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_default_user</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
|
|
|
@ -439,14 +439,14 @@
|
||||||
|
|
||||||
<para>All functions that take a <parameter>const
|
<para>All functions that take a <parameter>const
|
||||||
char**</parameter> parameter will store the answer there as an
|
char**</parameter> parameter will store the answer there as an
|
||||||
address of a NUL-terminated string. It will be valid as long as
|
address of a <constant>NUL</constant>-terminated string. It will be valid as long as
|
||||||
<parameter>c</parameter> remains valid, and should not be freed or
|
<parameter>c</parameter> remains valid, and should not be freed or
|
||||||
modified by the caller.</para>
|
modified by the caller.</para>
|
||||||
|
|
||||||
<para>All functions that take a <parameter>char***</parameter>
|
<para>All functions that take a <parameter>char***</parameter>
|
||||||
parameter will store the answer there as an address of an array
|
parameter will store the answer there as an address of an array
|
||||||
of strings. Each individual string is NUL-terminated, and the
|
of strings. Each individual string is <constant>NUL</constant>-terminated, and the
|
||||||
array is NULL-terminated as a whole. It will be valid as long as
|
array is <constant>NULL</constant>-terminated as a whole. It will be valid as long as
|
||||||
<parameter>c</parameter> remains valid, and should not be freed or
|
<parameter>c</parameter> remains valid, and should not be freed or
|
||||||
modified by the caller.</para>
|
modified by the caller.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
|
@ -160,10 +160,10 @@
|
||||||
but additional domain-specific errors may be defined by
|
but additional domain-specific errors may be defined by
|
||||||
applications. The <structfield>message</structfield> field usually
|
applications. The <structfield>message</structfield> field usually
|
||||||
contains a human-readable string describing the details, but might
|
contains a human-readable string describing the details, but might
|
||||||
be NULL. An unset <structname>sd_bus_error</structname> structure
|
be <constant>NULL</constant>. An unset <structname>sd_bus_error</structname> structure
|
||||||
should have both fields initialized to NULL. Set an error
|
should have both fields initialized to <constant>NULL</constant>. Set an error
|
||||||
structure to <constant>SD_BUS_ERROR_NULL</constant> in order to
|
structure to <constant>SD_BUS_ERROR_NULL</constant> in order to
|
||||||
reset both fields to NULL. When no longer necessary, resources
|
reset both fields to <constant>NULL</constant>. When no longer necessary, resources
|
||||||
held by the <structname>sd_bus_error</structname> structure should
|
held by the <structname>sd_bus_error</structname> structure should
|
||||||
be destroyed with <function>sd_bus_error_free()</function>.</para>
|
be destroyed with <function>sd_bus_error_free()</function>.</para>
|
||||||
|
|
||||||
|
@ -181,14 +181,14 @@
|
||||||
for a list of well-known error names. Additional error mappings
|
for a list of well-known error names. Additional error mappings
|
||||||
may be defined with
|
may be defined with
|
||||||
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>. If
|
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>. If
|
||||||
<parameter>e</parameter> is NULL, no error structure is initialized,
|
<parameter>e</parameter> is <constant>NULL</constant>, no error structure is initialized,
|
||||||
but the error is still converted into an
|
but the error is still converted into an
|
||||||
<varname>errno</varname>-style error. If
|
<varname>errno</varname>-style error. If
|
||||||
<parameter>name</parameter> is <constant>NULL</constant>, it is
|
<parameter>name</parameter> is <constant>NULL</constant>, it is
|
||||||
assumed that no error occurred, and 0 is returned. This means that
|
assumed that no error occurred, and 0 is returned. This means that
|
||||||
this function may be conveniently used in a
|
this function may be conveniently used in a
|
||||||
<function>return</function> statement. If
|
<function>return</function> statement. If
|
||||||
<parameter>message</parameter> is NULL, no message is set. This
|
<parameter>message</parameter> is <constant>NULL</constant>, no message is set. This
|
||||||
call can fail if no memory may be allocated for the name and
|
call can fail if no memory may be allocated for the name and
|
||||||
message strings, in which case an
|
message strings, in which case an
|
||||||
<constant>SD_BUS_ERROR_NO_MEMORY</constant> error might be set
|
<constant>SD_BUS_ERROR_NO_MEMORY</constant> error might be set
|
||||||
|
@ -291,10 +291,10 @@
|
||||||
will not be deallocated, and must be <citerefentry
|
will not be deallocated, and must be <citerefentry
|
||||||
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>d
|
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>d
|
||||||
by the caller if necessary. The function may also be called safely
|
by the caller if necessary. The function may also be called safely
|
||||||
on unset errors (error structures with both fields set to NULL),
|
on unset errors (error structures with both fields set to <constant>NULL</constant>),
|
||||||
in which case it performs no operation. This call will reset the
|
in which case it performs no operation. This call will reset the
|
||||||
error structure after freeing the data, so that all fields are set
|
error structure after freeing the data, so that all fields are set
|
||||||
to NULL. The structure may be reused afterwards.</para>
|
to <constant>NULL</constant>. The structure may be reused afterwards.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
<title>Return Value</title>
|
<title>Return Value</title>
|
||||||
|
|
||||||
<para>Those functions return 1 if the argument is a valid interface / service / member name or object
|
<para>Those functions return 1 if the argument is a valid interface / service / member name or object
|
||||||
path, and 0 if it is not. If the argument is NULL, an error is returned.</para>
|
path, and 0 if it is not. If the argument is <constant>NULL</constant>, an error is returned.</para>
|
||||||
|
|
||||||
<refsect2>
|
<refsect2>
|
||||||
<title>Errors</title>
|
<title>Errors</title>
|
||||||
|
|
|
@ -54,20 +54,20 @@
|
||||||
<title>Description</title>
|
<title>Description</title>
|
||||||
|
|
||||||
<para>The functions
|
<para>The functions
|
||||||
<function>sd_bus_message_append_string_memfd</function> and
|
<function>sd_bus_message_append_string_memfd()</function> and
|
||||||
<function>sd_bus_message_append_string_iovec</function> can be
|
<function>sd_bus_message_append_string_iovec()</function> can be
|
||||||
used to append a single string (item of type <literal>s</literal>)
|
used to append a single string (item of type <literal>s</literal>)
|
||||||
to message <parameter>m</parameter>.</para>
|
to message <parameter>m</parameter>.</para>
|
||||||
|
|
||||||
<para>In case of
|
<para>In case of
|
||||||
<function>sd_bus_message_append_string_memfd</function>, the
|
<function>sd_bus_message_append_string_memfd()</function>, the
|
||||||
contents of <parameter>memfd</parameter> are the string. They must
|
contents of <parameter>memfd</parameter> are the string. They must
|
||||||
satisfy the same constraints as described for the
|
satisfy the same constraints as described for the
|
||||||
<literal>s</literal> type in
|
<literal>s</literal> type in
|
||||||
<citerefentry><refentrytitle>sd_bus_message_append_basic</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
<citerefentry><refentrytitle>sd_bus_message_append_basic</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
||||||
|
|
||||||
<para>In case of
|
<para>In case of
|
||||||
<function>sd_bus_message_append_string_iovec</function>, the
|
<function>sd_bus_message_append_string_iovec()</function>, the
|
||||||
payload of <parameter>iov</parameter> is the string. It must
|
payload of <parameter>iov</parameter> is the string. It must
|
||||||
satisfy the same constraints as described for the
|
satisfy the same constraints as described for the
|
||||||
<literal>s</literal> type in
|
<literal>s</literal> type in
|
||||||
|
@ -84,9 +84,9 @@
|
||||||
after this call.</para>
|
after this call.</para>
|
||||||
|
|
||||||
<para>The
|
<para>The
|
||||||
<function>sd_bus_message_append_string_space</function> function appends
|
<function>sd_bus_message_append_string_space()</function> function appends
|
||||||
space for a string to message <parameter>m</parameter>. It behaves
|
space for a string to message <parameter>m</parameter>. It behaves
|
||||||
similar to <function>sd_bus_message_append_basic</function> with
|
similar to <function>sd_bus_message_append_basic()</function> with
|
||||||
type <literal>s</literal>, but instead of copying a string into
|
type <literal>s</literal>, but instead of copying a string into
|
||||||
the message, it returns a pointer to the destination area to
|
the message, it returns a pointer to the destination area to
|
||||||
the caller in pointer <parameter>p</parameter>. Space for the string
|
the caller in pointer <parameter>p</parameter>. Space for the string
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Description</title>
|
<title>Description</title>
|
||||||
|
|
||||||
<para>The <function>sd_bus_message_append</function> function can be
|
<para>The <function>sd_bus_message_append()</function> function can be
|
||||||
used to append an array of strings to message
|
used to append an array of strings to message
|
||||||
<parameter>m</parameter>. The parameter <parameter>l</parameter>
|
<parameter>m</parameter>. The parameter <parameter>l</parameter>
|
||||||
shall point to a <constant>NULL</constant>-terminated array of pointers
|
shall point to a <constant>NULL</constant>-terminated array of pointers
|
||||||
|
|
|
@ -143,8 +143,8 @@
|
||||||
<para>Message <parameter>call</parameter> is not a method call
|
<para>Message <parameter>call</parameter> is not a method call
|
||||||
message.</para>
|
message.</para>
|
||||||
|
|
||||||
<para>The error <parameter>error</parameter> parameter to
|
<para>The error <parameter>e</parameter> parameter to
|
||||||
<function>sd_bus_message_new_method_error</function> is not set, see
|
<function>sd_bus_message_new_method_error()</function> is not set, see
|
||||||
<citerefentry><refentrytitle>sd_bus_error_is_set</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
<citerefentry><refentrytitle>sd_bus_error_is_set</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
|
@ -118,7 +118,7 @@
|
||||||
will be stored there. Each <literal>%</literal> character will
|
will be stored there. Each <literal>%</literal> character will
|
||||||
only match the current label. It will never match across labels.
|
only match the current label. It will never match across labels.
|
||||||
Furthermore, only a single directive is allowed per label.
|
Furthermore, only a single directive is allowed per label.
|
||||||
If <literal>NULL</literal> is passed as output storage, the
|
If <constant>NULL</constant> is passed as output storage, the
|
||||||
label is verified but not returned to the caller.</para>
|
label is verified but not returned to the caller.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@
|
||||||
argument. On success, <function>sd_bus_path_decode()</function>
|
argument. On success, <function>sd_bus_path_decode()</function>
|
||||||
returns a positive value if the prefixed matched, or 0 if it
|
returns a positive value if the prefixed matched, or 0 if it
|
||||||
did not. If the prefix matched, the external identifier is returned
|
did not. If the prefix matched, the external identifier is returned
|
||||||
in the return parameter. If it did not match, NULL is returned in
|
in the return parameter. If it did not match, <constant>NULL</constant> is returned in
|
||||||
the return parameter. On failure, a negative errno-style error
|
the return parameter. On failure, a negative errno-style error
|
||||||
number is returned by either function. The returned strings must
|
number is returned by either function. The returned strings must
|
||||||
be
|
be
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
<parameter>ret</parameter> is not <constant>NULL</constant> and the call processed a message,
|
<parameter>ret</parameter> is not <constant>NULL</constant> and the call processed a message,
|
||||||
<parameter>*ret</parameter> is set to this message. The caller owns a reference to this message and should call
|
<parameter>*ret</parameter> is set to this message. The caller owns a reference to this message and should call
|
||||||
<citerefentry><refentrytitle>sd_bus_message_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> when the
|
<citerefentry><refentrytitle>sd_bus_message_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> when the
|
||||||
message is no longer needed. If <parameter>ret</parameter> is not NULL, progress was made, but no message was
|
message is no longer needed. If <parameter>ret</parameter> is not <constant>NULL</constant>, progress was made, but no message was
|
||||||
processed, <parameter>*ret</parameter> is set to <constant>NULL</constant>.</para>
|
processed, <parameter>*ret</parameter> is set to <constant>NULL</constant>.</para>
|
||||||
|
|
||||||
<para>If a the bus object is connected to an
|
<para>If a the bus object is connected to an
|
||||||
|
|
|
@ -127,8 +127,8 @@
|
||||||
|
|
||||||
<para>Message <parameter>call</parameter> is not attached to a bus.</para>
|
<para>Message <parameter>call</parameter> is not attached to a bus.</para>
|
||||||
|
|
||||||
<para>The error parameter <parameter>error</parameter> to
|
<para>The error parameter <parameter>e</parameter> to
|
||||||
<function>sd_bus_reply_method_error</function> is not set, see
|
<function>sd_bus_reply_method_error()</function> is not set, see
|
||||||
<citerefentry><refentrytitle>sd_bus_error_is_set</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
<citerefentry><refentrytitle>sd_bus_error_is_set</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
<citerefentry><refentrytitle>sd_bus_open</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
|
<citerefentry><refentrytitle>sd_bus_open</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
|
||||||
similar calls, based on environment variables or built-in defaults.</para>
|
similar calls, based on environment variables or built-in defaults.</para>
|
||||||
|
|
||||||
<para><function>sd_bus_set_exec</function> is a shorthand function for setting a
|
<para><function>sd_bus_set_exec()</function> is a shorthand function for setting a
|
||||||
<literal>unixexec</literal> address that spawns the given executable with the given arguments.
|
<literal>unixexec</literal> address that spawns the given executable with the given arguments.
|
||||||
If <parameter>argv</parameter> is <constant>NULL</constant>, the given executable is spawned
|
If <parameter>argv</parameter> is <constant>NULL</constant>, the given executable is spawned
|
||||||
without any extra arguments.</para>
|
without any extra arguments.</para>
|
||||||
|
|
|
@ -157,7 +157,7 @@
|
||||||
|
|
||||||
<para>See the
|
<para>See the
|
||||||
<citerefentry><refentrytitle>sd_bus_call_method</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>sd_bus_call_method</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
man page for a list of possible errors</para>
|
man page for a list of possible errors.</para>
|
||||||
</refsect2>
|
</refsect2>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
|
|
@ -101,11 +101,11 @@
|
||||||
<function>sd_bus_track_add_sender()</function>. They may be dropped again via
|
<function>sd_bus_track_add_sender()</function>. They may be dropped again via
|
||||||
<function>sd_bus_track_remove_name()</function> and
|
<function>sd_bus_track_remove_name()</function> and
|
||||||
<function>sd_bus_track_remove_sender()</function>. Alternatively, references on peers are removed automatically
|
<function>sd_bus_track_remove_sender()</function>. Alternatively, references on peers are removed automatically
|
||||||
when they disconnect from the bus. If non-NULL the <parameter>handler</parameter> may specify a function that is
|
when they disconnect from the bus. If non-<constant>NULL</constant> the <parameter>handler</parameter> may specify
|
||||||
invoked whenever the last reference is dropped, regardless whether the reference is dropped explicitly via
|
a function that is invoked whenever the last reference is dropped, regardless whether the reference is dropped
|
||||||
<function>sd_bus_track_remove_name()</function> or implicitly because the peer disconnected from the bus. The final
|
explicitly via <function>sd_bus_track_remove_name()</function> or implicitly because the peer disconnected from the
|
||||||
argument <parameter>userdata</parameter> may be used to attach a generic user data pointer to the object. This
|
bus. The final argument <parameter>userdata</parameter> may be used to attach a generic user data pointer to the
|
||||||
pointer is passed to the handler callback when it is invoked.</para>
|
object. This pointer is passed to the handler callback when it is invoked.</para>
|
||||||
|
|
||||||
<para><function>sd_bus_track_ref()</function> creates a new reference to a bus peer tracking object. This object
|
<para><function>sd_bus_track_ref()</function> creates a new reference to a bus peer tracking object. This object
|
||||||
will not be destroyed until <function>sd_bus_track_unref()</function> has been called as many times plus once
|
will not be destroyed until <function>sd_bus_track_unref()</function> has been called as many times plus once
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
|
|
||||||
<para>On success, <function>sd_event_source_get_event()</function>
|
<para>On success, <function>sd_event_source_get_event()</function>
|
||||||
returns the associated event loop object. On failure, it returns
|
returns the associated event loop object. On failure, it returns
|
||||||
NULL.</para>
|
<constant>NULL</constant>.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<xi:include href="libsystemd-pkgconfig.xml" />
|
<xi:include href="libsystemd-pkgconfig.xml" />
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
when the event source was created. The event source will be disabled
|
when the event source was created. The event source will be disabled
|
||||||
if the callback function returns a negative error code. The callback
|
if the callback function returns a negative error code. The callback
|
||||||
function may be used to reconfigure the precise events to wait for.
|
function may be used to reconfigure the precise events to wait for.
|
||||||
If the <parameter>callback</parameter> parameter is passed as NULL
|
If the <parameter>callback</parameter> parameter is passed as <constant>NULL</constant>
|
||||||
the callback function is reset. </para>
|
the callback function is reset. </para>
|
||||||
|
|
||||||
<para>Event source objects have no preparation callback associated
|
<para>Event source objects have no preparation callback associated
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
<function>sd_event_source_set_userdata()</function> and
|
<function>sd_event_source_set_userdata()</function> and
|
||||||
<function>sd_event_source_get_userdata()</function> return the
|
<function>sd_event_source_get_userdata()</function> return the
|
||||||
previously set user data pointer. On failure, they return
|
previously set user data pointer. On failure, they return
|
||||||
NULL.</para>
|
<constant>NULL</constant>.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<xi:include href="libsystemd-pkgconfig.xml" />
|
<xi:include href="libsystemd-pkgconfig.xml" />
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
|
|
||||||
<para><function>sd_get_seats()</function> may be used to determine
|
<para><function>sd_get_seats()</function> may be used to determine
|
||||||
all currently available local seats. Returns the number of seat
|
all currently available local seats. Returns the number of seat
|
||||||
identifiers and if the input pointer is non-NULL, a
|
identifiers and if the input pointer is non-<constant>NULL</constant>, a
|
||||||
<constant>NULL</constant>-terminated array of seat identifiers
|
<constant>NULL</constant>-terminated array of seat identifiers
|
||||||
is stored at the address.
|
is stored at the address.
|
||||||
The returned array and all strings it references need to be freed
|
The returned array and all strings it references need to be freed
|
||||||
|
|
|
@ -84,7 +84,7 @@
|
||||||
<citerefentry><refentrytitle>hwdb</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
|
<citerefentry><refentrytitle>hwdb</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
|
||||||
details.</para>
|
details.</para>
|
||||||
|
|
||||||
<para>The <function>SD_HWDB_FOREACH_PROPERTY</function> macro combines
|
<para>The <function>SD_HWDB_FOREACH_PROPERTY()</function> macro combines
|
||||||
<function>sd_hwdb_seek()</function> and <function>sd_hwdb_enumerate()</function>. No error handling is
|
<function>sd_hwdb_seek()</function> and <function>sd_hwdb_enumerate()</function>. No error handling is
|
||||||
performed and iteration simply stops on error. See the example below.</para>
|
performed and iteration simply stops on error. See the example below.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
|
@ -50,8 +50,9 @@
|
||||||
<para><function>sd_id128_from_string()</function> implements the reverse operation: it takes a 33 character string
|
<para><function>sd_id128_from_string()</function> implements the reverse operation: it takes a 33 character string
|
||||||
with 32 hexadecimal digits (either lowercase or uppercase, terminated by <constant>NUL</constant>) and parses them
|
with 32 hexadecimal digits (either lowercase or uppercase, terminated by <constant>NUL</constant>) and parses them
|
||||||
back into a 128-bit ID returned in <parameter>ret</parameter>. Alternatively, this call can also parse a
|
back into a 128-bit ID returned in <parameter>ret</parameter>. Alternatively, this call can also parse a
|
||||||
37-character string with a 128-bit ID formatted as RFC UUID. If <parameter>ret</parameter> is passed as NULL the
|
37-character string with a 128-bit ID formatted as RFC UUID. If <parameter>ret</parameter> is passed as
|
||||||
function will validate the passed ID string, but not actually return it in parsed form.</para>
|
<constant>NULL</constant> the function will validate the passed ID string, but not actually return it in parsed
|
||||||
|
form.</para>
|
||||||
|
|
||||||
<para>For more information about the <literal>sd_id128_t</literal>
|
<para>For more information about the <literal>sd_id128_t</literal>
|
||||||
type see
|
type see
|
||||||
|
@ -63,9 +64,8 @@
|
||||||
easier to use a format string for
|
easier to use a format string for
|
||||||
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
||||||
This is easily done using the
|
This is easily done using the
|
||||||
<function>SD_ID128_FORMAT_STR</function> and
|
<constant>SD_ID128_FORMAT_STR</constant> and <function>SD_ID128_FORMAT_VAL()</function> macros. For
|
||||||
<function>SD_ID128_FORMAT_VAL()</function> macros. For more
|
more information see
|
||||||
information see
|
|
||||||
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
|
|
||||||
<para><function>sd_id128_to_string()</function> always succeeds
|
<para><function>sd_id128_to_string()</function> always succeeds
|
||||||
and returns a pointer to the string array passed in.
|
and returns a pointer to the string array passed in.
|
||||||
<function>sd_id128_from_string</function> returns 0 on success, in
|
<function>sd_id128_from_string()</function> returns 0 on success, in
|
||||||
which case <parameter>ret</parameter> is filled in, or a negative
|
which case <parameter>ret</parameter> is filled in, or a negative
|
||||||
errno-style error code.</para>
|
errno-style error code.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Examples</title>
|
<title>Examples</title>
|
||||||
|
|
||||||
<para>Use the <function>SD_JOURNAL_FOREACH_FIELD</function> macro to iterate through all field names in use in the
|
<para>Use the <function>SD_JOURNAL_FOREACH_FIELD()</function> macro to iterate through all field names in use in the
|
||||||
current journal.</para>
|
current journal.</para>
|
||||||
|
|
||||||
<programlisting>#include <stdio.h>
|
<programlisting>#include <stdio.h>
|
||||||
|
|
|
@ -245,7 +245,7 @@
|
||||||
<function>sd_journal_get_data()</function>.</para>
|
<function>sd_journal_get_data()</function>.</para>
|
||||||
|
|
||||||
<para>Use the
|
<para>Use the
|
||||||
<function>SD_JOURNAL_FOREACH_DATA</function> macro to
|
<function>SD_JOURNAL_FOREACH_DATA()</function> macro to
|
||||||
iterate through all fields of the current journal
|
iterate through all fields of the current journal
|
||||||
entry:</para>
|
entry:</para>
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
<title>Return value</title>
|
<title>Return value</title>
|
||||||
<para>Both <function>sd_journal_has_runtime_files()</function>
|
<para>Both <function>sd_journal_has_runtime_files()</function>
|
||||||
and <function>sd_journal_has_persistent_files()</function> return -EINVAL
|
and <function>sd_journal_has_persistent_files()</function> return -EINVAL
|
||||||
if their argument is NULL.
|
if their argument is <constant>NULL</constant>.
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
|
|
@ -192,10 +192,10 @@ sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid(
|
||||||
<constant>SD_JOURNAL_SUPPRESS_LOCATION</constant> before including <filename>sd-journal.h</filename>.
|
<constant>SD_JOURNAL_SUPPRESS_LOCATION</constant> before including <filename>sd-journal.h</filename>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para><function>sd_journal_print_with_location</function>,
|
<para><function>sd_journal_print_with_location()</function>,
|
||||||
<function>sd_journal_printv_with_location</function>, <function>sd_journal_send_with_location</function>,
|
<function>sd_journal_printv_with_location()</function>, <function>sd_journal_send_with_location()</function>,
|
||||||
<function>sd_journal_sendv_with_location</function>, and
|
<function>sd_journal_sendv_with_location()</function>, and
|
||||||
<function>sd_journal_perror_with_location</function> are similar to their counterparts without
|
<function>sd_journal_perror_with_location()</function> are similar to their counterparts without
|
||||||
<literal>_with_location</literal>, but accept additional parameters to explicitly set the source file
|
<literal>_with_location</literal>, but accept additional parameters to explicitly set the source file
|
||||||
name, function, and line. Those arguments must contain valid journal entries including the variable name,
|
name, function, and line. Those arguments must contain valid journal entries including the variable name,
|
||||||
e.g. <literal>CODE_FILE=src/foo.c</literal>, <literal>CODE_LINE=666</literal>,
|
e.g. <literal>CODE_FILE=src/foo.c</literal>, <literal>CODE_LINE=666</literal>,
|
||||||
|
@ -243,10 +243,10 @@ sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid(
|
||||||
<citerefentry project='man-pages'><refentrytitle>signal-safety</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
<citerefentry project='man-pages'><refentrytitle>signal-safety</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para><function>sd_journal_print</function>,
|
<para><function>sd_journal_print()</function>,
|
||||||
<function>sd_journal_printv</function>,
|
<function>sd_journal_printv()</function>,
|
||||||
<function>sd_journal_send</function>,
|
<function>sd_journal_send()</function>,
|
||||||
<function>sd_journal_perror</function>,
|
<function>sd_journal_perror()</function>,
|
||||||
and their counterparts with <literal>_with_location</literal>
|
and their counterparts with <literal>_with_location</literal>
|
||||||
are not async signal safe.</para>
|
are not async signal safe.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
|
@ -151,7 +151,7 @@
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Examples</title>
|
<title>Examples</title>
|
||||||
|
|
||||||
<para>Use the <function>SD_JOURNAL_FOREACH_UNIQUE</function> macro to iterate through all values a field
|
<para>Use the <function>SD_JOURNAL_FOREACH_UNIQUE()</function> macro to iterate through all values a field
|
||||||
of the journal can take (and which can be accessed on the given architecture and are not compressed with
|
of the journal can take (and which can be accessed on the given architecture and are not compressed with
|
||||||
an unsupported mechanism). The following example lists all unit names referenced in the journal:</para>
|
an unsupported mechanism). The following example lists all unit names referenced in the journal:</para>
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@
|
||||||
<function>sd_listen_fds()</function>, but optionally also returns
|
<function>sd_listen_fds()</function>, but optionally also returns
|
||||||
an array of strings with identification names for the passed file
|
an array of strings with identification names for the passed file
|
||||||
descriptors, if that is available and the
|
descriptors, if that is available and the
|
||||||
<parameter>names</parameter> parameter is non-NULL. This
|
<parameter>names</parameter> parameter is non-<constant>NULL</constant>. This
|
||||||
information is read from the <varname>$LISTEN_FDNAMES</varname>
|
information is read from the <varname>$LISTEN_FDNAMES</varname>
|
||||||
variable, which may contain a colon-separated list of names. For
|
variable, which may contain a colon-separated list of names. For
|
||||||
socket-activated services, these names may be configured with the
|
socket-activated services, these names may be configured with the
|
||||||
|
@ -113,11 +113,11 @@
|
||||||
<function>sd_is_socket()</function> and related calls is not
|
<function>sd_is_socket()</function> and related calls is not
|
||||||
sufficient. Note that the names used are not unique in any
|
sufficient. Note that the names used are not unique in any
|
||||||
way. The returned array of strings has as many entries as file
|
way. The returned array of strings has as many entries as file
|
||||||
descriptors have been received, plus a final NULL pointer
|
descriptors have been received, plus a final <constant>NULL</constant> pointer
|
||||||
terminating the array. The caller needs to free the array itself
|
terminating the array. The caller needs to free the array itself
|
||||||
and each of its elements with libc's <function>free()</function>
|
and each of its elements with libc's <function>free()</function>
|
||||||
call after use. If the <parameter>names</parameter> parameter is
|
call after use. If the <parameter>names</parameter> parameter is
|
||||||
NULL, the call is entirely equivalent to
|
<constant>NULL</constant>, the call is entirely equivalent to
|
||||||
<function>sd_listen_fds()</function>.</para>
|
<function>sd_listen_fds()</function>.</para>
|
||||||
|
|
||||||
<para>Under specific conditions, the following automatic file
|
<para>Under specific conditions, the following automatic file
|
||||||
|
|
|
@ -99,7 +99,7 @@
|
||||||
<para> On success, <function>sd_seat_get_active()</function> returns 0 or a positive integer. On success,
|
<para> On success, <function>sd_seat_get_active()</function> returns 0 or a positive integer. On success,
|
||||||
<function>sd_seat_get_sessions()</function> returns the number of entries in the session identifier
|
<function>sd_seat_get_sessions()</function> returns the number of entries in the session identifier
|
||||||
array. If the test succeeds,
|
array. If the test succeeds,
|
||||||
<function>sd_seat_can_tty</function> and <function>sd_seat_can_graphical</function> return a positive
|
<function>sd_seat_can_tty()</function> and <function>sd_seat_can_graphical()</function> return a positive
|
||||||
integer, if it fails 0. On failure, these calls return a negative errno-style error code.</para>
|
integer, if it fails 0. On failure, these calls return a negative errno-style error code.</para>
|
||||||
|
|
||||||
<refsect2>
|
<refsect2>
|
||||||
|
|
|
@ -161,9 +161,10 @@
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><constant>-EINVAL</constant></term>
|
<term><constant>-EINVAL</constant></term>
|
||||||
|
|
||||||
<listitem><para>An input parameter was invalid (out of range, or NULL, where that is not
|
<listitem><para>An input parameter was invalid (out of range, or <constant>NULL</constant>,
|
||||||
accepted). This is also returned if the passed user ID is <constant>0xFFFF</constant> or
|
where that is not accepted). This is also returned if the passed user ID is
|
||||||
<constant>0xFFFFFFFF</constant>, which are undefined on Linux.</para></listitem>
|
<constant>0xFFFF</constant> or <constant>0xFFFFFFFF</constant>, which are undefined on Linux.
|
||||||
|
</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
<function>sd_watchdog_enabled()</function> will also return with
|
<function>sd_watchdog_enabled()</function> will also return with
|
||||||
zero.</para>
|
zero.</para>
|
||||||
|
|
||||||
<para>If the <parameter>usec</parameter> parameter is non-NULL,
|
<para>If the <parameter>usec</parameter> parameter is non-<constant>NULL</constant>,
|
||||||
<function>sd_watchdog_enabled()</function> will write the timeout
|
<function>sd_watchdog_enabled()</function> will write the timeout
|
||||||
in µs for the watchdog logic to it.</para>
|
in µs for the watchdog logic to it.</para>
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@
|
||||||
cached key will have a timeout of 2.5min set, after which it
|
cached key will have a timeout of 2.5min set, after which it
|
||||||
will be purged from the kernel keyring. Note that it is
|
will be purged from the kernel keyring. Note that it is
|
||||||
possible to cache multiple passwords under the same keyname,
|
possible to cache multiple passwords under the same keyname,
|
||||||
in which case they will be stored as NUL-separated list of
|
in which case they will be stored as <constant>NUL</constant>-separated list of
|
||||||
passwords. Use
|
passwords. Use
|
||||||
<citerefentry project='die-net'><refentrytitle>keyctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
<citerefentry project='die-net'><refentrytitle>keyctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||||
to access the cached key via the kernel keyring
|
to access the cached key via the kernel keyring
|
||||||
|
|
|
@ -1918,9 +1918,9 @@ RestrictNamespaces=~cgroup net</programlisting>
|
||||||
but without the <constant>CAP_SYS_ADMIN</constant> capability (e.g. setting
|
but without the <constant>CAP_SYS_ADMIN</constant> capability (e.g. setting
|
||||||
<varname>User=nobody</varname>), <varname>NoNewPrivileges=yes</varname> is implied. This feature
|
<varname>User=nobody</varname>), <varname>NoNewPrivileges=yes</varname> is implied. This feature
|
||||||
makes use of the Secure Computing Mode 2 interfaces of the kernel ('seccomp filtering') and is useful
|
makes use of the Secure Computing Mode 2 interfaces of the kernel ('seccomp filtering') and is useful
|
||||||
for enforcing a minimal sandboxing environment. Note that the <function>execve</function>,
|
for enforcing a minimal sandboxing environment. Note that the <function>execve()</function>,
|
||||||
<function>exit</function>, <function>exit_group</function>, <function>getrlimit</function>,
|
<function>exit()</function>, <function>exit_group()</function>, <function>getrlimit()</function>,
|
||||||
<function>rt_sigreturn</function>, <function>sigreturn</function> system calls and the system calls
|
<function>rt_sigreturn()</function>, <function>sigreturn()</function> system calls and the system calls
|
||||||
for querying time and sleeping are implicitly allow-listed and do not need to be listed
|
for querying time and sleeping are implicitly allow-listed and do not need to be listed
|
||||||
explicitly. This option may be specified more than once, in which case the filter masks are
|
explicitly. This option may be specified more than once, in which case the filter masks are
|
||||||
merged. If the empty string is assigned, the filter is reset, all prior assignments will have no
|
merged. If the empty string is assigned, the filter is reset, all prior assignments will have no
|
||||||
|
@ -1932,7 +1932,7 @@ RestrictNamespaces=~cgroup net</programlisting>
|
||||||
<varname>SystemCallArchitectures=native</varname> or similar.</para>
|
<varname>SystemCallArchitectures=native</varname> or similar.</para>
|
||||||
|
|
||||||
<para>Note that strict system call filters may impact execution and error handling code paths of the service
|
<para>Note that strict system call filters may impact execution and error handling code paths of the service
|
||||||
invocation. Specifically, access to the <function>execve</function> system call is required for the execution
|
invocation. Specifically, access to the <function>execve()</function> system call is required for the execution
|
||||||
of the service binary — if it is blocked service invocation will necessarily fail. Also, if execution of the
|
of the service binary — if it is blocked service invocation will necessarily fail. Also, if execution of the
|
||||||
service binary fails for some reason (for example: missing service executable), the error handling logic might
|
service binary fails for some reason (for example: missing service executable), the error handling logic might
|
||||||
require access to an additional set of system calls in order to process and log this failure correctly. It
|
require access to an additional set of system calls in order to process and log this failure correctly. It
|
||||||
|
@ -1943,9 +1943,9 @@ RestrictNamespaces=~cgroup net</programlisting>
|
||||||
encountered will take precedence and will dictate the default action (termination or approval of a
|
encountered will take precedence and will dictate the default action (termination or approval of a
|
||||||
system call). Then the next occurrences of this option will add or delete the listed system calls
|
system call). Then the next occurrences of this option will add or delete the listed system calls
|
||||||
from the set of the filtered system calls, depending of its type and the default action. (For
|
from the set of the filtered system calls, depending of its type and the default action. (For
|
||||||
example, if you have started with an allow list rule for <function>read</function> and
|
example, if you have started with an allow list rule for <function>read()</function> and
|
||||||
<function>write</function>, and right after it add a deny list rule for <function>write</function>,
|
<function>write()</function>, and right after it add a deny list rule for <function>write()</function>,
|
||||||
then <function>write</function> will be removed from the set.)</para>
|
then <function>write()</function> will be removed from the set.)</para>
|
||||||
|
|
||||||
<para>As the number of possible system calls is large, predefined sets of system calls are provided. A set
|
<para>As the number of possible system calls is large, predefined sets of system calls are provided. A set
|
||||||
starts with <literal>@</literal> character, followed by name of the set.
|
starts with <literal>@</literal> character, followed by name of the set.
|
||||||
|
@ -2757,7 +2757,7 @@ StandardInputData=SWNrIHNpdHplIGRhIHVuJyBlc3NlIEtsb3BzLAp1ZmYgZWVtYWwga2xvcHAncy
|
||||||
user IDs, public key material and similar non-sensitive data. For everything else use
|
user IDs, public key material and similar non-sensitive data. For everything else use
|
||||||
<varname>LoadCredential=</varname>. In order to embed binary data into the credential data use
|
<varname>LoadCredential=</varname>. In order to embed binary data into the credential data use
|
||||||
C-style escaping (i.e. <literal>\n</literal> to embed a newline, or <literal>\x00</literal> to embed
|
C-style escaping (i.e. <literal>\n</literal> to embed a newline, or <literal>\x00</literal> to embed
|
||||||
a NUL byte).</para>
|
a <constant>NUL</constant> byte).</para>
|
||||||
|
|
||||||
<para>If a credential of the same ID is listed in both <varname>LoadCredential=</varname> and
|
<para>If a credential of the same ID is listed in both <varname>LoadCredential=</varname> and
|
||||||
<varname>SetCredential=</varname>, the latter will act as default if the former cannot be
|
<varname>SetCredential=</varname>, the latter will act as default if the former cannot be
|
||||||
|
|
|
@ -365,7 +365,7 @@
|
||||||
<para>Only applies to <literal>_TRANSPORT=stdout</literal> records: indicates that the log message
|
<para>Only applies to <literal>_TRANSPORT=stdout</literal> records: indicates that the log message
|
||||||
in the standard output/error stream was not terminated with a normal newline character
|
in the standard output/error stream was not terminated with a normal newline character
|
||||||
(<literal>\n</literal>, i.e. ASCII 10). Specifically, when set this field is one of
|
(<literal>\n</literal>, i.e. ASCII 10). Specifically, when set this field is one of
|
||||||
<option>nul</option> (in case the line was terminated by a NUL byte), <option>line-max</option> (in
|
<option>nul</option> (in case the line was terminated by a <constant>NUL</constant> byte), <option>line-max</option> (in
|
||||||
case the maximum log line length was reached, as configured with <varname>LineMax=</varname> in
|
case the maximum log line length was reached, as configured with <varname>LineMax=</varname> in
|
||||||
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>),
|
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>),
|
||||||
<option>eof</option> (if this was the last log record of a stream and the stream ended without a
|
<option>eof</option> (if this was the last log record of a stream and the stream ended without a
|
||||||
|
|
|
@ -1770,7 +1770,8 @@
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>AdActorSystem=</varname></term>
|
<term><varname>AdActorSystem=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Specifies the 802.3ad system mac address. This can not be either NULL or Multicast.</para>
|
<para>Specifies the 802.3ad system mac address. This can not be either
|
||||||
|
<constant>NULL</constant> or <constant>Multicast</constant>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
|
|
@ -1122,7 +1122,7 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
|
||||||
<para>An [IPv6AddressLabel] section accepts the following keys. Specify several [IPv6AddressLabel]
|
<para>An [IPv6AddressLabel] section accepts the following keys. Specify several [IPv6AddressLabel]
|
||||||
sections to configure several address labels. IPv6 address labels are used for address selection. See
|
sections to configure several address labels. IPv6 address labels are used for address selection. See
|
||||||
<ulink url="https://tools.ietf.org/html/rfc3484">RFC 3484</ulink>. Precedence is managed by userspace,
|
<ulink url="https://tools.ietf.org/html/rfc3484">RFC 3484</ulink>. Precedence is managed by userspace,
|
||||||
and only the label itself is stored in the kernel</para>
|
and only the label itself is stored in the kernel.</para>
|
||||||
|
|
||||||
<variablelist class='network-directives'>
|
<variablelist class='network-directives'>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
@ -1944,7 +1944,7 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
|
||||||
<ulink url="https://en.wikipedia.org/wiki/Escape_sequences_in_C#Table_of_escape_sequences">C-style
|
<ulink url="https://en.wikipedia.org/wiki/Escape_sequences_in_C#Table_of_escape_sequences">C-style
|
||||||
escapes</ulink>. This setting can be specified multiple times. If an empty string is specified,
|
escapes</ulink>. This setting can be specified multiple times. If an empty string is specified,
|
||||||
then all options specified earlier are cleared. Takes a whitespace-separated list of strings. Note that
|
then all options specified earlier are cleared. Takes a whitespace-separated list of strings. Note that
|
||||||
currently NUL bytes are not allowed.</para>
|
currently <constant>NUL</constant> bytes are not allowed.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
|
|
@ -266,10 +266,10 @@
|
||||||
<title>String Escaping for Inclusion in Unit Names</title>
|
<title>String Escaping for Inclusion in Unit Names</title>
|
||||||
|
|
||||||
<para>Sometimes it is useful to convert arbitrary strings into unit names. To facilitate this, a method of string
|
<para>Sometimes it is useful to convert arbitrary strings into unit names. To facilitate this, a method of string
|
||||||
escaping is used, in order to map strings containing arbitrary byte values (except NUL) into valid unit names and
|
escaping is used, in order to map strings containing arbitrary byte values (except <constant>NUL</constant>) into
|
||||||
their restricted character set. A common special case are unit names that reflect paths to objects in the file
|
valid unit names and their restricted character set. A common special case are unit names that reflect paths to
|
||||||
system hierarchy. Example: a device unit <filename>dev-sda.device</filename> refers to a device with the device
|
objects in the file system hierarchy. Example: a device unit <filename>dev-sda.device</filename> refers to a device
|
||||||
node <filename index="false">/dev/sda</filename> in the file system.</para>
|
with the device node <filename index="false">/dev/sda</filename> in the file system.</para>
|
||||||
|
|
||||||
<para>The escaping algorithm operates as follows: given a string, any <literal>/</literal> character is replaced by
|
<para>The escaping algorithm operates as follows: given a string, any <literal>/</literal> character is replaced by
|
||||||
<literal>-</literal>, and all other characters which are not ASCII alphanumerics or <literal>_</literal> are
|
<literal>-</literal>, and all other characters which are not ASCII alphanumerics or <literal>_</literal> are
|
||||||
|
|
|
@ -111,8 +111,8 @@
|
||||||
passed to <function>udev_device_has_tag()</function>, but the opposite might not be true, in case a tag is
|
passed to <function>udev_device_has_tag()</function>, but the opposite might not be true, in case a tag is
|
||||||
no longer configured by the rules applied to the most recent device even.</para>
|
no longer configured by the rules applied to the most recent device even.</para>
|
||||||
|
|
||||||
<para><function>udev_device_get_tags_list_entry()</function> returns a a
|
<para><function>udev_device_get_tags_list_entry()</function> returns a
|
||||||
<function>udev_list_entry</function> object, encapsulating a list of tags set for the specified
|
<structname>udev_list_entry</structname> object, encapsulating a list of tags set for the specified
|
||||||
device. Similar, <function>udev_device_get_current_tags_list_entry()</function> returns a list of tags
|
device. Similar, <function>udev_device_get_current_tags_list_entry()</function> returns a list of tags
|
||||||
set for the specified device as effect of the most recent device event seen (see above for details on the
|
set for the specified device as effect of the most recent device event seen (see above for details on the
|
||||||
difference).</para>
|
difference).</para>
|
||||||
|
|
|
@ -82,11 +82,11 @@
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Description</title>
|
<title>Description</title>
|
||||||
|
|
||||||
<para><function>udev_device_new_from_syspath</function>,
|
<para><function>udev_device_new_from_syspath()</function>,
|
||||||
<function>udev_device_new_from_devnum</function>,
|
<function>udev_device_new_from_devnum()</function>,
|
||||||
<function>udev_device_new_from_subsystem_sysname</function>,
|
<function>udev_device_new_from_subsystem_sysname()</function>,
|
||||||
<function>udev_device_new_from_device_id</function>, and
|
<function>udev_device_new_from_device_id()</function>, and
|
||||||
<function>udev_device_new_from_environment</function>
|
<function>udev_device_new_from_environment()</function>
|
||||||
allocate a new udev device object and returns a pointer to it. This
|
allocate a new udev device object and returns a pointer to it. This
|
||||||
object is opaque and must not be accessed by the caller via different
|
object is opaque and must not be accessed by the caller via different
|
||||||
means than functions provided by libudev. Initially, the reference count
|
means than functions provided by libudev. Initially, the reference count
|
||||||
|
@ -95,25 +95,25 @@
|
||||||
<function>udev_device_unref()</function>. Once the reference count hits 0,
|
<function>udev_device_unref()</function>. Once the reference count hits 0,
|
||||||
the device object is destroyed and freed.</para>
|
the device object is destroyed and freed.</para>
|
||||||
|
|
||||||
<para><function>udev_device_new_from_syspath</function>,
|
<para><function>udev_device_new_from_syspath()</function>,
|
||||||
<function>udev_device_new_from_devnum</function>,
|
<function>udev_device_new_from_devnum()</function>,
|
||||||
<function>udev_device_new_from_subsystem_sysname</function>, and
|
<function>udev_device_new_from_subsystem_sysname()</function>, and
|
||||||
<function>udev_device_new_from_device_id</function>
|
<function>udev_device_new_from_device_id()</function>
|
||||||
create the device object based on information found in
|
create the device object based on information found in
|
||||||
<filename>/sys/</filename>, annotated with properties from the udev-internal
|
<filename>/sys/</filename>, annotated with properties from the udev-internal
|
||||||
device database. A syspath is any subdirectory of <filename>/sys/</filename>,
|
device database. A syspath is any subdirectory of <filename>/sys/</filename>,
|
||||||
with the restriction that a subdirectory of <filename>/sys/devices</filename>
|
with the restriction that a subdirectory of <filename>/sys/devices</filename>
|
||||||
(or a symlink to one) represents a real device and as such must contain
|
(or a symlink to one) represents a real device and as such must contain
|
||||||
a <filename>uevent</filename> file. <function>udev_device_new_from_devnum</function>
|
a <filename>uevent</filename> file. <function>udev_device_new_from_devnum()</function>
|
||||||
takes a device type, which can be <constant>b</constant> for block devices or
|
takes a device type, which can be <constant>b</constant> for block devices or
|
||||||
<constant>c</constant> for character devices, as well as a devnum (see
|
<constant>c</constant> for character devices, as well as a devnum (see
|
||||||
<citerefentry project='man-pages'><refentrytitle>makedev</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
|
<citerefentry project='man-pages'><refentrytitle>makedev</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
|
||||||
<function>udev_device_new_from_subsystem_sysname</function> looks up devices based
|
<function>udev_device_new_from_subsystem_sysname()</function> looks up devices based
|
||||||
on the provided subsystem and sysname
|
on the provided subsystem and sysname
|
||||||
(see <citerefentry><refentrytitle>udev_device_get_subsystem</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
(see <citerefentry><refentrytitle>udev_device_get_subsystem</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
and
|
and
|
||||||
<citerefentry><refentrytitle>udev_device_get_sysname</refentrytitle><manvolnum>3</manvolnum></citerefentry>)
|
<citerefentry><refentrytitle>udev_device_get_sysname</refentrytitle><manvolnum>3</manvolnum></citerefentry>)
|
||||||
and <function>udev_device_new_from_device_id</function> looks up devices based on the provided
|
and <function>udev_device_new_from_device_id()</function> looks up devices based on the provided
|
||||||
device ID, which is a special string in one of the following four forms:
|
device ID, which is a special string in one of the following four forms:
|
||||||
<table>
|
<table>
|
||||||
<title>Device ID strings</title>
|
<title>Device ID strings</title>
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
</table>
|
</table>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para><function>udev_device_new_from_environment</function>
|
<para><function>udev_device_new_from_environment()</function>
|
||||||
creates a device from the current environment (see
|
creates a device from the current environment (see
|
||||||
<citerefentry project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry>).
|
<citerefentry project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry>).
|
||||||
Each key-value pair is interpreted in the same way as if it was
|
Each key-value pair is interpreted in the same way as if it was
|
||||||
|
|
|
@ -106,15 +106,15 @@
|
||||||
<title>Return Value</title>
|
<title>Return Value</title>
|
||||||
|
|
||||||
<para>On success,
|
<para>On success,
|
||||||
<function>udev_enumerate_add_match_subsystem</function>,
|
<function>udev_enumerate_add_match_subsystem()</function>,
|
||||||
<function>udev_enumerate_add_nomatch_subsystem</function>,
|
<function>udev_enumerate_add_nomatch_subsystem()</function>,
|
||||||
<function>udev_enumerate_add_match_sysattr</function>,
|
<function>udev_enumerate_add_match_sysattr()</function>,
|
||||||
<function>udev_enumerate_add_nomatch_sysattr</function>,
|
<function>udev_enumerate_add_nomatch_sysattr()</function>,
|
||||||
<function>udev_enumerate_add_match_property</function>,
|
<function>udev_enumerate_add_match_property()</function>,
|
||||||
<function>udev_enumerate_add_match_sysname</function>,
|
<function>udev_enumerate_add_match_sysname()</function>,
|
||||||
<function>udev_enumerate_add_match_tag</function>,
|
<function>udev_enumerate_add_match_tag()</function>,
|
||||||
<function>udev_enumerate_add_match_parent</function> and
|
<function>udev_enumerate_add_match_parent()</function> and
|
||||||
<function>udev_enumerate_add_match_is_initialized</function>
|
<function>udev_enumerate_add_match_is_initialized()</function>
|
||||||
return an integer greater than, or equal to,
|
return an integer greater than, or equal to,
|
||||||
<constant>0</constant>.</para>
|
<constant>0</constant>.</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
15
meson.build
15
meson.build
|
@ -126,6 +126,7 @@ if rootlibdir == ''
|
||||||
rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
|
rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
install_sysconfdir = get_option('install-sysconfdir')
|
||||||
# Dirs of external packages
|
# Dirs of external packages
|
||||||
pkgconfigdatadir = get_option('pkgconfigdatadir') == '' ? join_paths(datadir, 'pkgconfig') : get_option('pkgconfigdatadir')
|
pkgconfigdatadir = get_option('pkgconfigdatadir') == '' ? join_paths(datadir, 'pkgconfig') : get_option('pkgconfigdatadir')
|
||||||
pkgconfiglibdir = get_option('pkgconfiglibdir') == '' ? join_paths(libdir, 'pkgconfig') : get_option('pkgconfiglibdir')
|
pkgconfiglibdir = get_option('pkgconfiglibdir') == '' ? join_paths(libdir, 'pkgconfig') : get_option('pkgconfiglibdir')
|
||||||
|
@ -1418,7 +1419,7 @@ if have == 'auto'
|
||||||
else
|
else
|
||||||
have = have == 'true'
|
have = have == 'true'
|
||||||
if have and get_option('mode') != 'developer'
|
if have and get_option('mode') != 'developer'
|
||||||
error('oomd is not available in release mode (yet)')
|
warning('oomd is not ready for release mode (yet)')
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
conf.set10('ENABLE_OOMD', have)
|
conf.set10('ENABLE_OOMD', have)
|
||||||
|
@ -2776,8 +2777,10 @@ if conf.get('ENABLE_BINFMT') == 1
|
||||||
|
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(binfmtdir))
|
mkdir_p.format(binfmtdir))
|
||||||
|
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(join_paths(sysconfdir, 'binfmt.d')))
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if conf.get('ENABLE_REPART') == 1
|
if conf.get('ENABLE_REPART') == 1
|
||||||
|
@ -2891,8 +2894,10 @@ executable(
|
||||||
install : true,
|
install : true,
|
||||||
install_dir : rootlibexecdir)
|
install_dir : rootlibexecdir)
|
||||||
|
|
||||||
install_data('src/sleep/sleep.conf',
|
if install_sysconfdir
|
||||||
|
install_data('src/sleep/sleep.conf',
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
|
endif
|
||||||
|
|
||||||
public_programs += executable(
|
public_programs += executable(
|
||||||
'systemd-sysctl',
|
'systemd-sysctl',
|
||||||
|
@ -3243,8 +3248,10 @@ if conf.get('HAVE_KMOD') == 1
|
||||||
|
|
||||||
meson.add_install_script('sh', '-c',
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(modulesloaddir))
|
mkdir_p.format(modulesloaddir))
|
||||||
|
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(join_paths(sysconfdir, 'modules-load.d')))
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
public_programs += executable(
|
public_programs += executable(
|
||||||
|
@ -3489,8 +3496,10 @@ subdir('docs/var-log')
|
||||||
install_subdir('factory/etc',
|
install_subdir('factory/etc',
|
||||||
install_dir : factorydir)
|
install_dir : factorydir)
|
||||||
|
|
||||||
install_data('xorg/50-systemd-user.sh',
|
if install_sysconfdir
|
||||||
|
install_data('xorg/50-systemd-user.sh',
|
||||||
install_dir : xinitrcdir)
|
install_dir : xinitrcdir)
|
||||||
|
endif
|
||||||
install_data('modprobe.d/systemd.conf',
|
install_data('modprobe.d/systemd.conf',
|
||||||
install_dir : modprobedir)
|
install_dir : modprobedir)
|
||||||
install_data('LICENSE.GPL2',
|
install_data('LICENSE.GPL2',
|
||||||
|
|
|
@ -180,6 +180,8 @@ option('pamconfdir', type : 'string',
|
||||||
description : 'directory for PAM configuration ["no" disables]')
|
description : 'directory for PAM configuration ["no" disables]')
|
||||||
option('docdir', type : 'string',
|
option('docdir', type : 'string',
|
||||||
description : 'documentation directory')
|
description : 'documentation directory')
|
||||||
|
option('install-sysconfdir', type : 'boolean', value : true,
|
||||||
|
description : 'install configuration files to $sysconfdir')
|
||||||
|
|
||||||
option('fallback-hostname', type : 'string', value : 'localhost',
|
option('fallback-hostname', type : 'string', value : 'localhost',
|
||||||
description : 'the hostname used if none configured')
|
description : 'the hostname used if none configured')
|
||||||
|
|
|
@ -10,8 +10,10 @@ if conf.get('ENABLE_NETWORKD') == 1
|
||||||
'80-wifi-station.network.example',
|
'80-wifi-station.network.example',
|
||||||
install_dir : networkdir)
|
install_dir : networkdir)
|
||||||
|
|
||||||
|
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(join_paths(sysconfdir, 'systemd/network')))
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
install_data('99-default.link',
|
install_data('99-default.link',
|
||||||
|
|
|
@ -19,7 +19,7 @@ bool ratelimit_below(RateLimit *r) {
|
||||||
ts = now(CLOCK_MONOTONIC);
|
ts = now(CLOCK_MONOTONIC);
|
||||||
|
|
||||||
if (r->begin <= 0 ||
|
if (r->begin <= 0 ||
|
||||||
r->begin + r->interval < ts) {
|
ts - r->begin > r->interval) {
|
||||||
r->begin = ts;
|
r->begin = ts;
|
||||||
|
|
||||||
/* Reset counter */
|
/* Reset counter */
|
||||||
|
|
|
@ -192,12 +192,14 @@ in_files = [['macros.systemd', rpmmacrosdir],
|
||||||
foreach item : in_files
|
foreach item : in_files
|
||||||
file = item[0]
|
file = item[0]
|
||||||
dir = item[1]
|
dir = item[1]
|
||||||
|
if install_sysconfdir or dir != pkgsysconfdir
|
||||||
configure_file(
|
configure_file(
|
||||||
input : file + '.in',
|
input : file + '.in',
|
||||||
output : file,
|
output : file,
|
||||||
configuration : substs,
|
configuration : substs,
|
||||||
install_dir : dir == 'no' ? '' : dir)
|
install_dir : dir == 'no' ? '' : dir)
|
||||||
|
endif
|
||||||
|
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
install_data('org.freedesktop.systemd1.conf',
|
install_data('org.freedesktop.systemd1.conf',
|
||||||
|
@ -217,6 +219,8 @@ meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
|
||||||
meson.add_install_script('sh', '-c', mkdir_p.format(systemgeneratordir))
|
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))
|
||||||
|
|
||||||
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'system')))
|
if install_sysconfdir
|
||||||
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'user')))
|
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'system')))
|
||||||
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(sysconfdir, 'xdg/systemd')))
|
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'user')))
|
||||||
|
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(sysconfdir, 'xdg/systemd')))
|
||||||
|
endif
|
||||||
|
|
|
@ -13,7 +13,7 @@ endif
|
||||||
|
|
||||||
coredumpctl_sources = files('coredumpctl.c')
|
coredumpctl_sources = files('coredumpctl.c')
|
||||||
|
|
||||||
if conf.get('ENABLE_COREDUMP') == 1
|
if conf.get('ENABLE_COREDUMP') == 1 and install_sysconfdir
|
||||||
install_data('coredump.conf',
|
install_data('coredump.conf',
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -107,8 +107,10 @@ if conf.get('ENABLE_HOMED') == 1
|
||||||
install_data('org.freedesktop.home1.policy',
|
install_data('org.freedesktop.home1.policy',
|
||||||
install_dir : polkitpolicydir)
|
install_dir : polkitpolicydir)
|
||||||
|
|
||||||
|
if install_sysconfdir
|
||||||
install_data('homed.conf',
|
install_data('homed.conf',
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : sysconfdir)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
tests += [
|
tests += [
|
||||||
|
|
|
@ -48,8 +48,10 @@ if conf.get('ENABLE_REMOTE') ==1 and conf.get('HAVE_LIBCURL') == 1
|
||||||
input : 'journal-upload.conf.in',
|
input : 'journal-upload.conf.in',
|
||||||
output : 'journal-upload.conf',
|
output : 'journal-upload.conf',
|
||||||
configuration : substs)
|
configuration : substs)
|
||||||
|
if install_sysconfdir
|
||||||
install_data(journal_upload_conf,
|
install_data(journal_upload_conf,
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
|
if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
|
||||||
|
@ -57,8 +59,10 @@ if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
|
||||||
input : 'journal-remote.conf.in',
|
input : 'journal-remote.conf.in',
|
||||||
output : 'journal-remote.conf',
|
output : 'journal-remote.conf',
|
||||||
configuration : substs)
|
configuration : substs)
|
||||||
|
if install_sysconfdir
|
||||||
install_data(journal_remote_conf,
|
install_data(journal_remote_conf,
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
|
endif
|
||||||
|
|
||||||
install_data('browse.html',
|
install_data('browse.html',
|
||||||
install_dir : join_paths(pkgdatadir, 'gatewayd'))
|
install_dir : join_paths(pkgdatadir, 'gatewayd'))
|
||||||
|
|
|
@ -107,8 +107,10 @@ journalctl_sources = files('''
|
||||||
pcre2-dlopen.h
|
pcre2-dlopen.h
|
||||||
'''.split())
|
'''.split())
|
||||||
|
|
||||||
install_data('journald.conf',
|
if install_sysconfdir
|
||||||
|
install_data('journald.conf',
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
|
endif
|
||||||
|
|
||||||
if get_option('create-log-dirs')
|
if get_option('create-log-dirs')
|
||||||
meson.add_install_script(
|
meson.add_install_script(
|
||||||
|
|
|
@ -13,6 +13,9 @@ if want_kernel_install
|
||||||
install_mode : 'rwxr-xr-x',
|
install_mode : 'rwxr-xr-x',
|
||||||
install_dir : kernelinstalldir)
|
install_dir : kernelinstalldir)
|
||||||
|
|
||||||
|
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(join_paths(sysconfdir, 'kernel/install.d')))
|
||||||
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -74,8 +74,10 @@ if conf.get('ENABLE_LOGIND') == 1
|
||||||
input : 'logind.conf.in',
|
input : 'logind.conf.in',
|
||||||
output : 'logind.conf',
|
output : 'logind.conf',
|
||||||
configuration : substs)
|
configuration : substs)
|
||||||
|
if install_sysconfdir
|
||||||
install_data(logind_conf,
|
install_data(logind_conf,
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
|
endif
|
||||||
|
|
||||||
install_data('org.freedesktop.login1.conf',
|
install_data('org.freedesktop.login1.conf',
|
||||||
install_dir : dbuspolicydir)
|
install_dir : dbuspolicydir)
|
||||||
|
|
|
@ -236,8 +236,10 @@ if conf.get('ENABLE_NETWORKD') == 1
|
||||||
install_dir : polkitpkladir)
|
install_dir : polkitpkladir)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if install_sysconfdir
|
||||||
install_data('networkd.conf',
|
install_data('networkd.conf',
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
|
endif
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[['src/network/fuzz-netdev-parser.c',
|
[['src/network/fuzz-netdev-parser.c',
|
||||||
|
|
|
@ -29,6 +29,8 @@ if conf.get('ENABLE_OOMD') == 1
|
||||||
install_data('org.freedesktop.oom1.service',
|
install_data('org.freedesktop.oom1.service',
|
||||||
install_dir : dbussystemservicedir)
|
install_dir : dbussystemservicedir)
|
||||||
|
|
||||||
|
if install_sysconfdir
|
||||||
install_data('oomd.conf',
|
install_data('oomd.conf',
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : sysconfdir)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -4,7 +4,7 @@ systemd_pstore_sources = files('''
|
||||||
pstore.c
|
pstore.c
|
||||||
'''.split())
|
'''.split())
|
||||||
|
|
||||||
if conf.get('ENABLE_PSTORE') == 1
|
if conf.get('ENABLE_PSTORE') == 1 and install_sysconfdir
|
||||||
install_data('pstore.conf',
|
install_data('pstore.conf',
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -169,8 +169,10 @@ if conf.get('ENABLE_RESOLVE') == 1
|
||||||
input : 'resolved.conf.in',
|
input : 'resolved.conf.in',
|
||||||
output : 'resolved.conf',
|
output : 'resolved.conf',
|
||||||
configuration : substs)
|
configuration : substs)
|
||||||
|
if install_sysconfdir
|
||||||
install_data(resolved_conf,
|
install_data(resolved_conf,
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
|
endif
|
||||||
|
|
||||||
install_data('resolv.conf',
|
install_data('resolv.conf',
|
||||||
install_dir : rootlibexecdir)
|
install_dir : rootlibexecdir)
|
||||||
|
|
|
@ -26,8 +26,10 @@ if conf.get('ENABLE_TIMESYNCD') == 1
|
||||||
input : 'timesyncd.conf.in',
|
input : 'timesyncd.conf.in',
|
||||||
output : 'timesyncd.conf',
|
output : 'timesyncd.conf',
|
||||||
configuration : substs)
|
configuration : substs)
|
||||||
|
if install_sysconfdir
|
||||||
install_data(timesyncd_conf,
|
install_data(timesyncd_conf,
|
||||||
install_dir : pkgsysconfdir)
|
install_dir : pkgsysconfdir)
|
||||||
|
endif
|
||||||
install_data('org.freedesktop.timesync1.conf',
|
install_data('org.freedesktop.timesync1.conf',
|
||||||
install_dir : dbuspolicydir)
|
install_dir : dbuspolicydir)
|
||||||
install_data('org.freedesktop.timesync1.service',
|
install_data('org.freedesktop.timesync1.service',
|
||||||
|
|
|
@ -185,8 +185,10 @@ foreach prog : [['ata_id/ata_id.c'],
|
||||||
install_dir : udevlibexecdir)
|
install_dir : udevlibexecdir)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
install_data('udev.conf',
|
if install_sysconfdir
|
||||||
|
install_data('udev.conf',
|
||||||
install_dir : join_paths(sysconfdir, 'udev'))
|
install_dir : join_paths(sysconfdir, 'udev'))
|
||||||
|
endif
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
input : 'udev.pc.in',
|
input : 'udev.pc.in',
|
||||||
|
@ -194,8 +196,10 @@ configure_file(
|
||||||
configuration : substs,
|
configuration : substs,
|
||||||
install_dir : pkgconfigdatadir == 'no' ? '' : pkgconfigdatadir)
|
install_dir : pkgconfigdatadir == 'no' ? '' : pkgconfigdatadir)
|
||||||
|
|
||||||
meson.add_install_script('sh', '-c',
|
if install_sysconfdir
|
||||||
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'udev/rules.d')))
|
mkdir_p.format(join_paths(sysconfdir, 'udev/rules.d')))
|
||||||
|
endif
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[['src/udev/net/fuzz-link-parser.c',
|
[['src/udev/net/fuzz-link-parser.c',
|
||||||
|
|
|
@ -26,5 +26,7 @@ foreach file : in_files
|
||||||
install_dir : sysctldir)
|
install_dir : sysctldir)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
meson.add_install_script('sh', '-c',
|
if install_sysconfdir
|
||||||
|
meson.add_install_script('sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
|
mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
|
||||||
|
endif
|
||||||
|
|
|
@ -55,7 +55,7 @@ foreach file : m4_files
|
||||||
endif
|
endif
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
if enable_tmpfiles
|
if enable_tmpfiles and install_sysconfdir
|
||||||
meson.add_install_script(
|
meson.add_install_script(
|
||||||
'sh', '-c',
|
'sh', '-c',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'tmpfiles.d')))
|
mkdir_p.format(join_paths(sysconfdir, 'tmpfiles.d')))
|
||||||
|
|
|
@ -326,9 +326,11 @@ install_data('user-.slice.d/10-defaults.conf',
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
|
|
||||||
meson.add_install_script(meson_make_symlink,
|
if install_sysconfdir
|
||||||
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(pkgsysconfdir, 'user'),
|
join_paths(pkgsysconfdir, 'user'),
|
||||||
join_paths(sysconfdir, 'xdg/systemd/user'))
|
join_paths(sysconfdir, 'xdg/systemd/user'))
|
||||||
|
endif
|
||||||
meson.add_install_script(meson_make_symlink,
|
meson.add_install_script(meson_make_symlink,
|
||||||
join_paths(dbussystemservicedir, 'org.freedesktop.systemd1.service'),
|
join_paths(dbussystemservicedir, 'org.freedesktop.systemd1.service'),
|
||||||
join_paths(dbussessionservicedir, 'org.freedesktop.systemd1.service'))
|
join_paths(dbussessionservicedir, 'org.freedesktop.systemd1.service'))
|
||||||
|
|
Loading…
Reference in New Issue