- 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
28 lines
616 B
Bash
Executable File
28 lines
616 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
case "$1" in
|
|
remove|upgrade|deconfigure)
|
|
# Stop service before removal or upgrade
|
|
if systemctl is-active --quiet sensorpajen.service 2>/dev/null; then
|
|
echo "Stopping sensorpajen service..."
|
|
systemctl stop sensorpajen.service || true
|
|
fi
|
|
|
|
# Disable service on removal (not upgrade)
|
|
if [ "$1" = "remove" ]; then
|
|
systemctl disable sensorpajen.service || true
|
|
fi
|
|
;;
|
|
|
|
failed-upgrade)
|
|
;;
|
|
|
|
*)
|
|
echo "prerm called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|