Repository navigation
build: system-wide install target and Arch Linux PKGBUILDs - #58
Conversation
a32b0d6 to
4095228
Compare
|
Thank you so much for this PR and the great work on the top-level Makefile and packaging setup, Scyllinice! Having a standard make install and a proper Arch packaging structure is a huge step forward for the project. Before merging, I wanted to coordinate the AUR release with you. As the creator and upstream maintainer of EverLive, I would prefer to submit the official package to the AUR under my own account and remain responsible for the official distribution. I'd absolutely like to credit you for the packaging work. I will list myself as the Maintainer and you as the Contributor in the PKGBUILD header, with the possibility of adding you as a co-maintainer on the AUR as well. Since new AUR account registrations are currently paused, my plan is to merge the packaging files into dev now and handle the official AUR submission myself once registration becomes available again. Would you be comfortable with this arrangement? If so, I'm happy to merge this into dev right away! |
|
Absolutely fine with that. Please do. I just wanted to fix a few things that I ran into while I was setting this up. Not having working drivers is a lot of the reason why I've been keeping myself off of Linux. Finding this project made Linux plausible for me again, so I had to contribute somehow :) I don't need to be a maintainer unless you need a second pair of hands if you get too busy. My plan wasn't to put more work on you either way. I would have been totally fine if you decided you didn't want to package this since it's more work to maintain packages. |
Add top-level Makefile with system-wide install target (PREFIX=/usr, DESTDIR support) and Arch Linux PKGBUILDs under packaging/arch/. - Top-level Makefile integrates libeverlive-core, GC573 and GC570D engines, desktop launcher, HiColor icons, udev rules, modprobe configs, memlock limits, and PipeWire capture sink with clean uninstall support. - Arch Linux PKGBUILDs for everlive and everlive-git with makepkg compatibility and check() running the full test suite. - Preserve mandatory compiler flags (-pthread, -D_GNU_SOURCE, -fPIC) when distribution CFLAGS and LDFLAGS are provided. - play.sh detects engine binaries both in runtime tree and system PATH, and skips compilation checks when no Makefiles are present. - Staged install and uninstall verification in CI workflow. Co-authored-by: Everlite <everlite@users.noreply.github.com>
4095228 to
4cd4ba1
Compare
|
Thank you so much for putting this together and for the kind words! Having clean distro packaging for Arch/AUR makes using EverLive so much easier. We have rebased this PR directly on top of the freshly merged
All CI checks are green. Merging this into |
System-wide install target and Arch Linux PKGBUILDs
Why
Today EverLive runs from a git checkout, and
install.shwrites into/etc,/usr/shareand~/.local. The package manager doesn't track any of those files, the desktop entry points into the checkout, and removal depends onuninstall.shstaying in sync. This PR adds a standardmake installand Arch packaging, so EverLive can be installed and removed with pacman.install.shis unchanged and still works the same way.What
Makefile:make install DESTDIR=… PREFIX=/usr$(PREFIX)/lib/everlivewith the repo's relative layout, soplay.shand the viewer find the engine binaries without code changes. Adds aneverlivelauncher in$(BINDIR).vfio-pcimodprobe/modules-load config, memlock limits, the PipeWire capture sink, the desktop entry and icons, and the GC570D sleep hook and user service, each in its standard/usr/lib,/usr/shareor/etclocation. GC570D helper paths are rewritten from/usr/local.play.shloads it on demand, as it does now.packaging/arch/everliveandpackaging/arch/everlive-git: PKGBUILDs plus a pacman install script. The script setscap_ipc_lockon the streamers and warns when files left byinstall.shin/etcwould override the packaged ones.-pthread -D_GNU_SOURCEare now always added. Previously, distributionCFLAGS(e.g. makepkg's) replaced them and the build broke.play.sh: skips the auto-rebuild when no Makefile is present (installed tree), and recognises the packaged v4l2loopback config in/usr/lib/modprobe.d.make installwith checks on the key installed files.Testing
makepkgbuildseverlive-gitfrom this branch (check()runs the framegen self-test). Package contents and metadata look correct./usr/lib/everliveand resolves the engine binaries there.Notes
everlive(release) PKGBUILD needs the first tag that includes this Makefile. Until then onlyeverlive-gitcan be published.install.shstill contains its own copy of the udev, modprobe and PipeWire config. A follow-up could have it install frompackaging/so the two can't drift apart.