Compare commits

...

12 Commits

Author SHA1 Message Date
Etienne Doms e2357b1c8a ratelimit: fix integer overflow
If StartLimitIntervalSec is huge, or more specifically, set to "infinity", we need to take care about overflows.
2020-11-12 14:35:06 +01:00
Yu Watanabe 7a5b649fc0
Merge pull request #17583 from systemd/oomd-and-user-slices
Make oomd easier to enable and user slices to NEWS
2020-11-12 22:12:31 +09:00
Zbigniew Jędrzejewski-Szmek 9101cd1a23 NEWS: describe the new user slices 2020-11-12 13:32:39 +01:00
Zbigniew Jędrzejewski-Szmek 08c1864f0d meson: allow oomd to be enabled even in release mode
A distro (Fedora in particular) may want to enable oomd in a unstable
branch for testing, even though the package as a whole is compiled in release
mode. Let's emit a warning but otherwise allow this.
2020-11-12 13:25:40 +01:00
perry_yuan 617acbdaa4 hwdb: 60-keyboard:: add Dell Privacy Micmute Hotkey
Dell new Privacy feature provide new hardware level privacy
protect for users,it needs to map the scan code to F20 micmute

Signed-off-by: Perry Yuan <perry_yuan@dell.com>
2020-11-12 12:01:46 +01:00
Zbigniew Jędrzejewski-Szmek 141fdc8ada Merge pull request #17561 from yuwata/man 2020-11-12 11:29:03 +01:00
Jörg Thalheim d7aa78c32f meson: add option to skip installing to $sysconfdir
This is useful for development where overwriting files out side
the configured prefix will affect the host as well as stateless
systems such as NixOS that don't let packages install to /etc but handle
configuration on their own.

Alternative to https://github.com/systemd/systemd/pull/17501

tested with:

$ mkdir inst build && cd build
$ meson \
  -Dcreate-log-dirs=false \
  -Dsysvrcnd-path=$(realpath ../inst)/etc/rc.d \
  -Dsysvinit-path=$(realpath ../inst)/etc/init.d \
  -Drootprefix=$(realpath ../inst) \
  -Dinstall-sysconfdir=false \
  --prefix=$(realpath ../inst) ..
$ ninja install
2020-11-12 11:21:46 +01:00
Yu Watanabe 6b44ad0bf8 man: set constant tag to NUL or NULL 2020-11-12 17:10:36 +09:00
Yu Watanabe 725d9713a9 man: append parentheses for function name 2020-11-12 17:10:32 +09:00
Yu Watanabe af7ce3faf8 man: fix tag 2020-11-12 17:07:13 +09:00
Yu Watanabe c660668ed9 man: mention that sd_bus_call() may return a negative errno mapped from D-Bus error reply
Closes #17556.
2020-11-12 17:06:33 +09:00
Yu Watanabe 23243adf69 man: add missing period 2020-11-12 16:33:14 +09:00
66 changed files with 259 additions and 189 deletions

19
NEWS
View File

@ -530,13 +530,15 @@ CHANGES WITH 247 in spe:
contention for selected parts of the unit hierarchy using the PSI
information reported by the kernel, and kills processes when memory
or swap pressure is above configured limits. This service is only
enabled in developer mode (see below) and should be considered a
preview in this release. Behaviour details and option names are
subject to change without the usual backwards-compatibility promises.
enabled by default in developer mode (see below) and should be
considered a preview in this release. Behaviour details and option
names are subject to change without the usual backwards-compatibility
promises.
* A new helper oomctl has been added to introspect systemd-oomd state.
If also is only available in developer mode and should be considered
a preview without the usual backwards-compatibility promises.
If also is only enabled by default in developer mode and should be
considered a preview without the usual backwards-compatibility
promises.
* New meson option -Dcompat-mutable-uid-boundaries= has been added. If
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
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
Ross, Amitanand Chikorde, Andrew Hangsleben, Anita Zhang, Ansgar
Burchardt, Arian van Putten, Aurelien Jarno, Axel Rasmussen, bauen1,

