diff --git a/src/apt-ostree.py/CHANGELOG.md b/src/apt-ostree.py/CHANGELOG.md index b163d3e..5013d7b 100644 --- a/src/apt-ostree.py/CHANGELOG.md +++ b/src/apt-ostree.py/CHANGELOG.md @@ -10,6 +10,26 @@ - Added proper directory creation and permissions setup - Integrated D-Bus policy file installation with fallback creation +- **Package Management D-Bus Methods**: Comprehensive package management interface + - **`InstallPackages`**: Install packages with transaction tracking + - Method: `org.debian.aptostree1.Sysroot.InstallPackages` + - Parameters: `array:string` (packages), `boolean` (live_install) + - Returns: `a{sv}` (success, transaction_id, packages, live_install, message) + - **`RemovePackages`**: Remove packages with transaction tracking + - Method: `org.debian.aptostree1.Sysroot.RemovePackages` + - Parameters: `array:string` (packages), `boolean` (live_remove) + - Returns: `a{sv}` (success, transaction_id, packages, live_remove, message) + +- **Client Management Enhancement**: Automatic client registration for D-Bus calls + - Clients automatically registered when calling methods + - Client authorization working with root/sudo group validation + - Client tracking with UID, PID, and systemd unit information + +- **Transaction Management**: UUID-based transaction system + - Transaction IDs generated for each operation + - Transaction lifecycle (start, commit, rollback) functional + - Transaction logging and status tracking operational + ### Changed - **Installation Script**: Enhanced `install.sh` to include complete systemd service setup - Merged functionality from separate service installation script @@ -17,6 +37,11 @@ - Updated service management commands to use correct service name (`apt-ostreed.service`) - Enhanced documentation and usage examples +- **D-Bus Type Compatibility**: Fixed D-Bus type errors by flattening status dictionary + - Removed nested `config` dictionary that caused `TypeError` + - Converted all values to D-Bus-compatible types (string, int, bool, double) + - Ensured all returned values are simple, serializable types + ### Security - **Service Security Hardening**: Implemented comprehensive security features - `ProtectSystem=strict` for system protection @@ -26,6 +51,12 @@ - Restricted read/write paths to only necessary directories - Root-only D-Bus policy for production security +- **Production Security Enhancement**: Updated D-Bus policy for production use + - **Production Policy**: Restrict access to root users only + - **Security Rationale**: All apt-ostree operations require root privileges + - **Simplified Security Model**: Eliminates need for complex PolicyKit authorization + - **Consistent with System Tools**: Matches security model of apt, dpkg, ostree + ### Infrastructure - **Directory Structure**: Created proper directory hierarchy - `/var/lib/apt-ostree` for daemon data @@ -33,6 +64,11 @@ - `/var/log/apt-ostree` for logging - Proper permissions and ownership setup +- **OSTree Library Integration**: Successfully integrated OSTree library dependencies + - `libostree-1-1`: Core OSTree library for atomic operations + - `gir1.2-ostree-1.0`: GObject introspection bindings for Python integration + - Daemon functionality verified without import errors + ### Documentation - **Service Documentation**: Added comprehensive service management documentation - Service installation and configuration instructions @@ -40,6 +76,12 @@ - Usage examples for systemctl commands - File installation locations and purposes +- **D-Bus Documentation**: Enhanced D-BUS.md with production policy guidance + - Production policy rationale and security considerations + - Development vs production environment guidance + - Clear explanation of root-only access requirements + - Troubleshooting information for production deployment + ## [0.1.0] - 2024-01-15 ### Added @@ -65,16 +107,46 @@ - **Debian Integration**: Full integration with Debian package management - **Systemd Integration**: Proper systemd service lifecycle management +## [0.0.1] - 2024-01-14 + +### Added +- **Initial Daemon Integration**: Integrated apt-layer.sh with apt-ostree.py daemon for atomic operations via D-Bus +- **D-Bus Service and Interface Management**: `org.debian.aptostree1` service with proper interface definition +- **Daemon Lifecycle Management**: Start, stop, status, install, uninstall commands +- **Client Registration System**: Client registration and unregistration with the daemon +- **Transaction Management**: Transaction lifecycle via daemon (start, commit, rollback) +- **Atomic Package Operations**: Layer, deploy, upgrade, rollback via daemon + +### Technical +- **D-Bus Communication**: Robust D-Bus client functionality with timeout support +- **Error Handling**: Comprehensive error handling and recovery mechanisms +- **Path Resolution**: Fixed daemon source path discovery for compiled script compatibility +- **Import Resolution**: Fixed all Python import conflicts and package structure issues +- **Property Decorators**: Resolved D-Bus property conflicts using standard Python `@property` +- **Method Signatures**: Fixed D-Bus method signatures for proper interface definition + +### Integration +- **apt-layer.sh Integration**: Added daemon subcommands to main dispatch +- **Test Infrastructure**: Comprehensive test suite for daemon integration +- **Repository Cleanup**: Removed Python cache files and updated .gitignore +- **VM Testing**: Verified daemon integration works correctly in VM environment + --- ## Version History -### Version 0.1.0 +### Version 0.1.0 (2024-01-15) - Initial release with basic daemon functionality - D-Bus interface implementation - Package management integration - OSTree and ComposeFS support +### Version 0.0.1 (2024-01-14) +- Initial daemon integration with apt-layer.sh +- D-Bus service and interface management +- Client registration and transaction management +- Import resolution and property decorator fixes + ### Unreleased - Systemd service integration - Enhanced security hardening