Compare commits

...

45 Commits

Author SHA1 Message Date
Adrian Vovk c584839dfe
Merge c2bd862838 into d80d7a2f2a 2024-11-06 15:18:47 -05:00
Luca Boccassi d80d7a2f2a
docs: fix sbsign manpage syntax and add to list, update release instructions (#35055)
<!-- devel-freezer =
{"comment-id":"2460595245","freezing-tag":"v257-rc1"} -->
2024-11-06 20:18:43 +00:00
Luca Boccassi 088793239e docs: add reminder to run update-man-rules before tagging a release 2024-11-06 19:21:14 +00:00
Luca Boccassi 94a46c20da docs: remove 'v' prefix from meson.version
It is actually v-less
2024-11-06 19:20:00 +00:00
Luca Boccassi d6f4c96b10 man: run update-man-rules 2024-11-06 19:19:13 +00:00
Luca Boccassi 9e51b12e13 man: fix syntax error in systemd-sbsign.xml
Follow-up for 5f163921e9
2024-11-06 19:18:35 +00:00
Luca Boccassi d145d1d410 meson: update version numbers for 257~rc1 2024-11-06 16:58:14 +00:00
Luca Boccassi f10d1c679e NEWS: finalize 2024-11-06 16:58:14 +00:00
Luca Boccassi e1c8f3a8d9 NEWS: update list of contributors 2024-11-06 16:53:46 +00:00
Luca Boccassi 859634ea63 NEWS: add note about sd-sbsign 2024-11-06 16:49:42 +00:00
Luca Boccassi 4484cad6f3
Update hwdb and translations (#35048) 2024-11-06 16:42:11 +00:00
Daan De Meyer e5011dd239
Introduce systemd-sbsign to do secure boot signing (#35021)
Currently in mkosi and ukify we use sbsigntools to do secure boot
signing. This has multiple issues:

- sbsigntools is practically unmaintained, sbvarsign is completely
broken with the latest gnu-efi when built without -fshort-wchar and
upstream has completely ignored my bug report about this.
- sbsigntools only supports openssl engines and not the new providers
API.
- sbsigntools doesn't allow us to cache hardware token pins in the
kernel keyring like we do nowadays when we sign stuff ourselves in
systemd-repart or systemd-measure

There are alternative tools like sbctl and pesign but these do not
support caching hardware token pins in the kernel keyring either.

To get around the issues with sbsigntools, let's introduce our own
tool systemd-sbsign to do secure boot signing. This allows us to
take advantage of our own openssl infra so that hardware token pins
are cached in the kernel keyring as expected and we get openssl
provider support as well.
2024-11-06 17:38:10 +01:00
Luca Boccassi 66d044b560 Update NEWS for recent PRs 2024-11-06 15:50:59 +00:00
Michele Dionisio d865abf9eb networkd: add possibility to specify MulticastIGMPVersion 2024-11-06 15:50:27 +00:00
Luca Boccassi f72fe2d73c
Grammar and formatting for DeviceTree docs (#35050) 2024-11-06 15:13:18 +00:00
Luca Boccassi 839c37dc7f Update translations
ninja -C build systemd-pot
ninja -C build systemd-update-po
2024-11-06 14:42:31 +00:00
Luca Boccassi 8e152361e9 Update hwdb
ninja -C build update-hwdb
2024-11-06 14:41:26 +00:00
Daan De Meyer 65fbf3b194 ukify: Add --signing-provider= option 2024-11-06 15:18:46 +01:00
Léane GRASSER b8cb1bc983 po: Translated using Weblate (French)
Currently translated at 100.0% (253 of 253 strings)

Co-authored-by: Léane GRASSER <leane.grasser@proton.me>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/fr/
Translation: systemd/main
2024-11-06 15:07:28 +01:00
Zbigniew Jędrzejewski-Szmek 78ed1e973c docs/TPM2_PCR_MEASUREMENTS: drop quotes from around section titles
The section headers used quotes as if the strings were some constants. But
AFAICT, those are just normal plain-text titles. Also lowercase them, because
this is almost like a table and it's easier to read without capitalization.
2024-11-06 15:02:24 +01:00
Zbigniew Jędrzejewski-Szmek 265488414c tree-wide: use Device*T*ree spelling
We used both, in fact "Devicetree" was more common. But we have a general rule
that we capitalize all words in names and also we have a DeviceTree=
configuration setting, which we cannot change. If we use two different
spelllings, this will make it harder for people to use the correct one in
config files. So use the "DeviceTree" spelling everywhere.
2024-11-06 15:00:55 +01:00
Luca Boccassi d99fe076b5
introduce report_errno_and_exit() helper (#35028)
This is a follow for https://github.com/systemd/systemd/pull/34853. In
particular, this comment
https://github.com/systemd/systemd/pull/34853#discussion_r1825837705.
2024-11-06 13:51:10 +00:00
Yu Watanabe b66948bbf2 core/manager: silence false-positive warning by coverity
Follow-up for 406f177501.

Closes CID#1564897.
2024-11-06 13:47:33 +00:00
Luca Boccassi 4055529003
machine: introduce io.systemd.Machine.Open method (#34867)
This PR introduces io.systemd.Machine.Open method which combines three
DBus alternatives:
- OpenMachinePTY
- OpenMachineLogin
- OpenMachineShell

The PR contains basic tests.
2024-11-06 13:45:04 +00:00
Zbigniew Jędrzejewski-Szmek d0ab0e5fa5 pid1: stop refusing to boot with cgroup v1
Since v256 we completely fail to boot if v1 is configured. Fedora 41 was just
released with v256.7 and this is probably the first major exposure of users to
this code. It turns out not work very well. Fedora switched to v2 as default in
F31 (2019) and at that time some people added configuration to use v1 either
because of Docker or for other reasons. But it's been long enough ago that
people don't remember this and are now very unhappy when the system refuses to
boot after an upgrade.

Refusing to boot is also unnecessarilly punishing to users. For machines that
are used remotely, this could mean somebody needs to physically access the
machine. For other users, the machine might be the only way to access the net
and help, and people might not know how to set kernel parameters without some
docs. And because this is in systemd, after an upgrade all boot choices are
affected, and it's not possible to e.g. select an older kernel for boot. And
crashing the machine doesn't really serve our goal either: we were giving a
hint how to continue using v1 and nothing else.

If the new override is configured, warn and immediately boot to v1.
If v1 is configured w/o the override, warn and wait 30 s and boot to v2.
Also give a hint how to switch to v2.

https://bugzilla.redhat.com/show_bug.cgi?id=2323323
https://bugzilla.redhat.com/show_bug.cgi?id=2323345
https://bugzilla.redhat.com/show_bug.cgi?id=2322467
https://www.reddit.com/r/Fedora/comments/1gfcyw9/refusing_to_run_under_cgroup_01_sy_specified_on/

The advice is to set systemd.unified_cgroup_hierarchy=1 (instead of removing
systemd.unified_cgroup_hierarchy=0). I think this is easier to convey. Users
who are understand what is going on can just remove the option instead.

The caching is dropped in cg_is_legacy_wanted(). It turns out that the
order in which those functions are called during early setup is very fragile.
If cg_is_legacy_wanted() is called before we have set up the v2 hierarchy,
we incorrectly cache a true answer. The function is called just a handful
of times at most, so we don't really need to cache the response.
2024-11-06 13:43:25 +00:00
Zbigniew Jędrzejewski-Szmek bc11463e8e man/systemd-stub: rework the description of sections
The text added for .dtbauto/.hwids was very hard to grok. This rewords it to be
proper English. No semantic changes are intended.

When updating this, I noticed that the interaction of multi-profile UKIs and
dtb autoselection is very unclear, a FIXME is added.
2024-11-06 14:40:21 +01:00
Daan De Meyer d835c4476b ukify: Add support for systemd-sbsign 2024-11-06 14:01:33 +01:00
Daan De Meyer 8cbd9d8328 sbsign: Add validate-key verb
This verb checks that we can load the specified private key.
2024-11-06 14:01:09 +01:00
Daan De Meyer 5f163921e9 Introduce systemd-sbsign to do secure boot signing
Currently in mkosi and ukify we use sbsigntools to do secure boot
signing. This has multiple issues:

- sbsigntools is practically unmaintained, sbvarsign is completely
broken with the latest gnu-efi when built without -fshort-wchar and
upstream has completely ignored my bug report about this.
- sbsigntools only supports openssl engines and not the new providers
API.
- sbsigntools doesn't allow us to cache hardware token pins in the
kernel keyring like we do nowadays when we sign stuff ourselves in
systemd-repart or systemd-measure

There are alternative tools like sbctl and pesign but these do not
support caching hardware token pins in the kernel keyring either.

To get around the issues with sbsigntools, let's introduce our own
tool systemd-sbsign to do secure boot signing. This allows us to
take advantage of our own openssl infra so that hardware token pins
are cached in the kernel keyring as expected and we get openssl
provider support as well.
2024-11-06 14:00:49 +01:00
Ivan Kruglov 1e2cd07394 machine: tests for io.systemd.Machine.Open 2024-11-06 11:58:51 +01:00
Ivan Kruglov a686bedb88 machine: introduce io.systemd.Machine.Open method 2024-11-06 11:37:51 +01:00
Ivan Kruglov 7779d4944c json: introduce json_dispatch_strv_environment()
I just moved json_dispatch_environment() from src/shared/user-record.c
under name 'json_dispatch_strv_environment()' to shared json code.
2024-11-06 11:37:51 +01:00
Ivan Kruglov b0eca6dee0 machine: machine_default_shell_path() & machine_default_shell_args() helper functions 2024-11-06 11:37:51 +01:00
Ivan Kruglov 41f1f283d7 machine: introduce machine_start_getty() and machine_start_shell() helpers 2024-11-06 11:37:51 +01:00
Ivan Kruglov c0589b0227 use report_errno_and_exit() in src/core/exec-invoke.c 2024-11-06 11:18:38 +01:00
Ivan Kruglov 7022563b5b use report_errno_and_exit() in src/shared/elf-util.c 2024-11-06 11:18:38 +01:00
Ivan Kruglov 3d44b469f3 use report_errno_and_exit() in src/shared/dissect-image.c 2024-11-06 11:18:38 +01:00
Ivan Kruglov 9af164b71c use report_errno_and_exit() in src/shared/mount-util.c 2024-11-06 11:18:38 +01:00
Ivan Kruglov f72a64f352 use report_errno_and_exit() in src/shutdown/umount.c 2024-11-06 11:18:38 +01:00
Ivan Kruglov a567de392d process-util: introduce report_errno_and_exit() as part of src/basic/process-util.{h,c} 2024-11-06 11:18:38 +01:00
Daan De Meyer 0bf70b1984 openssl-util: Set default UI method instead of setting engine method
While for engines we have ENGINE_ctrl() to set the UI method for the
second PIN prompt, for openssl providers we don't have such a feature
which means we get the default openssl UI for the second pin prompt.

Instead, let's set the default UI method which does get used for the
second pin prompt by the pkcs11 provider.
2024-11-05 19:58:45 +01:00
Daan De Meyer cf0238d854 pcrlock: Move pe_hash() and uki_hash() to pe-binary.h
Let's move these to shared so we can reuse pe_hash() in the upcoming
systemd-sbsign.
2024-11-05 14:26:21 +01:00
Daan De Meyer 48c5a4cd67 mkosi: Add ruff and mypy to tools tree packages 2024-11-05 14:26:21 +01:00
Adrian Vovk c2bd862838
wip 2024-09-22 01:34:05 -04:00
Adrian Vovk e20db952e2
WIP repart varlink 2024-09-19 08:26:13 -04:00
114 changed files with 117917 additions and 115300 deletions

107
NEWS
View File

@ -51,6 +51,12 @@ CHANGES WITH 257 in spe:
too many systems, because most NVMe devices only know a namespace 1
by default.
* Support for cgroup v1 ('legacy' and 'hybrid' hierarchies) is now
considered obsolete and systemd by default will ignore configuration
that enables them. To forcibly reenable cgroup v1 support,
SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 must additionally be set on the
kernel command line.
Announcements of Future Feature Removals:
* The D-Bus method org.freedesktop.systemd1.StartAuxiliaryScope() is
@ -64,11 +70,8 @@ CHANGES WITH 257 in spe:
will be phased out in a future release in 2025, i.e. we expect to bump
the minimum baseline to v5.4 then too.
* Support for cgroup v1 ('legacy' and 'hybrid' hierarchies) is now
considered obsolete and systemd by default will refuse to boot under
it. To forcibly reenable cgroup v1 support,
SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 must be set on kernel command
line. The complete removal of cgroup v1 is scheduled for v258.
* The complete removal of support for cgroup v1 ('legacy' and 'hybrid'
hierarchies) is scheduled for v258.
* Support for System V service scripts is deprecated and will be
removed in v258. Please make sure to update your software
@ -183,7 +186,7 @@ CHANGES WITH 257 in spe:
* The systemd.machine_id= kernel command line parameter interpreted by
PID 1 now supports an additional special value: if "firmware" is
specified the machine ID is initialized from the SMBIOS/Devicetree
specified the machine ID is initialized from the SMBIOS/DeviceTree
system UUID. (Previously this was already done in VM environments,
this extends the concept to any system, but only on explicit request
via this option.)
@ -273,10 +276,10 @@ CHANGES WITH 257 in spe:
show up as .device units in systemd.
* The firmware_node/sun sysfs attribute will now be used (if available)
for naming slot-based network interfaces,
i.e. ID_NET_NAME_SLOT. Moreover the interface aliases specified in
Devicetree are now searched for both on the interfaces parent device
(as before) and the device itself (new).
for naming slot-based network interfaces, i.e. ID_NET_NAME_SLOT.
Moreover the interface aliases specified in DeviceTree are now
searched for both on the interface's parent device (as before) and
the device itself (new).
* Various USB hardware wallets have are now recognized by udev via a
.hwdb file, and get the ID_HARDWARE_WALLET= property set, which
@ -381,6 +384,16 @@ CHANGES WITH 257 in spe:
reset one, and so on which only differ in kernel command line, but
nothing else).
* New .dtbauto and .hwids sections are now documented and supported in
systemd-measure, ukify, systemd-stub, and systemd-boot. A single UKI
can contain multiple .dtbauto sections, and the 'compatible' string
therein will be compared with the equivalent field in the DTB
provided by the firmware, if present. If absent, SMBIOS will be used
to calculate hardware IDs and compare them with the content of
.hwids. This allows including multiple DTBs in a single UKI, with
the bootloader automatically selecting the correct one for the
current hardware.
* ukify gained an --extend switch to import an existing UKI to
be extended, and a --measure-base= switch to support measurement
of multi-profile UKIs.
@ -417,6 +430,11 @@ CHANGES WITH 257 in spe:
systemd's native systemd-ask-password logic (and take benefit of its
caching and UI).
* A new systemd-sbsign tool has been added, that can be used to sign
EFI binaries (PE). This tool supports OpenSSL engines and providers,
with pin caching support for PKCS11. ukify supports it as an
alternative to sbsigntool and pesign.
The journal:
* journalctl can now list invocations of a unit with the
@ -643,6 +661,9 @@ CHANGES WITH 257 in spe:
* systemd-tmpfiles --purge switch now requires specification of at
least one tmpfiles.d/ drop-in file.
* tmpfiles.d gained a new '?' specifier for the 'L' type to create a
symlink only if the source exists, and gracefully skip otherwise.
* The new Linux mseal(), listmount(), statmount() syscalls have been
added to relevant system call groups.
@ -720,7 +741,59 @@ CHANGES WITH 257 in spe:
support this however, in which case EnterNamespace= might be an
alternative approach to acquire symbolized backtraces.)
— <place>, <date>
Contributions from: A. Wilcox, Abderrahim Kitouni, Adrian Vovk,
Alain Greppin, Allison Karlitskaya, Alyssa Ross, Anders Jonsson,
Andika Triwidada, Andres Beltran, Anouk Ceyssens, Anton Golubev,
Antonio Alvarez Feijoo, Arian van Putten, Arnaud Patard,
Arthur Shau, Bastien Nocera, Benjamin ROBIN, Brenton Simpson,
Bryan Gurney, ButterflyOfFire, Carlo Teubner, Celeste Liu,
Chen Guanqiao, Chen Qi, Chengen Du, Christoph Anton Mitterer,
Colin Foster, Collin L, Cristian Rodríguez, Daan De Meyer,
Dan Nicholson, Daniel Dawson, Daniel Martinez,
Daniel P. Berrangé, Daniel Rusek, Darsey Litzenberger,
David Joaquín Shourabi Porcel, David Michael, David Rheinsberg,
David Tardon, Davide Cavalca, Derek J. Clark, Diego Viola,
Dimitrys Meliates, Diogo Ivo, DocNITE, Dominique Martinet,
Dr. David Alan Gilbert, Edson Juliano Drosdeck, Erik Sjölund,
Etienne Champetier, Etienne Cordonnier, Ettore Atalan,
Eugeny Shcheglov, Fabian Vogt, Filip Lewiński, Florian Schmaus,
Franck Bui, Frantisek Sumsal, Fábio Rodrigues Ribeiro,
Gabriel Elyas, Gaël PORTAY, Giovanni Baratta, Gregor Herburger,
Gregory Arenius, GwynBleidD, Göran Uddeborg, Hans de Goede,
Helmut Grohne, Henry Chen, Ian Abbott, Integral, Ivan Kruglov,
Ivan Shapovalov, James Coglan, James Hilliard, James Muir,
Jason Yundt, Jeffrey Bosboom, Johannes Schneider,
John A. Leuenhagen, Jose Ignacio Tornos Martinez, JoseskVolpe,
Joshua Grisham, Jörg Behrmann, Kai-Chuan Hsieh, Kamil Szczęk,
Karel Zak, Kornilios Kourtis, Kuntal Majumder, Lennart Poettering,
Luca Boccassi, Lucas Adriano Salles, Lucas Werkmeister,
Ludwig Nussel, Luke T. Shumaker, Lukáš Nykrýn, Léane GRASSER,
Maanya Goenka, Mantas Mikulėnas, Marc Reisner, Marcel Hellwig,
Marin Kresic, Marius Hoch, Martin Srebotnjak, Martin Wilck,
Mary Strodl, Matteo Croce, Matthias Lisin, Matthias Schiffer,
Matthieu Baerts (NGI0), Matthieu CHARETTE,
Mauri de Souza Meneguzzo, Maximilian Wilhelm, Merlin Jehli,
Michael Ferrari, Michal Koutný, Michal Sekletár,
Michele Dionisio, Michiel, Mickaël Salaün, Mike Gilbert,
Mike Yuan, MkKvcs, Nick Cao, Nick Rosbrook, Nils K, Nova840,
Oğuz Ersen, Pavel Borecki, PavlNekrasov, Peter Hutterer,
Peter Rajnoha, Piotr Drąg, Raphaël Mélotte, Renan Guilherme,
Renjaya Raga Zenta, Ricky Tigg, Riku, Robin Lee, Ronan Pigott,
Ryan Wilson, Sam James, Sascha Mester, Sean Rhodes, Sergey A,
ShreyasMahangade, Simon Pilkington, Skye Chappelle, Steve Traylen,
Stuart Hayhurst, Susant Sahani, Takeo Kondo, Temuri Doghonadze,
Thomas Blume, Thorsten Scherer, Tobias Fleig, Tom Coldrick,
Tom Yan, Tomas Bzatek, Topi Miettinen, Uday Shankar,
Vasiliy Kovalev, Vitaly Kuznetsov, Vito Caputo, Vladimir Panteleev,
Will Fancher, WilliButz, Xeonacid, Yanqing Jing, Yu Watanabe,
Yuri Chornoivan, ZHANG Yuntian, Zbigniew Jędrzejewski-Szmek,
Zhou Qiankang, anonymix007, bryango, chayleaf, chenjiayi, csp5me,
cvlc12, fwfy, hugo303, jan@neighbourhood.ie, jauge-technica, lumingzh,
maia x., marginaldev, migleeson, nerdopolis, oldherl, pyfisch, q66,
rajmohan r, reDBo0n, rhellstrom, rindeal, samuelvw01, sinus-x, tfg13,
vdovhanych, xujing, Łukasz Stelmach, Дамјан Георгиевски
— Edinburgh, 2024-11-06
CHANGES WITH 256:
@ -2009,7 +2082,7 @@ CHANGES WITH 255:
respective SBAT sections, so that they can be revoked individually if
needed.
* systemd-boot will no longer load unverified Devicetree blobs when UEFI
* systemd-boot will no longer load unverified DeviceTree blobs when UEFI
SecureBoot is enabled. For more details see:
https://github.com/systemd/systemd/security/advisories/GHSA-6m6p-rjcq-334c
@ -2030,7 +2103,7 @@ CHANGES WITH 255:
command-line addons before measuring them in TPM2 PCR 12, in a single
measurement, instead of measuring them individually.
* systemd-stub will now measure and load Devicetree Blob addons, which
* systemd-stub will now measure and load DeviceTree Blob addons, which
are searched and loaded following the same model as the existing
kernel command-line addons.
@ -2038,7 +2111,7 @@ CHANGES WITH 255:
passed from systemd-boot when running inside Confidential VMs with UEFI
SecureBoot enabled.
* systemd-stub will now load a Devicetree blob even if the firmware did
* systemd-stub will now load a DeviceTree blob even if the firmware did
not load any beforehand (e.g.: for ACPI systems).
* ukify is no longer considered experimental, and now ships in /usr/bin/.
@ -2219,6 +2292,10 @@ CHANGES WITH 255:
specific devices explicitly. NetworkManager will soon implement a
similar logic.
* .network files gained a new MulticastIGMPVersion= setting in the
[Network] section, to control sysctl's
/proc/sys/net/ipv4/conf/INTERFACE/force_igmp_version setting.
systemctl:
* systemctl is-failed now checks the system state if no unit is
@ -4352,7 +4429,7 @@ CHANGES WITH 252 🎃:
* 'udevadm wait' will now listen to kernel uevents too when called with
--initialized=no.
* When naming network devices udev will now consult the Devicetree
* When naming network devices udev will now consult the DeviceTree
"alias" fields for the device.
* systemd-udev will now create infiniband/by-path and

View File

@ -15,18 +15,19 @@ SPDX-License-Identifier: LGPL-2.1-or-later
6. [RC1] Update library numbers in `meson.build`
7. Update version number in `meson.version` (e.g. from `256~devel` to `256~rc1` or from `256~rc3` to `256`). Note that this uses a tilde (\~) instead of a hyphen (-) because tildes sort lower in version comparisons according to the [version format specification](https://uapi-group.org/specifications/specs/version_format_specification/), and we want `255~rc1` to sort lower than `255`.
8. Check dbus docs with `ninja -C build update-dbus-docs`
9. Update translation strings (`ninja -C build systemd-pot`, `ninja -C build systemd-update-po`) - drop the header comments from `systemd.pot` + re-add SPDX before committing. If the only change in a file is the 'POT-Creation-Date' field, then ignore that file.
10. Tag the release: `version="v$(sed 's/~/-/g' meson.version)" && git tag -s "${version}" -m "systemd ${version}"` (tildes are replaced with hyphens, because git doesn't accept the former).
11. Do `ninja -C build`
12. Make sure that the version string and package string match: `build/systemctl --version`
13. [FINAL] Close the github milestone and open a new one (https://github.com/systemd/systemd/milestones)
14. "Draft" a new release on github (https://github.com/systemd/systemd/releases/new), mark "This is a pre-release" if appropriate.
15. Check that announcement to systemd-devel, with a copy&paste from NEWS, was sent. This should happen automatically.
16. Update IRC topic (`/msg chanserv TOPIC #systemd Version NNN released | Online resources https://systemd.io/`)
17. [FINAL] Create an empty -stable branch: `git push systemd origin/main:refs/heads/v${version}-stable`.
18. [FINAL] Build and upload the documentation (on the -stable branch): `ninja -C build doc-sync`
9. Check manpages list with `ninja -C build update-man-rules`
10. Update translation strings (`ninja -C build systemd-pot`, `ninja -C build systemd-update-po`) - drop the header comments from `systemd.pot` + re-add SPDX before committing. If the only change in a file is the 'POT-Creation-Date' field, then ignore that file.
11. Tag the release: `version="v$(sed 's/~/-/g' meson.version)" && git tag -s "${version}" -m "systemd ${version}"` (tildes are replaced with hyphens, because git doesn't accept the former).
12. Do `ninja -C build`
13. Make sure that the version string and package string match: `build/systemctl --version`
14. [FINAL] Close the github milestone and open a new one (https://github.com/systemd/systemd/milestones)
15. "Draft" a new release on github (https://github.com/systemd/systemd/releases/new), mark "This is a pre-release" if appropriate.
16. Check that announcement to systemd-devel, with a copy&paste from NEWS, was sent. This should happen automatically.
17. Update IRC topic (`/msg chanserv TOPIC #systemd Version NNN released | Online resources https://systemd.io/`)
18. [FINAL] Create an empty -stable branch: `git push systemd origin/main:refs/heads/v${version}-stable`.
19. [FINAL] Build and upload the documentation (on the -stable branch): `ninja -C build doc-sync`
20. [FINAL] Change the Github Pages branch to the newly created branch (https://github.com/systemd/systemd/settings/pages) and set the 'Custom domain' to 'systemd.io'
21. [FINAL] Update version number in `meson.version` to the devel version of the next release (e.g. from `v256` to `v257~devel`)
21. [FINAL] Update version number in `meson.version` to the devel version of the next release (e.g. from `256` to `257~devel`)
# Steps to a Successful Stable Release

View File

@ -41,7 +41,7 @@ used for new, additional measurements.
## PCR Measurements Made by `systemd-boot` (UEFI)
### PCS 5, `EV_EVENT_TAG`, "loader.conf"
### PCS 5, `EV_EVENT_TAG`, `loader.conf`
The content of `systemd-boot`'s configuration file, `loader/loader.conf`, is
measured as a tagged event.
@ -52,7 +52,7 @@ measured as a tagged event.
**Measured hash** covers the content of `loader.conf` as it is read from the ESP.
### PCR 12, `EV_IPL`, "Kernel Command Line"
### PCR 12, `EV_IPL`, kernel command line
If the kernel command line was specified explicitly (by the user or in a Boot
Loader Specification Type #1 file), the kernel command line passed to the
@ -70,7 +70,7 @@ trailing NUL bytes).
## PCR Measurements Made by `systemd-stub` (UEFI)
### PCR 11, `EV_IPL`, "PE Section Name"
### PCR 11, `EV_IPL`, PE section name
A measurement is made for each PE section of the UKI that is defined by the
[UKI
@ -87,7 +87,7 @@ both types of records appear interleaved in the event log.
**Measured hash** covers the PE section name in ASCII (*including* a trailing NUL byte!).
### PCR 11, `EV_IPL`, "PE Section Data"
### PCR 11, `EV_IPL`, PE section data
Happens once for each UKI-defined PE section of the UKI, in the canonical UKI
PE section order, as per the UKI specification, see above.
@ -96,7 +96,7 @@ PE section order, as per the UKI specification, see above.
**Measured hash** covers the (binary) PE section contents.
### PCR 12, `EV_IPL`, "Kernel Command Line"
### PCR 12, `EV_IPL`, kernel command line
Might happen up to three times, for kernel command lines from:
@ -110,37 +110,37 @@ UTF-16.
**Measured hash** covers the literal kernel command line in UTF-16 (without any
trailing NUL bytes).
### PCR 12, `EV_EVENT_TAG`, "Devicetrees"
### PCR 12, `EV_EVENT_TAG`, DeviceTrees
Devicetree addons are measured individually as a tagged event.
DeviceTree addons are measured individually as a tagged event.
**Event Tag** `0x6c46f751`
**Description** the addon filename.
**Description** is the addon filename.
**Measured hash** covers the content of the Devicetree.
**Measured hash** covers the content of the DeviceTree.
### PCR 12, `EV_EVENT_TAG`, "Initrd addons"
### PCR 12, `EV_EVENT_TAG`, initrd addons
Initrd addons are measured individually as a tagged event.
**Event Tag** `0x49dffe0f`
**Description** the addon filename.
**Description** is the addon filename.
**Measured hash** covers the contents of the initrd.
### PCR 12, `EV_EVENT_TAG`, "Ucode addons"
### PCR 12, `EV_EVENT_TAG`, ucode addons
Ucode addons are measured individually as a tagged event.
**Event Tag** `0xdac08e1a`
**Description** the addon filename.
**Description** is the addon filename.
**Measured hash** covers the contents of the ucode initrd.
### PCR 12, `EV_IPL`, "Per-UKI Credentials initrd"
### PCR 12, `EV_IPL`, per-uki credentials initrd
**Description** in the event log record is the constant string "Credentials
initrd" in UTF-16.
@ -148,7 +148,7 @@ initrd" in UTF-16.
**Measured hash** covers the per-UKI credentials cpio archive (which is generated
on-the-fly by `systemd-stub`).
### PCR 12, `EV_IPL`, "Global Credentials initrd"
### PCR 12, `EV_IPL`, global credentials initrd
**Description** in the event log record is the constant string "Global
credentials initrd" in UTF-16.
@ -156,7 +156,7 @@ credentials initrd" in UTF-16.
**Measured hash** covers the global credentials cpio archive (which is generated
on-the-fly by `systemd-stub`).
### PCR 13, `EV_IPL`, "sysext initrd"
### PCR 13, `EV_IPL`, sysext initrd
**Description** in the event log record is the constant string "System extension
initrd" in UTF-16.
@ -166,7 +166,7 @@ on-the-fly by `systemd-stub`).
## PCR Measurements Made by `systemd-pcrextend` (Userspace)
### PCR 11, "Boot Phases"
### PCR 11, boot phases
The `systemd-pcrphase.service`, `systemd-pcrphase-initrd.service`,
`systemd-pcrphase-sysinit.service` services will measure the boot phase reached
@ -178,7 +178,7 @@ choose to define additional/different phases.)
**Measured hash** covers the phase string (in UTF-8, without trailing NUL
bytes).
### PCR 15, "Machine ID"
### PCR 15, machine ID
The `systemd-pcrmachine.service` service will measure the machine ID (as read
from `/etc/machine-id`) during boot.
@ -187,7 +187,7 @@ from `/etc/machine-id`) during boot.
formatted in hexadecimal lowercase characters (in UTF-8, without trailing NUL
bytes).
### PCR 15, "File System"
### PCR 15, file system
The `systemd-pcrfs-root.service` and `systemd-pcrfs@.service` services will
measure a string identifying a specific file system, typically covering the
@ -200,7 +200,7 @@ without trailing NUL bytes).
## PCR Measurements Made by `systemd-cryptsetup` (Userspace)
### PCR 15, "Volume Key"
### PCR 15, volume key
The `systemd-cryptsetup@.service` service will measure a key derived from the
LUKS volume key of a specific encrypted volume, typically covering the backing

View File

@ -43040,6 +43040,9 @@ OUI:0C4314*
OUI:0C43F9*
ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
OUI:0C44C0*
ID_OUI_FROM_DATABASE=zte corporation
OUI:0C45BA*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
@ -43061,6 +43064,15 @@ OUI:0C47A94*
OUI:0C47A97*
ID_OUI_FROM_DATABASE=Annapurna labs
OUI:0C47A9A*
ID_OUI_FROM_DATABASE=Lens Technology (Xiangtan) Co.,Ltd
OUI:0C47A9B*
ID_OUI_FROM_DATABASE=Shenzhen Hebang Electronic Co., Ltd
OUI:0C47A9C*
ID_OUI_FROM_DATABASE=Annapurna labs
OUI:0C47A9D*
ID_OUI_FROM_DATABASE=DIG_LINK
@ -46658,6 +46670,9 @@ OUI:14E7C8*
OUI:14E9B2*
ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
OUI:14EAA1*
ID_OUI_FROM_DATABASE=Micronet union Technology (chengdu) co., Ltd
OUI:14EB08*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
@ -48185,6 +48200,9 @@ OUI:1C08C1*
OUI:1C0B52*
ID_OUI_FROM_DATABASE=EPICOM S.A
OUI:1C0B8B*
ID_OUI_FROM_DATABASE=Ubiquiti Inc
OUI:1C0D7D*
ID_OUI_FROM_DATABASE=Apple, Inc.
@ -50186,6 +50204,9 @@ OUI:2050E7*
OUI:205383*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
OUI:20538D*
ID_OUI_FROM_DATABASE=Hon Hai Precision Industry Co., Ltd.
OUI:2053CA*
ID_OUI_FROM_DATABASE=Risk Technology Ltd
@ -51474,7 +51495,7 @@ OUI:245DFCB*
ID_OUI_FROM_DATABASE=ONLY
OUI:245DFCC*
ID_OUI_FROM_DATABASE=Senix Corporation
ID_OUI_FROM_DATABASE=Senix
OUI:245DFCD*
ID_OUI_FROM_DATABASE=Hunan Honestone lntelligence Technology Co.,Ltd
@ -54347,6 +54368,9 @@ OUI:2C64F6*
OUI:2C66AD*
ID_OUI_FROM_DATABASE=NimbleTech Digital Inc.
OUI:2C66F5*
ID_OUI_FROM_DATABASE=SHENZHEN ELECTRICAL APPLIANCES CO.
OUI:2C6798*
ID_OUI_FROM_DATABASE=InTalTech Ltd.
@ -55022,6 +55046,9 @@ OUI:2CDDA3*
OUI:2CDDE9*
ID_OUI_FROM_DATABASE=Arista Networks
OUI:2CDFE6*
ID_OUI_FROM_DATABASE=Raisecom Technology CO., LTD
OUI:2CE032*
ID_OUI_FROM_DATABASE=TCL King Electrical Appliances(Huizhou)Co.,Ltd
@ -58142,6 +58169,9 @@ OUI:382187*
OUI:3821C7*
ID_OUI_FROM_DATABASE=Hewlett Packard Enterprise
OUI:382228*
ID_OUI_FROM_DATABASE=Telink Micro LLC
OUI:38229D*
ID_OUI_FROM_DATABASE=ADB Broadband Italia
@ -68906,6 +68936,9 @@ OUI:580A20*
OUI:580AD4*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:580D0D*
ID_OUI_FROM_DATABASE=GREE ELECTRIC APPLIANCES, INC. OF ZHUHAI
OUI:581031*
ID_OUI_FROM_DATABASE=Hon Hai Precision IND.CO.,LTD
@ -69872,6 +69905,9 @@ OUI:58D50A*
OUI:58D56E*
ID_OUI_FROM_DATABASE=D-Link International
OUI:58D61F*
ID_OUI_FROM_DATABASE=Ubiquiti Inc
OUI:58D67A*
ID_OUI_FROM_DATABASE=TCPlink
@ -74780,6 +74816,9 @@ OUI:689423*
OUI:68944A*
ID_OUI_FROM_DATABASE=zte corporation
OUI:689575*
ID_OUI_FROM_DATABASE=Zhejiang Bodyguard Electronic Co., Ltd
OUI:68962E*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
@ -75857,6 +75896,9 @@ OUI:6C62FE*
OUI:6C639C*
ID_OUI_FROM_DATABASE=Commscope
OUI:6C63F8*
ID_OUI_FROM_DATABASE=Ubiquiti Inc
OUI:6C641A*
ID_OUI_FROM_DATABASE=Penguin Computing
@ -91961,6 +92003,9 @@ OUI:78257A*
OUI:7825AD*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:7826A6*
ID_OUI_FROM_DATABASE=zte corporation
OUI:7828CA*
ID_OUI_FROM_DATABASE=Sonos, Inc.
@ -99560,6 +99605,9 @@ OUI:8C1F6416E*
OUI:8C1F64170*
ID_OUI_FROM_DATABASE=Fracarro Radioindustrie Srl
OUI:8C1F64175*
ID_OUI_FROM_DATABASE=Wuhan YiValley Opto-electric technology Co.,Ltd
OUI:8C1F64177*
ID_OUI_FROM_DATABASE=Emcom Systems
@ -100382,6 +100430,9 @@ OUI:8C1F643B7*
OUI:8C1F643B8*
ID_OUI_FROM_DATABASE=HUBRIS TECHNOLOGIES PRIVATE LIMITED
OUI:8C1F643BA*
ID_OUI_FROM_DATABASE=MITSUBISHI ELECTRIC INDIA PVT. LTD.
OUI:8C1F643BB*
ID_OUI_FROM_DATABASE=Clausal Computing Oy
@ -101690,6 +101741,9 @@ OUI:8C1F6474B*
OUI:8C1F6474E*
ID_OUI_FROM_DATABASE=OpenPark Technologies Kft
OUI:8C1F64751*
ID_OUI_FROM_DATABASE=CITSA Technologies Private Limited
OUI:8C1F64755*
ID_OUI_FROM_DATABASE=Flextronics International Kft
@ -101711,6 +101765,9 @@ OUI:8C1F64760*
OUI:8C1F64762*
ID_OUI_FROM_DATABASE=Support Professionals B.V.
OUI:8C1F64763*
ID_OUI_FROM_DATABASE=Anduril Imaging
OUI:8C1F64764*
ID_OUI_FROM_DATABASE=nanoTRONIX Computing Inc.
@ -103556,6 +103613,9 @@ OUI:8C1F64C5D*
OUI:8C1F64C5E*
ID_OUI_FROM_DATABASE=YUYAMA MFG Co.,Ltd
OUI:8C1F64C60*
ID_OUI_FROM_DATABASE=Intelligent Security Systems (ISS)
OUI:8C1F64C61*
ID_OUI_FROM_DATABASE=Beijing Ceresdate Technology Co.,LTD
@ -104471,6 +104531,9 @@ OUI:8C1F64F13*
OUI:8C1F64F14*
ID_OUI_FROM_DATABASE=Elektrosil GmbH
OUI:8C1F64F19*
ID_OUI_FROM_DATABASE=Hurry-tech
OUI:8C1F64F1B*
ID_OUI_FROM_DATABASE=Nextep Co.,Ltd.
@ -112361,6 +112424,9 @@ OUI:A08966*
OUI:A089E4*
ID_OUI_FROM_DATABASE=Skyworth Digital Technology(Shenzhen) Co.,Ltd
OUI:A08A06*
ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP
OUI:A08A87*
ID_OUI_FROM_DATABASE=HuiZhou KaiYue Electronic Co.,Ltd
@ -114656,6 +114722,9 @@ OUI:A84041*
OUI:A8407D*
ID_OUI_FROM_DATABASE=GD Midea Air-Conditioning Equipment Co.,Ltd.
OUI:A840F8*
ID_OUI_FROM_DATABASE=HUMAX NETWORKS
OUI:A84122*
ID_OUI_FROM_DATABASE=China Mobile (Hangzhou) Information Technology Co.,Ltd.
@ -121592,6 +121661,9 @@ OUI:BCBD84*
OUI:BCBD9E*
ID_OUI_FROM_DATABASE=ITEL MOBILE LIMITED
OUI:BCBEFB*
ID_OUI_FROM_DATABASE=ASL Xiamen Technology CO., LTD
OUI:BCC00F*
ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
@ -126158,6 +126230,9 @@ OUI:C8FAE1*
OUI:C8FB26*
ID_OUI_FROM_DATABASE=Cisco SPVTG
OUI:C8FB54*
ID_OUI_FROM_DATABASE=iMin Technology Pte. Ltd.
OUI:C8FD19*
ID_OUI_FROM_DATABASE=Texas Instruments
@ -130412,6 +130487,9 @@ OUI:D4E32C*
OUI:D4E33F*
ID_OUI_FROM_DATABASE=Nokia
OUI:D4E3C5*
ID_OUI_FROM_DATABASE=zte corporation
OUI:D4E6B7*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
@ -137237,6 +137315,9 @@ OUI:EC74BA*
OUI:EC74D7*
ID_OUI_FROM_DATABASE=Grandstream Networks Inc
OUI:EC750C*
ID_OUI_FROM_DATABASE=TP-Link Systems Inc.
OUI:EC753E*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD

View File

@ -1,5 +1,5 @@
--- 20-acpi-vendor.hwdb.base 2024-11-01 10:15:52.858625476 +0100
+++ 20-acpi-vendor.hwdb 2024-11-01 10:15:52.863625568 +0100
--- 20-acpi-vendor.hwdb.base 2024-11-06 10:40:14.734611315 +0000
+++ 20-acpi-vendor.hwdb 2024-11-06 10:40:14.738611667 +0000
@@ -3,6 +3,8 @@
# Data imported from:
# https://uefi.org/uefi-pnp-export

File diff suppressed because it is too large Load Diff

View File

@ -13067,6 +13067,12 @@ D00000-DFFFFF (base 16) DIG_LINK
Uttar Pradesh 201301
IN
0C-47-A9 (hex) Lens Technology (Xiangtan) Co.,Ltd
A00000-AFFFFF (base 16) Lens Technology (Xiangtan) Co.,Ltd
16 Baishi West Road, Xiangtan Economic and Technological Development Zone
Xiangtan Hunan 411100
CN
B8-4C-87 (hex) Altronix , Corp
A00000-AFFFFF (base 16) Altronix , Corp
140 58th St. Bldg A, Ste 2N
@ -21617,12 +21623,6 @@ E8-6C-C7 (hex) KLAB
Yuseong-gu Daejeon 34014
KR
24-5D-FC (hex) Senix Corporation
C00000-CFFFFF (base 16) Senix Corporation
10516 Route 116, Suite 300
Hinesburg VT 05461
US
24-5D-FC (hex) Hunan Honestone lntelligence Technology Co.,Ltd
D00000-DFFFFF (base 16) Hunan Honestone lntelligence Technology Co.,Ltd
705, Building 1, Fortune Plaza, Wankuntu, Xiangzhang Road, Yuhua District, Changsha City,
@ -26450,6 +26450,12 @@ E00000-EFFFFF (base 16) JET OPTOELECTRONICS CO., LTD.
Mail box 15123 Haifa 3508409
IL
24-5D-FC (hex) Senix
C00000-CFFFFF (base 16) Senix
10516 Route 116, Suite 300
Hinesburg VT 05461
US
0C-47-A9 (hex) Private
400000-4FFFFF (base 16) Private
@ -33193,3 +33199,15 @@ AC-EF-92 (hex) LIFT CONTROLS PRIVATE LIMITED
Survey no 39/1, Murdi, Khandepar, Ponda
Ponda Goa 403406
IN
0C-47-A9 (hex) Annapurna labs
C00000-CFFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2
Mail box 15123 Haifa 3508409
IL
0C-47-A9 (hex) Shenzhen Hebang Electronic Co., Ltd
B00000-BFFFFF (base 16) Shenzhen Hebang Electronic Co., Ltd
2nd Floor West, Bldg B, Kelunte Low Carbon Industry Park, Huarong Road, Dalang, Longhua District
Shenzhen 518000
CN

File diff suppressed because it is too large Load Diff

View File

@ -1069,6 +1069,7 @@ manpages = [
'ENABLE_RFKILL'],
['systemd-run-generator', '8', [], ''],
['systemd-run', '1', [], ''],
['systemd-sbsign', '1', [], ''],
['systemd-sleep.conf', '5', ['sleep.conf.d'], ''],
['systemd-socket-activate', '1', [], ''],
['systemd-socket-proxyd', '8', [], ''],

111
man/systemd-sbsign.xml Normal file
View File

@ -0,0 +1,111 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-sbsign"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-sbsign</title>
<productname>systemd</productname>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-sbsign</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-sbsign</refname>
<refpurpose>Sign PE binaries for EFI Secure Boot</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-sbsign</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>systemd-sbsign</command> can be used to sign PE binaries for EFI Secure Boot.</para>
</refsect1>
<refsect1>
<title>Commands</title>
<variablelist>
<varlistentry>
<term><option>sign</option></term>
<listitem><para>Signs the given PE binary for EFI Secure Boot. Takes a path to a PE binary as its
argument. If the PE binary already has a certificate table, the new signature will be added to it.
Otherwise a new certificate table will be created. The signed PE binary will be written to the path
specified with <option>--output=</option>.</para>
<xi:include href="version-info.xml" xpointer="v257"/>
</listitem>
</varlistentry>
<varlistentry>
<term><option>validate-key</option></term>
<listitem><para>Checks that we can load the private key specified with
<option>--private-key=</option>. </para>
<para>As a side effect, if the private key is loaded from a PIN-protected hardware token, this
command can be used to cache the PIN in the kernel keyring. The
<varname>$SYSTEMD_ASK_PASSWORD_KEYRING_TIMEOUT_SEC</varname> and
<varname>$SYSTEMD_ASK_PASSWORD_KEYRING_TYPE</varname> environment variables can be used to control
how long and in which kernel keyring the PIN is cached.</para>
<xi:include href="version-info.xml" xpointer="v257"/>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--output=<replaceable>PATH</replaceable></option></term>
<listitem><para>Specifies the path where to write the signed PE binary.</para>
<xi:include href="version-info.xml" xpointer="v257"/></listitem>
</varlistentry>
<varlistentry>
<term><option>--private-key=<replaceable>PATH/URI</replaceable></option></term>
<term><option>--private-key-source=<replaceable>TYPE</replaceable>[:<replaceable>NAME</replaceable>]</option></term>
<term><option>--certificate=<replaceable>PATH</replaceable></option></term>
<listitem><para>Set the Secure Boot private key and certificate for use with the
<command>sign</command>. The <option>--certificate=</option> option takes a path to a PEM encoded
X.509 certificate. The <option>--private-key=</option> option can take a path or a URI that will be
passed to the OpenSSL engine or provider, as specified by <option>--private-key-source=</option> as a
<literal>type:name</literal> tuple, such as <literal>engine:pkcs11</literal>. The specified OpenSSL
signing engine or provider will be used to sign the PE binary.</para>
<xi:include href="version-info.xml" xpointer="v257"/></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="no-pager"/>
<xi:include href="standard-options.xml" xpointer="help"/>
<xi:include href="standard-options.xml" xpointer="version"/>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para><simplelist type="inline">
<member><citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
</simplelist></para>
</refsect1>
</refentry>

View File

@ -59,58 +59,66 @@
<!-- Let's keep this in the canonical order we also measure the sections by, i.e. as in
src/fundamental/uki.h's UnifiedSection enum -->
<listitem><para>A <literal>.linux</literal> section with the ELF Linux kernel
image. (Required)</para></listitem>
<listitem><para>A <literal>.linux</literal> section with the ELF Linux kernel image.
This section is required.</para></listitem>
<listitem><para>An <literal>.osrel</literal> section with OS release information, i.e. the contents of
the <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> file
of the OS the kernel belongs to.</para></listitem>
<listitem><para>An optional <literal>.osrel</literal> section with OS release information, i.e. the
contents of the
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> file of
the OS the kernel belongs to.</para></listitem>
<listitem><para>A <literal>.cmdline</literal> section with the kernel command line to pass to the
invoked kernel.</para></listitem>
<listitem><para>An optional <literal>.cmdline</literal> section with the kernel command line to pass to
the invoked kernel.</para></listitem>
<listitem><para>An <literal>.initrd</literal> section with the initrd.</para></listitem>
<listitem><para>An optional <literal>.initrd</literal> section with the initrd.</para></listitem>
<listitem><para>A <literal>.ucode</literal> section with an initrd containing microcode, to be handed
to the kernel before any other initrd. This initrd must not be compressed.</para></listitem>
<listitem><para>An optional <literal>.ucode</literal> section with an initrd containing microcode, to
be handed to the kernel before any other initrd. This initrd must not be compressed.</para></listitem>
<listitem><para>A <literal>.splash</literal> section with an image (in the Windows
<listitem><para>An optional <literal>.splash</literal> section with an image (in the Windows
<filename>.BMP</filename> format) to show on screen before invoking the kernel.</para></listitem>
<listitem><para>A <literal>.dtb</literal> section with a compiled binary DeviceTree.</para></listitem>
<listitem><para>An optional <literal>.dtb</literal> section with a compiled binary DeviceTree.
</para></listitem>
<listitem><para>Zero or more <literal>.dtbauto</literal> sections. Stub will always try to find first matching one.
Matching process extracts first <varname>compatible</varname> string from <literal>.dtbauto</literal>
section and compares it with the first Devicetree's <varname>compatible</varname> string supplied by
the firmware in configuration tables. If firmware does not provide Devicetree, matching with
<varname>.hwids</varname> section will be used instead. Stub will use SMBIOS data to calculate hardware
IDs of the machine (as per <ulink url="https://learn.microsoft.com/en-us/windows-hardware/drivers/install/specifying-hardware-ids-for-a-computer">specification</ulink>),
then it will proceed to trying to find any of them in <literal>.hwids</literal> section and will use first
matching entry's <varname>compatible</varname> as a search key among the <literal>.dtbauto</literal>
entries, in a similar fashion as the use of <varname>compatible</varname> string read from the firmware
provided Devicetree was described before. First matching <literal>.dtbauto</literal> section will be
<listitem><para>Zero or more <literal>.dtbauto</literal> sections. <filename>systemd-stub</filename>
will always use the first matching one. The match is performed by taking the first DeviceTree's
<varname>compatible</varname> string supplied by the firmware in configuration tables and comparing it
with the first <varname>compatible</varname> string from each of the <literal>.dtbauto</literal>
sections. If the firmware does not provide a DeviceTree, the match is done using the
<varname>.hwids</varname> section instead. After selecting a <literal>.hwids</literal> section (see the
description below), the <varname>compatible</varname> string from that section will be used to perform
the same matching procedure. If a match is found, that <literal>.dtbauto</literal> section will be
loaded and will override <varname>.dtb</varname> if present.</para></listitem>
<listitem><para>A <literal>.hwids</literal> section with hardware IDs of the machines to match Devicetrees (refer to <literal>.dtbauto</literal> section description).</para></listitem>
<listitem><para>Zero or more <literal>.hwids</literal> sections with hardware IDs of the machines to
match DeviceTrees. <filename>systemd-stub</filename> will use the SMBIOS data to calculate hardware IDs
of the machine (as per <ulink
url="https://learn.microsoft.com/en-us/windows-hardware/drivers/install/specifying-hardware-ids-for-a-computer">specification</ulink>),
and then it will try to find any of them in each of the <literal>.hwids</literal> sections. The first
matching section will be used.</para></listitem>
<listitem><para>A <literal>.uname</literal> section with the kernel version information, i.e. the
output of <command>uname -r</command> for the kernel included in the <literal>.linux</literal>
<listitem><para>An optional <literal>.uname</literal> section with the kernel version information, i.e.
the output of <command>uname -r</command> for the kernel included in the <literal>.linux</literal>
section.</para></listitem>
<listitem><para>An <literal>.sbat</literal> section with
<ulink url="https://github.com/rhboot/shim/blob/main/SBAT.md">SBAT</ulink> revocation
metadata.</para></listitem>
<listitem><para>An optional <literal>.sbat</literal> section with
<ulink url="https://github.com/rhboot/shim/blob/main/SBAT.md">SBAT</ulink> revocation metadata.
</para></listitem>
<listitem><para>A <literal>.pcrsig</literal> section with a set of cryptographic signatures for the
expected TPM2 PCR values after the kernel has been booted, in JSON format. This is useful for
<listitem><para>An optional <literal>.pcrsig</literal> section with a set of cryptographic signatures
for the expected TPM2 PCR values after the kernel has been booted, in JSON format. This is useful for
implementing TPM2 policies that bind disk encryption and similar to kernels that are signed by a
specific key.</para></listitem>
<listitem><para>A <literal>.pcrpkey</literal> section with a public key in the PEM format matching the
signature data in the <literal>.pcrsig</literal> section.</para></listitem>
<listitem><para>An optional <literal>.pcrpkey</literal> section with a public key in the PEM format
matching the signature data in the <literal>.pcrsig</literal> section.</para></listitem>
</itemizedlist>
<para>In a basic UKI, the sections listed above appear at most once. In a multi-profile UKI,
<!-- FIXME: how does .dtauto/.hwids matching interact with profiles? -->
<para>In a basic UKI, the sections listed above appear at most once, with the exception of
<literal>.dtbauto</literal> and <literal>.hwids</literal> sections. In a multi-profile UKI,
multiple sets of these sections are present in a single file and form "profiles",
one of which can be selected at boot. For this, the PE section <literal>.profile</literal> is
defined to be used as the separator between sets of sections. The
@ -206,7 +214,7 @@
<listitem><para>Similarly, files
<filename><replaceable>foo</replaceable>.efi.extra.d/*.addon.efi</filename> are loaded and verified as
PE binaries and specific sections are loaded from them. Addons are used to pass additional kernel
command line parameters (<literal>.cmdline</literal> section), or Devicetree blobs
command line parameters (<literal>.cmdline</literal> section), or DeviceTree blobs
(<literal>.dtb</literal> section), additional initrds (<literal>.initrd</literal> section),
and microcode updates (<literal>.ucode</literal> section). Addons allow those resources to be passed
regardless of the kernel version being booted, for example allowing platform vendors to ship

View File

@ -123,7 +123,7 @@
<row>
<entry><replaceable>prefix</replaceable><constant>d</constant><replaceable>number</replaceable></entry>
<entry>Devicetree alias index</entry>
<entry>DeviceTree alias index</entry>
</row>
</tbody>

View File

@ -1004,6 +1004,27 @@ DuplicateAddressDetection=none</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>MulticastIGMPVersion=</varname></term>
<listitem>
<para>Configures IPv4 Multicast IGMP Version to be used, and controls the value of
<filename>/proc/sys/net/ipv4/conf/<replaceable>INTERFACE</replaceable>/force_igmp_version</filename>.
Takes one of <literal>no</literal>,
<literal>v1</literal>, <literal>v2</literal>, or <literal>v3</literal>.
When <literal>no</literal>, no enforcement of an IGMP version will be applied, IGMPv1/v2 fallback are allowed, will back to
IGMPv3 mode again if all IGMPv1/v2 Querier Present timer expire.
When <literal>v1</literal>, use of IGMP version 1 will be enforced, and IGMPv1 report will be replied even if IGMPv2/v3
queries are received.
When <literal>v2</literal>, use of IGMP version 2 will be enforced, and IGMPv2 report will be replied if an IGMPv2/v3 query
is received, but fallback to IGMPv1 if an IGMPv1 query is received.
When <literal>v3</literal>, use of IGMP version 3 will be enforced, and the same reaction will be done as <literal>no</literal>.
Defaults to unset, and the sysctl value will be unchanged.
</para>
<xi:include href="version-info.xml" xpointer="v257"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>IPv4AcceptLocal=</varname></term>
<listitem>

View File

@ -100,10 +100,12 @@
the n-th boot phase path set will be signed by the n-th key. This can be used to build different trust
policies for different phases of the boot. In the config file, <varname>PCRPrivateKey=</varname>,
<varname>PCRPublicKey=</varname>, and <varname>Phases=</varname> are grouped into separate sections,
describing separate boot phases. If <varname>SigningEngine=</varname>/<option>--signing-engine=</option>
is specified, then the private keys arguments will be passed verbatim to OpenSSL as URIs, and the public
key arguments will be loaded as X.509 certificates, so that signing can be performed with an OpenSSL
engine.</para>
describing separate boot phases. If one of
<varname>SigningEngine=</varname>/<option>--signing-engine=</option> or
<varname>SigningProvider=</varname>/<option>--signing-provider=</option> is specified, then the private
key arguments will be passed verbatim to OpenSSL as URIs, and the public key arguments will be loaded
as X.509 certificates, so that signing can be performed with an OpenSSL engine or provider
respectively.</para>
<para>If a SecureBoot signing key is provided via the
<varname>SecureBootPrivateKey=</varname>/<option>--secureboot-private-key=</option> option, the resulting
@ -440,9 +442,9 @@
<term><varname>SecureBootSigningTool=<replaceable>SIGNER</replaceable></varname></term>
<term><option>--signtool=<replaceable>SIGNER</replaceable></option></term>
<listitem><para>Whether to use <literal>sbsign</literal> or <literal>pesign</literal>.
Depending on this choice, different parameters are required in order to sign an image.
Defaults to <literal>sbsign</literal>.</para>
<listitem><para>Whether to use <literal>sbsign</literal>, <literal>pesign</literal>, or
<literal>systemd-sbsign</literal>. Depending on this choice, different parameters are required in
order to sign an image. Defaults to <literal>sbsign</literal>.</para>
<xi:include href="version-info.xml" xpointer="v254"/></listitem>
</varlistentry>
@ -452,8 +454,9 @@
<term><option>--secureboot-private-key=<replaceable>SB_KEY</replaceable></option></term>
<listitem><para>A path to a private key to use for signing of the resulting binary. If the
<varname>SigningEngine=</varname>/<option>--signing-engine=</option> option is used, this may also be
an engine-specific designation. This option is required by
<varname>SigningEngine=</varname>/<option>--signing-engine=</option> or
<varname>SigningProvider=</varname>/<option>--signing-provider=</option> option is used, this may
also be an engine or provider specific designation. This option is required by
<varname>SecureBootSigningTool=sbsign</varname>/<option>--signtool=sbsign</option>. </para>
<xi:include href="version-info.xml" xpointer="v253"/></listitem>
@ -464,8 +467,9 @@
<term><option>--secureboot-certificate=<replaceable>SB_CERT</replaceable></option></term>
<listitem><para>A path to a certificate to use for signing of the resulting binary. If the
<varname>SigningEngine=</varname>/<option>--signing-engine=</option> option is used, this may also
be an engine-specific designation. This option is required by
<varname>SigningEngine=</varname>/<option>--signing-engine=</option> or
<varname>SigningProvider=</varname>/<option>--signing-provider=</option> option is used, this may
also be an engine or provider specific designation. This option is required by
<varname>SecureBootSigningTool=sbsign</varname>/<option>--signtool=sbsign</option>. </para>
<xi:include href="version-info.xml" xpointer="v253"/></listitem>
@ -506,14 +510,23 @@
<term><varname>SigningEngine=<replaceable>ENGINE</replaceable></varname></term>
<term><option>--signing-engine=<replaceable>ENGINE</replaceable></option></term>
<listitem><para>An "engine" for signing of the resulting binary. This option is currently passed
verbatim to the <option>--engine=</option> option of
<citerefentry project='archlinux'><refentrytitle>sbsign</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
<listitem><para>An OpenSSL engine to be used for signing the resulting binary and PCR measurements.
</para>
<xi:include href="version-info.xml" xpointer="v253"/></listitem>
</varlistentry>
<varlistentry>
<term><varname>SigningProvider=<replaceable>PROVIDER</replaceable></varname></term>
<term><option>--signing-provider=<replaceable>PROVIDER</replaceable></option></term>
<listitem><para>An OpenSSL provider to be used for signing the resulting binary and PCR
measurements. This option can only be used when using <command>systemd-sbsign</command> as the
signing tool.</para>
<xi:include href="version-info.xml" xpointer="v257"/></listitem>
</varlistentry>
<varlistentry>
<term><varname>SignKernel=<replaceable>BOOL</replaceable></varname></term>
<term><option>--sign-kernel</option></term>

View File

@ -20,8 +20,8 @@ else
project_minor_version = '0'
endif
libsystemd_version = '0.39.0'
libudev_version = '1.7.9'
libsystemd_version = '0.40.0'
libudev_version = '1.7.10'
conf = configuration_data()
conf.set_quoted('PROJECT_URL', 'https://systemd.io/')

View File

@ -1 +1 @@
257~devel
257~rc1

View File

@ -2,7 +2,9 @@
[Build]
ToolsTreePackages=
meson
gcc
gperf
meson
mypy
pkgconf
ruff

View File

@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2023-05-13 19:20+0000\n"
"Last-Translator: Maksim Kliazovich <maxklezovich@gmail.com>\n"
"Language-Team: Belarusian <https://translate.fedoraproject.org/projects/"
@ -116,28 +116,38 @@ msgid "Authentication is required to update a user's home area."
msgstr "Для абнаўлення хатняй прасторы патрабуецца аўтэнтыфікацыя."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Абнавіць хатнюю прастору"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Для абнаўлення хатняй прасторы патрабуецца аўтэнтыфікацыя."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Змяніць памер хатняй прасторы"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "Для змены памеру хатняй прасторы патрабуецца аўтэнтыфікацыя."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Змяніць пароль для хатняй прасторы"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "Для змены пароля для хатняй прасторы патрабуецца аўтэнтыфікацыя."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Стварыць хатнюю прастору"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Для стварэння хатняй прасторы патрабуецца аўтэнтыфікацыя."
@ -1185,6 +1195,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Для наладкі сістэмнага часу патрабуецца аўтэнтыфікацыя."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Для кіравання актыўнымі сеансамі, карыстальнікамі і працоўнымі месцамі "
"патрабуецца аўтэнтыфікацыя."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Наладзіць сістэмны час"
@ -1223,23 +1244,23 @@ msgstr ""
"Для ўключэння або выключэння сінхранізацыі часу па сетцы патрабуецца "
"аўтэнтыфікацыя."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Для запуску \"$(unit)\" патрабуецца аўтэнтыфікацыя."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Для спынення \"$(unit)\" патрабуецца аўтэнтыфікацыя."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Для перачытання стану \"$(unit)\" патрабуецца аўтэнтыфікацыя."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Для перазапуску \"$(unit)\" патрабуецца аўтэнтыфікацыя."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1247,17 +1268,17 @@ msgstr ""
"Для адпраўкі сігналу UNIX працэсам адзінкі \"$(unit)\" патрабуецца "
"аўтэнтыфікацыя."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Для таго, каб скінуць стан \"failed\" у \"$(unit)\", патрабуецца "
"аўтэнтыфікацыя."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Для змены ўласцівасцей \"$(unit)\" патрабуецца аўтэнтыфікацыя."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1265,7 +1286,7 @@ msgstr ""
"Для выдалення файлаў і каталогаў, якія звязаныя з \"$(unit)\", патрабуецца "
"аўтэнтыфікацыя."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2016-06-09 19:50+0300\n"
"Last-Translator: Viktar Vaŭčkievič <victorenator@gmail.com>\n"
"Language-Team: \n"
@ -119,20 +119,30 @@ msgstr ""
"Nieabchodna aŭtentyfikacyja dlia dalučennia prylad da pracoŭnych miescaŭ."
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgid "Update your home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr ""
"Nieabchodna aŭtentyfikacyja dlia dalučennia prylad da pracoŭnych miescaŭ."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
#, fuzzy
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Nieabchodna aŭtentyfikacyja dlia ŭstaliavannia ŭsieahuĺnaha paviedamliennia"
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
#, fuzzy
msgid ""
"Authentication is required to change the password of a user's home area."
@ -140,11 +150,11 @@ msgstr ""
"Nieabchodna aŭtentyfikacyja dlia kiravannia aktyŭnymi siesijami, "
"karystaĺnikami i miescami."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Nieabchodna aŭtentyfikacyja dlia pieračytannia stanu systemd."
@ -1231,6 +1241,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Nieabchodna aŭtentyfikacyja dlia ŭstaliavannia sistemnaha času."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Nieabchodna aŭtentyfikacyja dlia kiravannia aktyŭnymi siesijami, "
"karystaĺnikami i miescami."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Ustaliavać sistemny čas"
@ -1272,23 +1293,23 @@ msgstr ""
"Nieabchodna aŭtentyfikacyja dlia ŭkliučennia abo vykliučennia sinchranizacyi "
"času pa sietcy."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Nieabchodna aŭtentyfikacyja dlia zapusku '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Nieabchodna aŭtentyfikacyja dlia spyniennia '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Nieabchodna aŭtentyfikacyja dlia pieračytannia stanu '$(unit)'."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Nieabchodna aŭtentyfikacyja dlia pierazapusku '$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
#, fuzzy
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
@ -1296,17 +1317,17 @@ msgid ""
msgstr ""
"Nieabchodna aŭtentyfikacyja dlia ŭstaliavannia ŭlascivasciej '$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Nieabchodna aŭtentyfikacyja dlia anuliavannia pamylkovaha stanu '$(unit)'."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Nieabchodna aŭtentyfikacyja dlia ŭstaliavannia ŭlascivasciej '$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
#, fuzzy
msgid ""
"Authentication is required to delete files and directories associated with "
@ -1314,7 +1335,7 @@ msgid ""
msgstr ""
"Nieabchodna aŭtentyfikacyja dlia anuliavannia pamylkovaha stanu '$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
#, fuzzy
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: systemd master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2023-03-17 15:20+0000\n"
"Last-Translator: Velislav Ivanov <velislav.bg@gmail.com>\n"
"Language-Team: Bulgarian <https://translate.fedoraproject.org/projects/"
@ -116,29 +116,39 @@ msgid "Authentication is required to update a user's home area."
msgstr "За обновяване на място за потребител е необходима идентификация."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Обновяване на място за потребител"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "За обновяване на място за потребител е необходима идентификация."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Преоразмеряване на място за потребител"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "За преоразмеряване на място за потребител е необходима идентификация."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Промяна на парола на място за потребител"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"За промяна на парола на място за потребител е необходима идентификация."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Създаване на място за потребител"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "За създаване на място за потребител е необходима идентификация."
@ -1207,6 +1217,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "За задаване на времето на системата е необходима идентификация."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"За управление на работещите сесии, потребители и работни места е необходима "
"идентификация."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Задаване на времето на системата"
@ -1247,23 +1268,23 @@ msgstr ""
"За превключване на синхронизацията на времето по мрежата е необходима "
"идентификация."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "За стартиране на „$(unit)“ е необходима идентификация."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "За спиране на „$(unit)“ е необходима идентификация."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "За презареждане на „$(unit)“ е необходима идентификация."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "За рестартиране на „$(unit)“ е необходима идентификация."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1271,17 +1292,17 @@ msgstr ""
"За изпращането на сигнал на UNIX на процесите на „$(unit)“ е необходима "
"идентификация."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"За премахване на състоянието за неуспех на „$(unit)“ е необходима "
"идентификация."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "За задаване на свойствата на „$(unit)“ е необходима идентификация."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1289,7 +1310,7 @@ msgstr ""
"За изтриването на файловете и директориите на „$(unit)“ е необходима "
"идентификация."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2018-02-27 04:18-0500\n"
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
"Language-Team: Català <ubuntu-l10n-ca@lists.ubuntu.com>\n"
@ -120,31 +120,41 @@ msgstr ""
"Es requereix autenticació per annexar un dispositiu a un lloc de treball."
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgid "Update your home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to resize a user's home area."
msgstr "Es requereix autenticació per establir un missatge de mur"
msgid "Authentication is required to update your home area."
msgstr ""
"Es requereix autenticació per annexar un dispositiu a un lloc de treball."
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
#, fuzzy
msgid "Authentication is required to resize a user's home area."
msgstr "Es requereix autenticació per establir un missatge de mur"
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#, fuzzy
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Es requereix autenticació per gestionar les sessions, usuaris i llocs de "
"treball actius."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Es requereix autenticació per tornar a carregar l'estat de systemd."
@ -1236,6 +1246,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Es requereix autenticació per establir l'hora del sistema."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Es requereix autenticació per gestionar les sessions, usuaris i llocs de "
"treball actius."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Estableix l'hora del sistema"
@ -1276,45 +1297,45 @@ msgstr ""
"Es requereix autenticació per controlar si s'ha d'activar la sincronització "
"de l'hora de xarxa."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Es requereix autenticació per iniciar «$(unit)»."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Es requereix autenticació per aturar «$(unit)»."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Es requereix autenticació per tornar a carregar «$(unit)»."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Es requereix autenticació per reiniciar «$(unit)»."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
#, fuzzy
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "Es requereix autenticació per establir les propietats a «$(unit)»."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "Es requereix autenticació per restablir l'estat «failed» de «$(unit)»."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Es requereix autenticació per establir les propietats a «$(unit)»."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
#, fuzzy
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr "Es requereix autenticació per restablir l'estat «failed» de «$(unit)»."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
#, fuzzy
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."

View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-10-28 15:47+0000\n"
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
"Language-Team: Czech <https://translate.fedoraproject.org/projects/systemd/"
@ -114,28 +114,38 @@ msgid "Authentication is required to update a user's home area."
msgstr "Pro aktualizaci domovského adresáře uživatele je vyžadováno ověření."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Aktualizovat domovský adresář"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Pro aktualizaci domovského adresáře uživatele je vyžadováno ověření."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Změnit velikost domovského adresáře"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Pro změnu velikosti domovského adresáře uživatele je vyžadováno ověření."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Změnit heslo domovského adresáře"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "Pro změnu hesla domovského adresáře uživatele je vyžadováno ověření."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Aktivovat domovskou složku"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Pro vytvoření domovského adresáře uživatele je vyžadováno ověření."
@ -1171,6 +1181,16 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Pro nastavení systémového času je vyžadováno ověření."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Pro správu aktivních sezení, uživatelů a stanovišť je vyžadováno ověření."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Nastavit systémový čas"
@ -1209,37 +1229,37 @@ msgid ""
"shall be enabled."
msgstr "Pro kontrolu synchronizace času ze sítě je vyžadováno ověření."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Pro spuštění „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Pro vypnutí „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Pro opětovné načtení „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Pro restart „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "Pro odeslání UNIX signálu procesům „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "Pro resetování chybného stavu „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Pro nastavení vlastností na „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1247,7 +1267,7 @@ msgstr ""
"Pro odstranění souborů nebo adresářů souvisejících s „$(unit)” je vyžadováno "
"ověření."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2021-06-02 16:03+0000\n"
"Last-Translator: scootergrisen <scootergrisen@gmail.com>\n"
"Language-Team: Danish <https://translate.fedoraproject.org/projects/systemd/"
@ -113,32 +113,43 @@ msgid "Authentication is required to update a user's home area."
msgstr "Der kræves godkendelse for at opdatere en brugers hjemmeområde."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Opdater et hjemmeområde"
# https://www.freedesktop.org/software/systemd/man/sd-login.html
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Der kræves godkendelse for at opdatere en brugers hjemmeområde."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Tilpas størrelsen på et hjemmeområde"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Der kræves godkendelse for at tilpasse størrelsen på en brugers hjemmeområde."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Skift adgangskode for et hjemmeområde"
# https://www.freedesktop.org/software/systemd/man/sd-login.html
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Der kræves godkendelse for at skifte adgangskoden for en brugers "
"hjemmeområde."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Opret et hjemmeområde"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Der kræves godkendelse for at oprette en brugers hjemmeområde."
@ -1178,6 +1189,18 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Der kræves godkendelse for at indstille tiden for systemet."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
# https://www.freedesktop.org/software/systemd/man/sd-login.html
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Der kræves godkendelse for at håndtere aktive sessioner, brugere og "
"arbejdsstationer."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Indstil tiden for systemet"
@ -1218,45 +1241,45 @@ msgstr ""
"Der kræves godkendelse for at kontrollere hvorvidt synkronisering af "
"netværkstid skal aktiveres."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Der kræves godkendelse for at starte '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Der kræves godkendelse for at stoppe '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Der kræves godkendelse for at genindlæse '$(unit)'."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Der kræves godkendelse for at genstarte '$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "Der kræves godkendelse for at indstille egenskaber på '$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Der kræves godkendelse for at nulstille \"fejl\"-tilstanden på '$(unit)'."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Der kræves godkendelse for at indstille egenskaber på '$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr ""
"Der kræves godkendelse for at nulstille \"fejl\"-tilstanden på '$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -13,7 +13,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-11-05 13:46+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
@ -131,33 +131,46 @@ msgstr ""
"Benutzers notwendig."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Einen persönlichen Bereich aktualisieren"
# https://www.freedesktop.org/software/systemd/man/sd-login.html
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr ""
"Legitimierung ist zum Aktualisieren des persönlichen Bereichs eines "
"Benutzers notwendig."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Größe eines persönlichen Bereichs ändern"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Legitimierung ist für die Größenänderung des persönlichen Bereichs eines "
"Benutzers notwendig."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Passwort eines persönlichen Bereichs ändern"
# https://www.freedesktop.org/software/systemd/man/sd-login.html
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Legitimierung ist zum Ändern des Passworts eines persönlichen Bereichs eines "
"Benutzers notwendig."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Einen persönlichen Bereich anlegen"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr ""
@ -1253,6 +1266,18 @@ msgstr "Alte Systemaktualisierungen bereinigen"
msgid "Authentication is required to cleanup old system updates."
msgstr "Legitimierung ist zum Festlegen der Systemzeit notwendig."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
# https://www.freedesktop.org/software/systemd/man/sd-login.html
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Legitimierung ist zur Verwaltung aktiver Sitzungen, Benutzern und "
"Arbeitsstationen notwendig."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Die Systemzeit festlegen"
@ -1293,23 +1318,23 @@ msgstr ""
"Legitimierung ist zum Festlegen, ob Netzwerkzeitabgeich eingeschaltet sein "
"soll, erforderlich."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Legitimierung ist zum Starten von »$(unit)« notwendig."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Legitimierung ist zum Stoppen von »$(unit)« notwendig."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Legitimierung ist zum erneuten Laden von »$(unit)« notwendig."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Legitimierung ist zum Neustarten von »$(unit)« notwendig."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1317,18 +1342,18 @@ msgstr ""
"Legitimierung ist zum Senden eines UNIX-Signals an die Prozesse von "
"»$(unit)« notwendig."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Legitimierung ist zum Zurücksetzen des Status »fehlgeschlagen« von »$(unit)« "
"notwendig"
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Legitimierung ist zum Festlegen der Eigenschaften von »$(unit)« notwendig."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1336,7 +1361,7 @@ msgstr ""
"Legitimierung ist zum Löschen von Dateien und Verzeichnissen, die zu "
"»$(unit)« gehören, erforderlich."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-08-04 03:41+0000\n"
"Last-Translator: Dimitrys Meliates <demetresmeliates+fedora@gmail.com>\n"
"Language-Team: Greek <https://translate.fedoraproject.org/projects/systemd/"
@ -118,31 +118,41 @@ msgid "Authentication is required to update a user's home area."
msgstr "Απαιτείται ταυτοποίηση για την ενημέρωση αρχικής περιοχής ενός χρήστη."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Ενημέρωση αρχικής περιοχής"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Απαιτείται ταυτοποίηση για την ενημέρωση αρχικής περιοχής ενός χρήστη."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Αλλαγή μεγέθους αρχικής περιοχής"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Απαιτείται ταυτοποίηση για την αλλαγή του μεγέθους αρχικής περιοχής ενός "
"χρήστη."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
#, fuzzy
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Απαιτείται πιστοποίηση για προσάρτηση μιας συσκευής σε έναν σταθμό εργασίας."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος."
@ -1222,6 +1232,16 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Απαιτείται πιστοποίηση για προσάρτηση μιας συσκευής σε έναν σταθμό εργασίας."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Ορισμός ώρας συστήματος"
@ -1262,51 +1282,51 @@ msgstr ""
"Απαιτείται πιστοποίηση για να ελέγξετε αν ο συγχρονισμός ώρας δικτύου θα "
"ενεργοποιηθεί."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
#, fuzzy
msgid "Authentication is required to start '$(unit)'."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
#, fuzzy
msgid "Authentication is required to stop '$(unit)'."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
#, fuzzy
msgid "Authentication is required to reload '$(unit)'."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
#, fuzzy
msgid "Authentication is required to restart '$(unit)'."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
#, fuzzy
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
#, fuzzy
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε τοπικά όνομα οικοδεσπότη."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
#, fuzzy
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
#, fuzzy
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr "Απαιτείται πιστοποίηση για να ορίσετε τοπικά όνομα οικοδεσπότη."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
#, fuzzy
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."

View File

@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2021-08-26 18:05+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
"Language-Team: Spanish <https://translate.fedoraproject.org/projects/systemd/"
@ -118,31 +118,42 @@ msgstr ""
"Necesita autenticarse para actualizar el espacio personal de un usuario."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Actualizar un espacio personal"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr ""
"Necesita autenticarse para actualizar el espacio personal de un usuario."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Redimensionar un espacio personal"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Necesita autenticarse para redimensionar el espacio personal de un usuario."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Cambiar contraseña de un espacio personal"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Necesita autenticarse para cambiar la contraseña del espacio personal de un "
"usuario."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Crear un área home"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Se requiere autenticación para crear un área home de usuario."
@ -1215,6 +1226,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Necesita autenticarse para establecer la fecha y hora del sistema."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Necesita autenticarse para administrar las sesiones activas, usuarios y "
"puestos de trabajo."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Establecer fecha y hora del sistema"
@ -1255,23 +1277,23 @@ msgstr ""
"Necesita autenticarse para activar/desactivar la sincronización de hora por "
"red."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Necesita autenticarse para iniciar «$(unit)»."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Necesita autenticarse para detener «$(unit)»."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Necesita autenticarse para recargar «$(unit)»."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Necesita autenticarse para reiniciar «$(unit)»."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
#, fuzzy
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
@ -1279,16 +1301,16 @@ msgid ""
msgstr ""
"Se requiere autenticación para establecer las propiedades de '$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Necesita autenticarse para reiniciar el estado de «fallido» de «$(unit)»."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Necesita autenticarse para establecer las propiedades de «$(unit)»."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
#, fuzzy
msgid ""
"Authentication is required to delete files and directories associated with "
@ -1296,7 +1318,7 @@ msgid ""
msgstr ""
"Se requiere autenticación para reiniciar el estado de «fallido» de '$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
#, fuzzy
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."

View File

@ -4,7 +4,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2022-10-24 15:23+0000\n"
"Last-Translator: H A <contact+fedora@hen.ee>\n"
"Language-Team: Estonian <https://translate.fedoraproject.org/projects/"
@ -106,28 +106,38 @@ msgid "Authentication is required to update a user's home area."
msgstr "Autentmine on vajalik, et uuendada kasutaja koduala."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Uuenda koduala"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Autentmine on vajalik, et uuendada kasutaja koduala."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Muuda koduala suurust"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "Autentmine on vajalik, et muuta kasutaja koduala suurust."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Muuda koduala parooli"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "Autentimine on vajalik, et muuta kasutaja koduala parooli."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Loo koduala"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Autentimine on vajalik, et luua kasutaja koduala."
@ -1114,6 +1124,16 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Autentimine on vajalik, et määrata süsteemi aega."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Autentimine on vajalik, et hallata aktiivseid seansse, kasutajaid ning kohti."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Määra süsteemi aeg"
@ -1153,45 +1173,45 @@ msgstr ""
"Autentimine on vajalik, et kontrollida kas võrgu ajasünkroneerimine peaks "
"olema lubatud."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Autentimine on vajalik, et käivitada '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Autentimine on vajalik, et peatada '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Autentimine on vajalik, et laadida '$(unit)' uuesti."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Autentimine on vajalik, et restartida '$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
"Autentimine on vajalik, et saata UNIX signaali '$(unit)' protsessidele."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Autentimine on vajalik, et lähtestada '$(unit)' \"ebaõnnestunud\" olekut."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Autentimine on vajalik, et määrata '$(unit)' omadusi."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr "Autentimine on vajalik, et kustutada '$(unit)' faile ja kauste."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2023-06-03 15:48+0000\n"
"Last-Translator: Asier Sarasua Garmendia <asier.sarasua@gmail.com>\n"
"Language-Team: Basque <https://translate.fedoraproject.org/projects/systemd/"
@ -113,27 +113,36 @@ msgid "Authentication is required to update a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgid "Update your home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:54
msgid "Authentication is required to resize a user's home area."
msgstr ""
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Autentifikazioa behar da sistemaren eskualde-ezarpenak ezartzeko."
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Autentifikazioa behar da sistemaren eskualde-ezarpenak ezartzeko."
@ -1094,6 +1103,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Autentifikazioa behar da systemd egoera birkargatzeko."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Autentifikazioa behar da sistema-zerbitzua edo unitate-fitxategiak "
"kudeatzeko."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr ""
@ -1130,43 +1150,43 @@ msgid ""
"shall be enabled."
msgstr ""
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-09-12 13:43+0000\n"
"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\n"
"Language-Team: Finnish <https://translate.fedoraproject.org/projects/systemd/"
@ -112,27 +112,37 @@ msgid "Authentication is required to update a user's home area."
msgstr "Todennus vaaditaan käyttäjän kotialueen päivittämiseksi."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Päivitä kotialue"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Todennus vaaditaan käyttäjän kotialueen päivittämiseksi."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Muuta kotialueen kokoa"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "Todennus vaaditaan käyttäjän kotialueen koon muuttamiseksi."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Muuta kotialueen salasana"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "Todennus vaaditaan käyttäjän kotialueen salasanan vaihtamiseksi."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Aktivoi kotialue"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "Todennus vaaditaan käyttäjän kotialueen aktivoimiseksi."
@ -392,7 +402,8 @@ msgstr "Peruuta levykuvan siirto"
#: src/import/org.freedesktop.import1.policy:53
msgid ""
"Authentication is required to cancel the ongoing transfer of a disk image."
msgstr "Todennus vaaditaan meneillään olevan levykuvan siirron peruuttamiseksi."
msgstr ""
"Todennus vaaditaan meneillään olevan levykuvan siirron peruuttamiseksi."
#: src/locale/org.freedesktop.locale1.policy:22
msgid "Set system locale"
@ -1161,6 +1172,17 @@ msgstr "Puhdista vanhat järjestelmäpäivitykset"
msgid "Authentication is required to cleanup old system updates."
msgstr "Todennus vaaditaan vanhojen järjestelmäpäivitysten puhdistamiseen."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Todennus vaaditaan aktiivisten istuntojen, käyttäjien ja paikkojen "
"hallintaan."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Aseta järjestelmän aika"
@ -1202,38 +1224,38 @@ msgstr ""
"Todennus vaaditaan sen hallitsemiseksi, onko verkkoajan synkronointi "
"käytössä."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Todennus vaaditaan $(unit):n aloittamiseksi."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Todennus vaaditaan $(unit):n lopettamiseksi."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Todennus vaaditaan $(unit):n uudelleen lataamiseksi."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Todennus vaaditaan $(unit):n uudelleen käynnistämiseksi."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
"Todennus vaaditaan UNIX-signaalin lähettämiseen '$(unit)'-prosesseihin."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "Todennus vaaditaan \"epäonnistuneen\" tilan \"$(unit)\" nollaamiseksi."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Todennus vaaditaan, jotta ominaisuudet asetetaan arvoon '$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1241,7 +1263,7 @@ msgstr ""
"Todennus vaaditaan tiedostojen ja hakemistojen poistamiseen, jotka liittyvät "
"'$(unit)':iin."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -11,8 +11,8 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"PO-Revision-Date: 2024-09-06 09:38+0000\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-11-06 12:46+0000\n"
"Last-Translator: Léane GRASSER <leane.grasser@proton.me>\n"
"Language-Team: French <https://translate.fedoraproject.org/projects/systemd/"
"main/fr/>\n"
@ -21,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.7.2\n"
"X-Generator: Weblate 5.8.2\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
@ -128,31 +128,43 @@ msgstr ""
"utilisateur."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Mettre à jour un espace personnel"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr ""
"Une authentification est requise pour mettre à jour l'espace personnel d'un "
"utilisateur."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Redimensionner un espace personnel"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Une authentification est requise pour redimensionner l'espace personnel d'un "
"utilisateur."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Changer le mot de passe d'un espace personnel"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Une authentification est requise pour changer le mot de passe de l'espace "
"personnel d'un utilisateur."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Activer un espace personnel"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr ""
"Une authentification est requise pour activer l'espace personnel d'un "
@ -815,27 +827,27 @@ msgstr ""
#: src/login/org.freedesktop.login1.policy:374
msgid "Indicate to the boot loader to boot to the boot loader menu"
msgstr "Indiquer au boot loader d'afficher le menu de sélection"
msgstr "Indiquer au bootloader de démarrer sur le menu de sélection"
#: 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 ""
"Une authentification est requise pour indiquer au boot loader d'afficher le "
"menu de sélection."
"Une authentification est requise pour indiquer au bootloader de démarrer sur "
"le menu de sélection."
#: src/login/org.freedesktop.login1.policy:385
msgid "Indicate to the boot loader to boot a specific entry"
msgstr "Indiquer au boot loader de démarrer une entrée spécifique"
msgstr "Indiquer au bootloader de démarrer une entrée spécifique"
#: 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 ""
"Une authentification est requise pour indiquer au boot loader de démarrer "
"une entrée spécifique."
"Une authentification est requise pour indiquer au bootloader de démarrer une "
"entrée spécifique."
#: src/login/org.freedesktop.login1.policy:396
msgid "Set a wall message"
@ -1247,6 +1259,17 @@ msgstr ""
"Une authentification est requise pour nettoyer les anciennes mises à jour du "
"système."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Une authentification est requise pour gérer les sessions actives, les "
"utilisateurs et les postes (seats)."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Définir l'heure du système"
@ -1288,23 +1311,23 @@ msgstr ""
"Une authentification est requise pour activer ou désactiver la "
"synchronisation de l'heure avec le réseau."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Une authentification est requise pour démarrer '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Une authentification est requise pour arrêter '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Une authentification est requise pour recharger '$(unit)'."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Une authentification est requise pour redémarrer '$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1312,18 +1335,18 @@ msgstr ""
"Une authentification est requise pour envoyer un signal UNIX aux processus "
"de '$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Une authentification est requise pour réinitialiser l'état \"failed\" de "
"'$(unit)'."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Une authentification est requise pour définir des propriétés de '$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1331,7 +1354,7 @@ msgstr ""
"Une authentification est requise pour supprimer les fichiers et les dossiers "
"associés à '$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2023-04-14 18:20+0000\n"
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <https://translate.fedoraproject.org/projects/"
@ -116,31 +116,41 @@ msgid "Authentication is required to update a user's home area."
msgstr "Requírese autenticación para actualizar o espazo persoal dun usuario."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Actualizar un espazo persoal"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Requírese autenticación para actualizar o espazo persoal dun usuario."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Redimensionar un espazo persoal"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Requírese autenticación para redimensionar o espazo persoal dun usuario."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Cambiar contrasinal dun espazo persoal"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Requírese autenticación para cambiar o contrasinal dun espazo persoal dun "
"usuario."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Crear un área persoal"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Requírese autenticación para crear un área persoal."
@ -1190,6 +1200,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Requírese autenticación para estabelecer a hora do sistema."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Requírese autenticación para xestionar as sesións, usuarios e asentos "
"activos."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Estabelecer a hora do sistema"
@ -1230,23 +1251,23 @@ msgstr ""
"Requírese autenticación para controlar se a sincronización de hora por rede "
"debería activarse."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Requírese autenticación para inciar '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Requírese autenticación para deter '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Requírese autenticación para recargar '$(unit)'."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Requírese autenticación para reiniciar '$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1254,16 +1275,16 @@ msgstr ""
"Requírese autenticación para enviarlle un sinal UNIX aos procesos de "
"'$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Requírese autenticación para reinicair o estado «fallido» de '$(unit)'."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Requírese autenticación para estabelecer as propiedades en '$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1271,7 +1292,7 @@ msgstr ""
"Requírese autenticación para eliminar ficheiros ou directorios asociados con "
"'$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr "Requírese autenticación para conxelar o proceso da unidade '$(unit)'."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2023-11-22 00:01+0000\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <https://translate.fedoraproject.org/projects/systemd/"
@ -106,28 +106,38 @@ msgid "Authentication is required to update a user's home area."
msgstr "נדרש אימות כדי לעדכן אזור בית למשתמש."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "עדכון אזור בית"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "נדרש אימות כדי לעדכן אזור בית למשתמש."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "שינוי גודל אזור בית"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "נדרש אימות כדי לשנות גודל אזור בית למשתמש."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "החלפת סיסמה של אזור בית"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "נדרש אימות כדי להחליף סיסמה של אזור בית למשתמש."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "יצירת אזור בית"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "נדרש אימות כדי ליצור אזור בית למשתמש."
@ -1098,6 +1108,15 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "נדרש אימות כדי להגדיר את שעון המערכת."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr "נדרש אימות כדי לנהל הפעלות, משתמשים ומושבים פעילים."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "הגדרת שעון המערכת"
@ -1137,43 +1156,43 @@ msgid ""
"shall be enabled."
msgstr "נדרש אימות כדי להפעיל או לכבות סנכרון שעון מהרשת."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "נדרש אימות כדי להפעיל את $(unit)."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "נדרש אימות כדי לעצור את $(unit)."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "נדרש אימות כדי לרענן את $(unit)."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "נדרש אימות כדי להפעיל את $(unit) מחדש."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "נדרש אימות כדי לשלוח אות יוניקס לתהליכים של $(unit)."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "נדרש אימות כדי לאפס את המצב „נכשל” של $(unit)."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "נדרש אימות כדי להגדיר מאפיינים על $(unit)."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr "נדרש אימות כדי למחוק קבצים ותיקיות שמשויכים אל $(unit)."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr "נדרש אימות כדי להפשיר או להקפיא את התהליכים של $(unit)."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-06-03 00:35+0000\n"
"Last-Translator: Scrambled 777 <weblate.scrambled777@simplelogin.com>\n"
"Language-Team: Hindi <https://translate.fedoraproject.org/projects/systemd/"
@ -106,27 +106,37 @@ msgid "Authentication is required to update a user's home area."
msgstr "उपयोक्ता के गृह क्षेत्र का अद्यतन करने के लिए प्रमाणीकरण आवश्यक है।"
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "गृह क्षेत्र का अद्यतन करें"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "उपयोक्ता के गृह क्षेत्र का अद्यतन करने के लिए प्रमाणीकरण आवश्यक है।"
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "गृह क्षेत्र का आकार बदलें"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "उपयोक्ता के गृह क्षेत्र का आकार बदलने के लिए प्रमाणीकरण आवश्यक है।"
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "गृह क्षेत्र का पासवर्ड बदलें"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "उपयोक्ता के गृह क्षेत्र का पासवर्ड बदलने के लिए प्रमाणीकरण आवश्यक है।"
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "गृह क्षेत्र सक्रिय करें"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "उपयोक्ता के गृह क्षेत्र को सक्रिय करने के लिए प्रमाणीकरण आवश्यक है।"
@ -1126,6 +1136,15 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "सिस्टम समय निर्धारित करने के लिए प्रमाणीकरण आवश्यक है।"
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr "सक्रिय सत्रों, उपयोक्ताओं और सीटों को प्रबंधित करने के लिए प्रमाणीकरण आवश्यक है।"
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "सिस्टम समय निर्धारित करें"
@ -1166,43 +1185,43 @@ msgstr ""
"यह नियंत्रित करने के लिए प्रमाणीकरण आवश्यक है कि नेटवर्क समय समन्वयन सक्षम किया जाएगा "
"या नहीं।"
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "'$(unit)' शुरू करने के लिए प्रमाणीकरण आवश्यक है।"
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "'$(unit)' को रोकने के लिए प्रमाणीकरण आवश्यक है।"
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "'$(unit)' को पुनः लोड करने के लिए प्रमाणीकरण आवश्यक है।"
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "'$(unit)' को पुनः आरंभ करने के लिए प्रमाणीकरण आवश्यक है।"
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "'$(unit)' की प्रक्रियाओं में UNIX सिग्नल भेजने के लिए प्रमाणीकरण आवश्यक है।"
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "'$(unit)' की \"विफल\" स्थिति को रीसेट करने के लिए प्रमाणीकरण आवश्यक है।"
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "'$(unit)' पर गुण निर्धारित करने के लिए प्रमाणीकरण आवश्यक है।"
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr "'$(unit)' से जुड़ी फाइलों और निर्देशिकाओं को हटाने के लिए प्रमाणीकरण आवश्यक है।"
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr "'$(unit)' यूनिट की प्रक्रियाओं को जमाने या पिघलाने के लिए प्रमाणीकरण आवश्यक है।"

View File

@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-08-04 03:41+0000\n"
"Last-Translator: Marin Kresic <marinjurekresic@gmail.com>\n"
"Language-Team: Croatian <https://translate.fedoraproject.org/projects/"
@ -112,28 +112,38 @@ msgid "Authentication is required to update a user's home area."
msgstr "Potrebna je ovjera za nadopunu osobnog prostora korisnika."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Nadopuni osobni prostor"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Potrebna je ovjera za nadopunu osobnog prostora korisnika."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Promjeni veličinu osobnog prostora korisnika"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "Potrebna je ovjera za promjenu veličine osobnog prostora korisnika."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Promijeni lozinku osobnog prostora"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "Potrebna je ovjera za promjenu lozinke osobnog prostora korisnika."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Stvori osobni prostor"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Potrebna je ovjera za stvaranje osobnog prostora korisnika."
@ -1170,6 +1180,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Potrebna je ovjera za postavljanje vremena sustava."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Potrebna je ovjera za upravljanje aktivnim sesijama, korisnicima i skupovima "
"sesija i hardvera."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Postavi vrijeme sustava"
@ -1209,37 +1230,37 @@ msgstr ""
"Potrebna je ovjera za uključivanje ili isključivanje mrežnog usklađivanja "
"vremena."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Potrebna je ovjera za pokretanje '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Potrebna je ovjera za zaustavljanje '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Potrebna je ovjera za ponovno učitavnje '$(unit)'."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Potrebna je ovjera za ponovno pokretanje'$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "Potrebna je ovjera za slanje UNIX signala u procese '$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "Potrebna je ovjera za vraćanje \"neuspjelog\" stanja '$(unit)'."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Potrebna je ovjera za postavljanje svojstava na '$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1247,7 +1268,7 @@ msgstr ""
"Potrebna je ovjera za brisanje datoteka i direktorija pridruženih sa "
"'$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -10,7 +10,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2023-09-27 01:36+0000\n"
"Last-Translator: Balázs Úr <balazs@urbalazs.hu>\n"
"Language-Team: Hungarian <https://translate.fedoraproject.org/projects/"
@ -120,30 +120,40 @@ msgid "Authentication is required to update a user's home area."
msgstr "Hitelesítés szükséges a felhasználó saját területének frissítéséhez."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Saját terület frissítése"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Hitelesítés szükséges a felhasználó saját területének frissítéséhez."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Saját terület átméretezése"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "Hitelesítés szükséges a felhasználó saját területének átméretezéséhez."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Saját terület jelszavának megváltoztatása"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Hitelesítés szükséges a felhasználó saját területe jelszavának "
"megváltoztatásához."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Saját terület létrehozása"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Hitelesítés szükséges a felhasználó saját területének létrehozásához."
@ -1213,6 +1223,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Hitelesítés szükséges a rendszeridő beállításához."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Hitelesítés szükséges az aktív munkamenetek, felhasználók és munkaállomások "
"kezeléséhez."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Rendszeridő beállítása"
@ -1253,23 +1274,23 @@ msgstr ""
"Hitelesítés szükséges annak vezérléséhez, hogy a hálózati időszinkronizáció "
"engedélyezve legyen."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Hitelesítés szükséges a(z) „$(unit)” elindításához."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Hitelesítés szükséges a(z) „$(unit)” leállításához."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Hitelesítés szükséges a(z) „$(unit)” újratöltéséhez."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Hitelesítés szükséges a(z) „$(unit)” újraindításához."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1277,18 +1298,18 @@ msgstr ""
"Hitelesítés szükséges a(z) „$(unit)” folyamatainak történő UNIX szignál "
"küldéséhez."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Hitelesítés szükséges a(z) „$(unit)” „failed” állapotának visszaállításához."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Hitelesítés szükséges a(z) „$(unit)” egységen lévő tulajdonságok "
"beállításához."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1296,7 +1317,7 @@ msgstr ""
"Hitelesítés szükséges a(z) „$(unit)” egységhez hozzárendelt fájlok és "
"könyvtárak törléséhez."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-10-27 05:38+0000\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <https://translate.fedoraproject.org/projects/"
@ -112,29 +112,39 @@ msgid "Authentication is required to update a user's home area."
msgstr "Otentikasi diperlukan untuk memperbarui suatu area rumah pengguna."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Memperbarui suatu area rumah"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Otentikasi diperlukan untuk memperbarui suatu area rumah pengguna."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Mengubah ukuran area rumah"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "Otentikasi diperlukan untuk mengubah ukuran area rumah pengguna."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Ubah kata sandi dari suatu area rumah"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Otentikasi diperlukan untuk mengubah kata sandi dari suatu area rumah "
"pengguna."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Aktifkan suatu area home"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "Otentikasi diperlukan untuk mengaktifkan suatu area home pengguna."
@ -1154,6 +1164,15 @@ msgstr "Bersihkan pembaruan sistem lama"
msgid "Authentication is required to cleanup old system updates."
msgstr "Otentikasi diperlukan untuk membersihkan pembaruan sistem lama."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr "Otentikasi diperlukan untuk mengelola seat, pengguna, dan sesi aktif."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Setel waktu sistem"
@ -1194,23 +1213,23 @@ msgstr ""
"Otentikasi diperlukan untuk mengendalikan apakah sinkronisasi waktu jaringan "
"mesti difungsikan."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Otentikasi diperlukan untuk memulai '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Otentikasi diperlukan untuk menghentikan '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Otentikasi diperlukan untuk memuat ulang '$(unit)'."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Otentikasi diperlukan untuk memulai ulang '$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1218,16 +1237,16 @@ msgstr ""
"Otentikasi diperlukan untuk megirim suatu sinyal UNIX ke proses dari "
"'$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Otentikasi diperlukan untuk me-reset keadaan \"failed\" dari '$(unit)'."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Otentikasi diperlukan untuk menata properti pada '$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1235,7 +1254,7 @@ msgstr ""
"Otentikasi diperlukan untuk menghapus berkas dan direktori yang terkait "
"dengan '$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-05-02 04:40+0200\n"
"Last-Translator: Daniele Medri <dmedri@gmail.com>\n"
"Language-Team: italian\n"
@ -116,29 +116,39 @@ msgid "Authentication is required to update a user's home area."
msgstr "Autenticazione richiesta per aggiornare l'area home di un utente."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Aggiorna un'area home"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Autenticazione richiesta per aggiornare l'area home di un utente."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Ridimensiona un'area home"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "Autenticazione richiesta per ridimensionare l'area home di un utente."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Modifica password di un'area home"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Autenticazione richiesta per modificare la password dell'area home di un "
"utente."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Attiva un'area home"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "Autenticazione richiesta per attivare l'area home di un utente."
@ -1210,6 +1220,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Autenticazione richiesta per impostare l'orario di sistema."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Autenticazione richiesta per gestire le sessioni attive, gli utenti e le "
"postazioni."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Imposta l'orario di sistema"
@ -1252,23 +1273,23 @@ msgstr ""
"Autenticazione richiesta per verificare se la sincronizzazione dell'orario "
"in rete deve essere attivata."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Autenticazione richiesta per avviare '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Autenticazione richiesta per fermare '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Autenticazione richiesta per ricaricare '$(unit)'."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Autenticazione richiesta per riavviare '$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1276,16 +1297,16 @@ msgstr ""
"Autenticazione richiesta per inviare un segnale UNIX ai processi di "
"'$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Autenticazione richiesta per riconfigurare lo stato \"fallito\" di '$(unit)'."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Autenticazione richiesta per configurare le proprietà di '$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1293,7 +1314,7 @@ msgstr ""
"Autenticazione richiesta per eliminare i file e le directory associate a "
"'$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2021-09-09 03:04+0000\n"
"Last-Translator: Takuro Onoue <kusanaginoturugi@gmail.com>\n"
"Language-Team: Japanese <https://translate.fedoraproject.org/projects/"
@ -106,27 +106,37 @@ msgid "Authentication is required to update a user's home area."
msgstr "ユーザのホーム領域の更新には認証が必要です。"
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "ホーム領域の更新"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "ユーザのホーム領域の更新には認証が必要です。"
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "ホーム領域のサイズ変更"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "ユーザのホーム領域のサイズ変更には認証が必要です。"
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "ホーム領域のパスワード変更"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "ユーザのホーム領域のパスワードを変更するには認証が必要です。"
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "ホーム領域の有効化"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "ユーザのホーム領域を有効化するには認証が必要です。"
@ -1108,6 +1118,15 @@ msgstr "過去のシステム更新を削除"
msgid "Authentication is required to cleanup old system updates."
msgstr "過去のシステム更新を削除するには認証が必要です。"
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr "アクティブなセッションやユーザ,シートを管理するには認証が必要です。"
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "システムの時刻設定"
@ -1146,44 +1165,44 @@ msgid ""
"shall be enabled."
msgstr "ネットワーク経由の時刻同期を有効もしくは無効にするには認証が必要です。"
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "'$(unit)'を開始するには認証が必要です。"
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "'$(unit)'を停止するには認証が必要です。"
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "'$(unit)'を再読込するには認証が必要です。"
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "'$(unit)'を再起動するには認証が必要です。"
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "'$(unit)'のプロセスにUNIXシグナルを送るには認証が必要です。"
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "'$(unit)'の「失敗」状態をリセットするには認証が必要です。"
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "'$(unit)'のプロパティを設定するには認証が必要です。"
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr ""
"'$(unit)'に関連付けられたファイルやディレクトリの削除には認証が必要です。"
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr "'$(unit)'のプロセスを凍結もしくは凍結解除するには認証が必要です。"

View File

@ -4,7 +4,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-08-24 10:36+0000\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <https://translate.fedoraproject.org/projects/"
@ -108,27 +108,37 @@ msgid "Authentication is required to update a user's home area."
msgstr "სახლის ტერიტორიის განახლებისთვის საჭიროა ავთენტიკაცია."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "სახლის ტერიტორიის განახლება"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "სახლის ტერიტორიის განახლებისთვის საჭიროა ავთენტიკაცია."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "სახლის ტერიტორიის ზომის შეცვლა"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "სახლის ტერიტორიის ზომის შეცვლისთვის საჭიროა ავთენტიკაცია."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "სახლის ტერიტორიის პაროლის შეცვლა"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "სახლის ტერიტორიის პაროლის შეცვლისთვის საჭიროა ავთენტიკაცია."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "საწყისი ადგილის აქტივაცია"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "მომხმარებლის საწყისი ადგილის აქტივაციისთვის აუცილებელია ავთენტიკაცია."
@ -1152,6 +1162,17 @@ msgstr "ძველი სისტემის განახლებებ
msgid "Authentication is required to cleanup old system updates."
msgstr "ძველი სისტემური განახლებების გასუფთავებას ავთენტიკაცია სჭირდება."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"აქტიური სესიების, მომხმარებლებისა და სამუშაო მაგიდების მართვას ავთენტიკაცია "
"სჭირდება."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "სისტემური დროის დაყენება"
@ -1189,40 +1210,40 @@ msgid ""
"shall be enabled."
msgstr "დროის ქსელური სინქრონიზაციის ჩართ/გამორთ-თვის საჭიროა ავთენტიკაცია."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "'$(unit)'-ის გასაშვებად საჭიროა ავთენტიკაცია."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "'$(unit)'-ის გასაჩერებლად საჭიროა ავთენტიკაცია."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "'$(unit)'-ის გადასატვირთად საჭიროა ავთენტიკაცია."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "'$(unit)'-ის გადასატვირთად საჭიროა ავთენტიკაცია."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
"'$(unit)'-ის პროცესებისთვის UNIX სიგნალის გასაგზავნად საჭიროა ავთნტიკაცია."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"'$(unit)'-ის შეცდომით გაშვების მდგომარეობის გასასუფთავებლად საჭიროა "
"ავთენტიკაცია."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "'$(unit)'-ის თვისებების დასაყენებლად საჭიროა ავთენტიკაცია."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1230,7 +1251,7 @@ msgstr ""
"'$(unit)'-თან ასოცირებული ფაილების და საქაღალდეების წასაშლელად საჭიროა "
"ავთენტიკაცია."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr "'$(unit)'-ის პროცესების გასაყინად საჭიროა ავთენტიკაცია."

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-10-07 04:52+0000\n"
"Last-Translator: ButterflyOfFire <butterflyoffire@protonmail.com>\n"
"Language-Team: Kabyle <https://translate.fedoraproject.org/projects/systemd/"
@ -104,28 +104,37 @@ 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 ""
#, fuzzy
msgid "Update your home area"
msgstr "Rnu tmennaḍt agejdan"
#: src/home/org.freedesktop.home1.policy:54
msgid "Authentication is required to resize a user's home area."
msgid "Authentication is required to update your home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Rnu tmennaḍt agejdan"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr ""
@ -1063,6 +1072,14 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
msgid "Authentication is required to manage optional features"
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr ""
@ -1099,43 +1116,43 @@ msgid ""
"shall be enabled."
msgstr ""
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-08-24 10:36+0000\n"
"Last-Translator: 김인수 <simmon@nplob.com>\n"
"Language-Team: Korean <https://translate.fedoraproject.org/projects/systemd/"
@ -109,27 +109,37 @@ msgid "Authentication is required to update a user's home area."
msgstr "사용자 홈 영역을 최신화 하려면 인증이 필요합니다."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "홈 영역을 최신화"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "사용자 홈 영역을 최신화 하려면 인증이 필요합니다."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "홈 영역을 조정"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "사용자 홈 영역을 조정하려면 인증이 필요합니다."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "홈 영역 비밀번호 변경"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "사용자 홈 영역의 비밀번호를 변경하려면 인증이 필요합니다."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "홈 영역 활성화"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "사용자의 홈 영역을 활성화에 인증이 필요합니다."
@ -1094,7 +1104,8 @@ msgstr "지정된 시스템 버전 설치"
msgid ""
"Authentication is required to update the system to a specific (possibly old) "
"version."
msgstr "지정된 (아마도 오래된) 버전으로 시스템을 최신화하려면 인증이 필요합니다."
msgstr ""
"지정된 (아마도 오래된) 버전으로 시스템을 최신화하려면 인증이 필요합니다."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:65
msgid "Cleanup old system updates"
@ -1104,6 +1115,15 @@ msgstr "오래된 시스템 최신화 정리"
msgid "Authentication is required to cleanup old system updates."
msgstr "오래된 시스템 최신화를 정리하려면 인증이 필요합니다."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr "활성 세션, 사용자 시트를 관리하려면 인증이 필요합니다."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "시스템 시간 설정"
@ -1142,43 +1162,43 @@ msgid ""
"shall be enabled."
msgstr "네트워크 시간 동기화의 활성화 여부를 제어하려면 인증이 필요합니다."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "인증은 '$(unit)'을 시작하는데 필요합니다."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "인증은 '$(unit)'을 멈추는데 필요합니다."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "인증은 '$(unit)'을 다시 불러오는데 필요합니다."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "인증은 '$(unit)'을 다시 시작하는데 필요합니다."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "'$(unit)'의 처리에 유닉스 신호를 전송하려면 인증이 필요합니다."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "인증은 '$(unit)'의 \"실패\"를 되돌리는데 필요합니다."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "인증은 '$(unit)'의 속성을 설정하는데 필요합니다."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr "인증은 '$(unit)'과 관련된 파일과 디렉토리를 삭제하는데 필요합니다."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr "'$(unit)'단위의 처리를 동결 또는 해제하려면 인증이 필요합니다."

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-02-15 23:36+0000\n"
"Last-Translator: mooo <hazap@hotmail.com>\n"
"Language-Team: Lithuanian <https://translate.fedoraproject.org/projects/"
@ -122,31 +122,41 @@ msgstr ""
"Norint prijungti įrenginį prie darbo vietos, reikia nustatyti tapatybę."
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgid "Update your home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to resize a user's home area."
msgstr "Norint nustatyti sienos pranešimą, reikia nustatyti tapatybę"
msgid "Authentication is required to update your home area."
msgstr ""
"Norint prijungti įrenginį prie darbo vietos, reikia nustatyti tapatybę."
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
#, fuzzy
msgid "Authentication is required to resize a user's home area."
msgstr "Norint nustatyti sienos pranešimą, reikia nustatyti tapatybę"
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#, fuzzy
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Norint tvarkyti aktyvius seansus, naudotojus ir darbo vietas, reikia "
"nustatyti tapatybę."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Norint iš naujo įkelti systemd būseną, reikia patvirtinti tapatybę."
@ -1205,6 +1215,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Norint nustatyti sistemos laiką, reikia nustatyti tapatybę."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Norint tvarkyti aktyvius seansus, naudotojus ir darbo vietas, reikia "
"nustatyti tapatybę."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Nustatyti sistemos laiką"
@ -1247,40 +1268,40 @@ msgstr ""
"Norint valdyti ar tinklo laiko sinchronizavimas turėtų būti įjungtas, reikia "
"nustatyti tapatybę."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Norint paleisti \"$(unit)\", reikia nustatyti tapatybę."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Norint stabdyti \"$(unit)\", reikia nustatyti tapatybę."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Norint įkelti \"$(unit)\" iš naujo, reikia nustatyti tapatybę."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Norint paleisti \"$(unit)\" iš naujo, reikia nustatyti tapatybę."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
"Norint siųsti UNIX signalą į \"$(unit)\" procesus, reikia nustatyti tapatybę."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Norint atstatyti \"$(unit)\" įtaiso \"failed\" būseną, reikia nustatyti "
"tapatybę."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Norint nustatyti \"$(unit)\" savybes, reikia nustatyti tapatybę."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
#, fuzzy
msgid ""
"Authentication is required to delete files and directories associated with "
@ -1289,7 +1310,7 @@ msgstr ""
"Norint atstatyti \"$(unit)\" įtaiso \"failed\" būseną, reikia nustatyti "
"tapatybę."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
#, fuzzy
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."

View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2023-08-21 17:21+0000\n"
"Last-Translator: Maarten <maarten@posteo.de>\n"
"Language-Team: Dutch <https://translate.fedoraproject.org/projects/systemd/"
@ -121,32 +121,43 @@ msgstr ""
"Authenticatie is vereist voor het bijwerken van een persoonlijke ruimte."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Werk een persoonlijke ruimte bij"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr ""
"Authenticatie is vereist voor het bijwerken van een persoonlijke ruimte."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Verander de grootte van een persoonlijke ruimte"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Authenticatie is vereist voor het veranderen van de grootte van een "
"persoonlijke ruimte."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Wijzig het wachtwoord van een persoonlijke ruimte"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Authenticatie is vereist voor het wijzigen van het wachtwoord van een "
"persoonlijke ruimte."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Maak een persoonlijke ruimte"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "Authenticatie is vereist voor het maken van een persoonlijke ruimte."
@ -1317,6 +1328,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Authenticatie is vereist voor het instellen van de systeemtijd."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Authenticatie is vereist voor het beheren van de actieve sessies, van de "
"gebruikers en van de apparaten die zijn toegewezen aan de werkplekken."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Stel de systeemtijd in"
@ -1359,23 +1381,23 @@ msgstr ""
"Authenticatie is vereist voor het in- of uitschakelen van synchronisatie van "
"de systeemtijd met een tijdserver."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Authenticatie is vereist voor het starten van '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Authenticatie is vereist voor het stoppen van '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Authenticatie is vereist voor het opnieuw laden van '$(unit)'."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Authenticatie is vereist voor het opnieuw starten van '$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1383,19 +1405,19 @@ msgstr ""
"Authenticatie is vereist voor het zenden van een UNIX-signaal naar de "
"processen van '$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Authenticatie is vereist voor het terugzetten van de toestand \"failed\" van "
"'$(unit)'."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Authenticatie is vereist voor het instellen van de eigenschappen van "
"'$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1403,7 +1425,7 @@ msgstr ""
"Authenticatie is vereist voor het verwijderen van bestanden en mappen die "
"gerelateerd zijn aan '$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-01-16 14:35+0000\n"
"Last-Translator: A S Alam <aalam@users.noreply.translate.fedoraproject.org>\n"
"Language-Team: Punjabi <https://translate.fedoraproject.org/projects/systemd/"
@ -104,28 +104,38 @@ msgid "Authentication is required to update a user's home area."
msgstr "ਵਰਤੋਂਕਾਰ ਦੇ ਹੋਮ ਖੇਤਰ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਪਰਮਾਣਿਕਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "ਹੋਮ ਖੇਤਰ ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "ਵਰਤੋਂਕਾਰ ਦੇ ਹੋਮ ਖੇਤਰ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਪਰਮਾਣਿਕਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "ਹੋਮ ਖੇਤਰ ਦਾ ਆਕਾਰ ਬਦਲੋ"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "ਵਰਤੋਂਕਾਰ ਦੇ ਹੋਮ ਖੇਤਰ ਦੇ ਆਕਰ ਨੂੰ ਬਦਲਣ ਲਈ ਪਰਮਾਣਿਕਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "ਹੋਮ ਖੇਤਰ ਲਈ ਪਾਸਵਰਡ ਬਦਲੋ"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "ਵਰਤੋਂਕਾਰ ਦੇ ਹੋਮ ਖੇਤਰ ਲਈ ਪਾਸਵਰਡ ਨੂੰ ਬਦਲਣ ਲਈ ਪਰਮਾਣਿਕਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "ਹੋਮ ਖੇਤਰ ਬਣਾਓ"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "ਵਰਤੋਂਕਾਰ ਦੇ ਹੋਮ ਖੇਤਰ ਨੂੰ ਬਣਾਉਣ ਲਈ ਪਰਮਾਣਿਕਤਾ ਚਾਹੀਦੀ ਹੈ।"
@ -1083,6 +1093,15 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "ਸਿਸਟਮ ਟਾਈਮ ਸੈੱਟ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr "ਸਿਸਟਮ ਸੇਵਾਵਾਂ ਜਾਂ ਯੂਨਿਟ ਫ਼ਾਇਲਾਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "ਸਿਸਟਮ ਸਮਾੰ ਸੈੱਟ ਕਰੋ"
@ -1119,43 +1138,43 @@ msgid ""
"shall be enabled."
msgstr ""
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "'$(unit)' ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "'$(unit)' ਨੂੰ ਰੋਕਣ ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "'$(unit)' ਨੂੰ ਮੁੜ-ਲੋਡ (reload) ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "'$(unit)' ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ (restart) ਕਰਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ।"
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-08-24 10:36+0000\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <https://translate.fedoraproject.org/projects/systemd/"
@ -122,31 +122,43 @@ msgstr ""
"użytkownika."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Aktualizacja przestrzeni domowej"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr ""
"Wymagane jest uwierzytelnienie, aby zaktualizować przestrzeń domową "
"użytkownika."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Zmiana rozmiaru przestrzeni domowej"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Wymagane jest uwierzytelnienie, aby zmienić rozmiar przestrzeni domowej "
"użytkownika."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Zmiana hasła przestrzeni domowej"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Wymagane jest uwierzytelnienie, aby zmienić hasło przestrzeni domowej "
"użytkownika."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Aktywowanie przestrzeni domowej"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr ""
"Wymagane jest uwierzytelnienie, aby aktywować przestrzeń domową użytkownika."
@ -1185,8 +1197,8 @@ msgid ""
"Authentication is required to update the system to a specific (possibly old) "
"version."
msgstr ""
"Wymagane jest uwierzytelnienie, aby zaktualizować system do konkretnej ("
"możliwie, że poprzedniej) wersji."
"Wymagane jest uwierzytelnienie, aby zaktualizować system do konkretnej "
"(możliwie, że poprzedniej) wersji."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:65
msgid "Cleanup old system updates"
@ -1198,6 +1210,17 @@ msgstr ""
"Wymagane jest uwierzytelnienie, aby wyczyścić poprzednie aktualizacje "
"systemu."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Wymagane jest uwierzytelnienie, aby zarządzać aktywnymi sesjami, "
"użytkownikami i stanowiskami."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Ustawienie czasu systemu"
@ -1238,25 +1261,25 @@ msgstr ""
"Wymagane jest uwierzytelnienie, aby kontrolować, czy włączyć synchronizację "
"czasu przez sieć."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Wymagane jest uwierzytelnienie, aby uruchomić jednostkę „$(unit)”."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Wymagane jest uwierzytelnienie, aby zatrzymać jednostkę „$(unit)”."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr ""
"Wymagane jest uwierzytelnienie, aby ponownie wczytać jednostkę „$(unit)”."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr ""
"Wymagane jest uwierzytelnienie, aby ponownie uruchomić jednostkę „$(unit)”."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1264,18 +1287,18 @@ msgstr ""
"Wymagane jest uwierzytelnienie, aby wysłać sygnał uniksowy do procesów "
"jednostki „$(unit)”."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Wymagane jest uwierzytelnienie, aby przywrócić stan „failed” (niepowodzenia) "
"jednostki „$(unit)”."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Wymagane jest uwierzytelnienie, aby ustawić właściwości jednostki „$(unit)”."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1283,7 +1306,7 @@ msgstr ""
"Wymagane jest uwierzytelnienie, aby usunąć pliki i katalogi powiązane "
"z jednostką „$(unit)”."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-05-31 07:36+0000\n"
"Last-Translator: Tiago Rocha Cunha <tiagocunha.me@gmail.com>\n"
"Language-Team: Portuguese <https://translate.fedoraproject.org/projects/"
@ -117,30 +117,40 @@ msgid "Authentication is required to update a user's home area."
msgstr "É necessária autenticação para atualizar a área home de um utilizador."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Atualizar uma área home"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "É necessária autenticação para atualizar a área home de um utilizador."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Redimensionar uma área home"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"É necessária autenticação para redimensionar a área home de um utilizador."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Alterar palavra-passe de uma área home"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"É necessária autenticação para alterar a palavra-passe da área home de um "
"utilizador."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Ativar uma área home"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "É necessária autenticação para ativar a área home de um usuário."
@ -1206,6 +1216,16 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "É necessária autenticação para definir o horário do sistema."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"É necessária autenticação para gerir estações, utilizadores e sessões ativas."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Definir horário do sistema"
@ -1246,23 +1266,23 @@ msgstr ""
"É necessária autenticação para controlar se deve ser habilitada, ou não, a "
"sincronização de horário através de rede."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "É necessária autenticação para iniciar '$(unit)'."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "É necessária autenticação para parar '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "É necessária autenticação para recarregar '$(unit)'."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "É necessária autenticação para reiniciar '$(unit)'."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1270,16 +1290,16 @@ msgstr ""
"É necessária autenticação para enviar um sinal UNIX para os processos de "
"'$(unit)'."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"É necessária autenticação para reiniciar o estado “failed” de '$(unit)'."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "É necessária autenticação para definir propriedades em '$(unit)'."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1287,7 +1307,7 @@ msgstr ""
"É necessária autenticação para eliminar ficheiros e diretórios associados "
"com '$(unit)'."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -11,7 +11,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-09-25 01:07+0000\n"
"Last-Translator: Fábio Rodrigues Ribeiro <farribeiro@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/"
@ -124,29 +124,39 @@ msgid "Authentication is required to update a user's home area."
msgstr "É necessária autenticação para atualizar a área home de um usuário."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Atualizar uma área home"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "É necessária autenticação para atualizar a área home de um usuário."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Redimensionar uma área home"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"É necessária autenticação para redimensionar a área home de um usuário."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Alterar senha de uma área home"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"É necessária autenticação para alterar a senha da área home de um usuário."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Ativar uma área home"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "É necessária autenticação para criar a área home de um usuário."
@ -1199,6 +1209,17 @@ msgstr "Limpar velhas atualizações do sistema"
msgid "Authentication is required to cleanup old system updates."
msgstr "É necessária autenticação para definir o horário do sistema."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"A autenticação é necessária para gerenciar sessões ativas, usuários e "
"estações."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Definir horário do sistema"
@ -1239,23 +1260,23 @@ msgstr ""
"É necessária autenticação para controlar se deve ser habilitada, ou não, a "
"sincronização de horário através de rede."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "É necessária autenticação para iniciar “$(unit)”."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "É necessária autenticação para parar “$(unit)”."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "É necessária autenticação para recarregar “$(unit)”."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "É necessária autenticação para reiniciar “$(unit)”."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1263,16 +1284,16 @@ msgstr ""
"É necessária autenticação para enviar um sinal UNIX para os processos de "
"“$(unit)”."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"É necessária autenticação para reiniciar o estado “failed” de “$(unit)”."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "É necessária autenticação para definir propriedades em “$(unit)”."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1280,7 +1301,7 @@ msgstr ""
"É necessária autenticação para excluir arquivos e diretórios associados com "
"“$(unit)”."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2021-01-12 17:36+0000\n"
"Last-Translator: Vlad <milovlad@outlook.com>\n"
"Language-Team: Romanian <https://translate.fedoraproject.org/projects/"
@ -125,32 +125,44 @@ msgstr ""
"utilizator."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Actualizează un spațiu personal"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr ""
"Autentificarea este necesară pentru a actualiza spațiul personal al unui "
"utilizator."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Redimensionează un spațiu personal"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Autentificarea este necesară pentru a redimensiona spațiul personal al unui "
"utilizator."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Schimbă parola pentru un spațiu personal"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Autentificarea este necesară pentru schimbarea parolei unui spațiu personal "
"al unui utilizator."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "Crează un spațiu personal"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr ""
@ -1228,6 +1240,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Autentificarea este necesară pentru a seta ora sistemului."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Autentificarea este necesară pentru gestionarea sesiunilor active, "
"utilizatorilor și stațiilor."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Setare oră sistem"
@ -1268,23 +1291,23 @@ msgstr ""
"Autentificarea este necesară pentru a controla dacă sincronizarea cu ora "
"rețelei ar trebui activată."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Autentificarea este necesară pentru a porni „$(unit)”."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Autentificarea este necesară pentru a opri „$(unit)”."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Autentificarea este necesară pentru a reîncărca „$(unit)”."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Autentificarea este necesară pentru a reporni „$(unit)”."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1292,17 +1315,17 @@ msgstr ""
"Autentificarea este necesară pentru a trimite un semnal UNIX către procesele "
"unui „$(unit)”."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Autentificarea este necesară pentru a reseta starea „eșuată” a „$(unit)”."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Autentificarea este necesară pentru a seta proprietățile lui „$(unit)”."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1310,7 +1333,7 @@ msgstr ""
"Autentificarea este necesară pentru a șterge fișierele și directoarele "
"asociate lui „$(unit)”."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -13,7 +13,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-08-25 11:38+0000\n"
"Last-Translator: \"Sergey A.\" <Ser82-png@yandex.ru>\n"
"Language-Team: Russian <https://translate.fedoraproject.org/projects/systemd/"
@ -130,31 +130,43 @@ msgstr ""
"аутентификацию."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Обновить домашнее пространство"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr ""
"Чтобы обновить домашнее пространство пользователя, необходимо пройти "
"аутентификацию."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Изменить размер домашнего пространства"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Чтобы изменить размер домашнего пространства пользователя, необходимо пройти "
"аутентификацию."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Изменить пароль для домашнего пространства"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Чтобы изменить пароль для домашнего пространства пользователя, необходимо "
"пройти аутентификацию."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Активация домашнего пространства"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr ""
"Чтобы активировать домашнее пространство пользователя, необходимо пройти "
@ -1206,7 +1218,8 @@ msgstr "Дамп состояние сервера"
#: src/resolve/org.freedesktop.resolve1.policy:166
msgid "Authentication is required to dump server state."
msgstr "Чтобы создать дамп состояние сервера, необходимо пройти аутентификацию."
msgstr ""
"Чтобы создать дамп состояние сервера, необходимо пройти аутентификацию."
#: src/resolve/org.freedesktop.resolve1.policy:176
msgid "Dump statistics"
@ -1263,6 +1276,17 @@ msgstr ""
"Чтобы удалить устаревшие обновления системы, необходимо пройти "
"аутентификацию."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Для управления текущими сеансами, пользователями и рабочими местами, "
"необходимо пройти аутентификацию."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Настроить системное время"
@ -1303,25 +1327,25 @@ msgstr ""
"Чтобы включить или отключить синхронизацию времени по сети, необходимо "
"пройти аутентификацию."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Чтобы запустить «$(unit)», необходимо пройти аутентификацию."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Чтобы остановить «$(unit)», необходимо пройти аутентификацию."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr ""
"Чтобы заставить «$(unit)» перечитать конфигурацию, необходимо пройти "
"аутентификацию."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Чтобы перезапустить «$(unit)», необходимо пройти аутентификацию."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1329,18 +1353,18 @@ msgstr ""
"Чтобы отправить сигнал UNIX процессам юнита «$(unit)», необходимо пройти "
"аутентификацию."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Чтобы сбросить состояние «failed» у юнита «$(unit)», необходимо пройти "
"аутентификацию."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Чтобы изменить параметры юнита «$(unit)», необходимо пройти аутентификацию."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1348,7 +1372,7 @@ msgstr ""
"Чтобы удалить файлы и директории, относящиеся к юниту «$(unit)», необходимо "
"пройти аутентификацию."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2021-08-19 07:04+0000\n"
"Last-Translator: Hela Basa <r45xveza@pm.me>\n"
"Language-Team: Sinhala <https://translate.fedoraproject.org/projects/systemd/"
@ -103,27 +103,35 @@ msgid "Authentication is required to update a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgid "Update your home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:54
msgid "Authentication is required to resize a user's home area."
msgid "Authentication is required to update your home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr ""
@ -1062,6 +1070,14 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
msgid "Authentication is required to manage optional features"
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "පද්ධතියේ වේලාව සකසන්න"
@ -1098,43 +1114,43 @@ msgid ""
"shall be enabled."
msgstr ""
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2021-02-22 20:21+0000\n"
"Last-Translator: Frantisek Sumsal <frantisek@sumsal.cz>\n"
"Language-Team: Slovak <https://translate.fedoraproject.org/projects/systemd/"
@ -122,29 +122,38 @@ msgid "Authentication is required to update a user's home area."
msgstr "Vyžaduje sa overenie totožnosti na uspanie systému."
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgid "Update your home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to resize a user's home area."
msgid "Authentication is required to update your home area."
msgstr "Vyžaduje sa overenie totožnosti na uspanie systému."
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
#, fuzzy
msgid "Authentication is required to resize a user's home area."
msgstr "Vyžaduje sa overenie totožnosti na uspanie systému."
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#, fuzzy
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "Vyžaduje sa overenie totožnosti na nastavenie miestnych nastavení."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr ""
@ -1181,6 +1190,17 @@ msgid "Authentication is required to cleanup old system updates."
msgstr ""
"Vyžaduje sa overenie totožnosti na znovu načítanie stavu systému systemd."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Vyžaduje sa overenie totožnosti na správu systémovej služby alebo súborov "
"jednotky."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr ""
@ -1219,38 +1239,38 @@ msgstr ""
"Vyžaduje sa overenie totožnosti na ovládanie, či má byť povolená "
"synchronizácia času cez sieť."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
#, fuzzy
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "Vyžaduje sa overenie totožnosti na uspanie systému."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
#, fuzzy
msgid ""
"Authentication is required to delete files and directories associated with "
@ -1258,7 +1278,7 @@ msgid ""
msgstr ""
"Vyžaduje sa overenie totožnosti na znovu načítanie stavu systému systemd."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
#, fuzzy
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-08-26 19:38+0000\n"
"Last-Translator: Martin Srebotnjak <miles@filmsi.net>\n"
"Language-Team: Slovenian <https://translate.fedoraproject.org/projects/"
@ -125,31 +125,43 @@ msgstr ""
"območja."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Posodobite domače območje"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr ""
"Preverjanje pristnosti je potrebno za posodobitev uporabnikovega domačega "
"območja."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Spreminite velikost domačega območja"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Preverjanje pristnosti je potrebno za spreminjanje velikosti uporabnikovega "
"domačega območja."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Spremenite geslo domačega območja"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Preverjanje pristnosti je potrebno za spremembo gesla uporabnikovega "
"domačega območja."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Aktiviraj domače območje"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr ""
"Preverjanje pristnosti je potrebno za aktiviranje uporabnikovega domačega "
@ -1145,7 +1157,8 @@ msgstr "Naroči se na rezultate poizvedbe"
#: src/resolve/org.freedesktop.resolve1.policy:144
msgid "Authentication is required to subscribe query results."
msgstr "Za naročanje na rezultate poizvedbe je potrebno preverjanje pristnosti."
msgstr ""
"Za naročanje na rezultate poizvedbe je potrebno preverjanje pristnosti."
#: src/resolve/org.freedesktop.resolve1.policy:154
msgid "Dump cache"
@ -1219,6 +1232,17 @@ msgid "Authentication is required to cleanup old system updates."
msgstr ""
"Za čiščenje starih posodobitev sistema je potrebno preverjanje pristnosti."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Preverjanje pristnosti je potrebno za upravljanje aktivnih sej, uporabnikov "
"in delovišč."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Določi sistemski čas"
@ -1260,23 +1284,23 @@ msgstr ""
"Preverjanje pristnosti je potrebno za nadzor, ali naj bo omogočena "
"sinhronizacija časa v omrežju."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Preverjanje pristnosti je potrebno za zagon »$(unit)«."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Preverjanje pristnosti je potrebno, če želite ustaviti »$(unit)«."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Preverjanje pristnosti je potrebno za ponovno nalaganje »$(unit)«."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Preverjanje pristnosti je potrebno za vnovični zagon »$(unit)«."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1284,19 +1308,19 @@ msgstr ""
"Preverjanje pristnosti je potrebno za pošiljanje signala UNIX procesom "
"»$(unit)«."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Preverjanje pristnosti je potrebno za ponastavitev stanja »ni uspelo« za "
"»$(unit)«."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Preverjanje pristnosti je potrebno, če želite lastnosti nastaviti na "
"»$(unit)«."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1304,7 +1328,7 @@ msgstr ""
"Preverjanje pristnosti je potrebno za brisanje datotek in map, povezanih s/z "
"»$(unit)«."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2021-02-23 22:40+0000\n"
"Last-Translator: Frantisek Sumsal <frantisek@sumsal.cz>\n"
"Language-Team: Serbian <https://translate.fedoraproject.org/projects/systemd/"
@ -122,31 +122,40 @@ msgid "Authentication is required to update a user's home area."
msgstr "Потребно је да се идентификујете да бисте закачили уређај на седиште."
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgid "Update your home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to resize a user's home area."
msgstr "Потребно је да се идентификујете да бисте поставили зидну поруку"
msgid "Authentication is required to update your home area."
msgstr "Потребно је да се идентификујете да бисте закачили уређај на седиште."
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
#, fuzzy
msgid "Authentication is required to resize a user's home area."
msgstr "Потребно је да се идентификујете да бисте поставили зидну поруку"
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#, fuzzy
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Потребно је да се идентификујете да бисте управљали покренутим сесијама, "
"корисницима и седиштима."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr ""
@ -1239,6 +1248,17 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "Потребно је да се идентификујете да бисте поставили системско време."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Потребно је да се идентификујете да бисте управљали покренутим сесијама, "
"корисницима и седиштима."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Постави системско време"
@ -1281,23 +1301,23 @@ msgstr ""
"Потребно је да се идентификујете да бисте подесили да ли се време усклађује "
"са мреже."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Потребно је да се идентификујете да бисте покренули „$(unit)“."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Потребно је да се идентификујете да бисте зауставили „$(unit)“."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Потребно је да се идентификујете да бисте поново учитали „$(unit)“."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Потребно је да се идентификујете да бисте поново покренули „$(unit)“."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
#, fuzzy
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
@ -1305,18 +1325,18 @@ msgid ""
msgstr ""
"Потребно је да се идентификујете да бисте поставили својства за „$(unit)“."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Потребно је да се идентификујете да бисте поново поставили „неуспешно“ стање "
"за „$(unit)“."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"Потребно је да се идентификујете да бисте поставили својства за „$(unit)“."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
#, fuzzy
msgid ""
"Authentication is required to delete files and directories associated with "
@ -1325,7 +1345,7 @@ msgstr ""
"Потребно је да се идентификујете да бисте поново поставили „неуспешно“ стање "
"за „$(unit)“."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
#, fuzzy
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."

View File

@ -11,7 +11,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-10-24 00:56+0000\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <https://translate.fedoraproject.org/projects/systemd/"
@ -117,28 +117,38 @@ msgid "Authentication is required to update a user's home area."
msgstr "Autentisering krävs för att uppdatera en användares hemarea."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Uppdatera en hemarea"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Autentisering krävs för att uppdatera en användares hemarea."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Ändra storlek på en hemarea"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "Autentisering krävs för att ändra storlek på en hemarea."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Ändra lösenord för en hemarea"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Autentisering krävs för att ändra lösenordet för en användares hemarea."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Aktivera en hemarea"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "Autentisering krävs för att aktivera en användares hemarea."
@ -1160,6 +1170,16 @@ msgstr "Rensa gamla systemuppdateringar"
msgid "Authentication is required to cleanup old system updates."
msgstr "Autentisering krävs för att rensa gamla systemuppdateringar."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Autentisering krävs för att hantera aktiva sessioner, användare och platser."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Ange systemtid"
@ -1202,23 +1222,23 @@ msgstr ""
"Autentisering krävs för att kontrollera huruvida synkronisering av "
"nätverkstid ska vara aktiverat."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Autentisering krävs för att starta \"$(unit)\"."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Autentisering krävs för att stoppa \"$(unit)\"."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Autentisering krävs för att läsa om \"$(unit)\"."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Autentisering krävs för att starta om \"$(unit)\"."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1226,17 +1246,17 @@ msgstr ""
"Autentisering krävs för att skicka en UNIX-signal till processerna i "
"”$(unit)”."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Autentisering krävs för att återställa det \"fallerade\" tillståndet för "
"\"$(unit)\"."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Autentisering krävs för att ställa in egenskaper på \"$(unit)\"."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1244,7 +1264,7 @@ msgstr ""
"Autentisering krävs för att radera filer och kataloger associerade med "
"”$(unit)”."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -1,11 +1,14 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the systemd package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -100,27 +103,35 @@ msgid "Authentication is required to update a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgid "Update your home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:54
msgid "Authentication is required to resize a user's home area."
msgid "Authentication is required to update your home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgid "Resize a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr ""
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr ""
@ -1058,6 +1069,14 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
msgid "Authentication is required to manage optional features"
msgstr ""
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr ""
@ -1094,43 +1113,43 @@ msgid ""
"shall be enabled."
msgstr ""
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr ""
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-08-25 11:38+0000\n"
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/systemd/"
@ -117,31 +117,41 @@ msgid "Authentication is required to update a user's home area."
msgstr "Bir kullanıcının ev alanını güncellemek kimlik doğrulaması gerektirir."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Ev alanını güncelle"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Bir kullanıcının ev alanını güncellemek kimlik doğrulaması gerektirir."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Ev alanını yeniden boyutlandır"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Bir kullanıcının ev alanını yeniden boyutlandırmak kimlik doğrulaması "
"gerektirir."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Ev alanının parolasını değiştir"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Bir kullanıcının ev alanının parolasını değiştirmek kimlik doğrulaması "
"gerektirir."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Bir ev alanını etkinleştir"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr ""
"Bir kullanıcının ev alanını etkinleştirmek kimlik doğrulaması gerektirir."
@ -1209,6 +1219,17 @@ msgid "Authentication is required to cleanup old system updates."
msgstr ""
"Eski sistem güncellemelerini temizlemek için kimlik doğrulaması gereklidir."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Aktif oturumları, kullanıcıları ve yuvaları yönetmek için kimlik doğrulaması "
"gereklidir."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Sistem zamanını ayarla"
@ -1248,23 +1269,23 @@ msgid ""
msgstr ""
"Ağ zaman eş zamanlamasını denetlemek için kimlik doğrulaması gereklidir."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "'$(unit)' başlatmak için kimlik doğrulaması gereklidir."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "'$(unit)' durdurmak için kimlik doğrulaması gereklidir."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "'$(unit)' yeniden yüklemek için kimlik doğrulaması gereklidir."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "'$(unit)' yeniden başlatmak için kimlik doğrulaması gereklidir."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -1272,19 +1293,19 @@ msgstr ""
"'$(unit)' süreçlerine bir UNIX sinyali göndermek için kimlik doğrulaması "
"gereklidir."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"'$(unit)'in \"failed\" (başarısız) durumunu sıfırlamak için kimlik "
"doğrulaması gereklidir."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr ""
"'$(unit)' üzerindeki özellikleri ayarlamak için kimlik doğrulaması "
"gereklidir."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1292,7 +1313,7 @@ msgstr ""
"'$(unit)' ile ilişkili dosyaları ve dizinleri silmek için kimlik doğrulaması "
"gereklidir."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-08-24 10:36+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/"
@ -118,30 +118,40 @@ msgid "Authentication is required to update a user's home area."
msgstr "Для оновлення домашньої теки користувача слід пройти розпізнавання."
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "Оновлення домашньої теки"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "Для оновлення домашньої теки користувача слід пройти розпізнавання."
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "Зміна розмірів домашньої теки"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr ""
"Для зміни розмірів домашньої теки користувача слід пройти розпізнавання."
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "Зміна пароля до домашньої теки"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr ""
"Для зміни пароля для доступу до домашньої теки користувача слід пройти "
"розпізнавання."
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "Активація області домівки"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "Для активації області домівки користувача слід пройти розпізнавання."
@ -1200,6 +1210,17 @@ msgstr "Вилучення застарілих оновлень системи"
msgid "Authentication is required to cleanup old system updates."
msgstr "Для вилучення застарілих оновлень системи слід пройти розпізнавання."
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr ""
"Для того, щоб керувати сеансами, користувачами і робочими місцями, слід "
"пройти розпізнавання."
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "Встановлення загальносистемного часу"
@ -1241,39 +1262,39 @@ msgstr ""
"Для керування тим, чи слід вмикати синхронізацію часу за допомогою мережі, "
"слід пройти розпізнавання."
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "Для запуску «$(unit)» слід пройти розпізнавання."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "Для зупинення «$(unit)» слід пройти розпізнавання."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "Для перезавантаження «$(unit)» слід пройти розпізнавання."
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "Для перезапуску «$(unit)» слід пройти розпізнавання."
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr ""
"Для надсилання сигналу UNIX до процесів «$(unit)» слід пройти розпізнавання."
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Для скидання «пошкодженого» стану з «$(unit)» слід пройти розпізнавання."
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Для визначення властивостей на «$(unit)» слід пройти розпізнавання."
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
@ -1281,7 +1302,7 @@ msgstr ""
"Для вилучення файлів і каталогів, які пов'язано із «$(unit)», слід пройти "
"розпізнавання."
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr ""

View File

@ -11,7 +11,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-10-13 00:38+0000\n"
"Last-Translator: lumingzh <lumingzh@qq.com>\n"
"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/"
@ -112,27 +112,40 @@ msgid "Authentication is required to update a user's home area."
msgstr "更新用户家区域需要认证。"
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "更新一个家区域"
# Pay attention to the concept of "seat".
#
# To fully understand the meaning, please refer to session management in old ConsoleKit and new systemd-logind.
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "更新用户家区域需要认证。"
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "调整家区域大小"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "调整家区域大小需要认证。"
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "更改家区域的密码"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "更改家区域密码需要认证。"
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
msgid "Activate a home area"
msgstr "创建一个家区域"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
msgid "Authentication is required to activate a user's home area."
msgstr "创建用户家区域需要认证。"
@ -1080,6 +1093,15 @@ msgstr "清理旧的系统更新"
msgid "Authentication is required to cleanup old system updates."
msgstr "清理旧的系统更新需要认证。"
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr "管理活动会话、用户与会话座位需要认证。"
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "设置系统时间"
@ -1116,43 +1138,43 @@ msgid ""
"shall be enabled."
msgstr "打开或关闭网络时间同步需要认证。"
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "启动“$(unit)”需要认证。"
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "停止“$(unit)”需要认证。"
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "重新载入“$(unit)”需要认证。"
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "重新启动“$(unit)”需要认证。"
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "发送 UNIX 信号给 '$(unit)' 进程需要认证。"
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "重置“$(unit)”的失败(\"failed\")状态需要认证。"
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "设置“$(unit)”的属性需要认证。"
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr "删除与 '$(unit)' 关联的文件和目录需要认证。"
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr "冻结或解冻 '$(unit)' 单元进程需要认证。"

View File

@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-23 15:33+0200\n"
"POT-Creation-Date: 2024-11-06 14:42+0000\n"
"PO-Revision-Date: 2024-06-06 00:50+0000\n"
"Last-Translator: hanjinpeng <hanjinpeng@kylinos.cn>\n"
"Language-Team: Chinese (Traditional) <https://translate.fedoraproject.org/"
@ -107,28 +107,38 @@ msgid "Authentication is required to update a user's home area."
msgstr "更新用戶家區域需要認證。"
#: src/home/org.freedesktop.home1.policy:53
#, fuzzy
msgid "Update your home area"
msgstr "更新一個家區域"
#: src/home/org.freedesktop.home1.policy:54
#, fuzzy
msgid "Authentication is required to update your home area."
msgstr "更新用戶家區域需要認證。"
#: src/home/org.freedesktop.home1.policy:63
msgid "Resize a home area"
msgstr "調整家區域大小"
#: src/home/org.freedesktop.home1.policy:54
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to resize a user's home area."
msgstr "調整家區域大小需要認證。"
#: src/home/org.freedesktop.home1.policy:63
#: src/home/org.freedesktop.home1.policy:73
msgid "Change password of a home area"
msgstr "更改家區域的密碼"
#: src/home/org.freedesktop.home1.policy:64
#: src/home/org.freedesktop.home1.policy:74
msgid ""
"Authentication is required to change the password of a user's home area."
msgstr "更改家區域密碼需要認證。"
#: src/home/org.freedesktop.home1.policy:73
#: src/home/org.freedesktop.home1.policy:83
#, fuzzy
msgid "Activate a home area"
msgstr "創建一個家區域"
#: src/home/org.freedesktop.home1.policy:74
#: src/home/org.freedesktop.home1.policy:84
#, fuzzy
msgid "Authentication is required to activate a user's home area."
msgstr "創建用戶家區域需要身份驗證。"
@ -1091,6 +1101,15 @@ msgstr ""
msgid "Authentication is required to cleanup old system updates."
msgstr "設定系統時間需要驗證。"
#: src/sysupdate/org.freedesktop.sysupdate1.policy:75
msgid "Manage optional features"
msgstr ""
#: src/sysupdate/org.freedesktop.sysupdate1.policy:76
#, fuzzy
msgid "Authentication is required to manage optional features"
msgstr "管理活躍的工作階段、使用者與座位需要驗證。"
#: src/timedate/org.freedesktop.timedate1.policy:22
msgid "Set system time"
msgstr "設定系統時間"
@ -1127,43 +1146,43 @@ msgid ""
"shall be enabled."
msgstr "控制網路時間同步是否啟用需要驗證。"
#: src/core/dbus-unit.c:353
#: src/core/dbus-unit.c:370
msgid "Authentication is required to start '$(unit)'."
msgstr "啟動 '$(unit)' 需要驗證。"
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:371
msgid "Authentication is required to stop '$(unit)'."
msgstr "停止 '$(unit)' 需要驗證。"
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:372
msgid "Authentication is required to reload '$(unit)'."
msgstr "重新載入 '$(unit)' 需要驗證。"
#: src/core/dbus-unit.c:356 src/core/dbus-unit.c:357
#: src/core/dbus-unit.c:373 src/core/dbus-unit.c:374
msgid "Authentication is required to restart '$(unit)'."
msgstr "重新啟動 '$(unit)' 需要驗證。"
#: src/core/dbus-unit.c:549
#: src/core/dbus-unit.c:566
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
msgstr "傳送 UNIX 信號至「$(unit)」的程序需要身份驗證。"
#: src/core/dbus-unit.c:577
#: src/core/dbus-unit.c:594
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "重置 '$(unit)' 的「失敗」狀態需要驗證。"
#: src/core/dbus-unit.c:607
#: src/core/dbus-unit.c:624
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "在 '$(unit)' 上設定屬性需要驗證。"
#: src/core/dbus-unit.c:704
#: src/core/dbus-unit.c:721
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."
msgstr "刪除與 '$(unit)' 相關的檔案及目錄需要身份驗證。"
#: src/core/dbus-unit.c:741
#: src/core/dbus-unit.c:758
msgid ""
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
msgstr "凍結或解凍「$(unit)」的程序需要身份驗證。"

View File

@ -35,6 +35,7 @@
#include "fileio.h"
#include "fs-util.h"
#include "hostname-util.h"
#include "io-util.h"
#include "locale-util.h"
#include "log.h"
#include "macro.h"
@ -2238,3 +2239,18 @@ static const char* const sched_policy_table[] = {
};
DEFINE_STRING_TABLE_LOOKUP_WITH_FALLBACK(sched_policy, int, INT_MAX);
_noreturn_ void report_errno_and_exit(int errno_fd, int error) {
int r;
if (error >= 0)
_exit(EXIT_SUCCESS);
assert(errno_fd >= 0);
r = loop_write(errno_fd, &error, sizeof(error));
if (r < 0)
log_debug_errno(r, "Failed to write errno to errno_fd=%d: %m", errno_fd);
_exit(EXIT_FAILURE);
}

View File

@ -273,3 +273,5 @@ int posix_spawn_wrapper(
int proc_dir_open(DIR **ret);
int proc_dir_read(DIR *d, pid_t *ret);
int proc_dir_read_pidref(DIR *d, PidRef *ret);
_noreturn_ void report_errno_and_exit(int errno_fd, int error);

135
src/boot/authenticode.h Normal file
View File

@ -0,0 +1,135 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <openssl/asn1t.h>
#include "macro.h"
#define SPC_INDIRECT_DATA_OBJID "1.3.6.1.4.1.311.2.1.4"
#define SPC_PE_IMAGE_DATA_OBJID "1.3.6.1.4.1.311.2.1.15"
typedef struct {
ASN1_OBJECT *type;
ASN1_TYPE *value;
} SpcAttributeTypeAndOptionalValue;
DECLARE_ASN1_FUNCTIONS(SpcAttributeTypeAndOptionalValue);
ASN1_SEQUENCE(SpcAttributeTypeAndOptionalValue) = {
ASN1_SIMPLE(SpcAttributeTypeAndOptionalValue, type, ASN1_OBJECT),
ASN1_OPT(SpcAttributeTypeAndOptionalValue, value, ASN1_ANY)
} ASN1_SEQUENCE_END(SpcAttributeTypeAndOptionalValue);
IMPLEMENT_ASN1_FUNCTIONS(SpcAttributeTypeAndOptionalValue);
typedef struct {
ASN1_OBJECT *algorithm;
ASN1_TYPE *parameters;
} AlgorithmIdentifier;
DECLARE_ASN1_FUNCTIONS(AlgorithmIdentifier);
ASN1_SEQUENCE(AlgorithmIdentifier) = {
ASN1_SIMPLE(AlgorithmIdentifier, algorithm, ASN1_OBJECT),
ASN1_OPT(AlgorithmIdentifier, parameters, ASN1_ANY)
} ASN1_SEQUENCE_END(AlgorithmIdentifier)
IMPLEMENT_ASN1_FUNCTIONS(AlgorithmIdentifier);
typedef struct {
AlgorithmIdentifier *digestAlgorithm;
ASN1_OCTET_STRING *digest;
} DigestInfo;
DECLARE_ASN1_FUNCTIONS(DigestInfo);
ASN1_SEQUENCE(DigestInfo) = {
ASN1_SIMPLE(DigestInfo, digestAlgorithm, AlgorithmIdentifier),
ASN1_SIMPLE(DigestInfo, digest, ASN1_OCTET_STRING)
} ASN1_SEQUENCE_END(DigestInfo);
IMPLEMENT_ASN1_FUNCTIONS(DigestInfo);
typedef struct {
SpcAttributeTypeAndOptionalValue *data;
DigestInfo *messageDigest;
} SpcIndirectDataContent;
DECLARE_ASN1_FUNCTIONS(SpcIndirectDataContent);
ASN1_SEQUENCE(SpcIndirectDataContent) = {
ASN1_SIMPLE(SpcIndirectDataContent, data, SpcAttributeTypeAndOptionalValue),
ASN1_SIMPLE(SpcIndirectDataContent, messageDigest, DigestInfo)
} ASN1_SEQUENCE_END(SpcIndirectDataContent);
IMPLEMENT_ASN1_FUNCTIONS(SpcIndirectDataContent);
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(SpcIndirectDataContent*, SpcIndirectDataContent_free, NULL);
typedef struct {
int type;
union {
ASN1_BMPSTRING *unicode;
ASN1_IA5STRING *ascii;
} value;
} SpcString;
DECLARE_ASN1_FUNCTIONS(SpcString);
ASN1_CHOICE(SpcString) = {
ASN1_IMP_OPT(SpcString, value.unicode, ASN1_BMPSTRING, 0),
ASN1_IMP_OPT(SpcString, value.ascii, ASN1_IA5STRING, 1)
} ASN1_CHOICE_END(SpcString);
IMPLEMENT_ASN1_FUNCTIONS(SpcString);
typedef struct {
ASN1_OCTET_STRING *classId;
ASN1_OCTET_STRING *serializedData;
} SpcSerializedObject;
DECLARE_ASN1_FUNCTIONS(SpcSerializedObject);
ASN1_SEQUENCE(SpcSerializedObject) = {
ASN1_SIMPLE(SpcSerializedObject, classId, ASN1_OCTET_STRING),
ASN1_SIMPLE(SpcSerializedObject, serializedData, ASN1_OCTET_STRING)
} ASN1_SEQUENCE_END(SpcSerializedObject);
IMPLEMENT_ASN1_FUNCTIONS(SpcSerializedObject);
typedef struct {
int type;
union {
ASN1_IA5STRING *url;
SpcSerializedObject *moniker;
SpcString *file;
} value;
} SpcLink;
DECLARE_ASN1_FUNCTIONS(SpcLink);
ASN1_CHOICE(SpcLink) = {
ASN1_IMP_OPT(SpcLink, value.url, ASN1_IA5STRING, 0),
ASN1_IMP_OPT(SpcLink, value.moniker, SpcSerializedObject, 1),
ASN1_EXP_OPT(SpcLink, value.file, SpcString, 2)
} ASN1_CHOICE_END(SpcLink);
IMPLEMENT_ASN1_FUNCTIONS(SpcLink);
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(SpcLink*, SpcLink_free, NULL);
typedef struct {
ASN1_BIT_STRING *flags;
SpcLink *file;
} SpcPeImageData;
DECLARE_ASN1_FUNCTIONS(SpcPeImageData);
ASN1_SEQUENCE(SpcPeImageData) = {
ASN1_SIMPLE(SpcPeImageData, flags, ASN1_BIT_STRING),
ASN1_EXP_OPT(SpcPeImageData, file, SpcLink, 0)
} ASN1_SEQUENCE_END(SpcPeImageData)
IMPLEMENT_ASN1_FUNCTIONS(SpcPeImageData);
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(SpcPeImageData*, SpcPeImageData_free, NULL);

View File

@ -54,7 +54,7 @@ libraries (such as OpenSSL or gnu-efi) are linked, embedded, or used.
## Additional Resources
BLS Type #1 entries allow the user to load two types of additional resources that can affect the system
before `ExitBootServices()` has been called — kernel command line arguments and Devicetree blobs — that are
before `ExitBootServices()` has been called — kernel command line arguments and DeviceTree blobs — that are
not validated before use, as they do not carry signatures. For this reason, when SecureBoot is enabled,
loading these resources is automatically disabled. There is no override for this security mechanism, neither
at build time nor at runtime. Note that initrds are also not verified in BLS Type #1 configurations, for
@ -62,7 +62,7 @@ compatibility with how SecureBoot has been traditionally handled on Linux-based
only load them after `ExitBootServices()` has been called.
Another mechanism is supported by `systemd-boot` and `systemd-stub` to add additional payloads to the boot
process: "addons". Addons are PE signed binaries that can carry kernel command line arguments or Devicetree
process: "addons". Addons are PE signed binaries that can carry kernel command line arguments or DeviceTree
blobs (more payload types might be added in the future).
In contrast to the user-specified additions in the Type #1 case
described above, these addons are loaded through the UEFI image loading protocol, and thus are subject to

View File

@ -178,8 +178,8 @@ bool firmware_devicetree_exists(void) {
return !!find_configuration_table(MAKE_GUID_PTR(EFI_DTB_TABLE));
}
/* This function checks if the firmware provided Devicetree
* and a UKI provided Devicetree contain the same first entry
/* This function checks if the firmware provided DeviceTree
* and a UKI provided DeviceTree contain the same first entry
* on their respective "compatible" fields (which usually defines
* the actual device model). More specifically, given the FW/UKI
* "compatible" property pair:

View File

@ -98,7 +98,7 @@ static int help(int argc, char *argv[], void *userdata) {
" --initrd=PATH Path to initrd image file %7$s .initrd\n"
" --ucode=PATH Path to microcode image file %7$s .ucode\n"
" --splash=PATH Path to splash bitmap file %7$s .splash\n"
" --dtb=PATH Path to Devicetree file %7$s .dtb\n"
" --dtb=PATH Path to DeviceTree file %7$s .dtb\n"
" --uname=PATH Path to 'uname -r' file %7$s .uname\n"
" --sbat=PATH Path to SBAT file %7$s .sbat\n"
" --pcrpkey=PATH Path to public key for PCR signatures %7$s .pcrpkey\n"
@ -839,7 +839,7 @@ static int verb_sign(int argc, char *argv[], void *userdata) {
/* When signing we only support JSON output */
arg_json_format_flags &= ~SD_JSON_FORMAT_OFF;
/* This must be done before openssl_load_key_from_token() otherwise it will get stuck */
/* This must be done before openssl_load_private_key() otherwise it will get stuck */
if (arg_certificate) {
r = openssl_load_x509_certificate(arg_certificate, &certificate);
if (r < 0)

View File

@ -62,6 +62,14 @@ executables += [
'sources' : files('measure.c'),
'dependencies' : libopenssl,
},
libexec_template + {
'name' : 'systemd-sbsign',
'conditions' : [
'HAVE_OPENSSL',
],
'sources' : files('sbsign.c'),
'dependencies' : libopenssl,
},
libexec_template + {
'name' : 'systemd-boot-check-no-failures',
'sources' : files('boot-check-no-failures.c'),

523
src/boot/sbsign.c Normal file
View File

@ -0,0 +1,523 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
#include "ansi-color.h"
#include "authenticode.h"
#include "build.h"
#include "copy.h"
#include "efi-fundamental.h"
#include "fd-util.h"
#include "log.h"
#include "main-func.h"
#include "openssl-util.h"
#include "parse-argument.h"
#include "pe-binary.h"
#include "pretty-print.h"
#include "stat-util.h"
#include "tmpfile-util.h"
#include "verbs.h"
static PagerFlags arg_pager_flags = 0;
static char *arg_output = NULL;
static char *arg_certificate = NULL;
static char *arg_private_key = NULL;
static KeySourceType arg_private_key_source_type = OPENSSL_KEY_SOURCE_FILE;
static char *arg_private_key_source = NULL;
STATIC_DESTRUCTOR_REGISTER(arg_output, freep);
STATIC_DESTRUCTOR_REGISTER(arg_certificate, freep);
STATIC_DESTRUCTOR_REGISTER(arg_private_key, freep);
STATIC_DESTRUCTOR_REGISTER(arg_private_key_source, freep);
static int help(int argc, char *argv[], void *userdata) {
_cleanup_free_ char *link = NULL;
int r;
r = terminal_urlify_man("systemd-sbsign", "1", &link);
if (r < 0)
return log_oom();
printf("%1$s [OPTIONS...] COMMAND ...\n"
"\n%5$sSign binaries for EFI Secure Boot%6$s\n"
"\n%3$sCommands:%4$s\n"
" sign EXEFILE Sign the given binary for EFI Secure Boot\n"
" validate-key Load and validate the given private key\n"
"\n%3$sOptions:%4$s\n"
" -h --help Show this help\n"
" --version Print version\n"
" --no-pager Do not pipe output into a pager\n"
" --output Where to write the signed PE binary\n"
" --certificate=PATH PEM certificate to use when signing with a URI\n"
" --private-key=KEY Private key (PEM) to sign with\n"
" --private-key-source=file|provider:PROVIDER|engine:ENGINE\n"
" Specify how to use KEY for --private-key=. Allows\n"
" an OpenSSL engine/provider to be used for signing\n"
"\nSee the %2$s for details.\n",
program_invocation_short_name,
link,
ansi_underline(),
ansi_normal(),
ansi_highlight(),
ansi_normal());
return 0;
}
static int parse_argv(int argc, char *argv[]) {
enum {
ARG_VERSION = 0x100,
ARG_NO_PAGER,
ARG_OUTPUT,
ARG_CERTIFICATE,
ARG_PRIVATE_KEY,
ARG_PRIVATE_KEY_SOURCE,
};
static const struct option options[] = {
{ "help", no_argument, NULL, 'h' },
{ "no-pager", no_argument, NULL, ARG_NO_PAGER },
{ "version", no_argument, NULL, ARG_VERSION },
{ "output", required_argument, NULL, ARG_OUTPUT },
{ "certificate", required_argument, NULL, ARG_CERTIFICATE },
{ "private-key", required_argument, NULL, ARG_PRIVATE_KEY },
{ "private-key-source", required_argument, NULL, ARG_PRIVATE_KEY_SOURCE },
{}
};
int c, r;
assert(argc >= 0);
assert(argv);
while ((c = getopt_long(argc, argv, "hjc", options, NULL)) >= 0)
switch (c) {
case 'h':
help(0, NULL, NULL);
return 0;
case ARG_VERSION:
return version();
case ARG_NO_PAGER:
arg_pager_flags |= PAGER_DISABLE;
break;
case ARG_OUTPUT:
r = parse_path_argument(optarg, /*suppress_root=*/ false, &arg_output);
if (r < 0)
return r;
break;
case ARG_CERTIFICATE:
r = parse_path_argument(optarg, /* suppress_root= */ false, &arg_certificate);
if (r < 0)
return r;
break;
case ARG_PRIVATE_KEY:
r = free_and_strdup_warn(&arg_private_key, optarg);
if (r < 0)
return r;
break;
case ARG_PRIVATE_KEY_SOURCE:
r = parse_openssl_key_source_argument(
optarg,
&arg_private_key_source,
&arg_private_key_source_type);
if (r < 0)
return r;
break;
case '?':
return -EINVAL;
default:
assert_not_reached();
}
if (arg_private_key_source && !arg_certificate)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "When using --private-key-source=, --certificate= must be specified.");
return 1;
}
static int verb_sign(int argc, char *argv[], void *userdata) {
_cleanup_(openssl_ask_password_ui_freep) OpenSSLAskPasswordUI *ui = NULL;
_cleanup_(EVP_PKEY_freep) EVP_PKEY *private_key = NULL;
_cleanup_(X509_freep) X509 *certificate = NULL;
int r;
if (argc < 2)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No input file specified");
if (!arg_certificate)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"No certificate specified, use --certificate=");
if (!arg_private_key)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"No private key specified, use --private-key=.");
if (!arg_output)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No output specified, use --output=");
r = openssl_load_x509_certificate(arg_certificate, &certificate);
if (r < 0)
return log_error_errno(r, "Failed to load X.509 certificate from %s: %m", arg_certificate);
if (arg_private_key_source_type == OPENSSL_KEY_SOURCE_FILE) {
r = parse_path_argument(arg_private_key, /* suppress_root= */ false, &arg_private_key);
if (r < 0)
return log_error_errno(r, "Failed to parse private key path %s: %m", arg_private_key);
}
r = openssl_load_private_key(
arg_private_key_source_type,
arg_private_key_source,
arg_private_key,
&(AskPasswordRequest) {
.id = "sbsign-private-key-pin",
.keyring = arg_private_key,
.credential = "sbsign.private-key-pin",
},
&private_key,
&ui);
if (r < 0)
return log_error_errno(r, "Failed to load private key from %s: %m", arg_private_key);
_cleanup_(PKCS7_freep) PKCS7 *p7 = NULL;
p7 = PKCS7_sign(certificate, private_key, /*certs=*/ NULL, /*data=*/ NULL, PKCS7_BINARY|PKCS7_PARTIAL);
if (!p7)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to allocate pkcs7 signing context: %s",
ERR_error_string(ERR_get_error(), NULL));
STACK_OF(PKCS7_SIGNER_INFO) *si_stack = PKCS7_get_signer_info(p7);
if (!si_stack)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to get pkcs7 signer info stack: %s",
ERR_error_string(ERR_get_error(), NULL));
PKCS7_SIGNER_INFO *si = sk_PKCS7_SIGNER_INFO_value(si_stack, 0);
if (!si)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to get pkcs7 signer info: %s",
ERR_error_string(ERR_get_error(), NULL));
int idcnid = OBJ_create(SPC_INDIRECT_DATA_OBJID, "spcIndirectDataContext", "Indirect Data Context");
if (PKCS7_add_signed_attribute(si, NID_pkcs9_contentType, V_ASN1_OBJECT, OBJ_nid2obj(idcnid)) == 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to add signed attribute to pkcs7 signer info: %s",
ERR_error_string(ERR_get_error(), NULL));
_cleanup_close_ int srcfd = open(argv[1], O_RDONLY|O_CLOEXEC);
if (srcfd < 0)
return log_error_errno(errno, "Failed to open %s: %m", argv[1]);
struct stat st;
if (fstat(srcfd, &st) < 0)
return log_debug_errno(errno, "Failed to stat %s: %m", argv[1]);
r = stat_verify_regular(&st);
if (r < 0)
return log_debug_errno(r, "%s is not a regular file: %m", argv[1]);
_cleanup_(unlink_and_freep) char *tmp = NULL;
_cleanup_close_ int dstfd = open_tmpfile_linkable(arg_output, O_RDWR|O_CLOEXEC, &tmp);
if (dstfd < 0)
return log_error_errno(r, "Failed to open temporary file: %m");
r = copy_bytes(srcfd, dstfd, UINT64_MAX, COPY_REFLINK);
if (r < 0)
return log_error_errno(r, "Failed to copy %s to %s: %m", argv[1], tmp);
_cleanup_free_ void *hash = NULL;
size_t hashsz;
r = pe_hash(dstfd, EVP_sha256(), &hash, &hashsz);
if (r < 0)
return log_error_errno(r, "Failed to hash PE binary %s: %m", argv[0]);
/* <<<Obsolete>>> in unicode bytes. */
static const uint8_t obsolete[] = {
0x00, 0x3c, 0x00, 0x3c, 0x00, 0x3c, 0x00, 0x4f,
0x00, 0x62, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x6c,
0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x3e,
0x00, 0x3e, 0x00, 0x3e
};
_cleanup_(SpcLink_freep) SpcLink *link = SpcLink_new();
if (!link)
return log_oom();
link->type = 2;
link->value.file = SpcString_new();
if (!link->value.file)
return log_oom();
link->value.file->type = 0;
link->value.file->value.unicode = ASN1_BMPSTRING_new();
if (!link->value.file->value.unicode)
return log_oom();
if (ASN1_STRING_set(link->value.file->value.unicode, obsolete, sizeof(obsolete)) == 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to set ASN1 string: %s",
ERR_error_string(ERR_get_error(), NULL));
_cleanup_(SpcPeImageData_freep) SpcPeImageData *peid = SpcPeImageData_new();
if (!peid)
return log_oom();
if (ASN1_BIT_STRING_set_bit(peid->flags, 0, 1) == 0)
return log_oom();
peid->file = TAKE_PTR(link);
_cleanup_free_ uint8_t *peidraw = NULL;
int peidrawsz = i2d_SpcPeImageData(peid, &peidraw);
if (peidrawsz < 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to convert SpcPeImageData to BER: %s",
ERR_error_string(ERR_get_error(), NULL));
_cleanup_(SpcIndirectDataContent_freep) SpcIndirectDataContent *idc = SpcIndirectDataContent_new();
idc->data->value = ASN1_TYPE_new();
if (!idc->data->value)
return log_oom();
idc->data->value->type = V_ASN1_SEQUENCE;
idc->data->value->value.sequence = ASN1_STRING_new();
if (!idc->data->value->value.sequence)
return log_oom();
idc->data->type = OBJ_txt2obj(SPC_PE_IMAGE_DATA_OBJID, /*no_name=*/ 1);
if (!idc->data->type)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to get SpcPeImageData object: %s",
ERR_error_string(ERR_get_error(), NULL));
idc->data->value->value.sequence->data = TAKE_PTR(peidraw);
idc->data->value->value.sequence->length = peidrawsz;
idc->messageDigest->digestAlgorithm->algorithm = OBJ_nid2obj(NID_sha256);
if (!idc->messageDigest->digestAlgorithm->algorithm)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to get SHA256 object: %s",
ERR_error_string(ERR_get_error(), NULL));
idc->messageDigest->digestAlgorithm->parameters = ASN1_TYPE_new();
if (!idc->messageDigest->digestAlgorithm->parameters)
return log_oom();
idc->messageDigest->digestAlgorithm->parameters->type = V_ASN1_NULL;
if (ASN1_OCTET_STRING_set(idc->messageDigest->digest, hash, hashsz) == 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to set digest: %s",
ERR_error_string(ERR_get_error(), NULL));
_cleanup_free_ uint8_t *idcraw = NULL;
int idcrawsz = i2d_SpcIndirectDataContent(idc, &idcraw);
if (idcrawsz < 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to convert SpcIndirectDataContent to BER: %s",
ERR_error_string(ERR_get_error(), NULL));
_cleanup_(BIO_free_allp) BIO *bio = PKCS7_dataInit(p7, NULL);
if (!bio)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to create PKCS7 data bio: %s",
ERR_error_string(ERR_get_error(), NULL));
int tag, class;
long psz;
const uint8_t *p = idcraw;
/* This function weirdly enough reports errors by setting the 0x80 bit in its return value. */
if (ASN1_get_object(&p, &psz, &tag, &class, idcrawsz) & 0x80)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to parse ASN.1 object: %s",
ERR_error_string(ERR_get_error(), NULL));
if (BIO_write(bio, p, psz) < 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to write to PKCS7 data bio: %s",
ERR_error_string(ERR_get_error(), NULL));
if (PKCS7_final(p7, bio, PKCS7_BINARY) == 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to sign data: %s",
ERR_error_string(ERR_get_error(), NULL));
_cleanup_(PKCS7_freep) PKCS7 *p7c = PKCS7_new();
if (!p7c)
return log_oom();
p7c->type = OBJ_nid2obj(idcnid);
if (!p7c->type)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to get SpcIndirectDataContent object: %s",
ERR_error_string(ERR_get_error(), NULL));
p7c->d.other = ASN1_TYPE_new();
if (!p7c->d.other)
return log_oom();
p7c->d.other->type = V_ASN1_SEQUENCE;
p7c->d.other->value.sequence = ASN1_STRING_new();
if (!p7c->d.other->value.sequence)
return log_oom();
if (ASN1_STRING_set(p7c->d.other->value.sequence, idcraw, idcrawsz) == 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to set ASN1 string: %s",
ERR_error_string(ERR_get_error(), NULL));
if (PKCS7_set_content(p7, p7c) == 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to set PKCS7 data: %s",
ERR_error_string(ERR_get_error(), NULL));
TAKE_PTR(p7c);
_cleanup_free_ uint8_t *sig = NULL;
int sigsz = i2d_PKCS7(p7, &sig);
if (sigsz < 0)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to convert PKCS7 signature to DER: %s",
ERR_error_string(ERR_get_error(), NULL));
_cleanup_free_ IMAGE_DOS_HEADER *dos_header = NULL;
_cleanup_free_ PeHeader *pe_header = NULL;
r = pe_load_headers(srcfd, &dos_header, &pe_header);
if (r < 0)
return log_error_errno(r, "Failed to load headers from PE file: %m");
const IMAGE_DATA_DIRECTORY *certificate_table;
certificate_table = pe_header_get_data_directory(pe_header, IMAGE_DATA_DIRECTORY_INDEX_CERTIFICATION_TABLE);
if (!certificate_table)
return log_error_errno(SYNTHETIC_ERRNO(EBADMSG), "File lacks certificate table.");
off_t end = st.st_size;
ssize_t n;
if (st.st_size % 8 != 0) {
if (certificate_table->VirtualAddress != 0)
return log_error_errno(SYNTHETIC_ERRNO(EBADMSG), "Certificate table is not aligned to 8 bytes");
n = pwrite(dstfd, (const uint8_t[8]) {}, 8 - (st.st_size % 8), st.st_size);
if (n < 0)
return log_error_errno(errno, "Failed to write zero padding: %m");
if (n != 8 - (st.st_size % 8))
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Short write while writing zero padding.");
end += n;
}
uint32_t certsz = offsetof(WIN_CERTIFICATE, bCertificate) + sigsz;
n = pwrite(dstfd,
&(WIN_CERTIFICATE) {
.wRevision = htole16(0x200),
.wCertificateType = htole16(0x0002), /* PKCS7 signedData */
.dwLength = htole32(ROUND_UP(certsz, 8)),
},
sizeof(WIN_CERTIFICATE),
end);
if (n < 0)
return log_error_errno(errno, "Failed to write certificate header: %m");
if (n != sizeof(WIN_CERTIFICATE))
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Short write while writing certificate header.");
end += n;
n = pwrite(dstfd, sig, sigsz, end);
if (n < 0)
return log_error_errno(errno, "Failed to write signature: %m");
if (n != sigsz)
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Short write while writing signature.");
end += n;
if (certsz % 8 != 0) {
n = pwrite(dstfd, (const uint8_t[8]) {}, 8 - (certsz % 8), end);
if (n < 0)
return log_error_errno(errno, "Failed to write zero padding: %m");
if ((size_t) n != 8 - (certsz % 8))
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Short write while writing zero padding.");
}
n = pwrite(dstfd,
&(IMAGE_DATA_DIRECTORY) {
.VirtualAddress = certificate_table->VirtualAddress ?: htole32(ROUND_UP(st.st_size, 8)),
.Size = htole32(le32toh(certificate_table->Size) + ROUND_UP(certsz, 8)),
},
sizeof(IMAGE_DATA_DIRECTORY),
le32toh(dos_header->e_lfanew) + PE_HEADER_OPTIONAL_FIELD_OFFSET(pe_header, DataDirectory[IMAGE_DATA_DIRECTORY_INDEX_CERTIFICATION_TABLE]));
if (n < 0)
return log_error_errno(errno, "Failed to update PE certificate table: %m");
if ((size_t) n != sizeof(IMAGE_DATA_DIRECTORY))
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Short write while updating PE certificate table.");
uint32_t checksum;
r = pe_checksum(dstfd, &checksum);
if (r < 0)
return log_error_errno(r, "Failed to calculate PE file checksum: %m");
n = pwrite(dstfd,
&(le32_t) { htole32(checksum) },
sizeof(le32_t),
le32toh(dos_header->e_lfanew) + offsetof(PeHeader, optional.CheckSum));
if (n < 0)
return log_error_errno(errno, "Failed to update PE checksum: %m");
if ((size_t) n != sizeof(le32_t))
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Short write while updating PE checksum.");
r = link_tmpfile(dstfd, tmp, arg_output, LINK_TMPFILE_REPLACE|LINK_TMPFILE_SYNC);
if (r < 0)
return log_error_errno(r, "Failed to link temporary file to %s: %m", arg_output);
log_info("Wrote signed PE binary to %s", arg_output);
return 0;
}
static int verb_validate_key(int argc, char *argv[], void *userdata) {
_cleanup_(openssl_ask_password_ui_freep) OpenSSLAskPasswordUI *ui = NULL;
_cleanup_(EVP_PKEY_freep) EVP_PKEY *private_key = NULL;
int r;
if (!arg_private_key)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"No private key specified, use --private-key=.");
if (arg_private_key_source_type == OPENSSL_KEY_SOURCE_FILE) {
r = parse_path_argument(arg_private_key, /* suppress_root= */ false, &arg_private_key);
if (r < 0)
return log_error_errno(r, "Failed to parse private key path %s: %m", arg_private_key);
}
r = openssl_load_private_key(
arg_private_key_source_type,
arg_private_key_source,
arg_private_key,
&(AskPasswordRequest) {
.id = "sbsign-private-key-pin",
.keyring = arg_private_key,
.credential = "sbsign.private-key-pin",
},
&private_key,
&ui);
if (r < 0)
return log_error_errno(r, "Failed to load private key from %s: %m", arg_private_key);
puts("OK");
return 0;
}
static int run(int argc, char *argv[]) {
static const Verb verbs[] = {
{ "help", VERB_ANY, VERB_ANY, 0, help },
{ "sign", 2, 2, 0, verb_sign },
{ "validate-key", VERB_ANY, 1, 0, verb_validate_key },
{}
};
int r;
log_setup();
r = parse_argv(argc, argv);
if (r <= 0)
return r;
return dispatch_verb(argc, argv, verbs, NULL);
}
DEFINE_MAIN_FUNCTION(run);