View File

@ -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*:*
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
###########################################################

View File

@ -42,12 +42,14 @@ if conf.get('ENABLE_HWDB') == 1
hwdb_files_test,
install_dir : udevhwdbdir)
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'udev/hwdb.d')))
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'udev/hwdb.d')))
meson.add_install_script('sh', '-c',
'test -n "$DESTDIR" || @0@/systemd-hwdb update'
.format(rootbindir))
meson.add_install_script('sh', '-c',
'test -n "$DESTDIR" || @0@/systemd-hwdb update'
.format(rootbindir))
endif
if want_tests != 'false'
parse_hwdb_py = find_program('parse_hwdb.py')

View File

@ -433,7 +433,7 @@
<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
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
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

View File

@ -244,7 +244,7 @@
<title>Session limits</title>
<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,
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

View File

@ -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>
<para><function>SD_ID128_NULL</function> may be used to refer to the 128bit ID consisting of only NUL
bytes.</para>
<para><constant>SD_ID128_NULL</constant> may be used to refer to the 128bit ID consisting of only
<constant>NUL</constant> bytes.</para>
<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>
@ -107,9 +107,8 @@ int main(int argc, char **argv) {
puts("Match for coredumps: %s", SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP));
}</programlisting>
<para><function>SD_ID128_FORMAT_STR()</function> and
<function>SD_ID128_FORMAT_VAL()</function> may be used to format a
128-bit ID in a
<para><constant>SD_ID128_FORMAT_STR</constant> and <function>SD_ID128_FORMAT_VAL()</function> may
be used to format a 128-bit ID in a
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
format string, as shown in the following example:</para>
@ -120,8 +119,8 @@ int main(int argc, char **argv) {
return 0;
}</programlisting>
<para><function>SD_ID128_UUID_FORMAT_STR()</function> is similar to
<function>SD_ID128_FORMAT_STR()</function> but includes separating hyphens to conform to the
<para><constant>SD_ID128_UUID_FORMAT_STR</constant> is similar to
<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>".
</para>
@ -137,7 +136,8 @@ int main(int argc, char **argv) {
return 0;
}</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[]) {
assert(sd_id128_is_null(SD_ID128_NULL));

View File

@ -620,8 +620,8 @@
<varlistentry>
<term><constant>-EPROTOTYPE</constant></term>
<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
<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
object path, which is not allowed.</para></listitem>
</varlistentry>

View File

@ -104,6 +104,12 @@
<refsect2 id='errors'>
<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>
<variablelist>
@ -180,7 +186,8 @@
<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_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>
</refsect1>

View File

@ -37,7 +37,7 @@
<refsect1>
<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
<constant>SD_BUS_TYPE</constant> constants.</para>
</refsect1>

View File

@ -72,7 +72,7 @@
is provided that combines them into one.</para>
<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
<citerefentry><refentrytitle>sd_bus_default</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_default_user</refentrytitle><manvolnum>3</manvolnum></citerefentry>,

View File

@ -439,14 +439,14 @@
<para>All functions that take a <parameter>const
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
modified by the caller.</para>
<para>All functions that take a <parameter>char***</parameter>
parameter will store the answer there as an address of an array
of strings. Each individual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
of strings. Each individual string is <constant>NUL</constant>-terminated, and the
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
modified by the caller.</para>
</refsect1>

View File

@ -160,10 +160,10 @@
but additional domain-specific errors may be defined by
applications. The <structfield>message</structfield> field usually
contains a human-readable string describing the details, but might
be NULL. An unset <structname>sd_bus_error</structname> structure
should have both fields initialized to NULL. Set an error
be <constant>NULL</constant>. An unset <structname>sd_bus_error</structname> structure
should have both fields initialized to <constant>NULL</constant>. Set an error
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
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
may be defined with
<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
<varname>errno</varname>-style error. If
<parameter>name</parameter> is <constant>NULL</constant>, it is
assumed that no error occurred, and 0 is returned. This means that
this function may be conveniently used in a
<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
message strings, in which case an
<constant>SD_BUS_ERROR_NO_MEMORY</constant> error might be set
@ -291,10 +291,10 @@
will not be deallocated, and must be <citerefentry
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>d
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
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>

View File

@ -65,7 +65,7 @@
<title>Return Value</title>
<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>
<title>Errors</title>

View File

@ -54,20 +54,20 @@
<title>Description</title>
<para>The functions
<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_memfd()</function> and
<function>sd_bus_message_append_string_iovec()</function> can be
used to append a single string (item of type <literal>s</literal>)
to message <parameter>m</parameter>.</para>
<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
satisfy the same constraints as described for the
<literal>s</literal> type in
<citerefentry><refentrytitle>sd_bus_message_append_basic</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<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
satisfy the same constraints as described for the
<literal>s</literal> type in
@ -84,9 +84,9 @@
after this call.</para>
<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
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
the message, it returns a pointer to the destination area to
the caller in pointer <parameter>p</parameter>. Space for the string

View File

@ -37,7 +37,7 @@
<refsect1>
<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
<parameter>m</parameter>. The parameter <parameter>l</parameter>
shall point to a <constant>NULL</constant>-terminated array of pointers

View File

@ -143,8 +143,8 @@
<para>Message <parameter>call</parameter> is not a method call
message.</para>
<para>The error <parameter>error</parameter> parameter to
<function>sd_bus_message_new_method_error</function> is not set, see
<para>The error <parameter>e</parameter> parameter to
<function>sd_bus_message_new_method_error()</function> is not set, see
<citerefentry><refentrytitle>sd_bus_error_is_set</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
</para>
</listitem>

View File

@ -118,7 +118,7 @@
will be stored there. Each <literal>%</literal> character will
only match the current label. It will never match across labels.
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>
</refsect1>
@ -130,7 +130,7 @@
argument. On success, <function>sd_bus_path_decode()</function>
returns a positive value if the prefixed matched, or 0 if it
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
number is returned by either function. The returned strings must
be

View File

@ -56,7 +56,7 @@
<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
<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>
<para>If a the bus object is connected to an

View File

@ -127,8 +127,8 @@
<para>Message <parameter>call</parameter> is not attached to a bus.</para>
<para>The error parameter <parameter>error</parameter> to
<function>sd_bus_reply_method_error</function> is not set, see
<para>The error parameter <parameter>e</parameter> to
<function>sd_bus_reply_method_error()</function> is not set, see
<citerefentry><refentrytitle>sd_bus_error_is_set</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
</para>
</listitem>

View File

@ -112,7 +112,7 @@
<citerefentry><refentrytitle>sd_bus_open</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
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.
If <parameter>argv</parameter> is <constant>NULL</constant>, the given executable is spawned
without any extra arguments.</para>

View File

@ -157,7 +157,7 @@
<para>See the
<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>
</refsect1>

View File

@ -101,11 +101,11 @@
<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_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
invoked whenever the last reference is dropped, regardless whether the reference is dropped explicitly via
<function>sd_bus_track_remove_name()</function> or implicitly because the peer disconnected from the bus. The final
argument <parameter>userdata</parameter> may be used to attach a generic user data pointer to the object. This
pointer is passed to the handler callback when it is invoked.</para>
when they disconnect from the bus. If non-<constant>NULL</constant> the <parameter>handler</parameter> may specify
a function that is invoked whenever the last reference is dropped, regardless whether the reference is dropped
explicitly via <function>sd_bus_track_remove_name()</function> or implicitly because the peer disconnected from the
bus. The final argument <parameter>userdata</parameter> may be used to attach a generic user data pointer to the
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
will not be destroyed until <function>sd_bus_track_unref()</function> has been called as many times plus once

View File

@ -51,7 +51,7 @@
<para>On success, <function>sd_event_source_get_event()</function>
returns the associated event loop object. On failure, it returns
NULL.</para>
<constant>NULL</constant>.</para>
</refsect1>
<xi:include href="libsystemd-pkgconfig.xml" />

View File

@ -52,7 +52,7 @@
when the event source was created. The event source will be disabled
if the callback function returns a negative error code. The callback
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>
<para>Event source objects have no preparation callback associated

View File

@ -70,7 +70,7 @@
<function>sd_event_source_set_userdata()</function> and
<function>sd_event_source_get_userdata()</function> return the
previously set user data pointer. On failure, they return
NULL.</para>
<constant>NULL</constant>.</para>
</refsect1>
<xi:include href="libsystemd-pkgconfig.xml" />

View File

@ -56,7 +56,7 @@
<para><function>sd_get_seats()</function> may be used to determine
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
is stored at the address.
The returned array and all strings it references need to be freed

View File

@ -84,7 +84,7 @@
<citerefentry><refentrytitle>hwdb</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
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
performed and iteration simply stops on error. See the example below.</para>
</refsect1>

View File

@ -50,8 +50,9 @@
<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
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
function will validate the passed ID string, but not actually return it in parsed form.</para>
37-character string with a 128-bit ID formatted as RFC UUID. If <parameter>ret</parameter> is passed as
<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>
type see
@ -63,9 +64,8 @@
easier to use a format string for
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
This is easily done using the
<function>SD_ID128_FORMAT_STR</function> and
<function>SD_ID128_FORMAT_VAL()</function> macros. For more
information see
<constant>SD_ID128_FORMAT_STR</constant> and <function>SD_ID128_FORMAT_VAL()</function> macros. For
more information see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
</refsect1>
@ -74,7 +74,7 @@
<para><function>sd_id128_to_string()</function> always succeeds
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
errno-style error code.</para>
</refsect1>

View File

@ -91,7 +91,7 @@
<refsect1>
<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>
<programlisting>#include &lt;stdio.h&gt;

View File

@ -245,7 +245,7 @@
<function>sd_journal_get_data()</function>.</para>
<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
entry:</para>

View File

@ -57,7 +57,7 @@
<title>Return value</title>
<para>Both <function>sd_journal_has_runtime_files()</function>
and <function>sd_journal_has_persistent_files()</function> return -EINVAL
if their argument is NULL.
if their argument is <constant>NULL</constant>.
</para>
</refsect1>

View File

@ -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>.
</para>
<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_sendv_with_location</function>, and
<function>sd_journal_perror_with_location</function> are similar to their counterparts without
<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_sendv_with_location()</function>, and
<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
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>,
@ -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>.
</para>
<para><function>sd_journal_print</function>,
<function>sd_journal_printv</function>,
<function>sd_journal_send</function>,
<function>sd_journal_perror</function>,
<para><function>sd_journal_print()</function>,
<function>sd_journal_printv()</function>,
<function>sd_journal_send()</function>,
<function>sd_journal_perror()</function>,
and their counterparts with <literal>_with_location</literal>
are not async signal safe.</para>
</refsect1>

View File

@ -151,7 +151,7 @@
<refsect1>
<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
an unsupported mechanism). The following example lists all unit names referenced in the journal:</para>

