Build native .rpm (Fedora) and .deb (Debian/Ubuntu) packages of LumenShell.
Both drive the same meson install, so a built package installs every
lumen-* binary plus the session glue (start-lumenshell, the
wayland-sessions entry, and the Wayfire autostart snippet) — enough for a
display manager to list and launch a "LumenShell" session.
packaging/
├── make-tarball.sh # source tarball (version read from meson.build)
├── build-rpm.sh # → build/rpmbuild/RPMS/…
├── build-deb.sh # → build/deb/*.deb
├── rpm/lumenshell.spec
└── debian/{control,rules,changelog,copyright,source/format}
All output lands under build/ (git-ignored). Nothing touches system dirs.
sudo dnf install rpm-build
sudo dnf builddep packaging/rpm/lumenshell.spec
packaging/build-rpm.shThe C++ Wayfire plugins (desktop-peek, curtain-peek, slide-peek, panel-push,
startup-zoom) are off by default — they need wayfire/wlroots dev
headers that aren't always packaged. Enable them with:
packaging/build-rpm.sh --with wayfire_pluginslumen-lockscreen + lumen-lockctl are likewise off by default — they
need gtk4-session-lock-0 (not packaged on stock Fedora — build it from
https://github.com/wmww/gtk4-session-lock) plus pam-devel. Once those are
available, enable the lock screen with:
packaging/build-rpm.sh --with lockscreenThe %meson macro forces --auto-features=enabled, so the spec passes
-Dwith_lockscreen explicitly; without --with lockscreen it is disabled
rather than auto-detected, keeping the default build reproducible.
sudo apt-get install dpkg-dev debhelper
# install Build-Depends from debian/control, then:
packaging/build-deb.shThe Wayfire C++ plugins are disabled in the Debian build (debian/rules); the
Vala panel-peek (Win+D from the panel) stays on.
The version comes from version: in the top-level meson.build. To cut a new
release, bump it there and add a matching entry to both rpm/lumenshell.spec
%changelog and debian/changelog.
lumen-lockscreen/lumen-lockctl build but are gated behind
--with lockscreen (see above) because their gtk4-session-lock-0 dependency
is not packaged on stock Fedora. lumen-polkit-agent is likewise gated behind
--with polkit_agent: its meson option is auto, and %meson injects
--auto-features=enabled, so leaving it unset would build a binary that
%files does not package and fail the rpmbuild.