diff --git a/extra-repos/systemd/systemd/4.patch b/extra-repos/systemd/systemd/4.patch deleted file mode 100644 index 02ff5bc91..000000000 --- a/extra-repos/systemd/systemd/4.patch +++ /dev/null @@ -1,1557 +0,0 @@ -From ec3b188103c036dbf24d144e689261a983e90b22 Mon Sep 17 00:00:00 2001 -From: jane400 -Date: Sat, 28 Sep 2024 18:58:27 +0200 -Subject: [PATCH 1/2] port split-usr/split-bin - -This partially reverts commit b0d3095fd6cc1791a38f57a1982116b4475244ba. ---- - .semaphore/semaphore-runner.sh | 2 +- - catalog/meson.build | 1 - - catalog/systemd.bg.catalog.in | 2 + - catalog/systemd.catalog.in | 14 +- - catalog/systemd.fr.catalog.in | 2 + - catalog/systemd.it.catalog.in | 1 + - catalog/systemd.pl.catalog.in | 803 ---------------------- - catalog/systemd.ru.catalog.in | 2 + - man/org.freedesktop.systemd1.xml | 11 + - meson.build | 30 + - meson_options.txt | 8 +- - src/basic/constants.h | 18 + - src/basic/path-lookup.c | 5 +- - src/basic/path-util.c | 8 +- - src/basic/path-util.h | 4 +- - src/core/manager-serialize.c | 10 + - src/core/manager.c | 5 +- - src/core/manager.h | 2 + - src/core/meson.build | 4 +- - src/core/namespace.c | 15 + - src/core/systemd.pc.in | 6 +- - src/delta/delta.c | 36 + - src/libsystemd/sd-path/sd-path.c | 15 +- - src/portable/portable.c | 6 +- - src/shared/install.c | 5 + - src/shared/kbd-util.h | 1 + - src/systemctl/meson.build | 6 +- - src/test/test-manager.c | 29 + - test/fuzz/fuzz-catalog/systemd.pl.catalog | 2 + - 29 files changed, 221 insertions(+), 832 deletions(-) - delete mode 100644 catalog/systemd.pl.catalog.in - create mode 100644 src/test/test-manager.c - -diff --git a/.semaphore/semaphore-runner.sh b/.semaphore/semaphore-runner.sh -index bc0cb6a900..831b45f062 100755 ---- a/.semaphore/semaphore-runner.sh -+++ b/.semaphore/semaphore-runner.sh -@@ -94,7 +94,7 @@ EOF - # disable autopkgtests which are not for upstream - sed -i '/# NOUPSTREAM/ q' debian/tests/control - # enable more unit tests -- sed -i '/^CONFFLAGS =/ s/=/= --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true -Dman=true /' debian/rules -+ sed -i '/^CONFFLAGS =/ s/=/= --werror -Dtests=unsafe -Dsplit-usr=true -Dslow-tests=true -Dfuzz-tests=true -Dman=true /' debian/rules - # no orig tarball - echo '1.0' >debian/source/format - -diff --git a/catalog/meson.build b/catalog/meson.build -index 3c62749cf9..5b6f55245d 100644 ---- a/catalog/meson.build -+++ b/catalog/meson.build -@@ -12,7 +12,6 @@ in_files = [ - 'systemd.hu.catalog', - 'systemd.it.catalog', - 'systemd.ko.catalog', -- 'systemd.pl.catalog', - 'systemd.pt_BR.catalog', - 'systemd.ru.catalog', - 'systemd.sr.catalog', -diff --git a/catalog/systemd.bg.catalog.in b/catalog/systemd.bg.catalog.in -index e1c32ede78..08123a7b26 100644 ---- a/catalog/systemd.bg.catalog.in -+++ b/catalog/systemd.bg.catalog.in -@@ -395,6 +395,8 @@ Defined-By: systemd - Support: %SUPPORT_URL% - - Възможни са следните етикети: -+⁃ „split-usr“ — „/usr“ е отделна файлова система, която не е била монтирана при -+ стартирането на systemd - ⁃ „cgroups-missing“ — ядрото е компилирано без поддръжка на „cgroup“ или е - ограничен достъпът до тази подсистема - ⁃ „var-run-bad“ — „/var/run“ не е символна връзка към „/run“ -diff --git a/catalog/systemd.catalog.in b/catalog/systemd.catalog.in -index 2831152763..ea2b73e29e 100644 ---- a/catalog/systemd.catalog.in -+++ b/catalog/systemd.catalog.in -@@ -558,17 +558,21 @@ Defined-By: systemd - Support: %SUPPORT_URL% - - The following "tags" are possible: --- "unmerged-usr" - /bin, /sbin, /lib* are not symlinks to their counterparts -- under /usr/ --- "unmerged-bin" - /usr/sbin is not a symlink to /usr/bin/ --- "var-run-bad" — /var/run is not a symlink to /run/ --- "cgroupsv1" - the system is using the deprecated cgroup v1 hierarchy - - "local-hwclock" - the local hardware clock (RTC) is configured to be in - local time rather than UTC - - "support-ended" - the system is running past the end of support declared - by the vendor -+- "unmerged-usr" - /bin, /sbin, /lib* are not symlinks to their counterparts -+ under /usr/ -+- "unmerged-bin" - /usr/sbin is not a symlink to /usr/bin/ -+- "cgroupsv1" - the system is using the deprecated cgroup v1 hierarchy -+- "split-usr" — /usr is a separate file system and was not mounted when systemd -+ was booted - - "old-kernel" - the system is running a kernel version that is older than - the minimum supported by this version of systemd -+- "cgroups-missing" — the kernel was compiled without cgroup support or access -+ to expected interface files is restricted -+- "var-run-bad" — /var/run is not a symlink to /run - - "overflowuid-not-65534" — the kernel user ID used for "unknown" users (with - NFS or user namespaces) is not 65534 - - "overflowgid-not-65534" — the kernel group ID used for "unknown" users (with -diff --git a/catalog/systemd.fr.catalog.in b/catalog/systemd.fr.catalog.in -index 6b28ecb779..c25380c8a2 100644 ---- a/catalog/systemd.fr.catalog.in -+++ b/catalog/systemd.fr.catalog.in -@@ -337,6 +337,8 @@ Defined-By: systemd - Support: %SUPPORT_URL% - - Les étiquettes suivantes sont possibles : -+- "split-usr" — /usr est un système de fichiers séparé et nétait pas -+ monté quand systemd a été démarré - - "cgroups-missing" — le noyau a été compilé sans le support des groupes - de contrôle (cgroups) ou l'accès aux fichiers d'interface est restreint - - "var-run-bad" — /var/run n'est pas un lien symbolique vers /run -diff --git a/catalog/systemd.it.catalog.in b/catalog/systemd.it.catalog.in -index bcbbcc2eb0..fc2531405c 100644 ---- a/catalog/systemd.it.catalog.in -+++ b/catalog/systemd.it.catalog.in -@@ -403,6 +403,7 @@ Defined-By: systemd - Support: %SUPPORT_URL% - - I seguenti "tags" sono possibili: -+- "split-usr" — /usr è un file system separato e non è stato montato all'avvio di systemd - - "cgroups-missing" — il kernel era compilato senza supporto cgroup o l'accesso ai - file attesi è ristretto. - - "var-run-bad" — /var/run non è un link simbolico (symlink) a /run -diff --git a/catalog/systemd.pl.catalog.in b/catalog/systemd.pl.catalog.in -deleted file mode 100644 -index 75039e9fcd..0000000000 ---- a/catalog/systemd.pl.catalog.in -+++ /dev/null -@@ -1,803 +0,0 @@ --# SPDX-License-Identifier: LGPL-2.1-or-later -- --# Message catalog for systemd's own messages --# Polish translation -- --# The catalog format is documented on --# https://systemd.io/CATALOG -- --# For an explanation why we do all this, see https://xkcd.com/1024/ -- ---- f77379a8490b408bbe5f6940505a777b --Subject: Uruchomiono dziennik --Defined-By: systemd --Support: %SUPPORT_URL% -- --Systemowy proces dziennika został uruchomiony, otworzył pliki dziennika --do zapisu i jest gotowy do przetwarzania żądań. -- ---- d93fb3c9c24d451a97cea615ce59c00b --Subject: Zatrzymano dziennik --Defined-By: systemd --Support: %SUPPORT_URL% -- --Systemowy proces dziennika został wyłączony i zamknął wszystkie obecnie --aktywne pliki dziennika. -- ---- ec387f577b844b8fa948f33cad9a75e6 --Subject: Miejsce na dysku używane przez dziennik --Defined-By: systemd --Support: %SUPPORT_URL% -- --@JOURNAL_NAME@ (@JOURNAL_PATH@) obecnie używa @CURRENT_USE_PRETTY@. --Maksymalnie może używać @MAX_USE_PRETTY@. --Zostawianie co najmniej @DISK_KEEP_FREE_PRETTY@ wolnego (z obecnie dostępnego @DISK_AVAILABLE_PRETTY@ miejsca na dysku). --Wymuszone ograniczenie użycia wynosi więc @LIMIT_PRETTY@, z czego @AVAILABLE_PRETTY@ jest nadal dostępne. -- --Ograniczenia kontrolujące ilość miejsca na dysku używanego przez dziennik --można konfigurować za pomocą ustawień SystemMaxUse=, SystemKeepFree=, --SystemMaxFileSize=, RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize= --w pliku /etc/systemd/journald.conf. Strona journald.conf(5) zawiera więcej --informacji. -- ---- a596d6fe7bfa4994828e72309e95d61e --Subject: Ograniczono komunikaty z usługi --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: man:journald.conf(5) -- --Usługa zapisała za dużo komunikatów w określonym czasie. --Komunikaty z usługi zostały pominięte. -- --Proszę zauważyć, że tylko komunikaty z danej usługi zostały pominięte. --Nie ma to wpływu na komunikaty innych usług. -- --Ograniczenia kontrolujące pomijanie komunikatów mogą być konfigurowane --za pomocą opcji RateLimitIntervalSec= i RateLimitBurst= w pliku --/etc/systemd/journald.conf lub LogRateLimitIntervalSec= i LogRateLimitBurst= --w pliku jednostki. Strony journald.conf(5) i systemd.exec(5) zawierają więcej --informacji. -- ---- e9bf28e6e834481bb6f48f548ad13606 --Subject: Utracono komunikaty dziennika --Defined-By: systemd --Support: %SUPPORT_URL% -- --Komunikaty jądra zostały utracone, ponieważ system dziennika nie mógł --przetworzyć ich odpowiednio szybko. -- ---- fc2e22bc6ee647b6b90729ab34a250b1 --Subject: Proces @COREDUMP_PID@ (@COREDUMP_COMM@) zrzucił plik core --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: man:core(5) -- --Proces @COREDUMP_PID@ (@COREDUMP_COMM@) uległ awarii i zrzucił plik core. -- --Zwykle wskazuje to na błąd programistyczny w danym programie i powinno zostać --zgłoszone jego producentowi jako błąd. -- ---- 5aadd8e954dc4b1a8c954d63fd9e1137 --Subject: Plik core został skrócony do @SIZE_LIMIT@ B. --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: man:coredump.conf(5) -- --Proces miał więcej zmapowanej pamięci niż maksimum dla przetwarzania i miejsca --skonfigurowane przez systemd-coredump(8). Tylko pierwsze @SIZE_LIMIT@ B --zostało zapisanych. Ten plik core może nadal być używalny, ale narzędzia typu --gdb(1) będą ostrzegały o skróceniu pliku. -- ---- 8d45620c1a4348dbb17410da57c60c66 --Subject: Utworzono nową sesję @SESSION_ID@ dla użytkownika @USER_ID@ --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: sd-login(3) -- --Nowa sesja o identyfikatorze @SESSION_ID@ została utworzona dla użytkownika --@USER_ID@. -- --Proces prowadzący sesji: @LEADER@. -- ---- 3354939424b4456d9802ca8333ed424a --Subject: Zakończono sesję @SESSION_ID@ --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: sd-login(3) -- --Sesja o identyfikatorze @SESSION_ID@ została zakończona. -- ---- fcbefc5da23d428093f97c82a9290f7b --Subject: Dostępne jest nowe stanowisko @SEAT_ID@ --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: sd-login(3) -- --Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne. -- ---- e7852bfe46784ed0accde04bc864c2d5 --Subject: Usunięto stanowisko @SEAT_ID@ --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: sd-login(3) -- --Stanowisko @SEAT_ID@ zostało usunięte i nie jest już dostępne. -- ---- c7a787079b354eaaa9e77b371893cd27 --Subject: Zmiana czasu --Defined-By: systemd --Support: %SUPPORT_URL% -- --Zegar systemowy został zmieniony na @REALTIME@ μs po 1 stycznia 1970. -- ---- 45f82f4aef7a4bbf942ce861d1f20990 --Subject: Zmiana strefy czasowej na @TIMEZONE@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --Systemowa strefa czasowa została zmieniona na @TIMEZONE@. -- ---- b07a249cd024414a82dd00cd181378ff --Subject: Ukończono uruchamianie systemu --Defined-By: systemd --Support: %SUPPORT_URL% -- --Wszystkie usługi systemowe obowiązkowo zakolejkowane do włączenia podczas --uruchamiania systemu zostały uruchomione. Proszę zauważyć, że nie oznacza --to, że komputer jest bezczynny, jako że usługi mogą wciąż kończyć proces --uruchamiania. -- --Uruchamianie jądra zajęło @KERNEL_USEC@ μs. -- --Uruchamianie initrd zajęło @INITRD_USEC@ μs. -- --Uruchamianie przestrzeni użytkownika zajęło @USERSPACE_USEC@ μs. -- ---- eed00a68ffd84e31882105fd973abdd1 --Subject: Ukończono uruchamianie menedżera użytkownika --Defined-By: systemd --Support: %SUPPORT_URL% -- --Wystąpienie menedżera dla użytkownika @_UID@ zostało uruchomione. --Wszystkie usługi zakolejkowane do włączenia zostały uruchomione. --Proszę zauważyć, że inne usługi mogą być nadal uruchamiane --lub zostać uruchomione później. -- --Uruchamianie menedżera zajęło @USERSPACE_USEC@ μs. -- ---- 6bbd95ee977941e497c48be27c254128 --Subject: Przejście do stanu uśpienia @SLEEP@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --System przeszedł do stanu uśpienia @SLEEP@. -- ---- 8811e6df2a8e40f58a94cea26f8ebf14 --Subject: Wyjście ze stanu uśpienia @SLEEP@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --System wyszedł ze stanu uśpienia @SLEEP@. -- ---- 98268866d1d54a499c4e98921d93bc40 --Subject: Zainicjowano wyłączenie systemu --Defined-By: systemd --Support: %SUPPORT_URL% -- --Zainicjowano wyłączenie systemu. Wyłączenie zostało rozpoczęte i wszystkie --usługi systemowe zostały zakończone, a wszystkie systemy plików odmontowane. -- ---- c14aaf76ec284a5fa1f105f88dfb061c --Subject: Zainicjowano przywrócenie danych fabrycznych systemu --Defined-By: systemd --Support: %SUPPORT_URL% -- --Zainicjowano przywrócenie danych fabrycznych systemu. Dokładne działanie, --jakie zostanie wykonane jest określone przez implementację, ale zwykle --powoduje przywrócenie stanu i konfiguracji systemu do domyślnych wartości --producenta. -- ---- d9ec5e95e4b646aaaea2fd05214edbda --Subject: Proces init kontenera uległ awarii --Defined-By: systemd --Support: %SUPPORT_URL% -- --Proces init kontenera uległ awarii i zakończył działanie. --Szczegółowe informacje o awarii można uzyskać z menedżera kontenerów. -- ---- 3ed0163e868a4417ab8b9e210407a96c --Subject: Ponowne uruchomienie komputera po awarii się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- --Ponowne uruchomienie się nie powiodło, kiedy systemd próbował --ponownie uruchomić po awarii. -- ---- 645c735537634ae0a32b15a7c6cba7d4 --Subject: Wykonanie procesu init zostało zawieszone --Defined-By: systemd --Support: %SUPPORT_URL% -- --Systemd zawiesił wykonanie po błędzie krytycznym. -- ---- 5addb3a06a734d3396b794bf98fb2d01 --Subject: Proces init otrzymał sygnał krytyczny, kiedy zrzut core jest wyłączony --Defined-By: systemd --Support: %SUPPORT_URL% -- --Systemd otrzymał sygnał krytyczny, ale zrzucanie core jest wyłączone. -- ---- 5c9e98de4ab94c6a9d04d0ad793bd903 --Subject: Proces init otrzymał sygnał krytyczny, ale rozdzielenie się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- --Systemd otrzymał sygnał krytyczny, ale rozdzielenie w celu zrzucenia core --się nie powiodło. -- ---- 5e6f1f5e4db64a0eaee3368249d20b94 --Subject: Proces init otrzymał sygnał krytyczny od nieznanego procesu nadawcy --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 83f84b35ee264f74a3896a9717af34cb --Subject: Proces init otrzymał sygnał krytyczny od naszego własnego procesu --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 3a73a98baf5b4b199929e3226c0be783 --Subject: Proces init otrzymał sygnał krytyczny od innego procesu --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 2ed18d4f78ca47f0a9bc25271c26adb4 --Subject: Proces init otrzymał sygnał krytyczny, ale waitpid() się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- --Systemd otrzymał sygnał krytyczny, ale waitpid() się nie powiodło podczas --próby zrzucenia core. -- ---- 56b1cd96f24246c5b607666fda952356 --Subject: Proces init otrzymał sygnał krytyczny, ale zrzucenie core się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 4ac7566d4d7548f4981f629a28f0f829 --Subject: Proces init otrzymał sygnał krytyczny i zrzucono core --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 38e8b1e039ad469291b18b44c553a5b7 --Subject: Rozdzielenie powłoki awarii przez proces init się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- --Systemd uległ awarii, ale rozdzielenie powłoki awarii się nie powiodło. -- ---- 872729b47dbe473eb768ccecd477beda --Subject: Wykonanie powłoki awarii się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- --Systemd uległ awarii, ale wywołanie powłoki awarii się nie powiodło. -- ---- 658a67adc1c940b3b3316e7e8628834a --Subject: Wczytanie zasad SELinuksa przez menedżera się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- e6f456bd92004d9580160b2207555186 --Subject: Poziom naładowania akumulatora jest krytycznie niski, oczekiwanie na ładowarkę --Defined-By: systemd --Support: %SUPPORT_URL% -- --Poziom naładowania akumulatora jest krytycznie niski. Proszę podłączyć --ładowarkę, albo komputer wyłączy się za 10 sekund. -- ---- 267437d33fdd41099ad76221cc24a335 --Subject: Poziom naładowania akumulatora jest krytycznie niski, wyłączanie komputera --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 79e05b67bc4545d1922fe47107ee60c5 --Subject: Wykonanie głównej pętli przez menedżera się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- dbb136b10ef4457ba47a795d62f108c9 --Subject: Ustalenie ścieżki $XDG_RUNTIME_DIR przez menedżera użytkownika się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- ed158c2df8884fa584eead2d902c1032 --Subject: Obniżenie zestawu przypisanych możliwości procesów pomocniczych trybu użytkownika przez proces init się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 42695b500df048298bee37159caa9f2e --Subject: Obniżenie zestawu przypisanych możliwości przez proces init się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- bfc2430724ab44499735b4f94cca9295 --Subject: Wyłączenie nowych uprawnień przez menedżera użytkownika się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 59288af523be43a28d494e41e26e4510 --Subject: Uruchomienie domyślnego celu przez menedżera się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 689b4fcc97b4486ea5da92db69c9e314 --Subject: Odcięcie domyślnego celu przez menedżera się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 5ed836f1766f4a8a9fc5da45aae23b29 --Subject: Zebranie przekazanych deskryptorów plików przez menedżera się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 6a40fbfbd2ba4b8db02fb40c9cd090d7 --Subject: Naprawa zmiennych środowiskowych przez proces init się nie powiodła --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 0e54470984ac419689743d957a119e2e --Subject: Przydzielenie obiektu menedżera się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- d67fa9f847aa4b048a2ae33535331adb --Subject: Zapisanie listy „onlycap” dla Smack przez menedżera się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- af55a6f75b544431b72649f36ff6d62c --Subject: Błąd krytyczny podczas wykonywania wyłączania komputera --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- d18e0339efb24a068d9c1060221048c2 --Subject: Rozdzielenie procesu pomocniczego Valgrind przez proces init się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- ---- 7d4958e842da4a758f6c1cdc7b36dcc5 --Subject: Rozpoczęto wykonywanie zadania uruchamiania dla jednostki @UNIT@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --Rozpoczęto wykonywanie zadania uruchamiania dla jednostki @UNIT@. -- --Identyfikator zadania: @JOB_ID@. -- ---- 39f53479d3a045ac8e11786248231fbf --Subject: Pomyślnie ukończono zadanie uruchamiania dla jednostki @UNIT@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --Pomyślnie ukończono zadanie uruchamiania dla jednostki @UNIT@. -- --Identyfikator zadania: @JOB_ID@. -- ---- be02cf6855d2428ba40df7e9d022f03d --Subject: Zadanie uruchamiania dla jednostki @UNIT@ się nie powiodło --Defined-By: systemd --Support: %SUPPORT_URL% -- --Zadanie uruchamiania dla jednostki @UNIT@ zostało ukończone z niepowodzeniem. -- --Identyfikator zadania: @JOB_ID@, wynik zadania: @JOB_RESULT@. -- ---- de5b426a63be47a7b6ac3eaac82e2f6f --Subject: Rozpoczęto wykonywanie zadania zatrzymania dla jednostki @UNIT@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --Rozpoczęto wykonywanie zadania zatrzymania dla jednostki @UNIT@. -- --Identyfikator zadania: @JOB_ID@. -- ---- 9d1aaa27d60140bd96365438aad20286 --Subject: Ukończono zadanie zatrzymania dla jednostki @UNIT@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --Ukończono zadanie zatrzymania dla jednostki @UNIT@. -- --Identyfikator zadania: @JOB_ID@, wynik zadania: @JOB_RESULT@. -- ---- d34d037fff1847e6ae669a370e694725 --Subject: Rozpoczęto wykonywanie zadania ponownego wczytania dla jednostki @UNIT@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --Rozpoczęto wykonywanie zadania ponownego wczytania dla jednostki @UNIT@. -- --Identyfikator zadania: @JOB_ID@. -- ---- 7b05ebc668384222baa8881179cfda54 --Subject: Ukończono zadanie ponownego wczytania dla jednostki @UNIT@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --Ukończono zadanie ponownego wczytania dla jednostki @UNIT@. -- --Identyfikator zadania: @JOB_ID@, wynik zadania: @JOB_RESULT@. -- ---- 641257651c1b4ec9a8624d7a40a9e1e7 --Subject: Nie można wykonać procesu @EXECUTABLE@ --Defined-By: systemd --Support: %SUPPORT_URL% -- --Proces @EXECUTABLE@ nie mógł zostać wykonany i się nie powiódł. -- --Numer błędu zwrócony przez ten proces: @ERRNO@. -- ---- 0027229ca0644181a76c4e92458afa2e --Subject: Nie można przekazać jednego lub więcej komunikatów do syslog --Defined-By: systemd --Support: %SUPPORT_URL% -- --Jeden lub więcej komunikatów nie może zostać przekazanych do usługi syslog --uruchomionej obok journald. Zwykle oznacza to, że implementacja syslog nie --jest w stanie nadążyć za prędkością kolejki komunikatów. -- ---- 1dee0369c7fc4736b7099b38ecb46ee7 --Subject: Punkt montowania nie jest pusty --Defined-By: systemd --Support: %SUPPORT_URL% -- --Katalog @WHERE@ został podany jako punkt montowania (drugie pole w pliku --/etc/fstab lub pole Where= w pliku jednostki systemd) i nie jest pusty. Nie --wpływa to na montowanie, ale wcześniej istniejące pliki w tym katalogu stają --się niedostępne. Aby zobaczyć te pliki, proszę ręcznie zamontować system --plików w innym położeniu. -- ---- 24d8d4452573402496068381a6312df2 --Subject: Uruchomiono maszynę wirtualną lub kontener --Defined-By: systemd --Support: %SUPPORT_URL% -- --Maszyna wirtualna @NAME@ (PID prowadzący @LEADER@) została uruchomiona i jest --gotowa do użycia. -- ---- 58432bd3bace477cb514b56381b8a758 --Subject: Zakończono maszynę wirtualną lub kontener --Defined-By: systemd --Support: %SUPPORT_URL% -- --Maszyna wirtualna @NAME@ (PID prowadzący @LEADER@) została wyłączona. -- ---- 36db2dfa5a9045e1bd4af5f93e1cf057 --Subject: Wyłączono tryb DNSSEC, ponieważ serwer go nie obsługuje --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: man:systemd-resolved.service(8) --Documentation: man:resolved.conf(5) -- --Usługa resolver (systemd-resolved.service) wykryła, że skonfigurowany serwer --DNS nie obsługuje DNSSEC, w wyniku czego walidacja DNSSEC została wyłączona. -- --To zdarzenie będzie miało miejsce, jeśli skonfigurowano DNSSEC=allow-downgrade --w pliku resolved.conf, a skonfigurowany serwer DNS jest niezgodny z DNSSEC. --Proszę zauważyć, że używanie tego trybu umożliwia ataki wyłączające DNSSEC, --ponieważ atakujący będzie mógł wyłączyć walidację DNSSEC na komputerze przez --umieszczenie odpowiednich odpowiedzi DNS w kanale komunikacji. -- --To zdarzenie może wskazywać, że serwer DNS jest faktycznie niezgodny z DNSSEC, --albo że atakującemu udało się upozorować atak tego typu. -- ---- 1675d7f172174098b1108bf8c7dc8f5d --Subject: Walidacja DNSSEC się nie powiodła --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: man:systemd-resolved.service(8) -- --Zapytanie DNS lub ustawiony wpis zasobu nie przeszedł walidacji DNSSEC. --Zwykle wskazuje to, że ktoś manipulował używanym kanałem komunikacji. -- ---- 4d4408cfd0d144859184d1e65d7c8a65 --Subject: Unieważniono kotwicę zaufania DNSSEC --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: man:systemd-resolved.service(8) -- --Kotwica zaufania DNSSEC została unieważniona. Należy skonfigurować nową, albo --system operacyjny musi zostać zaktualizowany, aby dostarczyć zaktualizowaną --kotwicę zaufania DNSSEC. -- ---- 5eb03494b6584870a536b337290809b3 --Subject: Zaplanowano automatyczne ponowne uruchamianie jednostki --Defined-By: systemd --Support: %SUPPORT_URL% -- --W wyniki skonfigurowania ustawienia Restart= zaplanowano automatyczne ponowne --uruchamianie jednostki @UNIT@. -- ---- ae8f7b866b0347b9af31fe1c80b127c0 --Subject: Zasoby zużyte przez uruchomienie jednostki --Defined-By: systemd --Support: %SUPPORT_URL% -- --Jednostka @UNIT@ została ukończona, zużywając wskazane zasoby. -- ---- 7ad2d189f7e94e70a38c781354912448 --Subject: Jednostka się powiodła --Defined-By: systemd --Support: %SUPPORT_URL% -- --Jednostka @UNIT@ pomyślnie przeszła do stanu „dead” (martwego). -- ---- 0e4284a0caca4bfc81c0bb6786972673 --Subject: Pominięto jednostkę --Defined-By: systemd --Support: %SUPPORT_URL% -- --Jednostka @UNIT@ została pominięta z powodu niepowodzenia --polecenia ExecCondition=, i przeszła do stanu „dead” (martwego) --z wynikiem „@UNIT_RESULT@”. -- ---- d9b373ed55a64feb8242e02dbe79a49c --Subject: Jednostka się nie powiodła --Defined-By: systemd --Support: %SUPPORT_URL% -- --Jednostka @UNIT@ przeszła do stanu „failed” (niepowodzenia) --z wynikiem „@UNIT_RESULT@”. -- ---- 98e322203f7a4ed290d09fe03c09fe15 --Subject: Proces jednostki zakończył działanie --Defined-By: systemd --Support: %SUPPORT_URL% -- --Proces @COMMAND@= należący do jednostki @UNIT@ zakończył działanie. -- --Kod wyjścia procesu: „@EXIT_CODE@”, jego stan wyjścia: @EXIT_STATUS@. -- ---- 50876a9db00f4c40bde1a2ad381c3a1b --Subject: System jest skonfigurowany w sposób, który może powodować problemy --Defined-By: systemd --Support: %SUPPORT_URL% -- --Możliwe są następujące „etykiety”: --• „unmerged-usr” — /bin, /sbin, /lib* nie są dowiązaniami symbolicznymi -- do swoich odpowiedników pod /usr/, --• „unmerged-bin” — /usr/sbin nie jest dowiązaniem symbolicznym do /usr/bin/, --• „var-run-bad” — /var/run nie jest dowiązaniem symbolicznym do /run/, --• „cgroupsv1” — system używa przestarzałej hierarchii cgroup v1, --• „local-hwclock” — lokalny zegar sprzętowy (RTC) jest skonfigurowany -- do działania w czasie lokalnym zamiast w uniwersalnym czasie -- koordynowanym (UTC), --• „support-ended” — system działa po końcu wsparcia zadeklarowanym -- przez producenta, --• „old-kernel” — system działa na wersji jądra starszej niż minimalna -- obsługiwana przez tę wersję systemd, --• „overflowuid-not-65534” — identyfikator użytkownika dla „nieznanych” -- użytkowników (przy wykorzystaniu przestrzeni nazw użytkowników lub NFS) -- nie wynosi 65534, --• „overflowgid-not-65534” — identyfikator grupy dla „nieznanych” -- użytkowników (przy wykorzystaniu przestrzeni nazw użytkowników lub NFS) -- nie wynosi 65534, --• „short-uid-range” — zakres UID przydzielony do działającego wystąpienia -- systemd pokrywa mniej niż 0…65534, --• „short-gid-range” — zakres GID przydzielony do działającego wystąpienia -- systemd pokrywa mniej niż 0…65534. -- --Obecny system ma etykietę „@TAINT@”. -- ---- fe6faa94e7774663a0da52717891d8ef --Subject: Proces jednostki @UNIT@ został zakończony przez OOM Killer --Defined-By: systemd --Support: %SUPPORT_URL% -- --Proces jednostki @UNIT został zakończony przez mechanizm kończenia --procesów przy braku pamięci (OOM) jądra Linux. Zwykle wskazuje to, --że system ma mało pamięci i należało ją zwolnić. Proces powiązany --z jednostką @UNIT@ został uznany za najlepszy do zakończenia --i jądro wymusiło zakończenie jego działania. -- --Proszę zauważyć, że brak pamięci mógł nie zostać spowodowany --przez jednostkę @UNIT@. -- ---- b61fdac612e94b9182285b998843061f --Subject: Przyjmowanie nazwy użytkownika/grupy @USER_GROUP_NAME@, która nie zgadza się ze ścisłymi regułami nazw użytkowników/grup. --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: https://systemd.io/USER_NAMES -- --Podano nazwę użytkownika/grupy @USER_GROUP_NAME@, co zostało przyjęte --zgodnie z rozluźnionymi regułami nazw użytkowników/grup, ale nie spełnia --ścisłych reguł. -- --Ścisłe reguły nazw użytkowników/grup zapisane jako wyrażenie regularne to: -- --^[a-zA-Z_][a-zA-Z0-9_-]{0,30}$ -- --Rozluźnione reguły nazw użytkowników/grup przyjmują wszystkie nazwy, --oprócz pustego ciągu, nazw zawierających bajty NUL, znaki kontrolne, --dwukropki lub ukośniki, nazw niebędących prawidłowym tekstem UTF-8, --nazw z początkową lub końcową spacją, ciągów „.” lub „..”, ciągów --zawierających tylko cyfry lub ciągów zaczynających się myślnikiem --i zawierających oprócz niego tylko cyfry. -- ---- 1b3bb94037f04bbf81028e135a12d293 --Subject: Utworzenie prawidłowej nazwy jednostki ze ścieżki „@MOUNT_POINT@” się nie powiodło. --Defined-By: systemd --Support: %SUPPORT_URL% -- --Następująca ścieżka do punktu montowania nie może zostać przekonwertowana --na prawidłową nazwę jednostki .mount: -- -- @MOUNT_POINT@ -- --Zwykle oznacza to, że ścieżka do punktu montowania jest dłuższa niż dozwolona --dla prawidłowych nazw jednostek. -- --systemd dynamicznie syntetyzuje jednostki .mount dla wszystkich punktów --montowania pojawiających się na komputerze. Stosowany do tego jest prosty --algorytm: używana jest bezwzględna nazwa ścieżki ze wszystkimi znakami „/” --zastąpionymi znakami „-” (początkowy jest usuwany). Co więcej, wszystkie --niealfanumeryczne znaki (a także „:”, „-”, „_”, „.”, „\”) są zastępowane --„\xNN”, gdzie „NN” jest szesnastkowym kodem znaki. Na końcu dołączany jest --przyrostek „.mount”. Wynikowy ciąg musi mieć poniżej 256 znaków długości, --aby był prawidłową nazwą jednostki. To ograniczenie obowiązuje, aby wszystkie --nazwy jednostek mogły być używane także jako nazwy plików. Jeśli punkt --montowania — po zastosowaniu algorytmu — jest dłuższy niż to ograniczenie, --to nie może zostać zmapowany do jednostki. W takim przypadku systemd nie --zsyntetyzuje jednostki i nie może być używany do zarządzania punktem --montowania. Nie pojawi się w tabeli jednostek menedżera usług, przez co --nie zostanie także bezpiecznie i automatycznie zdjęty podczas wyłączania --komputera. -- --Zasadniczo zalecane jest unikanie takich za długich ścieżek do punktów --montowania, a jeśli są używane mimo to, zarządzanie nimi niezależnie --od systemd, tzn. stawianie ich i automatyczne zdejmowanie podczas --wyłączania komputera przez inne oprogramowanie. -- ---- b480325f9c394a7b802c231e51a2752c --Subject: Skonfigurowany jest szczególny użytkownik @OFFENDING_USER@, jest to niebezpieczne! --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: https://systemd.io/UIDS-GIDS -- --Jednostka @UNIT@ jest skonfigurowana do używania User=@OFFENDING_USER@. -- --Nie jest to bezpieczne. Głównym zastosowaniem użytkownika @OFFENDING_USER@ --w linuksowych systemach operacyjnych jest bycie właścicielem plików, których --nie można w inny sposób zmapować do żadnego lokalnego użytkownika. Jest --używany między innymi przez klienta NFS i przestrzenie nazw użytkowników --Linuksa. Wykonywanie procesów jednostki pod tożsamością tego użytkownika --może spowodować, że będą one miały dostęp do odczytu, a może nawet do zapisu, --plików, których nie można zmapować w inny sposób. -- --Mocno zalecane jest unikanie wykonywania usług pod tą tożsamością użytkownika, --zwłaszcza na komputerach używających NFS lub mających kontenery. Należy --przydzielić identyfikator użytkownika dla tej konkretnej usługi, statycznie --przez systemd-sysusers lub dynamicznie przez ustawienie usługi DynamicUser=. -- ---- 1c0454c1bd2241e0ac6fefb4bc631433 --Subject: Usługa systemd-udev-settle.service jest przestarzała. --Defined-By: systemd --Support: %SUPPORT_URL% -- --Użycie jednostki usługi systemd „systemd-udev-settle.service” jest --przestarzałe. Wstawia ona sztuczne opóźnienie do procesu uruchamiania --bez dostarczania gwarancji, które były oczekiwane przez pozostałe --podsystemy. Korzystanie z tej usługi może prowadzić do hazardów, --i zasadniczo jest błędem. -- --W przeszłości zadaniem tej usługi było oczekiwanie, aż wszystkie urządzenia --komputera zostaną w pełni wykryte i zainicjowane, opóźniając uruchamianie --do ukończenia tego etapu. Jednakże, współczesne komputery i urządzenia --na ogół nie działają już w ten sposób, tylko mogą pojawić się w dowolnej --chwili i zająć dowolny czas na wykrycie i inicjację. Z tego powodu, --w ogólnym przypadku, nie jest już możliwe poprawne opóźnienie uruchamiania --do przetworzenia „wszystkich urządzeń”, ponieważ nie jest jasne, co znaczy --„wszystkie urządzenia” i kiedy zostały odnalezione. Dotyczy to zwłaszcza --urządzeń podłączonych przez USB lub sieć. -- --Nowoczesne oprogramowanie wymagające określonego sprzętu (takiego jak --urządzenie sieciowe lub urządzenie blokowe) do działania powinno oczekiwać --tylko na pojawienie się danego urządzenia, a w przeciwnym razie działać --asynchronicznie, inicjując urządzenia, kiedy te pojawiają się w trakcie --uruchamiania i w trakcie działania systemu bez opóźniania procesu uruchamiania. -- --Jest to wada danego oprogramowania, jeśli nie działa ono w ten sposób --i nadal wciąga usługę systemd-udev-settle.service do procesu uruchamiania. -- --Prosimy zgłosić błąd w następujących jednostkach z prośbą --o ich aktualizację tak, aby działały w sposób dynamiczny --bez zależności od usługi systemd-udev-settle.service: -- -- @OFFENDING_UNITS@ -- ---- 7c8a41f37b764941a0e1780b1be2f037 --Subject: Początkowa synchronizacja zegara --Defined-By: systemd --Support: %SUPPORT_URL% -- --Po raz pierwszy podczas obecnego uruchomienia uzyskano synchronizację NTP --i zainicjowano regulację lokalnego zegara systemowego. -- ---- 7db73c8af0d94eeb822ae04323fe6ab6 --Subject: Początkowe przestawienie zegara --Defined-By: systemd --Support: %SUPPORT_URL% -- --Przestawiono zegar systemowy na podstawie pliku ze znacznikiem czasu na dysku --w celu zapewnienia, że nadal jest w przybliżeniu monotoniczny — nawet między --ponownymi uruchomieniami — jeśli zegar czasu rzeczywistego jest niedostępny --lub zawodny. -- ---- 3f7d5ef3e54f4302b4f0b143bb270cab --Subject: Rozszerzono PCR układu TPM --Defined-By: systemd --Support: %SUPPORT_URL% -- --Rejestr konfiguracji platformy (PCR) @PCR@ układu TPM, w rzędach @BANKS@, --został rozszerzony ciągiem „@MEASURING@”. -- --Kiedy system przechodzi do nowego etapu uruchamiania, podany PCR jest --rozszerzany innym ciągiem, aby zapewnić, że zasady zabezpieczeń dla haseł --związanych z TPM i innych zasobów są ograniczone do konkretnych etapów --uruchamiania. -- ---- f9b0be465ad540d0850ad32172d57c21 --Subject: Obniżono zużycie pamięci --Defined-By: systemd --Support: %SUPPORT_URL% -- --Obniżono zużycie pamięci procesu @_PID@ (@_COMM@). -- --Na żądanie użytkownika lub w wyniku zdarzenia braku pamięci obniżono zużycie --pamięci procesu, zwracając niepotrzebne bufory przydziału i inne zasoby --z powrotem do jądra systemu operacyjnego, udostępniając je innym częściom --systemu. -- --Zwrócono @TRIMMED_BYTES@ pamięci do systemu operacyjnego, co zajęło @TRIMMED_USEC@ μs. -- ---- a8fa8dacdb1d443e9503b8be367a6adb --Subject: Znaleziono usługę SysV --Defined-By: systemd --Support: %SUPPORT_URL% -- --Na komputerze odnaleziono skrypt usługi System V @SYSVSCRIPT@, który nie ma --natywnej jednostki systemd. Utworzono automatyczny plik jednostki @UNIT@, --aby zapewnić zgodność. -- --Proszę zauważyć, że tego rodzaju automatycznie tworzone pliki jednostek --nie mogą zastąpić natywnych plików jednostek, jako że zazwyczaj spowalniają --one komputer (przez tworzenie niepotrzebnych, dodatkowych punktów --synchronizacji), są mniej solidne (jako że nie można właściwie zarządzać --usługami SysV ani ich automatycznie uruchamiać ponownie) oraz mniej --bezpieczne (jako że nie można wymuszać żadnych ograniczeń piaskownicy). -- --Obsługa zgodności z usługami System V w systemd jest oznaczona jako --przestarzała. Proszę się upewnić, że zaktualizowano wymieniony pakiet, --aby zapewnić właściwe, natywne pliki jednostek systemd. W razie potrzeby --należy skontaktować się z producentem pakietu. Obsługa zgodności z usługami --System V jest oznaczona jako przestarzała i niedługo zostanie usunięta. -- ---- 187c62eb1e7f463bb530394f52cb090f --Subject: Dołączono usługę przenośną --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: https://systemd.io/PORTABLE_SERVICES/ -- --Do systemu dołączono nową usługę przenośną @PORTABLE_ROOT@ (z rozszerzeniami: --@PORTABLE_EXTENSION@) i jest teraz dostępna do użytku. Polecenie --„portablectl list” wyświetli listę dołączonych usług przenośnych. -- ---- 76c5c754d628490d8ecba4c9d042112b --Subject: Odłączono usługę przenośną --Defined-By: systemd --Support: %SUPPORT_URL% --Documentation: https://systemd.io/PORTABLE_SERVICES/ -- --Z systemu odłączono usługę przenośną @PORTABLE_ROOT@ (z rozszerzeniami: --@PORTABLE_EXTENSION@) i nie jest już dostępna do użytku. Polecenie --„portablectl list” wyświetli listę dołączonych usług przenośnych. -diff --git a/catalog/systemd.ru.catalog.in b/catalog/systemd.ru.catalog.in -index 2d0d8c82a0..d49c393475 100644 ---- a/catalog/systemd.ru.catalog.in -+++ b/catalog/systemd.ru.catalog.in -@@ -388,6 +388,8 @@ Defined-By: systemd - Support: %SUPPORT_URL% - - Перечень всех возможных меток, указывающих на проблемы конфигурации: -+- "split-usr" — каталог /usr расположен на отдельной файловой системе, -+ которая не была смонтирована на момент запуска systemd - - "cgroups-missing" — ядро собрано без поддержки контрольных групп, либо - отсутствуют права для доступа к интерфейсным файлам контрольных групп - - "var-run-bad" — /var/run не является символьной ссылкой на /run -diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml -index b0b45097e3..290054fa42 100644 ---- a/man/org.freedesktop.systemd1.xml -+++ b/man/org.freedesktop.systemd1.xml -@@ -1654,6 +1654,17 @@ node /org/freedesktop/systemd1 { - used to lower the chance of bogus bug reports. The following taints are currently known: - - -+ -+ split-usr -+ -+ /usr/ was not available when systemd was first invoked. It -+ must either be part of the root file system, or it must be mounted before -+ systemd is invoked. See -+ -+ Booting Without /usr is Broken for details why this is bad. -+ -+ -+ - - unmerged-usr - -diff --git a/meson.build b/meson.build -index 3f7aa3864c..b9b928b7cb 100644 ---- a/meson.build -+++ b/meson.build -@@ -84,6 +84,9 @@ endif - ##################################################################### - - fs = import('fs') -+split_usr = get_option('split-usr') == 'true' -+conf.set10('HAVE_SPLIT_USR', split_usr) -+ - if get_option('split-bin') == 'auto' - split_bin = not fs.is_symlink('/usr/sbin') - else -@@ -126,6 +129,28 @@ includedir = prefixdir / get_option('includedir') - datadir = prefixdir / get_option('datadir') - localstatedir = '/' / get_option('localstatedir') - -+rootprefixdir = get_option('rootprefix') -+# Unusual rootprefixdir values are used by some distros -+# (see https://github.com/systemd/systemd/pull/7461). -+rootprefix_default = split_usr ? '/' : '/usr' -+if rootprefixdir == '' -+ rootprefixdir = rootprefix_default -+endif -+rootprefixdir_noslash = rootprefixdir == '/' ? '' : rootprefixdir -+rootbindir = rootprefixdir / 'bin' -+rootsbindir = rootprefixdir / (split_bin ? 'sbin' : 'bin') -+rootlibexecdir = rootprefixdir / 'lib/systemd' -+ -+rootlibdir = get_option('rootlibdir') -+if rootlibdir == '' -+ # This will be a relative path if libdir is in prefix. -+ rootlibdir = get_option('libdir') -+endif -+if not rootlibdir.startswith('/') -+ # If we have a relative path, add rootprefixdir to the front. -+ rootlibdir = rootprefixdir / rootlibdir -+endif -+rootpkglibdir = rootlibdir / 'systemd' - libexecdir = prefixdir / 'lib/systemd' - pkglibdir = libdir / 'systemd' - -@@ -255,6 +280,11 @@ conf.set_quoted('PREFIX_NOSLASH', prefixdir_noslash) - conf.set_quoted('RANDOM_SEED', randomseeddir / 'random-seed') - conf.set_quoted('RANDOM_SEED_DIR', randomseeddir) - conf.set_quoted('RC_LOCAL_PATH', get_option('rc-local')) -+conf.set_quoted('ROOTBINDIR', rootbindir) -+conf.set_quoted('ROOTLIBDIR', rootlibdir) -+conf.set_quoted('ROOTLIBEXECDIR', rootlibexecdir) -+conf.set_quoted('ROOTPREFIX', rootprefixdir) -+conf.set_quoted('ROOTPREFIX_NOSLASH', rootprefixdir_noslash) - conf.set_quoted('SSHCONFDIR', sshconfdir) - conf.set_quoted('SSHDCONFDIR', sshdconfdir) - conf.set_quoted('SYSCONF_DIR', sysconfdir) -diff --git a/meson_options.txt b/meson_options.txt -index 909e2d53e8..1b7620e66a 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -15,10 +15,10 @@ option('split-usr', type : 'combo', choices : ['auto', 'true', 'false'], depreca - description : 'This option is deprecated and will be removed in a future release') - option('split-bin', type : 'combo', choices : ['auto', 'true', 'false'], - description : 'sbin is not a symlink to bin') --option('rootlibdir', type : 'string', deprecated: true, -- description : 'This option is deprecated and will be removed in a future release') --option('rootprefix', type : 'string', deprecated: true, -- description : 'This option is deprecated and will be removed in a future release') -+option('rootlibdir', type : 'string', -+ description : '''[/usr]/lib/x86_64-linux-gnu or such''') -+option('rootprefix', type : 'string', -+ description : '''override the root prefix [default '/' if split-usr and '/usr' otherwise]''') - option('link-udev-shared', type : 'boolean', - description : 'link systemd-udevd and its helpers to libsystemd-shared.so') - option('link-executor-shared', type : 'boolean', -diff --git a/src/basic/constants.h b/src/basic/constants.h -index e70817c51f..cbad262c95 100644 ---- a/src/basic/constants.h -+++ b/src/basic/constants.h -@@ -58,17 +58,35 @@ - - /* Return a nulstr for a standard cascade of configuration paths, suitable to pass to - * conf_files_list_nulstr() to implement drop-in directories for extending configuration files. */ -+#if HAVE_SPLIT_USR -+#define CONF_PATHS_NULSTR(n) \ -+ "/etc/" n "\0" \ -+ "/run/" n "\0" \ -+ "/usr/local/lib/" n "\0" \ -+ "/usr/lib/" n "\0" \ -+ "/lib/" n "\0" -+#else - #define CONF_PATHS_NULSTR(n) \ - "/etc/" n "\0" \ - "/run/" n "\0" \ - "/usr/local/lib/" n "\0" \ - "/usr/lib/" n "\0" -+#endif - -+#if HAVE_SPLIT_USR -+#define CONF_PATHS(n) \ -+ "/etc/" n, \ -+ "/run/" n, \ -+ "/usr/local/lib/" n, \ -+ "/usr/lib/" n, \ -+ "/lib/" n -+#else - #define CONF_PATHS(n) \ - "/etc/" n, \ - "/run/" n, \ - "/usr/local/lib/" n, \ - "/usr/lib/" n -+#endif - - #define CONF_PATHS_STRV(n) \ - STRV_MAKE(CONF_PATHS(n)) -diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c -index 540256b73b..3d3df61fb9 100644 ---- a/src/basic/path-lookup.c -+++ b/src/basic/path-lookup.c -@@ -551,6 +551,10 @@ int lookup_paths_init( - assert(scope >= 0); - assert(scope < _RUNTIME_SCOPE_MAX); - -+#if HAVE_SPLIT_USR -+ flags |= LOOKUP_PATHS_SPLIT_USR; -+#endif -+ - if (!empty_or_root(root_dir)) { - if (scope == RUNTIME_SCOPE_USER) - return -EINVAL; -@@ -642,7 +646,6 @@ int lookup_paths_init( - "/usr/local/lib/systemd/system", - SYSTEM_DATA_UNIT_DIR, - "/usr/lib/systemd/system", -- /* To be used ONLY for images which might be legacy split-usr */ - STRV_IFNOTNULL(flags & LOOKUP_PATHS_SPLIT_USR ? "/lib/systemd/system" : NULL), - STRV_IFNOTNULL(generator_late)); - break; -diff --git a/src/basic/path-util.c b/src/basic/path-util.c -index 068fb42960..ffcb319dfe 100644 ---- a/src/basic/path-util.c -+++ b/src/basic/path-util.c -@@ -1470,8 +1470,12 @@ const char* default_PATH(void) { - * On error fall back to the safe value with both directories as configured… */ - - if (split < 0) -- STRV_FOREACH_PAIR(bin, sbin, STRV_MAKE("/usr/bin", "/usr/sbin", -- "/usr/local/bin", "/usr/local/sbin")) { -+ STRV_FOREACH_PAIR(bin, sbin, STRV_MAKE( -+# if HAVE_SPLIT_USR -+ "/bin", "/sbin", -+# endif -+ "/usr/bin", "/usr/sbin", -+ "/usr/local/bin", "/usr/local/sbin")) { - r = inode_same(*bin, *sbin, AT_NO_AUTOMOUNT); - if (r > 0 || r == -ENOENT) - continue; -diff --git a/src/basic/path-util.h b/src/basic/path-util.h -index 792b8ff2cb..a224091db4 100644 ---- a/src/basic/path-util.h -+++ b/src/basic/path-util.h -@@ -17,8 +17,8 @@ - #define PATH_MERGED_BIN(x) x "bin" - #define PATH_MERGED_BIN_NULSTR(x) x "bin\0" - --#define DEFAULT_PATH_WITH_SBIN PATH_SPLIT_BIN("/usr/local/") ":" PATH_SPLIT_BIN("/usr/") --#define DEFAULT_PATH_WITHOUT_SBIN PATH_MERGED_BIN("/usr/local/") ":" PATH_MERGED_BIN("/usr/") -+#define DEFAULT_PATH_WITH_SBIN PATH_SPLIT_BIN("/usr/local/") ":" PATH_SPLIT_BIN("/usr/") ":" PATH_SPLIT_BIN("/") -+#define DEFAULT_PATH_WITHOUT_SBIN PATH_MERGED_BIN("/usr/local/") ":" PATH_MERGED_BIN("/usr/") ":" PATH_MERGED_BIN("/") - - #define DEFAULT_PATH_COMPAT PATH_SPLIT_BIN("/usr/local/") ":" PATH_SPLIT_BIN("/usr/") ":" PATH_SPLIT_BIN("/") - -diff --git a/src/core/manager-serialize.c b/src/core/manager-serialize.c -index 1d2959abf4..03803a8101 100644 ---- a/src/core/manager-serialize.c -+++ b/src/core/manager-serialize.c -@@ -90,6 +90,7 @@ int manager_serialize( - (void) serialize_item_format(f, "current-job-id", "%" PRIu32, m->current_job_id); - (void) serialize_item_format(f, "n-installed-jobs", "%u", m->n_installed_jobs); - (void) serialize_item_format(f, "n-failed-jobs", "%u", m->n_failed_jobs); -+ (void) serialize_bool(f, "taint-usr", m->taint_usr); - (void) serialize_bool(f, "ready-sent", m->ready_sent); - (void) serialize_bool(f, "taint-logged", m->taint_logged); - (void) serialize_bool(f, "service-watchdogs", m->service_watchdogs); -@@ -354,6 +355,15 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { - else - m->n_failed_jobs += n; - -+ } else if ((val = startswith(l, "taint-usr="))) { -+ int b; -+ -+ b = parse_boolean(val); -+ if (b < 0) -+ log_notice("Failed to parse taint /usr flag '%s', ignoring.", val); -+ else -+ m->taint_usr = m->taint_usr || b; -+ - } else if ((val = startswith(l, "ready-sent="))) { - int b; - -diff --git a/src/core/manager.c b/src/core/manager.c -index 5997ef0cf1..5ed285de38 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -1057,6 +1057,10 @@ int manager_new(RuntimeScope runtime_scope, ManagerTestRunFlags test_run_flags, - log_debug("Using systemd-executor binary from '%s'.", executor_path); - } - -+ m->taint_usr = -+ !in_initrd() && -+ dir_is_empty("/usr", /* ignore_hidden_or_backup= */ false) > 0; -+ - /* Note that we do not set up the notify fd here. We do that after deserialization, - * since they might have gotten serialized across the reexec. */ - -@@ -4946,7 +4950,6 @@ static int manager_dispatch_handoff_timestamp_fd(sd_event_source *source, int fd - FOREACH_ARRAY(u, units, n_units) { - if (!UNIT_VTABLE(*u)->notify_handoff_timestamp) - continue; -- - UNIT_VTABLE(*u)->notify_handoff_timestamp(*u, ucred, &dt); - } - -diff --git a/src/core/manager.h b/src/core/manager.h -index 0641b2726f..cdb1e36d3f 100644 ---- a/src/core/manager.h -+++ b/src/core/manager.h -@@ -388,6 +388,8 @@ struct Manager { - /* Flags */ - bool dispatching_load_queue; - -+ bool taint_usr; -+ - /* Have we already sent out the READY=1 notification? */ - bool ready_sent; - -diff --git a/src/core/meson.build b/src/core/meson.build -index dbeb752977..28a9f392db 100644 ---- a/src/core/meson.build -+++ b/src/core/meson.build -@@ -260,8 +260,8 @@ if install_sysconfdir - sysconfdir / 'xdg/systemd/user')) - endif - --install_emptydir(sbindir) --meson.add_install_script(sh, '-c', ln_s.format(libexecdir / 'systemd', sbindir / 'init')) -+install_emptydir(rootsbindir) -+meson.add_install_script(sh, '-c', ln_s.format(libexecdir / 'systemd', rootsbindir / 'init')) - - ############################################################ - -diff --git a/src/core/namespace.c b/src/core/namespace.c -index a9b98bcd32..306ffad41e 100644 ---- a/src/core/namespace.c -+++ b/src/core/namespace.c -@@ -154,6 +154,9 @@ static const MountEntry protect_kernel_tunables_sys_table[] = { - - /* ProtectKernelModules= option */ - static const MountEntry protect_kernel_modules_table[] = { -+#if HAVE_SPLIT_USR -+ { "/lib/modules", MOUNT_INACCESSIBLE, true }, -+#endif - { "/usr/lib/modules", MOUNT_INACCESSIBLE, true }, - }; - -@@ -195,6 +198,12 @@ static const MountEntry protect_system_yes_table[] = { - { "/usr", MOUNT_READ_ONLY, false }, - { "/boot", MOUNT_READ_ONLY, true }, - { "/efi", MOUNT_READ_ONLY, true }, -+#if HAVE_SPLIT_USR -+ { "/lib", MOUNT_READ_ONLY, true }, -+ { "/lib64", MOUNT_READ_ONLY, true }, -+ { "/bin", MOUNT_READ_ONLY, true }, -+ { "/sbin", MOUNT_READ_ONLY, true }, -+#endif - }; - - /* ProtectSystem=full includes ProtectSystem=yes */ -@@ -203,6 +212,12 @@ static const MountEntry protect_system_full_table[] = { - { "/boot", MOUNT_READ_ONLY, true }, - { "/efi", MOUNT_READ_ONLY, true }, - { "/etc", MOUNT_READ_ONLY, false }, -+#if HAVE_SPLIT_USR -+ { "/lib", MOUNT_READ_ONLY, true }, -+ { "/lib64", MOUNT_READ_ONLY, true }, -+ { "/bin", MOUNT_READ_ONLY, true }, -+ { "/sbin", MOUNT_READ_ONLY, true }, -+#endif - }; - - /* ProtectSystem=strict table. In this strict mode, we mount everything read-only, except for /proc, /dev, -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index f3b85b0190..36fbe5d192 100644 ---- a/src/core/systemd.pc.in -+++ b/src/core/systemd.pc.in -@@ -75,13 +75,13 @@ user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d - sysusers_dir=${prefix}/lib/sysusers.d - sysusersdir=${sysusers_dir} - --sysctl_dir=${prefix}/lib/sysctl.d -+sysctl_dir=${rootprefix}/lib/sysctl.d - sysctldir=${sysctl_dir} - --binfmt_dir=${prefix}/lib/binfmt.d -+binfmt_dir=${rootprefix}/lib/binfmt.d - binfmtdir=${binfmt_dir} - --modules_load_dir=${prefix}/lib/modules-load.d -+modules_load_dir=${rootprefix}/lib/modules-load.d - modulesloaddir=${modules_load_dir} - - catalog_dir=${prefix}/lib/systemd/catalog -diff --git a/src/delta/delta.c b/src/delta/delta.c -index 3433250549..a82f7f5ee1 100644 ---- a/src/delta/delta.c -+++ b/src/delta/delta.c -@@ -35,6 +35,9 @@ static const char prefixes[] = - "/usr/local/share\0" - "/usr/lib\0" - "/usr/share\0" -+#if HAVE_SPLIT_USR -+ "/lib\0" -+#endif - ; - - static const char suffixes[] = -@@ -365,6 +368,36 @@ static int enumerate_dir( - return 0; - } - -+static int should_skip_path(const char *prefix, const char *suffix) { -+#if HAVE_SPLIT_USR -+ _cleanup_free_ char *target = NULL, *dirname = NULL; -+ -+ dirname = path_join(prefix, suffix); -+ if (!dirname) -+ return -ENOMEM; -+ -+ if (chase(dirname, NULL, 0, &target, NULL) < 0) -+ return false; -+ -+ NULSTR_FOREACH(p, prefixes) { -+ _cleanup_free_ char *tmp = NULL; -+ -+ if (path_startswith(dirname, p)) -+ continue; -+ -+ tmp = path_join(p, suffix); -+ if (!tmp) -+ return -ENOMEM; -+ -+ if (path_equal(target, tmp)) { -+ log_debug("%s redirects to %s, skipping.", dirname, target); -+ return true; -+ } -+ } -+#endif -+ return false; -+} -+ - static int process_suffix(const char *suffix, const char *onlyprefix) { - char *f, *key; - OrderedHashmap *top, *bottom, *drops, *h; -@@ -388,6 +421,9 @@ static int process_suffix(const char *suffix, const char *onlyprefix) { - NULSTR_FOREACH(p, prefixes) { - _cleanup_free_ char *t = NULL; - -+ if (should_skip_path(p, suffix) > 0) -+ continue; -+ - t = path_join(p, suffix); - if (!t) { - r = -ENOMEM; -diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c -index 8edbde9c8e..d984d19c6d 100644 ---- a/src/libsystemd/sd-path/sd-path.c -+++ b/src/libsystemd/sd-path/sd-path.c -@@ -363,15 +363,15 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { - return 0; - - case SD_PATH_SYSCTL: -- *ret = PREFIX_NOSLASH "/lib/sysctl.d"; -+ *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; - return 0; - - case SD_PATH_BINFMT: -- *ret = PREFIX_NOSLASH "/lib/binfmt.d"; -+ *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; - return 0; - - case SD_PATH_MODULES_LOAD: -- *ret = PREFIX_NOSLASH "/lib/modules-load.d"; -+ *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; - return 0; - - case SD_PATH_CATALOG: -@@ -531,6 +531,9 @@ static int get_search(uint64_t type, char ***ret) { - true, - ARRAY_SBIN_BIN("/usr/local/"), - ARRAY_SBIN_BIN("/usr/"), -+#if HAVE_SPLIT_USR -+ ARRAY_SBIN_BIN("/"), -+#endif - NULL); - - case SD_PATH_SEARCH_LIBRARY_PRIVATE: -@@ -541,6 +544,9 @@ static int get_search(uint64_t type, char ***ret) { - false, - "/usr/local/lib", - "/usr/lib", -+#if HAVE_SPLIT_USR -+ "/lib", -+#endif - NULL); - - case SD_PATH_SEARCH_LIBRARY_ARCH: -@@ -550,6 +556,9 @@ static int get_search(uint64_t type, char ***ret) { - "LD_LIBRARY_PATH", - true, - LIBDIR, -+#if HAVE_SPLIT_USR -+ ROOTLIBDIR, -+#endif - NULL); - - case SD_PATH_SEARCH_SHARED: -diff --git a/src/portable/portable.c b/src/portable/portable.c -index 53418c417b..d56f366818 100644 ---- a/src/portable/portable.c -+++ b/src/portable/portable.c -@@ -1664,7 +1664,7 @@ int portable_attach( - strempty(extensions_joined)); - } - -- r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, /* flags= */ 0, NULL); -+ r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, NULL); - if (r < 0) - return r; - -@@ -1854,7 +1854,7 @@ int portable_detach( - - assert(name_or_path); - -- r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, /* flags= */ 0, NULL); -+ r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, NULL); - if (r < 0) - return r; - -@@ -2040,7 +2040,7 @@ static int portable_get_state_internal( - assert(name_or_path); - assert(ret); - -- r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, /* flags= */ 0, NULL); -+ r = lookup_paths_init(&paths, RUNTIME_SCOPE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, NULL); - if (r < 0) - return r; - -diff --git a/src/shared/install.c b/src/shared/install.c -index 53566b7eef..50e8992744 100644 ---- a/src/shared/install.c -+++ b/src/shared/install.c -@@ -266,6 +266,11 @@ static int path_is_vendor_or_generator(const LookupPaths *lp, const char *path) - if (path_startswith(rpath, "/usr")) - return true; - -+#if HAVE_SPLIT_USR -+ if (path_startswith(rpath, "/lib")) -+ return true; -+#endif -+ - if (path_is_generator(lp, rpath)) - return true; - -diff --git a/src/shared/kbd-util.h b/src/shared/kbd-util.h -index a8e365e3ca..e58b2ef8e3 100644 ---- a/src/shared/kbd-util.h -+++ b/src/shared/kbd-util.h -@@ -5,5 +5,6 @@ - - int keymap_directories(char ***ret); - int get_keymaps(char ***ret); -+ - bool keymap_is_valid(const char *name); - int keymap_exists(const char *name); -diff --git a/src/systemctl/meson.build b/src/systemctl/meson.build -index 88f73bf502..202a94c583 100644 ---- a/src/systemctl/meson.build -+++ b/src/systemctl/meson.build -@@ -72,9 +72,13 @@ executables += [ - }, - ] - -+install_emptydir(sbindir) -+install_emptydir(rootsbindir) - foreach alias : (['halt', 'poweroff', 'reboot', 'shutdown'] + - (conf.get('HAVE_SYSV_COMPAT') == 1 ? ['runlevel', 'telinit'] : [])) -- install_emptydir(sbindir) -+ meson.add_install_script(sh, '-c', -+ ln_s.format(bindir / 'systemctl', -+ rootsbindir / alias)) - meson.add_install_script(sh, '-c', - ln_s.format(bindir / 'systemctl', - sbindir / alias)) -diff --git a/src/test/test-manager.c b/src/test/test-manager.c -new file mode 100644 -index 0000000000..89f9277b28 ---- /dev/null -+++ b/src/test/test-manager.c -@@ -0,0 +1,29 @@ -+/* SPDX-License-Identifier: LGPL-2.1-or-later */ -+ -+#include "manager.h" -+#include "tests.h" -+ -+TEST(manager_taint_string) { -+ Manager m = {}; -+ -+ _cleanup_free_ char *a = manager_taint_string(&m); -+ assert_se(a); -+ log_debug("taint string w/o split-usr: '%s'", a); -+ /* split-usr is the only one that is cached in Manager, so we know it's not present. -+ * The others are queried dynamically, so we'd need to duplicate the logic here -+ * to test for them. Let's do just one. */ -+ assert_se(!strstr(a, "split-usr")); -+ -+ if (cg_all_unified() == 0) -+ assert_se(strstr(a, "cgroupsv1")); -+ else -+ assert_se(!strstr(a, "cgroupsv1")); -+ -+ m.taint_usr = true; -+ _cleanup_free_ char *b = manager_taint_string(&m); -+ assert_se(b); -+ log_debug("taint string w/ split-usr: '%s'", b); -+ assert_se(strstr(b, "split-usr")); -+} -+ -+DEFINE_TEST_MAIN(LOG_DEBUG); -diff --git a/test/fuzz/fuzz-catalog/systemd.pl.catalog b/test/fuzz/fuzz-catalog/systemd.pl.catalog -index 99a62ce5e0..a064813fab 100644 ---- a/test/fuzz/fuzz-catalog/systemd.pl.catalog -+++ b/test/fuzz/fuzz-catalog/systemd.pl.catalog -@@ -376,6 +376,8 @@ Defined-By: systemd - Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel - - Możliwe są następujące „etykiety”: -+• „split-usr” — /usr jest oddzielnym systemem plików, który nie był -+ zamontowany w czasie uruchomienia systemd, - • „cgroups-missing” — jądro zostało skompilowane bez obsługi cgroups - lub dostęp do oczekiwanych plików interfejsu jest ograniczony, - • „var-run-bad” — /var/run nie jest dowiązaniem symbolicznym do /run, --- -GitLab - - -From 775c4e620b23ea37d11fce5eba9cdaebb7d3c33c Mon Sep 17 00:00:00 2001 -From: jane400 -Date: Sun, 29 Sep 2024 00:17:05 +0200 -Subject: [PATCH 2/2] ci: adjust to split-{usr,bin} downstream - ---- - .ci/APKBUILD | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/.ci/APKBUILD b/.ci/APKBUILD -index 6187b94c8a..3a97538d46 100644 ---- a/.ci/APKBUILD -+++ b/.ci/APKBUILD -@@ -73,6 +73,8 @@ export CFLAGS="$CFLAGS -D__UAPI_DEF_ETHHDR=0" # see src/basic/linux/if_ether.h - build() { - abuild-meson \ - -Dmode=release \ -+ -Dsplit-bin=true \ -+ -Dsplit-usr=true \ - \ - -Dkmod-path=/bin/kmod \ - -Dsulogin-path=/sbin/sulogin \ --- -GitLab - diff --git a/extra-repos/systemd/systemd/APKBUILD b/extra-repos/systemd/systemd/APKBUILD index e629b4cd3..dece596e0 100644 --- a/extra-repos/systemd/systemd/APKBUILD +++ b/extra-repos/systemd/systemd/APKBUILD @@ -3,9 +3,10 @@ # Co-Maintainer: jane400 pkgname=systemd -pkgver=256.5 -_pkgver="musl-v${pkgver//_/-}" -pkgrel=6 +# currently tracking git MR +pkgver=256.11 +_pkgver="musl-v${pkgver//_/-}-split-usr" +pkgrel=0 pkgdesc="System and service manager" url="https://github.com/systemd/systemd" arch="all !ppc64le !s390x" # blocked by pmboostrap not supporting @@ -13,6 +14,7 @@ license="MIT AND GPL-2.0-only AND LGPL-2.1-or-later" options="pmb:strict !check" # few tests fail, need to debug. We use alpine dbus for building, systemd-dbus for runtime makedepends=" + acl acl-dev audit-dev bash @@ -118,8 +120,7 @@ subpackages=" " source=" - https://gitlab.com/postmarketOS/systemd/-/archive/$_pkgver/systemd-$_pkgver.tar.gz - 4.patch + https://gitlab.postmarketos.org/postmarketOS/systemd/-/archive/$_pkgver/systemd-$_pkgver.tar.gz systemd-apk-macros.sh wired.network " @@ -157,11 +158,12 @@ build() { -Dkmod-path=/bin/kmod \ -Dsulogin-path=/sbin/sulogin \ \ + -Dwheel-group=true \ -Ddebug-shell=/bin/ash \ -Dpolkit=enabled \ -Dpam=enabled \ -Dpamlibdir=/usr/lib/security \ - -Dpamconfdir=/etc/pam.d \ + -Dpamconfdir=/usr/lib/pam.d \ \ -Dbootloader=disabled \ -Dutmp=false \ @@ -223,6 +225,11 @@ package() { install -Dm755 "$srcdir"/systemd-apk-macros.sh -t \ "$pkgdir"/usr/lib/systemd + + + # initramfs hardcodes /sbin/init + mkdir -p "$pkgdir"/sbin + ln -sf "../usr/lib/systemd/systemd" "$pkgdir"/sbin/init } udevd() { @@ -233,7 +240,6 @@ udevd() { provides="eudev udev eudev-libs" provider_priority=100 - amove usr/bin/udevadm amove etc/udev amove usr/lib/libudev* amove usr/lib/systemd/system/initrd-udevadm-cleanup-db.service @@ -243,14 +249,11 @@ udevd() { amove usr/lib/systemd/systemd-udevd amove usr/lib/udev + # Install symlinks to be more like eudev + # FIXME: systemd-udevd gets placed at /usr/bin/udevadm mkdir -p "$subpkgdir"/sbin "$subpkgdir"/bin - - # Install a symlink to /usr/bin to be compatible with eudev - ln -sf /usr/lib/systemd/systemd-udevd "$subpkgdir"/usr/bin/udevd - # Install split-user symlinks - ln -sf /usr/lib/systemd/systemd-udevd "$subpkgdir"/sbin/udevd - ln -sf /usr/lib/systemd/systemd-udevd "$subpkgdir"/bin/udevadm - ln -sf /usr/lib/systemd/systemd-udevd "$subpkgdir"/sbin/udevadm + ln -sf ../usr/lib/systemd/systemd-udevd "$subpkgdir"/sbin/udevd + ln -sf ../usr/lib/systemd/systemd-udevd "$subpkgdir"/bin/udevadm } udevd_bcomp() { @@ -418,8 +421,7 @@ dev() { } sha512sums=" -5d1f4625b75b6637afa71519bc7048fe899b4f5785ce26316524ac78941e43cf6ba83391dae68497cfa4f8aaa35d953ec0c04ee581307ffc7007cf4b9d9c4454 systemd-musl-v256.5.tar.gz -e8ced12eb67a261a5c2788487053451c352e0b2ebe3d72aaf84a3011dc92981affe4f036f693260fc8ee4a49f02de4522fd022e5783dba939023f13891ab228e 4.patch +3cd75d5ba29a3994230ecbe16ea106d4fe05d7d76e7cd9b9a6a63177f09d8c362c055a1fea49e6c9a10a949afc07a6c75fe75dad2bd302d94e41a81f8ddb2a15 systemd-musl-v256.11-split-usr.tar.gz 2f9ec875de67fc4bb401bebea88653cd34c22787a26a8122233fbb761bfbf190be72cfa0c26a433c30d703ee1e10489787d75492f0e1a76cbd5f6601e7e23d49 systemd-apk-macros.sh 81c897fed8a3fbfb67ec591b2398a5d65e4af1b3ef379376c157c98d71f085b707f8ebc896d5571a94f99f8fc84fd6b43e3b879ca9b0d57fc6c4596034c7a777 wired.network "