#!/bin/sh set -e # Source debconf library . /usr/share/debconf/confmodule # Define package name PACKAGE="apt-ostreed" # Function to log messages log() { echo "$PACKAGE: $1" >&2 } # Function to check if systemd is available check_systemd() { if ! command -v systemctl >/dev/null 2>&1; then log "Warning: systemd not available, skipping service setup" return 1 fi return 0 } # Function to enable and start the service setup_service() { if ! check_systemd; then return 0 fi log "Setting up apt-ostreed service..." # Reload systemd daemon systemctl daemon-reload # Enable the service if systemctl enable apt-ostreed.service; then log "apt-ostreed service enabled" else log "Warning: Failed to enable apt-ostreed service" fi # Start the service if not running if ! systemctl is-active --quiet apt-ostreed.service; then if systemctl start apt-ostreed.service; then log "apt-ostreed service started" else log "Warning: Failed to start apt-ostreed service" fi else log "apt-ostreed service already running" fi } # Function to setup directories and permissions setup_directories() { log "Setting up directories and permissions..." # Create necessary directories with proper permissions mkdir -p /var/log/apt-ostreed mkdir -p /var/cache/apt-ostree mkdir -p /var/lib/apt-ostree mkdir -p /var/lib/apt-ostree/repo # Set proper ownership (root:root) chown root:root /var/log/apt-ostreed chown root:root /var/cache/apt-ostree chown root:root /var/lib/apt-ostree chown root:root /var/lib/apt-ostree/repo # Set proper permissions chmod 755 /var/log/apt-ostreed chmod 755 /var/cache/apt-ostree chmod 755 /var/lib/apt-ostree chmod 755 /var/lib/apt-ostree/repo } # Function to reload polkit rules reload_polkit() { if command -v pkaction >/dev/null 2>&1; then log "Reloading polkit rules..." # This will trigger polkit to reload its rules pkaction --version >/dev/null 2>&1 || true fi } # Main execution case "$1" in configure) log "Configuring apt-ostreed package..." setup_directories setup_service reload_polkit log "Configuration completed successfully" ;; abort-upgrade|abort-remove|abort-deconfigure) # Do nothing on abort ;; *) log "Unknown action: $1" exit 1 ;; esac exit 0