1
0
mirror of https://github.com/systemd/systemd synced 2025-10-03 18:54:45 +02:00

Compare commits

...

23 Commits

Author SHA1 Message Date
Lennart Poettering
97e535c724 udev: when btrfs.ko is not available consider btrfs filesystems not ready
Let's add a special tweak to the btrfs builtin: if /dev/btrfs-control is
not there, let's consider all btrfs file systems as SYSTEMD_READY=0.
This is useful in initrds, where btrfs.ko might be missing. After the
initrd → host transition we can then retigger the device and undo the
SYSTEMD_READY=0 marking.
2021-02-26 14:27:49 +01:00
Lennart Poettering
16e6a7010f
Merge pull request #18804 from poettering/epoll-wait2
sd-event: make use of kernel 5.11 epoll_pwait2() if available
2021-02-26 14:27:27 +01:00
Luca Boccassi
499c8514ea
Merge pull request #18806 from weblate/weblate-systemd-master
Translations update from Weblate
2021-02-26 10:20:37 +00:00
Anita Zhang
7c382f0b7d json: rename json_dispatch_{integer,unsigned} -> json_dispatch_{intmax,uintmax}
Prompted by https://bugzilla.redhat.com/show_bug.cgi?id=1930875 in which
I had previously used json_dispatch_unsigned and passed a return variable of
type unsigned when json_dispatch_unsigned writes a uintmax_t.
2021-02-26 10:14:03 +00:00
Lennart Poettering
fa1ca5f409
Merge pull request #18800 from poettering/network-target-more-doc
some improvements regarding network.target docs
2021-02-26 10:59:23 +01:00
Lennart Poettering
42d7904284
Merge pull request #18801 from keszybz/small-documentation-updates
Small documentation updates
2021-02-26 09:36:11 +01:00
Lennart Poettering
85f3bd23da man: say explicitly that network.target should give the guarantee that synthetic network interfaces have been created
Prompted by: #18793
2021-02-26 09:31:11 +01:00
Lennart Poettering
26ac511a7e man: be more explicit about network-online.target and consuming services of other hosts
Let's make things a tiny bit more explicit.
2021-02-26 09:29:52 +01:00
Lennart Poettering
8b596d51a9 man: fix indentation of example
The man page otherwise looks very weirdly aligned.
2021-02-26 09:29:52 +01:00
Lennart Poettering
1d5484aa67 update TODO 2021-02-26 09:22:12 +01:00
Lennart Poettering
798445ab84 sd-event: make use of epoll_pwait2() for greater time accuracy 2021-02-26 09:22:09 +01:00
Lennart Poettering
420297c9e1 missing_syscall: add epoll_pwait2() wrapper 2021-02-26 09:21:51 +01:00
Zbigniew Jędrzejewski-Szmek
34507fa9e9 man: remove details of ManagedOOMPreference implementation 2021-02-25 21:14:04 +01:00
Zbigniew Jędrzejewski-Szmek
a8136f1bc0 man: advertise shared drop-ins more
systemd.unit(5) is a wall of text. And this particular feature can be very useful
in the context of resource control. Let's avertise this cool feature a bit more.

Fixes #17900.
2021-02-25 21:14:04 +01:00
Zbigniew Jędrzejewski-Szmek
4fc8a70d9f man: fix two issues in udev(7)
Fixed #18050.
2021-02-25 21:14:04 +01:00
Zbigniew Jędrzejewski-Szmek
9f0840e421 man: say that hostname must can be a fqdn or not
Fixes #18426
2021-02-25 21:14:04 +01:00
Zbigniew Jędrzejewski-Szmek
403db47069 timesync: rename variable to match config name
PollIntervalMinSec and PollIntervalMaxSec use the same pattern, but
RootDistanceMaxSec had switched orderd in the code.
2021-02-25 21:14:04 +01:00
Zbigniew Jędrzejewski-Szmek
c91ebcdbd1 man: explain settings in timesyncd.conf(5)
Fixes #18508.
2021-02-25 21:14:04 +01:00
Zbigniew Jędrzejewski-Szmek
d5630d2795 man: drop misplaced spaces and parenthesization 2021-02-25 21:14:04 +01:00
Zbigniew Jędrzejewski-Szmek
326152af4d man: use markup more in description of ManagedOOMPreference=
Follow-up for d8a4d64bc37ad21381f584b6c25792995584c7a2.
2021-02-25 21:14:04 +01:00
Gustavo Costa
b8700c621a Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (189 of 189 strings)

Co-authored-by: Gustavo Costa <xfgusta@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/pt_BR/
Translation: systemd/main
2021-02-25 19:41:25 +01:00
Slimane Selyan Amiri
a8304ca1b2 Added translation using Weblate (Kabyle)
Co-authored-by: Slimane Selyan Amiri <selyan.kab@gmail.com>
2021-02-25 19:41:25 +01:00
Zbigniew Jędrzejewski-Szmek
beca342dba man: fix grammaro 2021-02-25 14:55:17 +01:00
27 changed files with 1177 additions and 140 deletions

3
TODO
View File

@ -39,9 +39,6 @@ Features:
time-based policy, so that the verification key can remain on host and ve
validated via TPM.
* sd-event: port to new kernel API epoll_wait2() (new in 5.11), to get more
accurate wait timeouts
* sd-boot: define a drop-in dir in the ESP that may contain X.509
certificates. If the firmware is detected to be in setup mode, automatically
enroll them as PK/KEK/db, turn off setup mode and proceed. Optionally,

View File

@ -1,6 +1,9 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="hostnamectl" conditional='ENABLE_HOSTNAMED'
@ -76,9 +79,13 @@
still following the validity rules of the specific name. This simplification of the hostname string is not done
if only the transient and/or static hostnames are set, and the pretty hostname is left untouched.</para>
<para>Pass the empty string <literal></literal> as the
hostname to reset the selected hostnames to their default
(usually <literal>localhost</literal>).</para></listitem>
<para>The static and transient hostnames must each be either a single DNS label (a string composed of
7-bit ASCII lower-case characters and no spaces or dots, limited to the format allowed for DNS domain
name labels), or a sequence of such labels separated by single dots that forms a valid DNS FQDN. The
hostname must be at most 64 characters, which is a Linux limitation (DNS allows longer names).</para>
<para>Pass the empty string <literal></literal> as the hostname to reset the selected hostnames to
their default (usually <literal>&FALLBACK_HOSTNAME;</literal>).</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -325,7 +325,8 @@
present and no other configuration source specifies the hostname. Must be either a single DNS label
(a string composed of 7-bit ASCII lower-case characters and no spaces or dots, limited to the format
allowed for DNS domain name labels), or a sequence of such labels separated by single dots that forms
a valid DNS FQDN. The total length must be at most 64 characters.</para>
a valid DNS FQDN. The hostname must be at most 64 characters, which is a Linux limitation (DNS allows
longer names).</para>
<para>See
<citerefentry><refentrytitle>org.freedesktop.hostname1</refentrytitle><manvolnum>5</manvolnum></citerefentry>

View File

@ -74,7 +74,7 @@
should be read. See the table below for a complete list of allowed arguments and their types. Note that,
if the basic type is a pointer (e.g., <type>const char *</type> in the case of a string), the argument is
a pointer to a pointer, and also the pointer value that is written is only borrowed and the contents must
be copied if they are to be used after the end of the messages lifetime. If the type is
be copied if they are to be used after the end of the message's lifetime. If the type is
<literal>h</literal> (UNIX file descriptor), the descriptor is not duplicated by this call and the
returned descriptor remains in possession of the message object, and needs to be duplicated by the caller
in order to keep an open reference to it after the message object is freed.</para>

View File

