Compare commits

..

No commits in common. "0ce8a9d6e54f7ee04946b12fa22b0fb9fc2098f9" and "43e7dd70bc9f397427931bbc0996fc0cf4e9dc32" have entirely different histories.

50 changed files with 171 additions and 326 deletions

View File

@ -78,7 +78,7 @@ Documentation: man:core(5)
Subject: Новая сесія № @SESSION_ID@ створана для карыстальніка @USER_ID@ Subject: Новая сесія № @SESSION_ID@ створана для карыстальніка @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Новая сесія з № @SESSION_ID@ створана для карыстальніка @USER_ID@. Новая сесія з № @SESSION_ID@ створана для карыстальніка @USER_ID@.
@ -88,7 +88,7 @@ Documentation: sd-login(3)
Subject: Сесія № @SESSION_ID@ спынена Subject: Сесія № @SESSION_ID@ спынена
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Сесія № @SESSION_ID@ спынена. Сесія № @SESSION_ID@ спынена.
@ -96,7 +96,7 @@ Documentation: sd-login(3)
Subject: Даступна новае працоўнае месца № @SEAT_ID@ Subject: Даступна новае працоўнае месца № @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Новае працоўнае месца № @SEAT_ID@ наладжана і даступна для выкарыстання. Новае працоўнае месца № @SEAT_ID@ наладжана і даступна для выкарыстання.
@ -104,7 +104,7 @@ Documentation: sd-login(3)
Subject: Працоўнае месца № @SEAT_ID@ выдалена Subject: Працоўнае месца № @SEAT_ID@ выдалена
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Працоўнае месца № @SEAT_ID@ выдалена і больш не даступна. Працоўнае месца № @SEAT_ID@ выдалена і больш не даступна.

View File

@ -79,7 +79,7 @@ Rekamiendujecca paviedamić ab hetym raspracoŭnikam.
Subject: Novaja siesija № @SESSION_ID@ stvorana dlia karystaĺnika @USER_ID@ Subject: Novaja siesija № @SESSION_ID@ stvorana dlia karystaĺnika @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Novaja siesija z № @SESSION_ID@ stvorana dlia karystaĺnika @USER_ID@. Novaja siesija z № @SESSION_ID@ stvorana dlia karystaĺnika @USER_ID@.
@ -89,7 +89,7 @@ Lidar hetaj siesii pad № @LEADER@.
Subject: Siesija № @SESSION_ID@ spyniena Subject: Siesija № @SESSION_ID@ spyniena
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Siesija № @SESSION_ID@ spyniena. Siesija № @SESSION_ID@ spyniena.
@ -97,7 +97,7 @@ Siesija № @SESSION_ID@ spyniena.
Subject: Dastupna novaje pracoŭnaje miesca № @SEAT_ID@ Subject: Dastupna novaje pracoŭnaje miesca № @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Novaje pracoŭnaje miesca № @SEAT_ID@ naladžana i dastupna dlia Novaje pracoŭnaje miesca № @SEAT_ID@ naladžana i dastupna dlia
vykarystannia. vykarystannia.
@ -106,7 +106,7 @@ vykarystannia.
Subject: Pracoŭnaje miesca № @SEAT_ID@ vydaliena Subject: Pracoŭnaje miesca № @SEAT_ID@ vydaliena
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Pracoŭnaje miesca № @SEAT_ID@ vydaliena i boĺš nie dastupna. Pracoŭnaje miesca № @SEAT_ID@ vydaliena i boĺš nie dastupna.

View File

@ -81,7 +81,7 @@ Documentation: man:core(5)
Subject: Създадена е нова сесия № @SESSION_ID@ за потребителя „@USER_ID@“ Subject: Създадена е нова сесия № @SESSION_ID@ за потребителя „@USER_ID@“
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
За потребителя „@USER_ID@“ е създадена нова сесия № @SESSION_ID@. За потребителя „@USER_ID@“ е създадена нова сесия № @SESSION_ID@.
@ -91,7 +91,7 @@ Documentation: sd-login(3)
Subject: Сесия № @SESSION_ID@ приключи Subject: Сесия № @SESSION_ID@ приключи
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Сесия № @SESSION_ID@ приключи работа. Сесия № @SESSION_ID@ приключи работа.
@ -99,7 +99,7 @@ Documentation: sd-login(3)
Subject: Налично е ново работно място № @SEAT_ID@ Subject: Налично е ново работно място № @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Новото работно място № @SEAT_ID@ е настроено и готово за работа. Новото работно място № @SEAT_ID@ е настроено и готово за работа.
@ -107,7 +107,7 @@ Documentation: sd-login(3)
Subject: Работното място № @SEAT_ID@ е премахнато Subject: Работното място № @SEAT_ID@ е премахнато
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Работното място № @SEAT_ID@ вече не е налично. Работното място № @SEAT_ID@ вече не е налично.

View File

@ -89,7 +89,7 @@ about the file being truncated.
Subject: A new session @SESSION_ID@ has been created for user @USER_ID@ Subject: A new session @SESSION_ID@ has been created for user @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
A new session with the ID @SESSION_ID@ has been created for the user @USER_ID@. A new session with the ID @SESSION_ID@ has been created for the user @USER_ID@.
@ -99,7 +99,7 @@ The leading process of the session is @LEADER@.
Subject: Session @SESSION_ID@ has been terminated Subject: Session @SESSION_ID@ has been terminated
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
A session with the ID @SESSION_ID@ has been terminated. A session with the ID @SESSION_ID@ has been terminated.
@ -107,7 +107,7 @@ A session with the ID @SESSION_ID@ has been terminated.
Subject: A new seat @SEAT_ID@ is now available Subject: A new seat @SEAT_ID@ is now available
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
A new seat @SEAT_ID@ has been configured and is now available. A new seat @SEAT_ID@ has been configured and is now available.
@ -115,7 +115,7 @@ A new seat @SEAT_ID@ has been configured and is now available.
Subject: Seat @SEAT_ID@ has now been removed Subject: Seat @SEAT_ID@ has now been removed
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
A seat @SEAT_ID@ has been removed and is no longer available. A seat @SEAT_ID@ has been removed and is no longer available.

View File

@ -64,7 +64,7 @@ og burde blive reporteret som en bug til folkene bag
Subject: En ny session @SESSION_ID@ er blevet lavet for bruger @USER_ID@ Subject: En ny session @SESSION_ID@ er blevet lavet for bruger @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
En ny session med ID @SESSION_ID@ er blevet lavet for brugeren @USER_ID@. En ny session med ID @SESSION_ID@ er blevet lavet for brugeren @USER_ID@.
@ -74,7 +74,7 @@ Den ledende process for sessionen er @LEADER@.
Subject: Session @SESSION_ID@ er blevet lukket ned Subject: Session @SESSION_ID@ er blevet lukket ned
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
En session med ID @SESSION_ID@ er blevet lukket ned. En session med ID @SESSION_ID@ er blevet lukket ned.
@ -82,7 +82,7 @@ En session med ID @SESSION_ID@ er blevet lukket ned.
Subject: En ny arbejdsstation $SEAT_ID@ er nu tilgængelig Subject: En ny arbejdsstation $SEAT_ID@ er nu tilgængelig
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
En ny arbejdsstation @SEAT_ID@ er blevet konfigureret og er nu tilgængelig. En ny arbejdsstation @SEAT_ID@ er blevet konfigureret og er nu tilgængelig.
@ -90,7 +90,7 @@ En ny arbejdsstation @SEAT_ID@ er blevet konfigureret og er nu tilgængelig.
Subject: Arbejdsstation @SEAT_ID@ er nu blevet fjernet Subject: Arbejdsstation @SEAT_ID@ er nu blevet fjernet
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
En arbejdsstation @SEAT_ID@ er blevet fjernet og er ikke længere tilgængelig. En arbejdsstation @SEAT_ID@ er blevet fjernet og er ikke længere tilgængelig.

View File

