Phase 8: Implement Debian package creation (2025-12-27)
- Create debian/ directory structure with all required files: - control: Package metadata and dependencies - compat: Debhelper compatibility level - changelog: Version history - rules: Build instructions - install: File installation mappings - postinst: Post-installation setup (user, venv, setcap) - prerm: Pre-removal script (stop service) - postrm: Post-removal script (cleanup, preserve config) - sensorpajen.service: System-wide systemd unit - Update config.py to support dual-mode operation: - Auto-detects system installation (/opt/sensorpajen) - Uses /etc/sensorpajen for config in system mode - Falls back to PROJECT_ROOT/config for development - Update scripts/approve-sensors.sh for system paths: - Detects system vs development installation - Uses correct venv and config paths - Create scripts/verify-deb.sh: Automated build and verification - Create debian/README.md: Comprehensive packaging documentation Package features: - System-wide installation to /opt/sensorpajen/ - Configuration in /etc/sensorpajen/ (preserved on upgrade/remove) - Dedicated sensorpajen system user - Automatic venv creation with dependencies - Bluetooth capabilities set automatically - Service auto-enabled but waits for config before starting - Dual-mode code supports both system and development installations
This commit is contained in:
41
debian/postrm
vendored
Executable file
41
debian/postrm
vendored
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
# Service removed but config and user preserved
|
||||
echo "Sensorpajen removed. Configuration preserved in /etc/sensorpajen/"
|
||||
echo "To remove config: sudo rm -rf /etc/sensorpajen/"
|
||||
|
||||
# Remove systemd service file
|
||||
rm -f /etc/systemd/system/sensorpajen.service
|
||||
systemctl daemon-reload || true
|
||||
;;
|
||||
|
||||
purge)
|
||||
# Even on purge, we keep config by default (user can manually delete)
|
||||
# This is safer as it prevents accidental data loss
|
||||
echo "Configuration preserved in /etc/sensorpajen/"
|
||||
echo "To remove config: sudo rm -rf /etc/sensorpajen/"
|
||||
echo "To remove user: sudo userdel sensorpajen"
|
||||
|
||||
# Remove systemd service file
|
||||
rm -f /etc/systemd/system/sensorpajen.service
|
||||
systemctl daemon-reload || true
|
||||
|
||||
# Note: We intentionally do NOT remove:
|
||||
# - /etc/sensorpajen (contains user data)
|
||||
# - sensorpajen user (may own other files/processes)
|
||||
# User must remove these manually if desired
|
||||
;;
|
||||
|
||||
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user