π
Goals
- The KDE operating system
- Quality experience
- Keeping security in mind
- No packaging knowledge
- Focus on modern technologies
- Useful to our users
- Useful to our hardware partners
- Useful to our developers
systemd-sysext
systemd-sysext allows us to overlay developer content on top of /usr without impacting the base system.
Setup
# create directories mkdir -p ~/kde/usr/lib/extension-release.d/ # create an extension-release file cp /usr/lib/os-release ~/kde/usr/lib/extension-release.d/extension-release.kde # make the ID ignored so updates don't break the extension sed -i s%^ID=.*%ID=_any%g ~/kde/usr/lib/extension-release.d/extension-release.kde # owned by root so it can't be removed sudo chown root:root ~/kde/usr/lib/extension-release.d/extension-release.kde # enable the extension sudo mkdir /var/lib/extensions/ sudo ln -s $HOME/kde /var/lib/extensions/kde sudo systemd-sysext merge sudo systemd-sysext
Use
Use DESTDIR=~/kde to install stuff and then restart systemd-sysext. Beware that when changing polkit/dbus stuff you also want to restart those services as they don't necessarily pick up changes.
DESTDIR=~/kde ninja install && sudo systemctl restart systemd-sysext.service
Ideas
- Automatic QA (openqa? Selenium? quicktest?)
- Human QA tracking (test case management of some sort)
- Health reporting into Sentry to identify bad releases
- Support sending non-KDE crashes to Sentry
- Better kde-builder dependency definitions
- kde-builder to build release tags
- Explore systemd-homed
- Secure Boot
- ARM/RISC-V images?