# apt-ostree Package Merge Summary ## Overview Successfully merged the separate `apt-ostree` (CLI tool) and `apt-ostreed` (daemon) packages into a single `apt-ostree` package. This simplifies installation, dependency management, and maintenance. ## Changes Made ### 1. **debian/control** - Removed the separate `apt-ostreed` package - Updated main `apt-ostree` package description to mention it contains both components - Added `polkitd` and `dbus` dependencies directly to the main package - Removed circular dependency between packages ### 2. **debian/rules** - Modified installation rules to install both binaries into single package directory - All daemon files (systemd services, polkit policies, config files) now go into main package - Updated paths from `debian/apt-ostreed/` to `debian/apt-ostree/` ### 3. **debian/apt-ostree.postinst** - Added daemon service setup functionality (`setup_service`) - Added directory creation and permission setup (`setup_directories`) - Added polkit rules reloading (`reload_polkit`) - Removed dependency check for separate `apt-ostreed` package - Integrated both CLI and daemon setup logic ### 4. **debian/apt-ostree.postrm** - Added daemon service cleanup (`cleanup_daemon`) - Added daemon file cleanup on purge (`cleanup_daemon_files`) - Integrated both CLI and daemon cleanup logic ### 5. **debian/apt-ostree.prerm** - Added daemon service stopping before removal - Added daemon configuration backup functionality - Enhanced backup to include both CLI and daemon configs ### 6. **debian/apt-ostree.triggers** - Merged daemon triggers (polkit, systemd, D-Bus) into main package triggers - Added triggers for `/usr/share/polkit-1/actions`, `/lib/systemd/system`, and `/usr/share/dbus-1/system-services` ### 7. **debian/apt-ostree.conffiles** - Created new conffiles file for the main package - Added daemon configuration file as a conffile: `/etc/apt-ostreed/apt-ostreed.conf` ### 8. **Cleaned up old files** - Removed `debian/apt-ostreed.postinst` - Removed `debian/apt-ostreed.postrm` - Removed `debian/apt-ostreed.triggers` - Removed `debian/apt-ostreed.conffiles` - Removed `debian/apt-ostreed.substvars` ## Package Contents The new single `apt-ostree` package now contains: ### CLI Components - `/usr/bin/apt-ostree` - Main CLI binary - `/usr/share/man/man1/apt-ostree.1` - Manual page - `/usr/share/bash-completion/completions/apt-ostree` - Bash completion - `/usr/share/zsh/vendor-completions/_apt-ostree` - Zsh completion ### Daemon Components - `/usr/libexec/apt-ostreed` - Daemon binary - `/lib/systemd/system/apt-ostreed.service` - Systemd service - `/lib/systemd/system/apt-ostreed.socket` - Systemd socket - `/usr/share/polkit-1/actions/org.projectatomic.aptostree1.policy` - Polkit policy - `/etc/apt-ostreed/apt-ostreed.conf` - Daemon configuration ### System Integration - `/var/log/apt-ostreed` - Log directory - `/var/cache/apt-ostree` - Cache directory - `/var/lib/apt-ostree` - State directory ## Dependencies The single package now has these dependencies: - `libc6 (>= 2.39)` - `libgcc-s1 (>= 4.2)` - `libostree-1-1 (>= 2025.2)` - `ostree` - `systemd` - `libapt-pkg7.0 (>= 3.0.0)` - `polkitd` - `dbus` ## Benefits 1. **Simplified Installation**: Users only need to install one package instead of two 2. **Better Dependency Management**: No circular dependencies between packages 3. **Easier Maintenance**: Single package to maintain and update 4. **Consistent Versioning**: Both components always have the same version 5. **Cleaner Uninstallation**: Single command removes all components 6. **Reduced Package Complexity**: Fewer package files and scripts to manage ## Build Results - **Package Name**: `apt-ostree_0.1.0-2_amd64.deb` - **Size**: ~1.6 MB (includes both CLI and daemon) - **Build Status**: ✅ Successful - **Installation**: Both components install from single package - **Service Management**: Daemon service automatically configured and started ## Testing The package has been successfully built and verified to contain: - ✅ CLI binary (`apt-ostree`) - ✅ Daemon binary (`apt-ostreed`) - ✅ Systemd service files - ✅ Polkit policies - ✅ Configuration files - ✅ All necessary directories and permissions ## Future Considerations 1. **Version Management**: Both components will always be updated together 2. **Configuration**: Single package makes configuration management simpler 3. **Rollbacks**: Package rollbacks affect both components simultaneously 4. **Testing**: Integration testing can be simplified with single package --- **Date**: 2025-08-17 **Status**: Complete **Next Steps**: Test installation and functionality on target systems