Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Packaging

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.

RPM (Fedora)

sudo dnf install rpm-build
sudo dnf builddep packaging/rpm/lumenshell.spec
packaging/build-rpm.sh

The 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_plugins

lumen-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 lockscreen

The %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.

DEB (Debian/Ubuntu)

sudo apt-get install dpkg-dev debhelper
# install Build-Depends from debian/control, then:
packaging/build-deb.sh

The Wayfire C++ plugins are disabled in the Debian build (debian/rules); the Vala panel-peek (Win+D from the panel) stays on.

Versioning

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.

Not yet packaged

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.