[neon/snap-packaging/plasma-core-desktop] /: Let go of symlink aliases and symlinks to /dev/null
Kevin Ottens
null at kde.org
Wed Feb 26 10:19:46 GMT 2025
Git commit 26c0abbe8606838d27789963df0bc2b1c4c1371e by Kevin Ottens.
Committed on 26/02/2025 at 10:18.
Pushed by ervin into branch 'master'.
Let go of symlink aliases and symlinks to /dev/null
Instead we adjust the service names in the targets directly and we
create empty files instead of symlinks to /dev/null
M +2 -2 hook-tests/100-no-systemd-service-files.test
M +9 -9 hooks/200-replace-systemd-service-files.sh
M +1 -1 hooks/250-workaround-base-snap-services.sh
https://invent.kde.org/neon/snap-packaging/plasma-core-desktop/-/commit/26c0abbe8606838d27789963df0bc2b1c4c1371e
diff --git a/hook-tests/100-no-systemd-service-files.test b/hook-tests/100-no-systemd-service-files.test
index 3033a4a..c2bccf0 100755
--- a/hook-tests/100-no-systemd-service-files.test
+++ b/hook-tests/100-no-systemd-service-files.test
@@ -10,12 +10,12 @@ if [ ! -d $SYSTEMD_USER_DIR ]; then
fi
# We allow just a couple we know to be innocuous because they just make a qdbus or dbus-send call
-SERVICE_FILES=`find $SYSTEMD_USER_DIR -maxdepth 1 -type f -name "*.service" | \
+SERVICE_FILES=`find $SYSTEMD_USER_DIR -maxdepth 1 -type f,l -size +0c -name "*.service" | \
grep -v -E "(plasma-ksplash-ready|plasma-kcminit-phase1|plasma-restoresession)" | \
cat`
if [ -n "$SERVICE_FILES" ]; then
- echo "Found service regular files which need to be removed:"
+ echo "Found non-empty service files which need to be removed:"
echo $SERVICE_FILES
exit 1
fi
diff --git a/hooks/200-replace-systemd-service-files.sh b/hooks/200-replace-systemd-service-files.sh
index 4efc183..c7bdf08 100755
--- a/hooks/200-replace-systemd-service-files.sh
+++ b/hooks/200-replace-systemd-service-files.sh
@@ -31,9 +31,9 @@ done
# Services launched at session startup
rm "usr/lib/systemd/user/plasma-kwin_wayland.service"
-ln -s "/etc/systemd/user/snap.plasma-desktop-session.plasma-kwin-wayland.service" "usr/lib/systemd/user/plasma-kwin_wayland.service"
-mkdir "usr/lib/systemd/user/plasma-kwin_wayland.service.d"
-cat >"usr/lib/systemd/user/plasma-kwin_wayland.service.d/override.conf"<<EOF
+sed -i -E -e "s,plasma-kwin_wayland.service,snap.plasma-desktop-session.plasma-kwin-wayland.service," usr/lib/systemd/user/*.target
+mkdir "usr/lib/systemd/user/snap.plasma-desktop-session.plasma-kwin-wayland.service.d"
+cat >"usr/lib/systemd/user/snap.plasma-desktop-session.plasma-kwin-wayland.service.d/override.conf"<<EOF
[Unit]
PartOf=graphical-session.target
EOF
@@ -53,9 +53,9 @@ snapped_services=(
)
for service in "${snapped_services[@]}"; do
rm "usr/lib/systemd/user/$service.service"
- ln -s "/etc/systemd/user/snap.plasma-desktop-session.$service.service" "usr/lib/systemd/user/$service.service"
- mkdir "usr/lib/systemd/user/$service.service.d"
- cat >"usr/lib/systemd/user/$service.service.d/override.conf"<<EOF
+ sed -i -E -e "s,$service.service,snap.plasma-desktop-session.$service.service," usr/lib/systemd/user/*.target
+ mkdir "usr/lib/systemd/user/snap.plasma-desktop-session.$service.service.d"
+ cat >"usr/lib/systemd/user/snap.plasma-desktop-session.$service.service.d/override.conf"<<EOF
[Unit]
PartOf=graphical-session.target
EOF
@@ -66,9 +66,9 @@ content_provided_services=(
plasma-kded6
)
for service in "${content_provided_services[@]}"; do
- ln -s "/etc/systemd/user/snap.plasma-desktop-session.$service.service" "usr/lib/systemd/user/$service.service"
- mkdir "usr/lib/systemd/user/$service.service.d"
- cat >"usr/lib/systemd/user/$service.service.d/override.conf"<<EOF
+ sed -i -E -e "s,$service.service,snap.plasma-desktop-session.$service.service," usr/lib/systemd/user/*.target
+ mkdir "usr/lib/systemd/user/snap.plasma-desktop-session.$service.service.d"
+ cat >"usr/lib/systemd/user/snap.plasma-desktop-session.$service.service.d/override.conf"<<EOF
[Unit]
PartOf=graphical-session.target
EOF
diff --git a/hooks/250-workaround-base-snap-services.sh b/hooks/250-workaround-base-snap-services.sh
index 5142f1a..d80f9cc 100755
--- a/hooks/250-workaround-base-snap-services.sh
+++ b/hooks/250-workaround-base-snap-services.sh
@@ -24,7 +24,7 @@ disabled_units=(
snap.ubuntu-desktop-session.xdg-desktop-portal-gnome.service
)
for unit in "${disabled_units[@]}"; do
- ln -sf /dev/null "usr/lib/systemd/user/$unit"
+ touch "usr/lib/systemd/user/$unit"
done
# Make sure we don't pollute xdg-desktop-portal environment
More information about the Neon-commits
mailing list