View File

@ -94,7 +94,7 @@
<function>sd_listen_fds()</function>, but optionally also returns
an array of strings with identification names for the passed file
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>
variable, which may contain a colon-separated list of names. For
socket-activated services, these names may be configured with the
@ -113,11 +113,11 @@
<function>sd_is_socket()</function> and related calls is not
sufficient. Note that the names used are not unique in any
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
and each of its elements with libc's <function>free()</function>
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>
<para>Under specific conditions, the following automatic file

View File

@ -99,7 +99,7 @@
<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
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>
<refsect2>

View File

@ -161,9 +161,10 @@
<varlistentry>
<term><constant>-EINVAL</constant></term>
<listitem><para>An input parameter was invalid (out of range, or NULL, where that is not
accepted). This is also returned if the passed user ID is <constant>0xFFFF</constant> or
<constant>0xFFFFFFFF</constant>, which are undefined on Linux.</para></listitem>
<listitem><para>An input parameter was invalid (out of range, or <constant>NULL</constant>,
where that is not accepted). This is also returned if the passed user ID is
<constant>0xFFFF</constant> or <constant>0xFFFFFFFF</constant>, which are undefined on Linux.
</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -63,7 +63,7 @@
<function>sd_watchdog_enabled()</function> will also return with
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
in µs for the watchdog logic to it.</para>

