1
0
mirror of https://github.com/systemd/systemd synced 2025-09-29 16:54:46 +02:00

Compare commits

...

9 Commits

Author SHA1 Message Date
Yu Watanabe
37d1f1573b bootctl: do not fail on removing unfied kernel image
A boot loader entry for a unified kernel image has
BootEntry.kernel : path to the image relative to ESP or XBOOTLDR,
BootEntry.path   : path to the image.
Hence, these two effectively point to the same file.

Hence, by unlink command, the image is removed by
```
deref_unlink_file(&known_files, e->kernel, e->root);
```
then later tried again by
```
r = chase_and_unlink(e->path, root, ...);
```
and of course it fails with -ENOENT.

Let's ignore the failure there. We already ignore ENOENT on removal
at various places, especially in deref_unlink_file().

Fixes #38706.
Follow-ups for 8702496bfb0205764569782a9a2ebd11fd80e5e8.
2025-08-26 15:45:44 +02:00
Lennart Poettering
3ef74e44b8 nsresourced: use a hashed rather than a mangled name as fallback
If we are asked to come up with our own name for the namespace to
allocate (because client enabled "mangle"), then we so far created a
randomized name if shortening what was proposed didn't work. This broke
polkit authorization however, because when polkit is in the mix, we
process method calls twice, submitting the polkit request on the first
and then assuming a response is known on the second invocation. But if
we generate a randomized name for the two checks we'll not be ablet to
match up the requests because it's going to be different. Let's fix that
by not using a randomized name, but one hashed from the socket
connection we are processing mixed with the client provided name. This
will ensure that for the same method call we'll generate the same name,
but different calls (i.e. calls with different names on the same socket,
or with any name on any socket) we'll end up with different names,
minimizing chance of collision.

This ensures PK starts to work with nsresourced userns registration when
a bad or no name is specified, which previously would end up in a PK
query loop.
2025-08-26 15:30:39 +02:00
Lennart Poettering
06de39b3bd import-generator: disable timeout for downloaded images
Downloading images can take arbitrary amounts of time, hence disable the
timeout for it.

