build: make the classroom desktop something a .deb installs
Building the package found two things reading the tree did not. dpkg refused it outright: plasma-workspace already owns /etc/xdg/plasmanotifyrc and friends, and two packages cannot own one path. The room's settings move to a directory of their own with /etc/environment.d putting it in front of /etc/xdg, which is KConfig's own cascade rather than a file fight. The postinst then failed on a chmod for a command that no longer exists. It now walks what the package installed instead of naming files, removes the login shell that used to start sway on tty1, and enables SDDM and the audio service. Verified by installing the built package on a fresh machine and starting the session from it: restrictions in force, palette applied, audio service enabled and running, panel supervision unconditional. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4c3f19d599
commit
f7d5aecd6c
@@ -92,6 +92,20 @@ check("restart is unconditional", "Restart=always" in supervision)
|
||||
check("the burst limit is lifted", "StartLimitIntervalSec=0" in supervision)
|
||||
check("the drop-in is packaged", "plasma-plasmashell.service.d" in build)
|
||||
|
||||
print()
|
||||
print("4b2. the session settings do not fight another package")
|
||||
# plasma-workspace owns /etc/xdg/kdeglobals and friends. dpkg refused the
|
||||
# package when the classroom tried to own them too, so the room's copies
|
||||
# live in a directory of their own, in front of /etc/xdg.
|
||||
check("settings install to the classroom's own directory",
|
||||
"$STAGE/etc/ekklesia-classroom/xdg/" in build)
|
||||
check("nothing is installed into /etc/xdg", "$STAGE/etc/xdg/" not in build)
|
||||
check("and that directory is searched first",
|
||||
"XDG_CONFIG_DIRS=/etc/ekklesia-classroom/xdg:/etc/xdg" in
|
||||
(root / "config/environment/90-ekklesia-classroom.conf").read_text())
|
||||
check("the environment file is packaged",
|
||||
"/etc/environment.d/90-ekklesia-classroom.conf" in build)
|
||||
|
||||
print()
|
||||
print("4c. the teacher cannot reach a command line")
|
||||
for restriction in ("run_command=false", "shell_access=false",
|
||||
|
||||
Reference in New Issue
Block a user