No description
Find a file
robojerk 18e96a1c4b
Some checks failed
Tests / test (1.21.x) (push) Failing after 1s
Tests / test (1.22.x) (push) Failing after 1s
Fix compilation issues and update tests for Debian compatibility
2025-08-11 10:11:05 -07:00
.fmf Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
.github Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
.Red_Hat_Version Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
.tekton Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
bib Fix compilation issues and update tests for Debian compatibility 2025-08-11 10:11:05 -07:00
bin Initial commit 2025-08-11 08:59:41 -07:00
containerfiles Initial commit 2025-08-11 08:59:41 -07:00
devel Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
osbuild-stages Initial commit 2025-08-11 08:59:41 -07:00
plans Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
scripts Initial commit 2025-08-11 08:59:41 -07:00
test Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
tests Initial commit 2025-08-11 08:59:41 -07:00
.dockerignore Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
.gitignore Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
bootc-image-builder Initial commit 2025-08-11 08:59:41 -07:00
build.sh Initial commit 2025-08-11 08:59:41 -07:00
Containerfile Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
HACKING.md Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
Makefile Initial commit 2025-08-11 08:59:41 -07:00
package-requires.txt Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
pytest.ini Add missing files and complete Debian fork setup - Add missing test files and directories - Add missing configuration files - Complete Debian-specific adaptations - Replace Red Hat/Fedora tooling with Debian equivalents - Add comprehensive test suite for Debian bootc-image-builder 2025-08-11 09:22:41 -07:00
README.md Initial commit 2025-08-11 08:59:41 -07:00

Debian bootc-image-builder

A fork of the original bootc-image-builder adapted to support Debian-based container images, enabling the creation of Particle OS - an immutable, Debian-based atomic desktop system.

Project Overview

This project is fundamentally an osbuild module development project, not a simple bootc-image-builder fork. The bootc-image-builder tool is merely a thin Go wrapper that orchestrates osbuild manifests. The real work involves creating new osbuild stages that can handle Debian's mutable toolchain within an immutable paradigm.

Critical Insight

We're not just porting from Fedora to Debian; we're adapting a mutable toolchain (apt/dpkg, initramfs-tools) to work within an immutable system architecture (OSTree). This is a paradigm shift, not a simple translation.

Source Code Structure

debian-bootc-image-builder/
├── bib/                          # Main Go application (from original)
│   ├── cmd/                      # Command-line interfaces
│   ├── internal/                 # Internal packages
│   │   ├── aptsolver/           # APT package solver
│   │   ├── debian-patch/        # Debian-specific patches
│   │   ├── solver/              # Generic solver interface
│   │   ├── distrodef/           # Distribution definitions
│   │   └── imagetypes/          # Image type handling
│   └── data/                    # Distribution definitions
│       └── defs/                # YAML definition files
├── osbuild-stages/               # Debian-specific osbuild stages
│   ├── apt-stage/               # Debian package management
│   ├── debian-kernel-stage/     # Debian kernel handling
│   ├── debian-grub-stage/       # Debian GRUB configuration
│   └── debian-filesystem-stage/ # Debian filesystem setup
├── tests/                       # Test suite
│   ├── unit/                    # Unit tests for osbuild stages
│   ├── integration/             # Integration tests
│   └── performance/             # Performance tests
├── scripts/                     # Build and development scripts
├── containerfiles/              # Example container definitions
├── calamares/                   # Installer integration
└── customization/               # Customization examples

Development Setup

Prerequisites

  • Go: >= 1.20
  • Python: >= 3.8 (for osbuild development)
  • Podman: Container runtime
  • Git: Version control

Quick Start

# Clone the repository
git clone https://github.com/your-org/debian-bootc-image-builder.git
cd debian-bootc-image-builder

# Set up development environment
make setup-dev

# Build the project
make build

# Run tests
make test

Key Components

osbuild Stages

  • apt-stage: Debian package management using APT/dpkg
  • debian-kernel-stage: Kernel handling with initramfs-tools
  • debian-grub-stage: GRUB configuration for Debian
  • debian-filesystem-stage: Filesystem setup for immutable Debian

Go Integration

  • bootc_validation.go: Debian bootc image validation
  • aptsolver/: APT package solver implementation
  • debian-patch/: Debian-specific patches and extensions

Distribution Definitions

  • debian-13.yaml: Complete Debian Trixie distribution definition
  • Multiple image types: qcow2, desktop, server
  • Proper stage dependencies and execution order

Testing

# Run unit tests
make test-unit

# Run integration tests
make test-integration

# Run performance tests
make test-performance

# Run all tests
make test

Building

# Build the binary
make build

# Build container image
make build-container

# Build all components
make all

Contributing

This project follows the roadmap outlined in the main documentation. Please review the current phase and contribute accordingly.

Development Workflow

  1. Check the current phase in the main documentation
  2. Review the tasks and deliverables for that phase
  3. Create feature branches for specific tasks
  4. Write tests for new osbuild stages
  5. Submit pull requests with comprehensive testing

Documentation

For comprehensive documentation, see:

License

This project is licensed under the same terms as the original bootc-image-builder project.

Acknowledgments

  • Original bootc-image-builder team for the foundational work
  • osbuild community for the excellent build system
  • Debian community for the robust package management system