Grilling: Migration path from make-install systems to packages #41
Notifications
Due Date
No due date set.
Blocks
Depends on
#42 Task: Compose release spec + ADR amending 0004
xavierk/Fenris
#40 Grilling: Package ownership + ADR 0004 amendment
xavierk/Fenris
Reference: xavierk/Fenris#41
Reference in New Issue
Block a user
Parent map: Fenris deb + rpm release plan
Question
How do existing Makefile/manifest-installed Fenris systems move to package-managed installs? Detect the old manifest, avoid double ownership of /opt/fenris and /var/lib/fenris, preserve the observation store, and pick ordering (remove-then-install vs upgrade-in-place).
Resolution
All 6 recommendations accepted. Migration path from make-install systems to packages:
sudo make uninstall(preserves store +/etc/fenris) →apt install fenris/dnf install fenris. Over-install forbidden: stale/etc/systemd/system/fenris-collect.*silently shadows vendor units in/usr/lib/systemd/system(systemd precedence),/usr/local/bin/fenrisshadows/usr/bin/fenrison PATH,manifest.txtlingers./var/lib/fenris/manifest.txtOR/etc/systemd/system/fenris-collect.timerexists (dual marker covers pre-manifest installs). No auto-clean — maintainer scripts never delete files the package DB doesn't own (same principle as the manifest retirement in #40)./var/lib/fenrisuntouched (same path both worlds); existingfenrisgroup → sysusers.d no-op; existing dir → tmpfiles no-op (make install already set 2750 root:fenris); user's hand-writtenfenris.confsurvives as a non-DB file (dpkg ships package default as.dpkg-new; rpm%config(noreplace)→.rpmnew); store schema caught up by postinst forward-only migration. Leftover.bak/WAL sidecars left alone — package never owns store contents.make uninstall's sanctioned disable closes theuser_disabledperiod; after migration the user runsfenris monitor resume. Cost = one 15-min sample gap, honest against the endurance timeline. No reaching behind the sanctioned-toggle model.make installnever on the same machine.make installstays fallback for machines without packages; the real dev loop is checkout +make test. Dev-local install mode (venv in checkout, user-level units) deferred to map fog.Input to "Task: Compose release spec + ADR amending 0004" (#42): migration runbook section + preinst/%pre abort check.