@ -58,12 +58,12 @@
<parameter>type</parameter> is <constant>'s'</constant>, the object passed in <parameter>p</parameter>
should have type <type>const char **</type>. Note that, if the basic type is a pointer (e.g.,
<type>const char *</type> in the case of a string), the pointer is only borrowed and the contents must
be copied if they are to be used after the end of the messages lifetime. Similarly, during the lifetime
of such a pointer, the message must not be modified. If <parameter>type</parameter> is
be copied if they are to be used after the end of the message's lifetime. Similarly, during the
lifetime of such a pointer, the message must not be modified. If <parameter>type</parameter> is
<constant>'h'</constant> (UNIX file descriptor), the descriptor is not duplicated by this call and the
returned descriptor remains in possession of the message object, and needs to be duplicated by the caller
in order to keep an open reference to it after the message object is freed (for example by calling
<literal>fcntl(fd, FD_DUPFD_CLOEXEC, 3)</literal>). See the table below for a complete list of
returned descriptor remains in possession of the message object, and needs to be duplicated by the
caller in order to keep an open reference to it after the message object is freed (for example by
calling <literal>fcntl(fd, FD_DUPFD_CLOEXEC, 3)</literal>). See the table below for a complete list of
allowed types.
</para>

View File

@ -181,13 +181,13 @@
<entry>A virtual tunnel interface like vti/vti6 but with several advantages.</entry></row>
<row><entry><varname>ifb</varname></entry>
<entry> The Intermediate Functional Block (ifb) pseudo network interface acts as a QoS concentrator for multiple different sources of traffic.</entry></row>
<entry>The Intermediate Functional Block (ifb) pseudo network interface acts as a QoS concentrator for multiple different sources of traffic.</entry></row>
<row><entry><varname>bareudp</varname></entry>
<entry> Bare UDP tunnels provide a generic L3 encapsulation support for tunnelling different L3 protocols like MPLS, IP etc. inside of an UDP tunnel.</entry></row>
<entry>Bare UDP tunnels provide a generic L3 encapsulation support for tunnelling different L3 protocols like MPLS, IP etc. inside of an UDP tunnel.</entry></row>
<row><entry><varname>batadv</varname></entry>
<entry> (<ulink url="https://www.open-mesh.org/projects/open-mesh/wiki">B.A.T.M.A.N. Advanced</ulink>) is a routing protocol for multi-hop mobile ad hoc networks which operates on layer2.</entry></row>
<entry><ulink url="https://www.open-mesh.org/projects/open-mesh/wiki">B.A.T.M.A.N. Advanced</ulink> is a routing protocol for multi-hop mobile ad-hoc networks which operates on layer 2.</entry></row>
</tbody>
</tgroup>
</table>

View File

