Implement the packaging configuration, staging script, maintainer scripts, and container test harness for building native deb and rpm packages. Core files: - packaging/nfpm.yaml: single source of truth for both formats - packaging/stage.sh: builds staged tree (venv, wrapper, helpers, units, polkit, sysusers, tmpfiles) - packaging/fenris.conf: placeholder-commented default configuration - packaging/postinst.sh, prerm.sh, postrm.sh: POSIX-compatible deb maintainer scripts - packaging/rpm/post.sh, preun.sh, postun.sh: RPM scriptlets - packaging/sysusers.d/fenris.conf, tmpfiles.d/fenris.conf: systemd fragments - packaging/fenris.repo: dnf consumer setup - packaging/keys/fenris-packaging.asc: public key placeholder Build targets added to Makefile: stage, package-deb, package-rpm, package, release, clean. Container test harness in tests/test_packaging.py covering dormant install, migration guard, upgrade semantics, and removal semantics across the compatibility matrix (Debian 12, Ubuntu 22.04/24.04, Fedora 40). Dormant CI workflow at .gitea/workflows/release.yml. All 289 existing tests pass without regression. Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
66 lines
1.5 KiB
YAML
66 lines
1.5 KiB
YAML
name: fenris
|
|
arch: amd64
|
|
platform: linux
|
|
version: "${VERSION}"
|
|
maintainer: Fenris Maintainers <ops@bongbetic.com>
|
|
description: >
|
|
NVMe wear monitor with persistent TUI — observes real-world drive use and
|
|
translates it into an understandable endurance outlook.
|
|
homepage: https://git.bongbetic.com/xavierk/Fenris
|
|
license: Proprietary
|
|
|
|
depends:
|
|
- python3 (>= 3.10)
|
|
- smartmontools
|
|
- systemd
|
|
|
|
contents:
|
|
# Staged tree: venv, wrapper, helpers, units, polkit, sysusers, tmpfiles
|
|
- src: build/stage/
|
|
dst: /
|
|
type: tree
|
|
|
|
# Configuration directory
|
|
- dst: /etc/fenris
|
|
type: dir
|
|
file_info:
|
|
mode: 0755
|
|
|
|
# Default placeholder-commented config (conffile for deb)
|
|
- src: packaging/fenris.conf
|
|
dst: /etc/fenris/fenris.conf
|
|
type: config
|
|
file_info:
|
|
mode: 0644
|
|
|
|
# Observation store directory — owned by package, never packed
|
|
# deb: created in postinst; rpm: %ghost
|
|
- dst: /var/lib/fenris
|
|
type: ghost
|
|
file_info:
|
|
mode: 2750
|
|
|
|
scripts:
|
|
preinstall: packaging/preinst.sh
|
|
postinstall: packaging/postinst.sh
|
|
preremove: packaging/prerm.sh
|
|
postremove: packaging/postrm.sh
|
|
|
|
overrides:
|
|
deb:
|
|
depends:
|
|
- python3 (>= 3.10)
|
|
- smartmontools
|
|
- systemd
|
|
|
|
rpm:
|
|
depends:
|
|
- python3 >= 3.10
|
|
- smartmontools
|
|
- systemd
|
|
scripts:
|
|
preinstall: packaging/preinst.sh
|
|
postinstall: packaging/rpm/post.sh
|
|
preremove: packaging/rpm/preun.sh
|
|
postremove: packaging/rpm/postun.sh
|