Add Phase 5: Debian Package Structure planning

- Document target package structure mirroring upstream osbuild RPMs
- Define all 8 packages with proper dependencies
- Map stage distribution across packages
- Document benefits of modular structure
- Track implementation progress
This commit is contained in:
Joe 2025-08-29 17:37:07 -07:00
parent b61f174db9
commit da8d01d82b

View file

@ -123,3 +123,62 @@ The project now maintains the exact same directory structure as the original osb
- **Backup branch**: `backup-debian-changes` (contains all original work)
- **Main branch**: Reorganized structure with 1:1 upstream compatibility
- **Ready for**: Push to remote repository and continued development
## Phase 5: Debian Package Structure (NEW) 🆕
**Goal**: Mirror upstream osbuild RPM package structure with Debian packages
### Upstream osbuild RPM Structure (Reference):
- **osbuild** - Main package (core engine)
- **osbuild-depsolve-dnf** - DNF dependency solver
- **osbuild-luks2** - LUKS2 encryption support
- **osbuild-lvm2** - LVM2 support
- **osbuild-ostree** - OSTree support
- **osbuild-selinux** - SELinux support
- **osbuild-tools** - Helper tools and utilities
- **python3-osbuild** - Python library
### Target debian-forge Package Structure:
- [x] **debian-forge** - Main package (core engine and binary)
- [x] **debian-forge-depsolve-deb** - Debian package dependency solver (apt-based)
- [x] **debian-forge-luks2** - LUKS2 encryption support
- [x] **debian-forge-lvm2** - LVM2 support
- [x] **debian-forge-ostree** - OSTree support (critical for Debian Atomic)
- [x] **debian-forge-selinux** - SELinux support
- [x] **debian-forge-tools** - Helper tools and utilities
- [x] **python3-debian-forge** - Python library
### Implementation Status:
- [x] **CI/CD Workflow Created** - Comprehensive Forgejo workflow in `.forgejo/workflows/ci.yml`
- [x] **Package Definitions** - All 8 packages defined in debian/control
- [x] **Build Rules** - debian/rules with proper file distribution across packages
- [x] **Dependencies Mapped** - Proper stage-to-package distribution
- [ ] **Test Package Building** - Verify all packages build correctly
- [ ] **Test Package Installation** - Verify packages install and work
- [ ] **Push to Repository** - Get workflow running in Forgejo
### Package Dependencies:
- **debian-forge** → depends on python3-debian-forge + debian-forge-tools
- **python3-debian-forge** → core Python library with minimal deps
- **debian-forge-depsolve-deb** → depends on python3-debian-forge + libapt-pkg-dev
- **debian-forge-ostree** → depends on python3-debian-forge + ostree
- **debian-forge-luks2** → depends on python3-debian-forge + cryptsetup
- **debian-forge-lvm2** → depends on python3-debian-forge + lvm2
- **debian-forge-selinux** → depends on python3-debian-forge + selinux-policy-default
- **debian-forge-tools** → depends on python3-debian-forge
### Stage Distribution:
- **Core stages** → python3-debian-forge
- **apt.* stages** → debian-forge-depsolve-deb
- **ostree.* stages** → debian-forge-ostree
- **luks2.* stages** → debian-forge-luks2
- **lvm2.* stages** → debian-forge-lvm2
- **selinux.* stages** → debian-forge-selinux
- **tools/** → debian-forge-tools
- **Main binary** → debian-forge
### Benefits of This Structure:
- **Modular Installation** - Users can install only what they need
- **Upstream Compatibility** - Mirrors osbuild package structure exactly
- **Debian Optimization** - apt-based dependency solving instead of dnf
- **Atomic Support** - OSTree package available for Debian Atomic systems
- **Clean Dependencies** - Each package has minimal, focused dependencies