@ -63,6 +63,25 @@
url="https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/">New
Control Group Interfaces</ulink> for an introduction on how to make
use of resource control APIs from programs.</para>
<refsect2>
<title>Setting resource controls for a group of related units</title>
<para>As described in
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, the
settings listed here may be set through the main file of a unit and drop-in snippets in
<filename index="false">*.d/</filename> directories. The list of directories searched for drop-ins
includes names formed by repeatedly truncating the unit name after all dashes. This is particularly
convenient to set resource limits for a group of units with similar names.</para>
<para>For example, every user gets their own slice
<filename>user-<replaceable>nnn</replaceable>.slice</filename>. Drop-ins with local configuration that
affect user 1000 may be placed in
<filename index="false">/etc/systemd/system/user-1000.slice</filename>,
<filename index="false">/etc/systemd/system/user-1000.slice.d/*.conf</filename>, but also
<filename index="false">/etc/systemd/system/user-.slice.d/*.conf</filename>. This last directory
applies to all user slices.</para>
</refsect2>
</refsect1>
<refsect1>
@ -918,31 +937,30 @@ DeviceAllow=/dev/loop-control
<term><varname>ManagedOOMPreference=none|avoid|omit</varname></term>
<listitem>
<para>Allows deprioritizing or omitting this unit's cgroup as a candidate when <command>systemd-oomd</command>
needs to act. Requires support for extended attributes (see
<para>Allows deprioritizing or omitting this unit's cgroup as a candidate when
<command>systemd-oomd</command> needs to act. Requires support for extended attributes (see
<citerefentry project='man-pages'><refentrytitle>xattr</refentrytitle><manvolnum>7</manvolnum></citerefentry>)
in order to use <option>avoid</option> or <option>omit</option>. Additionally, <command>systemd-oomd</command>
will ignore these extended attributes if the unit's cgroup is not owned by the root user.</para>
in order to use <option>avoid</option> or <option>omit</option>. Additionally,
<command>systemd-oomd</command> will ignore these extended attributes if the unit's cgroup is not
owned by the root user.</para>
<para>If this property is set to <option>avoid</option>, the service manager will set the
"user.oomd_avoid" extended attribute on the unit's cgroup to "1". If <command>systemd-oomd</command> sees
this extended attribute on a cgroup set to "1" when choosing between candidates, it will only select the
cgroup with "user.oomd_avoid" if there are no other viable candidates.</para>
<para>If this property is set to <option>avoid</option>, the service manager will convey this to
<command>systemd-oomd</command>, which will only select this cgroup if there are no other viable
candidates.</para>
<para>If this property is set to <option>omit</option>, the service manager will set the "user.oomd_omit"
extended attribute on the unit's cgroup to "1". If <command>systemd-oomd</command> sees the this extended
attribute on the cgroup set to "1", it will ignore the cgroup as a candidate and will not perform any actions
on the cgroup.</para>
<para>If this property is set to <option>omit</option>, the service manager will convey this to
<command>systemd-oomd</command>, which will ignore this cgroup as a candidate and will not perform
any actions on it.</para>
<para>It is recommended to use <option>avoid</option> and <option>omit</option> sparingly as it can adversely
affect <command>systemd-oomd</command>'s kill behavior. Also note that these extended attributes are not
applied recursively to cgroups under this unit's cgroup.</para>
<para>It is recommended to use <option>avoid</option> and <option>omit</option> sparingly, as it
can adversely affect <command>systemd-oomd</command>'s kill behavior. Also note that these extended
attributes are not applied recursively to cgroups under this unit's cgroup.</para>
<para>Defaults to <option>none</option> which means no extended attributes will be set and systemd-oomd will
sort this unit's cgroup as defined in
<para>Defaults to <option>none</option> which means <command>systemd-oomd</command> will rank this
unit's cgroup as defined in
<citerefentry><refentrytitle>systemd-oomd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
and <citerefentry><refentrytitle>oomd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> (if this
unit's cgroup becomes a candidate).</para>
and <citerefentry><refentrytitle>oomd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
</listitem>
</varlistentry>
</variablelist>

View File

@ -489,11 +489,10 @@
Services After the Network is up</ulink> for more
information.</para>
<para>All mount units for remote network file systems
automatically pull in this unit, and order themselves after
it. Note that networking daemons that simply provide
functionality to other hosts generally do not need to pull
this in.</para>
<para>All mount units for remote network file systems automatically pull in this unit, and order
themselves after it. Note that networking daemons that simply <emphasis>provide</emphasis>
functionality to other hosts (as opposed to <emphasis>consume</emphasis> functionality of other
hosts) generally do not need to pull this in.</para>
<para>systemd automatically adds dependencies of type <varname>Wants=</varname> and
<varname>After=</varname> for this target unit to all SysV init script service units
@ -949,20 +948,29 @@
<varlistentry>
<term><filename>network.target</filename></term>
<listitem>
<para>This unit is supposed to indicate when network
functionality is available, but it is only very weakly
defined what that is supposed to mean, with one exception:
at shutdown, a unit that is ordered after
<filename>network.target</filename> will be stopped before
the network — to whatever level it might be set up then —
is shut down. It is hence useful when writing service files
that require network access on shutdown, which should order
themselves after this target, but not pull it in. Also see
<ulink url="https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
Services After the Network is up</ulink> for more
information. Also see
<filename>network-online.target</filename> described
above.</para>
<para>This unit is supposed to indicate when network functionality is available, but it is only
very weakly defined what that is supposed to mean. However, the following should apply at
minimum:</para>
<itemizedlist>
<listitem><para>At start-up, any configured synthetic network devices (i.e. not physical ones
that require hardware to show up and be probed, but virtual ones like bridge devices and
similar which are created programmatically) that do not depend on any underlying hardware
should be allocated by the time this target is reached. It is not necessary for these
interfaces to also have completed IP level configuration by the time
<filename>network.target</filename> is reached.</para></listitem>
<listitem><para>At shutdown, a unit that is ordered after <filename>network.target</filename>
will be stopped before the network — to whatever level it might be set up by then — is shut
down. It is hence useful when writing service files that require network access on shutdown,
which should order themselves after this target, but not pull it in. Also see <ulink
url="https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running Services After
the Network is up</ulink> for more information.</para></listitem>
</itemizedlist>
<para>It must emphasized that at start-up there's no guarantee that hardware-based devices have
shown up by the time this target is reached, or even acquired complete IP configuration. For that
purpose use <filename>network-online.target</filename> as described above.</para>
</listitem>
</varlistentry>
<varlistentry>
@ -1247,18 +1255,18 @@
<para><literal>gnome-session.target</literal> pulls in Nautilus as top-level service:</para>
<programlisting>[Unit]
Description=User systemd services for GNOME graphical session
Wants=nautilus.service
BindsTo=graphical-session.target</programlisting>
Description=User systemd services for GNOME graphical session
Wants=nautilus.service
BindsTo=graphical-session.target</programlisting>
<para><literal>nautilus.service</literal> gets stopped when the session stops:</para>
<programlisting>[Unit]
Description=Render the desktop icons with Nautilus
PartOf=graphical-session.target
Description=Render the desktop icons with Nautilus
PartOf=graphical-session.target
[Service]
</programlisting>
[Service]
</programlisting>
</example>
</listitem>
</varlistentry>

View File

@ -190,8 +190,8 @@
headers. For instantiated units, this logic will first look for the instance <literal>.d/</literal> subdirectory
(e.g. <literal>foo@bar.service.d/</literal>) and read its <literal>.conf</literal> files, followed by the template
<literal>.d/</literal> subdirectory (e.g. <literal>foo@.service.d/</literal>) and the <literal>.conf</literal>
files there. Moreover for units names containing dashes (<literal>-</literal>), the set of directories generated by
truncating the unit name after all dashes is searched too. Specifically, for a unit name
files there. Moreover for unit names containing dashes (<literal>-</literal>), the set of directories generated by
repeatedly truncating the unit name after all dashes is searched too. Specifically, for a unit name
<filename>foo-bar-baz.service</filename> not only the regular drop-in directory
<filename>foo-bar-baz.service.d/</filename> is searched but also both <filename>foo-bar-.service.d/</filename> and
<filename>foo-.service.d/</filename>. This is useful for defining common drop-ins for a set of related units, whose

View File

@ -47,54 +47,59 @@
<varlistentry>
<term><varname>NTP=</varname></term>
<listitem><para>A space-separated list of NTP server host
names or IP addresses. During runtime this list is combined
with any per-interface NTP servers acquired from
<listitem><para>A space-separated list of NTP server host names or IP addresses. During runtime this
list is combined with any per-interface NTP servers acquired from
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
systemd-timesyncd will contact all configured system or
per-interface servers in turn until one is found that
responds. When the empty string is assigned, the list of
NTP servers is reset, and all assignments prior to this one
will have no effect. This setting defaults to an empty
list.</para></listitem>
<command>systemd-timesyncd</command> will contact all configured system or per-interface servers in
turn, until one responds. When the empty string is assigned, the list of NTP servers is reset, and
all prior assignments will have no effect. This setting defaults to an empty list.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>FallbackNTP=</varname></term>
<listitem><para>A space-separated list of NTP server host
names or IP addresses to be used as the fallback NTP servers.
Any per-interface NTP servers obtained from
<listitem><para>A space-separated list of NTP server host names or IP addresses to be used as the
fallback NTP servers. Any per-interface NTP servers obtained from
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
take precedence over this setting, as do any servers set via
<varname>NTP=</varname> above. This setting is hence only used
if no other NTP server information is known. When the empty
string is assigned, the list of NTP servers is reset,
and all assignments prior to this one will have no effect.
If this option is not given, a compiled-in list of NTP servers
is used instead.</para></listitem>
take precedence over this setting, as do any servers set via <varname>NTP=</varname> above. This
setting is hence only relevant if no other NTP server information is known. When the empty string is
assigned, the list of NTP servers is reset, and all prior assignments will have no effect. If this
option is not given, a compiled-in list of NTP servers is used.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>RootDistanceMaxSec=</varname></term>
<listitem><para>Maximum acceptable root distance. Takes a time value (in seconds).
<listitem><para>Maximum acceptable root distance, i.e. the maximum estimated time required for a
packet to travel to the server we are connected to from the server with the reference clock. If
the current server does not satisfy this limit, <command>systemd-timesyncd</command> will switch
to a different server.</para>
<para>Takes a time value. The default unit is seconds, but other units may be specified, see
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
Defaults to 5 seconds.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PollIntervalMinSec=</varname></term>
<term><varname>PollIntervalMaxSec=</varname></term>
<listitem><para>The minimum and maximum poll intervals for NTP messages.
Each setting takes a time value (in seconds).
<varname>PollIntervalMinSec=</varname> must not be smaller than 16 seconds.
<varname>PollIntervalMaxSec=</varname> must be larger than <varname>PollIntervalMinSec=</varname>.
<varname>PollIntervalMinSec=</varname> defaults to 32 seconds, and
<varname>PollIntervalMaxSec=</varname> defaults to 2048 seconds.</para></listitem>
<listitem><para>The minimum and maximum poll intervals for NTP messages. Polling starts at the
minimum poll interval, and is adjusted within the specified limits in response to received packets.
</para>
<para>Each setting takes a time value. The default unit is seconds, but other units may be specified,
see <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
<varname>PollIntervalMinSec=</varname> defaults to 32 seconds and must not be smaller than
16 seconds. <varname>PollIntervalMaxSec=</varname> defaults to 34 min 8 s (2048 seconds) and must be
larger than <varname>PollIntervalMinSec=</varname>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ConnectionRetrySec=</varname></term>
<listitem><para>Specifies the delaying attempts to contact servers after network is online. Takes a time value (in seconds).
Defaults to 30 seconds and must not be smaller than 1 seconds.</para></listitem>
<listitem><para>Specifies the minimum delay before subsequent attempts to contact a new NTP server
are made.</para>
<para>Takes a time value. The default unit is seconds, but other units may be specified, see
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
Defaults to 30 seconds and must not be smaller than 1 second.</para></listitem>
</varlistentry>
</variablelist>

View File

@ -125,7 +125,7 @@
<title>Values</title>
<para>Values are written as double quoted strings, such as ("string").
To include a quotation mark (") in the value, precede it by a backslash (\").
Any other occurrences of a character followed by a backslash are not further unescaped.
Any other occurrences of a backslash followed by a character are not unescaped.
That is, "\t\n" is treated as four characters:
backslash, lowercase t, backslash, lowercase n.</para>
@ -459,7 +459,7 @@
<para>Specify a program to be executed after processing of all the rules for the event. With
<literal>+=</literal>, this invocation is added to the list, and with <literal>=</literal> or
<literal>:=</literal>, it replaces any previous contents of the list. Please note that both
<literal>program</literal> and <literal>builtin</literal> types described below use a single
<literal>program</literal> and <literal>builtin</literal> types described below share a common
list, so clearing the list with <literal>:=</literal> and <literal>=</literal> affects both
types.</para>

View File

@ -549,6 +549,7 @@ foreach ident : [
['mallinfo', '''#include <malloc.h>'''],
['execveat', '''#include <unistd.h>'''],
['close_range', '''#include <unistd.h>'''],
['epoll_pwait2', '''#include <sys/epoll.h>'''],
]
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
@ -672,6 +673,7 @@ foreach header : ['crypt.h',
'sys/auxv.h',
'valgrind/memcheck.h',
'valgrind/valgrind.h',
'linux/time_types.h',
]
conf.set10('HAVE_' + header.underscorify().to_upper(),

View File

@ -28,3 +28,4 @@ uk
zh_CN
zh_TW
pa
kab

849
po/kab.po Normal file
View File

@ -0,0 +1,849 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the systemd package.
# Slimane Selyan Amiri <selyan.kab@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-08 17:48+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: kab\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
msgstr ""
#: src/core/org.freedesktop.systemd1.policy.in:23
msgid ""
"Authentication is required to send the entered passphrase back to the system."
msgstr ""
#: src/core/org.freedesktop.systemd1.policy.in:33
msgid "Manage system services or other units"
msgstr ""
#: src/core/org.freedesktop.systemd1.policy.in:34
msgid "Authentication is required to manage system services or other units."
msgstr ""
#: src/core/org.freedesktop.systemd1.policy.in:43
msgid "Manage system service or unit files"
msgstr ""
#: src/core/org.freedesktop.systemd1.policy.in:44
msgid "Authentication is required to manage system service or unit files."
msgstr ""
#: src/core/org.freedesktop.systemd1.policy.in:54
msgid "Set or unset system and service manager environment variables"
msgstr ""
#: src/core/org.freedesktop.systemd1.policy.in:55
msgid ""
"Authentication is required to set or unset system and service manager "
"environment variables."
msgstr ""
#: src/core/org.freedesktop.systemd1.policy.in:64
msgid "Reload the systemd state"
msgstr ""
#: src/core/org.freedesktop.systemd1.policy.in:65
msgid "Authentication is required to reload the systemd state."
msgstr ""
#: src/home/org.freedesktop.home1.policy:13
msgid "Create a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:14
msgid "Authentication is required to create a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:23
msgid "Remove a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:24
msgid "Authentication is required to remove a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:33
msgid "Check credentials of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:34
msgid ""
"Authentication is required to check credentials against a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:43
msgid "Update a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:44
msgid "Authentication is required to update a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:54
msgid "Authentication is required to resize a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:20
msgid "Set hostname"
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:21
msgid "Authentication is required to set the local hostname."
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:30
msgid "Set static hostname"
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:31
msgid ""
"Authentication is required to set the statically configured local hostname, "
"as well as the pretty hostname."
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:41
msgid "Set machine information"
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:42
msgid "Authentication is required to set local machine information."
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:51
msgid "Get product UUID"
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:52
msgid "Authentication is required to get product UUID."
msgstr ""
#: src/import/org.freedesktop.import1.policy:22
msgid "Import a VM or container image"
msgstr ""
#: src/import/org.freedesktop.import1.policy:23
msgid "Authentication is required to import a VM or container image"
msgstr ""
#: src/import/org.freedesktop.import1.policy:32
msgid "Export a VM or container image"
msgstr ""
#: src/import/org.freedesktop.import1.policy:33
msgid "Authentication is required to export a VM or container image"
msgstr ""
#: src/import/org.freedesktop.import1.policy:42
msgid "Download a VM or container image"
msgstr ""
#: src/import/org.freedesktop.import1.policy:43
msgid "Authentication is required to download a VM or container image"
msgstr ""
#: src/locale/org.freedesktop.locale1.policy:22
msgid "Set system locale"
msgstr ""
#: src/locale/org.freedesktop.locale1.policy:23
msgid "Authentication is required to set the system locale."
msgstr ""
#: src/locale/org.freedesktop.locale1.policy:33
msgid "Set system keyboard settings"
msgstr ""
#: src/locale/org.freedesktop.locale1.policy:34
msgid "Authentication is required to set the system keyboard settings."
msgstr ""
#: src/login/org.freedesktop.login1.policy:22
msgid "Allow applications to inhibit system shutdown"
msgstr ""
#: src/login/org.freedesktop.login1.policy:23
msgid ""
"Authentication is required for an application to inhibit system shutdown."
msgstr ""
#: src/login/org.freedesktop.login1.policy:33
msgid "Allow applications to delay system shutdown"
msgstr ""
#: src/login/org.freedesktop.login1.policy:34
msgid "Authentication is required for an application to delay system shutdown."
msgstr ""
#: src/login/org.freedesktop.login1.policy:44
msgid "Allow applications to inhibit system sleep"
msgstr ""
#: src/login/org.freedesktop.login1.policy:45
msgid "Authentication is required for an application to inhibit system sleep."
msgstr ""
#: src/login/org.freedesktop.login1.policy:55
msgid "Allow applications to delay system sleep"
msgstr ""
#: src/login/org.freedesktop.login1.policy:56
msgid "Authentication is required for an application to delay system sleep."
msgstr ""
#: src/login/org.freedesktop.login1.policy:65
msgid "Allow applications to inhibit automatic system suspend"
msgstr ""
#: src/login/org.freedesktop.login1.policy:66
msgid ""
"Authentication is required for an application to inhibit automatic system "
"suspend."
msgstr ""
#: src/login/org.freedesktop.login1.policy:75
msgid "Allow applications to inhibit system handling of the power key"
msgstr ""
#: src/login/org.freedesktop.login1.policy:76
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the power key."
msgstr ""
#: src/login/org.freedesktop.login1.policy:86
msgid "Allow applications to inhibit system handling of the suspend key"
msgstr ""
#: src/login/org.freedesktop.login1.policy:87
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the suspend key."
msgstr ""
#: src/login/org.freedesktop.login1.policy:97
msgid "Allow applications to inhibit system handling of the hibernate key"
msgstr ""
#: src/login/org.freedesktop.login1.policy:98
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the hibernate key."
msgstr ""
#: src/login/org.freedesktop.login1.policy:107
msgid "Allow applications to inhibit system handling of the lid switch"
msgstr ""
#: src/login/org.freedesktop.login1.policy:108
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the lid switch."
msgstr ""
#: src/login/org.freedesktop.login1.policy:117
msgid "Allow applications to inhibit system handling of the reboot key"
msgstr ""
#: src/login/org.freedesktop.login1.policy:118
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the reboot key."
msgstr ""
#: src/login/org.freedesktop.login1.policy:128
msgid "Allow non-logged-in user to run programs"
msgstr ""
#: src/login/org.freedesktop.login1.policy:129
msgid "Explicit request is required to run programs as a non-logged-in user."
msgstr ""
#: src/login/org.freedesktop.login1.policy:138
msgid "Allow non-logged-in users to run programs"
msgstr ""
#: src/login/org.freedesktop.login1.policy:139
msgid "Authentication is required to run programs as a non-logged-in user."
msgstr ""
#: src/login/org.freedesktop.login1.policy:148
msgid "Allow attaching devices to seats"
msgstr ""
#: src/login/org.freedesktop.login1.policy:149
msgid "Authentication is required to attach a device to a seat."
msgstr ""
#: src/login/org.freedesktop.login1.policy:159
msgid "Flush device to seat attachments"
msgstr ""
#: src/login/org.freedesktop.login1.policy:160
msgid "Authentication is required to reset how devices are attached to seats."
msgstr ""
#: src/login/org.freedesktop.login1.policy:169
msgid "Power off the system"
msgstr ""
#: src/login/org.freedesktop.login1.policy:170
msgid "Authentication is required to power off the system."
msgstr ""
#: src/login/org.freedesktop.login1.policy:180
msgid "Power off the system while other users are logged in"
msgstr ""
#: src/login/org.freedesktop.login1.policy:181
msgid ""
"Authentication is required to power off the system while other users are "
"logged in."
msgstr ""
#: src/login/org.freedesktop.login1.policy:191
msgid "Power off the system while an application is inhibiting this"
msgstr ""
#: src/login/org.freedesktop.login1.policy:192
msgid ""
"Authentication is required to power off the system while an application is "
"inhibiting this."
msgstr ""
#: src/login/org.freedesktop.login1.policy:202
msgid "Reboot the system"
msgstr ""
#: src/login/org.freedesktop.login1.policy:203
msgid "Authentication is required to reboot the system."
msgstr ""
#: src/login/org.freedesktop.login1.policy:213
msgid "Reboot the system while other users are logged in"
msgstr ""
#: src/login/org.freedesktop.login1.policy:214
msgid ""
"Authentication is required to reboot the system while other users are logged "
"in."
msgstr ""
#: src/login/org.freedesktop.login1.policy:224
msgid "Reboot the system while an application is inhibiting this"
msgstr ""
#: src/login/org.freedesktop.login1.policy:225
msgid ""
"Authentication is required to reboot the system while an application is "
"inhibiting this."
msgstr ""
#: src/login/org.freedesktop.login1.policy:235
msgid "Halt the system"
msgstr ""
#: src/login/org.freedesktop.login1.policy:236
msgid "Authentication is required to halt the system."
msgstr ""
#: src/login/org.freedesktop.login1.policy:246
msgid "Halt the system while other users are logged in"
msgstr ""
#: src/login/org.freedesktop.login1.policy:247
msgid ""
"Authentication is required to halt the system while other users are logged "
"in."
msgstr ""
#: src/login/org.freedesktop.login1.policy:257
msgid "Halt the system while an application is inhibiting this"
msgstr ""
#: src/login/org.freedesktop.login1.policy:258
msgid ""
"Authentication is required to halt the system while an application is "
"inhibiting this."
msgstr ""
#: src/login/org.freedesktop.login1.policy:268
msgid "Suspend the system"
msgstr ""
#: src/login/org.freedesktop.login1.policy:269
msgid "Authentication is required to suspend the system."
msgstr ""
#: src/login/org.freedesktop.login1.policy:278
msgid "Suspend the system while other users are logged in"
msgstr ""
#: src/login/org.freedesktop.login1.policy:279
msgid ""
"Authentication is required to suspend the system while other users are "
"logged in."
msgstr ""
#: src/login/org.freedesktop.login1.policy:289
msgid "Suspend the system while an application is inhibiting this"
msgstr ""
#: src/login/org.freedesktop.login1.policy:290
msgid ""
"Authentication is required to suspend the system while an application is "
"inhibiting this."
msgstr ""
#: src/login/org.freedesktop.login1.policy:300
msgid "Hibernate the system"
msgstr ""
#: src/login/org.freedesktop.login1.policy:301
msgid "Authentication is required to hibernate the system."
msgstr ""
#: src/login/org.freedesktop.login1.policy:310
msgid "Hibernate the system while other users are logged in"
msgstr ""
#: src/login/org.freedesktop.login1.policy:311
msgid ""
"Authentication is required to hibernate the system while other users are "
"logged in."
msgstr ""
#: src/login/org.freedesktop.login1.policy:321
msgid "Hibernate the system while an application is inhibiting this"
msgstr ""
#: src/login/org.freedesktop.login1.policy:322
msgid ""
"Authentication is required to hibernate the system while an application is "
"inhibiting this."
msgstr ""
#: src/login/org.freedesktop.login1.policy:332
msgid "Manage active sessions, users and seats"
msgstr ""
#: src/login/org.freedesktop.login1.policy:333
msgid "Authentication is required to manage active sessions, users and seats."
msgstr ""
#: src/login/org.freedesktop.login1.policy:342
msgid "Lock or unlock active sessions"
msgstr ""
#: src/login/org.freedesktop.login1.policy:343
msgid "Authentication is required to lock or unlock active sessions."
msgstr ""
#: src/login/org.freedesktop.login1.policy:352
msgid "Set the reboot \"reason\" in the kernel"
msgstr ""
#: src/login/org.freedesktop.login1.policy:353
msgid "Authentication is required to set the reboot \"reason\" in the kernel."
msgstr ""
#: src/login/org.freedesktop.login1.policy:363
msgid "Indicate to the firmware to boot to setup interface"
msgstr ""
#: src/login/org.freedesktop.login1.policy:364
msgid ""
"Authentication is required to indicate to the firmware to boot to setup "
"interface."
msgstr ""
#: src/login/org.freedesktop.login1.policy:374
msgid "Indicate to the boot loader to boot to the boot loader menu"
msgstr ""
#: src/login/org.freedesktop.login1.policy:375
msgid ""
"Authentication is required to indicate to the boot loader to boot to the "
"boot loader menu."
msgstr ""
#: src/login/org.freedesktop.login1.policy:385
msgid "Indicate to the boot loader to boot a specific entry"
msgstr ""
#: src/login/org.freedesktop.login1.policy:386
msgid ""
"Authentication is required to indicate to the boot loader to boot into a "
"specific boot loader entry."
msgstr ""
#: src/login/org.freedesktop.login1.policy:396
msgid "Set a wall message"
msgstr ""
#: src/login/org.freedesktop.login1.policy:397
msgid "Authentication is required to set a wall message"
msgstr ""
#: src/login/org.freedesktop.login1.policy:406
msgid "Change Session"
msgstr ""
#: src/login/org.freedesktop.login1.policy:407
msgid "Authentication is required to change the virtual terminal."
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:22
msgid "Log into a local container"
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:23
msgid "Authentication is required to log into a local container."
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:32
msgid "Log into the local host"
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:33
msgid "Authentication is required to log into the local host."
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:42
msgid "Acquire a shell in a local container"
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:43
msgid "Authentication is required to acquire a shell in a local container."
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:53
msgid "Acquire a shell on the local host"
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:54
msgid "Authentication is required to acquire a shell on the local host."
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:64
msgid "Acquire a pseudo TTY in a local container"
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:65
msgid ""
"Authentication is required to acquire a pseudo TTY in a local container."
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:74
msgid "Acquire a pseudo TTY on the local host"
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:75
msgid "Authentication is required to acquire a pseudo TTY on the local host."
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:84
msgid "Manage local virtual machines and containers"
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:85
msgid ""
"Authentication is required to manage local virtual machines and containers."
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:95
msgid "Manage local virtual machine and container images"
msgstr ""
#: src/machine/org.freedesktop.machine1.policy:96
msgid ""
"Authentication is required to manage local virtual machine and container "
"images."
msgstr ""
#: src/network/org.freedesktop.network1.policy:22
msgid "Set NTP servers"
msgstr ""
#: src/network/org.freedesktop.network1.policy:23
msgid "Authentication is required to set NTP servers."
msgstr ""
#: src/network/org.freedesktop.network1.policy:33
#: src/resolve/org.freedesktop.resolve1.policy:44
msgid "Set DNS servers"
msgstr ""
#: src/network/org.freedesktop.network1.policy:34
#: src/resolve/org.freedesktop.resolve1.policy:45
msgid "Authentication is required to set DNS servers."
msgstr ""
#: src/network/org.freedesktop.network1.policy:44
#: src/resolve/org.freedesktop.resolve1.policy:55
msgid "Set domains"
msgstr ""
#: src/network/org.freedesktop.network1.policy:45
#: src/resolve/org.freedesktop.resolve1.policy:56
msgid "Authentication is required to set domains."
msgstr ""
#: src/network/org.freedesktop.network1.policy:55
#: src/resolve/org.freedesktop.resolve1.policy:66
msgid "Set default route"
msgstr ""
#: src/network/org.freedesktop.network1.policy:56
#: src/resolve/org.freedesktop.resolve1.policy:67
msgid "Authentication is required to set default route."
msgstr ""
#: src/network/org.freedesktop.network1.policy:66
#: src/resolve/org.freedesktop.resolve1.policy:77
msgid "Enable/disable LLMNR"
msgstr ""
#: src/network/org.freedesktop.network1.policy:67
#: src/resolve/org.freedesktop.resolve1.policy:78
msgid "Authentication is required to enable or disable LLMNR."
msgstr ""
#: src/network/org.freedesktop.network1.policy:77
#: src/resolve/org.freedesktop.resolve1.policy:88
msgid "Enable/disable multicast DNS"
msgstr ""
#: src/network/org.freedesktop.network1.policy:78
#: src/resolve/org.freedesktop.resolve1.policy:89
msgid "Authentication is required to enable or disable multicast DNS."
msgstr ""
#: src/network/org.freedesktop.network1.policy:88
#: src/resolve/org.freedesktop.resolve1.policy:99
msgid "Enable/disable DNS over TLS"
msgstr ""
#: src/network/org.freedesktop.network1.policy:89
#: src/resolve/org.freedesktop.resolve1.policy:100
msgid "Authentication is required to enable or disable DNS over TLS."
msgstr ""
#: src/network/org.freedesktop.network1.policy:99
#: src/resolve/org.freedesktop.resolve1.policy:110
msgid "Enable/disable DNSSEC"
msgstr ""
#: src/network/org.freedesktop.network1.policy:100
#: src/resolve/org.freedesktop.resolve1.policy:111
msgid "Authentication is required to enable or disable DNSSEC."
msgstr ""
#: src/network/org.freedesktop.network1.policy:110
#: src/resolve/org.freedesktop.resolve1.policy:121
msgid "Set DNSSEC Negative Trust Anchors"
msgstr ""
#: src/network/org.freedesktop.network1.policy:111
#: src/resolve/org.freedesktop.resolve1.policy:122
msgid "Authentication is required to set DNSSEC Negative Trust Anchors."
msgstr ""
#: src/network/org.freedesktop.network1.policy:121
msgid "Revert NTP settings"
msgstr ""
#: src/network/org.freedesktop.network1.policy:122
msgid "Authentication is required to reset NTP settings."
msgstr ""
#: src/network/org.freedesktop.network1.policy:132
msgid "Revert DNS settings"
msgstr ""
#: src/network/org.freedesktop.network1.policy:133
msgid "Authentication is required to reset DNS settings."
msgstr ""
#: src/network/org.freedesktop.network1.policy:143
msgid "DHCP server sends force renew message"
msgstr ""
#: src/network/org.freedesktop.network1.policy:144
msgid "Authentication is required to send force renew message."
msgstr ""
#: src/network/org.freedesktop.network1.policy:154
msgid "Renew dynamic addresses"
msgstr ""
#: src/network/org.freedesktop.network1.policy:155
msgid "Authentication is required to renew dynamic addresses."
msgstr ""
#: src/network/org.freedesktop.network1.policy:165
msgid "Reload network settings"
msgstr ""
#: src/network/org.freedesktop.network1.policy:166
msgid "Authentication is required to reload network settings."
msgstr ""
#: src/network/org.freedesktop.network1.policy:176
msgid "Reconfigure network interface"
msgstr ""
#: src/network/org.freedesktop.network1.policy:177
msgid "Authentication is required to reconfigure network interface."
msgstr ""
#: src/portable/org.freedesktop.portable1.policy:13
msgid "Inspect a portable service image"
msgstr ""
#: src/portable/org.freedesktop.portable1.policy:14
msgid "Authentication is required to inspect a portable service image."
msgstr ""
#: src/portable/org.freedesktop.portable1.policy:23
msgid "Attach or detach a portable service image"
msgstr ""
#: src/portable/org.freedesktop.portable1.policy:24
msgid ""
"Authentication is required to attach or detach a portable service image."
msgstr ""
#: src/portable/org.freedesktop.portable1.policy:34
msgid "Delete or modify portable service image"
msgstr ""
#: src/portable/org.freedesktop.portable1.policy:35
msgid ""
"Authentication is required to delete or modify a portable service image."
msgstr ""
#: src/resolve/org.freedesktop.resolve1.policy:22
msgid "Register a DNS-SD service"
msgstr ""
#: src/resolve/org.freedesktop.resolve1.policy:23
msgid "Authentication is required to register a DNS-SD service"
msgstr ""
#: src/resolve/org.freedesktop.resolve1.policy:33
msgid "Unregister a DNS-SD service"
msgstr ""
#: src/resolve/org.freedesktop.resolve1.policy:34
msgid "Authentication is required to unregister a DNS-SD service"
msgstr ""
#: src/resolve/org.freedesktop.resolve1.policy:132
msgid "Revert name resolution settings"
msgstr ""
#: src/resolve/org.freedesktop.resolve1.policy:133
msgid "Authentication is required to reset name resolution settings."
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:23
msgid "Authentication is required to set the system time."
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:33
msgid "Set system timezone"
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:34
msgid "Authentication is required to set the system timezone."
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:43
msgid "Set RTC to local timezone or UTC"
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:44
msgid ""
"Authentication is required to control whether the RTC stores the local or "
"UTC time."
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:53
msgid "Turn network time synchronization on or off"
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:54
msgid ""
"Authentication is required to control whether network time synchronization "
"shall be enabled."
msgstr ""
#: src/core/dbus-unit.c:359
msgid "Authentication is required to start '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:360
msgid "Authentication is required to stop '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:361
msgid "Authentication is required to reload '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:362 src/core/dbus-unit.c:363
msgid "Authentication is required to restart '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:535
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:566
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:599
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:708
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:757
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -4,21 +4,22 @@
# Enrico Nicoletto <liverig@gmail.com>, 2014.
# Filipe Brandenburger <filbranden@gmail.com>, 2018.
# Rafael Fontenelle <rafaelff@gnome.org>, 2015-2020.
#
# Gustavo Costa <xfgusta@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-08 17:48+0100\n"
"PO-Revision-Date: 2020-05-30 09:10-0300\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
"PO-Revision-Date: 2021-02-25 18:41+0000\n"
"Last-Translator: Gustavo Costa <xfgusta@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/"
"projects/systemd/master/pt_BR/>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Gtranslator 3.36.0\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.4.2\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
@ -313,23 +314,18 @@ msgstr ""
"sistema sobre o interruptor da tela."
#: src/login/org.freedesktop.login1.policy:117
#, fuzzy
#| msgid "Allow applications to inhibit system handling of the power key"
msgid "Allow applications to inhibit system handling of the reboot key"
msgstr ""
"Permitir que aplicativos inibam o sistema de gerenciar o botão de energia"
"Permitir que aplicativos inibam o sistema de gerenciar o botão de "
"reinicialização"
#: src/login/org.freedesktop.login1.policy:118
#, fuzzy
#| msgid ""
#| "Authentication is required for an application to inhibit system handling "
#| "of the power key."
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the reboot key."
msgstr ""
"É necessária autenticação para que um aplicativo iniba a manipulação do "
"sistema sobre a chave de ligar/desligar."
"É necessária autenticação para que um aplicativo iniba o sistema de "
"gerenciar o botão de reinicialização."
#: src/login/org.freedesktop.login1.policy:128
msgid "Allow non-logged-in user to run programs"

View File

@ -5,6 +5,11 @@
#include <errno.h>
#include <fcntl.h>
#if HAVE_LINUX_TIME_TYPES_H
/* This header defines __kernel_timespec for us, but is only available since Linux 5.1, hence conditionally
* include this. */
#include <linux/time_types.h>
#endif
#include <signal.h>
#include <sys/syscall.h>
#include <sys/types.h>
@ -382,3 +387,41 @@ static inline int missing_close_range(int first_fd, int end_fd, unsigned flags)
# define close_range missing_close_range
#endif
/* ======================================================================= */
#if !HAVE_EPOLL_PWAIT2
/* Defined to be equivalent to the kernel's _NSIG_WORDS, i.e. the size of the array of longs that is
* encapsulated by sigset_t. */
#define KERNEL_NSIG_WORDS (64 / (sizeof(long) * 8))
#define KERNEL_NSIG_BYTES (KERNEL_NSIG_WORDS * sizeof(long))
struct epoll_event;
static inline int missing_epoll_pwait2(
int fd,
struct epoll_event *events,
int maxevents,
const struct timespec *timeout,
const sigset_t *sigset) {
# if defined(__NR_epoll_pwait2) && HAVE_LINUX_TIME_TYPES_H
if (timeout) {
/* Convert from userspace timespec to kernel timespec */
struct __kernel_timespec ts = {
.tv_sec = timeout->tv_sec,
.tv_nsec = timeout->tv_nsec,
};
return syscall(__NR_epoll_pwait2, fd, events, maxevents, &ts, sigset, sigset ? KERNEL_NSIG_BYTES : 0);
} else
return syscall(__NR_epoll_pwait2, fd, events, maxevents, NULL, sigset, sigset ? KERNEL_NSIG_BYTES : 0);
# else
errno = ENOSYS;
return -1;
# endif
}
# define epoll_pwait2 missing_epoll_pwait2
#endif

