50b731f1b7
Derivative of Redox OS (https://www.redox-os.org) adding: - AMD GPU driver (amdgpu) via LinuxKPI compat layer - ext4 filesystem support (ext4d scheme daemon) - ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG) - Custom branding (hostname, os-release, boot identity) Build system is full upstream Redox with RBOS overlay in local/. Patches for kernel, base, and relibc are symlinked from local/patches/ and protected from make clean/distclean. Custom recipes live in local/recipes/ with symlinks into the recipes/ search path. Build: make all CONFIG_NAME=redbear-full Sync: ./local/scripts/sync-upstream.sh
3.0 KiB
3.0 KiB
RECIPES — PACKAGE RECIPE SYSTEM
26 categories of package recipes. Each recipe = recipe.toml defining fetch→build→stage.
STRUCTURE
recipes/
├── core/ # kernel, bootloader, relibc, init, base drivers — AGENTS.md
├── wip/ # Wayland, KDE, GNOME, driver WIP ports — AGENTS.md
├── libs/ # Libraries: mesa, cairo, SDL, zlib, openssl (~100+)
├── gui/ # Orbital display server, orbterm, orbutils
├── net/ # curl, wget, openssh, iperf3, smolnetd
├── dev/ # git, cmake, meson, cargo, rustc
├── games/ # spacecadetpinball, dosbox
├── shells/ # bash, ion, fish, zsh
├── tools/ # diffutils, findutils, coreutils, grep
├── sound/ # alsa-lib, pulseaudio, vorbis
├── terminal/ # Terminal emulators
├── video/ # ffmpeg
├── web/ # netsurf, firefox (WIP)
├── fonts/ # dejavu, freefont
├── icons/ # adwaita, cosmic, pop
├── archives/ # tar, unzip, zstd, bzip2
├── demos/ # orbclient demos, osdemo
├── other/ # Uncategorised packages
└── tests/ # Test suites
WHERE TO LOOK
| Task | Location |
|---|---|
| Add a Rust app | recipes/<category>/<name>/recipe.toml with template = "cargo" |
| Add a C/C++ app | template = "cmake" or "configure" or "custom" |
| Find a dependency | Search recipes/*/recipe.toml for package name |
| Fix a port | Look for redox.patch in the recipe dir |
| Track upstream | Check upstream = field in [source] |
HOW TO ADD A RECIPE
mkdir -p recipes/<category>/<name>
cat > recipes/<category>/<name>/recipe.toml << 'EOF'
#TODO: describe what's missing (required for WIP)
[source]
git = "https://github.com/user/repo.git"
upstream = "https://github.com/original/repo.git"
branch = "redox"
[build]
template = "cargo" # or cmake, meson, make, configure, custom
dependencies = [
"dep1",
"dep2",
]
EOF
Recipe Environment Variables
| Variable | Purpose |
|---|---|
COOKBOOK_SOURCE |
Extracted source directory |
COOKBOOK_STAGE |
Install target (staging dir) |
COOKBOOK_SYSROOT |
Sysroot with built dependencies |
COOKBOOK_TARGET |
Target triple (e.g. x86_64-unknown-redox) |
COOKBOOK_CARGO |
Cargo with correct target |
COOKBOOK_MAKE |
Make with correct flags |
Build Templates
| Template | Use For |
|---|---|
cargo |
Rust projects |
cmake |
CMake-based C/C++ |
meson |
Meson-based projects |
configure |
GNU Autotools |
make |
Simple Makefile projects |
custom |
Anything else (use script = """...""") |
CONVENTIONS
- WIP recipes: MUST start with
#TODOcomment - Production recipes: BLAKE3 hash required for tar sources
- Patches:
redox.patchin recipe dir, applied automatically - Source:
git =for git repos,tar =for tarballs, can use both - Fork tracking:
git =points to Redox fork,upstream =to original - Dynamic linking: use
DYNAMIC_INITmacro in custom scripts