1
0
mirror of https://github.com/systemd/systemd synced 2025-09-30 01:04:45 +02:00

Compare commits

..

No commits in common. "37d1f1573b859e61df46bed4648fa60da5b60102" and "ef72263f06d3958ade0548279aef69e352d693c4" have entirely different histories.

9 changed files with 163 additions and 238 deletions

View File

@ -191,14 +191,6 @@ 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
##########################################
@ -396,10 +388,6 @@ 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
##########################################
@ -687,10 +675,6 @@ 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
@ -853,10 +837,6 @@ 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,9 +53,6 @@
<para>The following machine metadata parameters may be set using
<filename>/etc/machine-info</filename>:</para>
<refsect2>
<title>Machine Information</title>
<variablelist class='environment-variables'>
<varlistentry>
@ -176,16 +173,6 @@
<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-25 23:45+0000\n"
"PO-Revision-Date: 2025-08-09 11:53+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.13\n"
"X-Generator: Weblate 5.12.2\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
@ -228,315 +228,294 @@ 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 "សូមបញ្ជាក់វត្តមាននៅលើនិមិត្តសញ្ញាសុវត្ថិភាពរបស់អ្នកប្រើប្រាស់ %s។"
msgstr ""
#: 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 "កូដ PIN និមិត្តសញ្ញាសុវត្ថិភាពមិនត្រឹមត្រូវសម្រាប់អ្នកប្រើប្រាស់ %s ។"
msgstr ""
#: 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 "សូមអភ័យទោស សូមសាកល្បងកូដ PIN និមិត្តសញ្ញាសុវត្ថិភាពម្តងទៀត៖ "
msgstr ""
#: 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 "ការប៉ុនប៉ង log in មិនជោគជ័យច្រើនពេកសម្រាប់អ្នកប្រើប្រាស់ %s, បដិសេធ។"
msgstr ""
#: 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 "ការ log in ច្រើនពេក សូមព្យាយាមម្តងទៀតក្នុង %s ។"
msgstr ""
#: 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 "ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យកំណត់ local hostname។"
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:30
msgid "Set static hostname"
msgstr "កំណត់ 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 ""
"ការផ្ទៀងផ្ទាត់គឺតម្រូវឱ្យកំណត់ 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 "ទទួលបាន product UUID"
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:52
msgid "Authentication is required to get product UUID."
msgstr "ការផ្ទៀងផ្ទាត់គឺទាមទារដើម្បីទទួលបាន product UUID។"
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:61
msgid "Get hardware serial number"
msgstr "ទទួលបានលេខ serial របស់ hardware"
msgstr ""
#: src/hostname/org.freedesktop.hostname1.policy:62
msgid "Authentication is required to get hardware serial number."
msgstr "ការផ្ទៀងផ្ទាត់គឺទាមទារដើម្បីទទួលបានលេខ serial របស់ hardware។"
msgstr ""
#: 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 "អនុញ្ញាតឱ្យកម្មវិធីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ 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 ""
"ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារសម្រាប់កម្មវិធីដើម្បីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ 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 "អនុញ្ញាតឱ្យកម្មវិធីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ 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 ""
"ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារសម្រាប់កម្មវិធីដើម្បីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ hibernate key។"
#: src/login/org.freedesktop.login1.policy:107
msgid "Allow applications to inhibit system handling of the lid switch"
msgstr "អនុញ្ញាតឱ្យកម្មវិធីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ 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 ""
"ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារសម្រាប់កម្មវិធីដើម្បីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ lid switch។"
#: src/login/org.freedesktop.login1.policy:117
msgid "Allow applications to inhibit system handling of the reboot key"
msgstr "អនុញ្ញាតឱ្យកម្មវិធីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ 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 ""
"ការផ្ទៀងផ្ទាត់ត្រូវបានទាមទារសម្រាប់កម្មវិធីដើម្បីរារាំងការគ្រប់គ្រងប្រព័ន្ធនៃ reboot key។"
#: src/login/org.freedesktop.login1.policy:128
msgid "Allow non-logged-in user to run programs"
msgstr "អនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ដែលមិនបាន logged in ចូលដំណើរការកម្មវិធី"
msgstr ""
#: 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 "អនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ដែលមិនបាន logged in ចូលដំណើរការកម្មវិធី"
msgstr ""
#: 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 0; /* There is nothing to remove. */
return r;
if (r == config->default_entry)
log_warning("%s is the default boot entry", id);
@ -802,8 +802,6 @@ 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);
@ -835,8 +833,7 @@ 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_full_errno(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, errno,
"Failed to remove \"%s\", ignoring: %m", path);
log_warning_errno(errno, "Failed to remove \"%s\", ignoring: %m", path);
else
log_info("Removed %s", path);
@ -923,9 +920,12 @@ 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]);
return RET_GATHER(r, unlink_entry(&config, arg_esp_path, argv[1]));
if (r == 0 || r != -ENOENT)
return r;
}
return 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 --timeout=infinity /run/systemd/io.systemd.Import io.systemd.Import.Pull '%s'\n",
fprintf(f, "ExecStart=:varlinkctl call -q --more /run/systemd/io.systemd.Import io.systemd.Import.Pull '%s'\n",
escaped);
r = fflush_and_check(f);

View File

@ -630,35 +630,14 @@ static int test_userns_api_support(sd_varlink *link) {
return 0;
}
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". */
static char* random_name(void) {
char *s = NULL;
/* 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));
char *s = NULL;
if (asprintf(&s, "%016" PRIx64, siphash24_finalize(&h)) < 0)
if (asprintf(&s, "%016" PRIx64, random_u64()) < 0)
return NULL;
return s;
@ -711,8 +690,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 hashed name */
un = hash_name(link, name);
/* if not, make up a random name */
un = random_name();
if (!un)
return -ENOMEM;
}
@ -737,7 +716,7 @@ static int validate_name(sd_varlink *link, const char *name, bool mangle, char *
free_and_replace(un, c);
else {
free(c);
c = hash_name(link, name);
c = random_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"]/refsect2[title="Machine Information"]/variablelist/varlistentry[term="PRETTY_HOSTNAME="]
machine-info.xml ./refsect1[title="Options"]/refsect2[title="Machine Information"]/variablelist/varlistentry[term="ICON_NAME="]
machine-info.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="PRETTY_HOSTNAME="]
machine-info.xml ./refsect1[title="Options"]/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="]