From 98900dacff41ff2d2cd6a785e82ea4ed92877532 Mon Sep 17 00:00:00 2001 From: Hadi Chokr Date: Wed, 25 Feb 2026 21:36:58 +0100 Subject: [PATCH] Dont enable the sysext in the live session. --- mkosi.extra/usr/bin/set-up-systemd-extension | 2 +- .../systemd/system-preset/50-kde-linux.preset | 1 + .../lib/systemd/system/sysext-trigger.service | 32 +++++++++++++++++++ .../usr/lib/tmpfiles.d/sysext-trigger.conf | 6 ---- mkosi.extra/usr/lib/tmpfiles.d/usr-local.conf | 7 ---- 5 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 mkosi.extra/usr/lib/systemd/system/sysext-trigger.service delete mode 100644 mkosi.extra/usr/lib/tmpfiles.d/sysext-trigger.conf diff --git a/mkosi.extra/usr/bin/set-up-systemd-extension b/mkosi.extra/usr/bin/set-up-systemd-extension index 99ba55e..32c0702 100755 --- a/mkosi.extra/usr/bin/set-up-systemd-extension +++ b/mkosi.extra/usr/bin/set-up-systemd-extension @@ -33,7 +33,7 @@ else sudo chattr +i "${SYSEXT_LOCATION}/extension-release.kde" # Turn it on! - sudo systemd-sysext merge + sudo systemd-sysext refresh || sudo systemd-sysext merge echo "Finished setting up extension! When you put files in ${SYSEXT_BASE_LOCATION} and run 'sudo systemd-sysext refresh', they will appear in /usr/. See https://community.kde.org/KDE_Linux/Add_or_override_content_in_/usr for more information." fi diff --git a/mkosi.extra/usr/lib/systemd/system-preset/50-kde-linux.preset b/mkosi.extra/usr/lib/systemd/system-preset/50-kde-linux.preset index 619d32d..a050f79 100644 --- a/mkosi.extra/usr/lib/systemd/system-preset/50-kde-linux.preset +++ b/mkosi.extra/usr/lib/systemd/system-preset/50-kde-linux.preset @@ -47,6 +47,7 @@ enable kde-linux-powertop.service enable kde-linux-volatile-var-lib-flatpak.service enable kde-linux-sysupdated.socket enable plasma-setup-live-system.service +enable sysext-trigger.service # KMSCON enable kmsconvt@ diff --git a/mkosi.extra/usr/lib/systemd/system/sysext-trigger.service b/mkosi.extra/usr/lib/systemd/system/sysext-trigger.service new file mode 100644 index 0000000..339f9b4 --- /dev/null +++ b/mkosi.extra/usr/lib/systemd/system/sysext-trigger.service @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL +# SPDX-FileCopyrightText: 2026 Hadi Chokr + +[Unit] +Description=Prepare sysext trigger and routing (installed system only) +DefaultDependencies=no +After=local-fs.target +Before=systemd-sysext.service +ConditionPathExists=!/live/ +ConditionKernelCommandLine=!kde-linux.live=1 + +[Service] +Type=oneshot + +# --- Ensure base dirs exist --- +ExecStart=/usr/bin/mkdir -p /var/lib/extensions +ExecStart=/usr/bin/mkdir -p /var/lib/extensions.mutable/usr +ExecStart=/usr/bin/mkdir -p /var/lib/extensions.mutable/.systemd-usr-workdir + +# --- Ensure correct permissions --- +ExecStart=/usr/bin/chmod 0755 /var/lib/extensions.mutable +ExecStart=/usr/bin/chmod 0755 /var/lib/extensions.mutable/usr +ExecStart=/usr/bin/chmod 0700 /var/lib/extensions.mutable/.systemd-usr-workdir + +# --- Route /usr/local → /opt/local --- +ExecStart=/usr/bin/ln -sfn /opt/local /var/lib/extensions.mutable/usr/local + +# --- Trigger sysext normally --- +ExecStart=/usr/bin/touch /var/lib/extensions/auto-enable + +[Install] +WantedBy=sysinit.target diff --git a/mkosi.extra/usr/lib/tmpfiles.d/sysext-trigger.conf b/mkosi.extra/usr/lib/tmpfiles.d/sysext-trigger.conf deleted file mode 100644 index 42d2ceb..0000000 --- a/mkosi.extra/usr/lib/tmpfiles.d/sysext-trigger.conf +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL -# SPDX-FileCopyrightText: 2026 Hadi Chokr - -# Will trigger the systemd-sysext.service Condition to merge Extensions -# TODO: Remove when https://github.com/systemd/systemd/issues/40827 is fixed -f /etc/extensions/enable-sysext 0644 root root - diff --git a/mkosi.extra/usr/lib/tmpfiles.d/usr-local.conf b/mkosi.extra/usr/lib/tmpfiles.d/usr-local.conf index 92dbaef..1c31dcc 100644 --- a/mkosi.extra/usr/lib/tmpfiles.d/usr-local.conf +++ b/mkosi.extra/usr/lib/tmpfiles.d/usr-local.conf @@ -19,10 +19,3 @@ d /opt/local/src 0755 root root - d /opt/local/etc/xdg 0755 root root - d /opt/local/lib/pkgconfig 0755 root root - d /opt/local/share/pkgconfig 0755 root root - - -# sysext-routing -d /var/lib/extensions.mutable 0755 root root - -d /var/lib/extensions.mutable/usr 0755 root root - - -# Route /usr/local → /opt/local -L /var/lib/extensions.mutable/usr/local - - - - /opt/local