3.9 KiB
Executable file
3.9 KiB
Executable file
Debian Forge: debos to OSBuild Stage Mapping
Overview
This document maps debos actions to OSBuild stages to enable Debian package management and OSTree composition in the OSBuild pipeline.
Action Mappings
Package Management
debos: apt → OSBuild: org.osbuild.apt
- Purpose: Install Debian packages using apt
- Input: Package list, repository configuration
- Output: Installed packages in target filesystem
- Dependencies: Repository configuration, package sources
debos: debootstrap → OSBuild: org.osbuild.debootstrap
- Purpose: Create base Debian filesystem
- Input: Debian suite, architecture, mirror
- Output: Base Debian root filesystem
- Dependencies: Network access, Debian mirror
OSTree Integration
debos: ostree-commit → OSBuild: org.osbuild.ostree.commit
- Purpose: Create OSTree commit from filesystem
- Input: Filesystem tree, commit metadata
- Output: OSTree commit in repository
- Dependencies: OSTree repository, filesystem tree
debos: ostree-deploy → OSBuild: org.osbuild.ostree.deploy
- Purpose: Deploy OSTree branch to target
- Input: OSTree repository, branch name
- Output: Deployed OSTree filesystem
- Dependencies: OSTree repository, target device
Filesystem Operations
debos: overlay → OSBuild: org.osbuild.overlay
- Purpose: Copy files/directories to target
- Input: Source files, target paths
- Output: Files copied to target filesystem
- Dependencies: Source files, target filesystem
debos: filesystem-deploy → OSBuild: org.osbuild.filesystem.deploy
- Purpose: Deploy filesystem to image
- Input: Filesystem tree, target image
- Output: Image with deployed filesystem
- Dependencies: Filesystem tree, target device
Image Creation
debos: image-partition → OSBuild: org.osbuild.image.partition
- Purpose: Create and partition disk image
- Input: Partition layout, filesystem types
- Output: Partitioned disk image
- Dependencies: Partition specification
Implementation Priority
Phase 1: Core Package Management
- org.osbuild.apt - Debian package installation
- org.osbuild.debootstrap - Base filesystem creation
- org.osbuild.apt.repos - Repository configuration
Phase 2: OSTree Integration
- org.osbuild.ostree.commit - Commit creation
- org.osbuild.ostree.deploy - Deployment
- org.osbuild.ostree.repo - Repository management
Phase 3: Advanced Features
- org.osbuild.overlay - File operations
- org.osbuild.filesystem.deploy - Filesystem deployment
- org.osbuild.image.partition - Image creation
Stage Structure
Each OSBuild stage should follow the standard pattern:
- Python script for the stage logic
- JSON metadata file defining options and dependencies
- Integration with OSBuild pipeline system
- Proper error handling and logging
Dependencies
- Python 3.6+ for stage execution
- apt/dpkg for Debian package management
- ostree for atomic filesystem management
- debootstrap for base filesystem creation
- sbuild/pbuilder for build environments
- apt-cacher-ng for package caching (optional, improves performance)
apt-cacher-ng Integration
Configuration
Both org.osbuild.apt and org.osbuild.debootstrap stages support apt-cacher-ng proxy configuration:
{
"name": "org.osbuild.apt",
"options": {
"packages": ["systemd", "dbus"],
"apt_proxy": "http://localhost:3142"
}
}
Benefits
- Faster builds - Packages are cached locally
- Reduced network usage - Avoids re-downloading packages
- Offline capability - Can build without internet after initial cache
- Development efficiency - Faster iteration during development
Setup
Use the provided setup-apt-cacher.sh script to configure apt-cacher-ng:
sudo ./debian-forge/setup-apt-cacher.sh