View File

@ -673,3 +673,58 @@ assert_cc(__NR_statx == systemd_NR_statx);
# endif
#endif
#ifndef __IGNORE_epoll_pwait2
# if defined(__aarch64__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__alpha__)
# define systemd_NR_epoll_pwait2 551
# elif defined(__arc__) || defined(__tilegx__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__arm__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__i386__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__ia64__)
# define systemd_NR_epoll_pwait2 1465
# elif defined(__m68k__)
# define systemd_NR_epoll_pwait2 441
# elif defined(_MIPS_SIM)
# if _MIPS_SIM == _MIPS_SIM_ABI32
# define systemd_NR_epoll_pwait2 4441
# elif _MIPS_SIM == _MIPS_SIM_NABI32
# define systemd_NR_epoll_pwait2 6441
# elif _MIPS_SIM == _MIPS_SIM_ABI64
# define systemd_NR_epoll_pwait2 5441
# else
# error "Unknown MIPS ABI"
# endif
# elif defined(__powerpc__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__s390__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__sparc__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__x86_64__)
# if defined(__ILP32__)
# define systemd_NR_epoll_pwait2 (441 | /* __X32_SYSCALL_BIT */ 0x40000000)
# else
# define systemd_NR_epoll_pwait2 441
# endif
# else
# warning "epoll_pwait2() syscall number is unknown for your architecture"
# endif
/* may be an (invalid) negative number due to libseccomp, see PR 13319 */
# if defined __NR_epoll_pwait2 && __NR_epoll_pwait2 >= 0
# if defined systemd_NR_epoll_pwait2
assert_cc(__NR_epoll_pwait2 == systemd_NR_epoll_pwait2);
# endif
# else
# if defined __NR_epoll_pwait2
# undef __NR_epoll_pwait2
# endif
# if defined systemd_NR_epoll_pwait2 && systemd_NR_epoll_pwait2 >= 0
# define __NR_epoll_pwait2 systemd_NR_epoll_pwait2
# endif
# endif
#endif

