Commit graph

63 commits

Author SHA1 Message Date
Joe Particle
8c470a56b5 feat: Implement production-ready systemd service best practices
- Update systemd service file with Type=simple and comprehensive locking
- Enhance D-Bus service and policy files for proper activation
- Remove OSTree dependency for test mode compatibility
- Implement automated service file installation and cleanup
- Add comprehensive systemd usage documentation
- Update changelog and TODO to reflect completed systemd improvements
- Service now successfully running under systemd management

This completes the systemd service integration with production-ready
configuration and best practices for daemon lifecycle management.
2025-07-16 16:13:35 +00:00
Joe Particle
3def8187a9 feat: Document daemon startup success and integration testing readiness
Some checks failed
Compile apt-layer (v2) / compile (push) Failing after 3h11m20s
- Add Integration Testing (IN PROGRESS) section to TODO.md
- Document successful daemon startup and D-Bus interface publishing
- Update changelogs with major milestone achievements
- Mark readiness for D-Bus method testing and apt-layer.sh integration
- Update production readiness status for next phase
2025-07-16 06:50:43 +00:00
Joe Particle
b31b64d600 fix: Resolve D-Bus property serialization issues
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Fix Deployments property to always return JSON string
- Resolve TypeError and ValueError in D-Bus property serialization
- Add JSON serialization for complex data structures
- Implement fallback values for empty collections
- Update TODO and changelogs to reflect completion
- Ensure full compliance with D-BUS.md and daemon-notes.md
2025-07-16 06:27:39 +00:00
Joe Particle
130b406ee2 Fix async bug in D-Bus interface and update documentation
- Fixed critical 'asyncio.run() cannot be called from a running event loop' error
- Converted all D-Bus methods to async def with proper await usage
- Fixed dbus-next integration for full async functionality
- Daemon now properly handles concurrent async operations
- Updated TODO.md and CHANGELOG.md to reflect async bug fix
- Added interface_simple.py with dbus-next implementation
- Updated D-Bus policy for development use
- Added test script for D-Bus properties verification
2025-07-16 06:05:30 +00:00
Joe Particle
9b1411a1dd feat: Implement apt-layer.sh integration in D-Bus methods
- Created ShellIntegration utility for apt-layer.sh command execution
- Implemented async command execution with ThreadPoolExecutor
- Added comprehensive output parsing for install, remove, composefs operations
- Integrated automatic script path discovery with fallback locations
- Added timeout management and error handling for all shell operations
- Extended D-Bus interface with Deploy, Upgrade, Rollback, CreateComposeFSLayer methods
- All methods include proper authorization, transaction management, and error handling
- Updated InstallPackages and RemovePackages to use actual apt-layer.sh commands
- Added proper async/await pattern for non-blocking shell operations

This completes the apt-layer.sh integration phase, enabling the daemon to
orchestrate actual apt-layer.sh commands while providing structured D-Bus
responses with detailed feedback and error handling.
2025-07-16 05:09:22 +00:00
Joe Particle
708f7b332d docs: Reconcile apt-ostree.py CHANGELOG.md with apt-layer changelog content
- Added comprehensive package management D-Bus methods documentation
- Included client management and transaction system details
- Added D-Bus type compatibility fixes and security enhancements
- Documented OSTree library integration and infrastructure setup
- Added version 0.0.1 for initial daemon integration work
- Consolidated all apt-ostree.py specific changes from apt-layer changelog
- Enhanced documentation with production policy guidance

This reconciles the apt-ostree.py changelog with the relevant content
from the apt-layer changelog, providing a complete history of the
daemon development and integration work.
2025-07-16 05:05:06 +00:00
Joe Particle
8faf8fdb38 feat: Complete systemd service integration for apt-ostree daemon
- Created apt-ostreed.service with security hardening and OSTree integration
- Added D-Bus activation service file for auto-startup
- Enhanced install.sh with complete service file management
- Implemented proper directory structure and permissions
- Added comprehensive CHANGELOG.md for apt-ostree.py project
- Updated TODO.md to reflect completed systemd integration work
- Merged install-service.sh functionality into main install.sh
- Added production-ready security features and D-Bus policy

