Add Fedora RPM packaging (spec + systemd unit)#13
Conversation
|
Thanks @joske for pursuing this. I've had enough of Wayland mafia claiming basic features like multi-user headless terminal servers and Compiz are obsolete and insecure. I used to do RPM packaging and COPR build automation for a few orgs and this is super helpful for me. Feel free to take it or I'll keep it outside the project if needed. |
Arch-neutral spec suitable for COPR multi-arch builds. Builds both the standalone DRM/KMS server (yserver) and the nested server (ynest). - packaging/yserver.spec: BuildRequires/Requires mapped from the CI's Debian deps to Fedora package names (glslc for build.rs shaders, libseat/xshmfence/xkbcommon/input/fontconfig/freetype/systemd-devel); vulkan-loader required explicitly since ash dlopens libvulkan at runtime. - packaging/yserver@.service: systemd template unit for standalone / kiosk use on a VT, with a session launcher mirroring `just startx`. - packaging/yserver-session: session launcher invoked by the unit. - packaging/yserver.sysconfig: /etc/sysconfig/yserver env config. - packaging/lightdm-99-yserver.conf: example lightdm drop-in (the documented graphical-login launch path). Note: spec uses License: MIT to match the LICENSE file; the workspace Cargo.toml currently declares GPL-3.0-only (mismatch to reconcile upstream). COPR needs internet access enabled for cargo to fetch crates (documented in the spec header, with a vendored --offline alternative). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The workspace manifest said GPL-3.0-only while the repository ships an MIT LICENSE. MIT is the intended license. Flagged by the Fedora packaging contribution (PR #13). Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
|
@joske If you don't want distribution specific packaging, maybe using cargo-deb and cargo-rpm are a suitable middle ground, as used here: |
Understandable. At least it's here now. Is it OK if I host these RPMs in my public repos for Fedora, *EL, Amazon Linux, Oracle Linux, etc? |
you don't need permission |
|
@jboero No worries, this is open source. |
Hi @joske! 👋 Adds Fedora/RPM packaging under
packaging/so yserver can be built and distributed as RPMs (and on COPR for every arch). Everything lives in its own directory and changes nothing in the build or source tree.What's here
packaging/yserver.spec— builds both binaries (yserverstandalone DRM/KMS +ynestnested). BuildRequires/Requires are mapped from the CI's Debian deps to arch-neutral Fedora package names, so COPR can build every chroot/arch with no%ifarchguards:glslcfor thebuild.rsGLSL→SPIR-V steplibseat/libxshmfence/libxkbcommon/libinput/fontconfig/freetype/systemd(-devel)vulkan-loaderrequired explicitly becauseashdlopen()slibvulkan.so.1at runtime (invisible to RPM's ELF dep generator);mesa-vulkan-driversas a Recommends.packaging/yserver@.service+yserver-session— a systemd template unit for standalone/kiosk use on a VT, with a launcher that mirrorsjust startx(waits for the X socket, runs the session, tears down on exit).packaging/yserver.sysconfig—/etc/sysconfig/yserverto set the session command / extra args.packaging/lightdm-99-yserver.conf— example lightdm drop-in (the documented graphical-login path from the README).Notes for you
License: MITto match the shippedLICENSEfile. Heads-up that the workspaceCargo.tomlcurrently declaresGPL-3.0-only— worth reconciling one way or the other.cargofetches crates during%build, so the COPR project needs "Enable internet access during builds" ticked. The spec header documents this and sketches acargo vendor+--offlinealternative if you'd prefer hermetic builds.rpmspec -P) and builds an SRPM cleanly. A fullrpmbuild -bawas not run to completion here (it compiles the whole tree), so a real COPR/mock build is the next checkpoint.Happy to adjust naming, paths, or split per your preferences — thanks for building yserver! 🙏
🤖 Generated with Claude Code