View File

@ -2165,10 +2165,8 @@ static int setup_private_users(PrivateUsers private_users, uid_t ouid, gid_t ogi
errno_pipe[0] = safe_close(errno_pipe[0]);
/* Wait until the parent unshared the user namespace */
if (read(unshare_ready_fd, &c, sizeof(c)) < 0) {
r = -errno;
goto child_fail;
}
if (read(unshare_ready_fd, &c, sizeof(c)) < 0)
report_errno_and_exit(errno_pipe[1], -errno);
/* Disable the setgroups() system call in the child user namespace, for good. */
a = procfs_file_alloca(ppid, "setgroups");
@ -2176,14 +2174,14 @@ static int setup_private_users(PrivateUsers private_users, uid_t ouid, gid_t ogi
if (fd < 0) {
if (errno != ENOENT) {
r = log_debug_errno(errno, "Failed to open %s: %m", a);
goto child_fail;
report_errno_and_exit(errno_pipe[1], r);
}
/* If the file is missing the kernel is too old, let's continue anyway. */
} else {
if (write(fd, "deny\n", 5) < 0) {
r = log_debug_errno(errno, "Failed to write \"deny\" to %s: %m", a);
goto child_fail;
report_errno_and_exit(errno_pipe[1], r);
}
fd = safe_close(fd);
@ -2194,12 +2192,14 @@ static int setup_private_users(PrivateUsers private_users, uid_t ouid, gid_t ogi
fd = open(a, O_WRONLY|O_CLOEXEC);
if (fd < 0) {
r = log_debug_errno(errno, "Failed to open %s: %m", a);
goto child_fail;
report_errno_and_exit(errno_pipe[1], r);
}
if (write(fd, gid_map, strlen(gid_map)) < 0) {
r = log_debug_errno(errno, "Failed to write GID map to %s: %m", a);
goto child_fail;
report_errno_and_exit(errno_pipe[1], r);
}
fd = safe_close(fd);
/* The write the UID map */
@ -2207,18 +2207,15 @@ static int setup_private_users(PrivateUsers private_users, uid_t ouid, gid_t ogi
fd = open(a, O_WRONLY|O_CLOEXEC);
if (fd < 0) {
r = log_debug_errno(errno, "Failed to open %s: %m", a);
goto child_fail;
report_errno_and_exit(errno_pipe[1], r);
}
if (write(fd, uid_map, strlen(uid_map)) < 0) {
r = log_debug_errno(errno, "Failed to write UID map to %s: %m", a);
goto child_fail;
report_errno_and_exit(errno_pipe[1], r);
}
_exit(EXIT_SUCCESS);
child_fail:
(void) write(errno_pipe[1], &r, sizeof(r));
_exit(EXIT_FAILURE);
}
errno_pipe[1] = safe_close(errno_pipe[1]);

View File

@ -3170,21 +3170,11 @@ int main(int argc, char *argv[]) {
}
if (!skip_setup) {
/* Before we actually start deleting cgroup v1 code, make it harder to boot
* in cgroupv1 mode first. See also #30852. */
r = mount_cgroup_legacy_controllers(loaded_policy);
if (r < 0) {
if (r == -ERFKILL)
error_message = "Refusing to run under cgroup v1, SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 not specified on kernel command line";
else
error_message = "Failed to mount cgroup v1 hierarchy";
error_message = "Failed to mount cgroup v1 hierarchy";
goto finish;
}
if (r > 0) {
log_full(LOG_CRIT, "Legacy cgroup v1 support selected. This is no longer supported. Will proceed anyway after 30s.");
(void) usleep_safe(30 * USEC_PER_SEC);
}
}
/* The efivarfs is now mounted, let's lock down the system token. */

View File

@ -5067,7 +5067,7 @@ static int manager_dispatch_pidref_transport_fd(sd_event_source *source, int fd,
_cleanup_close_ int child_pidfd = -EBADF, parent_pidfd = -EBADF;
struct ucred *ucred = NULL;
CMSG_BUFFER_TYPE(CMSG_SPACE(sizeof(struct ucred)) + CMSG_SPACE(sizeof(int)) * 2) control;
pid_t child_pid;
pid_t child_pid = 0; /* silence false-positive warning by coverity */
struct msghdr msghdr = {
.msg_iov = &IOVEC_MAKE(&child_pid, sizeof(child_pid)),
.msg_iovlen = 1,

View File

@ -47,7 +47,7 @@ enum {
/* The tag used for EV_EVENT_TAG event log records covering the boot loader config */
#define LOADER_CONF_EVENT_TAG_ID UINT32_C(0xf5bc582a)
/* The tag used for EV_EVENT_TAG event log records covering Devicetree blobs */
/* The tag used for EV_EVENT_TAG event log records covering DeviceTree blobs */
#define DEVICETREE_ADDON_EVENT_TAG_ID UINT32_C(0x6c46f751)
/* The tag used for EV_EVENT_TAG event log records covering initrd addons */

View File

@ -502,7 +502,7 @@ try_devicetree:
return NULL;
}
/* Note that the Devicetree specification uses the very same vocabulary
/* Note that the DeviceTree specification uses the very same vocabulary
* of chassis types as we do, hence we do not need to translate these types:
*
* https://github.com/devicetree-org/devicetree-specification/blob/master/source/chapter3-devicenodes.rst */

View File

@ -2,6 +2,7 @@
#include "alloc-util.h"
#include "devnum-util.h"
#include "env-util.h"
#include "fd-util.h"
#include "glyph-util.h"
#include "in-addr-util.h"
@ -369,6 +370,40 @@ int json_dispatch_devnum(const char *name, sd_json_variant *variant, sd_json_dis
return 0;
}
int json_dispatch_strv_environment(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
_cleanup_strv_free_ char **n = NULL;
char ***l = userdata;
int r;
if (sd_json_variant_is_null(variant)) {
*l = strv_free(*l);
return 0;
}
if (!sd_json_variant_is_array(variant))
return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an array.", strna(name));
for (size_t i = 0; i < sd_json_variant_elements(variant); i++) {
sd_json_variant *e;
const char *a;
e = sd_json_variant_by_index(variant, i);
if (!sd_json_variant_is_string(e))
return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an array of strings.", strna(name));
assert_se(a = sd_json_variant_string(e));
if (!env_assignment_is_valid(a))
return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an array of environment variables.", strna(name));
r = strv_env_replace_strdup(&n, a);
if (r < 0)
return json_log_oom(variant, flags);
}
return strv_free_and_replace(*l, n);
}
static int json_variant_new_stat(sd_json_variant **ret, const struct stat *st) {
char mode[STRLEN("0755")+1];

View File

@ -116,6 +116,7 @@ int json_dispatch_path(const char *name, sd_json_variant *variant, sd_json_dispa
int json_dispatch_pidref(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata);
int json_dispatch_devnum(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata);
int json_dispatch_ifindex(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata);
int json_dispatch_strv_environment(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata);
static inline int json_variant_unbase64_iovec(sd_json_variant *v, struct iovec *ret) {
return sd_json_variant_unbase64(v, ret ? &ret->iov_base : NULL, ret ? &ret->iov_len : NULL);

View File

@ -294,59 +294,11 @@ int bus_machine_method_open_pty(sd_bus_message *message, void *userdata, sd_bus_
return sd_bus_send(NULL, reply, NULL);
}
static int container_bus_new(Machine *m, sd_bus_error *error, sd_bus **ret) {
int r;
assert(m);
assert(ret);
switch (m->class) {
case MACHINE_HOST:
*ret = NULL;
break;
case MACHINE_CONTAINER: {
_cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL;
char *address;
r = sd_bus_new(&bus);
if (r < 0)
return r;
if (asprintf(&address, "x-machine-unix:pid=%" PID_PRI, m->leader.pid) < 0)
return -ENOMEM;
bus->address = address;
bus->bus_client = true;
bus->trusted = false;
bus->runtime_scope = RUNTIME_SCOPE_SYSTEM;
r = sd_bus_start(bus);
if (r == -ENOENT)
return sd_bus_error_set_errnof(error, r, "There is no system bus in container %s.", m->name);
if (r < 0)
return r;
*ret = TAKE_PTR(bus);
break;
}
default:
return -EOPNOTSUPP;
}
return 0;
}
int bus_machine_method_open_login(sd_bus_message *message, void *userdata, sd_bus_error *error) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
_cleanup_free_ char *pty_name = NULL;
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *allocated_bus = NULL;
_cleanup_close_ int master = -EBADF;
sd_bus *container_bus = NULL;
Machine *m = ASSERT_PTR(userdata);
const char *p, *getty;
int r;
assert(message);
@ -372,18 +324,7 @@ int bus_machine_method_open_login(sd_bus_message *message, void *userdata, sd_bu
if (master < 0)
return master;
p = path_startswith(pty_name, "/dev/pts/");
assert(p);
r = container_bus_new(m, error, &allocated_bus);
if (r < 0)
return r;
container_bus = allocated_bus ?: m->manager->bus;
getty = strjoina("container-getty@", p, ".service");
r = bus_call_method(container_bus, bus_systemd_mgr, "StartUnit", error, NULL, "ss", getty, "replace");
r = machine_start_getty(m, pty_name, error);
if (r < 0)
return r;
@ -399,15 +340,13 @@ int bus_machine_method_open_login(sd_bus_message *message, void *userdata, sd_bu
}
int bus_machine_method_open_shell(sd_bus_message *message, void *userdata, sd_bus_error *error) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL, *tm = NULL;
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
_cleanup_free_ char *pty_name = NULL;
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *allocated_bus = NULL;
sd_bus *container_bus = NULL;
_cleanup_close_ int master = -EBADF, slave = -EBADF;
_cleanup_close_ int master = -EBADF;
_cleanup_strv_free_ char **env = NULL, **args_wire = NULL, **args = NULL;
_cleanup_free_ char *command_line = NULL;
Machine *m = ASSERT_PTR(userdata);
const char *unit, *user, *path, *description, *utmp_id;
const char *user, *path;
int r;
assert(message);
@ -420,25 +359,10 @@ int bus_machine_method_open_shell(sd_bus_message *message, void *userdata, sd_bu
if (r < 0)
return r;
if (isempty(path)) {
path = "/bin/sh";
args = new0(char*, 3 + 1);
path = machine_default_shell_path();
args = machine_default_shell_args(user);
if (!args)
return -ENOMEM;
args[0] = strdup("sh");
if (!args[0])
return -ENOMEM;
args[1] = strdup("-c");
if (!args[1])
return -ENOMEM;
r = asprintf(&args[2],
"shell=$(getent passwd %s 2>/dev/null | { IFS=: read _ _ _ _ _ _ x; echo \"$x\"; })\n"\
"exec \"${shell:-/bin/sh}\" -l", /* -l is means --login */
user);
if (r < 0) {
args[2] = NULL;
return -ENOMEM;
}
} else {
if (!path_is_absolute(path))
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Specified path '%s' is not absolute", path);
@ -484,153 +408,10 @@ int bus_machine_method_open_shell(sd_bus_message *message, void *userdata, sd_bu
if (master < 0)
return master;
/* First try to get an fd for the PTY peer via the new racefree ioctl(), directly. Otherwise go via
* joining the namespace, because it goes by path */
slave = pty_open_peer_racefree(master, O_RDWR|O_NOCTTY|O_CLOEXEC);
if (ERRNO_IS_NEG_NOT_SUPPORTED(slave))
slave = machine_open_terminal(m, pty_name, O_RDWR|O_NOCTTY|O_CLOEXEC);
if (slave < 0)
return slave;
utmp_id = path_startswith(pty_name, "/dev/");
assert(utmp_id);
r = container_bus_new(m, error, &allocated_bus);
r = machine_start_shell(m, master, pty_name, user, path, args, env, error);
if (r < 0)
return r;
container_bus = allocated_bus ?: m->manager->bus;
r = bus_message_new_method_call(container_bus, &tm, bus_systemd_mgr, "StartTransientUnit");
if (r < 0)
return r;
/* Name and mode */
const char *p = ASSERT_PTR(path_startswith(pty_name, "/dev/pts/"));
unit = strjoina("container-shell@", p, ".service");
r = sd_bus_message_append(tm, "ss", unit, "fail");
if (r < 0)
return r;
/* Properties */
r = sd_bus_message_open_container(tm, 'a', "(sv)");
if (r < 0)
return r;
description = strjoina("Shell for User ", user);
r = sd_bus_message_append(tm,
"(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)",
"Description", "s", description,
"StandardInputFileDescriptor", "h", slave,
"StandardOutputFileDescriptor", "h", slave,
"StandardErrorFileDescriptor", "h", slave,
"SendSIGHUP", "b", true,
"IgnoreSIGPIPE", "b", false,
"KillMode", "s", "mixed",
"TTYPath", "s", pty_name,
"TTYReset", "b", true,
"UtmpIdentifier", "s", utmp_id,
"UtmpMode", "s", "user",
"PAMName", "s", "login",
"WorkingDirectory", "s", "-~");
if (r < 0)
return r;
r = sd_bus_message_append(tm, "(sv)", "User", "s", user);
if (r < 0)
return r;
if (!strv_isempty(env)) {
r = sd_bus_message_open_container(tm, 'r', "sv");
if (r < 0)
return r;
r = sd_bus_message_append(tm, "s", "Environment");
if (r < 0)
return r;
r = sd_bus_message_open_container(tm, 'v', "as");
if (r < 0)
return r;
r = sd_bus_message_append_strv(tm, env);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
}
/* Exec container */
r = sd_bus_message_open_container(tm, 'r', "sv");
if (r < 0)
return r;
r = sd_bus_message_append(tm, "s", "ExecStart");
if (r < 0)
return r;
r = sd_bus_message_open_container(tm, 'v', "a(sasb)");
if (r < 0)
return r;
r = sd_bus_message_open_container(tm, 'a', "(sasb)");
if (r < 0)
return r;
r = sd_bus_message_open_container(tm, 'r', "sasb");
if (r < 0)
return r;
r = sd_bus_message_append(tm, "s", path);
if (r < 0)
return r;
r = sd_bus_message_append_strv(tm, args);
if (r < 0)
return r;
r = sd_bus_message_append(tm, "b", true);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
/* Auxiliary units */
r = sd_bus_message_append(tm, "a(sa(sv))", 0);
if (r < 0)
return r;
r = sd_bus_call(container_bus, tm, 0, error, NULL);
if (r < 0)
return r;
slave = safe_close(slave);
r = sd_bus_message_new_method_return(message, &reply);
if (r < 0)
return r;

View File

@ -7,6 +7,7 @@
#include "sd-varlink.h"
#include "bus-polkit.h"
#include "fd-util.h"
#include "hostname-util.h"
#include "json-util.h"
#include "machine-varlink.h"
@ -16,7 +17,9 @@
#include "process-util.h"
#include "signal-util.h"
#include "socket-util.h"
#include "string-table.h"
#include "string-util.h"
#include "user-util.h"
#include "varlink-util.h"
static JSON_DISPATCH_ENUM_DEFINE(dispatch_machine_class, MachineClass, machine_class_from_string);
@ -375,3 +378,195 @@ int vl_method_kill(sd_varlink *link, sd_json_variant *parameters, sd_varlink_met
return sd_varlink_reply(link, NULL);
}
typedef enum MachineOpenMode {
MACHINE_OPEN_MODE_TTY,
MACHINE_OPEN_MODE_LOGIN,
MACHINE_OPEN_MODE_SHELL,
_MACHINE_OPEN_MODE_MAX,
_MACHINE_OPEN_MODE_INVALID = -EINVAL,
} MachineOpenMode;
static const char* const machine_open_mode_table[_MACHINE_OPEN_MODE_MAX] = {
[MACHINE_OPEN_MODE_TTY] = "tty",
[MACHINE_OPEN_MODE_LOGIN] = "login",
[MACHINE_OPEN_MODE_SHELL] = "shell",
};
DEFINE_PRIVATE_STRING_TABLE_LOOKUP_FROM_STRING(machine_open_mode, MachineOpenMode);
static JSON_DISPATCH_ENUM_DEFINE(json_dispatch_machine_open_mode, MachineOpenMode, machine_open_mode_from_string);
typedef struct MachineOpenParameters {
const char *name, *user;
PidRef pidref;
MachineOpenMode mode;
char *path, **args, **env;
} MachineOpenParameters;
static void machine_open_paramaters_done(MachineOpenParameters *p) {
assert(p);
pidref_done(&p->pidref);
free(p->path);
strv_free(p->args);
strv_free(p->env);
}
inline static const char* machine_open_polkit_action(MachineOpenMode mode, MachineClass class) {
switch (mode) {
case MACHINE_OPEN_MODE_TTY:
return class == MACHINE_HOST ? "org.freedesktop.machine1.host-open-pty" : "org.freedesktop.machine1.open-pty";
case MACHINE_OPEN_MODE_LOGIN:
return class == MACHINE_HOST ? "org.freedesktop.machine1.host-login" : "org.freedesktop.machine1.login";
case MACHINE_OPEN_MODE_SHELL:
return class == MACHINE_HOST ? "org.freedesktop.machine1.host-shell" : "org.freedesktop.machine1.shell";
default:
assert_not_reached();
}
}
inline static char** machine_open_polkit_details(MachineOpenMode mode, const char *machine_name, const char *user, const char *path, const char *command_line) {
assert(machine_name);
switch (mode) {
case MACHINE_OPEN_MODE_TTY:
return strv_new("machine", machine_name);
case MACHINE_OPEN_MODE_LOGIN:
return strv_new("machine", machine_name, "verb", "login");
case MACHINE_OPEN_MODE_SHELL:
assert(user);
assert(path);
assert(command_line);
return strv_new(
"machine", machine_name,
"verb", "shell",
"user", user,
"program", path,
"command_line", command_line);
default:
assert_not_reached();
}
}
int vl_method_open(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata) {
static const sd_json_dispatch_field dispatch_table[] = {
VARLINK_DISPATCH_MACHINE_LOOKUP_FIELDS(MachineOpenParameters),
{ "mode", SD_JSON_VARIANT_STRING, json_dispatch_machine_open_mode, offsetof(MachineOpenParameters, mode), SD_JSON_MANDATORY },
{ "user", SD_JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(MachineOpenParameters, user), SD_JSON_RELAX },
{ "path", SD_JSON_VARIANT_STRING, json_dispatch_path, offsetof(MachineOpenParameters, path), 0 },
{ "args", SD_JSON_VARIANT_ARRAY, sd_json_dispatch_strv, offsetof(MachineOpenParameters, args), 0 },
{ "environment", SD_JSON_VARIANT_ARRAY, json_dispatch_strv_environment, offsetof(MachineOpenParameters, env), 0 },
VARLINK_DISPATCH_POLKIT_FIELD,
{}
};
Manager *manager = ASSERT_PTR(userdata);
_cleanup_close_ int ptmx_fd = -EBADF;
_cleanup_(machine_open_paramaters_done) MachineOpenParameters p = {
.pidref = PIDREF_NULL,
.mode = _MACHINE_OPEN_MODE_INVALID,
};
_cleanup_(sd_json_variant_unrefp) sd_json_variant *v = NULL;
_cleanup_free_ char *ptmx_name = NULL, *command_line = NULL;
_cleanup_strv_free_ char **polkit_details = NULL, **args = NULL;
const char *user = NULL, *path = NULL; /* gcc complains about uninitialized variables */
Machine *machine;
int r, ptmx_fd_idx;
assert(link);
assert(parameters);
r = sd_varlink_set_allow_fd_passing_output(link, true);
if (r < 0)
return log_error_errno(r, "Failed to enable varlink fd passing for write: %m");
r = sd_varlink_dispatch(link, parameters, dispatch_table, &p);
if (r != 0)
return r;
if (p.mode == MACHINE_OPEN_MODE_SHELL) {
/* json_dispatch_const_user_group_name() does valid_user_group_name(p.user) */
/* json_dispatch_path() does path_is_absolute(p.path) */
/* json_dispatch_strv_environment() does validation of p.env */
user = p.user ?: "root";
path = p.path ?: machine_default_shell_path();
args = !p.path ? machine_default_shell_args(user) : strv_isempty(p.args) ? strv_new(path) : TAKE_PTR(p.args);
if (!args)
return -ENOMEM;
command_line = strv_join(args, " ");
if (!command_line)
return -ENOMEM;
}
r = lookup_machine_by_name_or_pidref(link, manager, p.name, &p.pidref, &machine);
if (r == -ESRCH)
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
if (r < 0)
return r;
polkit_details = machine_open_polkit_details(p.mode, machine->name, user, path, command_line);
r = varlink_verify_polkit_async(
link,
manager->bus,
machine_open_polkit_action(p.mode, machine->class),
(const char**) polkit_details,
&manager->polkit_registry);
if (r <= 0)
return r;
ptmx_fd = machine_openpt(machine, O_RDWR|O_NOCTTY|O_CLOEXEC, &ptmx_name);
if (ERRNO_IS_NEG_NOT_SUPPORTED(ptmx_fd))
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
if (ptmx_fd < 0)
return log_debug_errno(ptmx_fd, "Failed to open pseudo terminal: %m");
switch (p.mode) {
case MACHINE_OPEN_MODE_TTY:
/* noop */
break;
case MACHINE_OPEN_MODE_LOGIN:
r = machine_start_getty(machine, ptmx_name, /* error = */ NULL);
if (r == -ENOENT)
return sd_varlink_error(link, "io.systemd.Machine.NoIPC", NULL);
if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
if (r < 0)
return log_debug_errno(r, "Failed to start getty for machine '%s': %m", machine->name);
break;
case MACHINE_OPEN_MODE_SHELL: {
assert(user && path && args); /* to avoid gcc complaining about possible uninitialized variables */
r = machine_start_shell(machine, ptmx_fd, ptmx_name, user, path, args, p.env, /* error = */ NULL);
if (r == -ENOENT)
return sd_varlink_error(link, "io.systemd.Machine.NoIPC", NULL);
if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
if (r < 0)
return log_debug_errno(r, "Failed to start shell for machine '%s': %m", machine->name);
break;
}
default:
assert_not_reached();
}
ptmx_fd_idx = sd_varlink_push_fd(link, ptmx_fd);
/* no need to handle -EPERM because we do sd_varlink_set_allow_fd_passing_output() above */
if (ptmx_fd_idx < 0)
return log_debug_errno(ptmx_fd_idx, "Failed to push file descriptor over varlink: %m");
TAKE_FD(ptmx_fd);
r = sd_json_buildo(
&v,
SD_JSON_BUILD_PAIR_INTEGER("ptyFileDescriptor", ptmx_fd_idx),
JSON_BUILD_PAIR_STRING_NON_EMPTY("ptyPath", ptmx_name));
if (r < 0)
return r;
return sd_varlink_reply(link, v);
}

View File

@ -24,3 +24,4 @@ int vl_method_register(sd_varlink *link, sd_json_variant *parameters, sd_varlink
int vl_method_unregister_internal(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
int vl_method_terminate_internal(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
int vl_method_kill(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
int vl_method_open(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);

View File

@ -8,6 +8,7 @@
#include "alloc-util.h"
#include "bus-error.h"
#include "bus-internal.h"
#include "bus-locator.h"
#include "bus-unit-util.h"
#include "bus-util.h"
@ -702,6 +703,276 @@ int machine_open_terminal(Machine *m, const char *path, int mode) {
}
}
static int machine_bus_new(Machine *m, sd_bus_error *error, sd_bus **ret) {
int r;
assert(m);
assert(ret);
switch (m->class) {
case MACHINE_HOST:
*ret = NULL;
return 0;
case MACHINE_CONTAINER: {
_cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL;
char *address;
r = sd_bus_new(&bus);
if (r < 0)
return log_debug_errno(r, "Failed to allocate new DBus: %m");
if (asprintf(&address, "x-machine-unix:pid=%" PID_PRI, m->leader.pid) < 0)
return -ENOMEM;
bus->address = address;
bus->bus_client = true;
bus->trusted = false;
bus->runtime_scope = RUNTIME_SCOPE_SYSTEM;
r = sd_bus_start(bus);
if (r == -ENOENT)
return sd_bus_error_set_errnof(error, r, "There is no system bus in container %s.", m->name);
if (r < 0)
return r;
*ret = TAKE_PTR(bus);
return 0;
}
default:
return -EOPNOTSUPP;
}
}
int machine_start_getty(Machine *m, const char *ptmx_name, sd_bus_error *error) {
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *allocated_bus = NULL;
sd_bus *container_bus = NULL;
const char *p, *getty;
int r;
assert(m);
assert(ptmx_name);
p = path_startswith(ptmx_name, "/dev/pts/");
if (!p)
return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "Path of pseudo TTY has unexpected prefix");
r = machine_bus_new(m, error, &allocated_bus);
if (r < 0)
return log_debug_errno(r, "Failed to create DBus to machine: %m");
container_bus = allocated_bus ?: m->manager->bus;
getty = strjoina("container-getty@", p, ".service");
r = bus_call_method(container_bus, bus_systemd_mgr, "StartUnit", error, /* reply = */ NULL, "ss", getty, "replace");
if (r < 0)
return log_debug_errno(r, "Failed to StartUnit '%s' in container '%s': %m", getty, m->name);
return 0;
}
int machine_start_shell(
Machine *m,
int ptmx_fd,
const char *ptmx_name,
const char *user,
const char *path,
char **args,
char **env,
sd_bus_error *error) {
_cleanup_close_ int pty_fd = -EBADF;
_cleanup_(sd_bus_message_unrefp) sd_bus_message *tm = NULL;
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *allocated_bus = NULL;
const char *p, *utmp_id, *unit, *description;
sd_bus *container_bus = NULL;
int r;
assert(m);
assert(ptmx_fd >= 0);
assert(ptmx_name);
if (isempty(user) || isempty(path) || strv_isempty(args))
return -EINVAL;
p = path_startswith(ptmx_name, "/dev/pts/");
utmp_id = path_startswith(ptmx_name, "/dev/");
if (!p || !utmp_id)
return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "Path of pseudo TTY has unexpected prefix");
/* First try to get an fd for the PTY peer via the new racefree ioctl(), directly. Otherwise go via
* joining the namespace, because it goes by path */
pty_fd = pty_open_peer_racefree(ptmx_fd, O_RDWR|O_NOCTTY|O_CLOEXEC);
if (ERRNO_IS_NEG_NOT_SUPPORTED(pty_fd))
pty_fd = machine_open_terminal(m, ptmx_name, O_RDWR|O_NOCTTY|O_CLOEXEC);
if (pty_fd < 0)
return log_debug_errno(pty_fd, "Failed to open terminal: %m");
r = machine_bus_new(m, error, &allocated_bus);
if (r < 0)
return log_debug_errno(r, "Failed to create DBus to machine: %m");
container_bus = allocated_bus ?: m->manager->bus;
r = bus_message_new_method_call(container_bus, &tm, bus_systemd_mgr, "StartTransientUnit");
if (r < 0)
return r;
/* Name and mode */
unit = strjoina("container-shell@", p, ".service");
r = sd_bus_message_append(tm, "ss", unit, "fail");
if (r < 0)
return r;
/* Properties */
r = sd_bus_message_open_container(tm, 'a', "(sv)");
if (r < 0)
return r;
description = strjoina("Shell for User ", user);
r = sd_bus_message_append(tm,
"(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)(sv)",
"Description", "s", description,
"StandardInputFileDescriptor", "h", pty_fd,
"StandardOutputFileDescriptor", "h", pty_fd,
"StandardErrorFileDescriptor", "h", pty_fd,
"SendSIGHUP", "b", true,
"IgnoreSIGPIPE", "b", false,
"KillMode", "s", "mixed",
"TTYPath", "s", ptmx_name,
"TTYReset", "b", true,
"UtmpIdentifier", "s", utmp_id,
"UtmpMode", "s", "user",
"PAMName", "s", "login",
"WorkingDirectory", "s", "-~");
if (r < 0)
return r;
r = sd_bus_message_append(tm, "(sv)", "User", "s", user);
if (r < 0)
return r;
if (!strv_isempty(env)) {
r = sd_bus_message_open_container(tm, 'r', "sv");
if (r < 0)
return r;
r = sd_bus_message_append(tm, "s", "Environment");
if (r < 0)
return r;
r = sd_bus_message_open_container(tm, 'v', "as");
if (r < 0)
return r;
r = sd_bus_message_append_strv(tm, env);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
}
/* Exec container */
r = sd_bus_message_open_container(tm, 'r', "sv");
if (r < 0)
return r;
r = sd_bus_message_append(tm, "s", "ExecStart");
if (r < 0)
return r;
r = sd_bus_message_open_container(tm, 'v', "a(sasb)");
if (r < 0)
return r;
r = sd_bus_message_open_container(tm, 'a', "(sasb)");
if (r < 0)
return r;
r = sd_bus_message_open_container(tm, 'r', "sasb");
if (r < 0)
return r;
r = sd_bus_message_append(tm, "s", path);
if (r < 0)
return r;
r = sd_bus_message_append_strv(tm, args);
if (r < 0)
return r;
r = sd_bus_message_append(tm, "b", true);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
r = sd_bus_message_close_container(tm);
if (r < 0)
return r;
/* Auxiliary units */
r = sd_bus_message_append(tm, "a(sa(sv))", 0);
if (r < 0)
return r;
r = sd_bus_call(container_bus, tm, 0, error, NULL);
if (r < 0)
return r;
return 0;
}
char** machine_default_shell_args(const char *user) {
_cleanup_strv_free_ char **args = NULL;
int r;
assert(user);
args = new0(char*, 3 + 1);
if (!args)
return NULL;
args[0] = strdup("sh");
if (!args[0])
return NULL;
args[1] = strdup("-c");
if (!args[1])
return NULL;
r = asprintf(&args[2],
"shell=$(getent passwd %s 2>/dev/null | { IFS=: read _ _ _ _ _ _ x; echo \"$x\"; })\n"\
"exec \"${shell:-/bin/sh}\" -l", /* -l is means --login */
user);
if (r < 0) {
args[2] = NULL;
return NULL;
}
return TAKE_PTR(args);
}
void machine_release_unit(Machine *m) {
assert(m);

View File

@ -102,6 +102,10 @@ KillWhom kill_whom_from_string(const char *s) _pure_;
int machine_openpt(Machine *m, int flags, char **ret_slave);
int machine_open_terminal(Machine *m, const char *path, int mode);
int machine_start_getty(Machine *m, const char *ptmx_name, sd_bus_error *error);
int machine_start_shell(Machine *m, int ptmx_fd, const char *ptmx_name, const char *user, const char *path, char **args, char **env, sd_bus_error *error);
#define machine_default_shell_path() ("/bin/sh")
char** machine_default_shell_args(const char *user);
int machine_get_uid_shift(Machine *m, uid_t *ret);

View File

@ -773,6 +773,7 @@ static int manager_varlink_init_machine(Manager *m) {
"io.systemd.Machine.Unregister", vl_method_unregister,
"io.systemd.Machine.Terminate", vl_method_terminate,
"io.systemd.Machine.Kill", vl_method_kill,
"io.systemd.Machine.Open", vl_method_open,
"io.systemd.MachineImage.List", vl_method_list_images,
"io.systemd.MachineImage.Update", vl_method_update_image,
"io.systemd.MachineImage.Clone", vl_method_clone_image,

View File

@ -154,18 +154,3 @@ Operation *operation_free(Operation *o) {
return mfree(o);
}
_noreturn_ void report_errno_and_exit(int errno_fd, int r) {
if (r >= 0)
_exit(EXIT_SUCCESS);
assert(errno_fd >= 0);
ssize_t n = write(errno_fd, &r, sizeof(r));
if (n < 0)
log_debug_errno(errno, "Failed to write operation's errno: %m");
if (n != sizeof(r))
log_debug_errno(SYNTHETIC_ERRNO(EIO), "Sent unexpectedly short message");
_exit(EXIT_FAILURE);
}

View File

@ -39,5 +39,3 @@ static inline int operation_new_with_bus_reply(Manager *manager, Machine *machin
static inline int operation_new_with_varlink_reply(Manager *manager, Machine *machine, pid_t child, sd_varlink *link, int errno_fd, Operation **ret) {
return operation_new(manager, machine, child, /* message = */ NULL, link, errno_fd, ret);
}
void report_errno_and_exit(int errno_fd, int r);

View File

@ -150,6 +150,7 @@ Network.IPv4ProxyARPPrivateVLAN, config_parse_tristate,
Network.ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp)
Network.IPv6ProxyNDPAddress, config_parse_ipv6_proxy_ndp_address, 0, 0
Network.IPv4ReversePathFilter, config_parse_ip_reverse_path_filter, 0, offsetof(Network, ipv4_rp_filter)
Network.MulticastIGMPVersion, config_parse_ipv4_force_igmp_version, 0, offsetof(Network, ipv4_force_igmp_version)
Network.BindCarrier, config_parse_strv, 0, offsetof(Network, bind_carrier)
Network.ConfigureWithoutCarrier, config_parse_bool, 0, offsetof(Network, configure_without_carrier)
Network.IgnoreCarrierLoss, config_parse_ignore_carrier_loss, 0, 0

View File

@ -481,6 +481,7 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi
.proxy_arp = -1,
.proxy_arp_pvlan = -1,
.ipv4_rp_filter = _IP_REVERSE_PATH_FILTER_INVALID,
.ipv4_force_igmp_version = _IPV4_FORCE_IGMP_VERSION_INVALID,
.ndisc = -1,
.ndisc_use_redirect = true,

View File

@ -340,6 +340,7 @@ struct Network {
uint32_t ipv6_mtu;
IPv6PrivacyExtensions ipv6_privacy_extensions;
IPReversePathFilter ipv4_rp_filter;
IPv4ForceIgmpVersion ipv4_force_igmp_version;
int ipv6_proxy_ndp;
Set *ipv6_proxy_ndp_addresses;

View File

@ -408,6 +408,18 @@ static int link_set_ipv4_rp_filter(Link *link) {
return sysctl_write_ip_property_int(AF_INET, link->ifname, "rp_filter", link->network->ipv4_rp_filter, manager_get_sysctl_shadow(link->manager));
}
static int link_set_ipv4_force_igmp_version(Link *link) {
assert(link);
if (!link_is_configured_for_family(link, AF_INET))
return 0;
if (link->network->ipv4_force_igmp_version < 0)
return 0;
return sysctl_write_ip_property_int(AF_INET, link->ifname, "force_igmp_version", link->network->ipv4_force_igmp_version, manager_get_sysctl_shadow(link->manager));
}
static int link_set_ipv6_privacy_extensions(Link *link) {
IPv6PrivacyExtensions val;
@ -723,6 +735,10 @@ int link_set_sysctl(Link *link) {
if (r < 0)
log_link_warning_errno(link, r, "Cannot set IPv4 reverse path filtering for interface, ignoring: %m");
r = link_set_ipv4_force_igmp_version(link);
if (r < 0)
log_link_warning_errno(link, r, "Cannot set IPv4 force igmp version, ignoring: %m");
r = link_set_ipv4_promote_secondaries(link);
if (r < 0)
log_link_warning_errno(link, r, "Cannot enable promote_secondaries for interface, ignoring: %m");
@ -770,3 +786,13 @@ int config_parse_ip_forward_deprecated(
"and the same settings in .network files for per-interface setting.");
return 0;
}
static const char* const ipv4_force_igmp_version_table[_IPV4_FORCE_IGMP_VERSION_MAX] = {
[IPV4_FORCE_IGMP_VERSION_NO] = "no",
[IPV4_FORCE_IGMP_VERSION_1] = "v1",
[IPV4_FORCE_IGMP_VERSION_2] = "v2",
[IPV4_FORCE_IGMP_VERSION_3] = "v3",
};
DEFINE_STRING_TABLE_LOOKUP(ipv4_force_igmp_version, IPv4ForceIgmpVersion);
DEFINE_CONFIG_PARSE_ENUM(config_parse_ipv4_force_igmp_version, ipv4_force_igmp_version, IPv4ForceIgmpVersion);

View File

@ -53,3 +53,18 @@ IPReversePathFilter ip_reverse_path_filter_from_string(const char *s) _pure_;
CONFIG_PARSER_PROTOTYPE(config_parse_ipv6_privacy_extensions);
CONFIG_PARSER_PROTOTYPE(config_parse_ip_reverse_path_filter);
CONFIG_PARSER_PROTOTYPE(config_parse_ip_forward_deprecated);
typedef enum IPv4ForceIgmpVersion {
/* These values map to the kernel's /proc/sys/net/ipv4/conf/INTERFACE/force_igmp_version values. Do not reorder! */
IPV4_FORCE_IGMP_VERSION_NO = 0,
IPV4_FORCE_IGMP_VERSION_1 = 1,
IPV4_FORCE_IGMP_VERSION_2 = 2,
IPV4_FORCE_IGMP_VERSION_3 = 3,
_IPV4_FORCE_IGMP_VERSION_MAX,
_IPV4_FORCE_IGMP_VERSION_INVALID = -EINVAL,
} IPv4ForceIgmpVersion;
const char* ipv4_force_igmp_version_to_string(IPv4ForceIgmpVersion i) _const_;
IPv4ForceIgmpVersion ipv4_force_igmp_version_from_string(const char *s) _pure_;
CONFIG_PARSER_PROTOTYPE(config_parse_ipv4_force_igmp_version);

View File

@ -79,6 +79,7 @@
#include "tpm2-util.h"
#include "user-util.h"
#include "utf8.h"
#include "varlink.h"
/* If not configured otherwise use a minimal partition size of 10M */
#define DEFAULT_MIN_SIZE (10ULL*1024ULL*1024ULL)
@ -8882,6 +8883,9 @@ done:
}
static int determine_auto_size(Context *c) {
// TODO: Add an argument to ignore any existing partitions, and ptables.
// To calculate how much bigger the disk would need to be to fit the image, or to determine how big
// the disk needs to be in the first place to fit the image
uint64_t sum;
assert(c);

View File

@ -10,7 +10,6 @@ executables += [
'sources' : files(
'pcrlock.c',
'pcrlock-firmware.c',
'pehash.c',
),
'dependencies' : [
libm,

View File

@ -40,7 +40,7 @@
#include "path-util.h"
#include "pcrextend-util.h"
#include "pcrlock-firmware.h"
#include "pehash.h"
#include "pe-binary.h"
#include "pretty-print.h"
#include "proc-cmdline.h"
#include "random-util.h"

View File

@ -1,264 +0,0 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <unistd.h>
#include "alloc-util.h"
#include "hexdecoct.h"
#include "pe-binary.h"
#include "pehash.h"
#include "sort-util.h"
#include "stat-util.h"
#include "string-table.h"
/* Implements:
*
* https://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/authenticode_pe.docx
* Section "Calculating the PE Image Hash"
*/
#define IMAGE_DATA_DIRECTORY_INDEX_CERTIFICATION_TABLE 4U
static int hash_file(int fd, EVP_MD_CTX *md_ctx, uint64_t offset, uint64_t size) {
uint8_t buffer[64*1024];
log_debug("Hashing %" PRIu64 " @ %" PRIu64 " → %" PRIu64, size, offset, offset + size);
while (size > 0) {
size_t m = MIN(size, sizeof(buffer));
ssize_t n;
n = pread(fd, buffer, m, offset);
if (n < 0)
return log_debug_errno(errno, "Failed to read file for hashing: %m");
if ((size_t) n != m)
return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG), "Short read while hashing.");
if (EVP_DigestUpdate(md_ctx, buffer, m) != 1)
return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Unable to hash data.");
offset += m;
size -= m;
}
return 0;
}
static int section_offset_cmp(const IMAGE_SECTION_HEADER *a, const IMAGE_SECTION_HEADER *b) {
return CMP(ASSERT_PTR(a)->PointerToRawData, ASSERT_PTR(b)->PointerToRawData);
}
int pe_hash(int fd,
const EVP_MD *md,
void **ret_hash,
size_t *ret_hash_size) {
_cleanup_(EVP_MD_CTX_freep) EVP_MD_CTX *mdctx = NULL;
_cleanup_free_ IMAGE_SECTION_HEADER *sections = NULL;
_cleanup_free_ IMAGE_DOS_HEADER *dos_header = NULL;
_cleanup_free_ PeHeader *pe_header = NULL;
const IMAGE_DATA_DIRECTORY *certificate_table;
struct stat st;
uint64_t p, q;
int r;
assert(fd >= 0);
assert(md);
assert(ret_hash_size);
assert(ret_hash);
if (fstat(fd, &st) < 0)
return log_debug_errno(errno, "Failed to stat file: %m");
r = stat_verify_regular(&st);
if (r < 0)
return log_debug_errno(r, "Not a regular file: %m");
r = pe_load_headers(fd, &dos_header, &pe_header);
if (r < 0)
return r;
r = pe_load_sections(fd, dos_header, pe_header, &sections);
if (r < 0)
return r;
certificate_table = pe_header_get_data_directory(pe_header, IMAGE_DATA_DIRECTORY_INDEX_CERTIFICATION_TABLE);
if (!certificate_table)
return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG), "File lacks certificate table.");
mdctx = EVP_MD_CTX_new();
if (!mdctx)
return log_oom_debug();
if (EVP_DigestInit_ex(mdctx, md, NULL) != 1)
return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Failed to allocate message digest.");
/* Everything from beginning of file to CheckSum field in PE header */
p = (uint64_t) dos_header->e_lfanew +
offsetof(PeHeader, optional.CheckSum);
r = hash_file(fd, mdctx, 0, p);
if (r < 0)
return r;
p += sizeof(le32_t);
/* Everything between the CheckSum field and the Image Data Directory Entry for the Certification Table */
q = (uint64_t) dos_header->e_lfanew +
PE_HEADER_OPTIONAL_FIELD_OFFSET(pe_header, DataDirectory[IMAGE_DATA_DIRECTORY_INDEX_CERTIFICATION_TABLE]);
r = hash_file(fd, mdctx, p, q - p);
if (r < 0)
return r;
q += sizeof(IMAGE_DATA_DIRECTORY);
/* The rest of the header + the section table */
p = pe_header->optional.SizeOfHeaders;
if (p < q)
return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG), "SizeOfHeaders too short.");
r = hash_file(fd, mdctx, q, p - q);
if (r < 0)
return r;
/* Sort by location in file */
typesafe_qsort(sections, pe_header->pe.NumberOfSections, section_offset_cmp);
FOREACH_ARRAY(section, sections, pe_header->pe.NumberOfSections) {
r = hash_file(fd, mdctx, section->PointerToRawData, section->SizeOfRawData);
if (r < 0)
return r;
p += section->SizeOfRawData;
}
if ((uint64_t) st.st_size > p) {
if (st.st_size - p < certificate_table->Size)
return log_debug_errno(errno, "No space for certificate table, refusing.");
r = hash_file(fd, mdctx, p, st.st_size - p - certificate_table->Size);
if (r < 0)
return r;
/* If the file size is not a multiple of 8 bytes, pad the hash with zero bytes. */
if (st.st_size % 8 != 0 && EVP_DigestUpdate(mdctx, (const uint8_t[8]) {}, 8 - (st.st_size % 8)) != 1)
return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Unable to hash data.");
}
int hsz = EVP_MD_CTX_size(mdctx);
if (hsz < 0)
return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Failed to get hash size.");
unsigned hash_size = (unsigned) hsz;
_cleanup_free_ void *hash = malloc(hsz);
if (!hash)
return log_oom_debug();
if (EVP_DigestFinal_ex(mdctx, hash, &hash_size) != 1)
return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Failed to finalize hash function.");
assert(hash_size == (unsigned) hsz);
*ret_hash = TAKE_PTR(hash);
*ret_hash_size = hash_size;
return 0;
}
typedef void* SectionHashArray[_UNIFIED_SECTION_MAX];
static void section_hash_array_done(SectionHashArray *array) {
assert(array);
for (size_t i = 0; i < _UNIFIED_SECTION_MAX; i++)
free((*array)[i]);
}
int uki_hash(int fd,
const EVP_MD *md,
void* ret_hashes[static _UNIFIED_SECTION_MAX],
size_t *ret_hash_size) {
_cleanup_(section_hash_array_done) SectionHashArray hashes = {};
_cleanup_free_ IMAGE_SECTION_HEADER *sections = NULL;
_cleanup_free_ IMAGE_DOS_HEADER *dos_header = NULL;
_cleanup_free_ PeHeader *pe_header = NULL;
int r;
assert(fd >= 0);
assert(ret_hashes);
assert(ret_hash_size);
r = pe_load_headers(fd, &dos_header, &pe_header);
if (r < 0)
return r;
r = pe_load_sections(fd, dos_header, pe_header, &sections);
if (r < 0)
return r;
int hsz = EVP_MD_size(md);
if (hsz < 0)
return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Failed to get hash size.");
FOREACH_ARRAY(section, sections, pe_header->pe.NumberOfSections) {
_cleanup_(EVP_MD_CTX_freep) EVP_MD_CTX *mdctx = NULL;
_cleanup_free_ char *n = NULL;
ssize_t i;
n = memdup_suffix0(section->Name, sizeof(section->Name));
if (!n)
return log_oom_debug();
i = string_table_lookup(unified_sections, _UNIFIED_SECTION_MAX, n);
if (i < 0)
continue;
if (hashes[i])
return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG), "Duplicate section");
mdctx = EVP_MD_CTX_new();
if (!mdctx)
return log_oom_debug();
if (EVP_DigestInit_ex(mdctx, md, NULL) != 1)
return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Failed to allocate message digest.");
r = hash_file(fd, mdctx, section->PointerToRawData, MIN(section->VirtualSize, section->SizeOfRawData));
if (r < 0)
return r;
if (section->SizeOfRawData < section->VirtualSize) {
uint8_t zeroes[1024] = {};
size_t remaining = section->VirtualSize - section->SizeOfRawData;
while (remaining > 0) {
size_t sz = MIN(sizeof(zeroes), remaining);
if (EVP_DigestUpdate(mdctx, zeroes, sz) != 1)
return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Unable to hash data.");
remaining -= sz;
}
}
hashes[i] = malloc(hsz);
if (!hashes[i])
return log_oom_debug();
unsigned hash_size = (unsigned) hsz;
if (EVP_DigestFinal_ex(mdctx, hashes[i], &hash_size) != 1)
return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Failed to finalize hash function.");
assert(hash_size == (unsigned) hsz);
if (DEBUG_LOGGING) {
_cleanup_free_ char *hs = NULL;
hs = hexmem(hashes[i], hsz);
log_debug("Section %s with %s is %s.", n, EVP_MD_name(md), strna(hs));
}
}
memcpy(ret_hashes, hashes, sizeof(hashes));
zero(hashes);
*ret_hash_size = (unsigned) hsz;
return 0;
}

View File

@ -1,11 +0,0 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/types.h>
#include "openssl-util.h"
#include "uki.h"
int pe_hash(int fd, const EVP_MD *md, void **ret_hash, size_t *ret_hash_size);
int uki_hash(int fd, const EVP_MD *md, void *ret_hashes[static _UNIFIED_SECTION_MAX], size_t *ret_hash_size);

View File

@ -92,11 +92,14 @@ bool cg_is_unified_wanted(void) {
if (r >= 0)
return (wanted = r >= CGROUP_UNIFIED_ALL);
/* If we were explicitly passed systemd.unified_cgroup_hierarchy, respect that. */
/* If we have explicit configuration for v1 or v2, respect that. */
if (cg_is_legacy_force_enabled())
return (wanted = false);
bool b;
r = proc_cmdline_get_bool("systemd.unified_cgroup_hierarchy", /* flags = */ 0, &b);
if (r > 0)
return (wanted = b);
if (r > 0 && b)
return (wanted = true);
/* If we passed cgroup_no_v1=all with no other instructions, it seems highly unlikely that we want to
* use hybrid or legacy hierarchy. */
@ -106,23 +109,21 @@ bool cg_is_unified_wanted(void) {
return (wanted = true);
/* If any controller is in use as v1, don't use unified. */
return (wanted = (cg_any_controller_used_for_v1() <= 0));
if (cg_any_controller_used_for_v1() > 0)
return (wanted = false);
return (wanted = true);
}
bool cg_is_legacy_wanted(void) {
static thread_local int wanted = -1;
/* If we have a cached value, return that. */
if (wanted >= 0)
return wanted;
/* Check if we have cgroup v2 already mounted. */
if (cg_unified_cached(true) == CGROUP_UNIFIED_ALL)
return (wanted = false);
return false;
/* Otherwise, assume that at least partial legacy is wanted,
* since cgroup v2 should already be mounted at this point. */
return (wanted = true);
return true;
}
bool cg_is_hybrid_wanted(void) {
@ -151,20 +152,28 @@ bool cg_is_hybrid_wanted(void) {
return (wanted = true);
}
bool cg_is_legacy_enabled(void) {
int r;
bool b;
r = proc_cmdline_get_bool("systemd.unified_cgroup_hierarchy", /* flags = */ 0, &b);
return r > 0 && !b;
}
bool cg_is_legacy_force_enabled(void) {
bool force;
int r;
bool b;
if (!cg_is_legacy_wanted())
/* Require both systemd.unified_cgroup_hierarchy=0 and SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1. */
if (!cg_is_legacy_enabled())
return false;
/* If in container, we have to follow host's cgroup hierarchy. */
if (detect_container() > 0)
return true;
if (proc_cmdline_get_bool("SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE", /* flags = */ 0, &force) < 0)
r = proc_cmdline_get_bool("SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE", /* flags = */ 0, &b);
if (r <= 0 || !b)
return false;
return force;
return true;
}
int cg_weight_parse(const char *s, uint64_t *ret) {

View File

@ -10,6 +10,7 @@
bool cg_is_unified_wanted(void);
bool cg_is_legacy_wanted(void);
bool cg_is_hybrid_wanted(void);
bool cg_is_legacy_enabled(void);
bool cg_is_legacy_force_enabled(void);
int cg_weight_parse(const char *s, uint64_t *ret);

View File

@ -3522,7 +3522,7 @@ int dissected_image_acquire_metadata(
r = detach_mount_namespace_userns(userns_fd);
if (r < 0) {
log_debug_errno(r, "Failed to detach mount namespace: %m");
goto inner_fail;
report_errno_and_exit(error_pipe[1], r);
}
r = dissected_image_mount(
@ -3537,7 +3537,7 @@ int dissected_image_acquire_metadata(
DISSECT_IMAGE_USR_NO_ROOT);
if (r < 0) {
log_debug_errno(r, "Failed to mount dissected image: %m");
goto inner_fail;
report_errno_and_exit(error_pipe[1], r);
}
for (unsigned k = 0; k < _META_MAX; k++) {
@ -3609,7 +3609,7 @@ int dissected_image_acquire_metadata(
r = loop_write(fds[2*k+1], &found, sizeof(found));
if (r < 0)
goto inner_fail;
report_errno_and_exit(error_pipe[1], r);
goto next;
}
@ -3629,18 +3629,13 @@ int dissected_image_acquire_metadata(
r = copy_bytes(fd, fds[2*k+1], UINT64_MAX, 0);
if (r < 0)
goto inner_fail;
report_errno_and_exit(error_pipe[1], r);
next:
fds[2*k+1] = safe_close(fds[2*k+1]);
}
_exit(EXIT_SUCCESS);
inner_fail:
/* Let parent know the error */
(void) write(error_pipe[1], &r, sizeof(r));
_exit(EXIT_FAILURE);
}
error_pipe[1] = safe_close(error_pipe[1]);

View File

@ -827,12 +827,12 @@ int parse_elf_object(int fd, const char *executable, const char *root, bool fork
if (fork_disable_dump) {
r = RET_NERRNO(prctl(PR_SET_DUMPABLE, 0));
if (r < 0)
goto child_fail;
report_errno_and_exit(error_pipe[1], r);
}
r = parse_elf(fd, executable, root, ret ? &buf : NULL, ret_package_metadata ? &package_metadata : NULL);
if (r < 0)
goto child_fail;
report_errno_and_exit(error_pipe[1], r);
if (buf) {
size_t len = strlen(buf);
@ -853,7 +853,7 @@ int parse_elf_object(int fd, const char *executable, const char *root, bool fork
if (r == -EAGAIN)
log_warning("Write failed, backtrace will be truncated.");
else if (r < 0)
goto child_fail;
report_errno_and_exit(error_pipe[1], r);
return_pipe[1] = safe_close(return_pipe[1]);
}
@ -866,10 +866,8 @@ int parse_elf_object(int fd, const char *executable, const char *root, bool fork
(void) fcntl(json_pipe[1], F_SETPIPE_SZ, COREDUMP_PIPE_MAX);
json_out = take_fdopen(&json_pipe[1], "w");
if (!json_out) {
r = -errno;
goto child_fail;
}
if (!json_out)
report_errno_and_exit(error_pipe[1], -errno);
r = sd_json_variant_dump(package_metadata, SD_JSON_FORMAT_FLUSH, json_out, NULL);
if (r < 0)
@ -877,10 +875,6 @@ int parse_elf_object(int fd, const char *executable, const char *root, bool fork
}
_exit(EXIT_SUCCESS);
child_fail:
(void) write(error_pipe[1], &r, sizeof(r));
_exit(EXIT_FAILURE);
}
error_pipe[1] = safe_close(error_pipe[1]);

View File

@ -194,6 +194,7 @@ shared_sources = files(
'varlink-io.systemd.Resolve.Monitor.c',
'varlink-io.systemd.UserDatabase.c',
'varlink-io.systemd.oom.c',
'varlink-io.systemd.Repart.c',
'varlink-io.systemd.service.c',
'varlink-io.systemd.sysext.c',
'varlink-serialize.c',

View File

@ -512,12 +512,28 @@ int mount_cgroup_legacy_controllers(bool loaded_policy) {
_cleanup_set_free_ Set *controllers = NULL;
int r;
/* Before we actually start deleting cgroup v1 code, make it harder to boot in cgroupv1 mode first.
* See also #30852. */
if (detect_container() <= 0) { /* If in container, we have to follow host's cgroup hierarchy. Only
* do the deprecation checks below if we're not in a container. */
if (cg_is_legacy_force_enabled())
log_warning("Legacy support for cgroup v1 enabled via SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1.");
else if (cg_is_legacy_enabled()) {
log_full(LOG_CRIT,
"Legacy cgroup v1 configured. This will stop being supported soon.\n"
"Will proceed with cgroup v2 after 30 s.\n"
"Set systemd.unified_cgroup_hierarchy=1 to switch to cgroup v2 "
"or set SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 to reenable v1 temporarily.");
(void) usleep_safe(30 * USEC_PER_SEC);
return 0;
}
}
if (!cg_is_legacy_wanted())
return 0;
if (!cg_is_legacy_force_enabled())
return -ERFKILL;
FOREACH_ELEMENT(mp, cgroupv1_mount_table) {
r = mount_one(mp, loaded_policy);
if (r < 0)

View File

@ -1011,26 +1011,18 @@ static int mount_in_namespace_legacy(
r = path_extract_filename(mount_outside, &mount_outside_fn);
if (r < 0) {
log_debug_errno(r, "Failed to extract filename from propagation file or directory '%s': %m", mount_outside);
goto child_fail;
report_errno_and_exit(errno_pipe_fd[1], r);
}
mount_inside = path_join(incoming_path, mount_outside_fn);
if (!mount_inside) {
r = log_oom_debug();
goto child_fail;
}
if (!mount_inside)
report_errno_and_exit(errno_pipe_fd[1], log_oom_debug());
r = mount_nofollow_verbose(LOG_DEBUG, mount_inside, dest, NULL, MS_MOVE, NULL);
if (r < 0)
goto child_fail;
report_errno_and_exit(errno_pipe_fd[1], r);
_exit(EXIT_SUCCESS);
child_fail:
(void) write(errno_pipe_fd[1], &r, sizeof(r));
errno_pipe_fd[1] = safe_close(errno_pipe_fd[1]);
_exit(EXIT_FAILURE);
}
errno_pipe_fd[1] = safe_close(errno_pipe_fd[1]);
@ -1224,14 +1216,8 @@ static int mount_in_namespace(
r = mount_exchange_graceful(new_mount_fd, dest, /* mount_beneath= */ true);
}
if (r < 0) {
(void) write(errno_pipe_fd[1], &r, sizeof(r));
errno_pipe_fd[1] = safe_close(errno_pipe_fd[1]);
_exit(EXIT_FAILURE);
}
_exit(EXIT_SUCCESS);
report_errno_and_exit(errno_pipe_fd[1], r);
}
errno_pipe_fd[1] = safe_close(errno_pipe_fd[1]);

View File

@ -24,6 +24,8 @@ DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(ENGINE*, ENGINE_free, NULL);
REENABLE_WARNING;
# endif
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(UI_METHOD*, UI_destroy_method, NULL);
/* For each error in the OpenSSL thread error queue, log the provided message and the OpenSSL error
* string. If there are no errors in the OpenSSL thread queue, this logs the message with "No OpenSSL
* errors." This logs at level debug. Returns -EIO (or -ENOMEM). */
@ -1315,12 +1317,10 @@ int pkey_generate_volume_keys(
static int load_key_from_provider(
const char *provider,
const char *private_key_uri,
OpenSSLAskPasswordUI *ui,
EVP_PKEY **ret) {
assert(provider);
assert(private_key_uri);
assert(ui);
assert(ret);
#if OPENSSL_VERSION_MAJOR >= 3
@ -1333,8 +1333,8 @@ static int load_key_from_provider(
_cleanup_(OSSL_STORE_closep) OSSL_STORE_CTX *store = OSSL_STORE_open(
private_key_uri,
ui->method,
&ui->request,
/*ui_method=*/ NULL,
/*ui_method=*/ NULL,
/* post_process= */ NULL,
/* post_process_data= */ NULL);
if (!store)
@ -1356,10 +1356,9 @@ static int load_key_from_provider(
#endif
}
static int load_key_from_engine(const char *engine, const char *private_key_uri, OpenSSLAskPasswordUI *ui, EVP_PKEY **ret) {
static int load_key_from_engine(const char *engine, const char *private_key_uri, EVP_PKEY **ret) {
assert(engine);
assert(private_key_uri);
assert(ui);
assert(ret);
#if !defined(OPENSSL_NO_ENGINE) && !defined(OPENSSL_NO_DEPRECATED_3_0)
@ -1371,13 +1370,7 @@ static int load_key_from_engine(const char *engine, const char *private_key_uri,
if (ENGINE_init(e) == 0)
return log_openssl_errors("Failed to initialize signing engine '%s'", engine);
if (ENGINE_ctrl(e, ENGINE_CTRL_SET_USER_INTERFACE, /*i=*/ 0, ui->method, /*f=*/ NULL) <= 0)
return log_openssl_errors("Failed to set engine user interface");
if (ENGINE_ctrl(e, ENGINE_CTRL_SET_CALLBACK_DATA, /*i=*/ 0, &ui->request, /*f=*/ NULL) <= 0)
return log_openssl_errors("Failed to set engine user interface data");
_cleanup_(EVP_PKEY_freep) EVP_PKEY *private_key = ENGINE_load_private_key(e, private_key_uri, ui->method, &ui->request);
_cleanup_(EVP_PKEY_freep) EVP_PKEY *private_key = ENGINE_load_private_key(e, private_key_uri, /*ui_method=*/ NULL, /*callback_data=*/ NULL);
if (!private_key)
return log_openssl_errors("Failed to load private key from '%s'", private_key_uri);
REENABLE_WARNING;
@ -1390,36 +1383,13 @@ static int load_key_from_engine(const char *engine, const char *private_key_uri,
#endif
}
int openssl_load_key_from_token(
KeySourceType private_key_source_type,
const char *private_key_source,
const char *private_key,
OpenSSLAskPasswordUI *ui,
EVP_PKEY **ret_private_key) {
assert(IN_SET(private_key_source_type, OPENSSL_KEY_SOURCE_ENGINE, OPENSSL_KEY_SOURCE_PROVIDER));
assert(private_key_source);
assert(ui);
assert(private_key);
switch (private_key_source_type) {
case OPENSSL_KEY_SOURCE_ENGINE:
return load_key_from_engine(private_key_source, private_key, ui, ret_private_key);
case OPENSSL_KEY_SOURCE_PROVIDER:
return load_key_from_provider(private_key_source, private_key, ui, ret_private_key);
default:
assert_not_reached();
}
}
static int openssl_ask_password_ui_read(UI *ui, UI_STRING *uis) {
int r;
switch(UI_get_string_type(uis)) {
case UIT_PROMPT: {
/* If no ask password request was configured use the default openssl UI. */
AskPasswordRequest *req = UI_get0_user_data(ui);
AskPasswordRequest *req = (AskPasswordRequest*) UI_method_get_ex_data(UI_get_method(ui), 0);
if (!req)
return (UI_method_get_reader(UI_OpenSSL()))(ui, uis);
@ -1448,10 +1418,41 @@ static int openssl_ask_password_ui_read(UI *ui, UI_STRING *uis) {
return (UI_method_get_reader(UI_OpenSSL()))(ui, uis);
}
}
#endif
int openssl_ask_password_ui_new(OpenSSLAskPasswordUI **ret) {
#if HAVE_OPENSSL
static int openssl_load_private_key_from_file(const char *path, EVP_PKEY **ret) {
_cleanup_(erase_and_freep) char *rawkey = NULL;
_cleanup_(BIO_freep) BIO *kb = NULL;
_cleanup_(EVP_PKEY_freep) EVP_PKEY *pk = NULL;
size_t rawkeysz;
int r;
assert(path);
assert(ret);
r = read_full_file_full(
AT_FDCWD, path, UINT64_MAX, SIZE_MAX,
READ_FULL_FILE_SECURE|READ_FULL_FILE_WARN_WORLD_READABLE|READ_FULL_FILE_CONNECT_SOCKET,
NULL,
&rawkey, &rawkeysz);
if (r < 0)
return log_debug_errno(r, "Failed to read key file '%s': %m", path);
kb = BIO_new_mem_buf(rawkey, rawkeysz);
if (!kb)
return log_oom_debug();
pk = PEM_read_bio_PrivateKey(kb, NULL, NULL, NULL);
if (!pk)
return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Failed to parse PEM private key: %s",
ERR_error_string(ERR_get_error(), NULL));
if (ret)
*ret = TAKE_PTR(pk);
return 0;
}
static int openssl_ask_password_ui_new(const AskPasswordRequest *request, OpenSSLAskPasswordUI **ret) {
assert(ret);
_cleanup_(UI_destroy_methodp) UI_METHOD *method = UI_create_method("systemd-ask-password");
@ -1467,12 +1468,31 @@ int openssl_ask_password_ui_new(OpenSSLAskPasswordUI **ret) {
*ui = (OpenSSLAskPasswordUI) {
.method = TAKE_PTR(method),
.request = *request,
};
UI_set_default_method(ui->method);
if (UI_method_set_ex_data(ui->method, 0, &ui->request) == 0)
return log_openssl_errors("Failed to set extra data for UI method");
*ret = TAKE_PTR(ui);
return 0;
}
#endif
OpenSSLAskPasswordUI* openssl_ask_password_ui_free(OpenSSLAskPasswordUI *ui) {
#if HAVE_OPENSSL
if (!ui)
return NULL;
assert(UI_get_default_method() == ui->method);
UI_set_default_method(UI_OpenSSL());
UI_destroy_method(ui->method);
return mfree(ui);
#else
return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "OpenSSL is not supported, cannot create ask-password user interface.");
assert(ui == NULL);
return NULL;
#endif
}
@ -1531,43 +1551,6 @@ int openssl_load_x509_certificate(const char *path, X509 **ret) {
#endif
}
static int openssl_load_private_key_from_file(const char *path, EVP_PKEY **ret) {
#if HAVE_OPENSSL
_cleanup_(erase_and_freep) char *rawkey = NULL;
_cleanup_(BIO_freep) BIO *kb = NULL;
_cleanup_(EVP_PKEY_freep) EVP_PKEY *pk = NULL;
size_t rawkeysz;
int r;
assert(path);
assert(ret);
r = read_full_file_full(
AT_FDCWD, path, UINT64_MAX, SIZE_MAX,
READ_FULL_FILE_SECURE|READ_FULL_FILE_WARN_WORLD_READABLE|READ_FULL_FILE_CONNECT_SOCKET,
NULL,
&rawkey, &rawkeysz);
if (r < 0)
return log_debug_errno(r, "Failed to read key file '%s': %m", path);
kb = BIO_new_mem_buf(rawkey, rawkeysz);
if (!kb)
return log_oom_debug();
pk = PEM_read_bio_PrivateKey(kb, NULL, NULL, NULL);
if (!pk)
return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Failed to parse PEM private key: %s",
ERR_error_string(ERR_get_error(), NULL));
if (ret)
*ret = TAKE_PTR(pk);
return 0;
#else
return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "OpenSSL is not supported, cannot load private key.");
#endif
}
int openssl_load_private_key(
KeySourceType private_key_source_type,
const char *private_key_source,
@ -1575,7 +1558,7 @@ int openssl_load_private_key(
const AskPasswordRequest *request,
EVP_PKEY **ret_private_key,
OpenSSLAskPasswordUI **ret_user_interface) {
#if HAVE_OPENSSL
int r;
assert(private_key);
@ -1589,18 +1572,21 @@ int openssl_load_private_key(
*ret_user_interface = NULL;
} else {
_cleanup_(openssl_ask_password_ui_freep) OpenSSLAskPasswordUI *ui = NULL;
r = openssl_ask_password_ui_new(&ui);
r = openssl_ask_password_ui_new(request, &ui);
if (r < 0)
return log_debug_errno(r, "Failed to allocate ask-password user interface: %m");
ui->request = *request;
switch (private_key_source_type) {
r = openssl_load_key_from_token(
private_key_source_type,
private_key_source,
private_key,
ui,
ret_private_key);
case OPENSSL_KEY_SOURCE_ENGINE:
r = load_key_from_engine(private_key_source, private_key, ret_private_key);
break;
case OPENSSL_KEY_SOURCE_PROVIDER:
r = load_key_from_provider(private_key_source, private_key, ret_private_key);
break;
default:
assert_not_reached();
}
if (r < 0)
return log_debug_errno(
r,
@ -1612,6 +1598,9 @@ int openssl_load_private_key(
}
return 0;
#else
return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "OpenSSL is not supported, cannot load private key.");
#endif
}
int parse_openssl_key_source_argument(

Some files were not shown because too many files have changed in this diff Show More