View File

@ -131,7 +131,7 @@
cached key will have a timeout of 2.5min set, after which it
will be purged from the kernel keyring. Note that it is
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
<citerefentry project='die-net'><refentrytitle>keyctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to access the cached key via the kernel keyring

View File

@ -1918,9 +1918,9 @@ RestrictNamespaces=~cgroup net</programlisting>
but without the <constant>CAP_SYS_ADMIN</constant> capability (e.g. setting
<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
for enforcing a minimal sandboxing environment. Note that the <function>execve</function>,
<function>exit</function>, <function>exit_group</function>, <function>getrlimit</function>,
<function>rt_sigreturn</function>, <function>sigreturn</function> system calls and the system calls
for enforcing a minimal sandboxing environment. Note that the <function>execve()</function>,
<function>exit()</function>, <function>exit_group()</function>, <function>getrlimit()</function>,
<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
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
@ -1932,7 +1932,7 @@ RestrictNamespaces=~cgroup net</programlisting>
<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
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
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
@ -1943,9 +1943,9 @@ RestrictNamespaces=~cgroup net</programlisting>
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
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
<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>
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>,
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
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
<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
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
<varname>SetCredential=</varname>, the latter will act as default if the former cannot be

View File

@ -365,7 +365,7 @@
<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
(<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
<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

View File

@ -1770,7 +1770,8 @@
<varlistentry>
<term><varname>AdActorSystem=</varname></term>
<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>
</varlistentry>

View File

@ -1122,7 +1122,7 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
<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
<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'>
<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
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
currently NUL bytes are not allowed.</para>
currently <constant>NUL</constant> bytes are not allowed.</para>
</listitem>
</varlistentry>

View File

@ -266,10 +266,10 @@
<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
escaping is used, in order to map strings containing arbitrary byte values (except NUL) into valid unit names and
their restricted character set. A common special case are unit names that reflect paths to objects in the file
system hierarchy. Example: a device unit <filename>dev-sda.device</filename> refers to a device with the device
node <filename index="false">/dev/sda</filename> in the file system.</para>
escaping is used, in order to map strings containing arbitrary byte values (except <constant>NUL</constant>) into
valid unit names and their restricted character set. A common special case are unit names that reflect paths to
objects in the file system hierarchy. Example: a device unit <filename>dev-sda.device</filename> refers to a device
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
<literal>-</literal>, and all other characters which are not ASCII alphanumerics or <literal>_</literal> are

View File

@ -111,8 +111,8 @@
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>
<para><function>udev_device_get_tags_list_entry()</function> returns a a
<function>udev_list_entry</function> object, encapsulating a list of tags set for the specified
<para><function>udev_device_get_tags_list_entry()</function> returns a
<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
set for the specified device as effect of the most recent device event seen (see above for details on the
difference).</para>

View File

@ -82,11 +82,11 @@
<refsect1>
<title>Description</title>
<para><function>udev_device_new_from_syspath</function>,
<function>udev_device_new_from_devnum</function>,
<function>udev_device_new_from_subsystem_sysname</function>,
<function>udev_device_new_from_device_id</function>, and
<function>udev_device_new_from_environment</function>
<para><function>udev_device_new_from_syspath()</function>,
<function>udev_device_new_from_devnum()</function>,
<function>udev_device_new_from_subsystem_sysname()</function>,
<function>udev_device_new_from_device_id()</function>, and
<function>udev_device_new_from_environment()</function>
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
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,
the device object is destroyed and freed.</para>
<para><function>udev_device_new_from_syspath</function>,
<function>udev_device_new_from_devnum</function>,
<function>udev_device_new_from_subsystem_sysname</function>, and
<function>udev_device_new_from_device_id</function>
<para><function>udev_device_new_from_syspath()</function>,
<function>udev_device_new_from_devnum()</function>,
<function>udev_device_new_from_subsystem_sysname()</function>, and
<function>udev_device_new_from_device_id()</function>
create the device object based on information found in
<filename>/sys/</filename>, annotated with properties from the udev-internal
device database. A syspath is any subdirectory of <filename>/sys/</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
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
<constant>c</constant> for character devices, as well as a devnum (see
<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
(see <citerefentry><refentrytitle>udev_device_get_subsystem</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<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:
<table>
<title>Device ID strings</title>
@ -142,7 +142,7 @@
</table>
</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
<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

View File

@ -106,15 +106,15 @@
<title>Return Value</title>
<para>On success,
<function>udev_enumerate_add_match_subsystem</function>,
<function>udev_enumerate_add_nomatch_subsystem</function>,
<function>udev_enumerate_add_match_sysattr</function>,
<function>udev_enumerate_add_nomatch_sysattr</function>,
<function>udev_enumerate_add_match_property</function>,
<function>udev_enumerate_add_match_sysname</function>,
<function>udev_enumerate_add_match_tag</function>,
<function>udev_enumerate_add_match_parent</function> and
<function>udev_enumerate_add_match_is_initialized</function>
<function>udev_enumerate_add_match_subsystem()</function>,
<function>udev_enumerate_add_nomatch_subsystem()</function>,
<function>udev_enumerate_add_match_sysattr()</function>,
<function>udev_enumerate_add_nomatch_sysattr()</function>,
<function>udev_enumerate_add_match_property()</function>,
<function>udev_enumerate_add_match_sysname()</function>,
<function>udev_enumerate_add_match_tag()</function>,
<function>udev_enumerate_add_match_parent()</function> and
<function>udev_enumerate_add_match_is_initialized()</function>
return an integer greater than, or equal to,
<constant>0</constant>.</para>
</refsect1>

View File

@ -126,6 +126,7 @@ if rootlibdir == ''
rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
endif
install_sysconfdir = get_option('install-sysconfdir')
# Dirs of external packages
pkgconfigdatadir = get_option('pkgconfigdatadir') == '' ? join_paths(datadir, 'pkgconfig') : get_option('pkgconfigdatadir')
pkgconfiglibdir = get_option('pkgconfiglibdir') == '' ? join_paths(libdir, 'pkgconfig') : get_option('pkgconfiglibdir')
@ -1418,7 +1419,7 @@ if have == 'auto'
else
have = have == 'true'
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
conf.set10('ENABLE_OOMD', have)
@ -2776,8 +2777,10 @@ if conf.get('ENABLE_BINFMT') == 1
meson.add_install_script('sh', '-c',
mkdir_p.format(binfmtdir))
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'binfmt.d')))
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'binfmt.d')))
endif
endif
if conf.get('ENABLE_REPART') == 1
@ -2891,8 +2894,10 @@ executable(
install : true,
install_dir : rootlibexecdir)
install_data('src/sleep/sleep.conf',
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data('src/sleep/sleep.conf',
install_dir : pkgsysconfdir)
endif
public_programs += executable(
'systemd-sysctl',
@ -3243,8 +3248,10 @@ if conf.get('HAVE_KMOD') == 1
meson.add_install_script('sh', '-c',
mkdir_p.format(modulesloaddir))
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'modules-load.d')))
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'modules-load.d')))
endif
endif
public_programs += executable(
@ -3489,8 +3496,10 @@ subdir('docs/var-log')
install_subdir('factory/etc',
install_dir : factorydir)
install_data('xorg/50-systemd-user.sh',
install_dir : xinitrcdir)
if install_sysconfdir
install_data('xorg/50-systemd-user.sh',
install_dir : xinitrcdir)
endif
install_data('modprobe.d/systemd.conf',
install_dir : modprobedir)
install_data('LICENSE.GPL2',

View File

@ -180,6 +180,8 @@ option('pamconfdir', type : 'string',
description : 'directory for PAM configuration ["no" disables]')
option('docdir', type : 'string',
description : 'documentation directory')
option('install-sysconfdir', type : 'boolean', value : true,
description : 'install configuration files to $sysconfdir')
option('fallback-hostname', type : 'string', value : 'localhost',
description : 'the hostname used if none configured')

View File

@ -10,8 +10,10 @@ if conf.get('ENABLE_NETWORKD') == 1
'80-wifi-station.network.example',
install_dir : networkdir)
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'systemd/network')))
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'systemd/network')))
endif
endif
install_data('99-default.link',

View File

@ -19,7 +19,7 @@ bool ratelimit_below(RateLimit *r) {
ts = now(CLOCK_MONOTONIC);
if (r->begin <= 0 ||
r->begin + r->interval < ts) {
ts - r->begin > r->interval) {
r->begin = ts;
/* Reset counter */

View File

@ -192,12 +192,14 @@ in_files = [['macros.systemd', rpmmacrosdir],
foreach item : in_files
file = item[0]
dir = item[1]
if install_sysconfdir or dir != pkgsysconfdir
configure_file(
input : file + '.in',
output : file,
configuration : substs,
install_dir : dir == 'no' ? '' : dir)
endif
configure_file(
input : file + '.in',
output : file,
configuration : substs,
install_dir : dir == 'no' ? '' : dir)
endforeach
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(usergeneratordir))
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'system')))
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')))
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(join_paths(pkgsysconfdir, 'user')))
meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(sysconfdir, 'xdg/systemd')))
endif