This completes the systemd service integration phase, making the daemon
ready for production deployment with proper service management.
2025-07-16 05:02:53 +00:00
Joe Particle
4209582a13 feat: Implement package management D-Bus methods with client registration
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Add InstallPackages and RemovePackages methods to Sysroot interface
- Implement automatic client registration for D-Bus method calls
- Add client authorization with root/sudo group validation
- Confirm transaction management system working with UUID tracking
- Test all methods successfully with proper D-Bus type handling
- Update CHANGELOG.md with package management milestone
- Update TODO.md to reflect completed daemon integration

The apt-ostree daemon now has a complete package management interface
with working D-Bus methods, client management, and transaction tracking.
Ready for integration with apt-layer.sh for actual package operations.
2025-07-16 04:57:24 +00:00
Joe Particle
9d0fd2ca67 feat: Fix D-Bus type compatibility and establish successful daemon communication
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Fix D-Bus type errors by flattening status dictionary
- Remove nested 'config' dictionary that caused TypeError
- Convert all values to D-Bus-compatible types (string, int, bool, double)
- Confirm production security policy working (root-only access)
- Successfully test GetStatus method with valid response
- Update D-Bus policy to allow root access to specific interfaces
- Update CHANGELOG.md with D-Bus communication milestone
- Update TODO.md to reflect completed daemon integration

The apt-ostree daemon now has working D-Bus communication with proper
type handling and production-ready security policies. Ready for full
integration with apt-layer.sh client.
2025-07-16 04:53:23 +00:00
Joe Particle
883fa1e70f feat: Implement production D-Bus security policy with root-only access
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Update D-Bus policy for production use (root-only access)
- Document production vs development policy rationale
- Enhance D-BUS.md with security considerations
- Update CHANGELOG.md with production security hardening
- Update TODO.md to reflect completed security improvements

This change implements a production-ready security model where only root
users can access the apt-ostree daemon, which is appropriate since all
operations (package installation, OSTree commits, ComposeFS management)
inherently require root privileges. This eliminates the need for complex
PolicyKit authorization rules and provides clear security boundaries.
2025-07-16 04:28:28 +00:00
Joe Particle
3d11430795 docs: add D-Bus policy requirements, automate policy install, improve install.sh robustness 2025-07-16 03:49:35 +00:00
Joe Particle
10884eacb6 docs: update CHANGELOG and TODO for VM daemon integration and entry point diagnosis 2025-07-16 03:33:02 +00:00
35fcf81e03 docs: Update TODO and changelog for environment synchronization
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Updated TODO.md current status to reflect synchronized environments
- Added changelog entry documenting environment synchronization
- Confirmed all environments are at commit f8b0e85
- Ready for direct VM connection and single-environment development

Environment status:
- Local: Clean working tree, latest commit f8b0e85
- VM: Synchronized with local, clean working tree
- Remote: All commits pushed and synchronized

Next step: Switch to direct VM connection for daemon initialization fix
2025-07-15 20:18:31 -07:00
f8b0e85e3f feat: Complete systemd service creation for production deployment
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Successfully created systemd service file (/etc/systemd/system/apt-ostreed.service)
- Configured D-Bus service type with org.debian.aptostree1 bus name
- Set up root user execution with proper restart policies
- Enabled service for automatic startup on boot
- Service infrastructure ready for production deployment

Systemd service configuration:
- Type: dbus with proper bus name
- User: root (required for D-Bus access)
- Restart: always with 10s delay
- Timeout: 5 minutes for startup
- Environment: DOWNLOAD_FILELISTS=false

Next step: Complete daemon initialization fix for full functionality
2025-07-15 20:13:34 -07:00
c31d58502a feat: Complete daemon and D-Bus integration with OSTree library
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Successfully installed OSTree library (libostree-1-1, gir1.2-ostree-1.0) in VM
- Daemon executable now works without import errors
- All dependencies satisfied and functional
- D-Bus interface properly configured and ready for communication
- Complete daemon integration with apt-layer.sh working

Testing results:
- Daemon installation:  Working with root privileges
- Package structure:  All imports resolved
- Entry points:  Correctly configured
- OSTree dependency:  Installed and working
- D-Bus interface:  Properly defined
- Integration:  Complete with apt-layer.sh

