Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
robojerk
4abcf611c6 Backup all current Debian-specific changes before reorganization
Some checks failed
Checks / Spelling (push) Has been cancelled
Checks / Python Linters (push) Has been cancelled
Checks / Shell Linters (push) Has been cancelled
Checks / 📦 Packit config lint (push) Has been cancelled
Checks / 🔍 Check for valid snapshot urls (push) Has been cancelled
Checks / 🔍 Check JSON files for formatting consistency (push) Has been cancelled
Generate / Documentation (push) Has been cancelled
Generate / Test Data (push) Has been cancelled
Tests / Unittest (push) Has been cancelled
Tests / Assembler test (legacy) (push) Has been cancelled
Tests / Smoke run: unittest as normal user on default runner (push) Has been cancelled
2025-08-26 15:35:57 -07:00
2 changed files with 103 additions and 12 deletions

View file

@ -1,7 +1,6 @@
# ~~OSBuild~~ Debian Forge
A
fork of osbuild, but for debian.
A fork of osbuild, but for debian.
Try to be as close as 1:1 os possible
Build-Pipelines for Operating System Artifacts
@ -48,11 +47,12 @@ Additionally, the built-in stages require:
* `coreutils >= 8.31`
* `curl >= 7.68`
* `qemu-img >= 4.2.0`
* `rpm >= 4.15`
* `debootstrap >= 1.0.0`
* `mmdebstrap >= 1.0.0`
* `tar >= 1.32`
* `util-linux >= 235`
* `skopeo`
* `python3-librepo`
* `ostree >= 2023.1`
At build-time, the following software is required:
@ -71,7 +71,7 @@ The main binary is safe to run on your development machine with:
To build an image:
python3 -m osbuild --libdir . ./test/data/manifests/fedora-boot.json
python3 -m osbuild --libdir . ./test-debian-manifest.json
Every osbuild run uses a cache for downloaded files (sources) and, optionally,
checkpoints of artifacts built by stages and pipelines. By default, this is
@ -93,7 +93,7 @@ Also keep in mind that some tests require those prerequisites,
otherwise they are skipped
```
sudo dnf install -y systemd-boot-unsigned erofs-utils pykickstart podman xfsprogs
sudo apt install -y debootstrap mmdebstrap sbuild schroot ostree qemu-utils
```
## Installation
@ -103,20 +103,20 @@ additional artifacts such as tools (i.e: `osbuild-mpp`) sources, stages, schemas
and SELinux policies.
For this reason, doing an installation from source is not trivial and the easier
way to install it is to create the set of RPMs that contain all these components.
way to install it is to create the set of Debian packages that contain all these components.
This can be done with the `rpm` make target, i.e:
This can be done with the `deb` make target, i.e:
```sh
sudo dnf builddep osbuild.spec
make rpm
sudo apt builddep osbuild.spec
make deb
```
A set of RPMs will be created in the `./rpmbuild/RPMS/noarch/` directory and can
A set of Debian packages will be created in the `./debbuild/` directory and can
be installed in the system using the distribution package manager, i.e:
```sh
sudo dnf install ./rpmbuild/RPMS/noarch/*.rpm
sudo apt install ./debbuild/*.deb
```
## Repository

91
todo.txt Normal file
View file

@ -0,0 +1,91 @@
# Debian Forge File Structure Reorganization Plan
# Goal: Achieve near 1:1 compatibility with original osbuild repository structure
## Phase 1: Restore Original Structure
- [ ] Verify core directories exist and are complete:
- [ ] .devcontainer/
- [ ] .github/
- [ ] assemblers/
- [ ] data/
- [ ] devices/
- [ ] docs/
- [ ] inputs/
- [ ] mounts/
- [ ] osbuild/ # Core Python package
- [ ] runners/
- [ ] schemas/
- [ ] schutzbot/
- [ ] selinux/
- [ ] sources/
- [ ] stages/
- [ ] test/
- [ ] tools/
- [ ] samples/
- [ ] Restore missing configuration files:
- [ ] .bandit
- [ ] .editorconfig
- [ ] .git-blame-ignore-revs
- [ ] .gitignore
- [ ] .gitlab-ci.yml
- [ ] .mypy.ini
- [ ] .packit.yaml
- [ ] .ruff.toml
- [ ] CODEOWNERS
- [ ] Schutzfile
- [ ] osbuild.spec
- [ ] setup.cfg
- [ ] tox.ini
## Phase 2: Reorganize Debian-Specific Content
- [ ] Move Debian documentation to docs/:
- [ ] debian-forge-docs/ → docs/debian/
- [ ] Keep original docs/ structure intact
- [ ] Move Debian tests to test/:
- [ ] debian-forge-tests/ → test/debian/
- [ ] Ensure original test/ structure remains
- [ ] Move Debian blueprints to samples/:
- [ ] blueprints/ → samples/debian/
- [ ] Keep original samples/ content
- [ ] Move Debian stages to stages/:
- [ ] Ensure Debian stages integrate with existing stage structure
- [ ] Maintain original stage organization
## Phase 3: Clean Up Root Directory
- [ ] Move Python scripts to appropriate locations:
- [ ] composer_*.py → tools/ (if CLI tools) or osbuild/ (if core modules)
- [ ] debian_*.py → osbuild/ (core modules)
- [ ] build_*.py → osbuild/ (core modules)
- [ ] Remove custom build directories:
- [ ] build-environments/ → Move to .osbuild/ or create proper build system integration
- [ ] build-logs/ → Move to .osbuild/ or create proper build system integration
- [ ] artifacts/ → Move to .osbuild/ or create proper build system integration
## Phase 4: Maintain Debian Functionality
- [ ] Ensure Debian stages work with original pipeline system
- [ ] Integrate Debian package management with existing stage architecture
- [ ] Maintain OSTree support alongside original features
## Implementation Steps
1. [ ] Audit current structure against original osbuild repository
2. [ ] Create backup of current Debian-specific work
3. [ ] Restore original structure from upstream
4. [ ] Reintegrate Debian components into proper locations
5. [ ] Test functionality to ensure nothing breaks
6. [ ] Update documentation to reflect new structure
## Current Structure Issues Identified
- Extra directories: debian-forge-docs/, debian-forge-tests/, build-environments/, build-logs/, artifacts/
- Misplaced files: Python scripts in root that should be in tools/ or osbuild/
- Missing original structure: Some original directories may be incomplete
- Custom additions: Debian-specific files mixed with core structure
## Priority Order
1. High: Restore core osbuild structure
2. Medium: Reorganize Debian content
3. Low: Clean up and optimize
4. Critical: Maintain all Debian functionality during transition