apt-ostree/docs/PACKAGE_MERGE_SUMMARY.md
robojerk 791774eb66 Major cleanup and optimization: Remove unused dependencies, clean build artifacts, and improve project structure
- Remove 7 unused dependencies: apt-pkg-native, pkg-config, walkdir, lazy_static, futures, async-trait, cap-std
- Delete dead code: Remove unused parallel.rs module
- Clean build artifacts: Remove debian/cargo/, debian/.debhelper/, and other build files
- Update .gitignore: Comprehensive patterns for build artifacts, test files, and temporary files
- Move documentation: Relocate project docs to docs/ directory
- Remove test artifacts: Clean up test files and package archives
- Update Cargo.toml: Streamline dependencies and remove unused features
- Verify build: Ensure project still compiles after cleanup

This commit significantly reduces project size and improves build efficiency.
2025-08-19 10:51:37 -07:00

4.6 KiB

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