mirror of
https://github.com/KDE/kde-linux.git
synced 2026-02-14 09:52:11 -05:00
try to overlay flatpak in live session
this is a bit complicated unfortunately
This commit is contained in:
29
mkosi.extra/usr/bin/_kde-linux-volatile-flatpak
Executable file
29
mkosi.extra/usr/bin/_kde-linux-volatile-flatpak
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
# SPDX-FileCopyrightText: 2024 Harald Sitter <sitter@kde.org>
|
||||
|
||||
set -eux
|
||||
|
||||
if ! grep "kdeos.live=1" /proc/cmdline; then
|
||||
echo "kdeos.live=1 not in cmdline"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$(readlink --canonicalize /dev/disk/by-label/KDEOSLive)" != "$(readlink --canonicalize /dev/gpt-auto-root)" ]; then
|
||||
echo "gpt-auto-root is not KDEOSLive"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Replicate what systemd-volatile-root does. Unfortunately we can't just use the volatile root because you can't
|
||||
# overlay with an overlay. This means we potentialy claim a lot of RAM (25% for root + 15% for flatpaks).
|
||||
# Not ideal but there's no way I can see to get access to the volatile-sysroot (it gets unmounted and removed
|
||||
# before systemd-volatile-root exits).
|
||||
|
||||
mkdir --mode 0700 /run/kde-linux/
|
||||
mkdir --mode 0700 /run/kde-linux/overlay-var-lib-flatpak
|
||||
mount -t tmpfs tmpfs /run/kde-linux/overlay-var-lib-flatpak -o mode=0755,size=15%,nr_inodes=1m
|
||||
mkdir --mode 0755 /run/kde-linux/overlay-var-lib-flatpak/upper
|
||||
mkdir --mode 0755 /run/kde-linux/overlay-var-lib-flatpak/work
|
||||
|
||||
mount -t overlay overlay /var/lib/flatpak \
|
||||
-o lowerdir=/var/lib/flatpak,upperdir=/run/kde-linux/overlay-var-lib-flatpak/upper,workdir=/run/kde-linux/overlay-var-lib-flatpak/work
|
||||
@@ -44,7 +44,7 @@ cat <<- EOF > "$normal_dir/var-lib-flatpak.mount"
|
||||
# Generated by $(basename "$0")
|
||||
[Unit]
|
||||
Description=Mount unit for /var/lib/flatpak
|
||||
Before=systemd-volatile-root.service
|
||||
Before=kde-linux-volatile-var-lib-flatpak.service
|
||||
|
||||
[Mount]
|
||||
What=/dev/disk/by-label/KDEOSLive
|
||||
|
||||
@@ -13,6 +13,7 @@ enable cups.service
|
||||
|
||||
enable kde-linux-btrfs.service
|
||||
enable kde-linux-live-setup.service
|
||||
enable kde-linux-volatile-var-lib-flatpak.service
|
||||
enable plasma-setup-live-system.service
|
||||
enable kdeos-overlay.service
|
||||
enable var-lib-snapd-snap.mount
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
# SPDX-FileCopyrightText: 2024 Harald Sitter <sitter@kde.org>
|
||||
|
||||
[Unit]
|
||||
Description=Volatile /var/lib/flatpak File Systems
|
||||
Before=display-manager.service
|
||||
After=var.mount
|
||||
ConditionKernelCommandLine=kdeos.live=1
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/_kde-linux-volatile-flatpak
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user