View File

@ -17,7 +17,8 @@ SYSCALLS = [
'pkey_mprotect',
'renameat2',
'setns',
'statx']
'statx',
'epoll_pwait2']
def dictify(f):
def wrap(*args, **kwargs):

View File

@ -3780,9 +3780,59 @@ pending:
return r;
}
static int epoll_wait_usec(
int fd,
struct epoll_event *events,
int maxevents,
usec_t timeout) {
static bool epoll_pwait2_absent = false;
int r, msec;
/* A wrapper that uses epoll_pwait2() if available, and falls back to epoll_wait() if not */
if (!epoll_pwait2_absent && timeout != USEC_INFINITY) {
struct timespec ts;
r = epoll_pwait2(fd,
events,
maxevents,
timespec_store(&ts, timeout),
NULL);
if (r >= 0)
return r;
if (!ERRNO_IS_NOT_SUPPORTED(r) && !ERRNO_IS_PRIVILEGE(r))
return -errno; /* Only fallback to old epoll_wait() if the syscall is masked or not
* supported. */
epoll_pwait2_absent = true;
}
if (timeout == USEC_INFINITY)
msec = -1;
else {
usec_t k;
k = DIV_ROUND_UP(timeout, USEC_PER_MSEC);
if (k >= INT_MAX)
msec = INT_MAX; /* Saturate */
else
msec = (int) k;
}
r = epoll_wait(fd,
events,
maxevents,
msec);
if (r < 0)
return -errno;
return r;
}
_public_ int sd_event_wait(sd_event *e, uint64_t timeout) {
size_t n_event_queue, m;
int r, msec;
int r;
assert_return(e, -EINVAL);
assert_return(e = event_resolve(e), -ENOPKG);
@ -3801,21 +3851,16 @@ _public_ int sd_event_wait(sd_event *e, uint64_t timeout) {
/* If we still have inotify data buffered, then query the other fds, but don't wait on it */
if (e->inotify_data_buffered)
msec = 0;
else
msec = timeout == (uint64_t) -1 ? -1 : (int) DIV_ROUND_UP(timeout, USEC_PER_MSEC);
timeout = 0;
for (;;) {
r = epoll_wait(e->epoll_fd, e->event_queue, e->event_queue_allocated, msec);
if (r < 0) {
if (errno == EINTR) {
e->state = SD_EVENT_PENDING;
return 1;
}
r = -errno;
goto finish;
r = epoll_wait_usec(e->epoll_fd, e->event_queue, e->event_queue_allocated, timeout);
if (r == -EINTR) {
e->state = SD_EVENT_PENDING;
return 1;
}
if (r < 0)
goto finish;
m = (size_t) r;
@ -3828,7 +3873,7 @@ _public_ int sd_event_wait(sd_event *e, uint64_t timeout) {
if (!GREEDY_REALLOC(e->event_queue, e->event_queue_allocated, e->event_queue_allocated + n_event_queue))
return -ENOMEM;
msec = 0;
timeout = 0;
}
triple_timestamp_get(&e->timestamp);

View File

@ -1424,7 +1424,7 @@ static int oci_cgroup_block_io_weight_device(const char *name, JsonVariant *v, J
static const JsonDispatch table[] = {
{ "major", JSON_VARIANT_UNSIGNED, oci_device_major, offsetof(struct device_data, major), JSON_MANDATORY },
{ "minor", JSON_VARIANT_UNSIGNED, oci_device_minor, offsetof(struct device_data, minor), JSON_MANDATORY },
{ "weight", JSON_VARIANT_UNSIGNED, json_dispatch_unsigned, offsetof(struct device_data, weight), 0 },
{ "weight", JSON_VARIANT_UNSIGNED, json_dispatch_uintmax, offsetof(struct device_data, weight), 0 },
{ "leafWeight", JSON_VARIANT_INTEGER, oci_unsupported, 0, JSON_PERMISSIVE },
{}
};
@ -1484,7 +1484,7 @@ static int oci_cgroup_block_io_throttle(const char *name, JsonVariant *v, JsonDi
static const JsonDispatch table[] = {
{ "major", JSON_VARIANT_UNSIGNED, oci_device_major, offsetof(struct device_data, major), JSON_MANDATORY },
{ "minor", JSON_VARIANT_UNSIGNED, oci_device_minor, offsetof(struct device_data, minor), JSON_MANDATORY },
{ "rate", JSON_VARIANT_UNSIGNED, json_dispatch_unsigned, offsetof(struct device_data, rate), JSON_MANDATORY },
{ "rate", JSON_VARIANT_UNSIGNED, json_dispatch_uintmax, offsetof(struct device_data, rate), JSON_MANDATORY },
{}
};

View File

@ -4063,7 +4063,7 @@ int json_dispatch_tristate(const char *name, JsonVariant *variant, JsonDispatchF
return 0;
}
int json_dispatch_integer(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
int json_dispatch_intmax(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
intmax_t *i = userdata;
assert(variant);
@ -4076,7 +4076,7 @@ int json_dispatch_integer(const char *name, JsonVariant *variant, JsonDispatchFl
return 0;
}
int json_dispatch_unsigned(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
int json_dispatch_uintmax(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
uintmax_t *u = userdata;
assert(variant);

View File

@ -293,8 +293,8 @@ int json_dispatch_strv(const char *name, JsonVariant *variant, JsonDispatchFlags
int json_dispatch_boolean(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
int json_dispatch_tristate(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
int json_dispatch_variant(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
int json_dispatch_integer(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
int json_dispatch_unsigned(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
int json_dispatch_intmax(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
int json_dispatch_uintmax(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
int json_dispatch_uint32(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
int json_dispatch_int32(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
int json_dispatch_uid_gid(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
@ -303,10 +303,10 @@ int json_dispatch_id128(const char *name, JsonVariant *variant, JsonDispatchFlag
int json_dispatch_unsupported(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
assert_cc(sizeof(uintmax_t) == sizeof(uint64_t));
#define json_dispatch_uint64 json_dispatch_unsigned
#define json_dispatch_uint64 json_dispatch_uintmax
assert_cc(sizeof(intmax_t) == sizeof(int64_t));
#define json_dispatch_int64 json_dispatch_integer
#define json_dispatch_int64 json_dispatch_intmax
assert_cc(sizeof(uint32_t) == sizeof(unsigned));
#define json_dispatch_uint json_dispatch_uint32

View File

@ -165,7 +165,7 @@ static const sd_bus_vtable manager_vtable[] = {
SD_BUS_PROPERTY("FallbackNTPServers", "as", property_get_servers, offsetof(Manager, fallback_servers), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("ServerName", "s", property_get_current_server_name, offsetof(Manager, current_server_name), 0),
SD_BUS_PROPERTY("ServerAddress", "(iay)", property_get_current_server_address, offsetof(Manager, current_server_address), 0),
SD_BUS_PROPERTY("RootDistanceMaxUSec", "t", bus_property_get_usec, offsetof(Manager, max_root_distance_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("RootDistanceMaxUSec", "t", bus_property_get_usec, offsetof(Manager, root_distance_max_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("PollIntervalMinUSec", "t", bus_property_get_usec, offsetof(Manager, poll_interval_min_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("PollIntervalMaxUSec", "t", bus_property_get_usec, offsetof(Manager, poll_interval_max_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("PollIntervalUSec", "t", bus_property_get_usec, offsetof(Manager, poll_interval_usec), 0),

View File

@ -21,7 +21,7 @@ struct ConfigPerfItem;
Time.NTP, config_parse_servers, SERVER_SYSTEM, 0
Time.Servers, config_parse_servers, SERVER_SYSTEM, 0
Time.FallbackNTP, config_parse_servers, SERVER_FALLBACK, 0
Time.RootDistanceMaxSec, config_parse_sec, 0, offsetof(Manager, max_root_distance_usec)
Time.RootDistanceMaxSec, config_parse_sec, 0, offsetof(Manager, root_distance_max_usec)
Time.PollIntervalMinSec, config_parse_sec, 0, offsetof(Manager, poll_interval_min_usec)
Time.PollIntervalMaxSec, config_parse_sec, 0, offsetof(Manager, poll_interval_max_usec)
Time.ConnectionRetrySec, config_parse_sec, 0, offsetof(Manager, connection_retry_usec)

View File

@ -34,7 +34,7 @@
#define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */
#endif
/* expected accuracy of time synchronization; used to adjust the poll interval */
/* Expected accuracy of time synchronization; used to adjust the poll interval */
#define NTP_ACCURACY_SEC 0.2
/*
@ -45,7 +45,7 @@
#define NTP_MAX_ADJUST 0.4
/* Default of maximum acceptable root distance in microseconds. */
#define NTP_MAX_ROOT_DISTANCE (5 * USEC_PER_SEC)
#define NTP_ROOT_DISTANCE_MAX_USEC (5 * USEC_PER_SEC)
/* Maximum number of missed replies before selecting another source. */
#define NTP_MAX_MISSED_REPLIES 2
@ -507,7 +507,7 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
}
root_distance = ntp_ts_short_to_d(&ntpmsg.root_delay) / 2 + ntp_ts_short_to_d(&ntpmsg.root_dispersion);
if (root_distance > (double) m->max_root_distance_usec / (double) USEC_PER_SEC) {
if (root_distance > (double) m->root_distance_max_usec / (double) USEC_PER_SEC) {
log_info("Server has too large root distance. Disconnecting.");
return manager_connect(m);
}
@ -1081,7 +1081,7 @@ int manager_new(Manager **ret) {
if (!m)
return -ENOMEM;
m->max_root_distance_usec = NTP_MAX_ROOT_DISTANCE;
m->root_distance_max_usec = NTP_ROOT_DISTANCE_MAX_USEC;
m->poll_interval_min_usec = NTP_POLL_INTERVAL_MIN_USEC;
m->poll_interval_max_usec = NTP_POLL_INTERVAL_MAX_USEC;

View File

@ -79,7 +79,7 @@ struct Manager {
} samples[8];
unsigned samples_idx;
double samples_jitter;
usec_t max_root_distance_usec;
usec_t root_distance_max_usec;
/* last change */
bool jumped;

View File

@ -21,8 +21,17 @@ static int builtin_btrfs(sd_device *dev, int argc, char *argv[], bool test) {
return log_device_error_errno(dev, SYNTHETIC_ERRNO(EINVAL), "Invalid arguments");
fd = open("/dev/btrfs-control", O_RDWR|O_CLOEXEC);
if (fd < 0)
if (fd < 0) {
if (IN_SET(errno, ENOENT, ENXIO, ENODEV)) {
/* Driver not installed? Then we aren't ready. This is useful in initrds that lack
* btrfs.ko. After the host transition (where btrfs.ko will hopefully become
* available) the device can be retriggered and will then be considered ready. */
udev_builtin_add_property(dev, test, "ID_BTRFS_READY", "0");
return 0;
}
return log_device_debug_errno(dev, errno, "Failed to open /dev/btrfs-control: %m");
}
strscpy(args.name, sizeof(args.name), argv[2]);
r = ioctl(fd, BTRFS_IOC_DEVICES_READY, &args);