Next step: Systemd service setup for production deployment
2025-07-15 19:51:37 -07:00
88aaf34fac fix: Resolve daemon import and entry point issues
- Fixed __init__.py import to use relative import (from . import main)
- Fixed setup.py entry point to point to main.py instead of __init__.py
- Successfully installed daemon package with --break-system-packages
- Confirmed daemon executable works (requires OSTree library for full functionality)

Testing results:
- Daemon installation:  Working with root privileges
- Package structure:  All imports resolved
- Entry points:  Correctly configured
- OSTree dependency: ⚠️ Missing (expected for minimal VM)
2025-07-15 19:33:57 -07:00
1c8cc2797e chore: Add Python cache files to .gitignore 2025-07-15 19:00:55 -07:00
432661f7cb fix: Improve daemon install path resolution for compiled script
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Fixed daemon source path resolution to work with both compiled and source versions
- Added multiple fallback paths for daemon source discovery
- Enhanced error reporting to show all attempted paths
- Ensures daemon install works regardless of script execution context

This fixes the issue where daemon install failed when running from compiled apt-layer.sh
2025-07-15 18:39:30 -07:00
1925ce65df feat: Complete daemon integration with import fixes and D-Bus resolution
- Fixed all Python import conflicts and package structure issues
- Resolved D-Bus property decorator conflicts (@dbus.service.property → @property)
- Corrected D-Bus method signatures for proper interface definition
- Updated package structure for proper installation and execution
- Enhanced daemon integration with comprehensive test infrastructure
- Added daemon subcommands: start, stop, status, test, install, uninstall, layer, deploy, upgrade, rollback
- Implemented D-Bus communication layer for atomic package management
- Added transaction management and progress reporting
- Updated changelog and TODO to reflect current status
- Daemon now successfully imports and runs (requires root for D-Bus service)

Technical achievements:
- Resolved ModuleNotFoundError and ImportError issues
- Fixed AttributeError with dbus.service.property decorators
- Corrected ValueError in D-Bus method signatures
- Established functional daemon with proper error handling
- Created production-ready foundation for atomic package management