Inspired by https://github.com/systemd/particleos/issues/80
2025-08-26 15:23:41 +02:00
Kamil Páral
2f615ec1d1 70-mouse.hwdb: Add Razer Basilisk V3, Asus Cerberus, +2 more
All mice were measured using mouse-dpi-tool, and the measurements match vendors
specs, with the exception of Asus Cerberus (it officially has
500/*1000/1500/2500 DPI, but my measurements were quite different, so I opted
to include the real values).
2025-08-26 10:17:20 +01:00
kanitha chim
7562455ba9 po: Translated using Weblate (Khmer (Central))
Currently translated at 41.2% (109 of 264 strings)

Co-authored-by: kanitha chim <kchim@redhat.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/km/
Translation: systemd/main
2025-08-26 18:01:21 +09:00
Zbigniew Jędrzejewski-Szmek
20b7e0f1fe
man: add note about extending machine-info to man page (#38652) 2025-08-26 10:55:20 +02:00
Jörg Behrmann
7175007020 man: unify spelling of OS-specific 2025-08-25 14:38:00 +02:00
Jörg Behrmann
1dcbb0b4ca tools: ignore root element explicitly in check-version-history
Currently these messages (broken for length)

    2025-08-20T12:04:15.9609277Z
    /home/runner/work/systemd/systemd/tools/check-version-history.py:26:
    FutureWarning: This search incorrectly ignores the root element, and will be fixed in a future version.
    If you rely on the current behaviour, change it to './/funcprototype/funcdef/function'

can be seen in CI output. So let's apply the suggestion.
2025-08-25 14:38:00 +02:00
Jörg Behrmann
09a89190bb man: add note about extending machine-info to man page 2025-08-25 14:38:00 +02:00
9 changed files with 238 additions and 163 deletions

View File

@ -191,6 +191,14 @@ mouse:bluetooth:v256fpc63a:name:*
mouse:bluetooth:v05acp030d:name:*:*
MOUSE_DPI=1300@1000
##########################################
# Asus
##########################################
# Asus Cerberus
mouse:usb:v04d9pa0d6:name:E-Signal/A-One USB Gaming Mouse:*
MOUSE_DPI=800@500 *1350@500 1600@500 2650@500
##########################################
# Cherry
##########################################
@ -388,6 +396,10 @@ mouse:usb:v17efp6045:name:Lenovo USB Laser Mouse:*
mouse:usb:v17efp6044:name:ThinkPad USB Laser Mouse:*
MOUSE_DPI=1200@125
# Lenovo Essential USB Mouse (SM-8823)
mouse:usb:v17efp608d:name:PixArt Lenovo USB Optical Mouse:*
MOUSE_DPI=1600@125
##########################################
# Logitech
##########################################
@ -675,6 +687,10 @@ mouse:usb:v046dpc517:name:Logitech USB Receiver:*
mouse:usb:v046dpc046:name:Logitech USB Optical Mouse:*
MOUSE_DPI=1000@125
# Logitech RX1500
mouse:usb:v046dpc061:name:Logitech USB Laser Mouse:*
MOUSE_DPI=1000@125
# Logitech M100 Optical Mouse
mouse:usb:v046dpc05a:name:Logitech USB Optical Mouse:*
MOUSE_DPI=1000@125
@ -837,6 +853,10 @@ mouse:usb:v1532p0029:name:Razer Razer DeathAdder:*
mouse:usb:v1532p00a3:name:Razer Razer Cobra:*
MOUSE_DPI=400@1000 800@1000 *1600@1000 3200@1000 6400@1000
# Razer Basilisk V3
mouse:usb:v1532p0099:name:Razer Razer Basilisk V3:*
MOUSE_DPI=400@125 800@125 1600@125 3200@125 6400@125 400@500 800@500 1600@500 3200@500 6400@500 400@1000 800@1000 *1600@1000 3200@1000 6400@1000
##########################################
# Roccat
##########################################

View File

@ -53,126 +53,139 @@
<para>The following machine metadata parameters may be set using
<filename>/etc/machine-info</filename>:</para>
<variablelist class='environment-variables'>
<refsect2>
<title>Machine Information</title>
<varlistentry>
<term><varname>PRETTY_HOSTNAME=</varname></term>
<variablelist class='environment-variables'>
<listitem><para>A pretty human-readable UTF-8 machine
identifier string. This should contain a name like
<literal>Lennart's Laptop</literal> which is useful to present
to the user and does not suffer by the syntax limitations of
internet domain names. If possible, the internet hostname as
configured in <filename>/etc/hostname</filename> should be
kept similar to this one. Example: if this value is
<literal>Lennart's Computer</literal> an Internet hostname of
<literal>lennarts-computer</literal> might be a good choice.
If this parameter is not set, an application should fall back
to the Internet hostname for presentation
purposes.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PRETTY_HOSTNAME=</varname></term>
<varlistentry>
<term><varname>ICON_NAME=</varname></term>
<listitem><para>A pretty human-readable UTF-8 machine
identifier string. This should contain a name like
<literal>Lennart's Laptop</literal> which is useful to present
to the user and does not suffer by the syntax limitations of
internet domain names. If possible, the internet hostname as
configured in <filename>/etc/hostname</filename> should be
kept similar to this one. Example: if this value is
<literal>Lennart's Computer</literal> an Internet hostname of
<literal>lennarts-computer</literal> might be a good choice.
If this parameter is not set, an application should fall back
to the Internet hostname for presentation
purposes.</para></listitem>
</varlistentry>
<listitem><para>An icon identifying this machine according to
the <ulink
url="https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">XDG
Icon Naming Specification</ulink>. If this parameter is not
set, an application should fall back to
<literal>computer</literal> or a similar icon
name.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ICON_NAME=</varname></term>
<varlistentry>
<term><varname>CHASSIS=</varname></term>
<listitem><para>An icon identifying this machine according to
the <ulink
url="https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">XDG
Icon Naming Specification</ulink>. If this parameter is not
set, an application should fall back to
<literal>computer</literal> or a similar icon
name.</para></listitem>
</varlistentry>
<listitem><para>The chassis type. Currently, the following
chassis types are defined:
<literal>desktop</literal>,
<literal>laptop</literal>,
<literal>convertible</literal>,
<literal>server</literal>,
<literal>tablet</literal>,
<literal>handset</literal>,
<literal>watch</literal>, and
<literal>embedded</literal>,
as well as the special chassis types
<literal>vm</literal> and
<literal>container</literal> for
virtualized systems that lack an immediate physical chassis.</para>
<varlistentry>
<term><varname>CHASSIS=</varname></term>
<para>Note that most systems allow detection of the chassis type automatically (based on firmware
information or suchlike). This setting should only be used to override a misdetection or to manually
configure the chassis type where automatic detection is not available.</para>
<listitem><para>The chassis type. Currently, the following
chassis types are defined:
<literal>desktop</literal>,
<literal>laptop</literal>,
<literal>convertible</literal>,
<literal>server</literal>,
<literal>tablet</literal>,
<literal>handset</literal>,
<literal>watch</literal>, and
<literal>embedded</literal>,
as well as the special chassis types
<literal>vm</literal> and
<literal>container</literal> for
virtualized systems that lack an immediate physical chassis.</para>
<xi:include href="version-info.xml" xpointer="v197"/></listitem>
</varlistentry>
<para>Note that most systems allow detection of the chassis type automatically (based on firmware
information or suchlike). This setting should only be used to override a misdetection or to manually
configure the chassis type where automatic detection is not available.</para>
<varlistentry>
<term><varname>DEPLOYMENT=</varname></term>
<xi:include href="version-info.xml" xpointer="v197"/></listitem>
</varlistentry>
<listitem><para>Describes the system deployment environment.
One of the following is suggested:
<literal>development</literal>,
<literal>integration</literal>,
<literal>staging</literal>,
<literal>production</literal>.
</para>
<varlistentry>
<term><varname>DEPLOYMENT=</varname></term>
<xi:include href="version-info.xml" xpointer="v216"/></listitem>
</varlistentry>
<listitem><para>Describes the system deployment environment.
One of the following is suggested:
<literal>development</literal>,
<literal>integration</literal>,
<literal>staging</literal>,
<literal>production</literal>.
</para>
<varlistentry>
<term><varname>LOCATION=</varname></term>
<xi:include href="version-info.xml" xpointer="v216"/></listitem>
</varlistentry>
<listitem><para>Describes the system location if applicable
and known. Takes a human-friendly, free-form string. This may
be as generic as <literal>Berlin, Germany</literal> or as
specific as <literal>Left Rack, 2nd Shelf</literal>.
</para>
<varlistentry>
<term><varname>LOCATION=</varname></term>
<xi:include href="version-info.xml" xpointer="v216"/></listitem>
</varlistentry>
<listitem><para>Describes the system location if applicable
and known. Takes a human-friendly, free-form string. This may
be as generic as <literal>Berlin, Germany</literal> or as
specific as <literal>Left Rack, 2nd Shelf</literal>.
</para>
<varlistentry>
<term><varname>HARDWARE_VENDOR=</varname></term>
<xi:include href="version-info.xml" xpointer="v216"/></listitem>
</varlistentry>
<listitem><para>Specifies the hardware vendor. If unspecified, the hardware vendor set in DMI or
<citerefentry><refentrytitle>hwdb</refentrytitle><manvolnum>7</manvolnum></citerefentry> will be
used.</para>
<varlistentry>
<term><varname>HARDWARE_VENDOR=</varname></term>
<xi:include href="version-info.xml" xpointer="v251"/></listitem>
</varlistentry>
<listitem><para>Specifies the hardware vendor. If unspecified, the hardware vendor set in DMI or
<citerefentry><refentrytitle>hwdb</refentrytitle><manvolnum>7</manvolnum></citerefentry> will be
used.</para>
<varlistentry>
<term><varname>HARDWARE_MODEL=</varname></term>
<xi:include href="version-info.xml" xpointer="v251"/></listitem>
</varlistentry>
<listitem><para>Specifies the hardware model. If unspecified, the hardware model set in DMI or
<citerefentry><refentrytitle>hwdb</refentrytitle><manvolnum>7</manvolnum></citerefentry> will be
used.</para>
<varlistentry>
<term><varname>HARDWARE_MODEL=</varname></term>
<xi:include href="version-info.xml" xpointer="v251"/></listitem>
</varlistentry>
<listitem><para>Specifies the hardware model. If unspecified, the hardware model set in DMI or
<citerefentry><refentrytitle>hwdb</refentrytitle><manvolnum>7</manvolnum></citerefentry> will be
used.</para>
<varlistentry>
<term><varname>HARDWARE_SKU=</varname></term>
<xi:include href="version-info.xml" xpointer="v251"/></listitem>
</varlistentry>
<listitem><para>Specifies the hardware SKU (Stock-Keeping Unit). If unspecified, the hardware
SKU set in DMI will be used.</para>
<varlistentry>
<term><varname>HARDWARE_SKU=</varname></term>
<xi:include href="version-info.xml" xpointer="v258"/></listitem>
</varlistentry>
<listitem><para>Specifies the hardware SKU (Stock-Keeping Unit). If unspecified, the hardware
SKU set in DMI will be used.</para>
<varlistentry>
<term><varname>HARDWARE_VERSION=</varname></term>
<xi:include href="version-info.xml" xpointer="v258"/></listitem>
</varlistentry>
<listitem><para>Specifies the hardware version. If unspecified, the hardware version set in DMI
will be used.</para>
<varlistentry>
<term><varname>HARDWARE_VERSION=</varname></term>
<xi:include href="version-info.xml" xpointer="v258"/></listitem>
</varlistentry>
</variablelist>
<listitem><para>Specifies the hardware version. If unspecified, the hardware version set in DMI
will be used.</para>
<xi:include href="version-info.xml" xpointer="v258"/></listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2>
<title>Custom Fields</title>
<para>Operating system vendors and systemd administrators may extend the file format and introduce new
fields. It is highly recommended to prefix new fields with an OS-specific name in order to avoid name
clashes. Applications reading this file must ignore unknown fields.</para>
<para>Example: <literal>_LOCAL_EMERGENCY_CONTACT="user@example.org"</literal>.</para>
</refsect2>
</refsect1>
<refsect1>

View File

@ -642,7 +642,7 @@
set.</para>
<para>Operating system vendors may extend the file format and introduce new fields. It is highly
recommended to prefix new fields with an OS specific name in order to avoid name clashes. Applications
recommended to prefix new fields with an OS-specific name in order to avoid name clashes. Applications
reading this file must ignore unknown fields.</para>
<para>Example: <literal>DEBIAN_BTS="debbugs://bugs.debian.org/"</literal>.</para>

119
po/km.po
View File

@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-23 15:38+0100\n"
"PO-Revision-Date: 2025-08-09 11:53+0000\n"
"PO-Revision-Date: 2025-08-25 23:45+0000\n"
"Last-Translator: kanitha chim <kchim@redhat.com>\n"
"Language-Team: Khmer (Central) <https://translate.fedoraproject.org/projects/"
"systemd/main/km/>\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.12.2\n"
"X-Generator: Weblate 5.13\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
@ -228,294 +228,315 @@ msgstr "សូមផ្ទៀងផ្ទាត់ physically on security token
#: src/home/pam_systemd_home.c:452
#, c-format
msgid "Please confirm presence on security token of user %s."
msgstr ""
msgstr "សូមបញ្ជាក់វត្តមាននៅលើនិមិត្តសញ្ញាសុវត្ថិភាពរបស់អ្នកប្រើប្រាស់ %s។"
#: src/home/pam_systemd_home.c:463
#, c-format
msgid "Please verify user on security token of user %s."
msgstr ""
"សូមផ្ទៀងផ្ទាត់អ្នកប្រើប្រាស់លើសញ្ញាសម្ងាត់សុវត្ថិភាពរបស់អ្នកប្រើប្រាស់ %s ។"
#: src/home/pam_systemd_home.c:472
msgid ""
"Security token PIN is locked, please unlock it first. (Hint: Removal and re-"
"insertion might suffice.)"
msgstr ""
"កូដ PIN និមិត្តសញ្ញាសុវត្ថិភាពត្រូវបានចាក់សោ សូមដោះសោជាមុនសិន។ (ព័ត៌មានជំនួយ៖ ការដក "
"និងការបញ្ចូលឡើងវិញអាចគ្រប់គ្រាន់។ )"
#: src/home/pam_systemd_home.c:480
#, c-format
msgid "Security token PIN incorrect for user %s."
msgstr ""
msgstr "កូដ PIN និមិត្តសញ្ញាសុវត្ថិភាពមិនត្រឹមត្រូវសម្រាប់អ្នកប្រើប្រាស់ %s ។"
#: src/home/pam_systemd_home.c:481 src/home/pam_systemd_home.c:500
#: src/home/pam_systemd_home.c:519
msgid "Sorry, retry security token PIN: "
msgstr ""
msgstr "សូមអភ័យទោស សូមសាកល្បងកូដ PIN និមិត្តសញ្ញាសុវត្ថិភាពម្តងទៀត៖ "
#: src/home/pam_systemd_home.c:499
#, c-format
msgid "Security token PIN of user %s incorrect (only a few tries left!)"
msgstr ""
"កូដ PIN និមិត្តសញ្ញាសុវត្ថិភាពរបស់អ្នកប្រើ %s មិនត្រឹមត្រូវ (នៅសល់តែព្យាយាមពីរបីដងប៉ុណ្ណោះ!)"
#: src/home/pam_systemd_home.c:518
#, c-format
msgid "Security token PIN of user %s incorrect (only one try left!)"
msgstr ""
"កូដ PIN និមិត្តសញ្ញាសុវត្ថិភាពរបស់អ្នកប្រើ %s មិនត្រឹមត្រូវ (ព្យាយាមនៅសល់តែមួយប៉ុណ្ណោះ!)"
#: src/home/pam_systemd_home.c:685
#, c-format
msgid "Home of user %s is currently not active, please log in locally first."
msgstr ""
"ទំព័រដើមរបស់អ្នកប្រើ %s បច្ចុប្បន្នមិនសកម្មទេ សូម log in locally ជាមុនសិន។"
#: src/home/pam_systemd_home.c:687
#, c-format
msgid "Home of user %s is currently locked, please unlock locally first."
msgstr ""
"ទំព័រដើមរបស់អ្នកប្រើ %s បច្ចុប្បន្នត្រូវបានចាក់សោ សូមដោះសោនៅក្នុងមូលដ្ឋានជាមុនសិន។"
#: src/home/pam_systemd_home.c:719
#, c-format
msgid "Too many unsuccessful login attempts for user %s, refusing."
msgstr ""
msgstr "ការប៉ុនប៉ង log in មិនជោគជ័យច្រើនពេកសម្រាប់អ្នកប្រើប្រាស់ %s, បដិសេធ។"
#: src/home/pam_systemd_home.c:1005
msgid "User record is blocked, prohibiting access."
msgstr ""
msgstr "កំណត់ត្រាអ្នកប្រើប្រាស់ត្រូវបានរារាំង, ហាមឃាត់ការចូលប្រើប្រាស់។"
#: src/home/pam_systemd_home.c:1009
msgid "User record is not valid yet, prohibiting access."
msgstr ""
"កំណត់​ត្រា​អ្នក​ប្រើ​មិន​ទាន់​មាន​សុពលភាព​នៅ​ឡើយ​ទេ, ​ហាម​ឃាត់​ការ​ចូល​ប្រើប្រាស់។"
#: src/home/pam_systemd_home.c:1013
msgid "User record is not valid anymore, prohibiting access."
msgstr ""
msgstr "កំណត់​ត្រា​អ្នក​ប្រើ​មិន​ត្រឹមត្រូវ​ទៀត​ទេ, ​ហាម​ឃាត់​ការ​ចូល​ប្រើ។"
#: src/home/pam_systemd_home.c:1018 src/home/pam_systemd_home.c:1067
msgid "User record not valid, prohibiting access."
msgstr ""
msgstr "កំណត់​ត្រា​អ្នក​ប្រើ​មិន​ត្រឹមត្រូវ, ហាម​ឃាត់​ការ​ចូល​ប្រើ។"
#: src/home/pam_systemd_home.c:1028
#, c-format
msgid "Too many logins, try again in %s."
msgstr ""
msgstr "ការ log in ច្រើនពេក សូមព្យាយាមម្តងទៀតក្នុង %s ។"
#: src/home/pam_systemd_home.c:1039
msgid "Password change required."
msgstr ""
msgstr "ទាមទារការផ្លាស់ប្តូរពាក្យសម្ងាត់។"
#: src/home/pam_systemd_home.c:1043
msgid "Password expired, change required."
msgstr ""
msgstr "ពាក្យសម្ងាត់ផុតកំណត់ ទាមទារការផ្លាស់ប្តូរ។"
#: src/home/pam_systemd_home.c:1049
msgid "Password is expired, but can't change, refusing login."
msgstr ""
"ពាក្យ​សម្ងាត់​បាន​ផុត​កំណត់ ប៉ុន្តែ​មិន​អាច​ផ្លាស់​ប្តូរ​បាន, ​បដិសេធ​ការ​ log in។"
#: src/home/pam_systemd_home.c:1053
msgid "Password will expire soon, please change."
msgstr ""
msgstr "ពាក្យសម្ងាត់នឹងផុតកំណត់ក្នុងពេលឆាប់ៗនេះ សូមផ្លាស់ប្តូរ។"
#: src/hostname/org.freedesktop.hostname1.policy:20
msgid "Set hostname"
msgstr ""
msgstr "កំណត់ឈ្មោះម៉ាស៊ីន"
#: src/hostname/org.freedesktop.hostname1.policy:21
msgid "Authentication is required to set the local hostname."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យកំណត់ local hostname។"
#: src/hostname/org.freedesktop.hostname1.policy:30
msgid "Set static hostname"
msgstr ""
msgstr "កំណត់ static hostname"
#: 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 ""
"ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យកំណត់ local hostname ដែលបាន statically configured ក៏ដូចជា "
"pretty hostname។"
#: src/hostname/org.freedesktop.hostname1.policy:41
msgid "Set machine information"
msgstr ""
msgstr "កំណត់ព័ត៌មានម៉ាស៊ីន"
#: src/hostname/org.freedesktop.hostname1.policy:42
msgid "Authentication is required to set local machine information."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យកំណត់ព័ត៌មានម៉ាស៊ីនមូលដ្ឋាន។"
#: src/hostname/org.freedesktop.hostname1.policy:51
msgid "Get product UUID"
msgstr ""
msgstr "ទទួលបាន product UUID"
#: src/hostname/org.freedesktop.hostname1.policy:52
msgid "Authentication is required to get product UUID."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺទាមទារដើម្បីទទួលបាន product UUID។"
#: src/hostname/org.freedesktop.hostname1.policy:61
msgid "Get hardware serial number"
msgstr ""
msgstr "ទទួលបានលេខ serial របស់ hardware"
#: src/hostname/org.freedesktop.hostname1.policy:62
msgid "Authentication is required to get hardware serial number."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺទាមទារដើម្បីទទួលបានលេខ serial របស់ hardware។"
#: src/hostname/org.freedesktop.hostname1.policy:71
msgid "Get system description"
msgstr ""
msgstr "ទទួលបានការពិពណ៌នារបស់ប្រព័ន្ធ"
#: src/hostname/org.freedesktop.hostname1.policy:72
msgid "Authentication is required to get system description."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺទាមទារដើម្បីទទួលបានការពិពណ៌នារបស់ប្រព័ន្ធ។"
#: src/import/org.freedesktop.import1.policy:22
msgid "Import a disk image"
msgstr ""
msgstr "ទាញចូលរូបភាពឌីស"
#: src/import/org.freedesktop.import1.policy:23
msgid "Authentication is required to import an image."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យទាញចូលរូបភាព។"
#: src/import/org.freedesktop.import1.policy:32
msgid "Export a disk image"
msgstr ""
msgstr "ទាញចេញរូបភាពឌីស"
#: src/import/org.freedesktop.import1.policy:33
msgid "Authentication is required to export disk image."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យទាញចេញរូបភាពឌីស។"
#: src/import/org.freedesktop.import1.policy:42
msgid "Download a disk image"
msgstr ""
msgstr "ទាញយករូបភាពឌីស"
#: src/import/org.freedesktop.import1.policy:43
msgid "Authentication is required to download a disk image."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យទាញយករូបភាពថាស។"
#: src/import/org.freedesktop.import1.policy:52
msgid "Cancel transfer of a disk image"
msgstr ""
msgstr "បោះបង់ការផ្ទេររូបភាពឌីស"
#: src/import/org.freedesktop.import1.policy:53
msgid ""
"Authentication is required to cancel the ongoing transfer of a disk image."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យលុបចោលការផ្ទេររូបភាពថាសដែលកំពុងដំណើរការ។"
#: src/locale/org.freedesktop.locale1.policy:22
msgid "Set system locale"
msgstr ""
msgstr "កំណត់មូលដ្ឋានប្រព័ន្ធ"
#: src/locale/org.freedesktop.locale1.policy:23
msgid "Authentication is required to set the system locale."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យកំណត់មូលដ្ឋានប្រព័ន្ធ។"
#: src/locale/org.freedesktop.locale1.policy:33
msgid "Set system keyboard settings"
msgstr ""
msgstr "កំណត់ការកំណត់ក្តារចុចប្រព័ន្ធ"
#: src/locale/org.freedesktop.locale1.policy:34
msgid "Authentication is required to set the system keyboard settings."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យកំណត់ការកំណត់ក្តារចុចប្រព័ន្ធ។"
#: src/login/org.freedesktop.login1.policy:22
msgid "Allow applications to inhibit system shutdown"
msgstr ""
msgstr "អនុញ្ញាតឱ្យកម្មវិធីរារាំងការបិទប្រព័ន្ធ"
#: src/login/org.freedesktop.login1.policy:23
msgid ""
"Authentication is required for an application to inhibit system shutdown."
msgstr ""
msgstr "ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារសម្រាប់កម្មវិធីដើម្បីរារាំងការបិទប្រព័ន្ធ។"
#: src/login/org.freedesktop.login1.policy:33
msgid "Allow applications to delay system shutdown"
msgstr ""
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 ""
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 ""
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 ""
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 ""
msgstr "អនុញ្ញាតឱ្យកម្មវិធីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ power key"
#: src/login/org.freedesktop.login1.policy:76
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the power key."
msgstr ""
"ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារសម្រាប់កម្មវិធីដើម្បីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ power key។"
#: src/login/org.freedesktop.login1.policy:86
msgid "Allow applications to inhibit system handling of the suspend key"
msgstr ""
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 ""
msgstr "អនុញ្ញាតឱ្យកម្មវិធីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ hibernate key"
#: src/login/org.freedesktop.login1.policy:98
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the hibernate key."
msgstr ""
"ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារសម្រាប់កម្មវិធីដើម្បីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ hibernate key។"
#: src/login/org.freedesktop.login1.policy:107
msgid "Allow applications to inhibit system handling of the lid switch"
msgstr ""
msgstr "អនុញ្ញាតឱ្យកម្មវិធីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ lid switch"
#: src/login/org.freedesktop.login1.policy:108
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the lid switch."
msgstr ""
"ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារសម្រាប់កម្មវិធីដើម្បីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ lid switch។"
#: src/login/org.freedesktop.login1.policy:117
msgid "Allow applications to inhibit system handling of the reboot key"
msgstr ""
msgstr "អនុញ្ញាតឱ្យកម្មវិធីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ reboot key"
#: src/login/org.freedesktop.login1.policy:118
msgid ""
"Authentication is required for an application to inhibit system handling of "
"the reboot key."
msgstr ""
"ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារសម្រាប់កម្មវិធីដើម្បីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ reboot key។"
#: src/login/org.freedesktop.login1.policy:128
msgid "Allow non-logged-in user to run programs"
msgstr ""
msgstr "អនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ដែលមិនបាន logged in ចូលដំណើរការកម្មវិធី"
#: src/login/org.freedesktop.login1.policy:129
msgid "Explicit request is required to run programs as a non-logged-in user."
msgstr ""
"សំណើជាក់លាក់ត្រូវបានទាមទារដើម្បីដំណើរការកម្មវិធីជាអ្នកប្រើប្រាស់ដែលមិនបាន logged in ចូល។"
#: src/login/org.freedesktop.login1.policy:138
msgid "Allow non-logged-in users to run programs"
msgstr ""
msgstr "អនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ដែលមិនបាន logged in ចូលដំណើរការកម្មវិធី"
#: src/login/org.freedesktop.login1.policy:139
msgid "Authentication is required to run programs as a non-logged-in user."

View File

@ -781,7 +781,7 @@ static int unlink_entry(const BootConfig *config, const char *root, const char *
r = boot_config_find_in(config, root, id);
if (r < 0)
return r;
return 0; /* There is nothing to remove. */
if (r == config->default_entry)
log_warning("%s is the default boot entry", id);
@ -802,6 +802,8 @@ static int unlink_entry(const BootConfig *config, const char *root, const char *
log_info("Would remove \"%s\"", e->path);
else {
r = chase_and_unlink(e->path, root, CHASE_PROHIBIT_SYMLINKS|CHASE_TRIGGER_AUTOFS, 0, NULL);
if (r == -ENOENT)
return 0; /* Already removed? */
if (r < 0)
return log_error_errno(r, "Failed to remove \"%s\": %m", e->path);
@ -833,7 +835,8 @@ static int list_remove_orphaned_file(
if (arg_dry_run)
log_info("Would remove %s", path);
else if (unlinkat(dir_fd, de->d_name, 0) < 0)
log_warning_errno(errno, "Failed to remove \"%s\", ignoring: %m", path);
log_full_errno(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, errno,
"Failed to remove \"%s\", ignoring: %m", path);
else
log_info("Removed %s", path);
@ -920,12 +923,9 @@ int verb_list(int argc, char *argv[], void *userdata) {
return cleanup_orphaned_files(&config, arg_esp_path);
} else {
assert(streq(argv[0], "unlink"));
if (arg_xbootldr_path && xbootldr_devid != esp_devid) {
if (arg_xbootldr_path && xbootldr_devid != esp_devid)
r = unlink_entry(&config, arg_xbootldr_path, argv[1]);
if (r == 0 || r != -ENOENT)
return r;
}
return unlink_entry(&config, arg_esp_path, argv[1]);
return RET_GATHER(r, unlink_entry(&config, arg_esp_path, argv[1]));
}
}

View File

@ -388,7 +388,7 @@ static int transfer_generate(const Transfer *t) {
if (!escaped)
return log_oom();
fprintf(f, "ExecStart=:varlinkctl call -q --more /run/systemd/io.systemd.Import io.systemd.Import.Pull '%s'\n",
fprintf(f, "ExecStart=:varlinkctl call -q --more --timeout=infinity /run/systemd/io.systemd.Import io.systemd.Import.Pull '%s'\n",
escaped);
r = fflush_and_check(f);

View File

@ -630,14 +630,35 @@ static int test_userns_api_support(sd_varlink *link) {
return 0;
}
static char* random_name(void) {
char *s = NULL;
static char* hash_name(sd_varlink *link, const char *name) {
int r;
assert(link);
assert(name);
/* Make up a hashed name for this userns. We take the passed name, and hash it together with the
* connection cookie. This should make collisions unlikely but generation still deterministic (this
* matters because on polkit requests we might be called twice, and should generate the same string
* each time, to ensure the Polkit query looks the same) */
uint64_t cookie = 0;
r = socket_get_cookie(sd_varlink_get_fd(link), &cookie);
if (r < 0)
log_debug_errno(r, "Failed to determine connection cookie, ignoring: %m");
struct siphash h;
static sd_id128_t key = SD_ID128_MAKE(ed,3a,bb,01,3a,14,4b,b3,8a,63,a4,ad,ba,2d,c9,0a);
siphash24_init(&h, key.bytes);
siphash24_compress_typesafe(cookie, &h);
siphash24_compress_string(name, &h);
/* Make sure the hashed name fits into utmpx even if prefixed with "ns-", the peer's UID, "-", and
* suffixed by "-65535". */
/* Make up a random name for this userns. Make sure the random name fits into utmpx even if prefixed
* with "ns-", the peer's UID, "-", and suffixed by "-65535". */
assert_cc(STRLEN("ns-65535-") + 16 + STRLEN("-65535") < sizeof_field(struct utmpx, ut_user));
if (asprintf(&s, "%016" PRIx64, random_u64()) < 0)
char *s = NULL;
if (asprintf(&s, "%016" PRIx64, siphash24_finalize(&h)) < 0)
return NULL;
return s;
@ -690,8 +711,8 @@ static int validate_name(sd_varlink *link, const char *name, bool mangle, char *
if (!userns_name_is_valid(un)) {
free(un);
/* if not, make up a random name */
un = random_name();
/* if not, make up a hashed name */
un = hash_name(link, name);
if (!un)
return -ENOMEM;
}
@ -716,7 +737,7 @@ static int validate_name(sd_varlink *link, const char *name, bool mangle, char *
free_and_replace(un, c);
else {
free(c);
c = random_name();
c = hash_name(link, name);
if (!c)
return -ENOMEM;

View File

@ -23,7 +23,7 @@ def find_undocumented_functions(pages, ignorelist):
assert pagetree.getroot().tag == "refentry"
hist_section = pagetree.find("refsect1[title='History']")
for func in pagetree.findall("//funcprototype/funcdef/function"):
for func in pagetree.findall(".//funcprototype/funcdef/function"):
path = f"./refsynopsisdiv/funcsynopsis/funcprototype/funcdef/function[.='{func.text}']"
assert pagetree.findall(path) == [func]

View File

@ -49,8 +49,8 @@ logind.conf.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="NAut
logind.conf.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="KillUserProcesses="]
logind.conf.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="KillOnlyUsers="]
logind.conf.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="InhibitDelayMaxSec="]
machine-info.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="PRETTY_HOSTNAME="]
machine-info.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="ICON_NAME="]
machine-info.xml ./refsect1[title="Options"]/refsect2[title="Machine Information"]/variablelist/varlistentry[term="PRETTY_HOSTNAME="]
machine-info.xml ./refsect1[title="Options"]/refsect2[title="Machine Information"]/variablelist/varlistentry[term="ICON_NAME="]
os-release.xml ./refsect1[title="Options"]/refsect2[title="General information identifying the operating system"]/variablelist/varlistentry[term="NAME="]
os-release.xml ./refsect1[title="Options"]/refsect2[title="Information about the version of the operating system"]/variablelist/varlistentry[term="VERSION="]
os-release.xml ./refsect1[title="Options"]/refsect2[title="General information identifying the operating system"]/variablelist/varlistentry[term="ID="]