@ -82,7 +82,7 @@ incriminé, et cela devrait être notifié à son concepteur comme un défaut (b
Subject: Une nouvelle session @SESSION_ID@ a été créée pour l'utilisateur @USER_ID@ Subject: Une nouvelle session @SESSION_ID@ a été créée pour l'utilisateur @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Une nouvelle session a été créée pour l'utilisateur @USER_ID@ avec Une nouvelle session a été créée pour l'utilisateur @USER_ID@ avec
l'identifiant (ID) @SESSION_ID@. l'identifiant (ID) @SESSION_ID@.
@ -93,7 +93,7 @@ Le processus maître de la session est @LEADER@.
Subject: La session @SESSION_ID@ s'est terminée Subject: La session @SESSION_ID@ s'est terminée
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
La session d'identifiant (ID) @SESSION_ID@ s'est terminée. La session d'identifiant (ID) @SESSION_ID@ s'est terminée.
@ -101,7 +101,7 @@ La session d'identifiant (ID) @SESSION_ID@ s'est terminée.
Subject: Un nouveau poste (seat) @SEAT_ID@ est disponible Subject: Un nouveau poste (seat) @SEAT_ID@ est disponible
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Un nouveau poste (seat) @SEAT_ID@ a été configuré et est maintenant Un nouveau poste (seat) @SEAT_ID@ a été configuré et est maintenant
disponible. disponible.
@ -110,7 +110,7 @@ disponible.
Subject: Le poste (seat) @SEAT_ID@ a été retiré Subject: Le poste (seat) @SEAT_ID@ a été retiré
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Le poste (seat) @SEAT_ID@ a été retiré et n'est plus disponible. Le poste (seat) @SEAT_ID@ a été retiré et n'est plus disponible.

View File

@ -78,7 +78,7 @@ trebalo bi se prijaviti razvijatelju kao greška.
Subject: Nova sesija @SESSION_ID@ je stvorena za korisnika @USER_ID@ Subject: Nova sesija @SESSION_ID@ je stvorena za korisnika @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Nova sesija sa ID @SESSION_ID@ je stvorena za korisnika @USER_ID@. Nova sesija sa ID @SESSION_ID@ je stvorena za korisnika @USER_ID@.
@ -88,7 +88,7 @@ Glavni proces sesije je @LEADER@.
Subject: Sesija @SESSION_ID@ je prekinuta Subject: Sesija @SESSION_ID@ je prekinuta
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Sesija sa ID @SESSION_ID@ je prekinuta. Sesija sa ID @SESSION_ID@ je prekinuta.
@ -96,7 +96,7 @@ Sesija sa ID @SESSION_ID@ je prekinuta.
Subject: Novo sjedište @SEAT_ID@ je sada dostupno Subject: Novo sjedište @SEAT_ID@ je sada dostupno
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Novo sjedište @SEAT_ID@ je podešeno i sada je dostupno. Novo sjedište @SEAT_ID@ je podešeno i sada je dostupno.
@ -104,7 +104,7 @@ Novo sjedište @SEAT_ID@ je podešeno i sada je dostupno.
Subject: Sjedište @SEAT_ID@ je sada uklonjeno Subject: Sjedište @SEAT_ID@ je sada uklonjeno
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Sjedište @SEAT_ID@ je uklonjeno i više nije dostupno. Sjedište @SEAT_ID@ je uklonjeno i više nije dostupno.

View File

@ -64,7 +64,7 @@ a szállítója felé kell bejelenteni.
Subject: Új munkamenet (@SESSION_ID@) létrehozva, felhasználója: @USER_ID@ Subject: Új munkamenet (@SESSION_ID@) létrehozva, felhasználója: @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Létrejött egy új munkamenet @SESSION_ID@ azonosítóval ezen felhasználóhoz: Létrejött egy új munkamenet @SESSION_ID@ azonosítóval ezen felhasználóhoz:
@USER_ID@. @USER_ID@.
@ -75,7 +75,7 @@ A munkamenet vezető folyamata: @LEADER@.
Subject: Munkamenet (@SESSION_ID@) befejezve Subject: Munkamenet (@SESSION_ID@) befejezve
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
A következő azonosítójú munkamenet befejeződött: @SESSION_ID@. A következő azonosítójú munkamenet befejeződött: @SESSION_ID@.
@ -83,7 +83,7 @@ A következő azonosítójú munkamenet befejeződött: @SESSION_ID@.
Subject: Elérhető egy új munkaállomás: @SEAT_ID@ Subject: Elérhető egy új munkaállomás: @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Beállításra kerül és használható egy új munkaállomás: @SEAT_ID@. Beállításra kerül és használható egy új munkaállomás: @SEAT_ID@.
@ -91,7 +91,7 @@ Beállításra kerül és használható egy új munkaállomás: @SEAT_ID@.
Subject: A munkaállomás eltávolítva: @SEAT_ID@ Subject: A munkaállomás eltávolítva: @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
A munkaállomás el lett távolítva, és már nem érhető el: @SEAT_ID@ A munkaállomás el lett távolítva, és már nem érhető el: @SEAT_ID@

View File

@ -97,7 +97,7 @@ segnalare la troncatura.
Subject: La nuova sessione @SESSION_ID@ è stata creata per l'utente @USER_ID@ Subject: La nuova sessione @SESSION_ID@ è stata creata per l'utente @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Una nuova sessione con ID @SESSION_ID@ è stata creata per l'utente @USER_ID@. Una nuova sessione con ID @SESSION_ID@ è stata creata per l'utente @USER_ID@.
@ -108,7 +108,7 @@ Il processo primario della sessione è @LEADER@.
Subject: La sessione @SESSION_ID@ è terminata Subject: La sessione @SESSION_ID@ è terminata
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
La sessione con ID @SESSION_ID@ è terminata. La sessione con ID @SESSION_ID@ è terminata.
@ -117,7 +117,7 @@ La sessione con ID @SESSION_ID@ è terminata.
Subject: La nuova postazione @SEAT_ID@ è ora disponibile Subject: La nuova postazione @SEAT_ID@ è ora disponibile
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
La nuova postazione @SEAT_ID@ è stata configurata ed è ora disponibile. La nuova postazione @SEAT_ID@ è stata configurata ed è ora disponibile.
@ -126,7 +126,7 @@ La nuova postazione @SEAT_ID@ è stata configurata ed è ora disponibile.
Subject: La postazione @SEAT_ID@ è stata rimossa Subject: La postazione @SEAT_ID@ è stata rimossa
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
La postazione @SEAT_ID@ è stata rimossa e non è più disponibile. La postazione @SEAT_ID@ è stata rimossa e non è più disponibile.

View File

@ -86,7 +86,7 @@ Documentation: man:core(5)
Subject: @USER_ID@ 사용자의 새 @SESSION_ID@ 세션 만듦 Subject: @USER_ID@ 사용자의 새 @SESSION_ID@ 세션 만듦
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
@USER_ID@ 사용자의 새 @SESSION_ID@ 세션을 만들었습니다. @USER_ID@ 사용자의 새 @SESSION_ID@ 세션을 만들었습니다.
@ -96,7 +96,7 @@ Documentation: sd-login(3)
Subject: @SESSION_ID@ 세션 마침 Subject: @SESSION_ID@ 세션 마침
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
@SESSION_ID@ 세션을 끝냈습니다. @SESSION_ID@ 세션을 끝냈습니다.
@ -104,7 +104,7 @@ Documentation: sd-login(3)
Subject: 새 @SEAT_ID@ 시트 사용할 수 있음 Subject: 새 @SEAT_ID@ 시트 사용할 수 있음
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
새 @SEAT_ID@ 시트를 설정했고 사용할 수 있습니다. 새 @SEAT_ID@ 시트를 설정했고 사용할 수 있습니다.
@ -112,7 +112,7 @@ Documentation: sd-login(3)
Subject: @SEAT_ID@ 시트 제거함 Subject: @SEAT_ID@ 시트 제거함
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
@SEAT_ID@ 시트를 제거했으며 더이상 사용할 수 없습니다. @SEAT_ID@ 시트를 제거했으며 더이상 사용할 수 없습니다.

View File

@ -92,7 +92,7 @@ gdb(1) będą ostrzegały o skróceniu pliku.
Subject: Utworzono nową sesję @SESSION_ID@ dla użytkownika @USER_ID@ Subject: Utworzono nową sesję @SESSION_ID@ dla użytkownika @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Nowa sesja o identyfikatorze @SESSION_ID@ została utworzona dla użytkownika Nowa sesja o identyfikatorze @SESSION_ID@ została utworzona dla użytkownika
@USER_ID@. @USER_ID@.
@ -103,7 +103,7 @@ Proces prowadzący sesji: @LEADER@.
Subject: Zakończono sesję @SESSION_ID@ Subject: Zakończono sesję @SESSION_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Sesja o identyfikatorze @SESSION_ID@ została zakończona. Sesja o identyfikatorze @SESSION_ID@ została zakończona.
@ -111,7 +111,7 @@ Sesja o identyfikatorze @SESSION_ID@ została zakończona.
Subject: Dostępne jest nowe stanowisko @SEAT_ID@ Subject: Dostępne jest nowe stanowisko @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne. Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne.
@ -119,7 +119,7 @@ Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne.
Subject: Usunięto stanowisko @SEAT_ID@ Subject: Usunięto stanowisko @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Stanowisko @SEAT_ID@ zostało usunięte i nie jest już dostępne. Stanowisko @SEAT_ID@ zostało usunięte i nie jest już dostępne.

View File

@ -65,7 +65,7 @@ deveria ser relatado para seu fabricante como um erro.
Subject: A nova sessão @SESSION_ID@ foi criada para usuário o @USER_ID@ Subject: A nova sessão @SESSION_ID@ foi criada para usuário o @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Uma nova sessão com o ID @SESSION_ID@ foi criada para o usuário @USER_ID@. Uma nova sessão com o ID @SESSION_ID@ foi criada para o usuário @USER_ID@.
@ -75,7 +75,7 @@ O processo originador da sessão é @LEADER@.
Subject: Sessão @SESSION_ID@ foi terminada Subject: Sessão @SESSION_ID@ foi terminada
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Um sessão com o ID @SESSION_ID@ foi terminada. Um sessão com o ID @SESSION_ID@ foi terminada.
@ -83,7 +83,7 @@ Um sessão com o ID @SESSION_ID@ foi terminada.
Subject: Um novo seat @SEAT_ID@ está disponível Subject: Um novo seat @SEAT_ID@ está disponível
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Um novo seat @SEAT_ID@ foi configurado e está disponível. Um novo seat @SEAT_ID@ foi configurado e está disponível.
@ -91,7 +91,7 @@ Um novo seat @SEAT_ID@ foi configurado e está disponível.
Subject: Seat @SEAT_ID@ foi removido agora Subject: Seat @SEAT_ID@ foi removido agora
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Um seat @SEAT_ID@ foi removido e não está mais disponível. Um seat @SEAT_ID@ foi removido e não está mais disponível.

View File

@ -105,7 +105,7 @@ Documentation: man:coredump.conf(5)
Subject: Для пользователя @USER_ID@ создан новый сеанс @SESSION_ID@ Subject: Для пользователя @USER_ID@ создан новый сеанс @SESSION_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Для пользователя @USER_ID@ создан новый сеанс с идентификатором @SESSION_ID@. Для пользователя @USER_ID@ создан новый сеанс с идентификатором @SESSION_ID@.
@ -116,7 +116,7 @@ Documentation: sd-login(3)
Subject: Сеанс @SESSION_ID@ завершен Subject: Сеанс @SESSION_ID@ завершен
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Сеанс с идентификатором @SESSION_ID@ завершился. Сеанс с идентификатором @SESSION_ID@ завершился.
@ -125,7 +125,7 @@ Documentation: sd-login(3)
Subject: Добавлено новое рабочее место @SEAT_ID@ Subject: Добавлено новое рабочее место @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Новое рабочее место (seat) @SEAT_ID@ полностью настроено и готово к Новое рабочее место (seat) @SEAT_ID@ полностью настроено и готово к
использованию. использованию.
@ -135,7 +135,7 @@ Documentation: sd-login(3)
Subject: Рабочее место @SEAT_ID@ отключено Subject: Рабочее место @SEAT_ID@ отключено
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Рабочее место (seat) @SEAT_ID@ было отключено. Рабочее место (seat) @SEAT_ID@ было отключено.

View File

@ -63,7 +63,7 @@ Documentation: man:core(5)
Subject: Нова сесија @SESSION_ID@ је направљена за корисника @USER_ID@ Subject: Нова сесија @SESSION_ID@ је направљена за корисника @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Нова сесија са ИБ-ом @SESSION_ID@ је направљена за корисника @USER_ID@. Нова сесија са ИБ-ом @SESSION_ID@ је направљена за корисника @USER_ID@.
@ -73,7 +73,7 @@ Documentation: sd-login(3)
Subject: Сесија @SESSION_ID@ је окончана Subject: Сесија @SESSION_ID@ је окончана
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Сесија са ИБ-ом @SESSION_ID@ је окончана. Сесија са ИБ-ом @SESSION_ID@ је окончана.
@ -81,7 +81,7 @@ Documentation: sd-login(3)
Subject: Ново седиште @SEAT_ID@ је сада доступно Subject: Ново седиште @SEAT_ID@ је сада доступно
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Ново седиште @SEAT_ID@ је исподешавано и сада је доступно. Ново седиште @SEAT_ID@ је исподешавано и сада је доступно.
@ -89,7 +89,7 @@ Documentation: sd-login(3)
Subject: Седиште @SEAT_ID@ је сада уклоњено Subject: Седиште @SEAT_ID@ је сада уклоњено
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Седиште @SEAT_ID@ је сада уклоњено и више није доступно. Седиште @SEAT_ID@ је сада уклоњено и више није доступно.

View File

@ -62,7 +62,7 @@ Documentation: man:core(5)
Subject: 一个新会话 @SESSION_ID@ 已为用户 @USER_ID@ 建立 Subject: 一个新会话 @SESSION_ID@ 已为用户 @USER_ID@ 建立
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
一个 ID 为 @SESSION_ID@ 的新会话已为用户 @USER_ID@ 建立。 一个 ID 为 @SESSION_ID@ 的新会话已为用户 @USER_ID@ 建立。
@ -72,7 +72,7 @@ Documentation: sd-login(3)
Subject: 会话 @SESSION_ID@ 已终止 Subject: 会话 @SESSION_ID@ 已终止
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
一个 ID 为 @SESSION_ID@ 的会话已终止。 一个 ID 为 @SESSION_ID@ 的会话已终止。
@ -80,7 +80,7 @@ Documentation: sd-login(3)
Subject: 一个新的座位 @SEAT_ID@ 可用 Subject: 一个新的座位 @SEAT_ID@ 可用
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
一个新的座位 @SEAT_ID@ 已被配置并已可用。 一个新的座位 @SEAT_ID@ 已被配置并已可用。
@ -88,7 +88,7 @@ Documentation: sd-login(3)
Subject: 座位 @SEAT_ID@ 已被移除 Subject: 座位 @SEAT_ID@ 已被移除
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
座位 @SEAT_ID@ 已被移除并不再可用。 座位 @SEAT_ID@ 已被移除并不再可用。

View File

@ -65,7 +65,7 @@ Documentation: man:core(5)
Subject: 新的工作階段 @SESSION_ID@ 已為使用者 @USER_ID@ 建立 Subject: 新的工作階段 @SESSION_ID@ 已為使用者 @USER_ID@ 建立
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
一個新的工作階段ID @SESSION_ID@ 已為使用者 @USER_ID@ 建立。 一個新的工作階段ID @SESSION_ID@ 已為使用者 @USER_ID@ 建立。
@ -75,7 +75,7 @@ Documentation: sd-login(3)
Subject: 工作階段 @SESSION_ID@ 已結束 Subject: 工作階段 @SESSION_ID@ 已結束
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
一個工作階段ID @SESSION_ID@ 已結束。 一個工作階段ID @SESSION_ID@ 已結束。
@ -83,7 +83,7 @@ Documentation: sd-login(3)
Subject: 新的座位 @SEAT_ID@ 可用 Subject: 新的座位 @SEAT_ID@ 可用
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
一個新的座位 @SEAT_ID@ 已被設定且現在可用。 一個新的座位 @SEAT_ID@ 已被設定且現在可用。
@ -91,7 +91,7 @@ Documentation: sd-login(3)
Subject: 座位 @SEAT_ID@ 已被移除 Subject: 座位 @SEAT_ID@ 已被移除
Defined-By: systemd Defined-By: systemd
Support: %SUPPORT_URL% Support: %SUPPORT_URL%
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
座位 @SEAT_ID@ 已被移除且不再可用。 座位 @SEAT_ID@ 已被移除且不再可用。

View File

@ -102,7 +102,7 @@ And now, here's the list of (hopefully) all APIs that we have introduced with sy
| [Journal Export Format](https://www.freedesktop.org/wiki/Software/systemd/export) | File format | yes | yes | - | yes | - | no | | [Journal Export Format](https://www.freedesktop.org/wiki/Software/systemd/export) | File format | yes | yes | - | yes | - | no |
| [Cooperation in cgroup tree](https://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups) | Treaty | yes | yes | libvirt | yes | libvirt | no | | [Cooperation in cgroup tree](https://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups) | Treaty | yes | yes | libvirt | yes | libvirt | no |
| [Password Agents](https://systemd.io/PASSWORD_AGENTS/) | Socket+Files | yes | yes | - | yes | - | no | | [Password Agents](https://systemd.io/PASSWORD_AGENTS/) | Socket+Files | yes | yes | - | yes | - | no |
| [udev multi-seat properties](https://www.freedesktop.org/software/systemd/man/sd-login.html) | udev Property | yes | yes | X11, gdm | no | - | no | | [udev multi-seat properties](https://www.freedesktop.org/wiki/Software/systemd/multiseat) | udev Property | yes | yes | X11, gdm | no | - | no |
| udev session switch ACL properties | udev Property | no | no | - | no | - | no | | udev session switch ACL properties | udev Property | no | no | - | no | - | no |
| [CLI of systemctl,...](https://www.freedesktop.org/software/systemd/man/systemctl.html) | CLI | yes | yes | numerous | no | - | no | | [CLI of systemctl,...](https://www.freedesktop.org/software/systemd/man/systemctl.html) | CLI | yes | yes | numerous | no | - | no |
| [tmpfiles.d](https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html) | File format | yes | yes | numerous | yes | ArchLinux | partially | | [tmpfiles.d](https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html) | File format | yes | yes | numerous | yes | ArchLinux | partially |

View File

@ -82,11 +82,10 @@
<para>For operating system images which are created once and used on multiple <para>For operating system images which are created once and used on multiple
machines, for example for containers or in the cloud, machines, for example for containers or in the cloud,
<filename>/etc/machine-id</filename> should be either missing or an empty file in the generic file <filename>/etc/machine-id</filename> should be an empty file in the generic file
system image (the difference between the two options is described under "First Boot Semantics" below). An system image. An ID will be generated during boot and saved to this file if
ID will be generated during boot and saved to this file if possible. Having an empty file in place is possible. Having an empty file in place is useful because it allows a temporary file
useful because it allows a temporary file to be bind-mounted over the real file, in case the image is to be bind-mounted over the real file, in case the image is used read-only.</para>
used read-only.</para>
<para><citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry> <para><citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
may be used to initialize <filename>/etc/machine-id</filename> on mounted (but not may be used to initialize <filename>/etc/machine-id</filename> on mounted (but not
@ -116,34 +115,6 @@
early boot but become writable later on.</para> early boot but become writable later on.</para>
</refsect1> </refsect1>
<refsect1>
<title>First Boot Semantics</title>
<para><filename>/etc/machine-id</filename> is used to decide whether a boot is the first one. The rules
are as follows:</para>
<orderedlist>
<listitem><para>If <filename>/etc/machine-id</filename> does not exist, this is a first boot. During
early boot, <command>systemd</command> will write <literal>unitialized\n</literal> to this file and overmount
a temporary file which contains the actual machine ID. Later (after <filename>first-boot-complete.target</filename>
has been reached), the real machine ID will be written to disk.</para></listitem>
<listitem><para>If <filename>/etc/machine-id</filename> contains the string <literal>uninitialized</literal>,
a boot is also considered the first boot. The same mechanism as above applies.</para></listitem>
<listitem><para>If <filename>/etc/machine-id</filename> exists and is empty, a boot is
<emphasis>not</emphasis> considered the first boot. <command>systemd</command> will still bind-mount a file
containing the actual machine-id over it and later try to commit it to disk (if <filename>/etc/</filename> is
writable).</para></listitem>
<listitem><para>If <filename>/etc/machine-id</filename> already contains a valid machine-id, this is
not a first boot.</para></listitem>
</orderedlist>
<para>If by any of the above rules, a first boot is detected, units with <varname>ConditionFirstBoot=yes</varname>
will be run.</para>
</refsect1>
<refsect1> <refsect1>
<title>Relation to OSF UUIDs</title> <title>Relation to OSF UUIDs</title>

View File

@ -509,7 +509,8 @@ node /org/freedesktop/login1 {
and a boolean for controlling polkit interactivity (see below). Device assignments are persistently and a boolean for controlling polkit interactivity (see below). Device assignments are persistently
stored on disk. To create a new seat, simply specify a previously unused seat id. For more information stored on disk. To create a new seat, simply specify a previously unused seat id. For more information
about the seat assignment logic see about the seat assignment logic see
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para> <ulink url="https://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat for Linux</ulink>.
</para>
<para><function>FlushDevices()</function> removes all explicit seat assignments for devices, resetting <para><function>FlushDevices()</function> removes all explicit seat assignments for devices, resetting
all assignments to the automatic defaults. The only argument it takes is the polkit interactivity all assignments to the automatic defaults. The only argument it takes is the polkit interactivity

View File

@ -241,7 +241,8 @@
<para> <para>
<ulink url="https://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat on Linux</ulink> <ulink url="https://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat on Linux</ulink>
may also be of historical interest. for an introduction to multi-seat support on Linux and the background for this set of APIs.
</para> </para>
</refsect1> </refsect1>
</refentry> </refentry>

View File

@ -192,9 +192,6 @@
<para>SR-IOV virtual devices are named based on the name of the parent interface, with a suffix of <para>SR-IOV virtual devices are named based on the name of the parent interface, with a suffix of
<constant>v</constant> and the virtual device number, with any leading zeros removed. The bus <constant>v</constant> and the virtual device number, with any leading zeros removed. The bus
number is ignored.</para> number is ignored.</para>
<para>In some configurations a parent PCI bridge of a given network controller may be associated
with a slot. In such case we don't generate this device property to avoid possible naming conflicts.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -357,17 +354,6 @@
multiple similarly named containers (who only differ in container name suffix) should be less multiple similarly named containers (who only differ in container name suffix) should be less
likely (but still possible, since the 24bit hash value is very small).</para></listitem> likely (but still possible, since the 24bit hash value is very small).</para></listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><constant>v246</constant></term>
<listitem><para>If the PCI slot is assocated with PCI bridge and that has multiple child network
controllers then all of them might derive the same value of <varname>ID_NET_NAME_SLOT</varname>
property. That could cause naming conflict if the property is selected as a device name. Now, we detect the
situation, slot - bridge relation, and we don't produce the <varname>ID_NET_NAME_SLOT</varname> property to
avoid possible naming conflict.</para></listitem>
</varlistentry>
</variablelist> </variablelist>
<para>Note that <constant>latest</constant> may be used to denote the latest scheme known (to this <para>Note that <constant>latest</constant> may be used to denote the latest scheme known (to this

View File

@ -32,7 +32,6 @@
<filename>emergency.target</filename>, <filename>emergency.target</filename>,
<filename>exit.target</filename>, <filename>exit.target</filename>,
<filename>final.target</filename>, <filename>final.target</filename>,
<filename>first-boot-complete.target</filename>,
<filename>getty.target</filename>, <filename>getty.target</filename>,
<filename>getty-pre.target</filename>, <filename>getty-pre.target</filename>,
<filename>graphical.target</filename>, <filename>graphical.target</filename>,
@ -879,17 +878,6 @@
stopped.</para> stopped.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><filename>first-boot-complete.target</filename></term>
<listitem>
<para>This passive target is intended as a synchronization point for units that need to run once
during the first boot. Only after all units ordered before this target have finished, will the
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
be committed to disk, marking the first boot as completed. If the boot is aborted at any time
before that, the next boot will re-run any units with <varname>ConditionFirstBoot=yes</varname>.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><filename>getty-pre.target</filename></term> <term><filename>getty-pre.target</filename></term>
<listitem> <listitem>

View File

@ -1315,16 +1315,10 @@
<term><varname>ConditionFirstBoot=</varname></term> <term><varname>ConditionFirstBoot=</varname></term>
<listitem><para>Takes a boolean argument. This condition may be used to conditionalize units on <listitem><para>Takes a boolean argument. This condition may be used to conditionalize units on
whether the system is booting up for the first time. This roughly means that <filename>/etc/</filename> whether the system is booting up with an unpopulated <filename>/etc/</filename> directory
is unpopulated (for details, see "First Boot Semantics" in (specifically: an <filename>/etc/</filename> with no <filename>/etc/machine-id</filename>). This may
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>). be used to populate <filename>/etc/</filename> on the first boot after factory reset, or when a new
This may be used to populate <filename>/etc/</filename> on the first boot after factory reset, or system instance boots up for the first time.</para>
when a new system instance boots up for the first time.</para>
<para>For robustness, units with <varname>ConditionFirstBoot=yes</varname> should order themselves
before <filename>first-boot-complete.target</filename> and pull in this passive target with
<varname>Wants=</varname>. This ensures that in a case of an aborted first boot, these units will
be re-run during the next system startup.</para>
<para>If the <varname>systemd.condition-first-boot=</varname> option is specified on the kernel <para>If the <varname>systemd.condition-first-boot=</varname> option is specified on the kernel
command line (taking a boolean), it will override the result of this condition check, taking command line (taking a boolean), it will override the result of this condition check, taking

View File

@ -86,7 +86,7 @@ msgstr "Der kræves godkendelse for at fjerne en brugers hjemmeområde."
msgid "Check credentials of a home area" msgid "Check credentials of a home area"
msgstr "Tjek loginoplysninger for et hjemmeområde" msgstr "Tjek loginoplysninger for et hjemmeområde"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/home/org.freedesktop.home1.policy:34 #: src/home/org.freedesktop.home1.policy:34
msgid "" msgid ""
"Authentication is required to check credentials against a user's home area." "Authentication is required to check credentials against a user's home area."
@ -98,7 +98,7 @@ msgstr ""
msgid "Update a home area" msgid "Update a home area"
msgstr "Opdater et hjemmeområde" msgstr "Opdater et hjemmeområde"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/home/org.freedesktop.home1.policy:44 #: src/home/org.freedesktop.home1.policy:44
msgid "Authentication is required to update a user's home area." msgid "Authentication is required to update a user's home area."
msgstr "Der kræves godkendelse for at opdatere en brugers hjemmeområde." msgstr "Der kræves godkendelse for at opdatere en brugers hjemmeområde."
@ -116,7 +116,7 @@ msgstr ""
msgid "Change password of a home area" msgid "Change password of a home area"
msgstr "Skift adgangskode for et hjemmeområde" msgstr "Skift adgangskode for et hjemmeområde"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/home/org.freedesktop.home1.policy:64 #: src/home/org.freedesktop.home1.policy:64
msgid "" msgid ""
"Authentication is required to change the password of a user's home area." "Authentication is required to change the password of a user's home area."
@ -315,22 +315,22 @@ msgstr ""
"Der kræves godkendelse for at brugere, som ikke er logget ind, kan køre " "Der kræves godkendelse for at brugere, som ikke er logget ind, kan køre "
"programmer." "programmer."
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:137 #: src/login/org.freedesktop.login1.policy:137
msgid "Allow attaching devices to seats" msgid "Allow attaching devices to seats"
msgstr "Tillad at montere af enheder til arbejdsstationer" msgstr "Tillad at montere af enheder til arbejdsstationer"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:138 #: src/login/org.freedesktop.login1.policy:138
msgid "Authentication is required to attach a device to a seat." msgid "Authentication is required to attach a device to a seat."
msgstr "Der kræves godkendelse for at montere en enhed til en arbejdsstation." msgstr "Der kræves godkendelse for at montere en enhed til en arbejdsstation."
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:148 #: src/login/org.freedesktop.login1.policy:148
msgid "Flush device to seat attachments" msgid "Flush device to seat attachments"
msgstr "Nulstil enhed monteret til en arbejdsstation" msgstr "Nulstil enhed monteret til en arbejdsstation"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:149 #: src/login/org.freedesktop.login1.policy:149
msgid "Authentication is required to reset how devices are attached to seats." msgid "Authentication is required to reset how devices are attached to seats."
msgstr "" msgstr ""
@ -502,7 +502,7 @@ msgstr ""
msgid "Manage active sessions, users and seats" msgid "Manage active sessions, users and seats"
msgstr "Håndter aktive sessioner, brugere og arbejdsstationer" msgstr "Håndter aktive sessioner, brugere og arbejdsstationer"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:322 #: src/login/org.freedesktop.login1.policy:322
msgid "Authentication is required to manage active sessions, users and seats." msgid "Authentication is required to manage active sessions, users and seats."
msgstr "" msgstr ""
@ -802,7 +802,7 @@ msgstr ""
msgid "Attach or detach a portable service image" msgid "Attach or detach a portable service image"
msgstr "Tilslut eller frakobl et transportabel tjeneste-aftryk" msgstr "Tilslut eller frakobl et transportabel tjeneste-aftryk"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/portable/org.freedesktop.portable1.policy:24 #: src/portable/org.freedesktop.portable1.policy:24
msgid "" msgid ""
"Authentication is required to attach or detach a portable service image." "Authentication is required to attach or detach a portable service image."

View File

@ -94,7 +94,7 @@ msgstr "Legitimierung ist zum erneuten Laden des systemd-Zustands notwendig."
msgid "Check credentials of a home area" msgid "Check credentials of a home area"
msgstr "" msgstr ""
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/home/org.freedesktop.home1.policy:34 #: src/home/org.freedesktop.home1.policy:34
#, fuzzy #, fuzzy
#| msgid "" #| msgid ""
@ -109,7 +109,7 @@ msgstr ""
msgid "Update a home area" msgid "Update a home area"
msgstr "" msgstr ""
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/home/org.freedesktop.home1.policy:44 #: src/home/org.freedesktop.home1.policy:44
#, fuzzy #, fuzzy
#| msgid "Authentication is required to attach a device to a seat." #| msgid "Authentication is required to attach a device to a seat."
@ -132,7 +132,7 @@ msgstr "Legitimierung ist zum Einstellen einer Nachricht an alle notwendig"
msgid "Change password of a home area" msgid "Change password of a home area"
msgstr "" msgstr ""
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/home/org.freedesktop.home1.policy:64 #: src/home/org.freedesktop.home1.policy:64
#, fuzzy #, fuzzy
#| msgid "" #| msgid ""
@ -364,24 +364,24 @@ msgstr ""
"Legitimierung ist erforderlich, damit nicht angemeldete Benutzer Programme " "Legitimierung ist erforderlich, damit nicht angemeldete Benutzer Programme "
"ausführen dürfen." "ausführen dürfen."
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:137 #: src/login/org.freedesktop.login1.policy:137
msgid "Allow attaching devices to seats" msgid "Allow attaching devices to seats"
msgstr "Das Anschließen von Geräten an Arbeitsstationen erlauben" msgstr "Das Anschließen von Geräten an Arbeitsstationen erlauben"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:138 #: src/login/org.freedesktop.login1.policy:138
msgid "Authentication is required to attach a device to a seat." msgid "Authentication is required to attach a device to a seat."
msgstr "" msgstr ""
"Legitimierung ist zum Anschließen eines Geräts an eine Arbeitsstation " "Legitimierung ist zum Anschließen eines Geräts an eine Arbeitsstation "
"notwendig." "notwendig."
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:148 #: src/login/org.freedesktop.login1.policy:148
msgid "Flush device to seat attachments" msgid "Flush device to seat attachments"
msgstr "Zurücksetzen der an eine Arbeitsstation angeschlossenen Geräte" msgstr "Zurücksetzen der an eine Arbeitsstation angeschlossenen Geräte"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:149 #: src/login/org.freedesktop.login1.policy:149
msgid "Authentication is required to reset how devices are attached to seats." msgid "Authentication is required to reset how devices are attached to seats."
msgstr "" msgstr ""
@ -584,7 +584,7 @@ msgstr ""
msgid "Manage active sessions, users and seats" msgid "Manage active sessions, users and seats"
msgstr "Aktive Sitzungen, Benutzer und Arbeitsstationen verwalten" msgstr "Aktive Sitzungen, Benutzer und Arbeitsstationen verwalten"
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/login/org.freedesktop.login1.policy:322 #: src/login/org.freedesktop.login1.policy:322
msgid "Authentication is required to manage active sessions, users and seats." msgid "Authentication is required to manage active sessions, users and seats."
msgstr "" msgstr ""
@ -941,7 +941,7 @@ msgstr ""
msgid "Attach or detach a portable service image" msgid "Attach or detach a portable service image"
msgstr "" msgstr ""
# https://www.freedesktop.org/software/systemd/man/sd-login.html # www.freedesktop.org/wiki/Software/systemd/multiseat/
#: src/portable/org.freedesktop.portable1.policy:24 #: src/portable/org.freedesktop.portable1.policy:24
#, fuzzy #, fuzzy
#| msgid "Authentication is required to attach a device to a seat." #| msgid "Authentication is required to attach a device to a seat."

View File

@ -37,7 +37,6 @@ disable systemd-networkd-wait-online.service
disable systemd-time-wait-sync.service disable systemd-time-wait-sync.service
disable systemd-boot-check-no-failures.service disable systemd-boot-check-no-failures.service
disable systemd-network-generator.service disable systemd-network-generator.service
disable proc-sys-fs-binfmt_misc.mount
disable syslog.socket disable syslog.socket

View File

@ -11,7 +11,6 @@
#include "fd-util.h" #include "fd-util.h"
#include "fs-util.h" #include "fs-util.h"
#include "id128-util.h" #include "id128-util.h"
#include "io-util.h"
#include "log.h" #include "log.h"
#include "machine-id-setup.h" #include "machine-id-setup.h"
#include "macro.h" #include "macro.h"
@ -87,7 +86,7 @@ static int generate_machine_id(const char *root, sd_id128_t *ret) {
return 0; return 0;
} }
int machine_id_setup(const char *root, bool force_transient, sd_id128_t machine_id, sd_id128_t *ret) { int machine_id_setup(const char *root, sd_id128_t machine_id, sd_id128_t *ret) {
const char *etc_machine_id, *run_machine_id; const char *etc_machine_id, *run_machine_id;
_cleanup_close_ int fd = -1; _cleanup_close_ int fd = -1;
bool writable; bool writable;
@ -144,31 +143,13 @@ int machine_id_setup(const char *root, bool force_transient, sd_id128_t machine_
if (ftruncate(fd, 0) < 0) if (ftruncate(fd, 0) < 0)
return log_error_errno(errno, "Failed to truncate %s: %m", etc_machine_id); return log_error_errno(errno, "Failed to truncate %s: %m", etc_machine_id);
/* If the caller requested a transient machine-id, write the string "uninitialized\n" to if (id128_write_fd(fd, ID128_PLAIN, machine_id, true) >= 0)
* disk and overmount it with a transient file. goto finish;
*
* Otherwise write the machine-id directly to disk. */
if (force_transient) {
r = loop_write(fd, "uninitialized\n", strlen("uninitialized\n"), false);
if (r < 0)
return log_error_errno(r, "Failed to write uninitialized %s: %m", etc_machine_id);
r = fsync_full(fd);
if (r < 0)
return log_error_errno(r, "Failed to sync %s: %m", etc_machine_id);
} else {
r = id128_write_fd(fd, ID128_PLAIN, machine_id, true);
if (r < 0)
return log_error_errno(r, "Failed to write %s: %m", etc_machine_id);
else
goto finish;
}
} }
fd = safe_close(fd); fd = safe_close(fd);
/* Hmm, we couldn't or shouldn't write the machine-id to /etc? /* Hmm, we couldn't write it? So let's write it to /run/machine-id as a replacement */
* So let's write it to /run/machine-id as a replacement */
run_machine_id = prefix_roota(root, "/run/machine-id"); run_machine_id = prefix_roota(root, "/run/machine-id");
@ -186,7 +167,7 @@ int machine_id_setup(const char *root, bool force_transient, sd_id128_t machine_
return r; return r;
} }
log_full(force_transient ? LOG_DEBUG : LOG_INFO, "Installed transient %s file.", etc_machine_id); log_info("Installed transient %s file.", etc_machine_id);
/* Mark the mount read-only */ /* Mark the mount read-only */
r = mount_follow_verbose(LOG_WARNING, NULL, etc_machine_id, NULL, MS_BIND|MS_RDONLY|MS_REMOUNT, NULL); r = mount_follow_verbose(LOG_WARNING, NULL, etc_machine_id, NULL, MS_BIND|MS_RDONLY|MS_REMOUNT, NULL);
@ -202,22 +183,10 @@ finish:
int machine_id_commit(const char *root) { int machine_id_commit(const char *root) {
_cleanup_close_ int fd = -1, initial_mntns_fd = -1; _cleanup_close_ int fd = -1, initial_mntns_fd = -1;
const char *etc_machine_id, *sync_path; const char *etc_machine_id;
sd_id128_t id; sd_id128_t id;
int r; int r;
/* Before doing anything, sync everything to ensure any changes by first-boot units are persisted.
*
* First, explicitly sync the file systems we care about and check if it worked. */
FOREACH_STRING(sync_path, "/etc/", "/var/") {
r = syncfs_path(AT_FDCWD, sync_path);
if (r < 0)
return log_error_errno(r, "Cannot sync %s: %m", sync_path);
}
/* Afterwards, sync() the rest too, but we can't check the return value for these. */
sync();
/* Replaces a tmpfs bind mount of /etc/machine-id by a proper file, atomically. For this, the umount is removed /* Replaces a tmpfs bind mount of /etc/machine-id by a proper file, atomically. For this, the umount is removed
* in a mount namespace, a new file is created at the right place. Afterwards the mount is also removed in the * in a mount namespace, a new file is created at the right place. Afterwards the mount is also removed in the
* original mount namespace, thus revealing the file that was just created. */ * original mount namespace, thus revealing the file that was just created. */

View File

@ -1,7 +1,5 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once #pragma once
#include <stdbool.h>
int machine_id_commit(const char *root); int machine_id_commit(const char *root);
int machine_id_setup(const char *root, bool force_transient, sd_id128_t requested, sd_id128_t *ret); int machine_id_setup(const char *root, sd_id128_t requested, sd_id128_t *ret);

View File

@ -2001,26 +2001,15 @@ static void log_execution_mode(bool *ret_first_boot) {
*ret_first_boot = false; *ret_first_boot = false;
log_info("Running in initial RAM disk."); log_info("Running in initial RAM disk.");
} else { } else {
int r; /* Let's check whether we are in first boot, i.e. whether /etc is still unpopulated. We use
_cleanup_free_ char *id_text = NULL; * /etc/machine-id as flag file, for this: if it exists we assume /etc is populated, if it
* doesn't it's unpopulated. This allows container managers and installers to provision a
* couple of files already. If the container manager wants to provision the machine ID itself
* it should pass $container_uuid to PID 1. */
/* Let's check whether we are in first boot. We use /etc/machine-id as flag file *ret_first_boot = access("/etc/machine-id", F_OK) < 0;
* for this: If it is missing or contains the value "uninitialized", this is the if (*ret_first_boot)
* first boot. In any other case, it is not. This allows container managers and log_info("Running with unpopulated /etc.");
* installers to provision a couple of files already. If the container manager
* wants to provision the machine ID itself it should pass $container_uuid to PID 1. */
r = read_one_line_file("/etc/machine-id", &id_text);
if (r < 0 || streq(id_text, "uninitialized")) {
if (r < 0 && r != -ENOENT)
log_warning_errno(r, "Unexpected error while reading /etc/machine-id, ignoring: %m");
*ret_first_boot = true;
log_info("Detected first boot.");
} else {
*ret_first_boot = false;
log_debug("Detected initialized system, this is not the first boot.");
}
} }
} else { } else {
if (DEBUG_LOGGING) { if (DEBUG_LOGGING) {
@ -2037,7 +2026,6 @@ static void log_execution_mode(bool *ret_first_boot) {
static int initialize_runtime( static int initialize_runtime(
bool skip_setup, bool skip_setup,
bool first_boot,
struct rlimit *saved_rlimit_nofile, struct rlimit *saved_rlimit_nofile,
struct rlimit *saved_rlimit_memlock, struct rlimit *saved_rlimit_memlock,
const char **ret_error_message) { const char **ret_error_message) {
@ -2071,8 +2059,7 @@ static int initialize_runtime(
status_welcome(); status_welcome();
hostname_setup(); hostname_setup();
/* Force transient machine-id on first boot. */ machine_id_setup(NULL, arg_machine_id, NULL);
machine_id_setup(NULL, first_boot, arg_machine_id, NULL);
(void) loopback_setup(); (void) loopback_setup();
bump_unix_max_dgram_qlen(); bump_unix_max_dgram_qlen();
bump_file_max_and_nr_open(); bump_file_max_and_nr_open();
@ -2800,7 +2787,6 @@ int main(int argc, char *argv[]) {
log_execution_mode(&first_boot); log_execution_mode(&first_boot);
r = initialize_runtime(skip_setup, r = initialize_runtime(skip_setup,
first_boot,
&saved_rlimit_nofile, &saved_rlimit_nofile,
&saved_rlimit_memlock, &saved_rlimit_memlock,
&error_message); &error_message);

View File

@ -3798,6 +3798,7 @@ _public_ int sd_event_loop(sd_event *e) {
} }
_public_ int sd_event_get_fd(sd_event *e) { _public_ int sd_event_get_fd(sd_event *e) {
assert_return(e, -EINVAL); assert_return(e, -EINVAL);
assert_return(e = event_resolve(e), -ENOPKG); assert_return(e = event_resolve(e), -ENOPKG);
assert_return(!event_pid_changed(e), -ECHILD); assert_return(!event_pid_changed(e), -ECHILD);

View File

@ -10,7 +10,6 @@
#include "id128-util.h" #include "id128-util.h"
#include "io-util.h" #include "io-util.h"
#include "stdio-util.h" #include "stdio-util.h"
#include "string-util.h"
char *id128_to_uuid_string(sd_id128_t id, char s[static ID128_UUID_STRING_MAX]) { char *id128_to_uuid_string(sd_id128_t id, char s[static ID128_UUID_STRING_MAX]) {
unsigned n, k = 0; unsigned n, k = 0;
@ -98,11 +97,6 @@ int id128_read_fd(int fd, Id128Format f, sd_id128_t *ret) {
switch (l) { switch (l) {
case 13:
case 14:
/* Treat an "uninitialized" id file like an empty one */
return f == ID128_PLAIN_OR_UNINIT && strneq(buffer, "uninitialized\n", l) ? -ENOMEDIUM : -EINVAL;
case 33: /* plain UUID with trailing newline */ case 33: /* plain UUID with trailing newline */
if (buffer[32] != '\n') if (buffer[32] != '\n')
return -EINVAL; return -EINVAL;
@ -121,7 +115,7 @@ int id128_read_fd(int fd, Id128Format f, sd_id128_t *ret) {
_fallthrough_; _fallthrough_;
case 36: /* RFC UUID without trailing newline */ case 36: /* RFC UUID without trailing newline */
if (IN_SET(f, ID128_PLAIN, ID128_PLAIN_OR_UNINIT)) if (f == ID128_PLAIN)
return -EINVAL; return -EINVAL;
buffer[36] = 0; buffer[36] = 0;

View File

@ -17,10 +17,6 @@ bool id128_is_valid(const char *s) _pure_;
typedef enum Id128Format { typedef enum Id128Format {
ID128_ANY, ID128_ANY,
ID128_PLAIN, /* formatted as 32 hex chars as-is */ ID128_PLAIN, /* formatted as 32 hex chars as-is */
ID128_PLAIN_OR_UNINIT, /* formatted as 32 hex chars as-is; allow special "uninitialized"
* value when reading from file (id128_read() and id128_read_fd()).
*
* This format should be used when reading a machine-id file. */
ID128_UUID, /* formatted as 36 character uuid string */ ID128_UUID, /* formatted as 36 character uuid string */
_ID128_FORMAT_MAX, _ID128_FORMAT_MAX,
} Id128Format; } Id128Format;

View File

@ -1089,8 +1089,8 @@ int session_create_fifo(Session *s) {
if (r < 0) if (r < 0)
return r; return r;
/* Let's make sure we noticed dead sessions before we process new bus requests (which might /* Let's make sure we noticed dead sessions before we process new bus requests (which might create new
* create new sessions). */ * sessions). */
r = sd_event_source_set_priority(s->fifo_event_source, SD_EVENT_PRIORITY_NORMAL-10); r = sd_event_source_set_priority(s->fifo_event_source, SD_EVENT_PRIORITY_NORMAL-10);
if (r < 0) if (r < 0)
return r; return r;
@ -1331,8 +1331,9 @@ static void session_release_controller(Session *s, bool notify) {
name = s->controller; name = s->controller;
/* By resetting the controller before releasing the devices, we won't send notification signals. /* By resetting the controller before releasing the devices, we won't
* This avoids sending useless notifications if the controller is released on disconnects. */ * send notification signals. This avoids sending useless notifications
* if the controller is released on disconnects. */
if (!notify) if (!notify)
s->controller = NULL; s->controller = NULL;
@ -1418,43 +1419,43 @@ void session_drop_controller(Session *s) {
static const char* const session_state_table[_SESSION_STATE_MAX] = { static const char* const session_state_table[_SESSION_STATE_MAX] = {
[SESSION_OPENING] = "opening", [SESSION_OPENING] = "opening",
[SESSION_ONLINE] = "online", [SESSION_ONLINE] = "online",
[SESSION_ACTIVE] = "active", [SESSION_ACTIVE] = "active",
[SESSION_CLOSING] = "closing", [SESSION_CLOSING] = "closing"
}; };
DEFINE_STRING_TABLE_LOOKUP(session_state, SessionState); DEFINE_STRING_TABLE_LOOKUP(session_state, SessionState);
static const char* const session_type_table[_SESSION_TYPE_MAX] = { static const char* const session_type_table[_SESSION_TYPE_MAX] = {
[SESSION_UNSPECIFIED] = "unspecified", [SESSION_UNSPECIFIED] = "unspecified",
[SESSION_TTY] = "tty", [SESSION_TTY] = "tty",
[SESSION_X11] = "x11", [SESSION_X11] = "x11",
[SESSION_WAYLAND] = "wayland", [SESSION_WAYLAND] = "wayland",
[SESSION_MIR] = "mir", [SESSION_MIR] = "mir",
[SESSION_WEB] = "web", [SESSION_WEB] = "web",
}; };
DEFINE_STRING_TABLE_LOOKUP(session_type, SessionType); DEFINE_STRING_TABLE_LOOKUP(session_type, SessionType);
static const char* const session_class_table[_SESSION_CLASS_MAX] = { static const char* const session_class_table[_SESSION_CLASS_MAX] = {
[SESSION_USER] = "user", [SESSION_USER] = "user",
[SESSION_GREETER] = "greeter", [SESSION_GREETER] = "greeter",
[SESSION_LOCK_SCREEN] = "lock-screen", [SESSION_LOCK_SCREEN] = "lock-screen",
[SESSION_BACKGROUND] = "background", [SESSION_BACKGROUND] = "background"
}; };
DEFINE_STRING_TABLE_LOOKUP(session_class, SessionClass); DEFINE_STRING_TABLE_LOOKUP(session_class, SessionClass);
static const char* const kill_who_table[_KILL_WHO_MAX] = { static const char* const kill_who_table[_KILL_WHO_MAX] = {
[KILL_LEADER] = "leader", [KILL_LEADER] = "leader",
[KILL_ALL] = "all", [KILL_ALL] = "all"
}; };
DEFINE_STRING_TABLE_LOOKUP(kill_who, KillWho); DEFINE_STRING_TABLE_LOOKUP(kill_who, KillWho);
static const char* const tty_validity_table[_TTY_VALIDITY_MAX] = { static const char* const tty_validity_table[_TTY_VALIDITY_MAX] = {
[TTY_FROM_PAM] = "from-pam", [TTY_FROM_PAM] = "from-pam",
[TTY_FROM_UTMP] = "from-utmp", [TTY_FROM_UTMP] = "from-utmp",
[TTY_UTMP_INCONSISTENT] = "utmp-inconsistent", [TTY_UTMP_INCONSISTENT] = "utmp-inconsistent",
}; };

View File

@ -14,7 +14,6 @@
#include "bus-log-control-api.h" #include "bus-log-control-api.h"
#include "bus-polkit.h" #include "bus-polkit.h"
#include "cgroup-util.h" #include "cgroup-util.h"
#include "daemon-util.h"
#include "def.h" #include "def.h"
#include "device-util.h" #include "device-util.h"
#include "dirent-util.h" #include "dirent-util.h"
@ -922,13 +921,14 @@ static void manager_gc(Manager *m, bool drop_not_started) {
LIST_REMOVE(gc_queue, m->session_gc_queue, session); LIST_REMOVE(gc_queue, m->session_gc_queue, session);
session->in_gc_queue = false; session->in_gc_queue = false;
/* First, if we are not closing yet, initiate stopping. */ /* First, if we are not closing yet, initiate stopping */
if (session_may_gc(session, drop_not_started) && if (session_may_gc(session, drop_not_started) &&
session_get_state(session) != SESSION_CLOSING) session_get_state(session) != SESSION_CLOSING)
(void) session_stop(session, /* force = */ false); (void) session_stop(session, /* force = */ false);
/* Normally, this should make the session referenced again, if it doesn't then let's get rid /* Normally, this should make the session referenced
* of it immediately. */ * again, if it doesn't then let's get rid of it
* immediately */
if (session_may_gc(session, drop_not_started)) { if (session_may_gc(session, drop_not_started)) {
(void) session_finalize(session); (void) session_finalize(session);
session_free(session); session_free(session);
@ -1156,7 +1156,6 @@ static int manager_run(Manager *m) {
static int run(int argc, char *argv[]) { static int run(int argc, char *argv[]) {
_cleanup_(manager_unrefp) Manager *m = NULL; _cleanup_(manager_unrefp) Manager *m = NULL;
_cleanup_(notify_on_cleanup) const char *notify_message = NULL;
int r; int r;
log_set_facility(LOG_AUTH); log_set_facility(LOG_AUTH);
@ -1176,9 +1175,9 @@ static int run(int argc, char *argv[]) {
if (r < 0) if (r < 0)
return r; return r;
/* Always create the directories people can create inotify watches in. Note that some applications /* Always create the directories people can create inotify watches in. Note that some applications might check
* might check for the existence of /run/systemd/seats/ to determine whether logind is available, so * for the existence of /run/systemd/seats/ to determine whether logind is available, so please always make
* please always make sure these directories are created early on and unconditionally. */ * sure these directories are created early on and unconditionally. */
(void) mkdir_label("/run/systemd/seats", 0755); (void) mkdir_label("/run/systemd/seats", 0755);
(void) mkdir_label("/run/systemd/users", 0755); (void) mkdir_label("/run/systemd/users", 0755);
(void) mkdir_label("/run/systemd/sessions", 0755); (void) mkdir_label("/run/systemd/sessions", 0755);
@ -1195,8 +1194,19 @@ static int run(int argc, char *argv[]) {
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to fully start up daemon: %m"); return log_error_errno(r, "Failed to fully start up daemon: %m");
notify_message = notify_start(NOTIFY_READY, NOTIFY_STOPPING); log_debug("systemd-logind running as pid "PID_FMT, getpid_cached());
return manager_run(m); (void) sd_notify(false,
"READY=1\n"
"STATUS=Processing requests...");
r = manager_run(m);
log_debug("systemd-logind stopped as pid "PID_FMT, getpid_cached());
(void) sd_notify(false,
"STOPPING=1\n"
"STATUS=Shutting down...");
return r;
} }
DEFINE_MAIN_FUNCTION(run); DEFINE_MAIN_FUNCTION(run);

View File

@ -128,7 +128,7 @@ static int run(int argc, char *argv[]) {
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to read machine ID back: %m"); return log_error_errno(r, "Failed to read machine ID back: %m");
} else { } else {
r = machine_id_setup(arg_root, false, SD_ID128_NULL, &id); r = machine_id_setup(arg_root, SD_ID128_NULL, &id);
if (r < 0) if (r < 0)
return r; return r;
} }

View File

@ -2726,7 +2726,7 @@ static int setup_machine_id(const char *directory) {
etc_machine_id = prefix_roota(directory, "/etc/machine-id"); etc_machine_id = prefix_roota(directory, "/etc/machine-id");
r = id128_read(etc_machine_id, ID128_PLAIN_OR_UNINIT, &id); r = id128_read(etc_machine_id, ID128_PLAIN, &id);
if (r < 0) { if (r < 0) {
if (!IN_SET(r, -ENOENT, -ENOMEDIUM)) /* If the file is missing or empty, we don't mind */ if (!IN_SET(r, -ENOENT, -ENOMEDIUM)) /* If the file is missing or empty, we don't mind */
return log_error_errno(r, "Failed to read machine ID from container image: %m"); return log_error_errno(r, "Failed to read machine ID from container image: %m");

View File

@ -3245,7 +3245,7 @@ static int context_read_seed(Context *context, const char *root) {
else if (fd < 0) else if (fd < 0)
return log_error_errno(fd, "Failed to determine machine ID of image: %m"); return log_error_errno(fd, "Failed to determine machine ID of image: %m");
else { else {
r = id128_read_fd(fd, ID128_PLAIN_OR_UNINIT, &context->seed); r = id128_read_fd(fd, ID128_PLAIN, &context->seed);
if (r == -ENOMEDIUM) if (r == -ENOMEDIUM)
log_info("No machine ID set, using randomized partition UUIDs."); log_info("No machine ID set, using randomized partition UUIDs.");
else if (r < 0) else if (r < 0)

View File

@ -17,6 +17,6 @@ static inline const char *notify_start(const char *start, const char *stop) {
/* This is intended to be used with _cleanup_ attribute. */ /* This is intended to be used with _cleanup_ attribute. */
static inline void notify_on_cleanup(const char **p) { static inline void notify_on_cleanup(const char **p) {
if (*p) if (p)
(void) sd_notify(false, *p); (void) sd_notify(false, *p);
} }

View File

@ -2148,8 +2148,6 @@ int dissected_image_acquire_metadata(DissectedImage *m) {
log_debug_errno(r, "Image contains invalid /etc/machine-id: %s", line); log_debug_errno(r, "Image contains invalid /etc/machine-id: %s", line);
} else if (r == 0) } else if (r == 0)
log_debug("/etc/machine-id file is empty."); log_debug("/etc/machine-id file is empty.");
else if (streq(line, "uninitialized"))
log_debug("/etc/machine-id file is uninitialized (likely aborted first boot).");
else else
log_debug("/etc/machine-id has unexpected length %i.", r); log_debug("/etc/machine-id has unexpected length %i.", r);

View File

@ -12,7 +12,6 @@ static const NamingScheme naming_schemes[] = {
{ "v241", NAMING_V241 }, { "v241", NAMING_V241 },
{ "v243", NAMING_V243 }, { "v243", NAMING_V243 },
{ "v245", NAMING_V245 }, { "v245", NAMING_V245 },
{ "v246", NAMING_V246 },
/* … add more schemes here, as the logic to name devices is updated … */ /* … add more schemes here, as the logic to name devices is updated … */
}; };

View File

@ -31,7 +31,6 @@ typedef enum NamingSchemeFlags {
NAMING_NETDEVSIM = 1 << 6, /* Generate names for netdevsim devices, see eaa9d507d855 */ NAMING_NETDEVSIM = 1 << 6, /* Generate names for netdevsim devices, see eaa9d507d855 */
NAMING_LABEL_NOPREFIX = 1 << 7, /* Don't prepend ID_NET_LABEL_ONBOARD with interface type prefix */ NAMING_LABEL_NOPREFIX = 1 << 7, /* Don't prepend ID_NET_LABEL_ONBOARD with interface type prefix */
NAMING_NSPAWN_LONG_HASH = 1 << 8, /* Shorten nspawn interfaces by including 24bit hash, instead of simple truncation */ NAMING_NSPAWN_LONG_HASH = 1 << 8, /* Shorten nspawn interfaces by including 24bit hash, instead of simple truncation */
NAMING_BRIDGE_NO_SLOT = 1 << 9, /* Don't use PCI hotplug slot information if the corresponding device is a PCI bridge */
/* And now the masks that combine the features above */ /* And now the masks that combine the features above */
NAMING_V238 = 0, NAMING_V238 = 0,
@ -40,7 +39,6 @@ typedef enum NamingSchemeFlags {
NAMING_V241 = NAMING_V240 | NAMING_STABLE_VIRTUAL_MACS, NAMING_V241 = NAMING_V240 | NAMING_STABLE_VIRTUAL_MACS,
NAMING_V243 = NAMING_V241 | NAMING_NETDEVSIM | NAMING_LABEL_NOPREFIX, NAMING_V243 = NAMING_V241 | NAMING_NETDEVSIM | NAMING_LABEL_NOPREFIX,
NAMING_V245 = NAMING_V243 | NAMING_NSPAWN_LONG_HASH, NAMING_V245 = NAMING_V243 | NAMING_NSPAWN_LONG_HASH,
NAMING_V246 = NAMING_V245 | NAMING_BRIDGE_NO_SLOT,
_NAMING_SCHEME_FLAGS_INVALID = -1, _NAMING_SCHEME_FLAGS_INVALID = -1,
} NamingSchemeFlags; } NamingSchemeFlags;

View File

@ -243,29 +243,9 @@ static bool is_pci_ari_enabled(sd_device *dev) {
return streq(a, "1"); return streq(a, "1");
} }
static bool is_pci_bridge(sd_device *dev) {
const char *v, *p;
if (sd_device_get_sysattr_value(dev, "modalias", &v) < 0)
return false;
if (!startswith(v, "pci:"))
return false;
p = strrchr(v, 's');
if (!p)
return false;
if (p[1] != 'c')
return false;
/* PCI device subclass 04 corresponds to PCI bridge */
return strneq(p + 2, "04", 2);
}
static int dev_pci_slot(sd_device *dev, struct netnames *names) { static int dev_pci_slot(sd_device *dev, struct netnames *names) {
unsigned long dev_port = 0; unsigned long dev_port = 0;
unsigned domain, bus, slot, func; unsigned domain, bus, slot, func, hotplug_slot = 0;
int hotplug_slot = -1;
size_t l; size_t l;
char *s; char *s;
const char *sysname, *attr, *port_name = NULL, *syspath; const char *sysname, *attr, *port_name = NULL, *syspath;
@ -346,14 +326,14 @@ static int dev_pci_slot(sd_device *dev, struct netnames *names) {
continue; continue;
FOREACH_DIRENT_ALL(dent, dir, break) { FOREACH_DIRENT_ALL(dent, dir, break) {
int i; unsigned i;
char str[PATH_MAX]; char str[PATH_MAX];
_cleanup_free_ char *address = NULL; _cleanup_free_ char *address = NULL;
if (dot_or_dot_dot(dent->d_name)) if (dot_or_dot_dot(dent->d_name))
continue; continue;
r = safe_atoi(dent->d_name, &i); r = safe_atou_full(dent->d_name, 10, &i);
if (r < 0 || i <= 0) if (r < 0 || i <= 0)
continue; continue;
@ -362,18 +342,10 @@ static int dev_pci_slot(sd_device *dev, struct netnames *names) {
read_one_line_file(str, &address) >= 0 && read_one_line_file(str, &address) >= 0 &&
startswith(sysname, address)) { startswith(sysname, address)) {
hotplug_slot = i; hotplug_slot = i;
/* We found the match between PCI device and slot. However, we won't use the
* slot index if the device is a PCI bridge, because it can have other child
* devices that will try to claim the same index and that would create name
* collision. */
if (naming_scheme_has(NAMING_BRIDGE_NO_SLOT) && is_pci_bridge(hotplug_slot_dev))
hotplug_slot = 0;
break; break;
} }
} }
if (hotplug_slot >= 0) if (hotplug_slot > 0)
break; break;
if (sd_device_get_parent_with_subsystem_devtype(hotplug_slot_dev, "pci", NULL, &hotplug_slot_dev) < 0) if (sd_device_get_parent_with_subsystem_devtype(hotplug_slot_dev, "pci", NULL, &hotplug_slot_dev) < 0)
break; break;

View File

@ -31,8 +31,8 @@ static int apply_timestamp(const char *path, struct timespec *ts) {
r = write_string_file_atomic_label_ts(path, message, ts); r = write_string_file_atomic_label_ts(path, message, ts);
if (r == -EROFS) if (r == -EROFS)
log_debug_errno(r, "Cannot create \"%s\", file system is read-only.", path); return log_debug_errno(r, "Cannot create \"%s\", file system is read-only.", path);
else if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to write \"%s\": %m", path); return log_error_errno(r, "Failed to write \"%s\": %m", path);
return 0; return 0;
} }

View File

@ -92,7 +92,7 @@ gdb(1) będą ostrzegały o skróceniu pliku.
Subject: Utworzono nową sesję @SESSION_ID@ dla użytkownika @USER_ID@ Subject: Utworzono nową sesję @SESSION_ID@ dla użytkownika @USER_ID@
Defined-By: systemd Defined-By: systemd
Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Nowa sesja o identyfikatorze @SESSION_ID@ została utworzona dla użytkownika Nowa sesja o identyfikatorze @SESSION_ID@ została utworzona dla użytkownika
@USER_ID@. @USER_ID@.
@ -103,7 +103,7 @@ Proces prowadzący sesji: @LEADER@.
Subject: Zakończono sesję @SESSION_ID@ Subject: Zakończono sesję @SESSION_ID@
Defined-By: systemd Defined-By: systemd
Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Sesja o identyfikatorze @SESSION_ID@ została zakończona. Sesja o identyfikatorze @SESSION_ID@ została zakończona.
@ -111,7 +111,7 @@ Sesja o identyfikatorze @SESSION_ID@ została zakończona.
Subject: Dostępne jest nowe stanowisko @SEAT_ID@ Subject: Dostępne jest nowe stanowisko @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne. Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne.
@ -119,7 +119,7 @@ Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne.
Subject: Usunięto stanowisko @SEAT_ID@ Subject: Usunięto stanowisko @SEAT_ID@
Defined-By: systemd Defined-By: systemd
Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Documentation: sd-login(3) Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Stanowisko @SEAT_ID@ zostało usunięte i nie jest już dostępne. Stanowisko @SEAT_ID@ zostało usunięte i nie jest już dostępne.

View File

@ -1,14 +0,0 @@
# SPDX-License-Identifier: LGPL-2.1+
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=First Boot Complete
Documentation=man:systemd.special(7)
RefuseManualStart=yes
ConditionFirstBoot=yes

View File

@ -17,7 +17,6 @@ units = [
['emergency.target', ''], ['emergency.target', ''],
['exit.target', ''], ['exit.target', ''],
['final.target', ''], ['final.target', ''],
['first-boot-complete.target', ''],
['getty.target', '', ['getty.target', '',
'multi-user.target.wants/'], 'multi-user.target.wants/'],
['getty-pre.target', ''], ['getty-pre.target', ''],

View File

@ -13,8 +13,7 @@ Documentation=man:systemd-firstboot(1)
DefaultDependencies=no DefaultDependencies=no
Conflicts=shutdown.target Conflicts=shutdown.target
After=systemd-remount-fs.service After=systemd-remount-fs.service
Before=systemd-sysusers.service sysinit.target first-boot-complete.target shutdown.target Before=systemd-sysusers.service sysinit.target shutdown.target
Wants=first-boot-complete.target
ConditionPathIsReadWrite=/etc ConditionPathIsReadWrite=/etc
ConditionFirstBoot=yes ConditionFirstBoot=yes

View File

@ -9,10 +9,10 @@
[Unit] [Unit]
Description=User Login Management Description=User Login Management
Documentation=man:sd-login(3)
Documentation=man:systemd-logind.service(8) Documentation=man:systemd-logind.service(8)
Documentation=man:logind.conf(5) Documentation=man:logind.conf(5)
Documentation=man:org.freedesktop.login1(5) Documentation=man:org.freedesktop.login1(5)
Documentation=https://www.freedesktop.org/wiki/Software/systemd/multiseat
Wants=user.slice modprobe@drm.service Wants=user.slice modprobe@drm.service
After=nss-user-lookup.target user.slice modprobe@drm.service After=nss-user-lookup.target user.slice modprobe@drm.service

View File

@ -12,8 +12,8 @@ Description=Commit a transient machine-id on disk
Documentation=man:systemd-machine-id-commit.service(8) Documentation=man:systemd-machine-id-commit.service(8)
DefaultDependencies=no DefaultDependencies=no
Conflicts=shutdown.target Conflicts=shutdown.target
Before=shutdown.target Before=sysinit.target shutdown.target
After=local-fs.target first-boot-complete.target After=local-fs.target
ConditionPathIsReadWrite=/etc ConditionPathIsReadWrite=/etc
ConditionPathIsMountPoint=/etc/machine-id ConditionPathIsMountPoint=/etc/machine-id

View File

@ -14,8 +14,7 @@ DefaultDependencies=no
RequiresMountsFor=@RANDOM_SEED@ RequiresMountsFor=@RANDOM_SEED@
Conflicts=shutdown.target Conflicts=shutdown.target
After=systemd-remount-fs.service After=systemd-remount-fs.service
Before=first-boot-complete.target shutdown.target Before=shutdown.target
Wants=first-boot-complete.target
ConditionVirtualization=!container ConditionVirtualization=!container
[Service] [Service]