- Add docs/README.md with project overview and current status - Add docs/architecture.md with detailed architecture documentation - Add docs/development.md with development guide for contributors - Update .notes/todo.md to reflect architecture fix completion - Update .notes/plan.md with completed phases and next priorities Architecture fixes (daemon and dbus), bubblewrap integration are now complete. Ready for OCI integration phase.
135 lines
No EOL
4.2 KiB
Bash
Executable file
135 lines
No EOL
4.2 KiB
Bash
Executable file
#!/bin/bash
|
|
# apt-ostree Daemon Installation Script
|
|
# This script installs all daemon components for apt-ostree
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Function to print colored output
|
|
print_status() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
print_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
print_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
# Check if running as root
|
|
if [[ $EUID -ne 0 ]]; then
|
|
print_error "This script must be run as root"
|
|
exit 1
|
|
fi
|
|
|
|
print_status "Installing apt-ostree daemon components..."
|
|
|
|
# Create necessary directories
|
|
print_status "Creating directories..."
|
|
mkdir -p /usr/libexec
|
|
mkdir -p /etc/apt-ostree
|
|
mkdir -p /var/lib/apt-ostree
|
|
mkdir -p /var/cache/apt-ostree
|
|
mkdir -p /var/log/apt-ostree
|
|
mkdir -p /etc/dbus-1/system.d
|
|
mkdir -p /usr/share/dbus-1/system-services
|
|
mkdir -p /usr/share/polkit-1/actions
|
|
|
|
# Copy daemon binary
|
|
print_status "Installing daemon binary..."
|
|
if [[ -f "target/release/apt-ostreed" ]]; then
|
|
cp target/release/apt-ostreed /usr/libexec/
|
|
chmod +x /usr/libexec/apt-ostreed
|
|
else
|
|
print_warning "Daemon binary not found, skipping..."
|
|
fi
|
|
|
|
# Copy configuration files
|
|
print_status "Installing configuration files..."
|
|
cp src/daemon/apt-ostreed.conf /etc/apt-ostree/
|
|
chmod 644 /etc/apt-ostree/apt-ostreed.conf
|
|
|
|
# Copy D-Bus configuration
|
|
print_status "Installing D-Bus configuration..."
|
|
cp src/daemon/org.aptostree.dev.conf /etc/dbus-1/system.d/
|
|
cp src/daemon/org.aptostree.dev.service /usr/share/dbus-1/system-services/
|
|
chmod 644 /etc/dbus-1/system.d/org.aptostree.dev.conf
|
|
chmod 644 /usr/share/dbus-1/system-services/org.aptostree.dev.service
|
|
|
|
# Copy Polkit policy
|
|
print_status "Installing Polkit policy..."
|
|
cp src/daemon/org.aptostree.dev.policy /usr/share/polkit-1/actions/
|
|
chmod 644 /usr/share/polkit-1/actions/org.aptostree.dev.policy
|
|
|
|
# Copy systemd services
|
|
print_status "Installing systemd services..."
|
|
cp src/daemon/apt-ostreed.service /etc/systemd/system/
|
|
cp src/daemon/apt-ostree-bootstatus.service /etc/systemd/system/
|
|
cp src/daemon/apt-ostree-countme.service /etc/systemd/system/
|
|
cp src/daemon/apt-ostree-countme.timer /etc/systemd/system/
|
|
cp src/daemon/apt-ostreed-automatic.service /etc/systemd/system/
|
|
cp src/daemon/apt-ostreed-automatic.timer /etc/systemd/system/
|
|
|
|
chmod 644 /etc/systemd/system/apt-ostreed.service
|
|
chmod 644 /etc/systemd/system/apt-ostree-bootstatus.service
|
|
chmod 644 /etc/systemd/system/apt-ostree-countme.service
|
|
chmod 644 /etc/systemd/system/apt-ostree-countme.timer
|
|
chmod 644 /etc/systemd/system/apt-ostreed-automatic.service
|
|
chmod 644 /etc/systemd/system/apt-ostreed-automatic.timer
|
|
|
|
# Set proper ownership
|
|
print_status "Setting ownership..."
|
|
chown -R root:root /var/lib/apt-ostree
|
|
chown -R root:root /var/cache/apt-ostree
|
|
chown -R root:root /var/log/apt-ostree
|
|
|
|
# Initialize OSTree repository if it doesn't exist
|
|
if [[ ! -d "/var/lib/apt-ostree/repo/objects" ]]; then
|
|
print_status "Initializing OSTree repository..."
|
|
/usr/bin/ostree init --repo=/var/lib/apt-ostree/repo
|
|
fi
|
|
|
|
# Reload systemd and D-Bus
|
|
print_status "Reloading systemd and D-Bus..."
|
|
systemctl daemon-reload
|
|
systemctl reload dbus
|
|
|
|
# Enable services
|
|
print_status "Enabling services..."
|
|
systemctl enable apt-ostreed.service
|
|
systemctl enable apt-ostree-bootstatus.service
|
|
systemctl enable apt-ostree-countme.timer
|
|
systemctl enable apt-ostreed-automatic.timer
|
|
|
|
# Start the daemon
|
|
print_status "Starting apt-ostreed daemon..."
|
|
systemctl start apt-ostreed.service
|
|
|
|
# Verify installation
|
|
print_status "Verifying installation..."
|
|
if systemctl is-active --quiet apt-ostreed.service; then
|
|
print_status "apt-ostreed daemon is running"
|
|
else
|
|
print_error "apt-ostreed daemon failed to start"
|
|
systemctl status apt-ostreed.service
|
|
exit 1
|
|
fi
|
|
|
|
# Test D-Bus connection
|
|
print_status "Testing D-Bus connection..."
|
|
if gdbus introspect --system --dest org.aptostree.dev --object-path /org/aptostree/dev > /dev/null 2>&1; then
|
|
print_status "D-Bus connection successful"
|
|
else
|
|
print_warning "D-Bus connection test failed"
|
|
fi
|
|
|
|
print_status "apt-ostree daemon installation completed successfully!"
|
|
print_status "You can now use 'apt-ostree' commands with daemon support"
|
|
print_status "Use 'systemctl status apt-ostreed.service' to check daemon status" |