View File

@ -13,7 +13,7 @@ endif
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_dir : pkgsysconfdir)
endif

View File

@ -107,8 +107,10 @@ if conf.get('ENABLE_HOMED') == 1
install_data('org.freedesktop.home1.policy',
install_dir : polkitpolicydir)
install_data('homed.conf',
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data('homed.conf',
install_dir : sysconfdir)
endif
endif
tests += [

View File

@ -48,8 +48,10 @@ if conf.get('ENABLE_REMOTE') ==1 and conf.get('HAVE_LIBCURL') == 1
input : 'journal-upload.conf.in',
output : 'journal-upload.conf',
configuration : substs)
install_data(journal_upload_conf,
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data(journal_upload_conf,
install_dir : pkgsysconfdir)
endif
endif
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',
output : 'journal-remote.conf',
configuration : substs)
install_data(journal_remote_conf,
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data(journal_remote_conf,
install_dir : pkgsysconfdir)
endif
install_data('browse.html',
install_dir : join_paths(pkgdatadir, 'gatewayd'))

View File

@ -107,8 +107,10 @@ journalctl_sources = files('''
pcre2-dlopen.h
'''.split())
install_data('journald.conf',
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data('journald.conf',
install_dir : pkgsysconfdir)
endif
if get_option('create-log-dirs')
meson.add_install_script(

View File

@ -3,16 +3,19 @@
want_kernel_install = get_option('kernel-install')
if want_kernel_install
install_data('kernel-install',
install_mode : 'rwxr-xr-x',
install_dir : bindir)
install_data('kernel-install',
install_mode : 'rwxr-xr-x',
install_dir : bindir)
install_data('00-entry-directory.install',
'50-depmod.install',
'90-loaderentry.install',
install_mode : 'rwxr-xr-x',
install_dir : kernelinstalldir)
install_data('00-entry-directory.install',
'50-depmod.install',
'90-loaderentry.install',
install_mode : 'rwxr-xr-x',
install_dir : kernelinstalldir)
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
endif
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
endif

View File

@ -74,8 +74,10 @@ if conf.get('ENABLE_LOGIND') == 1
input : 'logind.conf.in',
output : 'logind.conf',
configuration : substs)
install_data(logind_conf,
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data(logind_conf,
install_dir : pkgsysconfdir)
endif
install_data('org.freedesktop.login1.conf',
install_dir : dbuspolicydir)

View File

@ -236,8 +236,10 @@ if conf.get('ENABLE_NETWORKD') == 1
install_dir : polkitpkladir)
endif
install_data('networkd.conf',
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data('networkd.conf',
install_dir : pkgsysconfdir)
endif
fuzzers += [
[['src/network/fuzz-netdev-parser.c',

View File

@ -29,6 +29,8 @@ if conf.get('ENABLE_OOMD') == 1
install_data('org.freedesktop.oom1.service',
install_dir : dbussystemservicedir)
install_data('oomd.conf',
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data('oomd.conf',
install_dir : sysconfdir)
endif
endif

View File

@ -4,7 +4,7 @@ systemd_pstore_sources = files('''
pstore.c
'''.split())
if conf.get('ENABLE_PSTORE') == 1
if conf.get('ENABLE_PSTORE') == 1 and install_sysconfdir
install_data('pstore.conf',
install_dir : pkgsysconfdir)
endif

View File

@ -169,8 +169,10 @@ if conf.get('ENABLE_RESOLVE') == 1
input : 'resolved.conf.in',
output : 'resolved.conf',
configuration : substs)
install_data(resolved_conf,
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data(resolved_conf,
install_dir : pkgsysconfdir)
endif
install_data('resolv.conf',
install_dir : rootlibexecdir)

View File

@ -26,8 +26,10 @@ if conf.get('ENABLE_TIMESYNCD') == 1
input : 'timesyncd.conf.in',
output : 'timesyncd.conf',
configuration : substs)
install_data(timesyncd_conf,
install_dir : pkgsysconfdir)
if install_sysconfdir
install_data(timesyncd_conf,
install_dir : pkgsysconfdir)
endif
install_data('org.freedesktop.timesync1.conf',
install_dir : dbuspolicydir)
install_data('org.freedesktop.timesync1.service',

View File

@ -185,8 +185,10 @@ foreach prog : [['ata_id/ata_id.c'],
install_dir : udevlibexecdir)
endforeach
install_data('udev.conf',
install_dir : join_paths(sysconfdir, 'udev'))
if install_sysconfdir
install_data('udev.conf',
install_dir : join_paths(sysconfdir, 'udev'))
endif
configure_file(
input : 'udev.pc.in',
@ -194,8 +196,10 @@ configure_file(
configuration : substs,
install_dir : pkgconfigdatadir == 'no' ? '' : pkgconfigdatadir)
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'udev/rules.d')))
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'udev/rules.d')))
endif
fuzzers += [
[['src/udev/net/fuzz-link-parser.c',

View File

@ -26,5 +26,7 @@ foreach file : in_files
install_dir : sysctldir)
endforeach
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
endif

View File

@ -55,7 +55,7 @@ foreach file : m4_files
endif
endforeach
if enable_tmpfiles
if enable_tmpfiles and install_sysconfdir
meson.add_install_script(
'sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'tmpfiles.d')))

View File

@ -326,9 +326,11 @@ install_data('user-.slice.d/10-defaults.conf',
############################################################
meson.add_install_script(meson_make_symlink,
join_paths(pkgsysconfdir, 'user'),
join_paths(sysconfdir, 'xdg/systemd/user'))
if install_sysconfdir
meson.add_install_script(meson_make_symlink,
join_paths(pkgsysconfdir, 'user'),
join_paths(sysconfdir, 'xdg/systemd/user'))
endif
meson.add_install_script(meson_make_symlink,
join_paths(dbussystemservicedir, 'org.freedesktop.systemd1.service'),
join_paths(dbussessionservicedir, 'org.freedesktop.systemd1.service'))