Next: Test in VM environment with root privileges for full D-Bus communication
2025-07-15 18:30:01 -07:00
b58debd443 feat: complete daemon integration testing and troubleshooting
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Fix daemon executable path from apt-ostree.py to apt-ostree
- Resolve daemon package installation with --break-system-packages flag
- Fix test script path calculations for proper apt-layer.sh location
- Identify and document import conflicts between local and system dbus modules
- Complete test infrastructure and automation for daemon + D-Bus integration
- Update changelog and TODO to reflect current status and remaining work
- All daemon integration foundation complete, ready for import conflict resolution
2025-07-15 18:09:51 -07:00
551d355825 feat: comprehensive daemon + D-Bus integration with test automation
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Add scriptlet 20-daemon-integration.sh for D-Bus/daemon lifecycle management
- Add new test subcommands: test, stress-test, error-recovery, performance, comprehensive
- Add automated test script test-daemon-integration.sh for full validation
- Enhance error handling, service checks, and transaction management
- Update compile.sh to include new scriptlet and ensure correct build order
- Update help text and documentation for all new daemon commands
- Fix path issues and D-Bus communication reliability
- Update changelog and TODO to reflect daemon integration milestone
2025-07-15 17:30:02 -07:00
a23b4e53fd feat: Integrate apt-layer.sh with apt-ostree.py daemon via D-Bus
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Added 20-daemon-integration.sh scriptlet for D-Bus and daemon lifecycle management
- Updated 99-main.sh with new daemon subcommands (start, stop, status, install, uninstall, test, layer, deploy, upgrade, rollback)
- Enhanced help and usage text for daemon integration
- Fixed bash syntax errors in daemon integration scriptlet
- Updated compile.sh to include daemon integration in build process
- Updated .gitignore to exclude src/rpm-ostree/ reference source
- Updated CHANGELOG.md and TODO.md to document daemon integration milestone
- Removed src/rpm-ostree/ from git tracking (reference only, not committed)
2025-07-15 17:08:15 -07:00
b913406438 Production Integration - Implemented systemd integration, bootloader support, deployment management, health monitoring, and production tools
Some checks failed
Compile apt-layer (v2) / compile (push) Failing after 3h2m55s
2025-07-15 12:39:08 -07:00
bb6ec41528 Production Integration - Starting systemd integration and bootloader support 2025-07-15 12:34:05 -07:00
ddb60082e5 Advanced ComposeFS Features - Updated documentation and marked Phase 2.3 as completed
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
2025-07-15 12:29:53 -07:00
ee24d8b6b2 Advanced ComposeFS Features - Implemented multi-layer composition, deduplication, compression, benchmarking, and enhanced metadata handling
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
2025-07-15 12:29:06 -07:00
5089ee421f Phase 2.2: Basic ComposeFS Integration - Implemented comprehensive layer management with atomic operations, validation, testing, and rollback capabilities
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
2025-07-15 12:21:34 -07:00
703577e88a Deep dpkg Integration
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
2025-07-15 12:13:20 -07:00
d18314c84c Documentation: Add comprehensive skopeo command reference based on official man pages 2025-07-15 11:35:45 -07:00
8cb3e71c59 Documentation: Correct skopeo/podman usage - both rpm-ostree and apt-layer use podman as primary container runtime 2025-07-15 11:32:21 -07:00
8b00e29a58 Documentation: Add comprehensive skopeo integration guide mirroring rpm-ostree approach 2025-07-15 11:27:42 -07:00
00e4e68d39 Documentation: Add comprehensive Debian package structure and build information to ComposeFS docs 2025-07-15 11:22:13 -07:00
6cd1be1ba1 ComposeFS package integration: Debian/Fedora package support and distribution-specific installation commands
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
2025-07-15 11:18:41 -07:00
d01d222b4d Fix container runtime configuration: remove hardcoded values, add skopeo support, use config-based detection 2025-07-15 09:47:55 -07:00
2f8492e65f Fix YAML syntax error in workflow: replace heredoc with echo statements
Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
2025-07-15 09:18:19 -07:00
4be98e2537 Replace workflow with v2: bypass Forgejo caching issues and remove all GitHub Actions dependencies 2025-07-15 09:08:48 -07:00
f441b2665f Fix test workflow: remove GitHub Actions dependencies for Forgejo compatibility 2025-07-15 08:55:29 -07:00
000264dbbd Fix Forgejo workflow: remove GitHub Actions dependency, use native artifact creation 2025-07-15 08:47:52 -07:00
b067da4d82 Fix Forgejo workflow: improve git push handling and add artifact uploads
Some checks failed
Compile apt-layer / compile (push) Failing after 0s
2025-07-15 08:46:24 -07:00
dfab658040 Fix Forgejo workflow: handle detached HEAD state for git push
Some checks failed
Compile apt-layer / compile (push) Has been cancelled
2025-07-15 08:41:01 -07:00
a138be7f1e Fix Forgejo workflow: add coreutils for numfmt command
Some checks failed
Compile apt-layer / compile (push) Failing after 3s
2025-07-15 08:39:55 -07:00
c85d9af526 Fix Forgejo workflow: add multi-distro package manager support
Some checks failed
Compile apt-layer / compile (push) Failing after 3s
2025-07-15 08:38:16 -07:00
687210be82 Fix Forgejo workflow: remove sudo commands from runner environment
Some checks failed
Compile apt-layer / compile (push) Failing after 0s
2025-07-15 08:37:07 -07:00
fefe669e69 Fix Forgejo workflow: add proper git clone for checkout step
Some checks failed
Compile apt-layer / compile (push) Failing after 0s
2025-07-15 08:35:35 -07:00
f45378237c maybe it works this time
Some checks failed
Compile apt-layer / compile (push) Failing after 0s
2025-07-15 00:39:17 -07:00
3a33936cd4 Fix workflow: replace checkout action with native git commands
Some checks are pending
Compile apt-layer / compile (push) Waiting to run
2025-07-14 21:30:45 -07:00
a9a9264618 Fix workflow: remove upload-artifact dependency
Some checks failed
Compile apt-layer / compile (push) Failing after 0s
2025-07-14 21:29:51 -07:00
29b9675689 fixed paths, created ci/cd workflow
Some checks failed
Compile apt-layer / compile (push) Failing after 2s
2025-07-14 14:22:06 -07:00
14d7da71e8 Fix all hardcoded ubuntu-ublue paths to particle-os in config and scriptlets 2025-07-14 09:50:35 -07:00
5f59b3510a testing rollback 2025-07-14 09:12:46 -07:00