Showing preview only (2,413K chars total). Download the full file or copy to clipboard to get everything.
Repository: redox-os/redox
Branch: master
Commit: 275e5253e43f
Files: 3133
Total size: 1.7 MB
Directory structure:
gitextract_v2ki18iw/
├── .cargo/
│ └── config.toml
├── .gitignore
├── .gitlab/
│ ├── issue_templates/
│ │ └── Issue_template.md
│ └── merge_request_templates/
│ └── Merge_request_template.md
├── .gitlab-ci.yml
├── CONTRIBUTING.md
├── Cargo.toml
├── HARDWARE.md
├── LICENSE
├── Makefile
├── README.md
├── TRADEMARK.md
├── bin/
│ ├── aarch64-unknown-redox-pkg-config
│ ├── i586-unknown-redox-pkg-config
│ ├── i686-unknown-redox-pkg-config
│ ├── riscv64-unknown-redox-pkg-config
│ ├── x86_64-unknown-redox-llvm-config
│ └── x86_64-unknown-redox-pkg-config
├── build.sh
├── config/
│ ├── aarch64/
│ │ ├── ci.toml
│ │ ├── demo.toml
│ │ ├── dev.toml
│ │ ├── jeremy.toml
│ │ ├── raspi3bp/
│ │ │ └── minimal.toml
│ │ └── redoxer.toml
│ ├── acid.toml
│ ├── auto-test.toml
│ ├── base.toml
│ ├── desktop-minimal.toml
│ ├── desktop.toml
│ ├── dev.toml
│ ├── i586/
│ │ ├── ci.toml
│ │ ├── demo.toml
│ │ ├── dev.toml
│ │ ├── jeremy.toml
│ │ └── redoxer.toml
│ ├── minimal.toml
│ ├── os-test.toml
│ ├── redoxer-gui.toml
│ ├── redoxer.toml
│ ├── riscv64gc/
│ │ ├── ci.toml
│ │ ├── demo.toml
│ │ ├── desktop.toml
│ │ └── jeremy.toml
│ ├── server.toml
│ ├── tests.toml
│ ├── wayland.toml
│ ├── x11.toml
│ └── x86_64/
│ ├── ci.toml
│ ├── demo.toml
│ ├── desktop-contain.toml
│ ├── full.toml
│ ├── jeremy.toml
│ ├── redoxer.toml
│ ├── rustconf2025.toml
│ └── server-demo.toml
├── flake.nix
├── mk/
│ ├── ci.mk
│ ├── config.mk
│ ├── depends.mk
│ ├── disk.mk
│ ├── fstools.mk
│ ├── podman.mk
│ ├── prefix.mk
│ ├── qemu.mk
│ ├── repo.mk
│ └── virtualbox.mk
├── native_bootstrap.sh
├── podman/
│ ├── redox-base-containerfile
│ ├── redox-gdb-containerfile
│ └── rustinstall.sh
├── podman_bootstrap.sh
├── recipes/
│ ├── archives/
│ │ ├── lz4/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── zstd/
│ │ ├── 01_redox.patch
│ │ └── recipe.toml
│ ├── artwork/
│ │ ├── pop-wallpapers/
│ │ │ └── recipe.toml
│ │ └── ubuntu-wallpapers/
│ │ └── recipe.toml
│ ├── core/
│ │ ├── base/
│ │ │ └── recipe.toml
│ │ ├── base-initfs/
│ │ │ └── recipe.toml
│ │ ├── binutils/
│ │ │ └── recipe.toml
│ │ ├── bootloader/
│ │ │ └── recipe.toml
│ │ ├── contain/
│ │ │ └── recipe.toml
│ │ ├── coreutils/
│ │ │ └── recipe.toml
│ │ ├── dash/
│ │ │ └── recipe.toml
│ │ ├── extrautils/
│ │ │ └── recipe.toml
│ │ ├── findutils/
│ │ │ └── recipe.toml
│ │ ├── installer/
│ │ │ └── recipe.toml
│ │ ├── ion/
│ │ │ └── recipe.toml
│ │ ├── kernel/
│ │ │ └── recipe.toml
│ │ ├── netdb/
│ │ │ └── recipe.toml
│ │ ├── netutils/
│ │ │ └── recipe.toml
│ │ ├── pkgar/
│ │ │ └── recipe.toml
│ │ ├── pkgutils/
│ │ │ └── recipe.toml
│ │ ├── profiled/
│ │ │ └── recipe.toml
│ │ ├── redoxfs/
│ │ │ └── recipe.toml
│ │ ├── relibc/
│ │ │ └── recipe.toml
│ │ ├── strace/
│ │ │ └── recipe.toml
│ │ ├── userutils/
│ │ │ └── recipe.toml
│ │ └── uutils/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── demos/
│ │ ├── cairo-demo/
│ │ │ ├── cairo-demo.c
│ │ │ └── recipe.toml
│ │ ├── cmatrix/
│ │ │ └── recipe.toml
│ │ ├── cpal/
│ │ │ └── recipe.toml
│ │ ├── dynamic-example/
│ │ │ └── recipe.toml
│ │ ├── exampled/
│ │ │ └── recipe.toml
│ │ ├── gears/
│ │ │ ├── gears.c
│ │ │ └── recipe.toml
│ │ ├── glutin/
│ │ │ └── recipe.toml
│ │ ├── iced/
│ │ │ └── recipe.toml
│ │ ├── orbclient/
│ │ │ └── recipe.toml
│ │ ├── osdemo/
│ │ │ ├── osdemo.c
│ │ │ └── recipe.toml
│ │ ├── pixelcannon/
│ │ │ └── recipe.toml
│ │ ├── sdl2-gears/
│ │ │ ├── gears.c
│ │ │ └── recipe.toml
│ │ └── winit/
│ │ └── recipe.toml
│ ├── dev/
│ │ ├── autoconf/
│ │ │ └── recipe.toml
│ │ ├── automake/
│ │ │ └── recipe.toml
│ │ ├── binutils-gdb/
│ │ │ └── recipe.toml
│ │ ├── clang21/
│ │ │ └── recipe.toml
│ │ ├── cmake/
│ │ │ └── recipe.toml
│ │ ├── composer/
│ │ │ └── recipe.toml
│ │ ├── crates-io-index/
│ │ │ └── recipe.toml
│ │ ├── fontconfig/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── gcc13/
│ │ │ └── recipe.toml
│ │ ├── gdbserver/
│ │ │ └── recipe.toml
│ │ ├── gdk-pixbuf/
│ │ │ └── recipe.toml
│ │ ├── git/
│ │ │ ├── git.patch
│ │ │ └── recipe.toml
│ │ ├── gitoxide/
│ │ │ └── recipe.toml
│ │ ├── gnu-make/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── hello-world-examples/
│ │ │ └── recipe.toml
│ │ ├── jq/
│ │ │ └── recipe.toml
│ │ ├── lang/
│ │ │ └── gawk/
│ │ │ └── recipe.toml
│ │ ├── lci/
│ │ │ └── recipe.toml
│ │ ├── libtool/
│ │ │ └── recipe.toml
│ │ ├── lld21/
│ │ │ └── recipe.toml
│ │ ├── llvm18/
│ │ │ ├── native.cmake
│ │ │ └── recipe.toml
│ │ ├── llvm21/
│ │ │ ├── native.cmake
│ │ │ └── recipe.toml
│ │ ├── lua54/
│ │ │ └── recipe.toml
│ │ ├── luajit/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── luarocks/
│ │ │ └── recipe.toml
│ │ ├── nasm/
│ │ │ └── recipe.toml
│ │ ├── patch/
│ │ │ ├── 01_no_rlimit.patch
│ │ │ ├── 02_no_chown.patch
│ │ │ ├── 03_renameat2.patch
│ │ │ └── recipe.toml
│ │ ├── pciids/
│ │ │ └── recipe.toml
│ │ ├── php84/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── pkg-config/
│ │ │ └── recipe.toml
│ │ ├── python312/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── redoxer/
│ │ │ └── recipe.toml
│ │ ├── rust/
│ │ │ ├── .gitignore
│ │ │ ├── config-bootstrap.toml
│ │ │ ├── config.toml
│ │ │ └── recipe.toml
│ │ └── rustpython/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── doc/
│ │ └── book/
│ │ └── recipe.toml
│ ├── emulators/
│ │ ├── dosbox/
│ │ │ ├── 01_redox.patch
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── flycast/
│ │ │ └── recipe.toml
│ │ ├── libretro-super/
│ │ │ └── recipe.toml
│ │ ├── mednafen/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── mgba/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── retroarch/
│ │ │ └── recipe.toml
│ │ ├── rs-nes/
│ │ │ └── recipe.toml
│ │ ├── rust64/
│ │ │ └── recipe.toml
│ │ ├── rustual-boy/
│ │ │ └── recipe.toml
│ │ ├── rvvm/
│ │ │ └── recipe.toml
│ │ └── scummvm/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── files/
│ │ └── hf/
│ │ └── recipe.toml
│ ├── fonts/
│ │ ├── dejavu/
│ │ │ └── recipe.toml
│ │ ├── freefont/
│ │ │ └── recipe.toml
│ │ ├── ibm-plex/
│ │ │ └── recipe.toml
│ │ ├── intel-one-mono/
│ │ │ └── recipe.toml
│ │ ├── noto-color-emoji/
│ │ │ └── recipe.toml
│ │ └── ttf-hack/
│ │ └── recipe.toml
│ ├── games/
│ │ ├── classicube/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── devilutionx/
│ │ │ └── recipe.toml
│ │ ├── eduke32/
│ │ │ ├── manifest
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── freeciv/
│ │ │ └── recipe.toml
│ │ ├── freedoom/
│ │ │ └── recipe.toml
│ │ ├── game-2048/
│ │ │ └── recipe.toml
│ │ ├── gigalomania/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── hematite/
│ │ │ └── recipe.toml
│ │ ├── neverball/
│ │ │ ├── manifest-neverball
│ │ │ ├── manifest-neverputt
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── neverball-sols/
│ │ │ └── recipe.toml
│ │ ├── openjazz/
│ │ │ └── recipe.toml
│ │ ├── openjk/
│ │ │ └── recipe.toml
│ │ ├── openttd/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── openttd-opengfx/
│ │ │ └── recipe.toml
│ │ ├── openttd-openmsx/
│ │ │ └── recipe.toml
│ │ ├── openttd-opensfx/
│ │ │ └── recipe.toml
│ │ ├── opentyrian/
│ │ │ ├── manifest
│ │ │ ├── recipe.toml
│ │ │ ├── redox.patch
│ │ │ └── tyrian21.zip.sha
│ │ ├── prboom/
│ │ │ ├── 01_redox.patch
│ │ │ └── recipe.toml
│ │ ├── quakespasm/
│ │ │ ├── manifest
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── redox-games/
│ │ │ └── recipe.toml
│ │ ├── sm64ex/
│ │ │ ├── .gitignore
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── sopwith/
│ │ │ └── recipe.toml
│ │ └── spacecadetpinball/
│ │ └── recipe.toml
│ ├── graphics/
│ │ └── procedural-wallpapers-rs/
│ │ └── recipe.toml
│ ├── groups/
│ │ ├── auto-test/
│ │ │ ├── auto-test.ion
│ │ │ └── recipe.toml
│ │ ├── demo/
│ │ │ └── recipe.toml
│ │ ├── desktop/
│ │ │ └── recipe.toml
│ │ ├── dev-essential/
│ │ │ └── recipe.toml
│ │ ├── dev-redox/
│ │ │ └── recipe.toml
│ │ ├── llvm21-common/
│ │ │ └── recipe.toml
│ │ ├── mate-common/
│ │ │ └── recipe.toml
│ │ ├── redox-tests/
│ │ │ └── recipe.toml
│ │ ├── server/
│ │ │ └── recipe.toml
│ │ ├── sys/
│ │ │ └── recipe.toml
│ │ ├── sys-gui/
│ │ │ └── recipe.toml
│ │ ├── x11-full/
│ │ │ └── recipe.toml
│ │ └── x11-minimal/
│ │ └── recipe.toml
│ ├── gui/
│ │ ├── installer-gui/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── orbdata/
│ │ │ └── recipe.toml
│ │ ├── orbital/
│ │ │ └── recipe.toml
│ │ ├── orbterm/
│ │ │ └── recipe.toml
│ │ ├── orbutils/
│ │ │ └── recipe.toml
│ │ └── orbutils-background/
│ │ └── recipe.toml
│ ├── icons/
│ │ ├── cosmic-icons/
│ │ │ └── recipe.toml
│ │ ├── hicolor-icon-theme/
│ │ │ └── recipe.toml
│ │ └── pop-icon-theme/
│ │ └── recipe.toml
│ ├── libs/
│ │ ├── atk/
│ │ │ └── recipe.toml
│ │ ├── cairo/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── duktape/
│ │ │ └── recipe.toml
│ │ ├── expat/
│ │ │ └── recipe.toml
│ │ ├── ffmpeg6/
│ │ │ ├── binutils-2.41.patch
│ │ │ ├── ffmpeg.patch
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── freetype2/
│ │ │ └── recipe.toml
│ │ ├── fribidi/
│ │ │ └── recipe.toml
│ │ ├── glib/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── gstreamer/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── harfbuzz/
│ │ │ └── recipe.toml
│ │ ├── jansson/
│ │ │ ├── jansson.patch
│ │ │ └── recipe.toml
│ │ ├── libarchive/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── libatomic/
│ │ │ └── recipe.toml
│ │ ├── libcosmic/
│ │ │ └── recipe.toml
│ │ ├── libffi/
│ │ │ └── recipe.toml
│ │ ├── libflac/
│ │ │ └── recipe.toml
│ │ ├── libgcc/
│ │ │ └── recipe.toml
│ │ ├── libgmp/
│ │ │ └── recipe.toml
│ │ ├── libiconv/
│ │ │ ├── 01_redox.patch
│ │ │ └── recipe.toml
│ │ ├── libjpeg/
│ │ │ └── recipe.toml
│ │ ├── libmodplug1/
│ │ │ └── recipe.toml
│ │ ├── libmpfr/
│ │ │ └── recipe.toml
│ │ ├── libnettle/
│ │ │ └── recipe.toml
│ │ ├── libogg/
│ │ │ └── recipe.toml
│ │ ├── libopus/
│ │ │ └── recipe.toml
│ │ ├── liborbital/
│ │ │ └── recipe.toml
│ │ ├── libpng/
│ │ │ └── recipe.toml
│ │ ├── libpsl/
│ │ │ └── recipe.toml
│ │ ├── libsodium/
│ │ │ └── recipe.toml
│ │ ├── libssh2/
│ │ │ └── recipe.toml
│ │ ├── libstdcxx/
│ │ │ └── recipe.toml
│ │ ├── libstdcxx-v3/
│ │ │ └── recipe.toml
│ │ ├── liburcu/
│ │ │ ├── 0001-Fix-compilation-on-Redox-OS.patch
│ │ │ └── recipe.toml
│ │ ├── libuv/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── libvorbis/
│ │ │ └── recipe.toml
│ │ ├── libxml2/
│ │ │ └── recipe.toml
│ │ ├── lua-compat-53/
│ │ │ └── recipe.toml
│ │ ├── luv/
│ │ │ └── recipe.toml
│ │ ├── mesa/
│ │ │ └── recipe.toml
│ │ ├── mesa-glu/
│ │ │ └── recipe.toml
│ │ ├── mpc/
│ │ │ └── recipe.toml
│ │ ├── ncurses/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── ncursesw/
│ │ │ └── recipe.toml
│ │ ├── nghttp2/
│ │ │ └── recipe.toml
│ │ ├── openssl1/
│ │ │ └── recipe.toml
│ │ ├── opusfile/
│ │ │ └── recipe.toml
│ │ ├── pango/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── pcre/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── pcre2/
│ │ │ └── recipe.toml
│ │ ├── pixman/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── readline/
│ │ │ └── recipe.toml
│ │ ├── redox-fatfs/
│ │ │ └── recipe.toml
│ │ ├── sdl-gfx/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl1/
│ │ │ └── recipe.toml
│ │ ├── sdl1-image/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl1-mixer/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl1-ttf/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl2/
│ │ │ └── recipe.toml
│ │ ├── sdl2-gfx/
│ │ │ └── recipe.toml
│ │ ├── sdl2-image/
│ │ │ └── recipe.toml
│ │ ├── sdl2-mixer/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl2-ttf/
│ │ │ └── recipe.toml
│ │ ├── termcap/
│ │ │ └── recipe.toml
│ │ ├── unibilium/
│ │ │ └── recipe.toml
│ │ ├── utf8proc/
│ │ │ └── recipe.toml
│ │ └── zlib/
│ │ └── recipe.toml
│ ├── math/
│ │ └── orbcalculator/
│ │ └── recipe.toml
│ ├── net/
│ │ ├── download/
│ │ │ ├── curl/
│ │ │ │ └── recipe.toml
│ │ │ └── wget/
│ │ │ └── recipe.toml
│ │ ├── http/
│ │ │ └── simple-http-server/
│ │ │ └── recipe.toml
│ │ ├── nginx/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── openssh/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── redox-ssh/
│ │ │ └── recipe.toml
│ │ └── rsync/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── other/
│ │ ├── ca-certificates/
│ │ │ └── recipe.toml
│ │ ├── cookbook/
│ │ │ └── recipe.toml
│ │ ├── generaluser-gs/
│ │ │ └── recipe.toml
│ │ ├── jeremy/
│ │ │ └── recipe.toml
│ │ ├── myfiles/
│ │ │ └── recipe.toml
│ │ ├── rustconf2025/
│ │ │ └── recipe.toml
│ │ ├── shared-mime-info/
│ │ │ └── recipe.toml
│ │ └── terminfo/
│ │ └── recipe.toml
│ ├── shells/
│ │ ├── bash/
│ │ │ ├── etc/
│ │ │ │ ├── bash.bashrc
│ │ │ │ ├── profile
│ │ │ │ └── skel/
│ │ │ │ ├── .bashrc
│ │ │ │ └── .profile
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── nushell/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── sound/
│ │ ├── freepats/
│ │ │ └── recipe.toml
│ │ ├── rodioplay/
│ │ │ └── recipe.toml
│ │ └── timidity/
│ │ └── recipe.toml
│ ├── terminal/
│ │ ├── bash-completion/
│ │ │ └── recipe.toml
│ │ ├── pls/
│ │ │ └── recipe.toml
│ │ └── zoxide/
│ │ └── recipe.toml
│ ├── tests/
│ │ ├── acid/
│ │ │ └── recipe.toml
│ │ ├── acid-bins/
│ │ │ └── recipe.toml
│ │ ├── benchmarks/
│ │ │ └── recipe.toml
│ │ ├── hello-redox/
│ │ │ ├── files/
│ │ │ │ ├── test.c
│ │ │ │ ├── test.cpp
│ │ │ │ ├── test.go
│ │ │ │ ├── test.java
│ │ │ │ ├── test.js
│ │ │ │ ├── test.lua
│ │ │ │ ├── test.py
│ │ │ │ ├── test.rs
│ │ │ │ └── test.zig
│ │ │ └── recipe.toml
│ │ ├── iperf3/
│ │ │ └── recipe.toml
│ │ ├── openposixtestsuite/
│ │ │ └── recipe.toml
│ │ ├── os-test/
│ │ │ └── recipe.toml
│ │ ├── os-test-bins/
│ │ │ └── recipe.toml
│ │ ├── os-test-result/
│ │ │ └── recipe.toml
│ │ ├── redox-posix-tests/
│ │ │ └── recipe.toml
│ │ ├── relibc-tests/
│ │ │ └── recipe.toml
│ │ ├── relibc-tests-bins/
│ │ │ └── recipe.toml
│ │ ├── schedrs/
│ │ │ └── recipe.toml
│ │ ├── sysbench/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── vttest/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── tools/
│ │ ├── bzip2/
│ │ │ ├── pkgconfig
│ │ │ └── recipe.toml
│ │ ├── cleye/
│ │ │ └── recipe.toml
│ │ ├── cosmic-edit/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── cosmic-files/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── cosmic-reader/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── cosmic-settings/
│ │ │ └── recipe.toml
│ │ ├── cosmic-store/
│ │ │ └── recipe.toml
│ │ ├── cosmic-term/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── cosmic-text/
│ │ │ └── recipe.toml
│ │ ├── diffutils/
│ │ │ ├── diffutils.patch
│ │ │ └── recipe.toml
│ │ ├── fd/
│ │ │ └── recipe.toml
│ │ ├── file/
│ │ │ └── recipe.toml
│ │ ├── friar/
│ │ │ └── recipe.toml
│ │ ├── gettext/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── gnu-binutils/
│ │ │ ├── 01_build_fix.patch
│ │ │ └── recipe.toml
│ │ ├── gnu-grep/
│ │ │ ├── grep.patch
│ │ │ └── recipe.toml
│ │ ├── helix/
│ │ │ └── recipe.toml
│ │ ├── libc-bench/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── lsd/
│ │ │ └── recipe.toml
│ │ ├── nano/
│ │ │ └── recipe.toml
│ │ ├── onefetch/
│ │ │ └── recipe.toml
│ │ ├── patchelf/
│ │ │ └── recipe.toml
│ │ ├── pathfinder/
│ │ │ └── recipe.toml
│ │ ├── perg/
│ │ │ └── recipe.toml
│ │ ├── periodictable/
│ │ │ └── recipe.toml
│ │ ├── powerline/
│ │ │ └── recipe.toml
│ │ ├── ripgrep/
│ │ │ └── recipe.toml
│ │ ├── schismtracker/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sed/
│ │ │ ├── recipe.toml
│ │ │ └── sed.patch
│ │ ├── shellharden/
│ │ │ └── recipe.toml
│ │ ├── shellstorm/
│ │ │ └── recipe.toml
│ │ ├── smith/
│ │ │ └── recipe.toml
│ │ ├── sodium/
│ │ │ └── recipe.toml
│ │ ├── tokei/
│ │ │ └── recipe.toml
│ │ ├── twin-commander/
│ │ │ └── recipe.toml
│ │ ├── vim/
│ │ │ ├── recipe.toml
│ │ │ └── vim.patch
│ │ └── xz/
│ │ └── recipe.toml
│ ├── tui/
│ │ ├── goaccess/
│ │ │ ├── recipe.toml
│ │ │ ├── redox1.patch
│ │ │ └── redox2.patch
│ │ ├── mdp/
│ │ │ └── recipe.toml
│ │ └── ncdu/
│ │ └── recipe.toml
│ ├── video/
│ │ └── sdl-player/
│ │ └── recipe.toml
│ ├── web/
│ │ ├── netsurf/
│ │ │ ├── 01_redox.patch
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ └── website/
│ │ └── recipe.toml
│ └── wip/
│ ├── a11y/
│ │ ├── espeak-ng/
│ │ │ └── recipe.toml
│ │ └── orca/
│ │ └── recipe.toml
│ ├── ai/
│ │ ├── nnx/
│ │ │ └── recipe.toml
│ │ ├── rustgpt/
│ │ │ └── recipe.toml
│ │ └── tgs/
│ │ └── recipe.toml
│ ├── analysis/
│ │ ├── binsider/
│ │ │ └── recipe.toml
│ │ ├── cutter/
│ │ │ └── recipe.toml
│ │ ├── email-sleuth/
│ │ │ └── recipe.toml
│ │ ├── flowgger/
│ │ │ └── recipe.toml
│ │ ├── graphs/
│ │ │ └── recipe.toml
│ │ ├── mmdr/
│ │ │ └── recipe.toml
│ │ ├── netdata/
│ │ │ └── recipe.toml
│ │ ├── rizin/
│ │ │ └── recipe.toml
│ │ └── tmmpr/
│ │ └── recipe.toml
│ ├── archives/
│ │ ├── 7-zip/
│ │ │ └── recipe.toml
│ │ ├── lzip/
│ │ │ └── recipe.toml
│ │ ├── mlar/
│ │ │ └── recipe.toml
│ │ ├── orz/
│ │ │ └── recipe.toml
│ │ ├── ouch/
│ │ │ └── recipe.toml
│ │ ├── plzip/
│ │ │ └── recipe.toml
│ │ └── unzrip/
│ │ └── recipe.toml
│ ├── backup/
│ │ ├── borg/
│ │ │ └── recipe.toml
│ │ ├── partclone/
│ │ │ └── recipe.toml
│ │ ├── pika-backup/
│ │ │ └── recipe.toml
│ │ └── vorta/
│ │ └── recipe.toml
│ ├── bench/
│ │ ├── cargo/
│ │ │ ├── cargo-benchcmp/
│ │ │ │ └── recipe.toml
│ │ │ └── cargo-criterion/
│ │ │ └── recipe.toml
│ │ ├── dacapo-benchmarks/
│ │ │ └── recipe.toml
│ │ ├── hpc/
│ │ │ ├── hpcc/
│ │ │ │ └── recipe.toml
│ │ │ ├── hpcg/
│ │ │ │ └── recipe.toml
│ │ │ └── minibude/
│ │ │ └── recipe.toml
│ │ ├── hyperfine/
│ │ │ └── recipe.toml
│ │ ├── io/
│ │ │ ├── blogbench/
│ │ │ │ └── recipe.toml
│ │ │ ├── fio/
│ │ │ │ └── recipe.toml
│ │ │ └── simple-disk-benchmark/
│ │ │ └── recipe.toml
│ │ ├── jasonisnthappy/
│ │ │ └── recipe.toml
│ │ ├── rodinia/
│ │ │ └── recipe.toml
│ │ ├── rpc-perf/
│ │ │ └── recipe.toml
│ │ ├── stress-ng/
│ │ │ └── recipe.toml
│ │ └── suite/
│ │ └── pts/
│ │ └── recipe.toml
│ ├── codecs/
│ │ ├── dav1d/
│ │ │ └── recipe.toml
│ │ ├── faad2/
│ │ │ └── recipe.toml
│ │ ├── kvazaar/
│ │ │ └── recipe.toml
│ │ ├── rav1e/
│ │ │ └── recipe.toml
│ │ ├── svt-av1/
│ │ │ └── recipe.toml
│ │ ├── svt-hevc/
│ │ │ └── recipe.toml
│ │ ├── svt-vp9/
│ │ │ └── recipe.toml
│ │ ├── uvg266/
│ │ │ └── recipe.toml
│ │ ├── vvenc/
│ │ │ └── recipe.toml
│ │ ├── wavpack/
│ │ │ └── recipe.toml
│ │ ├── x264/
│ │ │ └── recipe.toml
│ │ └── x265/
│ │ └── recipe.toml
│ ├── containers/
│ │ ├── crun/
│ │ │ └── recipe.toml
│ │ ├── crun-vm/
│ │ │ └── recipe.toml
│ │ ├── docker/
│ │ │ └── recipe.toml
│ │ ├── podman/
│ │ │ └── recipe.toml
│ │ ├── skopeo/
│ │ │ └── recipe.toml
│ │ └── youki/
│ │ └── recipe.toml
│ ├── crypto/
│ │ ├── data2sound/
│ │ │ └── recipe.toml
│ │ ├── decoder/
│ │ │ └── recipe.toml
│ │ ├── morse2sound/
│ │ │ └── recipe.toml
│ │ ├── qrrs/
│ │ │ └── recipe.toml
│ │ ├── qrscan/
│ │ │ └── recipe.toml
│ │ ├── qrtool/
│ │ │ └── recipe.toml
│ │ ├── steg86/
│ │ │ └── recipe.toml
│ │ └── stupidfs/
│ │ └── recipe.toml
│ ├── data/
│ │ └── poppler-data/
│ │ └── recipe.toml
│ ├── data-integrity/
│ │ ├── b3sum/
│ │ │ └── recipe.toml
│ │ ├── fim/
│ │ │ └── recipe.toml
│ │ ├── hashgood/
│ │ │ └── recipe.toml
│ │ └── rapidhash/
│ │ └── recipe.toml
│ ├── data-recovery/
│ │ ├── ddrescue/
│ │ │ └── recipe.toml
│ │ ├── foremost/
│ │ │ └── recipe.toml
│ │ └── testdisk/
│ │ └── recipe.toml
│ ├── db/
│ │ ├── bobby/
│ │ │ └── recipe.toml
│ │ ├── clickhouse/
│ │ │ └── recipe.toml
│ │ ├── cockroachdb/
│ │ │ └── recipe.toml
│ │ ├── gobang/
│ │ │ └── recipe.toml
│ │ ├── influxdb/
│ │ │ └── recipe.toml
│ │ ├── iotdb/
│ │ │ └── recipe.toml
│ │ ├── jdbrowser/
│ │ │ └── recipe.toml
│ │ ├── limbo/
│ │ │ └── recipe.toml
│ │ ├── mariadb/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── mariadb-lts/
│ │ │ └── recipe.toml
│ │ ├── memcached/
│ │ │ └── recipe.toml
│ │ ├── mongodb6/
│ │ │ └── recipe.toml
│ │ ├── mongodb7/
│ │ │ └── recipe.toml
│ │ ├── mysql-server/
│ │ │ └── recipe.toml
│ │ ├── mysql-shell/
│ │ │ └── recipe.toml
│ │ ├── pgtui/
│ │ │ └── recipe.toml
│ │ ├── postgresql16/
│ │ │ └── recipe.toml
│ │ ├── postgresql18/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── rainfrog/
│ │ │ └── recipe.toml
│ │ ├── rocksdb/
│ │ │ └── recipe.toml
│ │ ├── skytable/
│ │ │ └── recipe.toml
│ │ ├── sqlite3/
│ │ │ └── recipe.toml
│ │ ├── sqllogictest/
│ │ │ └── recipe.toml
│ │ ├── stoolap/
│ │ │ └── recipe.toml
│ │ ├── tidb-server/
│ │ │ └── recipe.toml
│ │ ├── tsql/
│ │ │ └── recipe.toml
│ │ └── valkey/
│ │ └── recipe.toml
│ ├── demos/
│ │ ├── albedo/
│ │ │ └── recipe.toml
│ │ ├── appcui/
│ │ │ └── recipe.toml
│ │ ├── avian/
│ │ │ └── recipe.toml
│ │ ├── avt/
│ │ │ └── recipe.toml
│ │ ├── bevy/
│ │ │ └── recipe.toml
│ │ ├── blade/
│ │ │ └── recipe.toml
│ │ ├── blitz/
│ │ │ └── recipe.toml
│ │ ├── blockish/
│ │ │ └── recipe.toml
│ │ ├── blockishfire/
│ │ │ └── recipe.toml
│ │ ├── blue-engine/
│ │ │ └── recipe.toml
│ │ ├── bones/
│ │ │ └── recipe.toml
│ │ ├── colored/
│ │ │ └── recipe.toml
│ │ ├── comfy/
│ │ │ └── recipe.toml
│ │ ├── console-rs/
│ │ │ └── recipe.toml
│ │ ├── contrast-renderer/
│ │ │ └── recipe.toml
│ │ ├── cubecl/
│ │ │ └── recipe.toml
│ │ ├── dioxus-examples/
│ │ │ └── recipe.toml
│ │ ├── doomfire/
│ │ │ └── recipe.toml
│ │ ├── egui/
│ │ │ └── recipe.toml
│ │ ├── euc/
│ │ │ └── recipe.toml
│ │ ├── feoxdb/
│ │ │ └── recipe.toml
│ │ ├── ferris-says/
│ │ │ └── recipe.toml
│ │ ├── firewheel/
│ │ │ └── recipe.toml
│ │ ├── firework-rs/
│ │ │ └── recipe.toml
│ │ ├── fonterator/
│ │ │ └── recipe.toml
│ │ ├── fractal-rs/
│ │ │ └── recipe.toml
│ │ ├── freya/
│ │ │ └── recipe.toml
│ │ ├── fundsp/
│ │ │ └── recipe.toml
│ │ ├── funutd/
│ │ │ └── recipe.toml
│ │ ├── fyrox/
│ │ │ └── recipe.toml
│ │ ├── genpdf-rs/
│ │ │ └── recipe.toml
│ │ ├── gfx-shader-watch/
│ │ │ └── recipe.toml
│ │ ├── ggez/
│ │ │ └── recipe.toml
│ │ ├── globe-rs/
│ │ │ └── recipe.toml
│ │ ├── hotline/
│ │ │ └── recipe.toml
│ │ ├── iced-7guis/
│ │ │ └── recipe.toml
│ │ ├── if-watch/
│ │ │ └── recipe.toml
│ │ ├── imgui-examples/
│ │ │ └── recipe.toml
│ │ ├── iocraft/
│ │ │ └── recipe.toml
│ │ ├── kira/
│ │ │ └── recipe.toml
│ │ ├── kiss3d/
│ │ │ └── recipe.toml
│ │ ├── lenia/
│ │ │ └── recipe.toml
│ │ ├── macroquad/
│ │ │ └── recipe.toml
│ │ ├── mage/
│ │ │ └── recipe.toml
│ │ ├── mesa-demos/
│ │ │ └── recipe.toml
│ │ ├── mousefood/
│ │ │ └── recipe.toml
│ │ ├── nibble/
│ │ │ └── recipe.toml
│ │ ├── notan/
│ │ │ └── recipe.toml
│ │ ├── pingora/
│ │ │ └── recipe.toml
│ │ ├── pipes-rs/
│ │ │ └── recipe.toml
│ │ ├── piston/
│ │ │ └── recipe.toml
│ │ ├── pix-engine/
│ │ │ └── recipe.toml
│ │ ├── pixels/
│ │ │ └── recipe.toml
│ │ ├── raclettui/
│ │ │ └── recipe.toml
│ │ ├── rain/
│ │ │ └── recipe.toml
│ │ ├── rapier/
│ │ │ └── recipe.toml
│ │ ├── ratatui/
│ │ │ └── recipe.toml
│ │ ├── ratatui-hypertile/
│ │ │ └── recipe.toml
│ │ ├── ratzilla/
│ │ │ └── recipe.toml
│ │ ├── rend3/
│ │ │ └── recipe.toml
│ │ ├── renderling/
│ │ │ └── recipe.toml
│ │ ├── reticulum-rs/
│ │ │ └── recipe.toml
│ │ ├── rootvg/
│ │ │ └── recipe.toml
│ │ ├── rpt/
│ │ │ └── recipe.toml
│ │ ├── rsille/
│ │ │ └── recipe.toml
│ │ ├── rui/
│ │ │ └── recipe.toml
│ │ ├── ruscii/
│ │ │ └── recipe.toml
│ │ ├── rust-cairo/
│ │ │ └── recipe.sh
│ │ ├── rust-cairo-demo/
│ │ │ └── recipe.sh
│ │ ├── rustubble/
│ │ │ └── recipe.toml
│ │ ├── rustui/
│ │ │ └── recipe.toml
│ │ ├── rusty-rain/
│ │ │ └── recipe.toml
│ │ ├── servo-gtk/
│ │ │ └── recipe.toml
│ │ ├── simdjson-rs/
│ │ │ └── recipe.toml
│ │ ├── slint/
│ │ │ └── recipe.toml
│ │ ├── soft-ratatui/
│ │ │ └── recipe.toml
│ │ ├── speedy2d/
│ │ │ └── recipe.toml
│ │ ├── spinners/
│ │ │ └── recipe.toml
│ │ ├── spinoff/
│ │ │ └── recipe.toml
│ │ ├── tachyonfx/
│ │ │ └── recipe.toml
│ │ ├── taffy/
│ │ │ └── recipe.toml
│ │ ├── tenki/
│ │ │ └── recipe.toml
│ │ ├── termtree/
│ │ │ └── recipe.toml
│ │ ├── ternimal/
│ │ │ └── recipe.toml
│ │ ├── terra/
│ │ │ └── recipe.toml
│ │ ├── three-d/
│ │ │ └── recipe.toml
│ │ ├── tquic/
│ │ │ └── recipe.toml
│ │ ├── uniocr/
│ │ │ └── recipe.toml
│ │ ├── usfx/
│ │ │ └── recipe.toml
│ │ ├── vizia/
│ │ │ └── recipe.toml
│ │ ├── wavy/
│ │ │ └── recipe.toml
│ │ ├── wgpu-sky-rendering/
│ │ │ └── recipe.toml
│ │ ├── xaos/
│ │ │ └── recipe.toml
│ │ └── xilem/
│ │ └── recipe.toml
│ ├── dev/
│ │ ├── analysis/
│ │ │ ├── binocle/
│ │ │ │ └── recipe.toml
│ │ │ ├── binwalk/
│ │ │ │ └── recipe.toml
│ │ │ ├── code-minimap/
│ │ │ │ └── recipe.toml
│ │ │ ├── codevis/
│ │ │ │ └── recipe.toml
│ │ │ ├── debtmap/
│ │ │ │ └── recipe.toml
│ │ │ ├── feluda/
│ │ │ │ └── recipe.toml
│ │ │ ├── hex/
│ │ │ │ └── recipe.toml
│ │ │ ├── hgrep/
│ │ │ │ └── recipe.toml
│ │ │ ├── hl/
│ │ │ │ └── recipe.toml
│ │ │ ├── honggfuzz-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── hx/
│ │ │ │ └── recipe.toml
│ │ │ ├── pratdiff/
│ │ │ │ └── recipe.toml
│ │ │ ├── statui/
│ │ │ │ └── recipe.toml
│ │ │ ├── tinywatcher/
│ │ │ │ └── recipe.toml
│ │ │ └── zizmor/
│ │ │ └── recipe.toml
│ │ ├── blockchain/
│ │ │ ├── foundry/
│ │ │ │ └── recipe.toml
│ │ │ ├── geth/
│ │ │ │ └── recipe.toml
│ │ │ ├── solidity/
│ │ │ │ └── recipe.toml
│ │ │ └── surfpool/
│ │ │ └── recipe.toml
│ │ ├── build-system/
│ │ │ ├── ant/
│ │ │ │ └── recipe.toml
│ │ │ ├── ccache/
│ │ │ │ └── recipe.toml
│ │ │ ├── hadrian/
│ │ │ │ └── recipe.toml
│ │ │ ├── just/
│ │ │ │ └── recipe.toml
│ │ │ ├── lux/
│ │ │ │ └── recipe.toml
│ │ │ ├── meson/
│ │ │ │ └── recipe.toml
│ │ │ ├── ninja-build/
│ │ │ │ └── recipe.toml
│ │ │ ├── sbt/
│ │ │ │ └── recipe.toml
│ │ │ ├── scala-cli/
│ │ │ │ └── recipe.toml
│ │ │ └── werk/
│ │ │ └── recipe.toml
│ │ ├── cargo-tools/
│ │ │ ├── cargo-about/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-all-features/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-attribution/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-audit/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-auditable/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-auto/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-autodd/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-binutils/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-bloat/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-c/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-cache/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-careful/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-check-deadlock/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-checkmate/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-clone/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-clone-crate/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-compete/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-component/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-crev/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-deny/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-depsize/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-derivefmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-diet/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-dist/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-docs/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-docs-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-duplicates/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-edit/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-equip/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-expand/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-featalign/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-feature/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-feature-combinations/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-files/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-fixture/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-ft/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-fuzz/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-gc/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-geiger/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-generate/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-get/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-goggles/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-guppy/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-hack/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-hackerman/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-hakari/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-http-registry/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-info/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-lambda/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-leet/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-leptos/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-license/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-limit/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-list/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-llvm-cov/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-llvm-lines/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-loc/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-lockup/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-machete/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-make/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-modules/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-msrv/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-multivers/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-mutants/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-nextest/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-outofdate/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-packager/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-patch/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-preflight/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-public-api/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-px/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-qtest/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-rdme/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-release/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-remark/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-run-bin/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-scaffold/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-selector/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-semver-checks/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-shear/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-show-asm/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-single-line/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-smart-release/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-spellcheck/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-subspace/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-supply-chain/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-sweep/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-sync-rdme/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-tally/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-tarpaulin/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-temp/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-trend/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-trim/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-udeps/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-ui/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-unfmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-unmaintained/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-update/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-vendor-filterer/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-vet/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-wasi/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-wasix/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-watch/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-whatfeatures/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-wizard/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-workspace-version/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-workspaces/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-zigbuild/
│ │ │ │ └── recipe.toml
│ │ │ ├── carwash/
│ │ │ │ └── recipe.toml
│ │ │ └── crunch/
│ │ │ └── recipe.toml
│ │ ├── debug/
│ │ │ ├── dr-memory/
│ │ │ │ └── recipe.toml
│ │ │ ├── gdb/
│ │ │ │ └── recipe.toml
│ │ │ ├── nnd/
│ │ │ │ └── recipe.toml
│ │ │ ├── rr-debugger/
│ │ │ │ └── recipe.toml
│ │ │ ├── termfu/
│ │ │ │ └── recipe.toml
│ │ │ └── yetty/
│ │ │ └── recipe.toml
│ │ ├── framework/
│ │ │ ├── biome/
│ │ │ │ └── recipe.toml
│ │ │ ├── deno/
│ │ │ │ └── recipe.toml
│ │ │ ├── feather/
│ │ │ │ └── recipe.toml
│ │ │ ├── moonzoon/
│ │ │ │ └── recipe.toml
│ │ │ └── sphere/
│ │ │ └── recipe.toml
│ │ ├── game-engine/
│ │ │ ├── defold-engine/
│ │ │ │ └── recipe.toml
│ │ │ ├── fyrox-template/
│ │ │ │ └── recipe.toml
│ │ │ ├── godot4/
│ │ │ │ └── recipe.toml
│ │ │ └── redot4/
│ │ │ └── recipe.toml
│ │ ├── git-tools/
│ │ │ ├── auto-commit/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-absorb/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-chain/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-cliff/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-grab/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-graph/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-ignore-generator/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-interactive-rebase-tool/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-lfs/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-repo-manager/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-statuses/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-subset/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-tool-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-tools-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── gitlogue/
│ │ │ │ └── recipe.toml
│ │ │ ├── gitv/
│ │ │ │ └── recipe.toml
│ │ │ ├── keifu/
│ │ │ │ └── recipe.toml
│ │ │ ├── lazygh/
│ │ │ │ └── recipe.toml
│ │ │ ├── lazygit/
│ │ │ │ └── recipe.toml
│ │ │ ├── oyo/
│ │ │ │ └── recipe.toml
│ │ │ ├── patchy/
│ │ │ │ └── recipe.toml
│ │ │ ├── riff/
│ │ │ │ └── recipe.toml
│ │ │ ├── serie/
│ │ │ │ └── recipe.toml
│ │ │ └── shackle-shell/
│ │ │ └── recipe.toml
│ │ ├── graphics/
│ │ │ ├── bonzomatic/
│ │ │ │ └── recipe.toml
│ │ │ ├── pilka/
│ │ │ │ └── recipe.toml
│ │ │ └── sh4der-jockey/
│ │ │ └── recipe.toml
│ │ ├── hw/
│ │ │ ├── design/
│ │ │ │ └── recipe.toml
│ │ │ ├── librepcb/
│ │ │ │ └── recipe.toml
│ │ │ └── uefitool/
│ │ │ └── recipe.toml
│ │ ├── ide/
│ │ │ ├── asm-lsp/
│ │ │ │ └── recipe.toml
│ │ │ ├── astronvim/
│ │ │ │ └── recipe.toml
│ │ │ └── rust-analyzer/
│ │ │ └── recipe.toml
│ │ ├── lang/
│ │ │ ├── artichoke/
│ │ │ │ └── recipe.toml
│ │ │ ├── blueprint/
│ │ │ │ └── recipe.toml
│ │ │ ├── brimstone/
│ │ │ │ └── recipe.toml
│ │ │ ├── cjit/
│ │ │ │ └── recipe.toml
│ │ │ ├── dotnet8/
│ │ │ │ └── recipe.toml
│ │ │ ├── elixir/
│ │ │ │ └── recipe.toml
│ │ │ ├── elm/
│ │ │ │ └── recipe.toml
│ │ │ ├── erlang/
│ │ │ │ └── recipe.toml
│ │ │ ├── ghc/
│ │ │ │ └── recipe.toml
│ │ │ ├── ghostscript/
│ │ │ │ └── recipe.toml
│ │ │ ├── go/
│ │ │ │ └── recipe.toml
│ │ │ ├── goiaba/
│ │ │ │ └── recipe.toml
│ │ │ ├── java/
│ │ │ │ ├── openjdk11/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── openjdk17/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── openjdk21/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── openjdk8/
│ │ │ │ └── recipe.toml
│ │ │ ├── kotlin/
│ │ │ │ └── recipe.toml
│ │ │ ├── lacc/
│ │ │ │ └── recipe.toml
│ │ │ ├── llvm-mingw/
│ │ │ │ └── recipe.toml
│ │ │ ├── mono/
│ │ │ │ └── recipe.toml
│ │ │ ├── nodejs-21/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── nodejs-24/
│ │ │ │ ├── 01_redox.patch
│ │ │ │ └── recipe.toml
│ │ │ ├── perl5/
│ │ │ │ ├── configure_tool.sh
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox
│ │ │ ├── php80/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── python37/
│ │ │ │ ├── config.site
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── python39/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── rilua/
│ │ │ │ └── recipe.toml
│ │ │ ├── ristretto/
│ │ │ │ └── recipe.toml
│ │ │ ├── ruby/
│ │ │ │ └── recipe.toml
│ │ │ ├── scala/
│ │ │ │ └── recipe.toml
│ │ │ ├── scc/
│ │ │ │ └── recipe.toml
│ │ │ ├── tcc/
│ │ │ │ └── recipe.toml
│ │ │ ├── tsuki/
│ │ │ │ └── recipe.toml
│ │ │ ├── tur/
│ │ │ │ └── recipe.toml
│ │ │ ├── vala/
│ │ │ │ └── recipe.toml
│ │ │ ├── wrecc/
│ │ │ │ └── recipe.toml
│ │ │ ├── xylo/
│ │ │ │ └── recipe.toml
│ │ │ └── zig/
│ │ │ └── recipe.toml
│ │ ├── managers/
│ │ │ ├── moon/
│ │ │ │ └── recipe.toml
│ │ │ ├── proto/
│ │ │ │ └── recipe.toml
│ │ │ └── ratifact/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── abi-cafe/
│ │ │ │ └── recipe.toml
│ │ │ ├── add-determinism/
│ │ │ │ └── recipe.toml
│ │ │ ├── allocscope/
│ │ │ │ └── recipe.toml
│ │ │ ├── alquitran/
│ │ │ │ └── recipe.toml
│ │ │ ├── alt/
│ │ │ │ └── recipe.toml
│ │ │ ├── apitrace/
│ │ │ │ └── recipe.toml
│ │ │ ├── apr/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── apr-util/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── argp-standalone/
│ │ │ │ └── recipe.toml
│ │ │ ├── bender/
│ │ │ │ └── recipe.toml
│ │ │ ├── bison/
│ │ │ │ └── recipe.toml
│ │ │ ├── bite/
│ │ │ │ └── recipe.toml
│ │ │ ├── boon/
│ │ │ │ └── recipe.toml
│ │ │ ├── bugstalker/
│ │ │ │ └── recipe.toml
│ │ │ ├── cackle/
│ │ │ │ └── recipe.toml
│ │ │ ├── capnproto/
│ │ │ │ └── recipe.toml
│ │ │ ├── ccs-tools/
│ │ │ │ └── recipe.toml
│ │ │ ├── charm++/
│ │ │ │ └── recipe.toml
│ │ │ ├── chars/
│ │ │ │ └── recipe.toml
│ │ │ ├── cling/
│ │ │ │ └── recipe.toml
│ │ │ ├── colm/
│ │ │ │ └── recipe.toml
│ │ │ ├── colmena/
│ │ │ │ └── recipe.toml
│ │ │ ├── commit/
│ │ │ │ └── recipe.toml
│ │ │ ├── cppunit/
│ │ │ │ └── recipe.toml
│ │ │ ├── crates-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── criner/
│ │ │ │ └── recipe.toml
│ │ │ ├── crosstool-ng/
│ │ │ │ └── recipe.toml
│ │ │ ├── customasm/
│ │ │ │ └── recipe.toml
│ │ │ ├── debugedit/
│ │ │ │ └── recipe.toml
│ │ │ ├── deploy-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── deps-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── difftastic/
│ │ │ │ └── recipe.toml
│ │ │ ├── dioxus/
│ │ │ │ └── recipe.toml
│ │ │ ├── doxygen/
│ │ │ │ └── recipe.toml
│ │ │ ├── dtool/
│ │ │ │ └── recipe.toml
│ │ │ ├── ecargo/
│ │ │ │ └── recipe.toml
│ │ │ ├── elfshaker/
│ │ │ │ └── recipe.toml
│ │ │ ├── elfutils/
│ │ │ │ └── recipe.toml
│ │ │ ├── espmonitor/
│ │ │ │ └── recipe.toml
│ │ │ ├── eww/
│ │ │ │ └── recipe.toml
│ │ │ ├── fal/
│ │ │ │ └── recipe.toml
│ │ │ ├── fazi/
│ │ │ │ └── recipe.toml
│ │ │ ├── firedbg/
│ │ │ │ └── recipe.toml
│ │ │ ├── flamegraph/
│ │ │ │ └── recipe.toml
│ │ │ ├── flex/
│ │ │ │ └── recipe.toml
│ │ │ ├── gem5/
│ │ │ │ └── recipe.toml
│ │ │ ├── get-blessed/
│ │ │ │ └── recipe.toml
│ │ │ ├── gex/
│ │ │ │ └── recipe.toml
│ │ │ ├── gfold/
│ │ │ │ └── recipe.toml
│ │ │ ├── ghostpdl/
│ │ │ │ └── recipe.toml
│ │ │ ├── gist-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── gitlab-cargo-shim/
│ │ │ │ └── recipe.toml
│ │ │ ├── gperf/
│ │ │ │ └── recipe.toml
│ │ │ ├── grcov/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtest/
│ │ │ │ └── recipe.toml
│ │ │ ├── guile/
│ │ │ │ └── recipe.toml
│ │ │ ├── harper/
│ │ │ │ └── recipe.toml
│ │ │ ├── headers/
│ │ │ │ └── recipe.toml
│ │ │ ├── hexyl/
│ │ │ │ └── recipe.toml
│ │ │ ├── honggfuzz/
│ │ │ │ └── recipe.toml
│ │ │ ├── htmlq/
│ │ │ │ └── recipe.toml
│ │ │ ├── hvm/
│ │ │ │ └── recipe.toml
│ │ │ ├── icemaker/
│ │ │ │ └── recipe.toml
│ │ │ ├── inko/
│ │ │ │ └── recipe.toml
│ │ │ ├── intltool/
│ │ │ │ └── recipe.toml
│ │ │ ├── irust/
│ │ │ │ └── recipe.toml
│ │ │ ├── ispc/
│ │ │ │ └── recipe.toml
│ │ │ ├── jaq/
│ │ │ │ └── recipe.toml
│ │ │ ├── jco/
│ │ │ │ └── recipe.toml
│ │ │ ├── jujutsu/
│ │ │ │ └── recipe.toml
│ │ │ ├── kicad/
│ │ │ │ └── recipe.toml
│ │ │ ├── kickstart/
│ │ │ │ └── recipe.toml
│ │ │ ├── knope/
│ │ │ │ └── recipe.toml
│ │ │ ├── kondo/
│ │ │ │ └── recipe.toml
│ │ │ ├── ktra/
│ │ │ │ └── recipe.toml
│ │ │ ├── lading/
│ │ │ │ └── recipe.toml
│ │ │ ├── leetup/
│ │ │ │ └── recipe.toml
│ │ │ ├── leptosfmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── level-zero/
│ │ │ │ └── recipe.toml
│ │ │ ├── license-generator/
│ │ │ │ └── recipe.toml
│ │ │ ├── licensure/
│ │ │ │ └── recipe.toml
│ │ │ ├── loadlibrary/
│ │ │ │ └── recipe.toml
│ │ │ ├── lockdiff/
│ │ │ │ └── recipe.toml
│ │ │ ├── loco/
│ │ │ │ └── recipe.toml
│ │ │ ├── lttng-ust/
│ │ │ │ └── recipe.toml
│ │ │ ├── lurk/
│ │ │ │ └── recipe.toml
│ │ │ ├── margo/
│ │ │ │ └── recipe.toml
│ │ │ ├── memtest-vulkan/
│ │ │ │ └── recipe.toml
│ │ │ ├── mise/
│ │ │ │ └── recipe.toml
│ │ │ ├── mkrs/
│ │ │ │ └── recipe.toml
│ │ │ ├── mnn/
│ │ │ │ └── recipe.toml
│ │ │ ├── mold/
│ │ │ │ └── recipe.toml
│ │ │ ├── morty/
│ │ │ │ └── recipe.toml
│ │ │ ├── musl-fts/
│ │ │ │ └── recipe.toml
│ │ │ ├── musl-obstack/
│ │ │ │ └── recipe.toml
│ │ │ ├── ncnn/
│ │ │ │ └── recipe.toml
│ │ │ ├── necessist/
│ │ │ │ └── recipe.toml
│ │ │ ├── netradiant/
│ │ │ │ └── recipe.toml
│ │ │ ├── ngspice/
│ │ │ │ └── recipe.toml
│ │ │ ├── not-perf/
│ │ │ │ └── recipe.toml
│ │ │ ├── novops/
│ │ │ │ └── recipe.toml
│ │ │ ├── omni/
│ │ │ │ └── recipe.toml
│ │ │ ├── omnibor-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── opam/
│ │ │ │ └── recipe.toml
│ │ │ ├── opencascade/
│ │ │ │ └── recipe.toml
│ │ │ ├── openradioss/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxc/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxidizer/
│ │ │ │ └── recipe.toml
│ │ │ ├── panamax/
│ │ │ │ └── recipe.toml
│ │ │ ├── phantom-ci/
│ │ │ │ └── recipe.toml
│ │ │ ├── piccolo/
│ │ │ │ └── recipe.toml
│ │ │ ├── pixi/
│ │ │ │ └── recipe.toml
│ │ │ ├── precious/
│ │ │ │ └── recipe.toml
│ │ │ ├── probe-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── projclean/
│ │ │ │ └── recipe.toml
│ │ │ ├── projections/
│ │ │ │ └── recipe.toml
│ │ │ ├── protobuf/
│ │ │ │ └── recipe.toml
│ │ │ ├── protofetch/
│ │ │ │ └── recipe.toml
│ │ │ ├── putzen/
│ │ │ │ └── recipe.toml
│ │ │ ├── pxp/
│ │ │ │ └── recipe.toml
│ │ │ ├── qbe/
│ │ │ │ └── recipe.toml
│ │ │ ├── quicktest/
│ │ │ │ └── recipe.toml
│ │ │ ├── radicle/
│ │ │ │ └── recipe.toml
│ │ │ ├── ragel/
│ │ │ │ └── recipe.toml
│ │ │ ├── rattler-build/
│ │ │ │ └── recipe.toml
│ │ │ ├── rbasefind/
│ │ │ │ └── recipe.toml
│ │ │ ├── redict/
│ │ │ │ └── recipe.toml
│ │ │ ├── redis/
│ │ │ │ └── recipe.toml
│ │ │ ├── release-plz/
│ │ │ │ └── recipe.toml
│ │ │ ├── renderdoc/
│ │ │ │ └── recipe.toml
│ │ │ ├── resym/
│ │ │ │ └── recipe.toml
│ │ │ ├── rgit/
│ │ │ │ └── recipe.toml
│ │ │ ├── rhack/
│ │ │ │ └── recipe.toml
│ │ │ ├── rudra/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-counter-strings/
│ │ │ │ └── recipe.toml
│ │ │ ├── rusty-radamsa/
│ │ │ │ └── recipe.toml
│ │ │ ├── shaderc/
│ │ │ │ └── recipe.toml
│ │ │ ├── silicon/
│ │ │ │ └── recipe.toml
│ │ │ ├── souper/
│ │ │ │ └── recipe.toml
│ │ │ ├── steel/
│ │ │ │ └── recipe.toml
│ │ │ ├── stgit/
│ │ │ │ └── recipe.toml
│ │ │ ├── stitch/
│ │ │ │ └── recipe.toml
│ │ │ ├── svd2rust/
│ │ │ │ └── recipe.toml
│ │ │ ├── swig/
│ │ │ │ └── recipe.toml
│ │ │ ├── tcl/
│ │ │ │ └── recipe.toml
│ │ │ ├── tk/
│ │ │ │ └── recipe.toml
│ │ │ ├── tnn/
│ │ │ │ └── recipe.toml
│ │ │ ├── tokio-console/
│ │ │ │ └── recipe.toml
│ │ │ ├── tv/
│ │ │ │ └── recipe.toml
│ │ │ ├── twiggy/
│ │ │ │ └── recipe.toml
│ │ │ ├── ucd-generate/
│ │ │ │ └── recipe.toml
│ │ │ ├── ut/
│ │ │ │ └── recipe.toml
│ │ │ ├── valgrind/
│ │ │ │ └── recipe.toml
│ │ │ ├── verrou/
│ │ │ │ └── recipe.toml
│ │ │ ├── wrkflw/
│ │ │ │ └── recipe.toml
│ │ │ ├── zeal/
│ │ │ │ └── recipe.toml
│ │ │ └── zepter/
│ │ │ └── recipe.toml
│ │ ├── patchers/
│ │ │ └── hexpatch/
│ │ │ └── recipe.toml
│ │ ├── perf/
│ │ │ ├── flamelens/
│ │ │ │ └── recipe.toml
│ │ │ ├── samply/
│ │ │ │ └── recipe.toml
│ │ │ ├── tracy/
│ │ │ │ └── recipe.toml
│ │ │ └── vkpeak/
│ │ │ └── recipe.toml
│ │ ├── proofs/
│ │ │ ├── cvc5/
│ │ │ │ └── recipe.toml
│ │ │ ├── eldarica/
│ │ │ │ └── recipe.toml
│ │ │ └── z3/
│ │ │ └── recipe.toml
│ │ ├── python/
│ │ │ ├── py-spy/
│ │ │ │ └── recipe.toml
│ │ │ ├── pyapp/
│ │ │ │ └── recipe.toml
│ │ │ ├── pylyzer/
│ │ │ │ └── recipe.toml
│ │ │ ├── pyrev/
│ │ │ │ └── recipe.toml
│ │ │ ├── pyscan/
│ │ │ │ └── recipe.toml
│ │ │ ├── python-launcher/
│ │ │ │ └── recipe.toml
│ │ │ ├── ruff/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ └── uv/
│ │ │ └── recipe.toml
│ │ ├── rust-tools/
│ │ │ ├── bacon/
│ │ │ │ └── recipe.toml
│ │ │ ├── c2rust/
│ │ │ │ └── recipe.toml
│ │ │ ├── cbindgen/
│ │ │ │ └── recipe.toml
│ │ │ ├── clippy/
│ │ │ │ └── recipe.toml
│ │ │ ├── coq-of-rust/
│ │ │ │ └── recipe.toml
│ │ │ ├── crater/
│ │ │ │ └── recipe.toml
│ │ │ ├── diplomat/
│ │ │ │ └── recipe.toml
│ │ │ ├── dylint/
│ │ │ │ └── recipe.toml
│ │ │ ├── evcxr-jupyter/
│ │ │ │ └── recipe.toml
│ │ │ ├── evcxr-repl/
│ │ │ │ └── recipe.toml
│ │ │ ├── ferrisup/
│ │ │ │ └── recipe.toml
│ │ │ ├── kani/
│ │ │ │ └── recipe.toml
│ │ │ ├── miri/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-script/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-to-npm/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustfmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustup/
│ │ │ │ └── recipe.toml
│ │ │ ├── sccache/
│ │ │ │ └── recipe.toml
│ │ │ ├── scriptisto/
│ │ │ │ └── recipe.toml
│ │ │ └── tagref/
│ │ │ └── recipe.toml
│ │ ├── training/
│ │ │ └── gittype/
│ │ │ └── recipe.toml
│ │ ├── vcs/
│ │ │ └── mercurial/
│ │ │ └── recipe.toml
│ │ ├── wasm/
│ │ │ ├── binaryen/
│ │ │ │ └── recipe.toml
│ │ │ ├── trunk/
│ │ │ │ └── recipe.toml
│ │ │ ├── wabt/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasm-pack/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasm-tools/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasmer/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasmi/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasminspect/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasmtime/
│ │ │ │ └── recipe.toml
│ │ │ └── wepl/
│ │ │ └── recipe.toml
│ │ └── web/
│ │ ├── emscripten/
│ │ │ └── recipe.toml
│ │ ├── vox/
│ │ │ └── recipe.toml
│ │ └── zola/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── doc/
│ │ ├── bookokrat/
│ │ │ └── recipe.toml
│ │ ├── brief/
│ │ │ └── recipe.toml
│ │ ├── doctave/
│ │ │ └── recipe.toml
│ │ ├── gnome-doc-utils/
│ │ │ └── recipe.toml
│ │ ├── gtk-doc/
│ │ │ └── recipe.toml
│ │ ├── mdbook/
│ │ │ └── recipe.toml
│ │ ├── newdoc/
│ │ │ └── recipe.toml
│ │ ├── po4a/
│ │ │ └── recipe.toml
│ │ ├── tendril-wiki/
│ │ │ └── recipe.toml
│ │ └── texinfo/
│ │ └── recipe.toml
│ ├── edu/
│ │ ├── bibiman/
│ │ │ └── recipe.toml
│ │ ├── hacker-laws/
│ │ │ └── recipe.toml
│ │ ├── nanocore/
│ │ │ └── recipe.toml
│ │ ├── rustlings/
│ │ │ └── recipe.toml
│ │ └── rusty-tape/
│ │ └── recipe.toml
│ ├── emu/
│ │ ├── cpu/
│ │ │ ├── 6502-emulator/
│ │ │ │ └── recipe.toml
│ │ │ ├── 8086-emulator/
│ │ │ │ └── recipe.toml
│ │ │ ├── mipsy/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustzx/
│ │ │ │ └── recipe.toml
│ │ │ ├── rvemu/
│ │ │ │ └── recipe.toml
│ │ │ ├── scemu/
│ │ │ │ └── recipe.toml
│ │ │ └── unicorn/
│ │ │ └── recipe.toml
│ │ ├── game-console/
│ │ │ ├── azahar/
│ │ │ │ └── recipe.toml
│ │ │ ├── clementine/
│ │ │ │ └── recipe.toml
│ │ │ ├── dolphin-emu/
│ │ │ │ └── recipe.toml
│ │ │ ├── finalburn-neo/
│ │ │ │ └── recipe.toml
│ │ │ ├── gameboy/
│ │ │ │ ├── boytacean/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── gameroy/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── mimic/
│ │ │ │ └── recipe.toml
│ │ │ ├── gopher64/
│ │ │ │ └── recipe.toml
│ │ │ ├── jgenesis/
│ │ │ │ └── recipe.toml
│ │ │ ├── mame/
│ │ │ │ └── recipe.toml
│ │ │ ├── melonds/
│ │ │ │ └── recipe.toml
│ │ │ ├── meru/
│ │ │ │ └── recipe.toml
│ │ │ ├── mupen64plus/
│ │ │ │ └── recipe.toml
│ │ │ ├── obliteration/
│ │ │ │ └── recipe.toml
│ │ │ ├── pcsx2/
│ │ │ │ └── recipe.toml
│ │ │ ├── picodrive/
│ │ │ │ └── recipe.toml
│ │ │ ├── play/
│ │ │ │ └── recipe.toml
│ │ │ ├── ppsspp/
│ │ │ │ └── recipe.toml
│ │ │ ├── ps1/
│ │ │ │ ├── duckstation/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── pcsx-rearmed/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── rpsx/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── trapezoid/
│ │ │ │ └── recipe.toml
│ │ │ ├── rpcs3/
│ │ │ │ └── recipe.toml
│ │ │ ├── shadps4/
│ │ │ │ └── recipe.toml
│ │ │ ├── snes9x/
│ │ │ │ └── recipe.toml
│ │ │ ├── tetanes/
│ │ │ │ └── recipe.toml
│ │ │ ├── uoyabause/
│ │ │ │ └── recipe.toml
│ │ │ ├── vita3k/
│ │ │ │ └── recipe.toml
│ │ │ ├── xemu/
│ │ │ │ └── recipe.toml
│ │ │ ├── xenia-canary/
│ │ │ │ └── recipe.toml
│ │ │ └── zsnes/
│ │ │ └── recipe.toml
│ │ ├── mobile/
│ │ │ ├── touchhle/
│ │ │ │ └── recipe.toml
│ │ │ └── wie/
│ │ │ └── recipe.toml
│ │ ├── pc/
│ │ │ ├── darling/
│ │ │ │ └── recipe.toml
│ │ │ ├── martypc/
│ │ │ │ └── recipe.toml
│ │ │ ├── opengmk/
│ │ │ │ └── recipe.toml
│ │ │ └── ruffle/
│ │ │ └── recipe.toml
│ │ ├── security/
│ │ │ └── rust-u2f/
│ │ │ └── recipe.toml
│ │ └── win/
│ │ ├── boxedwine/
│ │ │ └── recipe.toml
│ │ ├── hangover/
│ │ │ └── recipe.toml
│ │ ├── retrowin32/
│ │ │ └── recipe.toml
│ │ └── wine-stable/
│ │ └── recipe.toml
│ ├── files/
│ │ ├── exi/
│ │ │ └── recipe.toml
│ │ ├── lsv/
│ │ │ └── recipe.toml
│ │ ├── mc/
│ │ │ └── recipe.toml
│ │ └── unf/
│ │ └── recipe.toml
│ ├── finance/
│ │ ├── crypto/
│ │ │ ├── bitcoin/
│ │ │ │ ├── btc-vanity/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── btcpay-server/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── electrum/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── liana/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── nakamoto-wallet/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── nakatoshi/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── ord/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── pushtx/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── rusty-blockparser/
│ │ │ │ └── recipe.toml
│ │ │ ├── eth/
│ │ │ │ ├── lighthouse/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── reth/
│ │ │ │ └── recipe.toml
│ │ │ └── monero/
│ │ │ ├── gupax/
│ │ │ │ └── recipe.toml
│ │ │ └── xmrig/
│ │ │ └── recipe.toml
│ │ ├── donation/
│ │ │ └── cargo-fund/
│ │ │ └── recipe.toml
│ │ ├── market/
│ │ │ ├── apcacli/
│ │ │ │ └── recipe.toml
│ │ │ ├── merkato/
│ │ │ │ └── recipe.toml
│ │ │ └── tick-rs/
│ │ │ └── recipe.toml
│ │ ├── mgmt/
│ │ │ ├── gnucash/
│ │ │ │ └── recipe.toml
│ │ │ └── tackler-ng/
│ │ │ └── recipe.toml
│ │ └── rex/
│ │ └── recipe.toml
│ ├── fonts/
│ │ ├── fontfor/
│ │ │ └── recipe.toml
│ │ ├── fontforge/
│ │ │ └── recipe.toml
│ │ ├── gerb/
│ │ │ └── recipe.toml
│ │ ├── nerd-fonts/
│ │ │ └── recipe.toml
│ │ ├── noto/
│ │ │ └── recipe.toml
│ │ ├── noto-sans-cjk/
│ │ │ └── recipe.toml
│ │ ├── noto-serif-cjk/
│ │ │ └── recipe.toml
│ │ └── sitra/
│ │ └── recipe.toml
│ ├── fuse/
│ │ ├── archivemount/
│ │ │ └── recipe.toml
│ │ ├── btfs/
│ │ │ └── recipe.toml
│ │ ├── cryfs/
│ │ │ └── recipe.toml
│ │ ├── cvmfs/
│ │ │ └── recipe.toml
│ │ ├── dislocker/
│ │ │ └── recipe.toml
│ │ ├── dwarfs/
│ │ │ └── recipe.toml
│ │ ├── e2fsprogs/
│ │ │ └── recipe.toml
│ │ ├── exfat-fuse/
│ │ │ └── recipe.toml
│ │ ├── ffmpegfs/
│ │ │ └── recipe.toml
│ │ ├── fuse-ext2/
│ │ │ └── recipe.toml
│ │ ├── fuse-nfs/
│ │ │ └── recipe.toml
│ │ ├── fuse-zip/
│ │ │ └── recipe.toml
│ │ ├── glusterfs/
│ │ │ └── recipe.toml
│ │ ├── goofys/
│ │ │ └── recipe.toml
│ │ ├── hfsfuse/
│ │ │ └── recipe.toml
│ │ ├── httpdirfs/
│ │ │ └── recipe.toml
│ │ ├── ifuse/
│ │ │ └── recipe.toml
│ │ ├── indexfs/
│ │ │ └── recipe.toml
│ │ ├── lazyfs/
│ │ │ └── recipe.toml
│ │ ├── lis/
│ │ │ └── recipe.toml
│ │ ├── littlefs/
│ │ │ └── recipe.toml
│ │ ├── loggedfs/
│ │ │ └── recipe.toml
│ │ ├── mergerfs/
│ │ │ └── recipe.toml
│ │ ├── moosefs/
│ │ │ └── recipe.toml
│ │ ├── mount-zip/
│ │ │ └── recipe.toml
│ │ ├── ntfs-3g/
│ │ │ └── recipe.toml
│ │ ├── oku-fs/
│ │ │ └── recipe.toml
│ │ ├── pifs/
│ │ │ └── recipe.toml
│ │ ├── rencfs/
│ │ │ └── recipe.toml
│ │ ├── s3fs/
│ │ │ └── recipe.toml
│ │ ├── securefs/
│ │ │ └── recipe.toml
│ │ ├── simple-mtpfs/
│ │ │ └── recipe.toml
│ │ ├── squashfuse/
│ │ │ └── recipe.toml
│ │ ├── unionfs-fuse/
│ │ │ └── recipe.toml
│ │ └── unreliablefs/
│ │ └── recipe.toml
│ ├── games/
│ │ ├── action/
│ │ │ ├── battleship-rs/
│ │ │ │ └── recipe.toml
│ │ │ └── bevy-combat/
│ │ │ └── recipe.toml
│ │ ├── data/
│ │ │ ├── 0ad-data/
│ │ │ │ └── recipe.toml
│ │ │ ├── crosshare-data/
│ │ │ │ └── recipe.toml
│ │ │ ├── luanti-data/
│ │ │ │ └── recipe.toml
│ │ │ ├── openjazz-shareware-data/
│ │ │ │ ├── jazzdemo.rar.sha
│ │ │ │ ├── manifest
│ │ │ │ └── recipe.toml
│ │ │ └── quake1-shareware/
│ │ │ ├── manifest
│ │ │ ├── pak0.pak.sha
│ │ │ ├── quake106.zip.sha
│ │ │ └── recipe.toml
│ │ ├── engines/
│ │ │ ├── chocolate-doom/
│ │ │ │ └── recipe.toml
│ │ │ ├── crispy-doom/
│ │ │ │ └── recipe.toml
│ │ │ ├── gemrb/
│ │ │ │ └── recipe.toml
│ │ │ ├── ioquake3/
│ │ │ │ └── recipe.toml
│ │ │ ├── love/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── luanti/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── odamex/
│ │ │ │ └── recipe.toml
│ │ │ ├── openlara/
│ │ │ │ ├── assets/
│ │ │ │ │ └── README.md
│ │ │ │ └── recipe.toml
│ │ │ ├── opentomb/
│ │ │ │ └── recipe.toml
│ │ │ ├── rbdoom3-bfg/
│ │ │ │ └── recipe.toml
│ │ │ ├── room4doom/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-doom/
│ │ │ │ └── recipe.toml
│ │ │ ├── shockolate/
│ │ │ │ └── recipe.toml
│ │ │ ├── uzdoom/
│ │ │ │ └── recipe.toml
│ │ │ ├── vkquake/
│ │ │ │ └── recipe.toml
│ │ │ ├── vkquake2/
│ │ │ │ └── recipe.toml
│ │ │ ├── xash3d-fwgs/
│ │ │ │ └── recipe.toml
│ │ │ └── yquake2/
│ │ │ └── recipe.toml
│ │ ├── fps/
│ │ │ ├── assaultcube/
│ │ │ │ └── recipe.toml
│ │ │ ├── betterspades/
│ │ │ │ └── recipe.toml
│ │ │ ├── et-legacy/
│ │ │ │ └── recipe.toml
│ │ │ ├── openarena/
│ │ │ │ └── recipe.toml
│ │ │ ├── openspades-free/
│ │ │ │ └── recipe.toml
│ │ │ ├── openspades-free-pak/
│ │ │ │ └── recipe.toml
│ │ │ ├── smokin-guns/
│ │ │ │ └── recipe.toml
│ │ │ ├── unvanquished/
│ │ │ │ └── recipe.toml
│ │ │ ├── xonotic/
│ │ │ │ └── recipe.toml
│ │ │ └── zerospades-free/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── math/
│ │ │ ├── binbreak/
│ │ │ │ └── recipe.toml
│ │ │ ├── cosmic-ext-2048/
│ │ │ │ └── recipe.toml
│ │ │ ├── sudoku-rs/
│ │ │ │ └── recipe.toml
│ │ │ └── tuxmath/
│ │ │ └── recipe.toml
│ │ ├── music/
│ │ │ ├── performous/
│ │ │ │ └── recipe.toml
│ │ │ ├── performous-composer/
│ │ │ │ └── recipe.toml
│ │ │ └── stepmania/
│ │ │ └── recipe.toml
│ │ ├── open-world/
│ │ │ ├── all-is-cubes/
│ │ │ │ └── recipe.toml
│ │ │ ├── asciicker/
│ │ │ │ └── recipe.toml
│ │ │ ├── cytopia/
│ │ │ │ └── recipe.toml
│ │ │ ├── cytopia-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── ethertia/
│ │ │ │ └── recipe.toml
│ │ │ ├── leafish/
│ │ │ │ └── recipe.toml
│ │ │ ├── teloren/
│ │ │ │ └── recipe.toml
│ │ │ └── veloren/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── blightmud/
│ │ │ │ └── recipe.toml
│ │ │ ├── mudlet/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxycards/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-sadari-cli/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustorio/
│ │ │ │ └── recipe.toml
│ │ │ ├── sandbox-rs1/
│ │ │ │ └── recipe.toml
│ │ │ ├── slint-tetris/
│ │ │ │ └── recipe.toml
│ │ │ ├── sshattrick/
│ │ │ │ └── recipe.toml
│ │ │ ├── terdle/
│ │ │ │ └── recipe.toml
│ │ │ ├── tetromino/
│ │ │ │ └── recipe.toml
│ │ │ ├── tintin/
│ │ │ │ └── recipe.toml
│ │ │ ├── turdle/
│ │ │ │ └── recipe.toml
│ │ │ ├── unvanquished-benchmarks/
│ │ │ │ └── recipe.toml
│ │ │ ├── uqm/
│ │ │ │ └── recipe.toml
│ │ │ ├── vong/
│ │ │ │ └── recipe.toml
│ │ │ ├── vvvvvv/
│ │ │ │ └── recipe.toml
│ │ │ └── wesnoth/
│ │ │ └── recipe.toml
│ │ ├── platform/
│ │ │ ├── irrlamb/
│ │ │ │ └── recipe.toml
│ │ │ └── supertux/
│ │ │ └── recipe.toml
│ │ ├── puzzle/
│ │ │ ├── conduit/
│ │ │ │ └── recipe.toml
│ │ │ ├── crosstui/
│ │ │ │ └── recipe.toml
│ │ │ └── setrixtui/
│ │ │ └── recipe.toml
│ │ ├── racing/
│ │ │ ├── q3rally/
│ │ │ │ └── recipe.toml
│ │ │ └── supertuxkart/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── rpg/
│ │ │ ├── dcss/
│ │ │ │ └── recipe.toml
│ │ │ └── kingslayer/
│ │ │ └── recipe.toml
│ │ ├── rts/
│ │ │ ├── mindustry/
│ │ │ │ └── recipe.toml
│ │ │ └── mindustry-beta/
│ │ │ └── recipe.toml
│ │ ├── servers/
│ │ │ └── cuberite/
│ │ │ └── recipe.toml
│ │ ├── shooter/
│ │ │ ├── asciiarena/
│ │ │ │ └── recipe.toml
│ │ │ ├── call-of-ferris/
│ │ │ │ └── recipe.toml
│ │ │ └── empty-clip/
│ │ │ └── recipe.toml
│ │ ├── simulation/
│ │ │ ├── egregoria/
│ │ │ │ └── recipe.toml
│ │ │ ├── formicarium/
│ │ │ │ └── recipe.toml
│ │ │ ├── game-of-life-piston/
│ │ │ │ └── recipe.toml
│ │ │ ├── game-of-life-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── nbodysim/
│ │ │ │ └── recipe.toml
│ │ │ ├── sandbox-rs2/
│ │ │ │ └── recipe.toml
│ │ │ └── symbiants/
│ │ │ └── recipe.toml
│ │ ├── space/
│ │ │ ├── endless-sky/
│ │ │ │ └── recipe.toml
│ │ │ ├── naev/
│ │ │ │ └── recipe.toml
│ │ │ ├── osirion/
│ │ │ │ └── recipe.toml
│ │ │ ├── outfly/
│ │ │ │ └── recipe.toml
│ │ │ ├── rebels-in-the-sky/
│ │ │ │ └── recipe.toml
│ │ │ └── rust-belt/
│ │ │ └── recipe.toml
│ │ ├── strategy/
│ │ │ ├── 0ad/
│ │ │ │ └── recipe.toml
│ │ │ ├── asmfish/
│ │ │ │ └── recipe.toml
│ │ │ ├── balatro-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── castle-game/
│ │ │ │ └── recipe.toml
│ │ │ ├── cell-graph-risk/
│ │ │ │ └── recipe.toml
│ │ │ ├── chess-engine/
│ │ │ │ └── recipe.toml
│ │ │ ├── chess-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── chessmd/
│ │ │ │ └── recipe.toml
│ │ │ ├── draughts/
│ │ │ │ └── recipe.toml
│ │ │ ├── hammurabi/
│ │ │ │ └── recipe.toml
│ │ │ ├── hnefatafl-copenhagen/
│ │ │ │ └── recipe.toml
│ │ │ ├── mazter/
│ │ │ │ └── recipe.toml
│ │ │ ├── minesweep-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── offline-chess-puzzles/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-sudoku/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustoku/
│ │ │ │ └── recipe.toml
│ │ │ ├── ship-of-harkinian/
│ │ │ │ └── recipe.toml
│ │ │ ├── stockfish/
│ │ │ │ └── recipe.toml
│ │ │ ├── tage/
│ │ │ │ └── recipe.toml
│ │ │ ├── tetris-demo/
│ │ │ │ └── recipe.toml
│ │ │ ├── tic-tac-toe-rs/
│ │ │ │ └── recipe.toml
│ │ │ └── warsow/
│ │ │ └── recipe.toml
│ │ ├── syobonaction/
│ │ │ ├── 01_redox.patch
│ │ │ └── recipe.toml
│ │ └── tools/
│ │ ├── deutex/
│ │ │ └── recipe.toml
│ │ └── oxyromon/
│ │ └── recipe.toml
│ ├── gnome/
│ │ ├── aisleriot/
│ │ │ └── recipe.toml
│ │ ├── brasero/
│ │ │ └── recipe.toml
│ │ ├── cheese/
│ │ │ └── recipe.toml
│ │ ├── evince/
│ │ │ └── recipe.toml
│ │ ├── file-roller/
│ │ │ └── recipe.toml
│ │ ├── geary/
│ │ │ └── recipe.toml
│ │ ├── gimp/
│ │ │ └── recipe.toml
│ │ ├── gnome-2048/
│ │ │ └── recipe.toml
│ │ ├── gnome-boxes/
│ │ │ └── recipe.toml
│ │ ├── gnome-builder/
│ │ │ └── recipe.toml
│ │ ├── gnome-calculator/
│ │ │ └── recipe.toml
│ │ ├── gnome-chess/
│ │ │ └── recipe.toml
│ │ ├── gnome-connections/
│ │ │ └── recipe.toml
│ │ ├── gnome-files/
│ │ │ └── recipe.toml
│ │ ├── gnome-image-viewer/
│ │ │ └── recipe.toml
│ │ ├── gnome-keyring/
│ │ │ └── recipe.toml
│ │ ├── gnome-sudoku/
│ │ │ └── recipe.toml
│ │ ├── gnome-text-editor/
│ │ │ └── recipe.toml
│ │ ├── gnome-web/
│ │ │ └── recipe.toml
│ │ ├── pitivi/
│ │ │ └── recipe.toml
│ │ ├── simple-scan/
│ │ │ └── recipe.toml
│ │ └── snapshot/
│ │ └── recipe.toml
│ ├── graphics/
│ │ ├── converters/
│ │ │ ├── inkdrop/
│ │ │ │ └── recipe.toml
│ │ │ └── vtracer/
│ │ │ └── recipe.toml
│ │ ├── editors/
│ │ │ ├── blender/
│ │ │ │ └── recipe.toml
│ │ │ ├── blender-lts/
│ │ │ │ └── recipe.toml
│ │ │ ├── eyedropper/
│ │ │ │ └── recipe.toml
│ │ │ ├── opentoonz/
│ │ │ │ └── recipe.toml
│ │ │ ├── pencil2d/
│ │ │ │ └── recipe.toml
│ │ │ └── texel/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── appleseed/
│ │ │ │ └── recipe.toml
│ │ │ ├── c-ray/
│ │ │ │ └── recipe.toml
│ │ │ ├── cmark/
│ │ │ │ └── recipe.toml
│ │ │ ├── curvis/
│ │ │ │ └── recipe.toml
│ │ │ ├── darktable/
│ │ │ │ └── recipe.toml
│ │ │ ├── derive-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── dify/
│ │ │ │ └── recipe.toml
│ │ │ ├── dssim/
│ │ │ │ └── recipe.toml
│ │ │ ├── embree/
│ │ │ │ └── recipe.toml
│ │ │ ├── flowbetween/
│ │ │ │ └── recipe.toml
│ │ │ ├── gaffer/
│ │ │ │ └── recipe.toml
│ │ │ ├── glou/
│ │ │ │ └── recipe.toml
│ │ │ ├── gmic/
│ │ │ │ └── recipe.toml
│ │ │ ├── gmic-qt/
│ │ │ │ └── recipe.toml
│ │ │ ├── graphviz/
│ │ │ │ └── recipe.toml
│ │ │ ├── halo/
│ │ │ │ └── recipe.toml
│ │ │ ├── hdr10plus-tool/
│ │ │ │ └── recipe.toml
│ │ │ ├── image-sieve/
│ │ │ │ └── recipe.toml
│ │ │ ├── incompact3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── kantig/
│ │ │ │ └── recipe.toml
│ │ │ ├── lpl/
│ │ │ │ └── recipe.toml
│ │ │ ├── luxcorerender/
│ │ │ │ └── recipe.toml
│ │ │ ├── lyon/
│ │ │ │ └── recipe.toml
│ │ │ ├── matugen/
│ │ │ │ └── recipe.toml
│ │ │ ├── naga/
│ │ │ │ └── recipe.toml
│ │ │ ├── ocrs/
│ │ │ │ └── recipe.toml
│ │ │ ├── oculante/
│ │ │ │ └── recipe.toml
│ │ │ ├── openscad/
│ │ │ │ └── recipe.toml
│ │ │ ├── ospray/
│ │ │ │ └── recipe.toml
│ │ │ ├── ospray-studio/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxipng/
│ │ │ │ └── recipe.toml
│ │ │ ├── paraview/
│ │ │ │ └── recipe.toml
│ │ │ ├── paraview-data/
│ │ │ │ └── recipe.toml
│ │ │ ├── pix-image-viewer/
│ │ │ │ └── recipe.toml
│ │ │ ├── pixsort/
│ │ │ │ └── recipe.toml
│ │ │ ├── rascii/
│ │ │ │ └── recipe.toml
│ │ │ ├── rawtherapee/
│ │ │ │ └── recipe.toml
│ │ │ ├── reve/
│ │ │ │ └── recipe.toml
│ │ │ ├── rimage/
│ │ │ │ └── recipe.toml
│ │ │ ├── satty/
│ │ │ │ └── recipe.toml
│ │ │ ├── shadergarden/
│ │ │ │ └── recipe.toml
│ │ │ ├── simp/
│ │ │ │ └── recipe.toml
│ │ │ ├── smag/
│ │ │ │ └── recipe.toml
│ │ │ ├── toybrot/
│ │ │ │ └── recipe.toml
│ │ │ ├── tungsten-renderer/
│ │ │ │ └── recipe.toml
│ │ │ ├── viu/
│ │ │ │ └── recipe.toml
│ │ │ ├── vulkan-tools/
│ │ │ │ └── recipe.toml
│ │ │ └── watch-stl/
│ │ │ └── recipe.toml
│ │ ├── shaders/
│ │ │ ├── glsl-viewer/
│ │ │ │ └── recipe.toml
│ │ │ ├── glslang/
│ │ │ │ └── recipe.toml
│ │ │ ├── shadertoy-rs/
│ │ │ │ └── recipe.toml
│ │ │ └── vibe/
│ │ │ └── recipe.toml
│ │ ├── terminal/
│ │ │ ├── 3d-terminal-renderer/
│ │ │ │ └── recipe.toml
│ │ │ ├── aarty/
│ │ │ │ └── recipe.toml
│ │ │ ├── ascii-image/
│ │ │ │ └── recipe.toml
│ │ │ ├── blockpaint/
│ │ │ │ └── recipe.toml
│ │ │ ├── display3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── img2text/
│ │ │ │ └── recipe.toml
│ │ │ ├── kakikun/
│ │ │ │ └── recipe.toml
│ │ │ ├── sloth/
│ │ │ │ └── recipe.toml
│ │ │ └── tapciify/
│ │ │ └── recipe.toml
│ │ ├── viewers/
│ │ │ └── exhibit/
│ │ │ └── recipe.toml
│ │ └── vr/
│ │ └── alvr/
│ │ └── recipe.toml
│ ├── gui/
│ │ ├── gpcl/
│ │ │ └── recipe.toml
│ │ ├── ordinary/
│ │ │ └── recipe.toml
│ │ └── slop/
│ │ └── recipe.toml
│ ├── health/
│ │ ├── blanket/
│ │ │ └── recipe.toml
│ │ └── dosage/
│ │ └── recipe.toml
│ ├── hw/
│ │ └── piper/
│ │ └── recipe.toml
│ ├── icons/
│ │ ├── adwaita-icon-theme/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── breeze-icons/
│ │ └── recipe.toml
│ ├── image/
│ │ ├── converters/
│ │ │ └── dipc/
│ │ │ └── recipe.toml
│ │ ├── editors/
│ │ │ ├── ascii-draw/
│ │ │ │ └── recipe.toml
│ │ │ ├── drawing/
│ │ │ │ └── recipe.toml
│ │ │ ├── inkscape/
│ │ │ │ └── recipe.toml
│ │ │ ├── rx/
│ │ │ │ └── recipe.toml
│ │ │ ├── watermarker/
│ │ │ │ └── recipe.toml
│ │ │ └── xpano/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── converseen/
│ │ │ │ └── recipe.toml
│ │ │ ├── curtail/
│ │ │ │ └── recipe.toml
│ │ │ ├── dominant-colours/
│ │ │ │ └── recipe.toml
│ │ │ ├── ferrishot/
│ │ │ │ └── recipe.toml
│ │ │ ├── graphicsmagick/
│ │ │ │ └── recipe.toml
│ │ │ ├── imageflow/
│ │ │ │ └── recipe.toml
│ │ │ ├── imagemagick/
│ │ │ │ └── recipe.toml
│ │ │ ├── jpegoptim/
│ │ │ │ └── recipe.toml
│ │ │ ├── jxl-oxide/
│ │ │ │ └── recipe.toml
│ │ │ ├── lsix/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxvg/
│ │ │ │ └── recipe.toml
│ │ │ ├── pngquant/
│ │ │ │ └── recipe.toml
│ │ │ ├── satpaper/
│ │ │ │ └── recipe.toml
│ │ │ └── sic/
│ │ │ └── recipe.toml
│ │ └── upscaling/
│ │ ├── jdpixelupscaler/
│ │ │ └── recipe.toml
│ │ ├── rscale2x/
│ │ │ └── recipe.toml
│ │ ├── upscaler/
│ │ │ └── recipe.toml
│ │ ├── upscaler-rs/
│ │ │ └── recipe.toml
│ │ ├── upscayl-ncnn/
│ │ │ └── recipe.toml
│ │ └── video2x/
│ │ └── recipe.toml
│ ├── kde/
│ │ ├── ark/
│ │ │ └── recipe.toml
│ │ ├── discover/
│ │ │ └── recipe.toml
│ │ ├── k3b/
│ │ │ └── recipe.toml
│ │ ├── kamoso/
│ │ │ └── recipe.toml
│ │ ├── kde-dolphin/
│ │ │ └── recipe.toml
│ │ ├── kdenlive/
│ │ │ └── recipe.toml
│ │ ├── kdevelop/
│ │ │ └── recipe.toml
│ │ ├── kpatience/
│ │ │ └── recipe.toml
│ │ ├── krita/
│ │ │ └── recipe.toml
│ │ ├── ktorrent/
│ │ │ └── recipe.toml
│ │ ├── kwave/
│ │ │ └── recipe.toml
│ │ ├── marble/
│ │ │ └── recipe.toml
│ │ ├── okteta/
│ │ │ └── recipe.toml
│ │ └── skanpage/
│ │ └── recipe.toml
│ ├── lang/
│ │ ├── kana/
│ │ │ └── recipe.toml
│ │ └── uroman-rs/
│ │ └── recipe.toml
│ ├── libs/
│ │ ├── archives/
│ │ │ └── libzip/
│ │ │ └── recipe.toml
│ │ ├── audio/
│ │ │ ├── boca/
│ │ │ │ └── recipe.toml
│ │ │ ├── libalsa/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcanberra/
│ │ │ │ └── recipe.toml
│ │ │ ├── libopenshot-audio/
│ │ │ │ └── recipe.toml
│ │ │ ├── mpg123/
│ │ │ │ └── recipe.toml
│ │ │ ├── openal/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── soundtouch/
│ │ │ │ └── recipe.toml
│ │ │ ├── speex/
│ │ │ │ └── recipe.toml
│ │ │ ├── speexdsp/
│ │ │ │ └── recipe.toml
│ │ │ └── zmusic/
│ │ │ └── recipe.toml
│ │ ├── debug/
│ │ │ └── libbacktrace/
│ │ │ └── recipe.toml
│ │ ├── fs/
│ │ │ ├── libattr/
│ │ │ │ └── recipe.toml
│ │ │ ├── libnfs/
│ │ │ │ └── recipe.toml
│ │ │ └── physicsfs/
│ │ │ └── recipe.toml
│ │ ├── gnome/
│ │ │ ├── at-spi2-core/
│ │ │ │ └── recipe.toml
│ │ │ ├── atkmm/
│ │ │ │ └── recipe.toml
│ │ │ ├── clutter/
│ │ │ │ └── recipe.toml
│ │ │ ├── clutter-gst/
│ │ │ │ └── recipe.toml
│ │ │ ├── clutter-gtk/
│ │ │ │ └── recipe.toml
│ │ │ ├── cogl/
│ │ │ │ └── recipe.toml
│ │ │ ├── dconf/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── dspy/
│ │ │ │ └── recipe.toml
│ │ │ ├── gegl/
│ │ │ │ └── recipe.toml
│ │ │ ├── gexiv2/
│ │ │ │ └── recipe.toml
│ │ │ ├── glib-networking/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── glibmm/
│ │ │ │ └── recipe.toml
│ │ │ ├── gnome2-common/
│ │ │ │ └── recipe.toml
│ │ │ ├── gnome3-common/
│ │ │ │ └── recipe.toml
│ │ │ ├── gobject-introspection/
│ │ │ │ └── recipe.toml
│ │ │ ├── graphene/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk-engines/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk-vnc/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk2/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk2mm/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk3/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── gtk3mm/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk4/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk4mm/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtkglext/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtksourceview/
│ │ │ │ └── recipe.toml
│ │ │ ├── json-glib/
│ │ │ │ └── recipe.toml
│ │ │ ├── jsonrpc-glib/
│ │ │ │ └── recipe.toml
│ │ │ ├── libadwaita/
│ │ │ │ └── recipe.toml
│ │ │ ├── libart/
│ │ │ │ └── recipe.toml
│ │ │ ├── libayatana-appindicator-glib/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libdex/
│ │ │ │ └── recipe.toml
│ │ │ ├── libepoxy/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libgee/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgspell-gtk3/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgspell-gtk4/
│ │ │ │ └── recipe.toml
│ │ │ ├── libhandy/
│ │ │ │ └── recipe.toml
│ │ │ ├── libnotify/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpanel/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpeas/
│ │ │ │ └── recipe.toml
│ │ │ ├── librsvg/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsecret/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsigcpp/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsoup/
│ │ │ │ └── recipe.toml
│ │ │ ├── libspelling/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwnck3/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxslt/
│ │ │ │ └── recipe.toml
│ │ │ ├── pangomm/
│ │ │ │ └── recipe.toml
│ │ │ ├── totem-pl-parser/
│ │ │ │ └── recipe.toml
│ │ │ ├── vte/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── xdg-user-dirs-gtk/
│ │ │ │ └── recipe.toml
│ │ │ └── zenity/
│ │ │ └── recipe.toml
│ │ ├── graphics/
│ │ │ ├── libnoise/
│ │ │ │ └── recipe.toml
│ │ │ ├── libvulkan/
│ │ │ │ └── recipe.toml
│ │ │ └── vulkan-headers/
│ │ │ └── recipe.toml
│ │ ├── gui/
│ │ │ ├── girara/
│ │ │ │ └── recipe.toml
│ │ │ ├── imgui/
│ │ │ │ └── recipe.toml
│ │ │ └── libappindicator/
│ │ │ └── recipe.toml
│ │ ├── hw/
│ │ │ └── libratbag/
│ │ │ └── recipe.toml
│ │ ├── image/
│ │ │ ├── libavif/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgphoto2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libheif/
│ │ │ │ └── recipe.toml
│ │ │ ├── libjxl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libraw/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsixel/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwebp/
│ │ │ │ └── recipe.toml
│ │ │ └── libwebp2/
│ │ │ └── recipe.toml
│ │ ├── kde/
│ │ │ ├── kf5/
│ │ │ │ ├── kf5-activities/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-activities-stats/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-apidox/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-archive/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-attica/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-auth/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-baloo/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-bookmarks/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-calendarcore/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-cmake-modules/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-cmutils/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-codecs/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-completion/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-config/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-configwidgets/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-contacts/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-coreaddons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-crash/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-dav/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-dbusaddons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-declarative/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-dnssd/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-doctools/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-emoticons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-filemetadata/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-frameworkintegration/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-globalaccel/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-guiaddons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-holidays/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-i18n/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-iconthemes/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-idletime/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-init/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-io/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-itemmodels/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-itemviews/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-jobwidgets/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-kded/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-kdesu/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-kirigami/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-modem-manager/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-networkmanager/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-newstuff/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-notifications/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-notifyconfig/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-package/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-parts/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-people/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-plasma-framework/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-plotting/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-prison/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-pty/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-purpose/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-qqc2-desktop-style/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-quickcharts/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-runner/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-service/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-solid/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-sonnet/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-syndication/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-syntax-highlighting/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-sysguard/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-texteditor/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-textwidgets/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-threadweaver/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-unitconversion/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-wayland/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-widgetaddons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-windowsystem/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── kf5-xmlgui/
│ │ │ │ └── recipe.toml
│ │ │ ├── kf6/
│ │ │ │ ├── kcodecs6/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── ktexteditor6/
│ │ │ │ └── recipe.toml
│ │ │ ├── libkdcraw/
│ │ │ │ └── recipe.toml
│ │ │ ├── libkomparediff2/
│ │ │ │ └── recipe.toml
│ │ │ └── libseexpr-kde/
│ │ │ └── recipe.toml
│ │ ├── lua/
│ │ │ └── lpeg/
│ │ │ └── recipe.toml
│ │ ├── ml/
│ │ │ └── libtorch/
│ │ │ └── recipe.toml
│ │ ├── mobile/
│ │ │ ├── libimobiledevice/
│ │ │ │ └── recipe.toml
│ │ │ └── libusbmuxd/
│ │ │ └── recipe.toml
│ │ ├── mozjs/
│ │ │ └── recipe.toml
│ │ ├── net/
│ │ │ ├── c-ares/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfilezilla/
│ │ │ │ └── recipe.toml
│ │ │ ├── libidn/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtirpc/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtorrent/
│ │ │ │ └── recipe.toml
│ │ │ ├── nghttp3/
│ │ │ │ └── recipe.toml
│ │ │ └── ngtcp2/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── appstream/
│ │ │ │ └── recipe.toml
│ │ │ ├── aws-lc-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── babl/
│ │ │ │ └── recipe.toml
│ │ │ ├── boost/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── bullet-physics/
│ │ │ │ └── recipe.toml
│ │ │ ├── cairomm10+/
│ │ │ │ └── recipe.toml
│ │ │ ├── cairomm116+/
│ │ │ │ └── recipe.toml
│ │ │ ├── dcmtk/
│ │ │ │ └── recipe.toml
│ │ │ ├── fftw/
│ │ │ │ └── recipe.toml
│ │ │ ├── fltk13/
│ │ │ │ └── recipe.toml
│ │ │ ├── fltk14/
│ │ │ │ └── recipe.toml
│ │ │ ├── freealut/
│ │ │ │ └── recipe.toml
│ │ │ ├── freeglut/
│ │ │ │ └── recipe.toml
│ │ │ ├── freetype-sys/
│ │ │ │ └── recipe.toml
│ │ │ ├── gdbm/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── gflags/
│ │ │ │ └── recipe.toml
│ │ │ ├── glew/
│ │ │ │ └── recipe.toml
│ │ │ ├── glfw3/
│ │ │ │ └── recipe.toml
│ │ │ ├── gpgme/
│ │ │ │ └── recipe.toml
│ │ │ ├── grpc/
│ │ │ │ └── recipe.toml
│ │ │ ├── hdf5/
│ │ │ │ └── recipe.toml
│ │ │ ├── hwdata/
│ │ │ │ └── recipe.toml
│ │ │ ├── hwloc/
│ │ │ │ └── recipe.toml
│ │ │ ├── imlib2/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── inih/
│ │ │ │ └── recipe.toml
│ │ │ ├── iniparser/
│ │ │ │ └── recipe.toml
│ │ │ ├── json-c/
│ │ │ │ └── recipe.toml
│ │ │ ├── kerberos5/
│ │ │ │ └── recipe.toml
│ │ │ ├── lame/
│ │ │ │ └── recipe.toml
│ │ │ ├── lammps/
│ │ │ │ └── recipe.toml
│ │ │ ├── lib2geom/
│ │ │ │ └── recipe.toml
│ │ │ ├── liba52/
│ │ │ │ └── recipe.toml
│ │ │ ├── libabsl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libaio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libaom/
│ │ │ │ └── recipe.toml
│ │ │ ├── libargon2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libaspell/
│ │ │ │ └── recipe.toml
│ │ │ ├── libass/
│ │ │ │ └── recipe.toml
│ │ │ ├── libatomic-ops/
│ │ │ │ └── recipe.toml
│ │ │ ├── libbluray/
│ │ │ │ └── recipe.toml
│ │ │ ├── libbotan/
│ │ │ │ └── recipe.toml
│ │ │ ├── libbrotli/
│ │ │ │ └── recipe.toml
│ │ │ ├── libbsd/
│ │ │ │ └── recipe.toml
│ │ │ ├── libburn/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcaca/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcamera/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcap/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcdio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcdio-paranoia/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcdr/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcpuid/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcups/
│ │ │ │ └── recipe.toml
│ │ │ ├── libde265/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdecor/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdeflate/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdmx/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdotconf/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdouble-conversion/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdvbpsi/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdvdcss/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdvdnav/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdvdread/
│ │ │ │ └── recipe.toml
│ │ │ ├── libebml/
│ │ │ │ └── recipe.toml
│ │ │ ├── libedit/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libeditline/
│ │ │ │ └── recipe.toml
│ │ │ ├── libeigen/
│ │ │ │ └── recipe.toml
│ │ │ ├── libenet/
│ │ │ │ └── recipe.toml
│ │ │ ├── liberty-eiffel/
│ │ │ │ └── recipe.toml
│ │ │ ├── libev/
│ │ │ │ └── recipe.toml
│ │ │ ├── libevdev/
│ │ │ │ └── recipe.toml
│ │ │ ├── libevent/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfs/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfuse2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfuse3/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgav1/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgc/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgcrypt/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libgdal/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgit2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libglm/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgloox/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgpg-error/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgpm/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgrantlee/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgsl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgumbo/
│ │ │ │ └── recipe.toml
│ │ │ ├── libharu/
│ │ │ │ └── recipe.toml
│ │ │ ├── libhidapi/
│ │ │ │ └── recipe.toml
│ │ │ ├── libhyphen/
│ │ │ │ └── recipe.toml
│ │ │ ├── libicu/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libimath/
│ │ │ │ └── recipe.toml
│ │ │ ├── libimmer/
│ │ │ │ └── recipe.toml
│ │ │ ├── libinput/
│ │ │ │ └── recipe.toml
│ │ │ ├── libisoburn/
│ │ │ │ └── recipe.toml
│ │ │ ├── libisofs/
│ │ │ │ └── recipe.toml
│ │ │ ├── libjasper/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblager/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblapack/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblcms/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblensfun/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblo/
│ │ │ │ └── recipe.toml
│ │ │ ├── libm17n/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmad/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmd/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmpeg2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmtp/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmypaint/
│ │ │ │ └── recipe.toml
│ │ │ ├── libnlopt/
│ │ │ │ └── recipe.toml
│ │ │ ├── libnsl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libonig/
│ │ │ │ └── recipe.toml
│ │ │ ├── libotf/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpcap/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpcsclite/
│ │ │ │ └── recipe.toml
│ │ │ ├── libplist/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpoppler/
│ │ │ │ └── recipe.toml
│ │ │ ├── libportaudio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpthread-stubs/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpugixml/
│ │ │ │ └── recipe.toml
│ │ │ ├── libqalculate/
│ │ │ │ └── recipe.toml
│ │ │ ├── libqrcodegenc/
│ │ │ │ └── recipe.toml
│ │ │ ├── libraptor2/
│ │ │ │ └── recipe.toml
│ │ │ ├── librasqal/
│ │ │ │ └── recipe.toml
│ │ │ ├── librdf/
│ │ │ │ └── recipe.toml
│ │ │ ├── librevenge/
│ │ │ │ └── recipe.toml
│ │ │ ├── librist/
│ │ │ │ └── recipe.toml
│ │ │ ├── librkcommon/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsamplerate/
│ │ │ │ └── recipe.toml
│ │ │ ├── libskia/
│ │ │ │ └── recipe.toml
│ │ │ ├── libslirp/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsmooth/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsndfile/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsoundio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libspdlog/
│ │ │ │ └── recipe.toml
│ │ │ ├── libspiro/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsrt/
│ │ │ │ └── recipe.toml
│ │ │ ├── libssh/
│ │ │ │ └── recipe.toml
│ │ │ ├── libstatgrab/
│ │ │ │ └── recipe.toml
│ │ │ ├── libstk/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtasn1/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtatsu/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtheora/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtickit/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtiff/
│ │ │ │ └── recipe.toml
│ │ │ ├── libunibreak/
│ │ │ │ └── recipe.toml
│ │ │ ├── libunistring/
│ │ │ │ └── recipe.toml
│ │ │ ├── libunwind/
│ │ │ │ └── recipe.toml
│ │ │ ├── liburiparser/
│ │ │ │ └── recipe.toml
│ │ │ ├── libusb/
│ │ │ │ └── recipe.toml
│ │ │ ├── libuuid/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libuuid-ossp/
│ │ │ │ └── recipe.toml
│ │ │ ├── libva/
│ │ │ │ └── recipe.toml
│ │ │ ├── libvisio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libvncserver/
│ │ │ │ └── recipe.toml
│ │ │ ├── libvterm/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwebsocket++/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwebsockets/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwmf/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwpd/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxcrypt/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxcursor/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxkbcommon/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxsimd/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxss/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxtl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxtst/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxv/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxvmc/
│ │ │ │ └── recipe.toml
│ │ │ ├── libyaml/
│ │ │ │ └── recipe.toml
│ │ │ ├── libzimg/
│ │ │ │ └── recipe.toml
│ │ │ ├── libzug/
│ │ │ │ └── recipe.toml
│ │ │ ├── libzvbi/
│ │ │ │ └── recipe.toml
│ │ │ ├── lilv/
│ │ │ │ └── recipe.toml
│ │ │ ├── liquid-dsp/
│ │ │ │ └── recipe.toml
│ │ │ ├── livedotcom/
│ │ │ │ └── recipe.toml
│ │ │ ├── lrdf/
│ │ │ │ └── recipe.toml
│ │ │ ├── lv2/
│ │ │ │ └── recipe.toml
│ │ │ ├── lzlib/
│ │ │ │ └── recipe.toml
│ │ │ ├── m4/
│ │ │ │ └── recipe.toml
│ │ │ ├── maven/
│ │ │ │ └── recipe.toml
│ │ │ ├── mimalloc/
│ │ │ │ └── recipe.toml
│ │ │ ├── mlt/
│ │ │ │ └── recipe.toml
│ │ │ ├── mozangle/
│ │ │ │ └── recipe.toml
│ │ │ ├── musepack/
│ │ │ │ └── recipe.toml
│ │ │ ├── nlohmann-json/
│ │ │ │ └── recipe.toml
│ │ │ ├── oidn/
│ │ │ │ └── recipe.toml
│ │ │ ├── onednn/
│ │ │ │ └── recipe.toml
│ │ │ ├── onetbb/
│ │ │ │ └── recipe.toml
│ │ │ ├── openblas/
│ │ │ │ └── recipe.toml
│ │ │ ├── opencolorio/
│ │ │ │ └── recipe.toml
│ │ │ ├── opencv4/
│ │ │ │ └── recipe.toml
│ │ │ ├── openexr/
│ │ │ │ └── recipe.toml
│ │ │ ├── openimageio/
│ │ │ │ └── recipe.toml
│ │ │ ├── openjpeg/
│ │ │ │ └── recipe.toml
│ │ │ ├── openmpi/
│ │ │ │ └── recipe.toml
│ │ │ ├── openvkl/
│ │ │ │ └── recipe.toml
│ │ │ ├── pjsip/
│ │ │ │ └── recipe.toml
│ │ │ ├── popt/
│ │ │ │ └── recipe.toml
│ │ │ ├── projectm/
│ │ │ │ └── recipe.toml
│ │ │ ├── pystring/
│ │ │ │ └── recipe.toml
│ │ │ ├── quantlib/
│ │ │ │ └── recipe.toml
│ │ │ ├── raylib/
│ │ │ │ └── recipe.toml
│ │ │ ├── rdflib/
│ │ │ │ └── recipe.toml
│ │ │ ├── rnnoise/
│ │ │ │ └── recipe.toml
│ │ │ ├── rubberband/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustls-openssl-compat/
│ │ │ │ └── recipe.toml
│ │ │ ├── scotch/
│ │ │ │ └── recipe.toml
│ │ │ ├── sdl-pango/
│ │ │ │ └── recipe.toml
│ │ │ ├── sdl2-net/
│ │ │ │ └── recipe.toml
│ │ │ ├── sdl2-pango/
│ │ │ │ └── recipe.toml
│ │ │ ├── sdl3/
│ │ │ │ └── recipe.toml
│ │ │ ├── simdjson/
│ │ │ │ └── recipe.toml
│ │ │ ├── simdutf/
│ │ │ │ └── recipe.toml
│ │ │ ├── snappy/
│ │ │ │ └── recipe.toml
│ │ │ ├── sord/
│ │ │ │ └── recipe.toml
│ │ │ ├── sratom/
│ │ │ │ └── recipe.toml
│ │ │ ├── suil/
│ │ │ │ └── recipe.toml
│ │ │ ├── t4kcommon/
│ │ │ │ └── recipe.toml
│ │ │ ├── taglib/
│ │ │ │ └── recipe.toml
│ │ │ ├── tree-sitter/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── twolame/
│ │ │ │ └── recipe.toml
│ │ │ ├── vamp-plugin-sdk/
│ │ │ │ └── recipe.toml
│ │ │ ├── volk/
│ │ │ │ └── recipe.toml
│ │ │ ├── webkit/
│ │ │ │ └── recipe.toml
│ │ │ ├── wxpython/
│ │ │ │ └── recipe.toml
│ │ │ ├── wxwidgets-gtk3/
│ │ │ │ └── recipe.toml
│ │ │ ├── xxhash/
│ │ │ │ └── recipe.toml
│ │ │ ├── yajl/
│ │ │ │ └── recipe.toml
│ │ │ └── zlib-ng/
│ │ │ └── recipe.toml
│ │ ├── perf/
│ │ │ └── openmp/
│ │ │ └── recipe.toml
│ │ ├── qt/
│ │ │ ├── qt4/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt5/
│ │ │ │ ├── qt5-3d/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-activeqt/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-base/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-charts/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-coap/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-connectivity/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-datavis3d/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-declarative/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-doc/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-full/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-gamepad/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-graphical-effects/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-imageformats/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-knx/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-location/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-lottie/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-mqtt/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-multimedia/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-networkauth/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-opcua/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-purchasing/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-quick3d/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-quickcontrols/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-quickcontrols2/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-quicktimeline/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-remoteobjects/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-script/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-scxml/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-sensors/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-serialbus/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-serialport/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-speech/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-svg/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-tools/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-tqtc/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-translations/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-virtualkeyboard/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-wayland/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webchannel/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webengine/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webglplugin/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webkit/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-websockets/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webview/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-x11extras/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── qt5-xmlpatterns/
│ │ │ │ └── recipe.toml
│ │ │ └── qt6/
│ │ │ ├── qt6-3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-activeqt/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-base/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-charts/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-connectivity/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-datavis3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-declarative/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-doc/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-full/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-graphs/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-grpc/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-httpserver/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-imageformats/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-languageserver/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-location/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-lottie/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-multimedia/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-networkauth/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-positioning/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-qt5compat/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-quick3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-quick3dphysics/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-quickeffectmaker/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-quicktimeline/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-remoteobjects/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-scxml/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-sensors/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-serialbus/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-serialport/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-shadertools/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-speech/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-svg/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-tools/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-translations/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-virtualkeyboard/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-wayland/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-webchannel/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-webengine/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-websockets/
│ │ │ │ └── recipe.toml
│ │ │ └── qt6-webview/
│ │ │ └── recipe.toml
│ │ ├── security/
│ │ │ └── libacl/
│ │ │ └── recipe.toml
│ │ ├── text/
│ │ │ └── hunspell/
│ │ │ └── recipe.toml
│ │ ├── tikv-jemallocator/
│ │ │ └── recipe.toml
│ │ ├── tls/
│ │ │ ├── gnutls3/
│ │ │ │ └── recipe.toml
│ │ │ ├── mbedtls3/
│ │ │ │ └── recipe.toml
│ │ │ ├── mbedtls4/
│ │ │ │ └── recipe.toml
│ │ │ ├── openssl3/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ └── wolfssl5/
│ │ │ └── recipe.toml
│ │ └── video/
│ │ ├── libgif/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── libmatroska/
│ │ │ └── recipe.toml
│ │ ├── libopenshot/
│ │ │ └── recipe.toml
│ │ └── libvpx/
│ │ └── recipe.toml
│ ├── logging/
│ │ └── krapslog/
│ │ └── recipe.toml
│ ├── math/
│ │ ├── cosmic-ext-calculator/
│ │ │ └── recipe.toml
│ │ ├── fend/
│ │ │ └── recipe.toml
│ │ ├── fractal-explorer/
│ │ │ └── recipe.toml
│ │ ├── kalc/
│ │ │ └── recipe.toml
│ │ ├── kalker/
│ │ │ └── recipe.toml
│ │ ├── numbat/
│ │ │ └── recipe.toml
│ │ ├── numr/
│ │ │ └── recipe.toml
│ │ ├── primesieve/
│ │ │ └── recipe.toml
│ │ ├── qalculate-gtk/
│ │ │ └── recipe.toml
│ │ └── rink/
│ │ └── recipe.toml
│ ├── media/
│ │ └── effy/
│ │ └── recipe.toml
│ ├── mobile/
│ │ └── android-tools/
│ │ └── recipe.toml
│ ├── monitors/
│ │ ├── bandwhich/
│ │ │ └── recipe.toml
│ │ ├── bottom/
│ │ │ └── recipe.toml
│ │ ├── conky/
│ │ │ └── recipe.toml
│ │ ├── cosmic-ext-observatory/
│ │ │ └── recipe.toml
│ │ ├── fluere/
│ │ │ └── recipe.toml
│ │ ├── hearth/
│ │ │ └── recipe.toml
│ │ ├── htop/
│ │ │ └── recipe.toml
│ │ ├── latencymon/
│ │ │ └── recipe.toml
│ │ ├── mountstatus/
│ │ │ └── recipe.toml
│ │ ├── resources/
│ │ │ └── recipe.toml
│ │ ├── rtop/
│ │ │ └── recipe.toml
│ │ ├── sentrum/
│ │ │ └── recipe.toml
│ │ ├── serial-monitor-rs/
│ │ │ └── recipe.toml
│ │ ├── sniffnet/
│ │ │ └── recipe.toml
│ │ ├── socktop/
│ │ │ └── recipe.toml
│ │ ├── sysinfo/
│ │ │ └── recipe.toml
│ │ └── xtop/
│ │ └── recipe.toml
│ ├── net/
│ │ ├── admin/
│ │ │ └── webmin/
│ │ │ └── recipe.toml
│ │ ├── analysis/
│ │ │ ├── angryether-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── echo/
│ │ │ │ └── recipe.toml
│ │ │ ├── pepe/
│ │ │ │ └── recipe.toml
│ │ │ ├── r-lanscan/
│ │ │ │ └── recipe.toml
│ │ │ ├── rkik/
│ │ │ │ └── recipe.toml
│ │ │ └── ttl/
│ │ │ └── recipe.toml
│ │ ├── bittorrent/
│ │ │ ├── aquatic-udp/
│ │ │ │ └── recipe.toml
│ │ │ ├── attractorr/
│ │ │ │ └── recipe.toml
│ │ │ ├── btpd/
│ │ │ │ └── recipe.toml
│ │ │ ├── rtorrent/
│ │ │ │ └── recipe.toml
│ │ │ ├── superseedr/
│ │ │ │ └── recipe.toml
│ │ │ ├── synapse-bt/
│ │ │ │ └── recipe.toml
│ │ │ ├── transg-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── transmission-cli/
│ │ │ │ └── recipe.toml
│ │ │ ├── transmission-daemon/
│ │ │ │ └── recipe.toml
│ │ │ ├── transmission-gtk/
│ │ │ │ └── recipe.toml
│ │ │ └── webtorrent-cli/
│ │ │ └── recipe.toml
│ │ ├── chat/
│ │ │ ├── bitchat-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── gosuto/
│ │ │ │ └── recipe.toml
│ │ │ ├── halloy/
│ │ │ │ └── recipe.toml
│ │ │ ├── iamb/
│ │ │ │ └── recipe.toml
│ │ │ ├── jami/
│ │ │ │ └── recipe.toml
│ │ │ ├── pidgin/
│ │ │ │ └── recipe.toml
│ │ │ ├── telegram-desktop/
│ │ │ │ └── recipe.toml
│ │ │ ├── termchat/
│ │ │ │ └── recipe.toml
│ │ │ └── tiny/
│ │ │ └── recipe.toml
│ │ ├── download/
│ │ │ ├── aim/
│ │ │ │ └── recipe.toml
│ │ │ ├── anime-downloader/
│ │ │ │ └── recipe.toml
│ │ │ ├── apkeep/
│ │ │ │ └── recipe.toml
│ │ │ ├── aria2/
│ │ │ │ └── recipe.toml
│ │ │ ├── curlio/
│ │ │ │ └── recipe.toml
│ │ │ ├── kget/
│ │ │ │ └── recipe.toml
│ │ │ ├── kitget/
│ │ │ │ └── recipe.toml
│ │ │ ├── parabolic/
│ │ │ │ └── recipe.toml
│ │ │ ├── rusty-psn-cli/
│ │ │ │ └── recipe.toml
│ │ │ ├── rusty-psn-gui/
│ │ │ │ └── recipe.toml
│ │ │ ├── wget2/
│ │ │ │ └── recipe.toml
│ │ │ ├── yaydl/
│ │ │ │ └── recipe.toml
│ │ │ ├── youtube-tui/
│ │ │ │ └── recipe.toml
│ │ │ └── yt-dlp/
│ │ │ └── recipe.toml
│ │ ├── email/
│ │ │ ├── neverest/
│ │ │ │ └── recipe.toml
│ │ │ └── thunderbird/
│ │ │ ├── mozconfig
│ │ │ └── recipe.toml
│ │ ├── ftp/
│ │ │ ├── filezilla-client/
│ │ │ │ └── recipe.toml
│ │ │ ├── filezilla-server/
│ │ │ │ └── recipe.toml
│ │ │ └── unftp/
│ │ │ └── recipe.toml
│ │ ├── gemini/
│ │ │ └── lagrange/
│ │ │ └── recipe.toml
│ │ ├── http/
│ │ │ ├── apache-httpd/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── easyp/
│ │ │ │ └── recipe.toml
│ │ │ ├── ferron/
│ │ │ │ └── recipe.toml
│ │ │ ├── freenginx/
│ │ │ │ └── recipe.toml
│ │ │ ├── http-server-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── lighttpd/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── miniserve/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── quark/
│ │ │ │ └── recipe.toml
│ │ │ ├── sozu/
│ │ │ │ └── recipe.toml
│ │ │ ├── sws/
│ │ │ │ └── recipe.toml
│ │ │ └── thttpd/
│ │ │ └── recipe.toml
│ │ ├── lan/
│ │ │ ├── lantun/
│ │ │ │ └── recipe.toml
│ │ │ ├── malai/
│ │ │ │ └── recipe.toml
│ │ │ ├── zerotier/
│ │ │ │ └── recipe.toml
│ │ │ └── ztui/
│ │ │ └── recipe.toml
│ │ ├── monitor/
│ │ │ ├── network-monitor-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustnet/
│ │ │ │ └── recipe.toml
│ │ │ └── somo/
│ │ │ └── recipe.toml
│ │ ├── onion-routing/
│ │ │ ├── arti/
│ │ │ │ └── recipe.toml
│ │ │ ├── i2pd/
│ │ │ │ └── recipe.toml
│ │ │ ├── tor/
│ │ │ │ └── recipe.toml
│ │ │ └── tor-browser/
│ │ │ ├── mozconfig
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── agnos/
│ │ │ │ └── recipe.toml
│ │ │ ├── altuntun/
│ │ │ │ └── recipe.toml
│ │ │ ├── arp-scanner/
│ │ │ │ └── recipe.toml
│ │ │ ├── bita/
│ │ │ │ └── recipe.toml
│ │ │ ├── bore/
│ │ │ │ └── recipe.toml
│ │ │ ├── celeste/
│ │ │ │ └── recipe.toml
│ │ │ ├── cobalt/
│ │ │ │ └── recipe.toml
│ │ │ ├── crab-dlna/
│ │ │ │ └── recipe.toml
│ │ │ ├── dnst/
│ │ │ │ └── recipe.toml
│ │ │ ├── dqy/
│ │ │ │ └── recipe.toml
│ │ │ ├── drill/
│ │ │ │ └── recipe.toml
│ │ │ ├── dufs/
│ │ │ │ └── recipe.toml
│ │ │ ├── floresta/
│ │ │ │ └── recipe.toml
│ │ │ ├── guacamole-client/
│ │ │ │ └── recipe.toml
│ │ │ ├── gws/
│ │ │ │ └── recipe.toml
│ │ │ ├── havn/
│ │ │ │ └── recipe.toml
│ │ │ ├── hinoki/
│ │ │ │ └── recipe.toml
│ │ │ ├── hurl/
│ │ │ │ └── recipe.toml
│ │ │ ├── impala/
│ │ │ │ └── recipe.toml
│ │ │ ├── lldap/
│ │ │ │ └── recipe.toml
│ │ │ ├── lychee/
│ │ │ │ └── recipe.toml
│ │ │ ├── lynx/
│ │ │ │ └── recipe.toml
│ │ │ ├── meli/
│ │ │ │ └── recipe.toml
│ │ │ ├── miniupnpc/
│ │ │ │ └── recipe.toml
│ │ │ ├── moonfire-nvr-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── netop/
│ │ │ │ └── recipe.toml
│ │ │ ├── netscanner/
│ │ │ │ └── recipe.toml
│ │ │ ├── nmap/
│ │ │ │ └── recipe.toml
│ │ │ ├── nspr/
│ │ │ │ └── recipe.toml
│ │ │ ├── nss/
│ │ │ │ └── recipe.toml
│ │ │ ├── nss-pem/
│ │ │ │ └── recipe.toml
│ │ │ ├── oha/
│ │ │ │ └── recipe.toml
│ │ │ ├── pavao/
│ │ │ │ └── recipe.toml
│ │ │ ├── phantun/
│ │ │ │ └── recipe.toml
│ │ │ ├── quincy/
│ │ │ │ └── recipe.toml
│ │ │ ├── rallyup/
│ │ │ │ └── recipe.toml
│ │ │ ├── rathole/
│ │ │ │ └── recipe.toml
│ │ │ ├── realm/
│ │ │ │ └── recipe.toml
│ │ │ ├── rlt/
│ │ │ │ └── recipe.toml
│ │ │ ├── rqbit/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustscan/
│ │ │ │ └── recipe.toml
│ │ │ ├── samba/
│ │ │ │ ├── answers.txt
│ │ │ │ └── recipe.toml
│ │ │ ├── sandhole/
│ │ │ │ └── recipe.toml
│ │ │ ├── slumber/
│ │ │ │ └── recipe.toml
│ │ │ ├── smb-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── socat/
│ │ │ │ └── recipe.toml
│ │ │ ├── speedtest-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── spiko/
│ │ │ │ └── recipe.toml
│ │ │ ├── spis/
│ │ │ │ └── recipe.toml
│ │ │ ├── srsran-4g/
│ │ │ │ └── recipe.toml
│ │ │ ├── srsran-project/
│ │ │ │ └── recipe.toml
│ │ │ ├── tobaru/
│ │ │ │ └── recipe.toml
│ │ │ ├── trippy/
│ │ │ │ └── recipe.toml
│ │ │ ├── turn-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── unbound/
│ │ │ │ └── recipe.toml
│ │ │ ├── updns/
│ │ │ │ └── recipe.toml
│ │ │ ├── varia/
│ │ │ │ └── recipe.toml
│ │ │ ├── vimini/
│ │ │ │ └── recipe.toml
│ │ │ ├── vopono/
│ │ │ │ └── recipe.toml
│ │ │ ├── vpncloud/
│ │ │ │ └── recipe.toml
│ │ │ ├── vsd/
│ │ │ │ └── recipe.toml
│ │ │ ├── wireguard-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── wstunnel/
│ │ │ │ └── recipe.toml
│ │ │ └── yazi/
│ │ │ └── recipe.toml
│ │ ├── p2p/
│ │ │ ├── dumbpipe/
│ │ │ │ └── recipe.toml
│ │ │ ├── easytier/
│ │ │ │ └── recipe.toml
│ │ │ └── oku/
│ │ │ └── recipe.toml
│ │ ├── proxy/
│ │ │ ├── hitch/
│ │ │ │ └── recipe.toml
│ │ │ └── stunnel/
│ │ │ └── recipe.toml
│ │ ├── remote/
│ │ │ ├── bayesian-ssh/
│ │ │ │ └── recipe.toml
│ │ │ ├── do-ssh/
│ │ │ │ └── recipe.toml
│ │ │ ├── ethersync/
│ │ │ │ └── recipe.toml
│ │ │ ├── iroh-ssh/
│ │ │ │ └── recipe.toml
│ │ │ ├── jupii/
│ │ │ │ └── recipe.toml
│ │ │ ├── remmina/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustconn/
│ │ │ │ └── recipe.toml
│ │ │ ├── sanzu/
│ │ │ │ └── recipe.toml
│ │ │ ├── shared/
│ │ │ │ └── recipe.toml
│ │ │ ├── ssh-portfolio/
│ │ │ │ └── recipe.toml
│ │ │ ├── tigervnc/
│ │ │ │ └── recipe.toml
│ │ │ └── zeco/
│ │ │ └── recipe.toml
│ │ ├── scan/
│ │ │ └── netpeek/
│ │ │ └── recipe.toml
│ │ ├── security/
│ │ │ └── yadb/
│ │ │ └── recipe.toml
│ │ ├── server/
│ │ │ ├── bitcoin-core/
│ │ │ │ └── recipe.toml
│ │ │ ├── devserver/
│ │ │ │ └── recipe.toml
│ │ │ ├── doh-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── dora/
│ │ │ │ └── recipe.toml
│ │ │ ├── electrs/
│ │ │ │ └── recipe.toml
│ │ │ ├── encrypted-dns-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── feox-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── guacamole-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── nea/
│ │ │ │ └── recipe.toml
│ │ │ ├── nostr-rs-relay/
│ │ │ │ └── recipe.toml
│ │ │ ├── quick-serve/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustdesk-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustypaste/
│ │ │ │ └── recipe.toml
│ │ │ ├── shoes/
│ │ │ │ └── recipe.toml
│ │ │ ├── spadesx/
│ │ │ │ └── recipe.toml
│ │ │ ├── toe-beans/
│ │ │ │ └── recipe.toml
│ │ │ └── vproxy/
│ │ │ └── recipe.toml
│ │ ├── sharing/
│ │ │ ├── gday/
│ │ │ │ └── recipe.toml
│ │ │ ├── hakanai/
│ │ │ │ └── recipe.toml
│ │ │ ├── lan-mouse/
│ │ │ │ └── recipe.toml
│ │ │ ├── magic-wormhole-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── microbin/
│ │ │ │ └── recipe.toml
│ │ │ ├── qft/
│ │ │ │ └── recipe.toml
│ │ │ ├── sendme/
│ │ │ │ └── recipe.toml
│ │ │ └── warp/
│ │ │ └── recipe.toml
│ │ ├── social/
│ │ │ ├── nostui/
│ │ │ │ └── recipe.toml
│ │ │ ├── perch/
│ │ │ │ └── recipe.toml
│ │ │ ├── reddix/
│ │ │ │ └── recipe.toml
│ │ │ └── tuba/
│ │ │ └── recipe.toml
│ │ └── ssh/
│ │ ├── color-ssh/
│ │ │ └── recipe.toml
│ │ ├── dropbear/
│ │ │ └── recipe.toml
│ │ ├── fastssh/
│ │ │ └── recipe.toml
│ │ ├── filessh/
│ │ │ └── recipe.toml
│ │ ├── mosh/
│ │ │ └── recipe.toml
│ │ ├── russh/
│ │ │ └── recipe.toml
│ │ ├── ssh-pilot/
│ │ │ └── recipe.toml
│ │ ├── sshfs/
│ │ │ └── recipe.toml
│ │ ├── sshs/
│ │ │ └── recipe.toml
│ │ ├── sshx/
│ │ │ └── recipe.toml
│ │ └── termirs/
│ │ └── recipe.toml
│ ├── news/
│ │ ├── feedr/
│ │ │ └── recipe.toml
│ │ ├── moccasin/
│ │ │ └── recipe.toml
│ │ ├── news-rs/
│ │ │ └── recipe.toml
│ │ ├── newsflash/
│ │ │ └── recipe.toml
│ │ └── tuifeed/
│ │ └── recipe.toml
│ ├── office/
│ │ ├── cactui/
│ │ │ └── recipe.toml
│ │ ├── doxx/
│ │ │ └── recipe.toml
│ │ ├── letters/
│ │ │ └── recipe.toml
│ │ ├── libreoffice/
│ │ │ └── recipe.toml
│ │ ├── libreoffice-dictionaries/
│ │ │ └── recipe.toml
│ │ ├── libreoffice-translations/
│ │ │ └── recipe.toml
│ │ ├── sheetsui/
│ │ │ └── recipe.toml
│ │ ├── xleak/
│ │ │ └── recipe.toml
│ │ └── zathura/
│ │ └── recipe.toml
│ ├── players/
│ │ ├── clapper/
│ │ │ └── recipe.toml
│ │ ├── cmus/
│ │ │ └── recipe.toml
│ │ ├── cosmic-player/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── festival/
│ │ │ └── recipe.toml
│ │ ├── glide/
│ │ │ └── recipe.toml
│ │ ├── kronos/
│ │ │ └── recipe.toml
│ │ ├── mpv/
│ │ │ └── recipe.toml
│ │ ├── podcasts/
│ │ │ └── recipe.toml
│ │ ├── pragha/
│ │ │ └── recipe.toml
│ │ ├── recordbox/
│ │ │ └── recipe.toml
│ │ ├── rustcloud/
│ │ │ └── recipe.toml
│ │ ├── rustic/
│ │ │ └── recipe.toml
│ │ ├── spoify/
│ │ │ └── recipe.toml
│ │ ├── spotify-player/
│ │ │ └── recipe.toml
│ │ ├── symphonia-play/
│ │ │ └── recipe.toml
│ │ ├── tap/
│ │ │ └── recipe.toml
│ │ ├── termusic/
│ │ │ └── recipe.toml
│ │ ├── tplay/
│ │ │ └── recipe.toml
│ │ ├── ttv/
│ │ │ └── recipe.toml
│ │ ├── vlc/
│ │ │ └── recipe.toml
│ │ └── ytermusic/
│ │ └── recipe.toml
│ ├── recorders/
│ │ ├── asciinema/
│ │ │ └── recipe.toml
│ │ ├── autocast/
│ │ │ └── recipe.toml
│ │ ├── gpu-screen-recorder/
│ │ │ └── recipe.toml
│ │ ├── gpu-screen-recorder-gtk/
│ │ │ └── recipe.toml
│ │ └── obs-studio/
│ │ └── recipe.toml
│ ├── scan/
│ │ ├── sane-backends/
│ │ │ └── recipe.toml
│ │ └── zbar/
│ │ └── recipe.toml
│ ├── science/
│ │ ├── alevin-fry/
│ │ │ └── recipe.toml
│ │ ├── astroterm/
│ │ │ └── recipe.toml
│ │ ├── celestia/
│ │ │ └── recipe.toml
│ │ ├── celestia-data/
│ │ │ └── recipe.toml
│ │ ├── chem-creator/
│ │ │ └── recipe.toml
│ │ ├── cosmic-weather/
│ │ │ └── recipe.toml
│ │ ├── gaia-sky/
│ │ │ └── recipe.toml
│ │ ├── gromacs/
│ │ │ └── recipe.toml
│ │ ├── mrbayes/
│ │ │ └── recipe.toml
│ │ ├── nucleus/
│ │ │ └── recipe.toml
│ │ ├── oarfish/
│ │ │ └── recipe.toml
│ │ ├── openfoam/
│ │ │ └── recipe.toml
│ │ ├── openspace/
│ │ │ └── recipe.toml
│ │ ├── piscem/
│ │ │ └── recipe.toml
│ │ ├── polypolish/
│ │ │ └── recipe.toml
│ │ ├── qmcpack/
│ │ │ └── recipe.toml
│ │ ├── scidataflow/
│ │ │ └── recipe.toml
│ │ ├── simpleaf/
│ │ │ └── recipe.toml
│ │ ├── siril/
│ │ │ └── recipe.toml
│ │ ├── sonde/
│ │ │ └── recipe.toml
│ │ ├── specfem2d/
│ │ │ └── recipe.toml
│ │ ├── specfem3d/
│ │ │ └── recipe.toml
│ │ ├── specfem3d-globe/
│ │ │ └── recipe.toml
│ │ ├── stellarium/
│ │ │ └── recipe.toml
│ │ ├── vidoxide/
│ │ │ └── recipe.toml
│ │ ├── weather/
│ │ │ └── cosmic-ext-forecast/
│ │ │ └── recipe.toml
│ │ └── wthrr/
│ │ └── recipe.toml
│ ├── search/
│ │ ├── clapgrep/
│ │ │ └── recipe.toml
│ │ ├── fzf/
│ │ │ └── recipe.toml
│ │ ├── localsearch/
│ │ │ └── recipe.toml
│ │ ├── lstr/
│ │ │ └── recipe.toml
│ │ ├── scout/
│ │ │ └── recipe.toml
│ │ ├── srgn/
│ │ │ └── recipe.toml
│ │ ├── television/
│ │ │ └── recipe.toml
│ │ └── ugrep/
│ │ └── recipe.toml
│ ├── security/
│ │ ├── airgorah/
│ │ │ └── recipe.toml
│ │ ├── angryoxide/
│ │ │ └── recipe.toml
│ │ ├── apbf/
│ │ │ └── recipe.toml
│ │ ├── authenticator/
│ │ │ └── recipe.toml
│ │ ├── authoscope/
│ │ │ └── recipe.toml
│ │ ├── binsec/
│ │ │ └── recipe.toml
│ │ ├── breakmancer/
│ │ │ └── recipe.toml
│ │ ├── burrow/
│ │ │ └── recipe.toml
│ │ ├── capstone/
│ │ │ └── recipe.toml
│ │ ├── cargo-scan/
│ │ │ └── recipe.toml
│ │ ├── clamav/
│ │ │ └── recipe.toml
│ │ ├── cotp/
│ │ │ └── recipe.toml
│ │ ├── deoptimizer/
│ │ │ └── recipe.toml
│ │ ├── dfir-toolkit/
│ │ │ └── recipe.toml
│ │ ├── feroxbuster/
│ │ │ └── recipe.toml
│ │ ├── flawz/
│ │ │ └── recipe.toml
│ │ ├── gnupg/
│ │ │ └── recipe.toml
│ │ ├── gnupg-lts/
│ │ │ └── recipe.toml
│ │ ├── john-the-ripper/
│ │ │ └── recipe.toml
│ │ ├── kanha/
│ │ │ └── recipe.toml
│ │ ├── keepassxc/
│ │ │ └── recipe.toml
│ │ ├── keyscope/
│ │ │ └── recipe.toml
│ │ ├── lynis/
│ │ │ └── recipe.toml
│ │ ├── motus/
│ │ │ └── recipe.toml
│ │ ├── nitrocli/
│ │ │ └── recipe.toml
│ │ ├── openpgp-ca/
│ │ │ └── recipe.toml
│ │ ├── otti/
│ │ │ └── recipe.toml
│ │ ├── pass/
│ │ │ └── recipe.toml
│ │ ├── please/
│ │ │ └── recipe.toml
│ │ ├── plutus-rustus/
│ │ │ └── recipe.toml
│ │ ├── rage/
│ │ │ └── recipe.toml
│ │ ├── retdec/
│ │ │ └── recipe.toml
│ │ ├── rowhammer-test/
│ │ │ └── recipe.toml
│ │ ├── rshijack/
│ │ │ └── recipe.toml
│ │ ├── rustyvault/
│ │ │ └── recipe.toml
│ │ ├── safecloset/
│ │ │ └── recipe.toml
│ │ ├── sn0int/
│ │ │ └── recipe.toml
│ │ ├── sniffglue/
│ │ │ └── recipe.toml
│ │ ├── sq/
│ │ │ └── recipe.toml
│ │ ├── sqop/
│ │ │ └── recipe.toml
│ │ ├── sqv/
│ │ │ └── recipe.toml
│ │ ├── sss-cli/
│ │ │ └── recipe.toml
│ │ ├── stegano/
│ │ │ └── recipe.toml
│ │ ├── sudo-rs/
│ │ │ └── recipe.toml
│ │ ├── tyr/
│ │ │ └── recipe.toml
│ │ ├── vagga/
│ │ │ └── recipe.toml
│ │ ├── veldora/
│ │ │ └── recipe.toml
│ │ ├── veracrypt/
│ │ │ └── recipe.toml
│ │ ├── weggli/
│ │ │ └── recipe.toml
│ │ ├── whyno/
│ │ │ └── recipe.toml
│ │ └── yara-x/
│ │ └── recipe.toml
│ ├── services/
│ │ ├── ala-lape/
│ │ │ └── recipe.toml
│ │ ├── busd/
│ │ │ └── recipe.toml
│ │ ├── coppwr/
│ │ │ └── recipe.toml
│ │ ├── dbus/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── elogind/
│ │ │ └── recipe.toml
│ │ ├── eudev/
│ │ │ └── recipe.toml
│ │ ├── grub/
│ │ │ └── recipe.toml
│ │ ├── hickory-dns/
│ │ │ └── recipe.toml
│ │ ├── jack/
│ │ │ └── recipe.toml
│ │ ├── lemurs/
│ │ │ └── recipe.toml
│ │ ├── limine/
│ │ │ └── recipe.toml
│ │ ├── ntpd-rs/
│ │ │ └── recipe.toml
│ │ ├── pipewire/
│ │ │ └── recipe.toml
│ │ ├── qpwgraph/
│ │ │ └── recipe.toml
│ │ ├── runst/
│ │ │ └── recipe.toml
│ │ ├── seatd/
│ │ │ └── recipe.toml
│ │ └── wireplumber/
│ │ └── recipe.toml
│ ├── shells/
│ │ ├── brush/
│ │ │ └── recipe.toml
│ │ ├── cicada/
│ │ │ └── recipe.toml
│ │ ├── dune/
│ │ │ └── recipe.toml
│ │ ├── fish-shell/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── nsh/
│ │ │ └── recipe.toml
│ │ ├── pure/
│ │ │ └── recipe.toml
│ │ ├── relish/
│ │ │ └── recipe.toml
│ │ ├── sheldon/
│ │ │ └── recipe.toml
│ │ └── zsh/
│ │ ├── 01_redox.patch
│ │ └── recipe.toml
│ ├── sim/
│ │ ├── coulomb/
│ │ │ └── recipe.toml
│ │ └── trmt/
│ │ └── recipe.toml
│ ├── sound/
│ │ ├── asak/
│ │ │ └── recipe.toml
│ │ ├── aubio/
│ │ │ └── recipe.toml
│ │ ├── audacity/
│ │ │ └── recipe.toml
│ │ ├── audeye/
│ │ │ └── recipe.toml
│ │ ├── auditorium/
│ │ │ └── recipe.toml
│ │ ├── chiptrack/
│ │ │ └── recipe.toml
│ │ ├── daw/
│ │ │ ├── ardour/
│ │ │ │ └── recipe.toml
│ │ │ ├── lmms/
│ │ │ │ └── recipe.toml
│ │ │ └── tek/
│ │ │ └── recipe.toml
│ │ ├── easy-effects/
│ │ │ └── recipe.toml
│ │ ├── freac/
│ │ │ └── recipe.toml
│ │ ├── fretboard/
│ │ │ └── recipe.toml
│ │ ├── jukebox-cli/
│ │ │ └── recipe.toml
│ │ ├── lang/
│ │ │ ├── chuck/
│ │ │ │ └── recipe.toml
│ │ │ └── glicol/
│ │ │ └── recipe.toml
│ │ ├── libpulse/
│ │ │ └── recipe.toml
│ │ ├── lookas/
│ │ │ └── recipe.toml
│ │ ├── miniaudicle/
│ │ │ └── recipe.toml
│ │ ├── mixxx/
│ │ │ └── recipe.toml
│ │ ├── mousai/
│ │ │ └── recipe.toml
│ │ ├── music/
│ │ │ ├── metronome/
│ │ │ │ └── recipe.toml
│ │ │ ├── mpd/
│ │ │ │ └── recipe.toml
│ │ │ ├── neothesia/
│ │ │ │ └── recipe.toml
│ │ │ └── tempo/
│ │ │ └── recipe.toml
│ │ ├── odin2/
│ │ │ └── recipe.toml
│ │ ├── pcmg/
│ │ │ └── recipe.toml
│ │ ├── piano-rs/
│ │ │ └── recipe.toml
│ │ ├── players/
│ │ │ ├── euphonica/
│ │ │ │ └── recipe.toml
│ │ │ ├── ncspot/
│ │ │ │ └── recipe.toml
│ │ │ └── rmpc/
│ │ │ └── recipe.toml
│ │ ├── rustyvibes/
│ │ │ └── recipe.toml
│ │ ├── ruxguitar/
│ │ │ └── recipe.toml
│ │ ├── scope-tui/
│ │ │ └── recipe.toml
│ │ ├── shezem-rs/
│ │ │ └── recipe.toml
│ │ ├── sndio/
│ │ │ └── recipe.toml
│ │ ├── sonobus/
│ │ │ └── recipe.toml
│ │ ├── sonusmix/
│ │ │ └── recipe.toml
│ │ ├── soundboard/
│ │ │ └── recipe.toml
│ │ ├── soundscope/
│ │ │ └── recipe.toml
│ │ ├── soundux/
│ │ │ └── recipe.toml
│ │ ├── speech-dispatcher/
│ │ │ └── recipe.toml
│ │ ├── swyh-rs/
│ │ │ └── recipe.toml
│ │ ├── tori/
│ │ │ └── recipe.toml
│ │ ├── tuisic/
│ │ │ └── recipe.toml
│ │ ├── viewer/
│ │ │ ├── cava/
│ │ │ │ └── recipe.toml
│ │ │ └── cavasik/
│ │ │ └── recipe.toml
│ │ ├── whis/
│ │ │ └── recipe.toml
│ │ └── wiremix/
│ │ └── recipe.toml
│ ├── storage/
│ │ ├── bmap-rs/
│ │ │ └── recipe.toml
│ │ ├── ezio/
│ │ │ └── recipe.toml
│ │ ├── kiorg/
│ │ │ └── recipe.toml
│ │ ├── stor-age/
│ │ │ └── recipe.toml
│ │ └── wiper/
│ │ └── recipe.toml
│ ├── sys-info/
│ │ ├── bb/
│ │ │ └── recipe.toml
│ │ ├── btop/
│ │ │ └── recipe.toml
│ │ ├── cpu-x/
│ │ │ └── recipe.toml
│ │ ├── cyme/
│ │ │ └── recipe.toml
│ │ ├── ffetch/
│ │ │ └── recipe.toml
│ │ ├── freshfetch/
│ │ │ └── recipe.toml
│ │ ├── macchina/
│ │ │ └── recipe.toml
│ │ ├── mission-center/
│ │ │ └── recipe.toml
│ │ ├── neofetch/
│ │ │ └── recipe.toml
│ │ ├── pciutils/
│ │ │ └── recipe.toml
│ │ ├── pfetch-rs/
│ │ │ └── recipe.toml
│ │ ├── process-viewer/
│ │ │ └── recipe.toml
│ │ ├── procps-ng/
│ │ │ └── recipe.toml
│ │ ├── procs/
│ │ │ └── recipe.toml
│ │ ├── rfetch/
│ │ │ └── recipe.toml
│ │ ├── rsftch/
│ │ │ └── recipe.toml
│ │ ├── usbutils/
│ │ │ └── recipe.toml
│ │ └── zeitfetch/
│ │ └── recipe.toml
│ ├── system/
│ │ ├── pik/
│ │ │ └── recipe.toml
│ │ ├── procman/
│ │ │ └── recipe.toml
│ │ ├── rustysd/
│ │ │ └── recipe.toml
│ │ └── topgrade/
│ │ └── recipe.toml
│ ├── tel/
│ │ ├── sms-server/
│ │ │ └── recipe.toml
│ │ └── sms-terminal/
│ │ └── recipe.toml
│ ├── terminal/
│ │ ├── agg/
│ │ │ └── recipe.toml
│ │ ├── alacritty/
│ │ │ └── recipe.toml
│ │ ├── ascii-gen/
│ │ │ └── recipe.toml
│ │ ├── asciiquarium/
│ │ │ └── recipe.toml
│ │ ├── bobr/
│ │ │ └── recipe.toml
│ │ ├── boulette/
│ │ │ └── recipe.toml
│ │ ├── cbonsai/
│ │ │ └── recipe.toml
│ │ ├── chafa/
│ │ │ └── recipe.toml
│ │ ├── chatd/
│ │ │ └── recipe.toml
│ │ ├── contour-terminal/
│ │ │ └── recipe.toml
│ │ ├── countryfetch/
│ │ │ └── recipe.toml
│ │ ├── desktop-tui/
│ │ │ └── recipe.toml
│ │ ├── envx/
│ │ │ └── recioe.toml
│ │ ├── fsel/
│ │ │ └── recipe.toml
│ │ ├── ghostie/
│ │ │ └── recipe.toml
│ │ ├── leadr/
│ │ │ └── recipe.toml
│ │ ├── lk/
│ │ │ └── recipe.toml
│ │ ├── logria/
│ │ │ └── recipe.toml
│ │ ├── loriini/
│ │ │ └── recipe.toml
│ │ ├── lule/
│ │ │ └── recipe.toml
│ │ ├── ngrv/
│ │ │ └── recipe.toml
│ │ ├── otter-launcher/
│ │ │ └── recipe.toml
│ │ ├── pastel/
│ │ │ └── recipe.toml
│ │ ├── pay-respects/
│ │ │ └── recipe.toml
│ │ ├── pipecolor/
│ │ │ └── recipe.toml
│ │ ├── pipes-sh/
│ │ │ └── recipe.toml
│ │ ├── pretty/
│ │ │ └── recipe.toml
│ │ ├── rioterm/
│ │ │ └── recipe.toml
│ │ ├── rterm/
│ │ │ └── recipe.toml
│ │ ├── scooter/
│ │ │ └── recipe.toml
│ │ ├── so/
│ │ │ └── recipe.toml
│ │ ├── starship/
│ │ │ └── recipe.toml
│ │ ├── tab-rs/
│ │ │ └── recipe.toml
│ │ ├── tarts/
│ │ │ └── recipe.toml
│ │ ├── tattoy/
│ │ │ └── recipe.toml
│ │ ├── tere/
│ │ │ └── recipe.toml
│ │ ├── term39/
│ │ │ └── recipe.toml
│ │ ├── termimage/
│ │ │ └── recipe.toml
│ │ ├── terminal-toys/
│ │ │ └── recipe.toml
│ │ ├── terminal-yt/
│ │ │ └── recipe.toml
│ │ ├── thokr/
│ │ │ └── recipe.toml
│ │ ├── tmux/
│ │ │ └── recipe.toml
│ │ ├── tmuxpanel/
│ │ │ └── recipe.toml
│ │ ├── toyterm/
│ │ │ └── recipe.toml
│ │ ├── tvk/
│ │ │ └── recipe.toml
│ │ ├── useenv/
│ │ │ └── recipe.toml
│ │ ├── wezterm/
│ │ │ └── recipe.toml
│ │ └── zellij/
│ │ └── recipe.toml
│ ├── tests/
│ │ ├── pjdfstest/
│ │ │ └── recipe.toml
│ │ └── xfstests/
│ │ └── recipe.toml
│ ├── text/
│ │ ├── amp/
│ │ │ └── recipe.toml
│ │ ├── basalt/
│ │ │ └── recipe.toml
│ │ ├── bat/
│ │ │ └── recipe.toml
│ │ ├── blogr/
│ │ │ └── recipe.toml
│ │ ├── csview/
│ │ │ └── recipe.toml
│ │ ├── csvlens/
│ │ │ └── recipe.toml
│ │ ├── dog/
│ │ │ └── recipe.toml
│ │ ├── duat/
│ │ │ └── recipe.toml
│ │ ├── edit/
│ │ │ └── recipe.toml
│ │ ├── emacs-nox/
│ │ │ └── recipe.toml
│ │ ├── emacs-pgtk/
│ │ │ └── recipe.toml
│ │ ├── flowfix/
│ │ │ └── recipe.toml
│ │ ├── fsrx/
│ │ │ └── recipe.toml
│ │ ├── helix-gpui/
│ │ │ └── recipe.toml
│ │ ├── igrep/
│ │ │ └── recipe.toml
│ │ ├── jt/
│ │ │ └── recipe.toml
│ │ ├── keypunch/
│ │ │ └── recipe.toml
│ │ ├── ki-editor/
│ │ │ └── recipe.toml
│ │ ├── kibi/
│ │ │ └── recipe.toml
│ │ ├── mado/
│ │ │ └── recipe.toml
│ │ ├── md-tui/
│ │ │ └── recipe.toml
│ │ ├── mdcat/
│ │ │ └── recipe.toml
│ │ ├── nanorust/
│ │ │ └── recipe.toml
│ │ ├── neovide/
│ │ │ └── recipe.toml
│ │ ├── neovim/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── octotype/
│ │ │ └── recipe.toml
│ │ ├── quicknotes/
│ │ │ └── recipe.toml
│ │ ├── read-it-later/
│ │ │ └── recipe.toml
│ │ ├── repgrep/
│ │ │ └── recipe.toml
│ │ ├── revi/
│ │ │ └── recipe.toml
│ │ ├── rhyolite/
│ │ │ └── recipe.toml
│ │ ├── ripgrep-all/
│ │ │ └── recipe.toml
│ │ ├── ripwc/
│ │ │ └── recipe.toml
│ │ ├── rnote/
│ │ │ └── recipe.toml
│ │ ├── rucola/
│ │ │ └── recipe.toml
│ │ ├── sd/
│ │ │ └── recipe.toml
│ │ ├── sed-rs/
│ │ │ └── recipe.toml
│ │ ├── serpl/
│ │ │ └── recipe.toml
│ │ ├── svgbob/
│ │ │ └── recipe.toml
│ │ ├── syncat/
│ │ │ └── recipe.toml
│ │ ├── t/
│ │ │ └── recipe.toml
│ │ ├── treemd/
│ │ │ └── recipe.toml
│ │ ├── tylax/
│ │ │ └── recipe.toml
│ │ ├── typesetter/
│ │ │ └── recipe.toml
│ │ ├── yes-rs/
│ │ │ └── recipe.toml
│ │ ├── zed/
│ │ │ └── recipe.toml
│ │ └── zee/
│ │ └── recipe.toml
│ ├── time/
│ │ ├── dispute/
│ │ │ └── recipe.toml
│ │ ├── litime/
│ │ │ └── recipe.toml
│ │ ├── rsclock/
│ │ │ └── recipe.toml
│ │ ├── timer-rs/
│ │ │ └── recipe.toml
│ │ ├── tomotroid/
│ │ │ └── recipe.toml
│ │ ├── trackie/
│ │ │ └── recipe.toml
│ │ ├── worktime-tui/
│ │ │ └── recipe.toml
│ │ └── zman/
│ │ └── recipe.toml
│ ├── tools/
│ │ ├── aeruginous/
│ │ │ └── recipe.toml
│ │ ├── ani-cli/
│ │ │ └── recipe.toml
│ │ ├── ani-skip/
│ │ │ └── recipe.toml
│ │ ├── arrow-tools/
│ │ │ └── recipe.toml
│ │ ├── artem/
│ │ │ └── recipe.toml
│ │ ├── ast-grep/
│ │ │ └── recipe.toml
│ │ ├── astc-encoder/
│ │ │ └── recipe.toml
│ │ ├── astyle/
│ │ │ └── recipe.toml
│ │ ├── atm-cli/
│ │ │ └── recipe.toml
│ │ ├── atuin/
│ │ │ └── recipe.toml
│ │ ├── backhand/
│ │ │ └── recipe.toml
│ │ ├── bacup/
│ │ │ └── recipe.toml
│ │ ├── bartib/
│ │ │ └── recipe.toml
│ │ ├── battop/
│ │ │ └── recipe.toml
│ │ ├── bdt/
│ │ │ └── recipe.toml
│ │ ├── binserve/
│ │ │ └── recipe.toml
│ │ ├── birdy/
│ │ │ └── recipe.toml
│ │ ├── blockish-caca/
│ │ │ └── recipe.toml
│ │ ├── broot/
│ │ │ └── recipe.toml
│ │ ├── busybox/
│ │ │ └── recipe.toml
│ │ ├── bvr/
│ │ │ └── recipe.toml
│ │ ├── byteblitz/
│ │ │ └── recipe.toml
│ │ ├── caesium/
│ │ │ └── recipe.toml
│ │ ├── caligula/
│ │ │ └── recipe.toml
│ │ ├── carbonyl/
│ │ │ └── recipe.toml
│ │ ├── cb/
│ │ │ └── recipe.toml
│ │ ├── cfait/
│ │ │ └── recipe.toml
│ │ ├── checkpwn/
│ │ │ └── recipe.toml
│ │ ├── choose/
│ │ │ └── recipe.toml
│ │ ├── chromazone/
│ │ │ └── recipe.toml
│ │ ├── clipcat/
│ │ │ └── recipe.toml
│ │ ├── clipshare-desktop/
│ │ │ └── recipe.toml
│ │ ├── clipshare-server/
│ │ │ └── recipe.toml
│ │ ├── clog-cli/
│ │ │ └── recipe.toml
│ │ ├── conceal/
│ │ │ └── recipe.toml
│ │ ├── conserve/
│ │ │ └── recipe.toml
│ │ ├── counts/
│ │ │ └── recipe.toml
│ │ ├── cpuminer-opt/
│ │ │ └── recipe.toml
│ │ ├── crunchy-cli/
│ │ │ └── recipe.toml
│ │ ├── cube-timer/
│ │ │ └── recipe.toml
│ │ ├── cute/
│ │ │ └── recipe.toml
│ │ ├── czkawka/
│ │ │ └── recipe.toml
│ │ ├── daktilo/
│ │ │ └── recipe.toml
│ │ ├── dead-ringer/
│ │ │ └── recipe.toml
│ │ ├── delta/
│ │ │ └── recipe.toml
│ │ ├── desed/
│ │ │ └── recipe.toml
│ │ ├── dfm/
│ │ │ └── recipe.toml
│ │ ├── diffr/
│ │ │ └── recipe.toml
│ │ ├── diffutils-rs/
│ │ │ └── recipe.toml
│ │ ├── diffy/
│ │ │ └── recipe.toml
│ │ ├── dim/
│ │ │ └── recipe.toml
│ │ ├── dirscan/
│ │ │ └── recipe.toml
│ │ ├── diskonaut/
│ │ │ └── recipe.toml
│ │ ├── dispatch/
│ │ │ └── recipe.toml
│ │ ├── dog-dns/
│ │ │ └── recipe.toml
│ │ ├── dotr/
│ │ │ └── recipe.toml
│ │ ├── dotter/
│ │ │ └── recipe.toml
│ │ ├── dply/
│ │ │ └── recipe.toml
│ │ ├── dprint/
│ │ │ └── recipe.toml
│ │ ├── dra-cla/
│ │ │ └── recipe.toml
│ │ ├── dua/
│ │ │ └── recipe.toml
│ │ ├── dui/
│ │ │ └── recipe.toml
│ │ ├── dura/
│ │ │ └── recipe.toml
│ │ ├── dust/
│ │ │ └── recipe.toml
│ │ ├── dutree/
│ │ │ └── recipe.toml
│ │ ├── dysk/
│ │ │ └── recipe.toml
│ │ ├── emplace/
│ │ │ └── recipe.toml
│ │ ├── enchant/
│ │ │ └── recipe.toml
│ │ ├── envio/
│ │ │ └── recipe.toml
│ │ ├── epub2txt/
│ │ │ └── recipe.toml
│ │ ├── erdtree/
│ │ │ └── recipe.toml
│ │ ├── espanso/
│ │ │ └── recipe.toml
│ │ ├── eureka/
│ │ │ └── recipe.toml
│ │ ├── eva/
│ │ │ └── recipe.toml
│ │ ├── exa/
│ │ │ └── recipe.toml
│ │ ├── exhaust/
│ │ │ └── recipe.toml
│ │ ├── exuberant-ctags/
│ │ │ └── recipe.toml
│ │ ├── eza/
│ │ │ └── recipe.toml
│ │ ├── fclones/
│ │ │ └── recipe.toml
│ │ ├── felix/
│ │ │ └── recipe.toml
│ │ ├── fennec/
│ │ │ └── recipe.toml
│ │ ├── ffizer/
│ │ │ └── recipe.toml
│ │ ├── findutils-rs/
│ │ │ └── recipe.toml
│ │ ├── flameshot/
│ │ │ └── recipe.toml
│ │ ├── flowtime/
│ │ │ └── recipe.toml
│ │ ├── fselect/
│ │ │ └── recipe.toml
│ │ ├── fuc/
│ │ │ └── recipe.toml
│ │ ├── fuga/
│ │ │ └── recipe.toml
│ │ ├── funzzy/
│ │ │ └── recipe.toml
│ │ ├── fzf-make/
│ │ │ └── recipe.toml
│ │ ├── gengo/
│ │ │ └── recipe.toml
│ │ ├── germ/
│ │ │ └── recipe.toml
│ │ ├── gifski/
│ │ │ └── recipe.toml
│ │ ├── gnu-radio/
│ │ │ └── recipe.toml
│ │ ├── gnuplot/
│ │ │ └── recipe.toml
│ │ ├── goldboot/
│ │ │ └── recipe.toml
│ │ ├── goxel/
│ │ │ └── recipe.toml
│ │ ├── gpg-tui/
│ │ │ └── recipe.toml
│ │ ├── gphoto2/
│ │ │ └── recipe.toml
│ │ ├── gping/
│ │ │ └── recipe.toml
│ │ ├── gptman/
│ │ │ └── recipe.toml
│ │ ├── gptube-cli/
│ │ │ └── recipe.toml
│ │ ├── grex/
│ │ │ └── recipe.toml
│ │ ├── groff/
│ │ │ └── recipe.toml
│ │ ├── guix/
│ │ │ └── recipe.toml
│ │ ├── halp/
│ │ │ └── recipe.toml
│ │ ├── hawkeye/
│ │ │ └── recipe.toml
│ │ ├── haylxon/
│ │ │ └── recipe.toml
│ │ ├── himalaya/
│ │ │ └── recipe.toml
│ │ ├── hired/
│ │ │ └── recipe.toml
│ │ ├── hoard/
│ │ │ └── recipe.toml
│ │ ├── horsetab/
│ │ │ └── recipe.toml
│ │ ├── humphrey/
│ │ │ └── recipe.toml
│ │ ├── hwatch/
│ │ │ └── recipe.toml
│ │ ├── imager/
│ │ │ └── recipe.toml
│ │ ├── inlyne/
│ │ │ └── recipe.toml
│ │ ├── innernet-cli/
│ │ │ └── recipe.toml
│ │ ├── innernet-server/
│ │ │ └── recipe.toml
│ │ ├── intelli-shell/
│ │ │ └── recipe.toml
│ │ ├── interaction-calculus/
│ │ │ └── recipe.toml
│ │ ├── intermodal/
│ │ │ └── recipe.toml
│ │ ├── itstool/
│ │ │ └── recipe.toml
│ │ ├── jirust/
│ │ │ └── recipe.toml
│ │ ├── jless/
│ │ │ └── recipe.toml
│ │ ├── joshuto/
│ │ │ └── recipe.toml
│ │ ├── jql/
│ │ │ └── recipe.toml
│ │ ├── kami/
│ │ │ └── recipe.toml
│ │ ├── kanata/
│ │ │ └── recipe.toml
│ │ ├── kbt/
│ │ │ └── recipe.toml
│ │ ├── kodi/
│ │ │ └── recipe.toml
│ │ ├── lapce/
│ │ │ └── recipe.toml
│ │ ├── lazy-etherscan/
│ │ │ └── recipe.toml
│ │ ├── lcs-image-diff/
│ │ │ └── recipe.toml
│ │ ├── lddtree-rs/
│ │ │ └── recipe.toml
│ │ ├── legdur/
│ │ │ └── recipe.toml
│ │ ├── lemmeknow/
│ │ │ └── recipe.toml
│ │ ├── less/
│ │ │ └── recipe.toml
│ │ ├── lines-rs/
│ │ │ └── recipe.toml
│ │ ├── lineselect/
│ │ │ └── recipe.toml
│ │ ├── logss/
│ │ │ └── recipe.toml
│ │ ├── lowcharts/
│ │ │ └── recipe.toml
│ │ ├── lucid/
│ │ │ └── recipe.toml
│ │ ├── mandy/
│ │ │ └── recipe.toml
│ │ ├── mangohud/
│ │ │ └── recipe.toml
│ │ ├── mask/
│ │ │ └── recipe.toml
│ │ ├── matui/
│ │ │ └── recipe.toml
│ │ ├── maze-tui/
│ │ │ └── recipe.toml
│ │ ├── mcfly/
│ │ │ └── recipe.toml
│ │ ├── menyoki/
│ │ │ └── recipe.toml
│ │ ├── mhv/
│ │ │ └── recipe.toml
│ │ ├── minmon/
│ │ │ └── recipe.toml
│ │ ├── mkisofs-rs/
│ │ │ └── recipe.toml
│ │ ├── mprocs/
│ │ │ └── recipe.toml
│ │ ├── navi/
│ │ │ └── recipe.toml
│ │ ├── nickel/
│ │ │ └── recipe.toml
│ │ ├── nix/
│ │ │ └── recipe.toml
│ │ ├── nomad/
│ │ │ └── recipe.toml
│ │ ├── nomino/
│ │ │ └── recipe.toml
│ │ ├── notnow/
│ │ │ └── recipe.toml
│ │ ├── objdiff/
│ │ │ └── recipe.toml
│ │ ├── odilia/
│ │ │ └── recipe.toml
│ │ ├── omega/
│ │ │ └── recipe.toml
│ │ ├── oranda/
│ │ │ └── recipe.toml
│ │ ├── orchaldir-texture-generator/
│ │ │ └── recipe.toml
│ │ ├── pdbview/
│ │ │ └── recipe.toml
│ │ ├── pdu/
│ │ │ └── recipe.toml
│ │ ├── pipr/
│ │ │ └── recipe.toml
│ │ ├── pixcil/
│ │ │ └── recipe.toml
│ │ ├── pixelsort/
│ │ │ └── recipe.toml
│ │ ├── planify/
│ │ │ └── recipe.toml
│ │ ├── pomky/
│ │ │ └── recipe.toml
│ │ ├── porsmo/
│ │ │ └── recipe.toml
│ │ ├── posixutils-rs/
│ │ │ └── recipe.toml
│ │ ├── potrace/
│ │ │ └── recipe.toml
│ │ ├── presenterm/
│ │ │ └── recipe.toml
│ │ ├── pueue/
│ │ │ └── recipe.toml
│ │ ├── qv/
│ │ │ └── recipe.toml
│ │ ├── rana/
│ │ │ └── recipe.toml
│ │ ├── rargs/
│ │ │ └── recipe.toml
│ │ ├── rclone/
│ │ │ └── recipe.toml
│ │ ├── restic/
│ │ │ └── recipe.toml
│ │ ├── rfz/
│ │ │ └── recipe.toml
│ │ ├── rip/
│ │ │ └── recipe.toml
│ │ ├── ripasso/
│ │ │ └── recipe.toml
│ │ ├── ripsecrets/
│ │ │ └── recipe.toml
│ │ ├── rix/
│ │ │ └── recipe.toml
│ │ ├── rnr/
│ │ │ └── recipe.toml
│ │ ├── rq/
│ │ │ └── recipe.toml
│ │ ├── ruke/
│ │ │ └── recipe.toml
│ │ ├── run/
│ │ │ └── recipe.toml
│ │ ├── ruplacer/
│ │ │ └── recipe.toml
│ │ ├── rusty/
│ │ │ └── recipe.toml
│ │ ├── rusty-krab-manager/
│ │ │ └── recipe.toml
│ │ ├── rusync/
│ │ │ └── recipe.toml
│ │ ├── sad/
│ │ │ └── recipe.toml
│ │ ├── sam/
│ │ │ └── recipe.toml
│ │ ├── scribus/
│ │ │ └── recipe.toml
│ │ ├── scrying/
│ │ │ └── recipe.toml
│ │ ├── shd/
│ │ │ └── recipe.toml
│ │ ├── shellfirm/
│ │ │ └── recipe.toml
│ │ ├── shokunin/
│ │ │ └── recipe.toml
│ │ ├── sig/
│ │ │ └── recipe.toml
│ │ ├── sigi/
│ │ │ └── recipe.toml
│ │ ├── simplemoji/
│ │ │ └── recipe.toml
│ │ ├── skim/
│ │ │ └── recipe.toml
│ │ ├── skyspell/
│ │ │ └── recipe.toml
│ │ ├── smartmontools/
│ │ │ └── recipe.toml
│ │ ├── snappy-rs/
│ │ │ └── recipe.toml
│ │ ├── spacer/
│ │ │ └── recipe.toml
│ │ ├── spidey/
│ │ │ └── recipe.toml
│ │ ├── sprinkles/
│ │ │ └── recipe.toml
│ │ ├── succeed2ban-tui/
│ │ │ └── recipe.toml
│ │ ├── sued/
│ │ │ └── recipe.toml
│ │ ├── svg2pdf/
│ │ │ └── recipe.toml
│ │ ├── swc/
│ │ │ └── recipe.toml
│ │ ├── t-rec/
│ │ │ └── recipe.toml
│ │ ├── tailspin/
│ │ │ └── recipe.toml
│ │ ├── tarlz/
│ │ │ └── recipe.toml
│ │ ├── task-maker-rs/
│ │ │ └── recipe.toml
│ │ ├── taskserver/
│ │ │ └── recipe.toml
│ │ ├── taskwarrior/
│ │ │ └── recipe.toml
│ │ ├── taskwarrior-tui/
│ │ │ └── recipe.toml
│ │ ├── tauno-monitor/
│ │ │ └── recipe.toml
│ │ ├── tealdeer/
│ │ │ └── recipe.toml
│ │ ├── teip/
│ │ │ └── recipe.toml
│ │ ├── thwack/
│ │ │ └── recipe.toml
│ │ ├── tin-summer/
│ │ │ └── recipe.toml
│ │ ├── tinywasm/
│ │ │ └── recipe.toml
│ │ ├── tl-rs/
│ │ │ └── recipe.toml
│ │ ├── tock/
│ │ │ └── recipe.toml
│ │ ├── toipe/
│ │ │ └── recipe.toml
│ │ ├── torrust-tracker/
│ │ │ └── recipe.toml
│ │ ├── toybox/
│ │ │ └── recipe.toml
│ │ ├── tp-note/
│ │ │ └── recipe.toml
│ │ ├── tq/
│ │ │ └── recipe.toml
│ │ ├── treq/
│ │ │ └── recipe.toml
│ │ ├── tsuchita/
│ │ │ └── recipe.toml
│ │ ├── tts-tui/
│ │ │ └── recipe.toml
│ │ ├── ttyper/
│ │ │ └── recipe.toml
│ │ ├── tui-journal/
│ │ │ └── recipe.toml
│ │ ├── tvix/
│ │ │ └── recipe.toml
│ │ ├── typst/
│ │ │ └── recipe.toml
│ │ ├── upx/
│ │ │ └── recipe.toml
│ │ ├── util-linux/
│ │ │ └── recipe.toml
│ │ ├── vector/
│ │ │ └── recipe.toml
│ │ ├── ventoy/
│ │ │ └── recipe.toml
│ │ ├── vincenzo/
│ │ │ └── recipe.toml
│ │ ├── watchexec/
│ │ │ └── recipe.toml
│ │ ├── watchmen/
│ │ │ └── recipe.toml
│ │ ├── wayback-rs/
│ │ │ └── recipe.toml
│ │ ├── wayshot/
│ │ │ └── recipe.toml
│ │ ├── wethr/
│ │ │ └── recipe.toml
│ │ ├── weylus/
│ │ │ └── recipe.toml
│ │ ├── wick/
│ │ │ └── recipe.toml
│ │ ├── wpaperd/
│ │ │ └── recipe.toml
│ │ ├── xcp/
│ │ │ └── recipe.toml
│ │ ├── xdg-utils/
│ │ │ └── recipe.toml
│ │ ├── xdotool/
│ │ │ └── recipe.toml
│ │ ├── xdvdfs/
│ │ │ └── recipe.toml
│ │ ├── xh/
│ │ │ └── recipe.toml
│ │ ├── xiu/
│ │ │ └── recipe.toml
│ │ ├── xorriso/
│ │ │ └── recipe.toml
│ │ ├── xsv/
│ │ │ └── recipe.toml
│ │ └── zet/
│ │ └── recipe.toml
│ ├── tui/
│ │ ├── finch/
│ │ │ └── recipe.toml
│ │ ├── gitu/
│ │ │ └── recipe.toml
│ │ ├── gitui/
│ │ │ └── recipe.toml
│ │ ├── gyr/
│ │ │ └── recipe.toml
│ │ ├── heh/
│ │ │ └── recipe.toml
│ │ ├── heretek/
│ │ │ └── recipe.toml
│ │ ├── lazyjj/
│ │ │ └── recipe.toml
│ │ ├── manga-tui/
│ │ │ └── recipe.toml
│ │ ├── nnn/
│ │ │ └── recipe.toml
│ │ ├── nyaa-rs/
│ │ │ └── recipe.toml
│ │ ├── oatmeal/
│ │ │ └── recipe.toml
│ │ ├── otree/
│ │ │ └── recipe.toml
│ │ ├── projectable/
│ │ │ └── recipe.toml
│ │ ├── radicle-tui/
│ │ │ └── recipe.toml
│ │ ├── regname/
│ │ │ └── recipe.toml
│ │ ├── russ/
│ │ │ └── recipe.toml
│ │ ├── rust-kanban/
│ │ │ └── recipe.toml
│ │ ├── rust-traverse/
│ │ │ └── recipe.toml
│ │ ├── syndicationd/
│ │ │ └── recipe.toml
│ │ ├── tenere/
│ │ │ └── recipe.toml
│ │ ├── terminusdm/
│ │ │ └── recipe.toml
│ │ ├── termlaunch/
│ │ │ └── recipe.toml
│ │ ├── termscp/
│ │ │ └── recipe.toml
│ │ ├── thesaurust/
│ │ │ └── recipe.toml
│ │ ├── tooters/
│ │ │ └── recipe.toml
│ │ ├── tui-slides/
│ │ │ └── recipe.toml
│ │ ├── twitch-tui/
│ │ │ └── recipe.toml
│ │ ├── xplr/
│ │ │ └── recipe.toml
│ │ └── zenith/
│ │ └── recipe.toml
│ ├── vice/
│ │ ├── 01_redox.patch
│ │ └── recipe.sh
│ ├── video/
│ │ ├── camera/
│ │ │ ├── cosmic-ext-camera/
│ │ │ │ └── recipe.toml
│ │ │ ├── tuicam/
│ │ │ │ └── recipe.toml
│ │ │ └── webcamoid/
│ │ │ └── recipe.toml
│ │ ├── converters/
│ │ │ ├── handbrake-cli/
│ │ │ │ └── recipe.toml
│ │ │ └── trv/
│ │ │ └── recipe.toml
│ │ ├── editors/
│ │ │ ├── anime-effects/
│ │ │ │ └── recipe.toml
│ │ │ ├── blind/
│ │ │ │ └── recipe.toml
│ │ │ ├── openshot/
│ │ │ │ └── recipe.toml
│ │ │ └── video-trimmer/
│ │ │ └── recipe.toml
│ │ └── other/
│ │ ├── alass/
│ │ │ └── recipe.toml
│ │ ├── av1an/
│ │ │ └── recipe.toml
│ │ ├── avp/
│ │ │ └── recipe.toml
│ │ ├── detect-scene-change/
│ │ │ └── recipe.toml
│ │ ├── dovi-tool/
│ │ │ └── recipe.toml
│ │ ├── gnome-video-effects/
│ │ │ └── recipe.toml
│ │ ├── gopro-assembler/
│ │ │ └── recipe.toml
│ │ ├── gyroflow/
│ │ │ └── recipe.toml
│ │ ├── imdb-rename/
│ │ │ └── recipe.toml
│ │ ├── jerry/
│ │ │ └── recipe.toml
│ │ ├── lecturecut/
│ │ │ └── recipe.toml
│ │ ├── lobster/
│ │ │ └── recipe.toml
│ │ ├── pipeline/
│ │ │ └── recipe.toml
│ │ ├── smoothie-rs/
│ │ │ └── recipe.toml
│ │ ├── streamlib/
│ │ │ └── recipe.toml
│ │ ├── sub-batch/
│ │ │ └── recipe.toml
│ │ ├── teres/
│ │ │ └── recipe.toml
│ │ ├── timelens/
│ │ │ └── recipe.toml
│ │ ├── trimmeroni/
│ │ │ └── recipe.toml
│ │ ├── vapoursynth/
│ │ │ └── recipe.toml
│ │ ├── video4discord/
│ │ │ └── recipe.toml
│ │ ├── vidmerger/
│ │ │ └── recipe.toml
│ │ └── yt-chanvids/
│ │ └── recipe.toml
│ ├── vm/
│ │ ├── cloud-hypervisor/
│ │ │ └── recipe.toml
│ │ ├── crosvm/
│ │ │ └── recipe.toml
│ │ ├── firecracker/
│ │ │ └── recipe.toml
│ │ ├── libguestfs/
│ │ │ └── recipe.toml
│ │ ├── libvirt/
│ │ │ └── recipe.toml
│ │ ├── qemu/
│ │ │ └── recipe.toml
│ │ ├── v86/
│ │ │ └── recipe.toml
│ │ └── virtualbox/
│ │ └── recipe.toml
│ ├── wayland/
│ │ ├── anvil/
│ │ │ └── recipe.toml
│ │ ├── cosmic-app-library/
│ │ │ └── recipe.toml
│ │ ├── cosmic-comp/
│ │ │ └── recipe.toml
│ │ ├── cosmic-panel/
│ │ │ └── recipe.toml
│ │ ├── fht-compositor/
│ │ │ └── recipe.toml
│ │ ├── hyprland/
│ │ │ └── recipe.toml
│ │ ├── iced-wayland/
│ │ │ └── recipe.toml
│ │ ├── libcosmic-wayland/
│ │ │ └── recipe.toml
│ │ ├── libwayland/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── niri/
│ │ │ └── recipe.toml
│ │ ├── pinnacle/
│ │ │ └── recipe.toml
│ │ ├── smallvil/
│ │ │ └── recipe.toml
│ │ ├── softbuffer-wayland/
│ │ │ └── recipe.toml
│ │ ├── sway/
│ │ │ └── recipe.toml
│ │ ├── wayland-protocols/
│ │ │ └── recipe.toml
│ │ ├── wayland-rs/
│ │ │ └── recipe.toml
│ │ ├── wayland-utils/
│ │ │ └── recipe.toml
│ │ ├── waylandpp/
│ │ │ └── recipe.toml
│ │ ├── winit-wayland/
│ │ │ └── recipe.toml
│ │ ├── wlroots/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── xwayland/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── web/
│ │ ├── basilisk/
│ │ │ └── recipe.toml
│ │ ├── chromium/
│ │ │ └── recipe.toml
│ │ ├── dillo/
│ │ │ └── recipe.toml
│ │ ├── dirble/
│ │ │ └── recipe.toml
│ │ ├── dodeca/
│ │ │ └── recipe.toml
│ │ ├── elinks/
│ │ │ └── recipe.toml
│ │ ├── faircamp/
│ │ │ └── recipe.toml
│ │ ├── firefox-esr/
│ │ │ ├── mozconfig
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── gosub/
│ │ │ └── recipe.toml
│ │ ├── librewolf/
│ │ │ ├── mozconfig
│ │ │ └── recipe.toml
│ │ ├── marmite/
│ │ │ └── recipe.toml
│ │ ├── monolith/
│ │ │ └── recipe.toml
│ │ ├── pale-moon/
│ │ │ ├── .mozconfig
│ │ │ └── recipe.toml
│ │ ├── rustyink/
│ │ │ └── recipe.toml
│ │ ├── servo/
│ │ │ ├── .servobuild
│ │ │ └── recipe.toml
│ │ ├── share-preview/
│ │ │ └── recipe.toml
│ │ ├── sitesmith/
│ │ │ └── recipe.toml
│ │ ├── spider/
│ │ │ └── recipe.toml
│ │ ├── sukr/
│ │ │ └── recipe.toml
│ │ ├── surf/
│ │ │ └── recipe.toml
│ │ ├── teacat/
│ │ │ └── recipe.toml
│ │ ├── tola-ssg/
│ │ │ └── recipe.toml
│ │ ├── verso/
│ │ │ └── recipe.toml
│ │ ├── vidium/
│ │ │ └── recipe.toml
│ │ ├── webkitgtk3/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── webkitgtk4/
│ │ │ └── recipe.toml
│ │ └── zen-browser/
│ │ └── recipe.toml
│ └── x11/
│ ├── drm-info/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── feh/
│ │ └── recipe.toml
│ ├── font-util/
│ │ └── recipe.toml
│ ├── i3/
│ │ └── i3/
│ │ └── recipe.toml
│ ├── iso-codes/
│ │ └── recipe.toml
│ ├── jwm/
│ │ └── recipe.toml
│ ├── keybinder3/
│ │ └── recipe.toml
│ ├── leftwm/
│ │ └── recipe.toml
│ ├── libdrm/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── libfontenc/
│ │ └── recipe.toml
│ ├── libglvnd/
│ │ └── recipe.toml
│ ├── libice/
│ │ └── recipe.toml
│ ├── libsm/
│ │ └── recipe.toml
│ ├── libx11/
│ │ └── recipe.toml
│ ├── libxau/
│ │ └── recipe.toml
│ ├── libxaw/
│ │ └── recipe.toml
│ ├── libxcb/
│ │ └── recipe.toml
│ ├── libxcomposite/
│ │ └── recipe.toml
│ ├── libxcvt/
│ │ └── recipe.toml
│ ├── libxdamage/
│ │ └── recipe.toml
│ ├── libxdmcp/
│ │ └── recipe.toml
│ ├── libxext/
│ │ └── recipe.toml
│ ├── libxfixes/
│ │ └── recipe.toml
│ ├── libxfont2/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── libxft/
│ │ └── recipe.toml
│ ├── libxi/
│ │ └── recipe.toml
│ ├── libxinerama/
│ │ └── recipe.toml
│ ├── libxkbcommon-x11/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── libxkbfile/
│ │ └── recipe.toml
│ ├── libxklavier/
│ │ └── recipe.toml
│ ├── libxmu/
│ │ └── recipe.toml
│ ├── libxpm/
│ │ └── recipe.toml
│ ├── libxrandr/
│ │ └── recipe.toml
│ ├── libxrender/
│ │ └── recipe.toml
│ ├── libxres/
│ │ └── recipe.toml
│ ├── libxscrnsaver/
│ │ └── recipe.toml
│ ├── libxshmfence/
│ │ └── recipe.toml
│ ├── libxt/
│ │ └── recipe.toml
│ ├── libxxf86vm/
│ │ └── recipe.toml
│ ├── lxde/
│ │ ├── libfm-extra/
│ │ │ └── recipe.toml
│ │ ├── libfm-gtk3/
│ │ │ └── recipe.toml
│ │ ├── libmenu-cache/
│ │ │ └── recipe.toml
│ │ └── lxpanel/
│ │ └── recipe.toml
│ ├── mate/
│ │ ├── caja/
│ │ │ └── recipe.toml
│ │ ├── dbus-glib/
│ │ │ └── recipe.toml
│ │ ├── libmate-desktop-2/
│ │ │ └── recipe.toml
│ │ ├── libmate-menu/
│ │ │ └── recipe.toml
│ │ ├── libmatekbd/
│ │ │ └── recipe.toml
│ │ ├── libmateweather/
│ │ │ └── recipe.toml
│ │ ├── marco/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── mate-control-center/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── mate-icon-theme/
│ │ │ └── recipe.toml
│ │ ├── mate-panel/
│ │ │ └── recipe.toml
│ │ ├── mate-session-manager/
│ │ │ └── recipe.toml
│ │ ├── mate-settings-daemon/
│ │ │ └── recipe.toml
│ │ └── mate-terminal/
│ │ └── recipe.toml
│ ├── mesa-demos-x11/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── mesa-glu-x11/
│ │ └── recipe.toml
│ ├── mesa-x11/
│ │ └── recipe.toml
│ ├── openbox/
│ │ └── recipe.toml
│ ├── startup-notification/
│ │ └── recipe.toml
│ ├── twm/
│ │ └── recipe.toml
│ ├── x11proto/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── x11proto-kb/
│ │ └── recipe.toml
│ ├── xcb-proto/
│ │ └── recipe.toml
│ ├── xcb-util/
│ │ └── recipe.toml
│ ├── xcb-util-cursor/
│ │ └── recipe.toml
│ ├── xcb-util-image/
│ │ └── recipe.toml
│ ├── xcb-util-keysyms/
│ │ └── recipe.toml
│ ├── xcb-util-renderutil/
│ │ └── recipe.toml
│ ├── xcb-util-wm/
│ │ └── recipe.toml
│ ├── xcb-util-xrm/
│ │ └── recipe.toml
│ ├── xev/
│ │ └── recipe.toml
│ ├── xextproto/
│ │ └── recipe.toml
│ ├── xeyes/
│ │ └── recipe.toml
│ ├── xfce4/
│ │ ├── garcon/
│ │ │ └── recipe.toml
│ │ ├── libxfce4ui/
│ │ │ └── recipe.toml
│ │ ├── libxfce4util/
│ │ │ └── recipe.toml
│ │ ├── libxfce4windowing/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── xfce4-panel/
│ │ │ └── recipe.toml
│ │ ├── xfconf/
│ │ │ └── recipe.toml
│ │ └── xfwm4/
│ │ └── recipe.toml
│ ├── xinit/
│ │ └── recipe.toml
│ ├── xkbcomp/
│ │ └── recipe.toml
│ ├── xkbutils/
│ │ └── recipe.toml
│ ├── xkeyboard-config/
│ │ └── recipe.toml
│ ├── xserver-xorg/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── xserver-xorg-video-orbital/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── xterm/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ └── xtrans/
│ └── recipe.toml
├── redox.ipxe
├── rust-toolchain.toml
├── scripts/
│ ├── backtrace.sh
│ ├── cargo-update.sh
│ ├── category.sh
│ ├── changelog.sh
│ ├── check-ci-config.sh
│ ├── commit-hash.sh
│ ├── dual-boot.sh
│ ├── executables.sh
│ ├── find-recipe.sh
│ ├── include-recipes.sh
│ ├── mount-redoxfs.sh
│ ├── network-boot.sh
│ ├── pkg-size.sh
│ ├── print-recipe.sh
│ ├── recipe-match.sh
│ ├── recipe-path.sh
│ ├── show-package.sh
│ └── ventoy.sh
└── src/
├── bin/
│ ├── cookbook_redoxer.rs
│ ├── repo.rs
│ └── repo_builder.rs
├── blake3.rs
├── config.rs
├── cook/
│ ├── cook_build.rs
│ ├── fetch.rs
│ ├── fetch_repo.rs
│ ├── fs.rs
│ ├── ident.rs
│ ├── package.rs
│ ├── pty.rs
│ ├── script.rs
│ └── tree.rs
├── cook.rs
├── lib.rs
├── progress_bar.rs
├── recipe.rs
├── web/
│ ├── html.rs
│ └── style.css
└── web.rs
================================================
FILE CONTENTS
================================================
================================================
FILE: .cargo/config.toml
================================================
[target.aarch64-unknown-redox]
linker = "aarch64-unknown-redox-gcc"
rustflags = []
[target.i586-unknown-redox]
linker = "i586-unknown-redox-gcc"
rustflags = []
[target.i686-unknown-redox]
linker = "i686-unknown-redox-gcc"
rustflags = []
[target.x86_64-unknown-redox]
linker = "x86_64-unknown-redox-gcc"
rustflags = []
[target.riscv64gc-unknown-redox]
linker = "riscv64-unknown-redox-gcc"
rustflags = []
[env]
CFLAGS_riscv64gc_unknown_redox="-march=rv64gc -mabi=lp64d"
================================================
FILE: .gitignore
================================================
/build/
/prefix/
.config
**/my_*
# Local settings folder for Jetbrains products (RustRover, IntelliJ, CLion)
.idea/
# Local settings folder for Visual Studio Professional
.vs/
# Local settings folder for vscode
.vscode/
# Local settings folder for the devcontainer extension that most IDEs support.
.devcontainer/
# Cookbook
/repo
/web
/cookbook.toml
source
source.tmp
source-new
source-old
source.tar
source.tar.tmp
target
wget-log
================================================
FILE: .gitlab/issue_templates/Issue_template.md
================================================
<!-- Thank you for taking the time to submit an issue! By following these comments and filling out the sections below, you can help the developers get the necessary information to fix your issue. Please provide a single issue per report. You can also preview this report before submitting it. Feel free to modify/remove sections to fit the nature of your issue. -->
<!-- Please search to check that your issue has not been created already. By preventing duplicate issues, you can help keep the repository organized. If your current issue has already been created and is still unresolved, you can contribute by commenting there. -->
<!-- Replace the empty checkbox [ ] below with a checked one [x] if you have already searched for your issue. -->
- [ ] I agree that I have searched opened and closed issues to prevent duplicates.
--------------------
## Description
<!-- Briefly summarize/describe the issue that you are experiencing below. -->
Replace me
## Environment info
<!-- To understand where your issue originates, please include some relevant information about your environment. -->
<!-- If you are using a pre-built release of Redox, please specify the release version below. -->
- Redox OS Release:
0.0.0 Remove me
<!-- If you have built Redox OS yourself, please provide the following information: -->
- Operating system:
Replace me
- `uname -a`:
`Replace me`
- `rustc -V`:
`Replace me`
- `git rev-parse HEAD`:
`Replace me`
<!-- Depending on your issue, additional information about your environment (network config, package versions, dependencies, etc.) can also help. You can list that below. -->
- Replace me:
Replace me
## Steps to reproduce
<!-- If possible, please list the steps to reproduce ("trigger") your issue below. Being detailed definitely helps speed up bug fixes. -->
1. Replace me
2. Replace me
3. ...
## Behavior
<!-- It may seem obvious to know what to expect, but isolating the behavior from everything else simplifies the development process. Remember to provide a single issue in this report. You can use the References section below to link your issues together. -->
<!-- Describe the behavior you expect your steps should yield (i.e., correct behavior). -->
- **Expected behavior**:
Replace me
<!-- Describe the behavior you observed when running your steps (i.e., buggy behavior). -->
- **Actual behavior**:
Replace me
<!-- **Logs?** Posting a log can help developers find your particular issue more easily. Please wrap your code in code blocks using triple back-ticks ``` to increase readability. -->
```
Replace me
```
<!-- **Solution?** Have a solution in mind? Propose your solution below. -->
- **Proposed solution**:
Replace me
<!-- **Screenshots?** Make it easier to get your point across with screenshots. You can drag & drop or paste your images below. -->
## Optional references
<!-- If you have found issues or pull requests that are related to or blocking this issue, please link them below. See https://help.github.com/articles/autolinked-references-and-urls/ for more options. You can also link related code snippets by providing the permalink. See https://help.github.com/articles/creating-a-permanent-link-to-a-code-snippet/ for more information. -->
Related to:
- #0000 Remove me
- Replace me
- ...
Blocked by:
- #0000 Remove me
- ...
## Optional extras
<!-- If you have other relevant information not found in other sections, you can include it below. -->
Replace me
<!-- **Code?** Awesome! You can also create a pull request with a reference to this issue. -->
<!-- **Files?** Attach your relevant files by dragging & dropping or pasting them below. -->
<!-- You also can preview your report before submitting it. Thanks for contributing to Redox! -->
================================================
FILE: .gitlab/merge_request_templates/Merge_request_template.md
================================================
**Problem**: [describe the problem you try to solve with this PR.]
**Solution**: [describe carefully what you change by this PR.]
**Changes introduced by this pull request**:
- [...]
- [...]
- [...]
**Drawbacks**: [if any, describe the drawbacks of this pull request.]
**TODOs**: [what is not done yet.]
**Fixes**: [what issues this fixes.]
**State**: [the state of this PR, e.g. WIP, ready, etc.]
**Blocking/related**: [issues or PRs blocking or being related to this issue.]
**Other**: [optional: for other relevant information that should be known or cannot be described in the other fields.]
------
_The above template is not necessary for smaller PRs._
================================================
FILE: .gitlab-ci.yml
================================================
# The GitLab Continuous Integration configuration
variables:
GIT_STRATEGY: "clone"
stages:
- lint
- test
workflow:
rules:
- if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"'
fmt:
image: "rust:trixie"
stage: lint
script:
- rustup component add rustfmt
- cargo fmt -- --check
cargo-test:
image: "rust:trixie"
stage: lint
script:
- cargo test --locked
img:
image: "redoxos/redox-base"
stage: test
script:
- |
export PATH="$HOME/.cargo/bin:$PATH" &&
(curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal ) &&
cargo install cbindgen &&
PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 REPO_BINARY=1 FSTOOLS_NO_MOUNT=1 COOKBOOK_VERBOSE=false make ci-img IMG_TAG=$CI_COMMIT_REF_NAME
pkg:
image: "rust:trixie"
stage: test
script:
- |
export PATH="$HOME/.cargo/bin:$PATH" PODMAN_BUILD=0 &&
make CONFIG_NAME=ci SKIP_CHECK_TOOLS=1 repo-tree ARCH=x86_64 &&
make CONFIG_NAME=ci SKIP_CHECK_TOOLS=1 repo-tree ARCH=i586 &&
make CONFIG_NAME=ci SKIP_CHECK_TOOLS=1 repo-tree ARCH=aarch64 &&
make CONFIG_NAME=ci SKIP_CHECK_TOOLS=1 repo-tree ARCH=riscv64gc
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Redox
**Thank you for your interest in contributing to Redox!**
This document will outline the basics of where to start if you wish to contribute to the project. There are many ways to help us out and and we appreciate all of them. We look forward to **your contribution!**
**Please read this document until the end**
## Code Of Conduct
We follow the [Rust Code Of Conduct](https://www.rust-lang.org/policies/code-of-conduct).
## License
In general, your contributions to Redox are governed by the [MIT License](https://en.wikipedia.org/wiki/MIT_License). Each project repository has a `LICENSE` file that provides the license terms for that project.
Please review the `LICENSE` file for the project you are contributing to.
[This](https://doc.redox-os.org/book/philosophy.html) page we explain why we use the MIT license.
## Contribution Terms
When making a contribution you agree to the following terms:
- I understand these changes in full and will be able to respond to review comments.
- I have read the [Developer Certificate of Origin](https://developercertificate.org/) and certify my contribution under its conditions.
## AI Policy
Redox OS does not accept contributions generated by LLMs ([Large Language Models](https://en.wikipedia.org/wiki/Large_language_model)), sometimes also referred to as "AI". This policy is not open to discussion, any content submitted that is clearly labelled as LLM-generated (including issues, merge requests, and merge request descriptions) will be immediately closed, and any attempt to bypass this policy will result in a ban from the project.
## Chat
You can join in our chat platforms to discuss development, issues or ask questions.
### [Matrix](https://matrix.to/#/#redox-join:matrix.org)
Matrix is the official way to talk with Redox OS team and community (these rooms are English-only, we don't accept other languages because we don't understand them).
Matrix has several different clients. [Element](https://element.io/) is a commonly used choice, it works on web browsers, Linux, MacOSX, Windows, Android and iOS.
If you have problems with Element, try [Fractal](https://gitlab.gnome.org/World/fractal).
- Join the [Join Requests](https://matrix.to/#/#redox-join:matrix.org) room and send a message requesting for an invite to the Redox Matrix space (the purpose of this is to avoid spam and bots).
- #redox-join:matrix.org (Use this Matrix room address if you don't want to use the external Matrix link)
(We recommend that you leave the "Join Requests" room after your entry on Redox space)
If you want to have a big discussion in our rooms, you should use a Element thread, it's more organized and easy to keep track if more discussions happen on the same room.
You cand find more information on the [Chat](https://doc.redox-os.org/book/chat.html) page.
### [Discord](https://discord.gg/JfggvrHGDY)
We have a Discord server as an alternative for Matrix, open the #join-requests channel and send a message requesting to be a member (the purpose of this is to avoid spam and bots)
The Matrix messages are sent to Discord and vice-versa using a bot, but sometimes some Discord messages aren't sent to Matrix (if this happens to you join in our Matrix space above)
## [GitLab](https://gitlab.redox-os.org/redox-os/redox)
A slightly more formal way of communication with fellow Redox developers, but a little less quick and convenient like the chat. Submit an issue when you run into problems compiling or testing. Issues can also be used if you would like to discuss a certain topic: be it features, code style, code inconsistencies, minor changes and fixes, etc.
If you want to create an account, read the [Signing in to GitLab](https://doc.redox-os.org/book/signing-in-to-gitlab.html) page.
Once you create an issue don't forget to post the link on the Dev or Support rooms of the chat, because the GitLab email notifications have distractions (service messages or spam) and most developers don't left their GitLab pages open to receive desktop notifications from the web browser (which require a custom setting to receive issue notifications).
By doing this you help us to pay attention to your issues and avoid them to be accidentally forgotten.
If you have ready MRs (merge requests) you must send the links in the [MRs](https://matrix.to/#/#redox-mrs:matrix.org) room. To join this room, you will need to request an invite in the [Join Requests](https://matrix.to/#/#redox-join:matrix.org) room.
By sending a message in the room, your MR will not be forgotten or accumulate conflicts.
## Best Practices and Guidelines
You can read the best practices and guidelines on the [Best practices and guidelines](https://doc.redox-os.org/book/best-practices.html) chapter.
## Development Recommendations and Tips
- Copy-paste prevent and reduce typos
- Read the entire [Build System Reference](https://doc.redox-os.org/book/build-system-reference.html) and [Developer FAQ](https://doc.redox-os.org/book/developer-faq.html) pages
- Make sure your build system is up-to-date, read the [Update The Build System](https://doc.redox-os.org/book/build-system-reference.html#update-the-build-system) section if in doubt.
- If you want to make local changes in recipe sources it's recommended to automatic recipe source update, read [this](https://doc.redox-os.org/book/configuration-settings.html#local-recipe-changes) section to learn how to this for one or multiple recipes and [this](https://doc.redox-os.org/book/configuration-settings.html#cookbook-offline-mode) section for all recipes.
- If you want to make changes to system components, drivers or RedoxFS you need to manually update initfs, read [this](https://doc.redox-os.org/book/coding-and-building.html#how-to-update-initfs) section to learn how to do that.
- If some program can't build or work, something can be missing/hiding on [relibc](https://gitlab.redox-os.org/redox-os/relibc), like a POSIX/Linux function or bug.
- If you have some error on QEMU remember to test different settings or verify your operating system (Pop_OS!, Ubuntu, Debian and Fedora are the recommend Linux distributions to do testing/development for Redox).
- Remember to log all errors, you can use this command as example:
```sh
your-command 2>&1 | tee file-name.log
```
- If you have a problem that seems to not have a solution, think on simple/stupid things. Sometimes you are very confident on your method and forget obvious things (very common).
- If you want a quick review of your Merge Request, make it small.
- If your big Merge Request is taking too long to be reviewed and merged try to split it in small MRs. But make sure it don't break anything, if this method break your changes, don't shrink.
## Style Guidelines
### Rust
Since **Rust** is a relatively small and new language compared to others like C and C++, there's really only one standard. Just follow the official Rust standards for formatting, and maybe run `rustfmt` on your changes, until we setup the CI system to do it automatically.
### Git
Please follow our [Git style](https://doc.redox-os.org/book/creating-proper-pull-requests.html) for pull requests.
## GitLab
### Identity
Once your GitLab account is created, you should add your Matrix or Discord username (the name after the `@` symbol) on the "About" section of your profile, that way we recognize you properly.
### Issues
We use issues to organize and track our current and pending work, to know how to create issues on the Redox GitLab read the [Filing Issues](https://doc.redox-os.org/book/filing-issues.html) page.
Once you create an issue don't forget to post the link on the Dev or Support rooms of the chat, because the GitLab email notifications have distractions (service messages or spam) and most developers don't left their GitLab pages open to receive desktop notifications from the web browser (which require a custom setting to receive issue notifications).
By doing this you help us to pay attention to your issues and avoid them to be accidentally forgotten.
You can see all issues on [this](https://gitlab.redox-os.org/groups/redox-os/-/issues) link.
### Pull Requests
Please follow [our process](https://doc.redox-os.org/book/creating-proper-pull-requests.html) for creating proper pull requests.
## Important Places to Contribute
Before starting to contribute, we recommend reading the [General FAQ](https://www.redox-os.org/faq/) and the [Redox Book](https://doc.redox-os.org/book/).
You can contribute to the Redox documentation and code on the following repositories (non-exhaustive, easiest-to-hardest order):
- [Website](https://gitlab.redox-os.org/redox-os/website)
- [Book](https://gitlab.redox-os.org/redox-os/book) - High-level documentation
- [Build System Configuration](https://gitlab.redox-os.org/redox-os/redox) - Our main repository
- [Orbital](https://gitlab.redox-os.org/redox-os/orbital) - Display Server and Window Manager
- [pkgutils](https://gitlab.redox-os.org/redox-os/pkgutils) - Package Manager
- [acid](https://gitlab.redox-os.org/redox-os/acid) - Redox Test Suite
- [relibc](https://gitlab.redox-os.org/redox-os/relibc) - Redox C Library
- [libredox](https://gitlab.redox-os.org/redox-os/libredox) - Redox System Library
- [Bootloader](https://gitlab.redox-os.org/redox-os/bootloader)
- [RedoxFS](https://gitlab.redox-os.org/redox-os/redoxfs) - Default filesystem
- [Base](https://gitlab.redox-os.org/redox-os/base) - Essential system components and drivers
- [Kernel](https://gitlab.redox-os.org/redox-os/kernel)
To see all Redox repositories open the [redox-os group](https://gitlab.redox-os.org/redox-os).
### Skill Levels
If you don't know programming:
- Test the [daily images](https://static.redox-os.org/img/) on your computer and add the report on the [Hardware Compatibility](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/HARDWARE.md) list
- Monitor and warn developers if the [daily images](https://static.redox-os.org/img/) are outdated
- Use/test Redox and create issues for bugs or needed features (please check for duplicates first)
- Fix and write documentation
- Find or fix typos in configuration
If you don't know how to code in Rust but know other programming languages:
- Web development on the website (we only accept minimal JavaScript code to preserve performance)
- Write unit tests (may require minimal knowledge of Rust)
- Port C/C++ programs to Redox (read the `TODO`s of the recipes on the [WIP category](https://gitlab.redox-os.org/redox-os/redox/-/tree/master/recipes/wip))
- Port programs to Redox
If you know how to code in Rust but don't know operating system development:
- See the [easy](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=easy) issues
- See the "[good first issue](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=good%20first%20issue)" issues
- See the [help wanted](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=help%20wanted) issues (it's worth noting the skill level varies between projects, but a large subset of these should be approachable by contributors familiar with regular Rust/Unix application programming)
- Improve the package manager, or build system tooling like `redoxer` or `installer`
- Improve the [Ion](https://gitlab.redox-os.org/redox-os/ion) shell, or other high-level or mid-level projects
- Port Rust programs (also look for issues with the `port` label)
- Improve application compatibility in relibc by e.g. implementing missing POSIX/Linux functions
If you know how to code in Rust, and have experience with systems software/OS development:
- Familiarize yourself with the repository layout, code, and build system
- Update old code to remove warnings
- Search for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find
- Look in general for issues with the following labels: `critical`, `help wanted`, `feature`, `enhancement`, `bug` or `port`
- Improve internal libraries and abstractions, e.g. `libredox`, `redox-scheme`, `redox-event` etc.
- Help upstream Redox-specific functionality to the Rust ecosystem
- Improve Redox's automated testing suite and continuous integration testing processes
- Improve, profile, and optimize code, especially in the kernel, filesystem, and network stack
- Improve or write device drivers
For those who want to contribute to the Redox GUI, our GUI strategy has changed.
- We are improving the [Orbital](https://gitlab.redox-os.org/redox-os/orbital) display server and window manager, you can read more about it on [this tracking issue](https://gitlab.redox-os.org/redox-os/redox/-/issues/1430).
- OrbTk is in maintenance mode, and its developers have moved to other projects such as the ones below. There is currently no Redox-specific GUI development underway.
## Priorities
You can use the following GitLab issue label filters to know our development priorities on the moment:
- [Critical](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=critical)
- [High-priority](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=high-priority)
- [Medium-priority](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=medium-priority)
- [Low-priority](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=low-priority)
## Roadmap
We use tracking issues for the goals in our roadmap, you can see them in the filter below:
- [Tracking issues](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=tracking%20issue)
## RFCs
For more significant changes that affect Redox's architecture, we use the [Request for Comments](https://gitlab.redox-os.org/redox-os/rfcs) repository.
## Build System
To download the build system use the following commands:
(You need to have [curl](https://curl.se/) installed on your system)
```sh
curl -sf https://gitlab.redox-os.org/redox-os/redox/raw/master/podman_bootstrap.sh -o podman_bootstrap.sh
```
```sh
time bash -e podman_bootstrap.sh
```
To start the compilation of the default recipes run the command below:
```sh
make all
```
In case your operating system does not use SELinux, you must set the `USE_SELINUX` to `0` when calling `make all`, otherwise you might experience errors:
```sh
make all USE_SELINUX=0
```
You can find the build system organization and commands on the [Build System](https://doc.redox-os.org/book/build-system-reference.html) page.
## Developer FAQ
You can see the most common questions and problems on the [Developer FAQ](https://doc.redox-os.org/book/developer-faq.html) page.
## Porting Software
You can read how to use the Cookbook recipe system to port applications on the [Application Porting](https://doc.redox-os.org/book/porting-applications.html) page.
**Always verify if a recipe for your program or library already exist before porting to not break the build system with a recipe duplication or waste time.**
## Libraries and APIs
You can read the [Libraries and APIs](https://doc.redox-os.org/book/libraries-apis.html) page to learn about the libraries and APIs used in Redox.
## Visual Studio Code (VS Code) Configuration
To learn how to configure your VS Code to do Redox development please read the information below the [Visual Studio Code Configuration](https://doc.redox-os.org/book/coding-and-building.html#visual-studio-code-configuration) section.
## References
We maintain a list of wikis, articles and videos to learn Rust, OS development and computer science on the [References](https://doc.redox-os.org/book/references.html) page.
If you are skilled/experienced there's still a possibility that they could improve your knowledge in some way.
## Other Ways to Contribute
If you aren't good on coding, but you still want to help keep the project going, you can contribute and support in a variety of ways! We'll try to find a way to use anything you have to offer.
### Design
If you're a good designer, whether it's 2D graphics, 3D graphics, interfaces, web design, you can help. We need logos, UI design, UI skins, app icons, desktop backgrounds, etc.
- [Redox backgrounds](https://gitlab.redox-os.org/redox-os/backgrounds) - You can send your wallpapers on this repository.
- [Redox assets](https://gitlab.redox-os.org/redox-os/assets) - You can send your logos, icons and themes on this repository.
If you have questions about the graphic design, ask us on the [Chat](https://doc.redox-os.org/book/chat.html).
### Donate to Redox
If you are interested in donating to the Redox OS Nonprofit, you can find instructions on the [Donate](https://www.redox-os.org/donate/) page.
================================================
FILE: Cargo.toml
================================================
[package]
name = "redox_cookbook"
version = "0.1.0"
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
edition = "2024"
default-run = "repo"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[[bin]]
name = "cookbook_redoxer"
path = "src/bin/cookbook_redoxer.rs"
[[bin]]
name = "repo"
path = "src/bin/repo.rs"
[[bin]]
name = "repo_builder"
path = "src/bin/repo_builder.rs"
[lib]
name = "cookbook"
path = "src/lib.rs"
doctest = false
[features]
#TODO: Actually make without tui feature works
default = ["tui"]
tui = ["ratatui", "ansi-to-tui", "strip-ansi-escapes"]
[dependencies]
anyhow = "1"
blake3 = "1"
globset = "0.4"
libc = "0.2"
ignore = "0.4"
object = { version = "0.38", features = ["build_core"] }
pbr = "1.0.2"
pkgar = { git = "https://gitlab.redox-os.org/redox-os/pkgar.git" }
pkgar-core = { git = "https://gitlab.redox-os.org/redox-os/pkgar.git" }
pkgar-keys = { git = "https://gitlab.redox-os.org/redox-os/pkgar.git" }
redox-pkg = { git = "https://gitlab.redox-os.org/redox-os/pkgutils.git", default-features = false }
redox_installer = { git = "https://gitlab.redox-os.org/redox-os/installer.git", default-features = false }
redoxer = { git = "https://gitlab.redox-os.org/redox-os/redoxer.git", default-features = false }
regex = "1.11"
serde = { version = "=1.0.197", features = ["derive"] }
termion = "4"
toml = "0.8"
walkdir = "2.3.1"
ansi-to-tui = { version = "8", optional = true }
strip-ansi-escapes = { version = "0.2.1", optional = true }
[dependencies.ratatui]
version = "0.30"
default-features = false
features = ["termion"]
optional = true
================================================
FILE: HARDWARE.md
================================================
# Hardware Compatibility
This document tracks the current hardware compatibility of Redox OS.
- [Why are hardware reports needed?](#why-are-hardware-reports-needed)
- [What if my computer is customized?](#what-if-my-computer-is-customized)
- [Status](#status)
- [General](#general)
- [Contribute to this document](#contribute-to-this-document)
- [Template](#template)
- [Table row ordering](#table-row-ordering)
- [Recommended](#recommended)
- [Booting](#booting)
- [Broken](#broken)
## Why are hardware reports needed?
Each computer model has different hardware interfaces, firmware implementations, and devices, which can cause the following problems:
- Boot bugs
- Lack of device support
- Performance degradation
These reports helps us to fix the problems above, your report may help to fix many computers affected by the same bugs or missing drivers.
## What if my computer is customized?
If your desktop is customized (common) you should use the "Custom" word on the "Vendor" category and insert the motherboard and CPU vendor/model in the "Model" category.
A customized laptop should only be reported if you replaced the original CPU, report the CPU vendor and model in the "Model" category.
We also recommend to add your `pciutils` log on [this](https://gitlab.redox-os.org/redox-os/base/-/blob/main/drivers/COMMUNITY-HW.md) document to help us with probable porting.
## Status
- **Recommended:** The operating system boots with video, sound, PS/2 or USB input, Ethernet, terminal and Orbital working.
- **Booting:** The operating system boots with some issues or lacking hardware support (write the issues and what supported hardware is not working in the "Report" section).
- **Broken:** The boot loader don't work or can't bootstrap the operating system.
## General
This section contain limitations that apply to any status.
- ACPI support is incomplete (some things are hardcoded on the kernel to work)
- Wi-Fi and Bluetooth aren't supported yet
- AMD, NVIDIA, ARM, and PowerVR GPUs aren't supported yet (only BIOS VESA and UEFI GOP)
- I2C devices aren't supported yet (PS/2 or USB devices should be used)
- USB support varies on each device model because some USB devices require specific drivers (use input devices with standardized controls for more compatibility)
- Automatic operating system discovery is not implemented in the boot loader yet (remember this before installing Redox)
## Contribute to this document
To contribute to this document, learn how to create your GitLab account, follow the project-wide contribution guidelines and suggestions, please refer to the [CONTRIBUTING.md](./CONTRIBUTING.md) document.
### Template
You will use this template to insert your computer on the table.
```
| | | | | | | | |
```
The Redox image date should use the [ISO format](https://en.wikipedia.org/wiki/ISO_8601)
### Table row ordering
New reports should use an independent alphabetical order in the "Vendor" and "Model" table rows, for example:
```
| ASUS | ROG g55vw |
| ASUS | X554L |
| System76 | Galago Pro (galp5) |
| System76 | Lemur Pro (lemp9) |
```
A comes before S, R comes before X, G comes before L
Each "Vendor" has its own alphabetical order in "Model", independent from models from other vendor.
## Recommended
| **Vendor** | **Model** | **Redox Version** | **Image Date** | **Variant** | **CPU Architecture** | **Motherboard Firmware** | **Report** |
|------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------|
| Lenovo | IdeaPad Y510P | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS, UEFI | Boots to Orbital |
| System76 | Galago Pro (galp5) | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital |
| System76 | Lemur Pro (lemp9) | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital |
## Booting
| **Vendor** | **Model** | **Redox Version** | **Image Date** | **Variant** | **CPU Architecture** | **Motherboard Firmware** | **Report** |
|------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------|
| ASUS | Eee PC 900 | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Boots to Orbital, No ethernet driver, Correct video mode not offered (firmware issue) |
| ASUS | PRIME B350M-E (custom) | 0.9.0 | 2024-09-20 | desktop | x86-64 | UEFI | Partial support for the PS/2 keyboard, PS/2 mouse is broken |
| ASUS | ROG g55vw | 0.8.0 | 2023-11-11 | desktop | x86-64 | BIOS | Boots to Orbital, UEFI panic in SETUP |
| ASUS | X554L | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS | Boots to Orbital, No audio, HDA driver cannot find output pins |
| ASUS | Vivobook 15 OLED (M1503Q) | 0.9.0 | 2025-08-04 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad and usb do not work, cannot connect to the internet, right maximum display resolution 2880x1620 |
| Dell | XPS 13 (9350) | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Boots to Orbital, NVMe driver livelocks |
| Dell | XPS 13 (9350) | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS, UEFI | Boots to Orbital, NVMe driver livelocks |
| HP | Dev One | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, requires I2C HID |
| HP | EliteBook Folio 9480M | 0.9.0 | 2025-11-04 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad and usb work, cannot connect to the Internet, install failed, right maximum display resolution 1600x900
| Lenovo | ThinkPad Yoga 260 Laptop - Type 20FE | 0.9.0 | 2024-09-07 | demo | x86-64 | UEFI | Boots to Orbital, No audio |
| Lenovo | Yoga S730-13IWL | 0.9.0 | 2024-11-09 | desktop | x86-64 | UEFI | Boots to Orbital, No trackpad or USB mouse input support |
| Raspberry Pi | 3 Model B+ | 0.8.0 | Unknown | server | ARM64 | U-Boot | Boots to UART serial console (pl011) |
| Samsung | Series 3 (NP350V5C) | 0.9.0 | 2025-08-04 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad works, USB does not work, can connect to the Internet through LAN. Wrong maximum display resolution 1024x768 |
| System76 | Oryx Pro (oryp10) | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, though it should be working |
| System76 | Pangolin (pang12) | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, requires I2C HID |
| Toshiba | Satellite L500 | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS | Boots to Orbital, No Ethernet driver, Correct video mode not offered (firmware issue) |
## Broken
| **Vendor** | **Model** | **Redox Version** | **Image Date** | **Variant** | **CPU Architecture** | **Motherboard Firmware** | **Report** |
|------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------|
| ASUS | PN41 | 0.8.0 | 2024-05-30 | server | x86-64 | Unknown | Aborts after panic in xhcid |
| BEELINK | U59 | 0.8.0 | 2024-05-30 | server | x86-64 | Unknown | Aborts after panic in xhcid |
| Framework | Laptop 16 (AMD Ryzen 7040 Series) | 0.9.0 | 2024-09-07 | server, demo | x86-64 | UEFI | Black screen and unresponsive after the bootloader and resolution selection |
| HP | Compaq nc6120 | 0.9.0 | 2024-11-08 | desktop, server | i686 | BIOS | Unloads into memory at a rate slower than 1MB/s after selecting resolution. When unloading is complete the logger initializes and crashes after kernel::acpi, some information about APIC is printed. Boot logs do not progress after this point. |
| HP | EliteBook 2570p | 0.8.0 | 2022-11-23 | demo | x86-64 | BIOS (CSM mode?) | Gets to resolution selection, Fails assert in `src/os/bios/mod.rs:77` after selecting resolution |
| Lenovo | G570 | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS | Bootloader panics in `alloc_zeroed_page_aligned`, Correct video mode not offered (firmware issue) |
| Lenovo | IdeaPad Y510P | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Panics on `phys_to_virt overflow`, probably having invalid mappings for 32-bit |
| Lenovo | ThinkCentre M83 | 0.9.0 | 2025-11-09 | desktop | x86_64 | UEFI | Presents user with a set of display resolution options. After user selects an option, it takes a long time for the "live" thing to load all the way to 647MiB. Once it does reach 647MiB, however, it dumps a bunch of logs onto the screen. Those logs also happen to be offset so that the leftmost portion of all text "exists" past the leftmost part of the screen, resulting in the logs being only partially visible. The logs appear to include (among other things) 1. "thread 'main' (1) panicked at acpid/src/acpi.rs:256:68: Called `Result::unwrap()` on an `Err` value: Aml(NoCurrentOp)"; 2. "thread 'main' (1) panicked at acpid/src/main.rs:147:39:acpid: failed to daemonize: Error `I/O error` 5"; 3. "... [@hwd:40 ERROR] failed to probe with error No such device (os error 19)..."; etc. |
| Panasonic | Toughbook CF-18 | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Hangs after PIT initialization |
| Toshiba | Satellite L500 | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Correct video mode not offered (firmware issue), Panics on `phys_to_virt overflow`, probably having invalid mappings for 32-bit |
| XMG (Schenker) | Apex 17 (M21) | 0.9.0 | 2024-09-30 | demo, server | x86-64 | UEFI | After selecting resolution, (release) repeats `...::interrupt::irq::ERROR -- Local apic internal error: ESR=0x40` a few times before it freezes; (daily) really slowly prints statements from `...::rmm::INFO` before it abruptly aborts |
================================================
FILE: LICENSE
================================================
Copyright (c) 2016 Redox OS Developers
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: Makefile
================================================
# This file contains the build system commands configuration
# and environment variables
include mk/config.mk
# Build system dependencies
include mk/depends.mk
all: $(BUILD)/harddrive.img
live:
-$(FUMOUNT) $(BUILD)/filesystem/ || true
-$(FUMOUNT) /tmp/redox_installer/ || true
rm -f $(BUILD)/redox-live.iso
$(MAKE) $(BUILD)/redox-live.iso
popsicle: $(BUILD)/redox-live.iso
popsicle-gtk $(BUILD)/redox-live.iso
image:
-$(FUMOUNT) $(BUILD)/filesystem/ || true
-$(FUMOUNT) /tmp/redox_installer/ || true
rm -f $(BUILD)/harddrive.img $(BUILD)/redox-live.iso
$(MAKE) all
rebuild:
-$(FUMOUNT) $(BUILD)/filesystem/ || true
-$(FUMOUNT) /tmp/redox_installer/ || true
rm -rf $(BUILD)/repo.tag $(BUILD)/harddrive.img $(BUILD)/redox-live.iso
$(MAKE) all
# To tell that it's not safe
# to execute the cookbook binary
NOT_ON_PODMAN?=0
clean:
ifeq ($(PODMAN_BUILD),1)
ifneq ("$(wildcard $(CONTAINER_TAG))","")
$(PODMAN_RUN) make $@
else
$(info will not run cookbook clean as container is not built)
$(MAKE) clean PODMAN_BUILD=0 NOT_ON_PODMAN=1 SKIP_CHECK_TOOLS=1
endif # CONTAINER_TAG
else
ifneq ($(NOT_ON_PODMAN),1)
$(MAKE) repo_clean
-$(FUMOUNT) $(BUILD)/filesystem/ || true
-$(FUMOUNT) /tmp/redox_installer/ || true
endif # NOT_ON_PODMAN
rm -rf repo
rm -rf $(BUILD) $(PREFIX)
$(MAKE) fstools_clean
endif # PODMAN_BUILD
distclean:
ifeq ($(PODMAN_BUILD),1)
ifneq ("$(wildcard $(CONTAINER_TAG))","")
$(PODMAN_RUN) make $@
else
$(info will not run cookbook unfetch as container is not built)
$(MAKE) distclean PODMAN_BUILD=0 NOT_ON_PODMAN=1 SKIP_CHECK_TOOLS=1
endif # CONTAINER_TAG
else
ifneq ($(NOT_ON_PODMAN),1)
$(MAKE) fetch_clean
endif # NOT_ON_PODMAN
$(MAKE) clean NOT_ON_PODMAN=1
endif # PODMAN_BUILD
pull:
git pull
rm -f $(FSTOOLS_TAG)
repo: $(BUILD)/repo.tag
repo_clean: c.--all
fetch_clean: u.--all
# Podman build recipes and vars
include mk/podman.mk
# Disk Imaging and Cookbook tools
include mk/fstools.mk
# Cross compiler recipes
include mk/prefix.mk
# Repository maintenance
include mk/repo.mk
# Disk images
include mk/disk.mk
# Emulation recipes
include mk/qemu.mk
include mk/virtualbox.mk
# CI
include mk/ci.mk
env: prefix FORCE $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
bash
endif
setenv: FORCE
@echo export ARCH='$(ARCH)'
@echo export BOARD='$(BOARD)'
@echo export CONFIG_NAME='$(CONFIG_NAME)'
@echo BUILD='$(BUILD)'
export RUST_GDB=gdb-multiarch # Necessary when debugging for another architecture than the host
GDB_KERNEL_FILE=recipes/core/kernel/target/$(TARGET)/build/kernel.sym
gdb: FORCE
rust-gdb $(GDB_KERNEL_FILE) --eval-command="target remote :1234"
# This target allows debugging a userspace application without requiring gdbserver running inside
# the VM. Because gdb doesn't know when the userspace application is scheduled by the kernel and as
# it stops the entire VM rather than just the userspace application that the user wants to debug,
# connecting to a gdbserver running inside the VM is highly encouraged when possible. This target
# should only be used when the application to debug runs early during boot before the network stack
# has started or you need to debug the interaction between the application and the kernel.
# tl;dr: DO NOT USE THIS TARGET UNLESS YOU HAVE TO
gdb-userspace: FORCE
rust-gdb $(GDB_APP_FILE) --eval-command="add-symbol-file $(GDB_KERNEL_FILE)" --eval-command="target remote :1234"
# An empty target
FORCE:
# Wireshark
wireshark: FORCE
wireshark $(BUILD)/network.pcap
================================================
FILE: README.md
================================================
<p align="center">
<img alt="Redox" width="346" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/logos/redox/logo.png">
</p>
This repository is the **Build System** for Redox OS.
Redox is under active development by a vibrant community, you can see the key links below:
- [The **main website** for Redox OS](https://www.redox-os.org).
- [The Redox Book](https://doc.redox-os.org/book/) and [Build Instructions](https://doc.redox-os.org/book/podman-build.html).
- [Redox Chat and Support](https://matrix.to/#/#redox-join:matrix.org).
- [Patreon](https://www.patreon.com/redox_os), [Donate](https://redox-os.org/donate/) and [Merch](https://redox-os.creator-spring.com/).
- Scroll down for a list of key Redox components and their repositories.
[Redox](https://www.redox-os.org) is an open-source operating system written in Rust, a language with focus on safety, efficiency and high performance. Redox uses a microkernel architecture, and aims to be reliable, secure, usable, correct, and free. Redox is inspired by previous operating systems, such as seL4, MINIX, Plan 9, Linux and BSD.
Redox _is not_ just a kernel, it's a **full-featured operating system**, providing components (file system, display server, core utilities, etc.) that together make up a functional and convenient operating system. Redox uses the COSMIC desktop apps, and provides source code compatibility with many Rust, Linux and BSD programs.
[](./LICENSE)
## More Links
- [Book](https://doc.redox-os.org/book/)
- [Contribute](CONTRIBUTING.md)
- [Hardware Compatibility](https://doc.redox-os.org/book/hardware-support.html)
- Run Redox in a [Virtual Machine](https://doc.redox-os.org/book/running-vm.html) or on [Real Hardware](https://doc.redox-os.org/book/real-hardware.html)
- [Trying Out Redox](https://doc.redox-os.org/book/trying-out-redox.html)
- [Building Redox](https://doc.redox-os.org/book/podman-build.html)
- [Build System Documentation](https://doc.redox-os.org/book/build-system-reference.html)
- [Developer FAQ](https://doc.redox-os.org/book/developer-faq.html)
- [Chat/Discussions/Help](https://doc.redox-os.org/book/chat.html)
## Ecosystem
Some of the key repositories on the Redox GitLab:
| Essential Repositories | Maintainer
|-------------------------------------------------------------------------------------------------------------|---------------------------
| [Kernel](https://gitlab.redox-os.org/redox-os/kernel) | **@jackpot51**
| [Base (essential system components and drivers)](https://gitlab.redox-os.org/redox-os/base) | **@jackpot51**
| [RedoxFS (default filesystem)](https://gitlab.redox-os.org/redox-os/redoxfs) | **@jackpot51**
| [relibc (C POSIX library written in Rust)](https://gitlab.redox-os.org/redox-os/relibc) | **@jackpot51**
| [Ion (defauilt shell)](https://gitlab.redox-os.org/redox-os/ion) | **@jackpot51**
| [Termion (terminal library)](https://gitlab.redox-os.org/redox-os/termion) | **@jackpot51**
| [pkgutils (current package manager)](https://gitlab.redox-os.org/redox-os/pkgutils) | **@jackpot51**
| [Orbital (display server and window manager)](https://gitlab.redox-os.org/redox-os/orbital) | **@jackpot51**
| This repo - the root of the Build System | **@jackpot51** **@hatred_45**
| [Redoxer (tool for easy Redox development on Linux)](https://gitlab.redox-os.org/redox-os/redoxer) | **@jackpot51**
| [The Redox Book](https://gitlab.redox-os.org/redox-os/book) | **@jackpot51** **@hatred_45**
| [Website](https://gitlab.redox-os.org/redox-os/website) | **@jackpot51** **@hatred_45**
## What it looks like
See [Redox in Action](https://www.redox-os.org/screens/) for photos and videos.
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/website/-/raw/master/static/img/screenshot/orbital-visual.png">
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/website/-/raw/master/static/img/screenshot/cosmic-programs.png">
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/website/-/raw/master/static/img/screenshot/cosmic-term-screenfetch.png">
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/website/-/raw/master/static/img/screenshot/cosmic-edit-redox.png">
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/website/-/raw/master/static/img/screenshot/image-viewer.png">
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/screenshots/Boot.png">
================================================
FILE: TRADEMARK.md
================================================
# Redox OS Trademark Policy
This document outlines the policy regarding the use of the Redox OS trademark owned by the Redox OS nonprofit. The purpose of this policy is to ensure that the Redox OS trademark is used correctly and consistently, maintaining the integrity and reputation of the Redox OS brand.
1. Usage of the Redox OS Trademark
1. The Redox OS trademark includes, but is not limited to, the name "Redox OS", the Redox OS logo, and any associated symbols or designs.
2. The Redox OS trademark may only be used in accordance with this policy. Unauthorized use of the trademark is prohibited.
2. Permissible Use
1. Community Projects: Community projects may use the Redox OS trademark to refer to the operating system, provided that such use is not misleading and does not imply endorsement by the Redox OS nonprofit without explicit permission.
2. Educational and Informational Use: The Redox OS trademark may be used in educational and informational materials, including books, websites, and articles, to refer to the operating system, provided that such use complies with the guidelines set forth in this policy.
3. Marketing and Promotional Use: Partners and affiliates of the Redox OS nonprofit may use the Redox OS trademark in marketing and promotional materials with prior written consent from the Redox OS nonprofit.
3. Prohibited Use
1. Misrepresentation: The Redox OS trademark must not be used in a way that misrepresents or implies false association with, endorsement by, or sponsorship from the Redox OS nonprofit.
2. Modification: The Redox OS trademark must not be altered, modified, or used as part of another trademark or logo without prior written permission from the Redox OS nonprofit.
3. Merchandising: The Redox OS trademark must not be used on merchandise (e.g., T-shirts, mugs) for commercial purposes without explicit authorization from the Redox OS nonprofit.
4. Logo Usage Guidelines
1. The Redox OS logo must be used as provided by the Redox OS nonprofit without any modifications. This includes maintaining the logo’s colors, proportions, and overall design.
2. The Redox OS logo must be displayed in a manner that is clear and legible. Sufficient clear space should be maintained around the logo to ensure it is not crowded by other visual elements.
3. The Redox OS name should be identified as a trademark using the “™” symbol.
5. Official Redox OS Software
1. Software hosted at [the Redox OS GitLab group](https://gitlab.redox-os.org/redox-os/) is considered official Redox OS software. Only software that has been approved by the Redox OS nonprofit is permitted to use the Redox OS trademarks to refer to itself. Software that is official Redox OS software may use the “redox-os-” package namespace and “org.redox_os.” prefixed reverse-DNS ID. Other software should avoid using these prefixes.
2. Third-party software that integrates with or extend the Redox OS operating system must not use the Redox OS trademark in a way that implies official status or endorsement without prior approval from the Redox OS nonprofit. Third-party developers are encouraged to use the "redox-os-ext-" package namespace. This software may be described as "for the Redox OS™ operating system".
3. Third-party software may request inclusion as official Redox OS software. To request inclusion, please contact the Redox OS nonprofit at trademark@redox-os.org.
6. Request for Permission
1. To request permission for uses of the Redox OS trademark not covered by this policy, please contact the Redox OS nonprofit at trademark@redox-os.org.
2. All requests will be reviewed on a case-by-case basis, and the Redox OS nonprofit reserves the right to grant or deny permission at its sole discretion.
7. Enforcement
1. The Redox OS nonprofit reserves the right to take appropriate legal action against any unauthorized use of the Redox OS trademark.
2. The Redox OS nonprofit may, at its discretion, require the cessation of use of the Redox OS trademark by any party that fails to comply with this policy.
## Contact Information
For any questions or to request permission to use the Redox OS trademark, please contact:<br><br>
Redox OS<br>
trademark@redox-os.org<br><br>
This trademark policy is effective as of December 3, 2025 and may be updated from time to time at the discretion of the Redox OS nonprofit.
---
By adhering to these guidelines, you help us protect the Redox OS brand and ensure it remains a symbol of quality and innovation. Thank you for your cooperation.
================================================
FILE: bin/aarch64-unknown-redox-pkg-config
================================================
#!/usr/bin/env bash
export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig"
export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig"
if [ -n "${COOKBOOK_DYNAMIC}" ]
then
exec pkg-config "$@"
else
exec pkg-config --static "$@"
fi
================================================
FILE: bin/i586-unknown-redox-pkg-config
================================================
#!/usr/bin/env bash
export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig"
export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig"
if [ -n "${COOKBOOK_DYNAMIC}" ]
then
exec pkg-config "$@"
else
exec pkg-config --static "$@"
fi
================================================
FILE: bin/i686-unknown-redox-pkg-config
================================================
#!/usr/bin/env bash
export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig"
export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig"
if [ -n "${COOKBOOK_DYNAMIC}" ]
then
exec pkg-config "$@"
else
exec pkg-config --static "$@"
fi
================================================
FILE: bin/riscv64-unknown-redox-pkg-config
================================================
#!/usr/bin/env bash
export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig"
export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig"
if [ -n "${COOKBOOK_DYNAMIC}" ]
then
exec pkg-config "$@"
else
exec pkg-config --static "$@"
fi
================================================
FILE: bin/x86_64-unknown-redox-llvm-config
================================================
#!/usr/bin/env python3
# This script wraps llvm-config that intended for cross compiling to Redox.
# Because we can't run llvm-config compiled to Redox, we wrap it here
# and filter out architectures that do not match the current $TARGET.
import os
import sys
import subprocess
LLVM_CONFIG = "/bin/llvm-config"
# name of (--targets-built, --components prefix, --libs prefix)
ARCH_MAP = {
"x86_64": ("X86", "x86", "X86"),
"i586": ("X86", "x86", "X86"),
"aarch64": ("AArch64", "aarch64", "AArch64"),
"riscv64gc": ("RISCV", "riscv", "RISCV"),
}
ALL_ARCH_COMPS = ["x86", "aarch64", "riscv"]
ALL_ARCH_LIBS = ["X86", "AArch64", "RISCV"]
def is_unwanted_arch(item, allowed_prefix, all_prefixes, is_lib=False):
matched_arch = None
for arch in all_prefixes:
# libraries e.g., -lLLVMX86CodeGen / libLLVMAArch64Desc.a
if is_lib and f"LLVM{arch}" in item:
matched_arch = arch
break
# components e.g., x86codegen, aarch64desc
elif not is_lib and item.startswith(arch):
matched_arch = arch
break
if matched_arch and matched_arch != allowed_prefix:
return True
return False
def main():
toolchain_path = os.environ.get("COOKBOOK_HOST_SYSROOT")
sysroot_path = os.environ.get("COOKBOOK_SYSROOT")
target_triple = os.environ.get("TARGET")
if not toolchain_path or not sysroot_path or not target_triple:
print("Error: COOKBOOK_HOST_SYSROOT or COOKBOOK_SYSROOT or TARGET not set", file=sys.stderr)
sys.exit(1)
target_arch = target_triple.split('-')[0] if target_triple else ""
mapped_archs = ARCH_MAP.get(target_arch)
target_built_name, comp_prefix, lib_prefix = mapped_archs
cmd = [toolchain_path + LLVM_CONFIG] + sys.argv[1:]
try:
result = subprocess.run(
cmd,
stdout=subprocess.PIPE,
stderr=sys.stderr,
check=False,
text=True
)
except FileNotFoundError:
print(f"Error: Could not find executable '{LLVM_CONFIG}'", file=sys.stderr)
sys.exit(1)
if result.returncode != 0:
sys.exit(result.returncode)
output = result.stdout.strip()
args_set = set(sys.argv[1:])
if "--bindir" in args_set:
output = toolchain_path + "/usr/bin"
elif "--targets-built" in args_set:
output = target_built_name
elif "--components" in args_set:
components = output.split()
filtered = [c for c in components if not is_unwanted_arch(c, comp_prefix, ALL_ARCH_COMPS, is_lib=False)]
output = " ".join(filtered)
elif "--libs" in args_set:
libs = output.split()
filtered = [l for l in libs if not is_unwanted_arch(l, lib_prefix, ALL_ARCH_LIBS, is_lib=True)]
output = " ".join(filtered)
# if "--ldflags" in args_set:
src = toolchain_path.rstrip(os.sep)
dst = sysroot_path.rstrip(os.sep)
output = output.replace(src, dst)
else:
src = toolchain_path.rstrip(os.sep)
dst = sysroot_path.rstrip(os.sep)
output = output.replace(src, dst)
print(output + '\n', end='')
if __name__ == "__main__":
main()
================================================
FILE: bin/x86_64-unknown-redox-pkg-config
================================================
#!/usr/bin/env bash
export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig"
export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig"
if [ -n "${COOKBOOK_DYNAMIC}" ]
then
exec pkg-config "$@"
else
exec pkg-config --static "$@"
fi
================================================
FILE: build.sh
================================================
#!/usr/bin/env bash
# Alternative script for the build system Makefiles
###########################################################################
# #
# Build the system, with a specified processor type and filesystem config #
# #
###########################################################################
usage()
{
echo "build.sh: Invoke make for a particular architecture and configuration."
echo "Usage:"
echo "./build.sh [-X | -A | -5 | -R | -a ARCH] [-c CONFIG] [-f FILESYSTEM_CONFIG] TARGET..."
echo " -X Equivalent to -a x86_64."
echo " -A Equivalent to -a aarch64."
echo " -5 Equivalent to -a i586."
echo " -6 Equivalent to -a i586 (deprecated, use -5 instead)."
echo " -R Equivalent to -a riscv64gc."
echo " -a ARCH: Processor Architecture. Normally one of x86_64, aarch64 or"
echo " i686. ARCH is not checked, so you can add a new architecture."
echo " Defaults to the directory containing the FILESYSTEM_CONFIG file,"
echo " or x86_64 if no FILESYSTEM_CONFIG is specified."
echo " -c CONFIG: The name of the config, e.g. desktop, server or demo."
echo " Determines the name of the image, build/ARCH/CONFIG/harddrive.img"
echo " e.g. build/x86_64/desktop/harddrive.img"
echo " Determines the name of FILESYSTEM_CONFIG if none is specified."
echo " Defaults to the basename of FILESYSTEM_CONFIG, or 'desktop'"
echo " if FILESYSTEM_CONFIG is not specified."
echo " -f FILESYSTEM_CONFIG:"
echo " The config file to use. It can be in any location."
echo " However, if the file is not in a directory named x86_64, aarch64"
echo " or i686, you must specify the architecture."
echo " If -f is not specified, FILESYSTEM_CONFIG is set to"
echo " config/ARCH/CONFIG.toml"
echo " If you specify both CONFIG and FILESYSTEM_CONFIG, it is not"
echo " necessary that they match, but it is recommended."
echo " Examples: ./build.sh -c demo live - make build/x86_64/demo/redox-live.iso"
echo " ./build.sh -6 qemu - make build/i686/desktop/harddrive.img and"
echo " and run it in qemu"
echo " NOTE: If you do not change ARCH or CONFIG very often, edit mk/config.mk"
echo " and set ARCH and FILESYSTEM_CONFIG. You only need to use this"
echo " script when you want to override them."
}
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
usage
exit
fi
defaultarch="x86_64"
defaultname="desktop"
ARCH=""
CONFIG_NAME=""
FILESYSTEM_CONFIG=""
while getopts ":c:f:a:dhXA6" opt
do
case "$opt" in
a) ARCH="$OPTARG";;
c) CONFIG_NAME="$OPTARG";;
f) FILESYSTEM_CONFIG="$OPTARG";;
X) ARCH="x86_64";;
A) ARCH="aarch64";;
R) ARCH="riscv64gc";;
5) ARCH="i586";;
6) ARCH="i586";;
h) usage;;
\?) echo "Unknown option -$OPTARG, try -h for help"; exit;;
:) echo "-$OPTARG requires a value"; exit;;
esac
done
shift $((OPTIND -1))
if [ -z "$ARCH" ] && [ -n "$FILESYSTEM_CONFIG" ]; then
dirname=`dirname "$FILESYSTEM_CONFIG"`
ARCH=`basename $dirname`
case "$ARCH" in
x86_64) : ;;
aarch64) : ;;
riscv64gc) : ;;
i586) : ;;
\?) ARCH=""; echo "Unknown Architecture, please specify x86_64, aarch64, riscv64gc or i586";;
esac
fi
if [ -z "$config_name" ] && [ -n "$FILESYSTEM_CONFIG" ]; then
CONFIG_NAME=`basename "$FILESYSTEM_CONFIG" .toml`
fi
if [ -z "$ARCH" ]; then
ARCH="$defaultarch"
fi
if [ -z "$CONFIG_NAME" ]; then
CONFIG_NAME="$defaultname"
fi
if [ -z "$FILESYSTEM_CONFIG" ]; then
FILESYSTEM_CONFIG="config/$ARCH/$CONFIG_NAME.toml"
fi
export ARCH CONFIG_NAME FILESYSTEM_CONFIG
make $@
================================================
FILE: config/aarch64/ci.toml
================================================
# The Redox build server configuration
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost
#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work
# Meta-packages below
# auto-test = {}
# dev-essential = {}
# dev-redox = {}
# redox-tests = {}
# x11-minimal = {}
# x11-full = {}
# Normal packages below
acid = {}
acid-bins = {}
base = {}
base-initfs = {}
bash = {}
bash-completion = {}
bootloader = {}
bottom = {}
ca-certificates = {}
contain = {}
coreutils = {}
cosmic-edit = {}
cosmic-files = {}
cosmic-icons = {}
cosmic-term = {}
cosmic-text = {}
curl = {}
dash = {}
dejavu = {}
diffutils = {}
expat = {}
extrautils = {}
findutils = {}
freefont = {}
freetype2 = {}
gcc13 = {}
gettext = {}
git = {}
gnu-binutils = {}
gnu-make = {}
hicolor-icon-theme = {}
installer = {}
installer-gui = {}
ion = {}
kernel = {}
kibi = {}
libffi = {}
libgcc = {}
libiconv = {}
libjpeg = {}
libogg = {}
liborbital = {}
libpng = {}
libstdcxx = {}
libvorbis = {}
libxkbcommon = {}
libxml2 = {}
llvm21 = {}
nano = {}
nasm = {}
ncurses = {}
netdb = {}
netsurf = {}
netutils = {}
nghttp2 = {}
openssl1 = {}
openssl3 = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
patch = {}
patchelf = {}
pcre = {}
pkgutils = {}
pls = {}
pop-icon-theme = {}
redoxfs = {}
relibc = {}
ripgrep = {}
rust = {}
rustpython = {}
sdl1 = {}
sed = {}
shared-mime-info = {}
smith = {}
terminfo = {}
userutils = {}
uutils = {}
vim = {}
xz = {}
zlib = {}
zstd = {}
# #"gcc13.cxx" = {}
# #"llvm21.clang" = {}
# #"llvm21.clang-dev" = {}
# #"llvm21.dev" = {}
# #"llvm21.lld" = {}
# #"llvm21.lld-dev" = {}
# #"llvm21.runtime" = {}
# #"python312.dev" = {}
# #"rust.doc" = {}
# #atk = {} # depends on glib which does not build
# #benchmarks = {}
# #binutils-gdb = {}
# #book = {}
# #cairo-demo = {} # linking errors
# #classicube = {}
# #cmake = {}
# #cmatrix = {} # needs ncursesw now
# #cookbook = {}
# #cosmic-reader = {}
# #cosmic-settings = {}
# #cosmic-store = {}
# #devilutionx = {}
# #dynamic-example = {}
# #fal
# #fd = {} # ctrlc-3.1.1
# #file = {}
# #flycast = {}
# #freeciv = {}
# #freeglut = {}
# #friar = {} # mio patch
# #game-2048 = {} # rustc-serialize
# #gawk = {} # langinfo.h
# #gigalomania = {} # old recipe format
# #gitoxide = {}
# #goaccess = {}
# #gstreamer = {} # conflict with thread local errno
# #harfbuzz = {} # depends on glib which does not build
# #helix = {}
# #hello-redox = {}
# #hematite = {} # needs crate patches for redox-unix
# #hf = {}
# #ibm-plex = {}
# #iced = {}
# #jansson = {} # needs config.sub update
# #jq = {}
# #libarchive = {}
# #libatomic = {}
# #libcosmic = {}
# #libflac = {}
# #libmodplug1 = {}
# #libmpfr = {}
# #libnettle = {}
# #libogg = {}
# #libpsl = {}
# #libssh2 = {}
# #libtool = {}
# #liburcu = {}
# #libuv = {}
# #lua-compat-53 = {}
# #luajit = {}
# #luarocks = {}
# #luv = {}
# #mdp = {} # gcc hangs
# #miniserve = {} # actix
# #mpc = {}
# #mupen64plus = {}
# #ncdu = {} # multiple definitions of symbols
# #newlib = {} # obsolete
# #newlibtest = {} # obsolete
# #noto-color-emoji = {}
# #nushell = {} # needs cargo update
# #openjk = {}
# #openposixtestsuite = {}
# #opentyrian = {}
# #orbcalculator = {}
# #ostest-bins = {}
# #pango = {} # undefined references to std::__throw_system_error(int)
# #pastel = {} # needs crate patches for redox-unix
# #pathfinder = {} # servo-fontconfig
# #pciids = {}
# #pcre2 = {}
# #pixman = {} # depends on glib which does not build
# #pkgar = {} # uses virtual Cargo.toml, needs recipe update
# #pls = {}
# #pop-wallpapers = {}
# #powerline = {} # dirs
# #qemu = {} # can be built, but not working
# #quakespasm = {}
# #redox-posix-tests = {}
# #redox-ssh = {} # does not compile
# #retroarch = {} # OS_TLSIndex not declared
# #rust-cairo = {} # linking errors
# #rust-cairo-demo = {} # linking errors
# #rvvm = {}
# #schismtracker = {} # uses system includes
# #sdl-player = {} # wctype_t
# #sdl2-gfx = {}
# #sm64ex = {}
# #spacecadetpinball = {}
# #twin-commander = {}
# #ubuntu-wallpapers = {}
# #unibilium = {}
# #utf8proc = {}
# #vice = {} # linker errors
# #vvvvvv = {} # did not compile
# #webrender = {} # unwind
# #website = {}
# #wesnoth = {}
# #wget = {}
# autoconf = {}
# automake = {}
# binutils = {}
# bzip2 = {}
# cairo = {}
# cleye = {}
# composer = {}
# cpal = {}
# dosbox = {}
# duktape = {}
# eduke32 = {}
# exampled = {}
# expat = {}
# extrautils = {}
# ffmpeg6 = {}
# fontconfig = {}
# freedoom = {}
# freepats = {}
# fribidi = {}
# gdbserver = {} # wrong libc type
# gdk-pixbuf = {}
# gears = {}
# generaluser-gs = {}
# glib = {}
# glutin = {}
# gnu-grep = {}
# htop = {}
# intel-one-mono = {}
# lci = {}
# libavif = {}
# libc-bench = {}
# libedit = {}
# libgmp = {}
# libicu = {}
# libonig = {}
# libsodium = {}
# libuuid = {}
# libwebp = {}
# lsd = {}
# lua54 = {}
# lz4 = {}
# mednafen = {}
# mesa = {} # libudev was not found
# mesa-glu = {} # depends on mesa
# mgba = {}
# mpc = {} # libmpfr not found
# ncursesw = {}
# neverball = {}
# nginx = {}
# onefetch = {}
# openjazz = {}
# openssh = {}
# openttd = {}
# openttd-opengfx = {}
# openttd-openmsx = {}
# openttd-opensfx = {}
# orbclient = {}
# osdemo = {}
# perg = {}
# periodictable = {}
# perl5 = {}
# php84 = {}
# pixelcannon = {}
# pkg-config = {}
# prboom = {}
# procedural-wallpapers-rs = {}
# python312 = {}
# readline = {}
# redox-fatfs = {}
# redox-games = {}
# relibc-tests = {}
# relibc-tests-bins = {}
# rodioplay = {}
# rs-nes = {}
# rsync = {}
# rust64 = {}
# rustual-boy = {}
# scummvm = {}
# sdl-gfx = {}
# sdl1-image = {}
# sdl1-mixer = {}
# sdl1-ttf = {}
# sdl2 = {}
# sdl2-gears = {}
# sdl2-image = {}
# sdl2-mixer = {}
# sdl2-ttf = {}
# servo = {}
# shellharden = {}
# shellstorm = {}
# simple-http-server = {}
# sodium = {}
# sopwith = {}
# sqlite3 = {}
# strace = {} # unknown syscall
# syobonaction = {}
# timidity = {}
# tokei = {}
# ttf-hack = {}
# vttest = {}
# webkitgtk3 = {}
# winit = {}
# xxhash = {}
# zoxide = {} # untested
================================================
FILE: config/aarch64/demo.toml
================================================
# Configuration for demonstration
include = ["../desktop.toml"]
================================================
FILE: config/aarch64/dev.toml
================================================
# Configuration for development
include = ["../dev.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# see ci.toml for error reasons
gdbserver = "ignore"
gnu-binutils = "ignore"
mesa = "ignore"
mesa-glu = "ignore"
mpc = "ignore"
strace = "ignore"
================================================
FILE: config/aarch64/jeremy.toml
================================================
# Configuration for Jeremy Soller
include = ["desktop.toml"]
================================================
FILE: config/aarch64/raspi3bp/minimal.toml
================================================
# Minimal configuration
include = ["../../minimal.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# EFI partition size in MiB
efi_partition_size = 128
================================================
FILE: config/aarch64/redoxer.toml
================================================
# Configuration used for building redoxer base image
include = ["../redoxer.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1024
================================================
FILE: config/acid.toml
================================================
# Configuration for "acid" testing
include = ["base.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1024
# Package settings
[packages]
acid = {}
coreutils = {}
ion = {}
[[files]]
path = "/usr/lib/init.d/10_acid"
data = """
requires_weak 00_drivers
ion /usr/lib/run_acid.ion
"""
[[files]]
path = "/usr/lib/run_acid.ion"
data = """
#!/usr/bin/env ion
export RUST_BACKTRACE=full
cd /home/user/acid
cargo test
shutdown
"""
================================================
FILE: config/auto-test.toml
================================================
# Configuration for automated testing of essential test suites
# Smaller test suites are executed first to catch possible bugs or regressions faster
include = ["base.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1024
# Package settings
[packages]
auto-test = {}
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
requires_weak 10_net
ion /usr/lib/run_tests.ion
"""
[[files]]
path = "/usr/lib/run_tests.ion"
data = """
#!/usr/bin/env ion
export RUST_BACKTRACE=full
cd /home/user/acid
cargo test
bash /root/relibc-tests/run.sh
os-test-runner
shutdown
"""
================================================
FILE: config/base.toml
================================================
# Base configuration: This configuration is meant to be included by
# other configurations rather than use directly. It is the greatest
# common divisor of all other configurations and misses several
# parts necessary to create a bootable system.
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
[packages]
base = {}
base-initfs = {}
bootloader = {}
kernel = {}
libgcc = {}
libstdcxx = {}
netdb = {}
netutils = {}
relibc = {}
userutils = {}
uutils = {}
## Configuration files
[[files]]
path = "/usr/lib/init.d/00_base"
data = """
# clear and recreate tmpdir with 0o1777 permission
rm -rf /tmp
mkdir -m a=rwxt /tmp
notify ipcd
notify ptyd
nowait sudo --daemon
"""
[[files]]
path = "/usr/lib/init.d/00_drivers"
data = """
requires_weak 00_base
pcid-spawner
"""
## Network init
[[files]]
path = "/usr/lib/init.d/10_net"
data = """
requires_weak 00_drivers
notify smolnetd
nowait dhcpd
"""
[[files]]
path = "/etc/login_schemes.toml"
data = """
[user_schemes.root]
schemes = ["*"]
[user_schemes.user]
schemes = [
# Kernel schemes
"debug",
"event",
"memory",
"pipe",
"serio",
"irq",
"time",
"sys",
# Base schemes
"rand",
"null",
"zero",
"log",
# Network schemes
"ip",
"icmp",
"tcp",
"udp",
# IPC schemes
"shm",
"chan",
"uds_stream",
"uds_dgram",
# File schemes
"file",
# Display schemes
"display.vesa",
"display*",
# Other schemes
"pty",
"sudo",
"audio",
"orbital",
]
"""
[[files]]
path = "/etc/hostname"
data = "redox"
## Default net configuration (optimized for QEMU)
[[files]]
path = "/etc/net/dns"
data = """
9.9.9.9
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
# https://www.freedesktop.org/software/systemd/man/latest/os-release.html
[[files]]
path = "/usr/lib/os-release"
data = """
PRETTY_NAME="Redox OS 0.9.0"
NAME="Redox OS"
VERSION_ID="0.9.0"
VERSION="0.9.0"
ID="redox-os"
HOME_URL="https://redox-os.org/"
DOCUMENTATION_URL="https://redox-os.org/docs/"
SUPPORT_URL="https://redox-os.org/community/"
"""
# FIXME maybe add VARIANT= and VARIANT_ID= keys depending on the chosen configuration?
[[files]]
path = "/etc/os-release"
data = "../usr/lib/os-release"
symlink = true
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
## /usr and symlinks for usrmerge
[[files]]
path = "/usr"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/usr/bin"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/bin"
data = "usr/bin"
symlink = true
[[files]]
path = "/usr/include"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/include"
data = "usr/include"
symlink = true
[[files]]
path = "/usr/lib"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/lib"
data = "usr/lib"
symlink = true
[[files]]
path = "/usr/libexec"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/usr/share"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/share"
data = "usr/share"
symlink = true
[[files]]
path = "/ui"
data = "usr/share/ui"
symlink = true
## legacy orbital font directory
[[files]]
path = "/usr/share/ui/fonts"
data = "/usr/share/fonts"
symlink = true
## legacy orbital icon directory
[[files]]
path = "/usr/share/ui/icons"
data = "/usr/share/icons"
symlink = true
## /var
[[files]]
path = "/var"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/var/cache"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/var/lib"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/var/lock"
data = ""
directory = true
mode = 0o1777
[[files]]
path = "/var/log"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/var/run"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/var/tmp"
data = ""
directory = true
mode = 0o1777
## Device file symlinks
[[files]]
path = "/dev/null"
data = "/scheme/null"
symlink = true
[[files]]
path = "/dev/random"
data = "/scheme/rand"
symlink = true
[[files]]
path = "/dev/urandom"
data = "/scheme/rand"
symlink = true
[[files]]
path = "/dev/zero"
data = "/scheme/zero"
symlink = true
[[files]]
path = "/dev/tty"
data = "libc:tty"
symlink = true
[[files]]
path = "/dev/stdin"
data = "libc:stdin"
symlink = true
[[files]]
path = "/dev/stdout"
data = "libc:stdout"
symlink = true
[[files]]
path = "/dev/stderr"
data = "libc:stderr"
symlink = true
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
shell = "/usr/bin/ion"
[users.user]
# Password is unset
password = ""
shell = "/usr/bin/ion"
# Group settings
[groups.sudo]
gid = 1
members = ["user"]
================================================
FILE: config/desktop-minimal.toml
================================================
# Minimal desktop configuration
include = ["minimal.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# Package settings
[packages]
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
requires_weak 10_net
notify audiod
nowait VT=3 orbital orblogin launcher
"""
# Override console config to not switch to VT 2
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
requires_weak 20_orbital
nowait getty 2
nowait getty /scheme/debug/no-preserve -J
"""
================================================
FILE: config/desktop.toml
================================================
# Default build system configuration
include = ["desktop-minimal.toml", "server.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 650
# Package settings
[packages]
cosmic-edit = {}
cosmic-files = {}
cosmic-icons = {}
cosmic-term = {}
dejavu = {}
freefont = {}
hicolor-icon-theme = {}
installer-gui = {}
netsurf = {}
patchelf = {}
pop-icon-theme = {}
shared-mime-info = {}
# orbterm from desktop-minimal should be ignored
orbterm = "ignore"
================================================
FILE: config/dev.toml
================================================
# Configuration for development
include = ["desktop.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 20000
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
dev-redox = {}
hello-redox = {}
================================================
FILE: config/i586/ci.toml
================================================
# The Redox build server configuration
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost
#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work
# Meta-packages below
# auto-test = {}
# dev-essential = {}
# dev-redox = {}
# redox-tests = {}
# x11-minimal = {}
# x11-full = {}
# Normal packages below
# acid = {} # rust require dynamic linking
acid-bins = {}
base = {}
base-initfs = {}
bash = {}
bash-completion = {}
bootloader = {}
bottom = {}
ca-certificates = {}
contain = {}
coreutils = {}
cosmic-edit = {}
cosmic-files = {}
cosmic-icons = {}
cosmic-term = {}
cosmic-text = {}
curl = {}
dash = {}
dejavu = {}
diffutils = {}
expat = {}
extrautils = {}
findutils = {}
freefont = {}
freetype2 = {}
gettext = {}
git = {}
gnu-make = {}
hicolor-icon-theme = {}
installer = {}
installer-gui = {}
ion = {}
kernel = {}
kibi = {}
libffi = {}
libgcc = {}
libiconv = {}
libjpeg = {}
libogg = {}
liborbital = {}
libpng = {}
libstdcxx = {}
libvorbis = {}
libxkbcommon = {}
libxml2 = {}
nano = {}
nasm = {}
ncurses = {}
netdb = {}
netsurf = {}
netutils = {}
nghttp2 = {}
openssl1 = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
patch = {}
pcre = {}
patchelf = {}
pop-icon-theme = {}
pkgutils = {}
redoxfs = {}
relibc = {}
ripgrep = {}
rustpython = {}
sdl1 = {}
sed = {}
shared-mime-info = {}
smith = {}
terminfo = {}
userutils = {}
uutils = {}
xz = {}
#vim = {} # conflicting types
zlib = {}
# #"gcc13.cxx" = {}
# #"llvm21.clang" = {}
# #"llvm21.clang-dev" = {}
# #"llvm21.dev" = {}
# #"llvm21.lld" = {}
# #"llvm21.lld-dev" = {}
# #"llvm21.runtime" = {}
# #"python312.dev" = {}
# #"rust.doc" = {}
# #atk = {} # depends on glib which does not build
# #benchmarks = {}
# #binutils-gdb = {}
# #book = {}
# #cairo-demo = {} # linking errors
# #classicube = {}
# #cmake = {}
# #cmatrix = {} # needs ncursesw now
# #cookbook = {}
# #cosmic-reader = {}
# #cosmic-settings = {}
# #cosmic-store = {}
# #devilutionx = {}
# #dynamic-example = {}
# #fal
# #fd = {} # ctrlc-3.1.1
# #file = {}
# #flycast = {}
# #freeciv = {}
# #freeglut = {}
# #friar = {} # mio patch
# #game-2048 = {} # rustc-serialize
# #gawk = {} # langinfo.h
# #gigalomania = {} # old recipe format
# #gitoxide = {}
# #goaccess = {}
# #gstreamer = {} # conflict with thread local errno
# #harfbuzz = {} # depends on glib which does not build
# #helix = {}
# #hello-redox = {}
# #hematite = {} # needs crate patches for redox-unix
# #hf = {}
# #ibm-plex = {}
# #iced = {}
# #jansson = {} # needs config.sub update
# #jq = {}
# #libarchive = {}
# #libatomic = {}
# #libcosmic = {}
# #libflac = {}
# #libmodplug1 = {}
# #libmpfr = {}
# #libnettle = {}
# #libogg = {}
# #libpsl = {}
# #libssh2 = {}
# #libtool = {}
# #liburcu = {}
# #libuv = {}
# #lua-compat-53 = {}
# #luajit = {}
# #luarocks = {}
# #luv = {}
# #mdp = {} # gcc hangs
# #miniserve = {} # actix
# #mpc = {}
# #mupen64plus = {}
# #ncdu = {} # multiple definitions of symbols
# #newlib = {} # obsolete
# #newlibtest = {} # obsolete
# #noto-color-emoji = {}
# #nushell = {} # needs cargo update
# #openjk = {}
# #openposixtestsuite = {}
# #opentyrian = {}
# #orbcalculator = {}
# #ostest-bins = {}
# #pango = {} # undefined references to std::__throw_system_error(int)
# #pastel = {} # needs crate patches for redox-unix
# #pathfinder = {} # servo-fontconfig
# #pciids = {}
# #pcre2 = {}
# #pixman = {} # depends on glib which does not build
# #pkgar = {} # uses virtual Cargo.toml, needs recipe update
# #pls = {}
# #pop-wallpapers = {}
# #powerline = {} # dirs
# #qemu = {} # can be built, but not working
# #quakespasm = {}
# #redox-posix-tests = {}
# #redox-ssh = {} # does not compile
# #retroarch = {} # OS_TLSIndex not declared
# #rust-cairo = {} # linking errors
# #rust-cairo-demo = {} # linking errors
# #rvvm = {}
# #schismtracker = {} # uses system includes
# #sdl-player = {} # wctype_t
# #sdl2-gfx = {}
# #sm64ex = {}
# #spacecadetpinball = {}
# #twin-commander = {}
# #ubuntu-wallpapers = {}
# #unibilium = {}
# #utf8proc = {}
# #vice = {} # linker errors
# #vvvvvv = {} # did not compile
# #webrender = {} # unwind
# #website = {}
# #wesnoth = {}
# #wget = {}
# autoconf = {}
# automake = {}
# binutils = {}
# bzip2 = {}
# cairo = {}
# cleye = {}
# composer = {}
# cpal = {}
# dosbox = {}
# duktape = {}
# eduke32 = {}
# exampled = {}
# ffmpeg6 = {}
# fontconfig = {}
# freedoom = {}
# freepats = {}
# fribidi = {}
# gcc13 = {}
# gdbserver = {}
# gdk-pixbuf = {}
# gears = {}
# generaluser-gs = {}
# glib = {}
# glutin = {}
# gnu-binutils = {}
# gnu-grep = {}
# htop = {}
# intel-one-mono = {}
# lci = {}
# libavif = {}
# libc-bench = {}
# libedit = {}
# libgmp = {}
# libicu = {}
# libonig = {}
# libsodium = {}
# libuuid = {}
# libwebp = {}
# llvm21 = {}
# lsd = {}
# lua54 = {}
# lz4 = {}
# mednafen = {}
# mesa = {}
# mesa-glu = {}
# mgba = {}
# ncursesw = {}
# neverball = {}
# nginx = {}
# onefetch = {}
# openjazz = {}
# openssh = {}
# openssl3 = {}
# openttd = {}
# openttd-opengfx = {}
# openttd-openmsx = {}
# openttd-opensfx = {}
# orbclient = {}
# osdemo = {}
# perg = {}
# periodictable = {}
# perl5 = {}
# php84 = {}
# pixelcannon = {}
# pkg-config = {}
# prboom = {}
# procedural-wallpapers-rs = {}
# python312 = {}
# readline = {}
# redox-fatfs = {}
# redox-games = {}
# relibc-tests = {}
# relibc-tests-bins = {}
# rodioplay = {}
# rs-nes = {}
# rsync = {}
# rust = {}
# rust64 = {}
# rustual-boy = {}
# scummvm = {}
# sdl-gfx = {}
# sdl1-image = {}
# sdl1-mixer = {}
# sdl1-ttf = {}
# sdl2 = {}
# sdl2-gears = {}
# sdl2-image = {}
# sdl2-mixer = {}
# sdl2-ttf = {}
# servo = {}
# shellharden = {}
# shellstorm = {}
# simple-http-server = {}
# sodium = {}
# sopwith = {}
# sqlite3 = {}
# strace = {}
# syobonaction = {}
# timidity = {}
# tokei = {}
# ttf-hack = {}
# vttest = {}
# webkitgtk3 = {}
# winit = {}
# xxhash = {}
# zoxide = {} # untested
# zstd = {}
================================================
FILE: config/i586/demo.toml
================================================
# Configuration for demonstration
include = ["../desktop.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 768
# Package settings
[packages]
# Games
dosbox = {}
freedoom = {}
prboom = {}
redox-games = {}
# Demos
pixelcannon = {}
# MIDI
freepats = {}
[[files]]
path = "/home/user/Welcome.txt"
data = """
##############################################################################
# #
# Welcome to Redox! #
# #
# Redox is an operating system written in Rust, a language with focus #
# on safety and high performance. Redox, following the microkernel design, #
# aims to be secure, usable, and free. Redox is inspired by previous kernels #
# and operating systems, such as SeL4, MINIX, Plan 9, and BSD. #
# #
# Redox _is not_ just a kernel, it's a full-featured Operating System, #
# providing packages (memory allocator, file system, display manager, core #
# utilities, etc.) that together make up a functional and convenient #
# operating system. You can loosely think of it as the GNU or BSD ecosystem, #
# but in a memory safe language and with modern technology. #
# #
# The website can be found at https://www.redox-os.org. #
# #
# For things to try on Redox, please see #
# https://doc.redox-os.org/book/ch02-06-trying-out-redox.html #
# #
##############################################################################
"""
================================================
FILE: config/i586/dev.toml
================================================
# Configuration for development
include = ["../dev.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}
================================================
FILE: config/i586/jeremy.toml
================================================
# Configuration for Jeremy Soller
include = ["../desktop.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 4000
# Package settings
[packages]
# apps
cosmic-text = {}
pixelcannon = {}
sodium = {}
# cli
acid = {}
cleye = {}
ripgrep = {}
# demos
cpal = {}
orbclient = {}
rodioplay = {}
winit = {}
# games
dosbox = {}
eduke32 = {}
freedoom = {}
prboom = {}
redox-games = {}
# stuff
freepats = {}
generaluser-gs = {}
jeremy = {}
ttf-hack = {}
================================================
FILE: config/i586/redoxer.toml
================================================
# Configuration used for building redoxer base image
include = ["../redoxer.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1024
================================================
FILE: config/minimal.toml
================================================
# Minimal configuration
include = ["base.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 196
# Package settings
[packages]
ca-certificates = {}
coreutils = {}
extrautils = {}
ion = {}
pkgutils = {}
kibi = {}
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
requires_weak 10_net
inputd -A 2
nowait getty 2
nowait getty /scheme/debug/no-preserve -J
"""
================================================
FILE: config/os-test.toml
================================================
# Configuration for "os-test" testing
include = ["server.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
os-test-bins = {} # Provides source and cross-compiled binaries
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
requires_weak 10_net
RUST_BACKTRACE=full os-test-runner
shutdown
"""
================================================
FILE: config/redoxer-gui.toml
================================================
# Configuration for the Redoxer GUI image
include = ["redoxer.toml"]
# Package settings
[packages]
orbdata = {}
orbital = {}
# Override to run inside of orbital
[[files]]
path = "/usr/lib/init.d/30_redoxer"
data = """
requires_weak 10_net
echo
echo "## running redoxer in orbital ##"
nowait VT=3 orbital redoxerd
"""
================================================
FILE: config/redoxer.toml
================================================
# Configuration for the Redoxer image
include = ["base.toml"]
# Package settings
[packages]
bash = {}
ca-certificates = {}
coreutils = {}
extrautils = {}
findutils = {}
gnu-make = {}
ion = {}
pkgutils = {}
relibc = {}
sed = {}
# Override to not background dhcpd
[[files]]
path = "/usr/lib/init.d/10_net"
data = """
requires_weak 00_drivers
notify smolnetd
dhcpd
"""
[[files]]
path = "/usr/lib/init.d/30_redoxer"
data = """
requires_weak 10_net
ion /usr/lib/run_redoxer.ion
"""
[[files]]
path = "/usr/lib/run_redoxer.ion"
data = """
#!/usr/bin/env ion
echo
echo "## preparing environment ##"
export GROUPS=0
export HOME=/root
export HOST=redox
export SHELL=/bin/sh
export UID=0
export USER=root
cd /root
env
echo
echo "## running redoxer ##"
redoxerd
"""
================================================
FILE: config/riscv64gc/ci.toml
================================================
# The Redox build server configuration
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost
#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work
# Meta-packages below
# auto-test = {}
# dev-essential = {}
# dev-redox = {}
# redox-tests = {}
# x11-minimal = {}
# x11-full = {}
# Normal packages below
# acid = {} # rust require dynamic linking
acid-bins = {}
base = {}
base-initfs = {}
bash = {}
bash-completion = {}
bootloader = {}
bottom = {}
ca-certificates = {}
#contain = {} # redox_syscall 0.4 not working on riscv64gc?
coreutils = {}
cosmic-edit = {}
cosmic-files = {}
cosmic-icons = {}
cosmic-term = {}
#cosmic-text = {} # need to bump redox_syscall
curl = {}
dash = {}
dejavu = {}
diffutils = {}
expat = {}
extrautils = {}
findutils = {}
freefont = {}
freetype2 = {}
gettext = {}
git = {}
gnu-make = {}
hicolor-icon-theme = {}
installer = {}
#installer-gui = {} # redox_syscall 0.4 not working on riscv64gc?
ion = {}
kernel = {}
kibi = {}
libffi = {}
libgcc = {}
#libiconv = {} # not tested yet, netsurf is commented out
libjpeg = {}
libogg = {}
#liborbital = {} # not tested yet, netsurf is commented out
libpng = {}
libstdcxx = {}
libvorbis = {}
libxkbcommon = {}
libxml2 = {}
#nano = {} # error compiling ncurses
nasm = {}
#ncurses = {}
netdb = {}
#netsurf = {} # error compiling nghttp2
netutils = {}
#nghttp2 = {}
openssl1 = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
#patch = {} error configure machine `riscv64gc-unknown' not recognized
pcre = {}
patchelf = {}
pop-icon-theme = {}
pkgutils = {}
redoxfs = {}
relibc = {}
ripgrep = {}
rustpython = {}
#sdl1 = {} # not tested yet, netsurf is commented out
sed = {}
shared-mime-info = {}
smith = {}
terminfo = {}
userutils = {}
uutils = {}
xz = {}
#vim = {} # error compiling ncurses
zlib = {}
# #"gcc13.cxx" = {}
# #"llvm21.clang" = {}
# #"llvm21.clang-dev" = {}
# #"llvm21.dev" = {}
# #"llvm21.lld" = {}
# #"llvm21.lld-dev" = {}
# #"llvm21.runtime" = {}
# #"python312.dev" = {}
# #"rust.doc" = {}
# #atk = {} # depends on glib which does not build
# #benchmarks = {}
# #binutils-gdb = {}
# #book = {}
# #cairo-demo = {} # linking errors
# #classicube = {}
# #cmake = {}
# #cmatrix = {} # needs ncursesw now
# #cookbook = {}
# #cosmic-reader = {}
# #cosmic-settings = {}
# #cosmic-store = {}
# #devilutionx = {}
# #dynamic-example = {}
# #fal
# #fd = {} # ctrlc-3.1.1
# #file = {}
# #flycast = {}
# #freeciv = {}
# #freeglut = {}
# #friar = {} # mio patch
# #game-2048 = {} # rustc-serialize
# #gawk = {} # langinfo.h
# #gigalomania = {} # old recipe format
# #gitoxide = {}
# #goaccess = {}
# #gstreamer = {} # conflict with thread local errno
# #harfbuzz = {} # depends on glib which does not build
# #helix = {}
# #hello-redox = {}
# #hematite = {} # needs crate patches for redox-unix
# #hf = {}
# #ibm-plex = {}
# #iced = {}
# #jansson = {} # needs config.sub update
# #jq = {}
# #libarchive = {}
# #libatomic = {}
# #libcosmic = {}
# #libflac = {}
# #libmodplug1 = {}
# #libmpfr = {}
# #libnettle = {}
# #libogg = {}
# #libpsl = {}
# #libssh2 = {}
# #libtool = {}
# #liburcu = {}
# #libuv = {}
# #lua-compat-53 = {}
# #luajit = {}
# #luarocks = {}
# #luv = {}
# #mdp = {} # gcc hangs
# #miniserve = {} # actix
# #mpc = {}
# #mupen64plus = {}
# #ncdu = {} # multiple definitions of symbols
# #newlib = {} # obsolete
# #newlibtest = {} # obsolete
# #noto-color-emoji = {}
# #nushell = {} # needs cargo update
# #openjk = {}
# #openposixtestsuite = {}
# #opentyrian = {}
# #orbcalculator = {}
# #ostest-bins = {}
# #pango = {} # undefined references to std::__throw_system_error(int)
# #pastel = {} # needs crate patches for redox-unix
# #pathfinder = {} # servo-fontconfig
# #pciids = {}
# #pcre2 = {}
# #pixman = {} # depends on glib which does not build
# #pkgar = {} # uses virtual Cargo.toml, needs recipe update
# #pls = {}
# #pop-wallpapers = {}
# #powerline = {} # dirs
# #qemu = {} # can be built, but not working
# #quakespasm = {}
# #redox-posix-tests = {}
# #redox-ssh = {} # does not compile
# #retroarch = {} # OS_TLSIndex not declared
# #rust-cairo = {} # linking errors
# #rust-cairo-demo = {} # linking errors
# #rvvm = {}
# #schismtracker = {} # uses system includes
# #sdl-player = {} # wctype_t
# #sdl2-gfx = {}
# #sm64ex = {}
# #spacecadetpinball = {}
# #twin-commander = {}
# #ubuntu-wallpapers = {}
# #unibilium = {}
# #utf8proc = {}
# #vice = {} # linker errors
# #vvvvvv = {} # did not compile
# #webrender = {} # unwind
# #website = {}
# #wesnoth = {}
# #wget = {}
# autoconf = {}
# automake = {}
# binutils = {}
# bzip2 = {}
# cairo = {}
# cleye = {}
# composer = {}
# cosmic-text = {}
# cpal = {}
# dosbox = {}
# duktape = {}
# eduke32 = {}
# exampled = {}
# ffmpeg6 = {}
# fontconfig = {}
# freedoom = {}
# freepats = {}
# fribidi = {}
# gcc13 = {}
# gdbserver = {}
# gdk-pixbuf = {}
# gears = {}
# generaluser-gs = {}
# glib = {}
# glutin = {}
# gnu-binutils = {}
# gnu-grep = {}
# htop = {}
# intel-one-mono = {}
# lci = {}
# libavif = {}
# libc-bench = {}
# libedit = {}
# libgmp = {}
# libicu = {}
# libonig = {}
# libsodium = {}
# libuuid = {}
# libwebp = {}
# llvm21 = {}
# lsd = {}
# lua54 = {}
# lz4 = {}
# mednafen = {}
# mesa = {}
# mesa-glu = {}
# mgba = {}
# ncursesw = {}
# neverball = {}
# nginx = {}
# onefetch = {}
# openjazz = {}
# openssh = {}
# openssl3 = {}
# openttd = {}
# openttd-opengfx = {}
# openttd-openmsx = {}
# openttd-opensfx = {}
# orbclient = {}
# osdemo = {}
# perg = {}
# periodictable = {}
# perl5 = {}
# php84 = {}
# pixelcannon = {}
# pkg-config = {}
# prboom = {}
# procedural-wallpapers-rs = {}
# python312 = {}
# readline = {}
# redox-fatfs = {}
# redox-games = {}
# relibc-tests = {}
# relibc-tests-bins = {}
# rodioplay = {}
# rs-nes = {}
# rsync = {}
# rust = {}
# rust64 = {}
# rustual-boy = {}
# scummvm = {}
# sdl-gfx = {}
# sdl1-image = {}
# sdl1-mixer = {}
# sdl1-ttf = {}
# sdl2 = {}
# sdl2-gears = {}
# sdl2-image = {}
# sdl2-mixer = {}
# sdl2-ttf = {}
# servo = {}
# shellharden = {}
# shellstorm = {}
# simple-http-server = {}
# sodium = {}
# sopwith = {}
# sqlite3 = {}
# strace = {}
# syobonaction = {}
# timidity = {}
# tokei = {}
# ttf-hack = {}
# vttest = {}
# webkitgtk3 = {}
# winit = {}
# xxhash = {}
# zoxide = {} # untested
# zstd = {}
================================================
FILE: config/riscv64gc/demo.toml
================================================
# Configuration for demonstration
include = ["desktop.toml"]
================================================
FILE: config/riscv64gc/desktop.toml
================================================
# Default build system configuration
include = ["../desktop.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}
netsurf = "ignore" # liborbital fails to link in due to mismatching float ABI
================================================
FILE: config/riscv64gc/jeremy.toml
================================================
# Configuration for Jeremy Soller
include = ["desktop.toml"]
================================================
FILE: config/server.toml
================================================
# Server configuration
include = ["minimal.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 512
# Package settings
[packages]
bash = {}
bottom = {}
#contain = {} # needs to update dependencies
curl = {}
diffutils = {}
findutils = {}
git = {}
installer = {}
kibi = {}
redoxfs = {}
================================================
FILE: config/tests.toml
================================================
# Configuration for testing
include = ["server.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 10000
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
redox-tests = {}
benchmarks = {}
================================================
FILE: config/wayland.toml
================================================
# Wayland configuration
include = ["desktop.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 2048
# Package settings
[packages]
adwaita-icon-theme = {}
bash = {}
cosmic-app-library = {}
cosmic-comp = {}
gtk3 = {}
libcosmic-wayland = {}
libxcursor = {}
iced-wayland = {}
mesa = {}
"pop-icon-theme.cursors" = {}
smallvil = {}
softbuffer-wayland = {}
wayland-rs = {}
#webkitgtk3 = {}
winit-wayland = {}
xkeyboard-config = {}
# Overridden to launch wayland compositor instead of orblogin
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
requires_weak 10_net
notify audiod
nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-wayland
"""
[[files]]
path = "/usr/bin/orbital-wayland"
mode = 0o755
data = """
#!/usr/bin/env bash
set -ex
# Prepare environment
unset DISPLAY
export COSMIC_BACKEND=winit
export HOME=/root
export LD_DEBUG=all
export RUST_BACKTRACE=full
export RUST_LOG=debug
export XCURSOR_THEME=Pop
export XDG_RUNTIME_DIR=/tmp/run/user/0
# Create XDG runtime directory
#TODO: mkdir -p not working
mkdir -p /tmp/run
mkdir -p /tmp/run/user
mkdir -p /tmp/run/user/0
# Compile glib schemas
glib-compile-schemas /usr/share/glib-2.0/schemas/
# For cosmic-comp (more features)
cosmic-comp wayland-session
# For smallvil (easier to debug)
#smallvil -c wayland-session&
"""
[[files]]
path = "/usr/bin/wayland-session"
mode = 0o755
data = """
#!/usr/bin/env bash
set -ex
#env G_MAIN_POLL_DEBUG=1 G_MESSAGES_DEBUG=all LD_DEBUG=all WEBKIT_DEBUG=all MiniBrowser&
printenv
#wayland-rs_simple_window
#winit-wayland_window
#softbuffer-wayland_animation
#iced-wayland_sctk_lazy
libcosmic-wayland_application
#gtk3-widget-factory
#cosmic-app-library run
"""
[[files]]
path = "/etc/gtk-3.0/settings.ini"
data = """
[Settings]
gtk-cursor-theme-name = "Pop"
gtk-icon-theme-name = "Cosmic"
"""
================================================
FILE: config/x11.toml
================================================
# X11 configuration
include = ["desktop.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 2048
# Package settings
[packages]
adwaita-icon-theme = {}
dbus = {}
gtk3 = {}
mate-common = {}
mesa-demos-x11 = {}
#webkitgtk3 = {} # not compiling
#xfce4-panel = {}
#xfwm4 = {}
x11-full = {}
zenity = {}
[[files]]
path = "/usr/lib/init.d/10_dbus"
data = """
requires_weak 10_net
bash /usr/bin/start-dbus.sh
"""
[[files]]
path = "/usr/bin/start-dbus.sh"
mode = 0o755
data = """
#!/usr/bin/env bash
export DBUS_DEBUG_OUTPUT=1
#export DBUS_VERBOSE=1
#export G_DBUS_DEBUG=all
mkdir -p /var/lib/dbus
dbus-uuidgen --ensure
mkdir -p /run/dbus
rm -f /run/dbus/pid
dbus-daemon --system
"""
[[files]]
path = "/usr/lib/init.d/10_xenv"
data = """
requires_weak 10_net
glib-compile-schemas /usr/share/glib-2.0/schemas/
"""
# Overridden to launch X instead of orblogin
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
requires_weak 10_dbus 10_xenv
notify audiod
nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-x11
"""
[[files]]
path = "/usr/bin/orbital-x11"
mode = 0o755
data = """
#!/usr/bin/env bash
set -ex
# for ice authority and pixbuf
export HOME=/home/root
export XDG_DATA_DIRS=/usr/share
# Generate config file
WIDTH="$((0x$(grep FRAMEBUFFER_WIDTH /scheme/sys/env | cut -d '=' -f 2)))"
HEIGHT="$((0x$(grep FRAMEBUFFER_HEIGHT /scheme/sys/env | cut -d '=' -f 2)))"
mkdir -p /usr/share/X11/xorg.conf.d
cat > /usr/share/X11/xorg.conf.d/orbital.conf <<EOF
Section "Device"
Identifier "Configured Video Device"
Driver "dummy"
VideoRam 256000
EndSection
Section "Monitor"
Identifier "Configured Monitor"
HorizSync 5.0 - 1000.0
VertRefresh 5.0 - 200.0
$(cvt "${WIDTH}" "${HEIGHT}")
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "${WIDTH}x${HEIGHT}"
EndSubSection
EndSection
EOF
# Launch X11 and session on display 0
export DISPLAY=":0"
X "${DISPLAY}" &
sleep 1
exec dbus-launch --exit-with-x11 orbital-x11-session
"""
[[files]]
path = "/usr/bin/orbital-x11-session"
mode = 0o755
data = """
#!/usr/bin/env bash
set -ex
xterm&
sleep 1
gdk-pixbuf-query-loaders --update-cache
mate-session&
"""
# Override console config to set DISPLAY=:0
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
requires_weak 20_orbital
nowait DISPLAY=:0 getty 2
nowait DISPLAY=:0 getty /scheme/debug/no-preserve -J
"""
[[files]]
path = "/usr/bin/browser"
mode = 0o755
data = """
#!/usr/bin/env bash
set -ex
#export G_MAIN_POLL_DEBUG=1
export G_MESSAGES_DEBUG=all
#export GDK_DEBUG=all
#export GTK_DEBUG=all
export LD_DEBUG=all
#export WEBKIT_DEBUG=all
exec MiniBrowser --dark-mode --ignore-tls-errors "about:blank"
"""
[users.messagebus]
uid = 100
gid = 100
name = "messagebus"
home = "/nonexistent"
shell = "/usr/bin/false"
================================================
FILE: config/x86_64/ci.toml
================================================
# The Redox build server configuration
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost
#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work
# Meta-packages below
auto-test = {}
dev-essential = {}
dev-redox = {}
llvm21-common = {}
mate-common = {}
redox-tests = {}
x11-minimal = {}
x11-full = {}
# Normal packages below
acid = {}
adwaita-icon-theme = {}
autoconf = {}
automake = {}
base = {}
base-initfs = {}
bash = {}
bash-completion = {}
binutils = {}
bootloader = {}
bottom = {}
bzip2 = {}
ca-certificates = {}
cairo = {}
cbindgen = {}
cleye = {}
composer = {}
contain = {}
coreutils = {}
cosmic-edit = {}
cosmic-files = {}
cosmic-icons = {}
cosmic-term = {}
cosmic-text = {}
cpal = {}
curl = {}
dash = {}
dejavu = {}
diffutils = {}
dosbox = {}
duktape = {}
eduke32 = {}
exampled = {}
expat = {}
extrautils = {}
ffmpeg6 = {}
findutils = {}
fish-shell = {}
fontconfig = {}
freedoom = {}
freefont = {}
freepats = {}
freetype2 = {}
fribidi = {}
gcc13 = {}
gdbserver = {}
gdk-pixbuf = {}
gears = {}
generaluser-gs = {}
gettext = {}
git = {}
glib = {}
glutin = {}
gnu-binutils = {}
gnu-grep = {}
gnu-make = {}
hicolor-icon-theme = {}
htop = {}
installer = {}
installer-gui = {}
intel-one-mono = {}
ion = {}
kernel = {}
kibi = {}
lci = {}
libavif = {}
libc-bench = {}
libedit = {}
libffi = {}
libgcc = {}
libgmp = {}
libiconv = {}
libicu = {}
libjpeg = {}
libogg = {}
libonig = {}
liborbital = {}
libpng = {}
libsodium = {}
libstdcxx = {}
libuuid = {}
libvorbis = {}
libwebp = {}
libxkbcommon = {}
libxcursor = {}
libxml2 = {}
llvm21 = {}
lsd = {}
lua54 = {}
lz4 = {}
mednafen = {}
mesa = {}
mesa-glu = {}
mesa-demos-x11 = {}
mgba = {}
nano = {}
nasm = {}
ncurses = {}
ncursesw = {}
neovim = {}
netdb = {}
netsurf = {}
netutils = {}
neverball = {}
nghttp2 = {}
nginx = {}
nodejs-21 = {}
nushell = {}
onefetch = {}
openjazz = {}
openssh = {}
openssl1 = {}
openssl3 = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
openttd-opensfx = {}
orbclient = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
os-test-bins = {}
osdemo = {}
patch = {}
patchelf = {}
pcre = {}
perg = {}
periodictable = {}
perl5 = {}
php84 = {}
pixelcannon = {}
pkg-config = {}
pkgar = {}
pkgutils = {}
pls = {}
pop-icon-theme = {}
prboom = {}
procedural-wallpapers-rs = {}
python312 = {}
readline = {}
redox-fatfs = {}
redox-games = {}
redoxfs = {}
relibc = {}
relibc-tests = {}
relibc-tests-bins = {}
ripgrep = {}
rodioplay = {}
rs-nes = {}
rsync = {}
rust = {}
rust64 = {}
rustpython = {}
rustual-boy = {}
scummvm = {}
sdl-gfx = {}
sdl1 = {}
sdl1-image = {}
sdl1-mixer = {}
sdl1-ttf = {}
sdl2 = {}
sdl2-gears = {}
sdl2-image = {}
sdl2-mixer = {}
sdl2-ttf = {}
sed = {}
servo = {}
shared-mime-info = {}
shellharden = {}
shellstorm = {}
simple-http-server = {}
smallvil = {}
smith = {}
sodium = {}
softbuffer-wayland = {}
sopwith = {}
sqlite3 = {}
strace = {}
syobonaction = {}
terminfo = {}
timidity = {}
tokei = {}
ttf-hack = {}
userutils = {}
uutils = {}
vim = {}
vttest = {}
wayland-rs = {}
webkitgtk3 = {}
winit = {}
winit-wayland = {}
xxhash = {}
xz = {}
zenity = {}
zoxide = {}
zsh = {}
zlib = {}
zstd = {}
#"python312.dev" = {}
#"rust.doc" = {}
#atk = {} # depends on glib which does not build
#benchmarks = {}
#binutils-gdb = {}
#book = {}
#cairo-demo = {} # linking errors
#classicube = {}
#cmake = {}
#cmatrix = {} # needs ncursesw now
#cookbook = {}
#cosmic-reader = {}
#cosmic-settings = {}
#cosmic-store = {}
#devilutionx = {}
#dynamic-example = {}
#fal
#fd = {} # ctrlc-3.1.1
#file = {}
#flycast = {}
#freeciv = {}
#freeglut = {}
#friar = {} # mio patch
#game-2048 = {} # rustc-serialize
#gawk = {} # langinfo.h
#gigalomania = {} # old recipe format
#gitoxide = {}
#goaccess = {}
#gstreamer = {} # conflict with thread local errno
#harfbuzz = {} # depends on glib which does not build
#helix = {}
#hello-redox = {}
#hematite = {} # needs crate patches for redox-unix
#hf = {}
#ibm-plex = {}
#iced = {}
#jansson = {} # needs config.sub update
#jq = {}
#libarchive = {}
#libatomic = {}
#libcosmic = {}
#libflac = {}
#libmodplug1 = {}
#libmpfr = {}
#libnettle = {}
#libogg = {}
#libpsl = {}
#libssh2 = {}
#libtool = {}
#liburcu = {}
#libuv = {}
#lua-compat-53 = {}
#luajit = {}
#luarocks = {}
#luv = {}
#mdp = {} # gcc hangs
#miniserve = {} # actix
#mpc = {}
#mupen64plus = {}
#ncdu = {} # multiple definitions of symbols
#newlib = {} # obsolete
#newlibtest = {} # obsolete
#noto-color-emoji = {}
#openjk = {}
#openposixtestsuite = {}
#opentyrian = {}
#orbcalculator = {}
#ostest-bins = {}
#pango = {} # undefined references to std::__throw_system_error(int)
#pastel = {} # needs crate patches for redox-unix
#pathfinder = {} # servo-fontconfig
#pciids = {}
#pcre2 = {}
#pixman = {} # depends on glib which does not build
#pls = {}
#pop-wallpapers = {}
#powerline = {} # dirs
#qemu = {} # can be built, but not working
#quakespasm = {}
#redox-posix-tests = {}
#redox-ssh = {} # does not compile
#retroarch = {} # OS_TLSIndex not declared
#rust-cairo = {} # linking errors
#rust-cairo-demo = {} # linking errors
#rvvm = {}
#schismtracker = {} # uses system includes
#sdl-player = {} # wctype_t
#sdl2-gfx = {}
#sm64ex = {}
#spacecadetpinball = {}
#twin-commander = {}
#ubuntu-wallpapers = {}
#unibilium = {}
#utf8proc = {}
#vice = {} # linker errors
#vvvvvv = {} # did not compile
#webrender = {} # unwind
#website = {}
#wesnoth = {}
#wget = {}
================================================
FILE: config/x86_64/demo.toml
================================================
# Configuration for demonstration
include = ["../desktop.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1536
# Package settings
[packages]
# GUI Apps
periodictable = {}
# GUI Data
intel-one-mono = {}
# Shell Apps
gnu-grep = {}
htop = {}
ripgrep = {}
terminfo = {}
vim = {}
# Games
dosbox = {}
freedoom = {}
neverball = {}
prboom = {}
redox-games = {}
sopwith = {}
syobonaction = {}
# Demos
nushell = {}
orbclient = {}
pixelcannon = {}
rodioplay = {}
gears = {}
# MIDI
freepats = {}
[[files]]
path = "/home/user/Welcome.txt"
data = """
##############################################################################
# #
# Welcome to Redox! #
# #
# Redox is an operating system written in Rust, a language with focus #
# on safety and high performance. Redox, following the microkernel design, #
# aims to be secure, usable, and free. Redox is inspired by previous kernels #
# and operating systems, such as SeL4, MINIX, Plan 9, and BSD. #
# #
# Redox _is not_ just a kernel, it's a full-featured Operating System, #
# providing packages (memory allocator, file system, display manager, core #
# utilities, etc.) that together make up a functional and convenient #
# operating system. You can loosely think of it as the GNU or BSD ecosystem, #
# but in a memory safe language and with modern technology. #
# #
# The website can be found at https://www.redox-os.org. #
# #
# For things to try on Redox, please see #
# https://doc.redox-os.org/book/ch02-06-trying-out-redox.html #
# #
##############################################################################
"""
================================================
FILE: config/x86_64/desktop-contain.toml
================================================
# Desktop configuration using the Contain sandbox
include = ["../desktop.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}
# Override orbital init to use contain_orblogin
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
requires_weak 10_net
notify audiod
nowait VT=3 orbital contain_orblogin launcher
"""
# Override console init to use contain
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
requires_weak 20_orbital
nowait getty --contain 2
nowait getty --contain /scheme/debug/no-preserve -J
"""
[[files]]
path = "/etc/contain.toml"
data = """
pass_schemes = ["rand", "null", "tcp", "udp", "thisproc", "pty", "orbital", "display.vesa"]
sandbox_schemes = ["file"]
files = ["file:/dev/null"]
rofiles = ["file:/etc/passwd", "file:/etc/hostname", "file:/etc/localtime"]
dirs = ["file:/tmp"]
rodirs = ["file:/bin", "file:/ui"]
"""
================================================
FILE: config/x86_64/full.toml
================================================
include = [ "../base.toml", "ci.toml" ]
# General settings
[general]
filesystem_size = 8192
# Package settings
[packages]
# example = {}
================================================
FILE: config/x86_64/jeremy.toml
================================================
# Configuration for Jeremy Soller
include = ["demo.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 8192
# Package settings
[packages]
# apps
#boxedwine = {}
cosmic-player = {}
cosmic-reader = {}
cosmic-settings = {}
cosmic-store = {}
cosmic-term = {}
cosmic-text = {}
#qemu = {} # not building
schismtracker = {}
servo = {}
# cli
cleye = {}
ffmpeg6 = {}
lua54 = {}
nano = {}
#nushell = {}
perg = {}
#relibc-tests = {}
russh = {}
sed = {}
shellharden = {}
xz = {}
# demos
#cairodemo = {}
cmatrix = {}
cpal = {}
gears = {}
glutin = {}
#hematite = {} # not building
iced = {}
libcosmic = {}
osdemo = {} # does not show anything
#pathfinder = {} # not building
procedural-wallpapers-rs = {}
#rust-cairo = {}
#rust-cairo-demo = {}
sdl2-gears = {}
vttest = {}
#webrender = {}
winit = {}
# dev
autoconf = {}
automake = {}
#cookbook = {}
gcc13 = {}
gnu-binutils = {}
gnu-make = {}
nasm = {}
patch = {}
pkg-config = {}
rust = {}
# games
devilutionx = {}
eduke32 = {}
flycast = {}
freeciv = {}
gigalomania = {}
love = {}
mednafen = {}
mgba = {}
openjazz = {}
openjk = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
openttd-opensfx = {}
quakespasm = {}
#retroarch = {} # need to package cores
rs-nes = {} # need game for testing
rust64 = {} # need roms
rustual-boy = {} # need game for testing
scummvm = {} # need game for testing
sm64ex = {}
#spacecadetpinball = {} # not building
syobonaction = {}
#vice = {} # broken on new toolchain
#vvvvvv = {} # cannot find -lgcc_s
# stuff
generaluser-gs = {}
jeremy = {}
noto-color-emoji = {}
timidity = {}
ttf-hack = {}
================================================
FILE: config/x86_64/redoxer.toml
================================================
# Configuration used for building redoxer base image
include = ["../redoxer.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1024
================================================
FILE: config/x86_64/rustconf2025.toml
================================================
# Configuration for demonstration
include = ["demo.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1536
# Package settings
[packages]
cosmic-reader = {}
rustconf2025 = {}
================================================
FILE: config/x86_64/server-demo.toml
================================================
# Configuration for server stack demonstration
include = ["../server.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 4096
# Package settings
[packages]
# Daemons
openssh = {}
nginx = {}
rustysd = {}
# Backends
php84 = {}
composer = {}
luajit = {}
python312 = {}
# go = {}
# zig = {}
# Tools
nano = {}
neovim = {}
rsync = {}
vim = {}
sqlite3 = {}
# tmux = {}
htop = {}
# Content
website = {}
[[files]]
path = "/usr/lib/init.d/98_keygen_sh"
data = """
requires_weak 10_net
bash /root/keygen.sh
"""
[[files]]
path = "/usr/lib/init.d/99_rustysd"
data = """
requires_weak 98_keygen_sh
# Undocumented usage of rsdctl, pointing to notifications dir
RSDCTL_ADDR=/var/run/rustysd/control.socket rustysd --conf /etc/rustysd
"""
[[files]]
path = "/etc/rustysd/system/network-online.target"
data = """
[Unit]
Description=The target after networks has online
[Install]
WantedBy=default.target
"""
[[files]]
path = "/etc/rustysd/system/multi-user.target"
data = """
[Unit]
Description=The target after user administrations has online
[Install]
WantedBy=default.target
"""
[[files]]
path = "/etc/rustysd/system/nginx.service"
data = """
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/nginx -g "daemon off;"
[Install]
WantedBy=multi-user.target
"""
[[files]]
path = "/etc/rustysd/system/ssh.service"
data = """
[Unit]
Description=OpenBSD Secure Shell server
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/sshd -D
[Install]
WantedBy=multi-user.target
"""
[[files]]
path = "/etc/rustysd/system/php.service"
data = """
[Unit]
Description=OpenBSD Secure Shell server
After=network-online.target
[Service]
Type=simple
# currently php-fpm not that quite work
ExecStart=env PWD=/var/www/html php -S localhost:9000
# ExecStart=/usr/bin/php-fpm --fpm-config /etc/php/84/php-fpm.conf --nodaemonize
[Install]
WantedBy=multi-user.target
"""
[[files]]
path = "/var/www/html/index.php"
data = """
<?php
echo "Hello from PHP on Redox!";
"""
[[files]]
path = "/var/www/html/phpinfo.php"
data = """
<?php phpinfo();
"""
[[files]]
path = "/var/www/html/README"
data = """
This is a demonstration into PHP server.
At the moment to run composer you have to run it like:
> php /bin/composer install
"""
[[files]]
postinstall = true
data = ""
path = "/etc/nginx/conf.d"
directory = true
[[files]]
postinstall = true
path = "/etc/nginx/nginx.conf"
data = """
user nginx;
# currently nginx does a lot spin locking for some reason
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
include mime.types;
include fastcgi.conf;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
}
"""
[[files]]
postinstall = true
path = "/etc/nginx/conf.d/localhost.conf"
data = """
server {
listen 80;
server_name localhost;
root /usr/share/website;
absolute_redirect off;
location / {
index index.html index.htm;
}
}
"""
[[files]]
postinstall = true
path = "/etc/nginx/conf.d/php-www.conf"
data = """
server {
listen 8081;
server_name localhost;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \\.php$ {
# because we're not using PHP FPM (see rustysd php.service)
# include fastcgi_params;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
proxy_pass http://127.0.0.1:9000;
}
}
"""
[[files]]
postinstall = true
path = "/etc/php/84/php-fpm.conf"
data = """
error_log=/var/log/php-fpm.log
include=/etc/php/84/php-fpm.d/*.conf
"""
[[files]]
postinstall = true
path = "/etc/php/84/php-fpm.d/www.conf"
data = """
[www]
user = user
group = user
listen = 127.0.0.1:9000
pm = static
pm.max_children = 1
"""
[[files]]
postinstall = true
path = "/etc/ssh/sshd_config"
data = """
Port 22
AddressFamily inet
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin yes
PasswordAuthentication yes
PermitEmptyPasswords yes
Subsystem sftp /usr/libexec/sftp-server
"""
[users.nobody]
password = ""
shell = "/usr/bin/ion" #TODO: nologin?
[users.nginx]
password = ""
shell = "/usr/bin/ion" #TODO: nologin?
[[files]]
path = "/root/keygen.sh"
data = """
#!/usr/bin/env bash
if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
fi
"""
[[files]]
path = "/home/user/server.sh"
data = """
#!/usr/bin/env bash
/bin/sshd -D &
nginx -g "daemon off;" &
php-fpm --nodaemonize &
"""
[[files]]
path = "/home/user/Welcome.txt"
data = """
##############################################################################
# Welcome to Redox Server Demo!
#
# This is a quick demonstration of Redox used as server stack.
# At the moment we support SSH, NGINX, Python, PHP. There's more to come
#
# This server demo is insecure by design, we encourage you to get familiar into
# basics of server security if you wish to use this as a production server.
#
# There should be rustysd already running, if not, you can try start it manually
# > sudo rustysd --conf /etc/rustysd
#
# You can also try running all daemons manually
# > sudo bash server.sh
#
# The server will start port 22 (ssh), 80 (static web) and 8081 (php)
# If you use the Redox OS build system, starting QEMU with `net=redir`
# should expose those port to 8022, 8080 and 8081.
# Try logging in to console via SSH with `ssh user@localhost -p 8022`
#
##############################################################################
"""
================================================
FILE: flake.nix
================================================
{
description = "The Nix-flake for Redox development on NixOS";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
inputs@{
nixpkgs,
flake-parts,
rust-overlay,
...
}:
flake-parts.lib.mkFlake { inherit inputs; } (
top@{
config,
withSystem,
moduleWithSystem,
...
}:
{
systems = [
"i686-linux"
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
perSystem =
{
system,
lib,
inputs',
...
}:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ rust-overlay.overlays.default ];
};
rust-bin = pkgs.rust-bin.nightly."2025-10-03".default.override {
extensions = [
"rust-analyzer"
"rust-src"
];
targets = [ "x86_64-unknown-redox" ];
};
in
{
formatter = pkgs.nixfmt-rfc-style;
# TODO: Create Redox OS Image as package
# TODO: No cross-compile for now, as there is no pkgsCross.aarch64-unknown-redox and so on
# TODO: Get rid of make env step: package custom libtool and setup rust toolchain properly
devShells = {
# Podman config taken from https://nixos.wiki/wiki/Podman and https://gist.github.com/adisbladis/187204cb772800489ee3dac4acdd9947
# Provides a script that copies required files to ~/
default =
let
rustPlatform = pkgs.makeRustPlatform {
cargo = rust-bin;
rustc = rust-bin;
};
podmanSetupScript =
let
registriesConf = pkgs.writeText "registries.conf" ''
[registries.search]
registries = ['docker.io']
[registries.block]
registries = []
'';
in
pkgs.writeScript "podman-setup" ''
#!${pkgs.runtimeShell}
# Dont overwrite customised configuration
if ! test -f ~/.config/containers/policy.json; then
install -Dm555 ${pkgs.skopeo.src}/default-policy.json ~/.config/containers/policy.json
fi
if ! test -f ~/.config/containers/registries.conf; then
install -Dm555 ${registriesConf} ~/.config/containers/registries.conf
fi
systemctl --user start podman.socket || true
export PODMAN_SYSTEMD_UNIT=podman.socket
'';
# Provides a fake "docker" binary mapping to podman
dockerCompat = pkgs.runCommand "docker-podman-compat" { } ''
mkdir -p $out/bin
ln -s ${pkgs.podman}/bin/podman $out/bin/docker
'';
in
pkgs.mkShell rec {
buildInputs = with pkgs; [
# Podman
dockerCompat
podman # Docker compat
runc # Container runtime
conmon # Container runtime monitor
skopeo # Interact with container registry
slirp4netns # User-mode networking for unprivileged namespaces
fuse-overlayfs # CoW for images, much faster than default vfs
# with FSTOOLS_IN_PODMAN=1 these are not needed
# without it, the installer fails to link FUSE somehow
#fuse
#rust-bin
qemu_kvm
];
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
NIX_SHELL_BUILD = "1";
FSTOOLS_IN_PODMAN = "1";
shellHook = ''
# Install required configuration
${podmanSetupScript}
echo "Redox podman build environment loaded"
'';
};
#TODO: This isn't tested yet, use at your own risk
native = pkgs.mkShell rec {
nativeBuildInputs =
let
autoreconf269 = pkgs.writeShellScriptBin "autoreconf2.69" "${pkgs.autoconf269}/bin/autoreconf";
in
with pkgs;
[
ant
autoconf
autoreconf269 # gnu-binutils
automake
bison
cmake
curl
doxygen
file
flex
gettext
gnumake
gnupatch
gperf
help2man
just
llvmPackages.clang
llvmPackages.llvm
lua
m4
meson
nasm
ninja
perl
perl540Packages.HTMLParser
perl540Packages.Po4a
pkg-config
pkgconf
(python3.withPackages (ps: with ps; [ mako ]))
qemu_kvm
rust-cbindgen
scons
texinfo
unzip
waf
wget
xdg-utils
xxd
zip
] ++ pkgs.lib.optionals pkgs.stdenv.hostPlatform.isx86 [
pkgs.syslinux
];
buildInputs = with pkgs; [
rust-bin
fuse # fuser
libpng # netsurf
fontconfig # orbutils
SDL # prboom
xorg.utilmacros # libX11
xorg.xtrans # libX11
];
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
PERL_PATH = "${pkgs.perl}/bin/perl";
NIX_SHELL_BUILD = "1";
PODMAN_BUILD = "0";
shellHook = with pkgs; ''
export PKG_CONFIG_PATH="${fuse.dev}/lib/pkgconfig\
:${libpng.dev}/lib/pkgconfig"
'';
};
};
};
}
);
}
================================================
FILE: mk/ci.mk
================================================
# Configuration file of the build system commands for the build server
IMG_TAG?=$(shell git describe --tags)
IMG_SEPARATOR?=_
IMG_DIR?=build/img/$(ARCH)
OS_TEST_DIR?=build/os-test/$(ARCH)
CI_COOKBOOK_CONFIG?=CI=1 COOKBOOK_LOGS=true COOKBOOK_CLEAN_BUILD=true COOKBOOK_VERBOSE=false COOKBOOK_COMPRESSED=true
# CI image target - build standard images
# To leave out the build tag, set both IMG_TAG and IMG_SEPARATOR to null
ci-img: FORCE
rm -rf $(IMG_DIR)
mkdir -p $(IMG_DIR)
$(MAKE) server desktop demo
cd $(IMG_DIR) && zstd --rm *
cd $(IMG_DIR) && sha256sum -b * > SHA256SUM
# The name of the target must match the name of the filesystem config file
server desktop demo: FORCE
rm -f "build/$(ARCH)/$@/harddrive.img" "build/$(ARCH)/$@/redox-live.iso"
export $(CI_COOKBOOK_CONFIG) REPO_NONSTOP=0 && \
$(MAKE) CONFIG_NAME=$@ build/$(ARCH)/$@/harddrive.img build/$(ARCH)/$@/redox-live.iso
mkdir -p $(IMG_DIR)
cp "build/$(ARCH)/$@/harddrive.img" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_harddrive.img"
cp "build/$(ARCH)/$@/redox-live.iso" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_livedisk.iso"
ci-os-test: FORCE
make CONFIG_NAME=os-test unmount
rm -f "build/$(ARCH)/os-test/harddrive.img"
$(MAKE) CONFIG_NAME=os-test qemu gpu=no
rm -rf $(OS_TEST_DIR)
mkdir -p $(OS_TEST_DIR)
$(MAKE) CONFIG_NAME=os-test mount
cp -rv build/$(ARCH)/os-test/filesystem/usr/share/os-test/html $(OS_TEST_DIR)
cp -v build/$(ARCH)/os-test/filesystem/usr/share/os-test/os-test.json $(OS_TEST_DIR)
tar \
--create \
--gzip \
--file "$(OS_TEST_DIR)/out.tar.gz" \
--directory="build/$(ARCH)/os-test/filesystem/usr/share/os-test" \
out
$(MAKE) CONFIG_NAME=os-test unmount
# CI packaging target
ci-pkg: prefix $(FSTOOLS_TAG) $(CONTAINER_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(HOST_CARGO) build --manifest-path Cargo.toml --release
export $(CI_COOKBOOK_CONFIG) REPO_NONSTOP=1 PATH="$(PREFIX_PATH):$$PATH" COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \
$(REPO_BIN) cook --with-package-deps "--filesystem=config/$(ARCH)/ci.toml"
endif
# CI toolchain
ci-toolchain: $(CONTAINER_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(MAKE) PREFIX_BINARY=0 \
"prefix/$(TARGET)/gcc-install.tar.gz" \
"prefix/$(TARGET)/relibc-install.tar.gz" \
"prefix/$(TARGET)/rust-install.tar.gz" \
"prefix/$(TARGET)/clang-install.tar.gz"
rm -rf "build/toolchain/$(HOST_TARGET)/$(TARGET)"
mkdir -p "build/toolchain/$(HOST_TARGET)/$(TARGET)"
cp "prefix/$(TARGET)/gcc-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/gcc-install.tar.gz"
cp "prefix/$(TARGET)/relibc-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/relibc-install.tar.gz"
cp "prefix/$(TARGET)/rust-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/rust-install.tar.gz"
cp "prefix/$(TARGET)/clang-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/clang-install.tar.gz"
cd "build/toolchain/$(HOST_TARGET)/$(TARGET)" && sha256sum -b * > SHA256SUM
endif
================================================
FILE: mk/config.mk
================================================
# Configuration file of the build system environment variables
-include .config
HOST_ARCH?=$(shell uname -m)
# Configuration
## Architecture to build Redox for (aarch64, i586, or x86_64). Defaults to a host one
ARCH?=$(HOST_ARCH)
## Sub-device type for aarch64 if needed
BOARD?=
## Enable to use binary prefix (much faster)
PREFIX_BINARY?=1
## Enable to use up-to-date rust compiler (experimental, only available to Tier 2 targets)
## Even more experimental, add -Zbuild-std to cookbook.toml to allow compilation to Tier 3 targets
PREFIX_USE_UPSTREAM_RUST_COMPILER?=0
## Enable to use binary packages (much faster)
REPO_BINARY?=0
## Name of the configuration to include in the image name e.g. desktop or server
CONFIG_NAME?=desktop
## Build appstream data for repo
REPO_APPSTREAM?=0
## Ignore errors when building the repo, attempt to build every package
REPO_NONSTOP?=0
## Do not update source repos, attempt to build in offline condition
REPO_OFFLINE?=0
## Do not strip debug info for local build
REPO_DEBUG?=0
## Old config value that need to be corrected
ifeq ($(ARCH),i686)
ARCH=i586
endif
## Select filesystem config
ifeq ($(BOARD),)
ifeq ($(wildcard config/$(ARCH)/$(CONFIG_NAME).toml),)
FILESYSTEM_CONFIG?=config/$(CONFIG_NAME).toml
else
FILESYSTEM_CONFIG?=config/$(ARCH)/$(CONFIG_NAME).toml
endif
else
FILESYSTEM_CONFIG?=config/$(ARCH)/$(BOARD)/$(CONFIG_NAME).toml
endif
HOST_CARGO=env -u RUSTUP_TOOLCHAIN -u CC -u TARGET cargo
## Filesystem size in MB (default comes from filesystem_size in the FILESYSTEM_CONFIG)
## FILESYSTEM_SIZE?=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG))
## Flags to pass to redoxfs-mkfs. Add --encrypt to set up disk encryption
REDOXFS_MKFS_FLAGS?=
## Set to 1 to enable Podman build, any other value will disable it
PODMAN_BUILD?=1
## Set to 1 to put filesystem tools inside podman, any other value will install it to host
FSTOOLS_IN_PODMAN?=0
## Set to 1 if FUSE is not available and we are running in a container
FSTOOLS_NO_MOUNT?=0
## Enable sccache to speed up cargo builds
## only do this by default if this is inside podman
SCCACHE_BUILD?=$(shell [ -f /run/.containerenv ] && echo 1 || echo 0)
## The containerfile to use for the Podman base image
CONTAINERFILE?=podman/redox-base-containerfile
# Per host variables
NPROC=nproc
SED=sed
FIND=find
REPO_BIN=./target/release/repo
ifneq ($(PODMAN_BUILD),1)
FSTOOLS_IN_PODMAN=0
HOST_TARGET := $(shell env -u RUSTUP_TOOLCHAIN rustc -vV | grep host | cut -d: -f2 | tr -d " ")
# x86_64 linux hosts have all toolchains
ifeq ($(PREFIX_BINARY),1)
ifeq ($(HOST_TARGET),aarch64-unknown-linux-gnu)
ifneq ($(ARCH),aarch64)
ifneq ($(ARCH),x86_64)
$(info The $(ARCH) binary prefix is only built for x86_64 Linux hosts)
PREFIX_BINARY=0
endif
endif
else ifeq ($(HOST_TARGET),x86_64-unknown-linux-gnu)
else
$(info The $(ARCH) binary prefix is only built for Linux hosts)
PREFIX_BINARY=0
endif
endif
endif
ifeq ($(SCCACHE_BUILD),1)
ifeq (,$(shell command -v sccache))
$(info sccache not found in PATH)
SCCACHE_BUILD=0
endif
endif
ifeq ($(REPO_APPSTREAM),1)
export COOKBOOK_APPSTREAM=true
endif
ifeq ($(REPO_NONSTOP),1)
export COOKBOOK_NONSTOP=true
endif
ifeq ($(REPO_OFFLINE),1)
export COOKBOOK_OFFLINE=true
endif
ifeq ($(REPO_DEBUG),1)
export COOKBOOK_NOSTRIP=true
export COOKBOOK_DEBUG=true
#TODO: https://gitlab.redox-os.org/redox-os/relibc/-/issues/226
# export PROFILE=debug
# export RUSTCFLAGS="-Cdebuginfo=2"
endif
UNAME := $(shell uname)
ifeq ($(UNAME),Darwin)
FUMOUNT=umount
NPROC=sysctl -n hw.ncpu
SED=gsed
FIND=gfind
VB_AUDIO=coreaudio
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
else ifeq ($(UNAME),FreeBSD)
FIND=gfind
FUMOUNT=sudo umount
VB_AUDIO=pulse # To check, will probably be OSS on most setups
VBM=VBoxManage
else ifeq ($(UNAME),Redox)
PODMAN_BUILD=0
# TODO: allow overriding to cross compiler toolchain when build server have one prebuilt
HOSTED_REDOX=1
ifneq ($(shell which repo),)
REPO_BIN=repo
endif
else
# Detect which version of the fusermount binary is available.
ifneq (, $(shell which fusermount3))
FUMOUNT=fusermount3 -u
else
FUMOUNT=fusermount -u
endif
VB_AUDIO=pulse
VBM=VBoxManage
endif
# Automatic variables
ROOT=$(CURDIR)
export RUST_COMPILER_RT_ROOT=$(ROOT)/rust/src/llvm-project/compiler-rt
export TESTBIN?=
RUNNING_IN_PODMAN=$(shell [ -f /run/.containerenv ] && echo 1 || echo 0)
ifeq ($(PODMAN_BUILD),1)
ifeq ($(RUNNING_IN_PODMAN),1)
$(info Please unset PODMAN_BUILD=1 in .config!)
endif
endif
ALLOW_FSTOOLS?=0
ifeq ($(FSTOOLS_IN_PODMAN),0)
ifeq ($(RUNNING_IN_PODMAN),0)
ALLOW_FSTOOLS=1
endif
endif
## Userspace variables
ifeq ($(ARCH),riscv64gc)
export TARGET=riscv64gc-unknown-redox
export GNU_TARGET=riscv64-unknown-redox
else
export TARGET=$(ARCH)-unknown-redox
export GNU_TARGET=$(ARCH)-unknown-redox
endif
BUILD=build/$(ARCH)/$(CONFIG_NAME)
MOUNT_DIR=$(BUILD)/filesystem
FSTOOLS=build/fstools
INSTALLER=$(FSTOOLS)/bin/redox_installer
REDOXFS=$(FSTOOLS)/bin/redoxfs
REDOXFS_MKFS=$(FSTOOLS)/bin/redoxfs-mkfs
INSTALLER_OPTS=--cookbook=.
INSTALLER_FEATURES=
REDOXFS_FEATURES=
COOKBOOK_OPTS="--filesystem=$(FILESYSTEM_CONFIG)"
ifeq ($(REPO_BINARY),1)
INSTALLER_OPTS+=--repo-binary
COOKBOOK_OPTS+=--repo-binary
endif
ifeq ($(FSTOOLS_NO_MOUNT),1)
INSTALLER_OPTS+=--no-mount
INSTALLER_FEATURES=--no-default-features --features installer
REDOXFS_FEATURES= --no-default-features --features std,log
endif
REPO_TAG=$(BUILD)/repo.tag
FSTOOLS_TAG=build/fstools.tag
export BOARD FIND
ifeq ($(SCCACHE_BUILD),1)
export CC_WRAPPER:=sccache
export RUSTC_WRAPPER:=$(CC_WRAPPER)
endif
ifeq ($(HOSTED_REDOX),1)
FSTOOLS_TAG=
endif
## If Podman is being used, a container is required
ifeq ($(PODMAN_BUILD),1)
CONTAINER_TAG=build/container.tag
else
CONTAINER_TAG=
endif
================================================
FILE: mk/depends.mk
================================================
# Configuration file for the build system dependencies
# Don't check for dependencies if you will be using Podman
ifneq ($(PODMAN_BUILD),1)
# Don't check for dependencies if you will be using Hosted Redox
ifneq ($(HOSTED_REDOX),1)
# don't check for Rust and Cargo if building on a Nix system
ifneq ($(NIX_SHELL_BUILD),1)
ifeq ($(shell which rustup),)
$(error rustup not found, install from "https://rustup.rs/")
endif
endif
# don't check for compile tools, used internally when installing fstools on host
ifneq ($(SKIP_CHECK_TOOLS),1)
ifeq ($(shell which cbindgen),)
$(error cbindgen not found, install from crates.io or from your package manager)
endif
ifeq ($(shell which nasm),)
$(error nasm not found, install from your package manager)
endif
ifeq ($(shell which just),)
$(error 'just' not found, install from crates.io or from your package manager)
endif
endif
endif
endif
================================================
FILE: mk/disk.mk
================================================
# Configuration file with the commands configuration of the Redox image
$(BUILD)/harddrive.img: $(FSTOOLS) $(REPO_TAG)
ifeq ($(FSTOOLS_IN_PODMAN),1)
$(PODMAN_RUN) make $@
else
mkdir -p $(BUILD)
-$(FUMOUNT) $(MOUNT_DIR) || true
-$(FUMOUNT) /tmp/redox_installer || true
rm -rf $@ $@.partial $(MOUNT_DIR)
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
fi && \
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $@.partial
mv $@.partial $@
endif
$(BUILD)/redox-live.iso: $(FSTOOLS) $(REPO_TAG) redox.ipxe
ifeq ($(FSTOOLS_IN_PODMAN),1)
$(PODMAN_RUN) make $@
else
mkdir -p $(BUILD)
rm -rf $@ $@.partial
-$(FUMOUNT) /tmp/redox_installer || true
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
fi && \
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) --write-bootloader="$(BUILD)/bootloader-live.efi" --live $@.partial
mv $@.partial $@
cp redox.ipxe $(BUILD)/redox.ipxe
endif
$(BUILD)/filesystem.img: $(FSTOOLS) $(REPO_TAG)
ifeq ($(FSTOOLS_IN_PODMAN),1)
$(PODMAN_RUN) make $@
else
mkdir -p $(BUILD)
-$(FUMOUNT) $(MOUNT_DIR) || true
rm -rf $@ $@.partial $(MOUNT_DIR)
-$(FUMOUNT) /tmp/redox_installer || true
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
fi && \
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
$(REDOXFS_MKFS) $(REDOXFS_MKFS_FLAGS) $@.partial
mkdir -p $(MOUNT_DIR)
$(REDOXFS) $@.partial $(MOUNT_DIR)
sleep 1
pgrep redoxfs
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $(MOUNT_DIR)
sync
-$(FUMOUNT) $(MOUNT_DIR) || true
rm -rf $(MOUNT_DIR)
mv $@.partial $@
endif
mount: $(FSTOOLS) FORCE
ifeq ($(FSTOOLS_IN_PODMAN),1)
$(PODMAN_RUN) make $@
else
@mkdir -p $(MOUNT_DIR)
$(REDOXFS) $(BUILD)/harddrive.img $(MOUNT_DIR)
@sleep 2
@echo "\033[1;36;49mharddrive.img mounted ($$(pgrep redoxfs))\033[0m"
endif
mount_extra: $(FSTOOLS) FORCE
ifeq ($(FSTOOLS_IN_PODMAN),1)
$(PODMAN_RUN) make $@
else
@mkdir -p $(MOUNT_DIR)
$(REDOXFS) $(BUILD)/extra.img $(MOUNT_DIR)
@sleep 2
@echo "\033[1;36;49mextra.img mounted ($$(pgrep redoxfs))\033[0m"
endif
mount_live: $(FSTOOLS) FORCE
ifeq ($(FSTOOLS_IN_PODMAN),1)
$(PODMAN_RUN) make $@
else
@mkdir -p $(MOUNT_DIR)
$(REDOXFS) $(BUILD)/redox-live.iso $(MOUNT_DIR)
@sleep 2
@echo "\033[1;36;49mredox-live.iso mounted ($$(pgrep redoxfs))\033[0m"
endif
unmount: FORCE
ifeq ($(FSTOOLS_IN_PODMAN),1)
$(PODMAN_RUN) make $@
else
@sync
-$(FUMOUNT) $(MOUNT_DIR)
@rm -rf $(MOUNT_DIR)
@-$(FUMOUNT) /tmp/redox_installer 2>/dev/null || true
@echo "\033[1;36;49mFilesystem unmounted\033[0m"
endif
================================================
FILE: mk/fstools.mk
================================================
# Configuration file for redox-installer, Cookbook and RedoxFS FUSE
fstools: $(FSTOOLS_TAG) $(FSTOOLS)
GOING_TO_PODMAN_AGAIN?=0
# These tools run inside Podman if it is used, or on the host if Podman is not used
$(FSTOOLS): | prefix $(CONTAINER_TAG) $(FSTOOLS_TAG)
ifeq ($(PODMAN_BUILD),1)
ifeq ($(FSTOOLS_IN_PODMAN),1)
$(PODMAN_RUN) make $@
else
$(MAKE) $@ PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 GOING_TO_PODMAN_AGAIN=1
endif
else
rm -rf $@ $@.partial
mkdir -p $@.partial
ln -s ../../recipes $@.partial/recipes
$(MAKE) fstools_fetch PODMAN_BUILD=$(GOING_TO_PODMAN_AGAIN)
# Compile installer and redoxfs for host (may be outside of podman container)
cd $@.partial && \
export CARGO_TARGET_DIR=../$@-target && \
$(HOST_CARGO) install --root . --path recipes/core/installer/source $(INSTALLER_FEATURES) && \
$(HOST_CARGO) install --root . --path recipes/core/redoxfs/source $(REDOXFS_FEATURES)
mv $@.partial $@
touch $@
endif
fstools_fetch: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(REPO_BIN) fetch installer redoxfs
endif
CARGO_OFFLINE_FLAG=
ifeq ($(REPO_OFFLINE),1)
CARGO_OFFLINE_FLAG=--offline
endif
$(FSTOOLS_TAG): $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(HOST_CARGO) build --manifest-path Cargo.toml --release --locked $(CARGO_OFFLINE_FLAG)
mkdir -p $(@D)
touch $@
endif
fstools_clean: FORCE
rm -rf target
rm -rf $(FSTOOLS)
rm -rf $(FSTOOLS)-target
rm -f $(FSTOOLS_TAG)
================================================
FILE: mk/podman.mk
================================================
# Configuration file of the Podman commands
# Configuration variables for running make in Podman
## Tag the podman image $IMAGE_TAG
IMAGE_TAG?=redox-base
## Working Directory in Podman
CONTAINER_WORKDIR?=/mnt/redox
## Flag passed to the Podman volumes. :Z can be used only with SELinux
USE_SELINUX?=1
ifeq ($(USE_SELINUX),1)
PODMAN_VOLUME_FLAG=:Z
else
PODMAN_VOLUME_FLAG=
endif
# Cache layers to redox-os docker hub
PODMAN_CACHE=
PODMAN_CACHE_PATH=docker.io/redoxos/$(IMAGE_TAG)
PODMAN_CACHE_PULL?=1
ifeq ($(PODMAN_CACHE_PULL),1)
PODMAN_CACHE+=--cache-from=$(PODMAN_CACHE_PATH)
endif
PODMAN_CACHE_PUSH?=0
ifeq ($(PODMAN_CACHE_PUSH),1)
PODMAN_CACHE+=--cache-to=$(PODMAN_CACHE_PATH)
endif
## Podman Home Directory
PODMAN_HOME=$(ROOT)/build/podman
## Podman command with its many arguments
PODMAN_VOLUMES=--volume $(ROOT):$(CONTAINER_WORKDIR)$(PODMAN_VOLUME_FLAG) --volume $(PODMAN_HOME):/root$(PODMAN_VOLUME_FLAG)
PODMAN_ENV=--env PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env PODMAN_BUILD=0
PODMAN_CONFIG=--env ARCH=$(ARCH) --env BOARD=$(BOARD) --env CONFIG_NAME=$(CONFIG_NAME) --env FILESYSTEM_CONFIG=$(FILESYSTEM_CONFIG) --env PREFIX_BINARY=$(PREFIX_BINARY) \
--env CI=$(CI) --env COOKBOOK_MAKE_JOBS=$(COOKBOOK_MAKE_JOBS) --env COOKBOOK_LOGS=$(COOKBOOK_LOGS) --env COOKBOOK_VERBOSE=$(COOKBOOK_VERBOSE) --env COOKBOOK_COMPRESSED=$(COOKBOOK_COMPRESSED) \
--env REPO_APPSTREAM=$(REPO_APPSTREAM) --env REPO_BINARY=$(REPO_BINARY) --env REPO_NONSTOP=$(REPO_NONSTOP) --env REPO_OFFLINE=$(REPO_OFFLINE) --env TESTBIN=$(TESTBIN) \
--env HOSTED_REDOX=$(HOSTED_REDOX) --env PREFIX_USE_UPSTREAM_RUST_COMPILER=$(PREFIX_USE_UPSTREAM_RUST_COMPILER)
PODMAN_OPTIONS=--rm --workdir $(CONTAINER_WORKDIR) --interactive --tty --cap-add SYS_ADMIN --device /dev/fuse --network=host --env TERM=$(TERM) --pids-limit=-1
PODMAN_RUN=podman run $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG)
container_shell: build/container.tag
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) bash
else
@echo PODMAN_BUILD=$(PODMAN_BUILD), please set it to 1 in mk/config.mk
endif
container_clean: FORCE
rm -f build/container.tag
@echo "If podman dir cannot be removed, remove with \"sudo rm\"."
-rm -rf $(PODMAN_HOME) || true
@echo "For complete clean of images and containers, use \"podman system reset\""
-podman image rm --force $(IMAGE_TAG) || true
container_touch: FORCE
ifeq ($(PODMAN_BUILD),1)
rm -f build/container.tag
podman image exists $(IMAGE_TAG) || (echo "Image does not exist, it will be rebuilt during normal make."; exit 1)
touch build/container.tag
else
@echo PODMAN_BUILD=$(PODMAN_BUILD), container not required.
endif
container_kill: FORCE
podman kill --latest --signal SIGKILL
## Must match the value of CONTAINER_TAG in config.mk
build/container.tag: $(CONTAINERFILE)
ifeq ($(PODMAN_BUILD),1)
rm -f $@ $(FSTOOLS_TAG)
-podman image rm --force $(IMAGE_TAG) || true
mkdir -p $(PODMAN_HOME)
@echo "Building Podman image. This may take some time."
cat $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) $(PODMAN_CACHE) --tag $(IMAGE_TAG)
$(PODMAN_RUN) bash -e podman/rustinstall.sh
mkdir -p build
touch $@
@echo "Podman ready!"
else
@echo PODMAN_BUILD=$(PODMAN_BUILD), container not required.
endif
container_push: build/container.tag
podman push $(IMAGE_TAG) $(PODMAN_CACHE_PATH)
KERNEL_PATH := recipes/core/kernel
KERNEL_PATH_SOURCE := $(ROOT)/$(KERNEL_PATH)/source
KERNEL_PATH_TARGET := $(ROOT)/$(KERNEL_PATH)/target/$(TARGET)
# TODO: make this work using `make debug.kernel` and remove this
kernel_debugger:
@echo "Building and running gdbgui container..."
podman build -t redox-kernel-debug - < $(ROOT)/podman/redox-gdb-containerfile
podman run --rm -p 5000:5000 -it --name redox-gdb \
-v "$(KERNEL_PATH_TARGET)/build/kernel.sym:/kernel.sym" \
-v "$(KERNEL_PATH_SOURCE)/src:/src" \
redox-kernel-debug --gdb-cmd "gdb -ex 'set confirm off' \
-ex 'add-symbol-file /kernel.sym' \
-ex 'target remote host.containers.internal:1234'"
================================================
FILE: mk/prefix.mk
================================================
# Configuration file for the Rust/GCC cross-compilers, relibc and libtool
PREFIX=prefix/$(TARGET)
PREFIX_INSTALL=$(PREFIX)/sysroot/
PREFIX_PATH=$(ROOT)/$(PREFIX_INSTALL)/bin
BINUTILS_TARGET=recipes/dev/binutils-gdb/target/$(HOST_TARGET)/$(TARGET)
LIBTOOL_TARGET=recipes/dev/libtool/target/$(HOST_TARGET)
GCC_TARGET=recipes/dev/gcc13/target/$(HOST_TARGET)/$(TARGET)
LIBSTDCXX_TARGET=recipes/libs/libstdcxx-v3/target/$(TARGET)/$(HOST_TARGET)
RELIBC_FREESTANDING_TARGET=recipes/core/relibc/target/$(TARGET)/$(HOST_TARGET)
RELIBC_TARGET=recipes/core/relibc/target/$(TARGET)
LLVM_TARGET=recipes/dev/llvm21/target/$(HOST_TARGET)/$(TARGET)
RUST_TARGET=recipes/dev/rust/target/$(HOST_TARGET)/$(TARGET)
CLANG_TARGET=recipes/dev/clang21/target/$(HOST_TARGET)/$(TARGET)
LLD_TARGET=recipes/dev/lld21/target/$(HOST_TARGET)/$(TARGET)
# official RISC-V support introduced in newer version
UPSTREAM_RUSTC_VERSION=2025-11-15
export PREFIX_RUSTFLAGS=-L $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/lib
export RUSTUP_TOOLCHAIN=$(ROOT)/$(PREFIX_INSTALL)
export REDOXER_TOOLCHAIN=$(RUSTUP_TOOLCHAIN)
PREFIX_CONFIG=CI=1 COOKBOOK_CLEAN_BUILD=true COOKBOOK_CLEAN_TARGET=false COOKBOOK_VERBOSE=true COOKBOOK_NONSTOP=false
prefix: $(PREFIX)/sysroot
# Remove prefix builds and downloads
prefix_clean:
rm -rf $(PREFIX)
# Remove relibc in sysroot and all statically linked recipes
static_clean: | $(FSTOOLS_TAG)
$(MAKE) c.relibc
$(MAKE) c.base,base-initfs,extrautils,kernel,ion,pkgutils,redoxfs
$(MAKE) c.bash,luajit,gettext,openssl1,openssl3,pcre2,sdl1,zstd,zlib,bzip2,xz
$(MAKE) c.expat,freetype2,libffi,libiconv,libjpeg,liborbital,libpng,libxml2,ncurses,ncursesw
rm -rf $(REPO_TAG)
$(PREFIX)/relibc-install: $(PREFIX)/clang-install $(PREFIX)/rust-install $(PREFIX)/gcc-install | $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@echo "\033[1;36;49mBuilding relibc-install\033[0m"
rm -rf "$@.partial" "$@"
mkdir "$@.partial"
cp -r "$(PREFIX)/gcc-install/". "$@.partial"
cp -r "$(PREFIX)/rust-install/". "$@.partial"
cp -r "$(PREFIX)/clang-install/". "$@.partial"
rm -rf "$@.partial/$(GNU_TARGET)/include/"*
cp -r "$(PREFIX)/gcc-install/$(GNU_TARGET)/include/c++" "$@.partial/$(GNU_TARGET)/include/c++"
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
export CARGO="env -u CARGO cargo" $(PREFIX_CONFIG) && \
$(REPO_BIN) cook relibc
cp -r "$(RELIBC_TARGET)/stage/usr/". "$@.partial/$(GNU_TARGET)"
mkdir -p "$@.partial/$(GNU_TARGET)/usr"
ln -s "../include" "$@.partial/$(GNU_TARGET)/usr/include"
ln -s "../lib" "$@.partial/$(GNU_TARGET)/usr/lib"
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/relibc-install.tar.gz: $(PREFIX)/relibc-install
tar \
--create \
--gzip \
--file "$@" \
--directory="$<" \
.
$(PREFIX)/sysroot: $(PREFIX)/relibc-install $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
rm -rf "$@"
cp -r "$(PREFIX)/relibc-install/" "$@"
# adapt path for libtoolize
sed 's|/usr/share|$(ROOT)/$@/share|g' "$@/bin/libtoolize.orig" > "$@/bin/libtoolize"
chmod 0755 "$@/bin/libtoolize"
touch "$@"
endif
# PREFIX_BINARY ---------------------------------------------------
ifeq ($(PREFIX_BINARY),1)
# PREFIX_BINARY FOR LINUX -----------------------------------------
ifneq ($(HOSTED_REDOX),1)
$(PREFIX)/%.tar.gz: | $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
mkdir -p "$(@D)"
wget -O $@.partial "https://static.redox-os.org/toolchain/$(HOST_TARGET)/$(TARGET)/$(@F)"
mv $@.partial $@
endif
$(PREFIX)/gcc-install $(PREFIX)/rust-install $(PREFIX)/clang-install: %: %.tar.gz | $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
tar --extract --file "$<" --directory "$@.partial" --no-same-owner --strip-components=1
touch "$@.partial"
mv "$@.partial" "$@"
endif
# PREFIX_BINARY FOR REDOX -----------------------------------------
else
$(PREFIX)/id_ed25519.pub.toml: | $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
mkdir -p "$(@D)"
wget -O $@.partial "https://static.redox-os.org/pkg/id_ed25519.pub.toml"
mv $@.partial $@
endif
$(PREFIX)/%.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
mkdir -p "$(@D)"
wget -O $@.partial "https://static.redox-os.org/pkg/$(TARGET)/$(@F)"
mv $@.partial $@
endif
$(PREFIX)/gcc-install: $(PREFIX)/gcc13.pkgar $(PREFIX)/gcc13.cxx.pkgar $(PREFIX)/libgcc.pkgar $(PREFIX)/libstdcxx.pkgar $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
pkgar extract --pkey $(PREFIX)/id_ed25519.pub.toml --archive "$(PREFIX)/gcc13.pkgar" "$@.partial"
pkgar extract --pkey $(PREFIX)/id_ed25519.pub.toml --archive "$(PREFIX)/gcc13.cxx.pkgar" "$@.partial"
pkgar extract --pkey $(PREFIX)/id_ed25519.pub.toml --archive "$(PREFIX)/libgcc.pkgar" "$@.partial"
pkgar extract --pkey $(PREFIX)/id_ed25519.pub.toml --archive "$(PREFIX)/libstdcxx.pkgar" "$@.partial"
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/rust-install: $(PREFIX)/llvm21.pkgar $(PREFIX)/rust.pkgar $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
pkgar extract --pkey $(PREFIX)/id_ed25519.pub.toml --archive "$(PREFIX)/llvm21.pkgar" "$@.partial"
pkgar extract --pkey $(PREFIX)/id_ed25519.pub.toml --archive "$(PREFIX)/rust.pkgar" "$@.partial"
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/clang-install: $(PREFIX)/llvm21.runtime.pkgar $(PREFIX)/clang21.pkgar $(PREFIX)/lld21.pkgar $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
pkgar extract --pkey $(PREFIX)/id_ed25519.pub.toml --archive "$(PREFIX)/llvm21.runtime.pkgar" "$@.partial"
pkgar extract --pkey $(PREFIX)/id_ed25519.pub.toml --archive "$(PREFIX)/clang21.pkgar" "$@.partial"
pkgar extract --pkey $(PREFIX)/id_ed25519.pub.toml --archive "$(PREFIX)/lld21.pkgar" "$@.partial"
touch "$@.partial"
mv "$@.partial" "$@"
endif
endif
else
$(PREFIX)/%.tar.gz: $(PREFIX)/%
tar \
--create \
--gzip \
--file "$@" \
--directory="$<" \
.
# BUILD GCC ---------------------------------------------------
$(PREFIX)/libtool-install: | $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@echo "\033[1;36;49mBuilding libtool-install\033[0m"
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
export $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr && \
$(REPO_BIN) cook host:libtool
cp -r "$(LIBTOOL_TARGET)/stage/usr/". "$@.partial"
mv "$@.partial/bin/libtoolize" "$@.partial/bin/libtoolize.orig"
# adapt path for libtoolize
sed 's|/usr/share|$(ROOT)/$@/share|g' "$@.partial/bin/libtoolize.orig" > "$@.partial/bin/libtoolize"
chmod 0755 "$@.partial/bin/libtoolize"
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/binutils-install: | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@echo "\033[1;36;49mBuilding binutils-install\033[0m"
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
export $(PREFIX_CONFIG) PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \
COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \
$(REPO_BIN) cook host:binutils-gdb
cp -r "$(BINUTILS_TARGET)/stage/usr/". "$@.partial"
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/gcc-freestanding-install: $(PREFIX)/binutils-install | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@echo "\033[1;36;49mBuilding gcc-freestanding-install\033[0m"
rm -rf "$@.partial" "$@" $(PREFIX)/relibc-freestanding-install $(PREFIX)/sysroot
mkdir -p "$@.partial" $(PREFIX)/relibc-freestanding-install/$(GNU_TARGET)/include
export $(PREFIX_CONFIG) PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$(ROOT)/$(PREFIX)/binutils-install/bin:$$PATH" \
COOKBOOK_LIBTOOL_DIR=$(ROOT)/$(PREFIX)/libtool-install COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) \
COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_SYSROOT=$(ROOT)/$(PREFIX)/relibc-freestanding-install/$(GNU_TARGET) && \
$(REPO_BIN) cook host:gcc13
cp -r "$(GCC_TARGET)/stage/usr/". "$@.partial"
cp -r "$(GCC_TARGET)/stage.cxx/usr/". "$@.partial"
cp -r "$(PREFIX)/binutils-install/". "$@.partial"
rm -rf $(PREFIX)/relibc-freestanding-install
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/relibc-freestanding-install: $(PREFIX)/gcc-freestanding-install | $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@echo "\033[1;36;49mBuilding relibc-freestanding-install\033[0m"
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
export CARGO="env -u CARGO -u RUSTUP_TOOLCHAIN cargo" RUSTUP="env -u CARGO -u RUSTUP_TOOLCHAIN rustup" && \
export PATH="$(ROOT)/$(PREFIX)/gcc-freestanding-install/bin:$$PATH" && \
export CC_$(subst -,_,$(TARGET))="$(GNU_TARGET)-gcc -isystem $(ROOT)/$@.partial/$(GNU_TARGET)/include" LINKFLAGS="" && \
export $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(HOST_TARGET) && \
$(REPO_BIN) cook relibc
cp -r "$(RELIBC_FREESTANDING_TARGET)/stage/usr/". "$@.partial/$(GNU_TARGET)"
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/gcc-install: $(PREFIX)/relibc-freestanding-install | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@echo "\033[1;36;49mBuilding gcc-install\033[0m"
rm -rf "$@.partial" "$@-build.partial" "$@"
if [ ! -d "$(ROOT)/$(GCC_TARGET)" ]; then \
echo "\033[1;38;5;196m Incomplete build stages. Please re-run the build\033[0m"; \
rm -rf "$(PREFIX)"/gcc-freestanding-install && "$(PREFIX)"/relibc-freestanding-install && \
exit 1; fi
mkdir -p "$@.partial" "$@-build.partial"
cp -r "$(PREFIX)/gcc-freestanding-install/". "$@.partial"
cp -r "$(PREFIX)/relibc-freestanding-install/". "$@.partial"
cp -r "$(PREFIX)/libtool-install/". "$@.partial"
@#TODO: how to make this not conflict with libc?
rm -f "$@.partial/lib/gcc/$(GNU_TARGET)/13.2.0/include/limits.h"
# libgcc and freestanding libstdcxx
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
$(MAKE) -C "$(ROOT)/$(GCC_TARGET)/build" all-target-libgcc all-target-libstdc++-v3 && \
$(MAKE) -C "$(ROOT)/$(GCC_TARGET)/build" install-target-libgcc install-target-libstdc++-v3 DESTDIR="$(ROOT)/$@-build.partial/usr"
cp -r "$@-build.partial/usr/". "$@.partial"
@#TODO: in riscv64gc libgcc_s.so is a GNU ld script
rm -f "$@.partial"/$(GNU_TARGET)/lib/libgcc_s.so
ln -s libgcc_s.so.1 "$@.partial"/$(GNU_TARGET)/lib/libgcc_s.so
@#TODO: generates wrong lib path for libtool
rm -f "$@.partial"/$(GNU_TARGET)/lib/libstdc++.la
rm -f "$@.partial"/$(GNU_TARGET)/lib/libsupc++.la
# hosted libstdcxx
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
export $(PREFIX_CONFIG) "COOKBOOK_HOST_SYSROOT=$(ROOT)/$@.partial" COOKBOOK_CROSS_TARGET=$(HOST_TARGET) && \
rm -rf "$(LIBSTDCXX_TARGET)/stage" && $(REPO_BIN) cook libstdcxx-v3
cp -r "$(LIBSTDCXX_TARGET)/stage/usr/". "$@.partial/$(GNU_TARGET)"
rm -rf "$@-build.partial"
touch "$@.partial"
mv "$@.partial" "$@"
# no longer needed, delete build files to save disk space
rm -rf $(BINUTILS_TARGET) $(LIBTOOL_TARGET) $(GCC_TARGET) $(LIBSTDCXX_TARGET) $(RELIBC_FREESTANDING_TARGET)
endif
# RUST FROM UPSTREAM COMPILER ---------------------------------------------------
ifeq ($(PREFIX_USE_UPSTREAM_RUST_COMPILER),1)
PREFIX_RUST_VERSION_TAG=$(PREFIX)/rustc-version-tag-$(UPSTREAM_RUSTC_VERSION)
$(PREFIX_RUST_VERSION_TAG):
rm -f "$(PREFIX)"/rustc-version-tag-*
rm -f "$(PREFIX)"/rustc-install.tar.xz
rm -f "$(PREFIX)"/cargo-install.tar.xz
rm -f "$(PREFIX)"/rust-std-host-install.tar.xz
rm -f "$(PREFIX)"/rust-std-target-install.tar.xz
rm -f "$(PREFIX)"/rust-src-install.tar.xz:
mkdir -p "$(@D)"
touch $@
$(PREFIX)/rustc-install.tar.xz $(PREFIX)/cargo-install.tar.xz: $(PREFIX)/%-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
mkdir -p "$(@D)"
wget -O $@.partial "https://static.rust-lang.org/dist/$(UPSTREAM_RUSTC_VERSION)/$*-nightly-$(HOST_TARGET).tar.xz"
mv $@.partial $@
endif
$(PREFIX)/rust-std-host-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
mkdir -p "$(@D)"
wget -O $@.partial "https://static.rust-lang.org/dist/$(UPSTREAM_RUSTC_VERSION)/rust-std-nightly-$(HOST_TARGET).tar.xz"
mv $@.partial $@
endif
$(PREFIX)/rust-std-target-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
mkdir -p "$(@D)"
ifeq ($(TARGET),x86_64-unknown-redox)
wget -O $@.partial "https://static.rust-lang.org/dist/$(UPSTREAM_RUSTC_VERSION)/rust-std-nightly-$(TARGET).tar.xz"
mv $@.partial $@
else
touch $@
endif
endif
$(PREFIX)/rust-src-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
mkdir -p "$(@D)"
wget -O $@.partial "https://static.rust-lang.org/dist/$(UPSTREAM_RUSTC_VERSION)/rust-src-nightly.tar.xz"
mv $@.partial $@
endif
$(PREFIX)/rust-install: $(PREFIX)/rustc-install.tar.xz $(PREFIX)/cargo-install.tar.xz $(PREFIX)/rust-std-host-install.tar.xz $(PREFIX)/rust-std-target-install.tar.xz $(PREFIX)/rust-src-install.tar.xz
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@echo "\033[1;36;49mBuilding rust-install\033[0m"
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
tar --extract --file "$(PREFIX)/rustc-install.tar.xz" -C "$@.partial" rustc-nightly-$(HOST_TARGET)/rustc/ --strip-components=2
tar --extract --file "$(PREFIX)/cargo-install.tar.xz" --directory "$@.partial" cargo-nightly-$(HOST_TARGET)/cargo/ --strip-components=2
tar --extract --file "$(PREFIX)/rust-std-host-install.tar.xz" --directory "$@.partial" rust-std-nightly-$(HOST_TARGET)/rust-std-$(HOST_TARGET)/ --strip-components=2
tar --extract --file "$(PREFIX)/rust-src-install.tar.xz" --directory "$@.partial" rust-src-nightly/rust-src/ --strip-components=2
ifeq ($(TARGET),x86_64-unknown-redox)
tar --extract --file "$(PREFIX)/rust-std-target-install.tar.xz" --directory "$@.partial" rust-std-nightly-$(TARGET)/rust-std-$(TARGET)/ --strip-components=2
endif
rm -f "$@.partial/manifest.in"
touch "$@.partial"
mv "$@.partial" "$@"
endif
# BUILD RUST ---------------------------------------------------
else
$(PREFIX)/rust-install: | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@echo "\033[1;36;49mBuilding rust-install\033[0m"
rm -rf "$@.partial" "$@"
export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \
$(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \
$(REPO_BIN) cook host:llvm21 host:rust
cp -r "$(RUST_TARGET)/stage/usr/". "$@.partial"
cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial"
mv "$@.partial" "$@"
# TODO: Cache from RUST_TARGET is currently not cleared.
# TIP: If you're developing std for rust, remove COOKBOOK_CLEAN_BUILD=true
# at the top of this file so your next rust build reuses the build cache
endif
endif
# BUILD CLANG ---------------------------------------------------
$(PREFIX)/clang-install: | $(PREFIX)/rust-install $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@echo "\033[1;36;49mBuilding clang-install\033[0m"
rm -rf "$@.partial" "$@"
export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \
$(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \
$(REPO_BIN) cook host:llvm21 host:clang21 host:lld21
# llvm libraries is already in rust if building
ifeq ($(PREFIX_USE_UPSTREAM_RUST_COMPILER),1)
cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial"
endif
cp -r "$(LLVM_TARGET)/stage.dev/usr/". "$@.partial"
cp -r "$(LLVM_TARGET)/stage.runtime/usr/". "$@.partial"
cp -r "$(CLANG_TARGET)/stage/usr/". "$@.partial"
cp -r "$(LLD_TARGET)/stage/usr/". "$@.partial"
mv "$@.partial" "$@"
# no longer needed, delete build files to save disk space
rm -rf $(LLVM_TARGET) $(CLANG_TARGET) $(LLD_TARGET)
endif
endif
================================================
FILE: mk/qemu.mk
================================================
# Configuration file for QEMU
QEMU=qemu-system-$(QEMU_ARCH)
QEMUFLAGS=-d guest_errors -name "Redox OS $(ARCH)"
netboot?=no
redoxer?=no
VGA_SUPPORTED=no
ifeq ($(ARCH),i586)
audio?=ac97
disk?=ata
gpu?=vga
uefi=no
VGA_SUPPORTED=yes
QEMU_ARCH=i386
QEMU_MACHINE?=pc
QEMU_CPU?=pentium2
QEMU_SMP?=1
QEMU_MEM?=1024
# Default to using kvm when arch is i586 and host is x86_64
ifeq ($(HOST_ARCH),x86_64)
kvm?=yes
endif
else ifeq ($(ARCH),x86_64)
gpu?=vga
uefi?=yes
VGA_SUPPORTED=yes
QEMU_ARCH=x86_64
QEMU_MACHINE?=q35
QEMU_CPU?=core2duo
QEMU_SMP?=4
QEMU_MEM?=2048
ifeq ($(uefi),yes)
FIRMWARE=$(firstword \
$(wildcard /usr/share/ovmf/OVMF.fd) \
$(wildcard /usr/share/OVMF/OVMF_CODE.fd) \
)
ifeq ($(FIRMWARE),)
PFLASH0=$(firstword \
$(wildcard /usr/share/qemu/edk2-x86_64-code.fd) \
$(wildcard /opt/homebrew/opt/qemu/share/qemu/edk2s-x86_64-code.fd) \
)
endif
endif
ifneq ($(usb),no)
QEMUFLAGS+=-device qemu-xhci
endif
else ifeq ($(ARCH),aarch64)
# Default to UEFI as U-Boot doesn't set up a framebuffer for us and we don't yet support
# setting up a framebuffer ourself.
uefi?=yes
live?=yes
gpu?=ramfb
QEMU_ARCH=aarch64
QEMU_MACHINE?=virt
QEMU_CPU=max
QEMU_SMP?=1
QEMU_MEM?=2048
ifeq ($(BOARD),raspi3bp)
QEMU_KERNEL=$(BUILD)/raspi3bp_uboot.rom
disk?=sdcard
gpu=none
QEMU_MACHINE:=raspi3b
QEMU_SMP:=4
QEMU_MEM:=1024
net:=usb-net
audio:=no
ifneq ($(usb),no)
QEMUFLAGS+=-usb -device usb-kbd -device usb-tablet
endif
else
ifeq ($(uefi),yes)
FIRMWARE=$(firstword \
$(wildcard /usr/share/AAVMF/AAVMF_CODE.fd) \
)
ifeq ($(FIRMWARE),)
PFLASH0=$(firstword \
$(wildcard /usr/share/qemu/edk2-aarch64-code.fd) \
$(wildcard /opt/homebrew/opt/qemu/share/qemu/edk2-aarch64-code.fd) \
)
endif
else
FIRMWARE=$(BUILD)/qemu_uboot.rom
endif
ifneq ($(usb),no)
QEMUFLAGS+=-device qemu-xhci -device usb-kbd -device usb-tablet
endif
endif
# Default to using HVF when host is MacOS Silicon
ifeq ($(HOST_ARCH),arm64)
kvm?=yes
endif
else ifeq ($(ARCH),riscv64gc)
live=no
audio=no
gpu?=ramfb
net=bridge
QEMU_ARCH=riscv64
# QEMU_MACHINE=virt for ACPI mode instead of DTB
QEMU_MACHINE=virt,acpi=off
# QEMU_MACHINE:=${QEMU_MACHINE},aclint=on
# QEMU_MACHINE:=${QEMU_MACHINE},aia=aplic
# QEMU_MACHINE:=${QEMU_MACHINE},aia=aplic-imsic
QEMU_SMP?=4
QEMU_MEM?=2048
QEMU_CPU=max
PFLASH0=$(firstword \
$(wildcard /usr/share/qemu-efi-riscv64/RISCV_VIRT_CODE.fd) \
$(wildcard /usr/share/edk2/riscv/RISCV_VIRT_CODE.fd) \
$(wildcard /usr/share/qemu/edk2-riscv-code.fd) \
$(wildcard /opt/homebrew/opt/qemu/share/qemu/edk2-riscv-code.fd) \
)
PFLASH1=$(firstword \
$(wildcard /usr/share/qemu-efi-riscv64/RISCV_VIRT_VARS.fd) \
$(wildcard /usr/share/edk2/riscv/RISCV_VIRT_VARS.fd) \
$(wildcard /usr/share/qemu/edk2-riscv-vars.fd) \
$(wildcard /opt/homebrew/opt/qemu/share/qemu/edk2-riscv-vars.fd) \
)
ifneq ($(usb),no)
QEMUFLAGS+=-device qemu-xhci -device usb-kbd -device usb-tablet
endif
else
$(error Unsupported ARCH for QEMU "$(ARCH)"))
endif
QEMUFLAGS+=-smp $(QEMU_SMP) -m $(QEMU_MEM)
# If host and target arch do not match, disable kvm
# (unless overridden above or by environment)
ifneq ($(ARCH),$(HOST_ARCH))
kvm?=no
endif
# wsl2: run qemu on windows instead
ifeq ($(QEMU_ON_WINDOWS),1)
QEMU:=$(QEMU).exe
WINDOWS_DISK=/mnt/c/ProgramData/redox.img
disk=windows
net=windows
QEMU_MACHINE=pc
FIRMWARE=
QEMU_KERNEL=
QEMUFLAGS+=-device usb-tablet
endif
ifneq ($(FIRMWARE),)
QEMUFLAGS+=-bios $(FIRMWARE)
endif
ifneq ($(QEMU_KERNEL),)
QEMUFLAGS+=-kernel $(QEMU_KERNEL)
endif
ifeq ($(live),yes)
DISK=$(BUILD)/redox-live.iso
else
DISK=$(BUILD)/harddrive.img
endif
ifeq ($(serial),no)
QEMUFLAGS+=-chardev stdio,id=debug -device isa-debugcon,iobase=0x402,chardev=debug
else
QEMUFLAGS+=-chardev stdio,id=debug,signal=off,mux=on,"$(if $(qemu_serial_logfile),logfile=$(qemu_serial_logfile))"
QEMUFLAGS+=-serial chardev:debug -mon chardev=debug
endif
# redoxer exit code: 51 => success, 53 => failure
ifeq ($(redoxer),yes)
ifeq ($(ARCH),x86_64)
QEMUFLAGS+=-device isa-debug-exit
else ifeq ($(ARCH),i586)
QEMUFLAGS+=-device isa-debug-exit
else ifeq ($(ARCH),aarch64)
QEMUFLAGS+=-semihosting-config enable=on,target=native,userspace=on
endif
endif
ifeq ($(iommu),yes)
QEMUFLAGS+=-machine $(QEMU_MACHINE),iommu=on
else
QEMUFLAGS+=-machine $(QEMU_MACHINE)
endif
ifeq ($(audio),no)
# No audio
else ifeq ($(audio),ac97)
# AC'97
QEMUFLAGS+=-device AC97
else
# Intel High Definition Audio
QEMUFLAGS+=-device ich9-intel-hda -device hda-output
endif
ifeq ($(net),no)
QEMUFLAGS+=-net none
else
ifeq ($(net),rtl8139) # RTL8139
QEMUFLAGS+=-device rtl8139,netdev=net0
else ifeq ($(net),virtio) # virtio-net
QEMUFLAGS+=-device virtio-net,netdev=net0
else ifeq ($(net),usb-net)
QEMUFLAGS+=-device usb-net,netdev=net0
else
QEMUFLAGS+=-device e1000,netdev=net0,id=nic0
endif
EXTRANETARGS=
ifeq ($(netboot),yes)
EXTRANETARGS+=,tftp=$(BUILD),bootfile=redox.ipxe
QEMUFLAGS+=-kernel /usr/lib/ipxe/ipxe-amd64.efi
endif
ifneq ($(bridge),)
QEMUFLAGS+=-netdev bridge,br=$(bridge),id=net0
else ifeq ($(net),redir)
# port 8022 - ssh
# port 8080-8083 - webservers
# port 64126 - our gdbserver implementation
FWD_PORTS := 8081 8082 8083 64126
FWD_FLAGS := hostfwd=tcp::8022-:22,hostfwd=tcp::8080-:80
FWD_FLAGS2 := $(foreach p,$(FWD_PORTS),,hostfwd=tcp::$(p)-:$(p))
QEMUFLAGS += -netdev user,id=net0,$(FWD_FLAGS)$(subst $(eval ) ,,$(FWD_FLAGS2))$(EXTRANETARGS)
else ifeq ($(net),windows)
QEMUFLAGS+=-netdev user,id=net0$(EXTRANETARGS)
else
QEMUFLAGS+=-netdev user,id=net0$(EXTRANETARGS) -object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
endif
endif
ifeq ($(gpu),no)
QEMUFLAGS+=-nographic -vga none
else ifeq ($(gpu),vga)
ifeq ($(VGA_SUPPORTED),yes)
QEMUFLAGS+=-vga std
else
QEMUFLAGS+=-vga none -device secondary-vga
endif
else ifeq ($(gpu),ramfb)
QEMUFLAGS+=-vga none -device ramfb
else ifeq ($(gpu),multi)
ifeq ($(VGA_SUPPORTED),yes)
QEMUFLAGS+=-display sdl -vga none -device virtio-vga,max_outputs=2
else
QEMUFLAGS+=-display sdl -vga none -device virtio-gpu,max_outputs=2
endif
else ifeq ($(gpu),virtio)
ifeq ($(VGA_SUPPORTED),yes)
QEMUFLAGS+=-vga none -device virtio-vga
else
QEMUFLAGS+=-vga none -device virtio-gpu
endif
else ifeq ($(gpu),virtio-sdl)
ifeq ($(VGA_SUPPORTED),yes)
QEMUFLAGS+=-vga none -device virtio-vga -display sdl,show-cursor=on
else
QEMUFLAGS+=-vga none -device virtio-gpu -display sdl,show-cursor=on
endif
else ifeq ($(gpu),virtio-gl)
ifeq ($(VGA_SUPPORTED),yes)
QEMUFLAGS+=-display gtk,gl=on -vga none -device virtio-vga-gl
else
QEMUFLAGS+=-display gtk,gl=on -vga none -device virtio-gpu-gl
endif
endif
EXTRA_DISK=$(BUILD)/extra.img
disk?=nvme
ifeq ($(disk),ata)
# For i386, ata will use ided
# For aarch64 and x86_64, ata will use ahcid
QEMUFLAGS+= \
-drive file=$(DISK),format=raw \
-drive file=$(EXTRA_DISK),format=raw
else ifeq ($(disk),nvme)
QEMUFLAGS+= \
-drive file=$(DISK),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
-drive file=$(EXTRA_DISK),format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
else ifeq ($(disk),usb)
QEMUFLAGS+= \
-drive if=none,id=usbstick,format=raw,file=$(DISK) \
-device usb-storage,drive=usbstick
else ifeq ($(disk),virtio)
QEMUFLAGS+= \
-drive file=$(DISK),format=raw,if=virtio \
-drive file=$(EXTRA_DISK),format=raw,if=virtio
else ifeq ($(disk),cdrom)
QEMUFLAGS+= \
-boot d -cdrom $(DISK) \
-drive file=$(EXTRA_DISK),format=raw
else ifeq ($(disk),sdcard)
QEMUFLAGS+=-drive file=$(DISK),if=sd,format=raw
else ifeq ($(disk),windows)
QEMUFLAGS+=-drive file="$(shell wslpath -w $(WINDOWS_DISK))",format=raw,if=virtio
endif
ifeq ($(gdb),yes)
QEMUFLAGS+=-d cpu_reset -s -S
else ifeq ($(gdb),nonblock)
# Allow attaching gdb, but don't block for it
QEMUFLAGS+=-d cpu_reset -s
endif
ifeq ($(UNAME),Linux)
ifneq ($(kvm),no)
ifeq ($(QEMU_ON_WINDOWS),1)
QEMUFLAGS+=-accel whpx,kernel-irqchip=off -cpu Broadwell,x2apic=off
else
QEMUFLAGS+=-enable-kvm -cpu host
endif
else
QEMUFLAGS+=-cpu $(QEMU_CPU)
endif
endif
ifeq ($(UNAME),Darwin)
ifneq ($(kvm),no)
QEMUFLAGS+=-accel hvf -cpu max
else
QEMUFLAGS+=-cpu $(QEMU_CPU)
endif
endif
ifneq ($(PFLASH0),)
QEMUFLAGS+=-drive if=pflash,format=raw,unit=0,file=$(PFLASH0),readonly=on
endif
ifneq ($(PFLASH1),)
QEMUFLAGS+=-drive if=pflash,format=raw,unit=1,file=$(BUILD)/fw_vars.bin
endif
.PHONY: qemu-deps
qemu-deps: $(DISK)
ifeq ($(disk),usb)
else ifeq ($(disk),sdcard)
else ifeq ($(disk),windows)
qemu-deps: $(WINDOWS_DISK)
else
qemu-deps: $(EXTRA_DISK)
endif
qemu-deps:$(FIRMWARE)
qemu-deps:$(QEMU_KERNEL)
qemu-deps: $(PFLASH0)
ifneq ($(PFLASH1),)
qemu-deps: $(BUILD)/fw_vars.bin
.PRECIOUS: $(BUILD)/fw_vars.bin
$(BUILD)/fw_vars.bin: $(PFLASH1)
cp "$<" "$@"
endif
$(EXTRA_DISK):
truncate -s 1g $@
$(WINDOWS_DISK): $(BUILD)/harddrive.img
rm -f $@
mkdir -p $(shell dirname $@)
cp "$<" "$@"
$(BUILD)/raspi3bp_uboot.rom:
wget -O $@ https://gitlab.redox-os.org/Ivan/redox_firmware/-/raw/main/platform/raspberry_pi/rpi3/u-boot-rpi-3-b-plus.bin
$(BUILD)/qemu_uboot.rom:
wget -O $@ https://gitlab.redox-os.org/Ivan/redox_firmware/-/raw/main/platform/qemu/qemu_arm64/u-boot-qemu-arm64.bin
qemu: qemu-deps
$(QEMU) $(QEMUFLAGS)
================================================
FILE: mk/repo.mk
================================================
# Configuration file for recipe commands
$(REPO_TAG): prefix $(FILESYSTEM_CONFIG) | $(FSTOOLS) $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \
$(REPO_BIN) cook $(COOKBOOK_OPTS) --with-package-deps
mkdir -p $(BUILD)
touch $@
endif
comma := ,
# List all recipes in a cook-tree fashion specified by the filesystem config
repo-tree: $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@$(REPO_BIN) cook-tree $(COOKBOOK_OPTS) --with-package-deps
endif
# List all recipes in a push-tree fashion specified by the filesystem config
image-tree: $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@$(REPO_BIN) push-tree $(COOKBOOK_OPTS)
endif
# Clean specific target to all recipes, similar to repo_clean but more specific
repo_clean_target: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(REPO_BIN) clean-target --all
endif
# Fetch all recipes source or binary from filesystem config
fetch: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \
$(REPO_BIN) fetch $(COOKBOOK_OPTS) --with-package-deps
endif
# Fetch Cargo dependencies for the cookbook tool (needed for REPO_OFFLINE=1 builds)
cargo-fetch: FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(HOST_CARGO) fetch --manifest-path Cargo.toml --locked
endif
# Find recipe for one or more targets separated by comma
find.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@$(REPO_BIN) find $(foreach f,$(subst $(comma), ,$*),$(f))
endif
# Invoke clean for relibc in recipe and relibc in sysroot
c.relibc: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(REPO_BIN) clean relibc
rm -rf $(PREFIX)/relibc-install $(PREFIX)/sysroot
@echo "\033[1;36;49mSysroot cleaned\033[0m"
endif
# Invoke clean for one or more targets separated by comma
c.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(REPO_BIN) clean $(foreach f,$(subst $(comma), ,$*),$(f))
endif
# Invoke fetch for one or more targets separated by comma
f.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \
$(REPO_BIN) fetch $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS)
endif
# Invoke cook for one or more targets separated by comma
r.%: prefix $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \
$(REPO_BIN) cook $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS)
endif
# Show what to cook
rt.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(REPO_BIN) cook-tree $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS)
endif
MOUNTED_TAG=$(MOUNT_DIR)~
# Push compiled package into existing image
# DO NOT RUN THIS WHILE QEMU ALIVE, THE DISK MIGHT CORRUPT IN DOING SO
p.%: $(FSTOOLS_TAG) FORCE
ifeq ($(ALLOW_FSTOOLS),1)
@rm -f $(MOUNTED_TAG)
@if [ ! -d "$(MOUNT_DIR)" ]; then \
$(MAKE) mount; \
touch $(MOUNTED_TAG); \
fi
endif
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@ ALLOW_FSTOOLS=$(FSTOOLS_IN_PODMAN)
else
$(REPO_BIN) push $(foreach f,$(subst $(comma), ,$*),$(f)) "--sysroot=$(MOUNT_DIR)"
endif
ifeq ($(ALLOW_FSTOOLS),1)
@if [ -f $(MOUNTED_TAG) ]; then \
$(MAKE) unmount && rm -f $(MOUNTED_TAG); \
else echo "\033[0;33;49mNot unmounting by ourself, don't forget to do it\033[0m"; \
fi
endif
# Show what to push
pt.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(REPO_BIN) push-tree $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS)
endif
# Push all recipes specified by the filesystem config
push: $(FSTOOLS_TAG) FORCE
ifeq ($(ALLOW_FSTOOLS),1)
@rm -f $(MOUNTED_TAG)
@if [ ! -d "$(MOUNT_DIR)" ]; then \
$(MAKE) mount; \
touch $(MOUNTED_TAG); \
fi
endif
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@ ALLOW_FSTOOLS=$(FSTOOLS_IN_PODMAN)
else
$(REPO_BIN) push $(COOKBOOK_OPTS) --with-package-deps "--sysroot=$(MOUNT_DIR)"
endif
ifeq ($(ALLOW_FSTOOLS),1)
@if [ -f $(MOUNTED_TAG) ]; then \
$(MAKE) unmount && rm -f $(MOUNTED_TAG); \
else echo "\033[1;33;49mNot unmounting by ourself, don't forget to do it\033[0m"; \
fi
endif
# Rebuild and push all recipes specified by the filesystem config
rebuild-push: $(FSTOOLS_TAG) FORCE
rm -f $(REPO_TAG)
$(MAKE) repo
$(MAKE) push
# Invoke unfetch for one or more targets separated by comma
u.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(REPO_BIN) unfetch $(foreach f,$(subst $(comma), ,$*),$(f))
endif
# Invoke clean, and repo.sh for one of more targets separated by comma
cr.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(MAKE) c.$*
$(MAKE) r.$*
endif
# Invoke unfetch, clean, and repo.sh for one or more targets separated by comma
ucr.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(MAKE) u.$*
$(MAKE) cr.$*
endif
# Invoke unfetch and clean for one or more targets separated by comma
uc.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(MAKE) u.$*
$(MAKE) c.$*
endif
# Invoke unfetch, clean and fetch for one or more targets separated by comma
ucf.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(MAKE) uc.$*
$(MAKE) f.$*
endif
# Invoke repo.sh and push for one of more targets separated by comma
# Don't use podman here, as the p target cannot mount inside podman
rp.%: $(FSTOOLS_TAG) FORCE
$(MAKE) r.$*,--with-package-deps
$(MAKE) p.$*
# Invoke clean, repo.sh and push for one of more targets separated by comma
crp.%: $(FSTOOLS_TAG) FORCE
$(MAKE) cr.$*,--with-package-deps
$(MAKE) p.$*
# Invoke unfetch. clean, repo.sh and push for one of more targets separated by comma
ucrp.%: $(FSTOOLS_TAG) FORCE
$(MAKE) ucr.$*,--with-package-deps
$(MAKE) p.$*
export DEBUG_BIN?=
# Debug a statically linked program with gdbgui, for example: debug.drivers-initfs DEBUG_BIN=pcid
# Enable debug symbols with `REPO_DEBUG=1 make cr.recipe rebuild`, make sure `file` outputs "debug_info, not stripped"
# Open http://localhost:5000/dashboard, start QEMU with `make qemu kvm=no QEMU_SMP=1 gdb=yes` before opening a session
# Experimental, may not work if ARCH is different with what host is running
debug.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
@cd $(shell make find.$* | grep ^recipes) && \
export RECIPE_STAGE=target/$(TARGET)/stage && \
export BIN_PATH=$$(find $$RECIPE_STAGE -type f -name "$(DEBUG_BIN)" -or -type f -name "$*") && \
file $$BIN_PATH 2> /dev/null || ( echo "Binary is not found, please set DEBUG_BIN" && exit 1 ) && \
echo "Opening gdbgui for debugging $* with binary '$$BIN_PATH'" && echo "----------" && \
podman build -t redox-kernel-debug - < $(ROOT)/podman/redox-gdb-containerfile > /dev/null && \
podman run --rm -p 5000:5000 -it --name redox-gdb \
-v "./$$BIN_PATH:/binary" \
-v "./source:/source" -w "/source" \
redox-kernel-debug --gdb-cmd "gdb -ex 'set confirm off' \
-ex 'add-symbol-file /binary' \
-ex 'target remote host.containers.internal:1234'"
else
@cd $(shell make find.$* | grep ^recipes) && \
export RECIPE_STAGE=target/$(TARGET)/stage && \
export BIN_PATH=$$(find $$RECIPE_STAGE -type f -name "$(DEBUG_BIN)" -or -type f -name "$*") && \
file $$BIN_PATH 2> /dev/null || ( echo "Binary is not found, please set DEBUG_BIN" && exit 1 ) && \
echo "Opening gdbgui for debugging $* with binary '$$BIN_PATH'" && echo "----------" && \
gdbgui.pex --gdb-cmd "gdb -ex 'set confirm off' \
-ex 'add-symbol-file $$BIN_PATH' \
-ex 'target remote localhost:1234'"
endif
================================================
FILE: mk/virtualbox.mk
================================================
# Configuration file for VirtualBox, it creates a VirtualBox virtual machine
virtualbox: $(BUILD)/harddrive.img
echo "Delete VM"
-$(VBM) unregistervm Redox --delete; \
if [ $$? -ne 0 ]; \
then \
if [ -d "$$HOME/VirtualBox VMs/Redox" ]; \
then \
echo "Redox directory exists, deleting..."; \
$(RM) -rf "$$HOME/VirtualBox VMs/Redox"; \
fi \
fi
echo "Delete Disk"
-$(RM) harddrive.vdi
echo "Create VM"
$(VBM) createvm --name Redox --register
echo "Set Configuration"
$(VBM) modifyvm Redox --memory 2048
$(VBM) modifyvm Redox --vram 32
if [ "$(net)" != "no" ]; \
then \
$(VBM) modifyvm Redox --nic1 nat; \
$(VBM) modifyvm Redox --nictype1 82540EM; \
$(VBM) modifyvm Redox --cableconnected1 on; \
$(VBM) modifyvm Redox --nictrace1 on; \
$(VBM) modifyvm Redox --nictracefile1 "$(ROOT)/$(BUILD)/network.pcap"; \
fi
$(VBM) modifyvm Redox --uart1 0x3F8 4
$(VBM) modifyvm Redox --uartmode1 file "$(ROOT)/$(BUILD)/serial.log"
$(VBM) modifyvm Redox --usb off # on
$(VBM) modifyvm Redox --keyboard ps2
$(VBM) modifyvm Redox --mouse ps2
$(VBM) modifyvm Redox --audio-driver $(VB_AUDIO)
$(VBM) modifyvm Redox --audiocontroller hda
$(VBM) modifyvm Redox --audioout on
$(VBM) modifyvm Redox --nestedpaging on
echo "Create Disk"
$(VBM) convertfromraw $< $(BUILD)/harddrive.vdi
echo "Attach Disk"
$(VBM) storagectl Redox --name ATA --add sata --controller IntelAHCI --bootable on --portcount 1
$(VBM) storageattach Redox --storagectl ATA --port 0 --device 0 --type hdd --medium $(BUILD)/harddrive.vdi
echo "Run VM"
$(VBM) startvm Redox
================================================
FILE: native_bootstrap.sh
================================================
#!/usr/bin/env bash
# This script is used to setup the Redox build system
# It installs Rustup, the recipe dependencies for cross-compilation
# and downloads the build system configuration files
set -e
##########################################################
# This function is simply a banner to introduce the script
##########################################################
banner()
{
echo "|------------------------------------------|"
echo "|----- Welcome to the Redox bootstrap -----|"
echo "|------------------------------------------|"
}
############################################################################
# This function takes care of installing a dependency via package manager of
# choice for building Redox on BSDs (macOS, FreeBSD, etc.).
# @params: $1 package manager
# $2 package name
# $3 binary name (optional)
############################################################################
install_bsd_pkg()
{
PKG_MANAGER=$1
PKG_NAME=$2
BIN_NAME=$3
if [ -z "$BIN_NAME" ]; then
BIN_NAME=$PKG_NAME
fi
BIN_LOCATION=$(which $BIN_NAME || true)
if [ -z "$BIN_LOCATION" ]; then
echo "$PKG_MANAGER install $PKG_NAME"
$PKG_MANAGER install "$PKG_NAME"
else
echo "$BIN_NAME already exists at $BIN_LOCATION, no need to install $PKG_NAME..."
fi
}
install_macports_pkg()
{
install_bsd_pkg "sudo port" "$1" "$2"
}
install_brew_pkg()
{
install_bsd_pkg "brew" $@
}
install_brew_cask_pkg()
{
install_bsd_pkg "brew cask" $@
}
install_freebsd_pkg()
{
install_bsd_pkg "sudo pkg" $@
}
##############################################################################
# This function checks which of the supported package managers is available on
# the macOS host.
# If a supported package manager is found, it delegates the installing work to
# the relevant function.
# Otherwise this function will exit this script with an error.
##############################################################################
osx()
{
if [ ! -z "$(which brew)" ]; then
osx_homebrew $@
elif [ ! -z "$(which port)" ]; then
osx_macports $@
else
echo "Please install either Homebrew or MacPorts, if you wish to use this script"
echo "Re-run this script once you installed one of those package managers"
echo "Will not install, now exiting..."
exit 1
fi
}
############################################################################
# This function takes care of installing all dependencies using MacPorts for
# building Redox on macOS
# @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################
osx_macports()
{
echo "MacPorts detected! Now updating..."
sudo port -v selfupdate
echo "Installing missing packages..."
install_macports_pkg "git"
if [ "$1" == "qemu" ]; then
install_macports_pkg "qemu" "qemu-system-x86_64"
elif [ "$1" == "virtualbox" ]; then
install_macports_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi
install_macports_pkg "autoconf"
install_macports_pkg "automake"
install_macports_pkg "bison"
install_macports_pkg "cmake"
install_macports_pkg "coreutils"
install_macports_pkg "curl"
install_macports_pkg "doxygen"
install_macports_pkg "expat"
install_macports_pkg "file"
install_macports_pkg "findutils"
install_macports_pkg "flex"
install_macports_pkg "gcc14"
install_macports_pkg "gdb +multiarch"
install_macports_pkg "gmake"
install_macports_pkg "gmp"
install_macports_pkg "gpatch"
install_macports_pkg "jpeg"
install_macports_pkg "libpng"
install_macports_pkg "libsdl12"
install_macports_pkg "libsdl2_ttf"
install_macports_pkg "libtool"
install_macports_pkg "m4"
install_macports_pkg "meson"
install_macports_pkg "nasm"
install_macports_pkg "ninja"
install_macports_pkg "openssl11"
install_macports_pkg "openssl3"
install_macports_pkg "osxfuse"
install_macports_pkg "p5-html-parser"
install_macports_pkg "patchelf"
install_macports_pkg "perl5.24"
install_macports_pkg "pkgconfig"
install_macports_pkg "po4a"
install_macports_pkg "protobuf-c"
install_macports_pkg "py37-mako"
install_macports_pkg "python311"
install_macports_pkg "scons"
install_macports_pkg "texinfo"
install_macports_pkg "unzip"
install_macports_pkg "wget"
install_macports_pkg "x86_64-elf-gcc"
install_macports_pkg "xdg-utils"
install_macports_pkg "zip"
}
############################################################################
# This function takes care of installing all dependencies using Homebrew for
# building Redox on macOS
# @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################
osx_homebrew()
{
echo "Homebrew detected! Now updating..."
brew update
echo "Installing missing packages..."
install_brew_pkg "git"
if [ "$1" == "qemu" ]; then
install_brew_pkg "qemu" "qemu-system-x86_64"
elif [ "$1" == "virtualbox" ]; then
install_brew_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi
install_brew_pkg "ant"
install_brew_pkg "autoconf"
install_brew_pkg "automake"
install_brew_pkg "bison"
install_brew_pkg "cmake"
install_brew_pkg "curl"
install_brew_pkg "doxygen"
install_brew_pkg "expat"
install_brew_pkg "findutils"
install_brew_pkg "flex"
install_brew_pkg "gcc@14"
install_brew_pkg "gdb"
install_brew_pkg "gettext"
install_brew_pkg "gmp"
install_brew_pkg "gpatch"
install_brew_pkg "jpeg"
install_brew_pkg "libpng"
install_brew_pkg "libtool"
install_brew_pkg "llvm"
install_brew_pkg "m4"
install_brew_pkg "macfuse"
install_brew_pkg "make"
install_brew_pkg "meson"
install_brew_pkg "nasm"
install_brew_pkg "ninja"
install_brew_pkg "openssl@1.1"
install_brew_pkg "openssl@3.0"
install_brew_pkg "patchelf"
install_brew_pkg "perl"
install_brew_pkg "pkg-config"
install_brew_pkg "po4a"
install_brew_pkg "protobuf"
install_brew_pkg "python@3.11"
install_brew_pkg "scons"
install_brew_pkg "sdl12-compat"
install_brew_pkg "sdl2_ttf"
install_brew_pkg "texinfo"
install_brew_pkg "unzip"
install_brew_pkg "wget"
install_brew_pkg "zip"
install_brew_pkg "redox-os/gcc_cross_compilers/x86_64-elf-gcc" "x86_64-elf-gcc"
}
#######################################################################
# This function takes care of installing all dependencies using pkg for
# building Redox on FreeBSD
# @params: $1 the emulator to install, "virtualbox" or "qemu"
#######################################################################
freebsd()
{
set -x
echo "FreeBSD detected!"
echo "Installing missing packages..."
install_freebsd_pkg "git"
if [ "$1" == "qemu" ]; then
install_freebsd_pkg "qemu" "qemu-system-x86_64"
elif [ "$1" == "virtualbox" ]; then
install_freebsd_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi
install_freebsd_pkg "autoconf"
install_freebsd_pkg "automake"
install_freebsd_pkg "bison"
install_freebsd_pkg "cmake"
install_freebsd_pkg "coreutils"
install_freebsd_pkg "curl"
install_freebsd_pkg "doxygen"
install_freebsd_pkg "expat2"
install_freebsd_pkg "file"
install_freebsd_pkg "findutils"
install_freebsd_pkg "flex"
install_freebsd_pkg "fusefs-libs3"
install_freebsd_pkg "gcc"
install_freebsd_pkg "gdb"
install_freebsd_pkg "gettext"
install_freebsd_pkg "gmake"
install_freebsd_pkg "gmp"
install_freebsd_pkg "libjpeg-turbo"
install_freebsd_pkg "libtool"
install_freebsd_pkg "m4"
install_freebsd_pkg "meson"
install_freebsd_pkg "nasm"
install_freebsd_pkg "ninja"
install_freebsd_pkg "openssl"
install_freebsd_pkg "p5-HTML-Parser"
install_freebsd_pkg "patch"
install_freebsd_pkg "patchelf"
install_freebsd_pkg "perl5.36"
install_freebsd_pkg "pkgconf"
install_freebsd_pkg "png"
install_freebsd_pkg "po4a"
install_freebsd_pkg "py-protobuf-compiler"
install_freebsd_pkg "python"
install_freebsd_pkg "scons"
install_freebsd_pkg "sdl12"
install_freebsd_pkg "sdl2_ttf"
install_freebsd_pkg "syslinux"
install_freebsd_pkg "texinfo"
install_freebsd_pkg "unzip"
install_freebsd_pkg "wget"
install_freebsd_pkg "xdg-utils"
install_freebsd_pkg "zip"
set +x
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# Arch Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# $2 install non-interactively, boolean
###############################################################################
archLinux()
{
noninteractive=$2
pacman_install="pacman -S --needed"
if [ "$noninteractive" = true ]; then
pacman_install+=" --noconfirm"
fi
echo "Detected Arch Linux"
packages="ant \
autoconf \
automake \
bison \
cmake \
curl \
doxygen \
expat \
file \
flex \
fuse \
gdb \
git \
gmp \
libjpeg-turbo \
libpng \
libtool \
m4 \
make \
meson \
nasm \
patch \
patchelf \
perl \
perl-html-parser \
pkgconf \
po4a \
protobuf \
python \
python-mako \
rsync \
scons \
sdl12-compat \
syslinux \
texinfo \
unzip \
waf \
wget \
xdg-utils \
zip"
if [ "$1" == "qemu" ]; then
packages="$packages qemu-system-x86 qemu-system-arm qemu-system-riscv"
elif [ "$1" == "virtualbox" ]; then
packages="$packages virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi
# Scripts should not cause a system update in order to just install a
# couple of packages. If pacman -S --needed is going to fail, let it fail
# and the user will figure out the issues (without updating if required)
# and rerun the script.
#echo "Updating system..."
#sudo pacman -Syu
echo "Installing packages $packages..."
sudo $pacman_install $packages
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# Debian-based Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# $2 install non-interactively, boolean
# $3 the package manager to use
###############################################################################
ubuntu()
{
noninteractive=$2
package_manager=$3
echo "Detected Ubuntu/Debian"
echo "Updating system..."
sudo $package_manager update
if [ $package_manager == "apt-get" ]; then
if [ "$noninteractive" = true ]; then
install_command+="DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --quiet"
else
install_command="apt-get install"
fi
else
install_command="$package_manager install"
fi
echo "Installing required packages..."
pkgs="\
ant \
appstream \
appstream-compose \
autoconf \
autoconf2.69 \
automake \
autopoint \
bison \
bsdextrautils \
build-essential \
clang \
cmake \
curl \
dos2unix \
doxygen \
expect \
file \
flex \
fuse3 \
g++ \
gdb-multiarch \
genisoimage \
git \
git-lfs \
gtk-doc-tools \
help2man \
intltool \
libc6-dev-i386 \
libfuse3-dev \
libgdk-pixbuf2.0-bin \
libglib2.0-dev-bin \
libgmp-dev \
libhtml-parser-perl \
libjpeg-dev \
libmpfr-dev \
libparse-yapp-perl \
libsdl1.2-dev \
libsdl2-ttf-dev \
llvm \
lua5.4 \
lzip \
m4 \
make \
meson \
nasm \
ninja-build \
patch \
patchelf \
perl \
pkg-config \
po4a \
protobuf-compiler \
python3 \
python3-dev \
python3-mako \
python3-venv \
rsync \
ruby \
scons \
ssh \
syslinux-utils \
texinfo \
unifdef \
unzip \
wget \
xdg-utils \
xfonts-utils \
xorg-dev \
xutils-dev \
xxd \
zip \
zstd"
# Not availible for at least ARM hosts
case "$host_arch" in
x86*|i?86) pkgs="$pkgs libc6-dev-i386 syslinux-utils";;
esac
sudo $install_command $pkgs
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..."
sudo $install_command qemu-system-x86 qemu-kvm
sudo $install_command qemu-system-arm qemu-efi-aarch64
sudo $install_command qemu-system-riscv
else
echo "QEMU already installed!"
fi
elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then
if grep '^ID=debian$' /etc/os-release > /dev/null; then
echo "Virtualbox is not in the official debian packages"
echo "To install virtualbox on debian, see https://wiki.debian.org/VirtualBox"
echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu"
exit 1
else
echo "Installing VirtualBox..."
sudo $install_command virtualbox
fi
else
echo "VirtualBox already installed!"
fi
else
echo "Unknown emulator: $1"
exit 1
fi
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# Fedora Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# $2 install non-interactively, boolean
###############################################################################
fedora()
{
noninteractive=$2
dnf_install="dnf install"
if [ "$noninteractive" = true ]; then
dnf_install+=" --assumeyes --quiet"
fi
echo "Detected Fedora"
if [ -z "$(which git)" ]; then
echo "Installing git..."
sudo $dnf_install git-all
fi
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..."
sudo $dnf_install qemu-system-x86 qemu-kvm
sudo $dnf_install qemu-system-arm edk2-aarch64
sudo $dnf_install qemu-system-riscv
else
echo "QEMU already installed!"
fi
elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then
echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu"
exit 1
else
echo "VirtualBox already installed!"
fi
else
echo "Unknown emulator: $1"
exit 1
fi
# Use rpm -q <package> to check if it's already installed
PKGS=$(for pkg in @development-tools \
ant \
autoconf \
automake \
bison \
cmake \
curl \
doxygen \
expat \
expat-devel \
file \
flex \
fuse-devel \
fuse3-devel \
gcc \
gcc-c++ \
gdb \
genisoimage \
gettext-devel \
glibc-devel.i686 \
gmp-devel \
help2man \
libjpeg-turbo-devel \
libpng-devel \
libtool \
lzip \
m4 \
make \
meson \
nasm \
ninja-build \
openssl \
patch \
patchelf \
perl \
perl-FindBin \
perl-HTML-Parser \
perl-Pod-Html \
perl-Pod-Xhtml \
pkgconf-pkg-config \
po4a \
protobuf-compiler \
python3-mako \
SDL2_ttf-devel \
sdl12-compat-devel \
syslinux \
texinfo \
unzip \
vim \
waf \
zip \
zstd ; do rpm -q $pkg > /dev/null || echo $pkg; done)
# If the list of packages is not empty, install missing
COUNT=$(echo $PKGS | wc -w)
if [ $COUNT -ne 0 ]; then
echo "Installing necessary build tools..."
sudo $dnf_install $PKGS
fi
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# *SUSE Linux
###############################################################################
suse()
{
echo "Detected SUSE Linux"
packages=(
"ant"
"autoconf"
"automake"
"bison"
"cmake"
"curl"
"doxygen"
"file"
"flex"
"fuse-devel"
"gcc"
"gcc-c++"
"gdb-multiarch"
"gettext-tools"
"glibc-devel-32bit"
"gmp-devel"
"libexpat-devel"
"libjpeg8-devel"
"libpng16-devel"
"libtool"
"m4"
"make"
"meson"
"nasm"
"ninja"
"openssl"
"patch"
"patchelf"
"perl"
"perl-HTML-Parser"
"pkgconf"
"po4a"
"protobuf"
"python-Mako"
"scons"
"syslinux-utils"
"unzip"
"wget"
"xdg-utils"
"zip"
)
if [ -z "$(which git)" ]; then
echo "Will install git ..."
packages+=(git)
fi
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Will install QEMU..."
packages+=(qemu-x86 qemu-kvm)
else
echo "QEMU already installed!"
fi
elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then
echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu"
exit 1
else
echo "VirtualBox already installed!"
fi
else
echo "Unknown emulator: $1"
exit 1
fi
echo "Installing necessary build tools..."
# We could install all the packages in a single zypper command with:
#
# zypper install package1 package2 package3
#
# But there is an issue with this: zypper returns a success code if at
# least one of the packages was correctly installed, but we need it to fail
# if any of the packages is missing.
#
# To confirm that the packages are available, we try to install them one by
# one with --dry-run.
# We still install all the packages in a single zypper command so that the
# user has to confirm only once.
for p in ${packages[@]}; do
if rpm -q "${p}" > /dev/null ; then
echo "${p} is already installed"
else
# Zypper shows a confirmation prompt and the "y" answer even with
# --non-interactive and --no-confirm:
#
# 1 new package to install.
# Overall download size: 281.7 KiB. Already cached: 0 B.
# After the operation, additional 394.6 KiB will be used.
# Continue? [y/n/v/...? shows all options] (y): y
#
# That could make the user think that the package was installed,
# when it was only a dry run.
# To avoid the confusion, we hide the output unless there was an
# error.
if out="$(zypper --non-interactive install --no-confirm --dry-run --force-resolution ${p} 2>&1)" ; then
echo "${p
gitextract_v2ki18iw/
├── .cargo/
│ └── config.toml
├── .gitignore
├── .gitlab/
│ ├── issue_templates/
│ │ └── Issue_template.md
│ └── merge_request_templates/
│ └── Merge_request_template.md
├── .gitlab-ci.yml
├── CONTRIBUTING.md
├── Cargo.toml
├── HARDWARE.md
├── LICENSE
├── Makefile
├── README.md
├── TRADEMARK.md
├── bin/
│ ├── aarch64-unknown-redox-pkg-config
│ ├── i586-unknown-redox-pkg-config
│ ├── i686-unknown-redox-pkg-config
│ ├── riscv64-unknown-redox-pkg-config
│ ├── x86_64-unknown-redox-llvm-config
│ └── x86_64-unknown-redox-pkg-config
├── build.sh
├── config/
│ ├── aarch64/
│ │ ├── ci.toml
│ │ ├── demo.toml
│ │ ├── dev.toml
│ │ ├── jeremy.toml
│ │ ├── raspi3bp/
│ │ │ └── minimal.toml
│ │ └── redoxer.toml
│ ├── acid.toml
│ ├── auto-test.toml
│ ├── base.toml
│ ├── desktop-minimal.toml
│ ├── desktop.toml
│ ├── dev.toml
│ ├── i586/
│ │ ├── ci.toml
│ │ ├── demo.toml
│ │ ├── dev.toml
│ │ ├── jeremy.toml
│ │ └── redoxer.toml
│ ├── minimal.toml
│ ├── os-test.toml
│ ├── redoxer-gui.toml
│ ├── redoxer.toml
│ ├── riscv64gc/
│ │ ├── ci.toml
│ │ ├── demo.toml
│ │ ├── desktop.toml
│ │ └── jeremy.toml
│ ├── server.toml
│ ├── tests.toml
│ ├── wayland.toml
│ ├── x11.toml
│ └── x86_64/
│ ├── ci.toml
│ ├── demo.toml
│ ├── desktop-contain.toml
│ ├── full.toml
│ ├── jeremy.toml
│ ├── redoxer.toml
│ ├── rustconf2025.toml
│ └── server-demo.toml
├── flake.nix
├── mk/
│ ├── ci.mk
│ ├── config.mk
│ ├── depends.mk
│ ├── disk.mk
│ ├── fstools.mk
│ ├── podman.mk
│ ├── prefix.mk
│ ├── qemu.mk
│ ├── repo.mk
│ └── virtualbox.mk
├── native_bootstrap.sh
├── podman/
│ ├── redox-base-containerfile
│ ├── redox-gdb-containerfile
│ └── rustinstall.sh
├── podman_bootstrap.sh
├── recipes/
│ ├── archives/
│ │ ├── lz4/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── zstd/
│ │ ├── 01_redox.patch
│ │ └── recipe.toml
│ ├── artwork/
│ │ ├── pop-wallpapers/
│ │ │ └── recipe.toml
│ │ └── ubuntu-wallpapers/
│ │ └── recipe.toml
│ ├── core/
│ │ ├── base/
│ │ │ └── recipe.toml
│ │ ├── base-initfs/
│ │ │ └── recipe.toml
│ │ ├── binutils/
│ │ │ └── recipe.toml
│ │ ├── bootloader/
│ │ │ └── recipe.toml
│ │ ├── contain/
│ │ │ └── recipe.toml
│ │ ├── coreutils/
│ │ │ └── recipe.toml
│ │ ├── dash/
│ │ │ └── recipe.toml
│ │ ├── extrautils/
│ │ │ └── recipe.toml
│ │ ├── findutils/
│ │ │ └── recipe.toml
│ │ ├── installer/
│ │ │ └── recipe.toml
│ │ ├── ion/
│ │ │ └── recipe.toml
│ │ ├── kernel/
│ │ │ └── recipe.toml
│ │ ├── netdb/
│ │ │ └── recipe.toml
│ │ ├── netutils/
│ │ │ └── recipe.toml
│ │ ├── pkgar/
│ │ │ └── recipe.toml
│ │ ├── pkgutils/
│ │ │ └── recipe.toml
│ │ ├── profiled/
│ │ │ └── recipe.toml
│ │ ├── redoxfs/
│ │ │ └── recipe.toml
│ │ ├── relibc/
│ │ │ └── recipe.toml
│ │ ├── strace/
│ │ │ └── recipe.toml
│ │ ├── userutils/
│ │ │ └── recipe.toml
│ │ └── uutils/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── demos/
│ │ ├── cairo-demo/
│ │ │ ├── cairo-demo.c
│ │ │ └── recipe.toml
│ │ ├── cmatrix/
│ │ │ └── recipe.toml
│ │ ├── cpal/
│ │ │ └── recipe.toml
│ │ ├── dynamic-example/
│ │ │ └── recipe.toml
│ │ ├── exampled/
│ │ │ └── recipe.toml
│ │ ├── gears/
│ │ │ ├── gears.c
│ │ │ └── recipe.toml
│ │ ├── glutin/
│ │ │ └── recipe.toml
│ │ ├── iced/
│ │ │ └── recipe.toml
│ │ ├── orbclient/
│ │ │ └── recipe.toml
│ │ ├── osdemo/
│ │ │ ├── osdemo.c
│ │ │ └── recipe.toml
│ │ ├── pixelcannon/
│ │ │ └── recipe.toml
│ │ ├── sdl2-gears/
│ │ │ ├── gears.c
│ │ │ └── recipe.toml
│ │ └── winit/
│ │ └── recipe.toml
│ ├── dev/
│ │ ├── autoconf/
│ │ │ └── recipe.toml
│ │ ├── automake/
│ │ │ └── recipe.toml
│ │ ├── binutils-gdb/
│ │ │ └── recipe.toml
│ │ ├── clang21/
│ │ │ └── recipe.toml
│ │ ├── cmake/
│ │ │ └── recipe.toml
│ │ ├── composer/
│ │ │ └── recipe.toml
│ │ ├── crates-io-index/
│ │ │ └── recipe.toml
│ │ ├── fontconfig/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── gcc13/
│ │ │ └── recipe.toml
│ │ ├── gdbserver/
│ │ │ └── recipe.toml
│ │ ├── gdk-pixbuf/
│ │ │ └── recipe.toml
│ │ ├── git/
│ │ │ ├── git.patch
│ │ │ └── recipe.toml
│ │ ├── gitoxide/
│ │ │ └── recipe.toml
│ │ ├── gnu-make/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── hello-world-examples/
│ │ │ └── recipe.toml
│ │ ├── jq/
│ │ │ └── recipe.toml
│ │ ├── lang/
│ │ │ └── gawk/
│ │ │ └── recipe.toml
│ │ ├── lci/
│ │ │ └── recipe.toml
│ │ ├── libtool/
│ │ │ └── recipe.toml
│ │ ├── lld21/
│ │ │ └── recipe.toml
│ │ ├── llvm18/
│ │ │ ├── native.cmake
│ │ │ └── recipe.toml
│ │ ├── llvm21/
│ │ │ ├── native.cmake
│ │ │ └── recipe.toml
│ │ ├── lua54/
│ │ │ └── recipe.toml
│ │ ├── luajit/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── luarocks/
│ │ │ └── recipe.toml
│ │ ├── nasm/
│ │ │ └── recipe.toml
│ │ ├── patch/
│ │ │ ├── 01_no_rlimit.patch
│ │ │ ├── 02_no_chown.patch
│ │ │ ├── 03_renameat2.patch
│ │ │ └── recipe.toml
│ │ ├── pciids/
│ │ │ └── recipe.toml
│ │ ├── php84/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── pkg-config/
│ │ │ └── recipe.toml
│ │ ├── python312/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── redoxer/
│ │ │ └── recipe.toml
│ │ ├── rust/
│ │ │ ├── .gitignore
│ │ │ ├── config-bootstrap.toml
│ │ │ ├── config.toml
│ │ │ └── recipe.toml
│ │ └── rustpython/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── doc/
│ │ └── book/
│ │ └── recipe.toml
│ ├── emulators/
│ │ ├── dosbox/
│ │ │ ├── 01_redox.patch
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── flycast/
│ │ │ └── recipe.toml
│ │ ├── libretro-super/
│ │ │ └── recipe.toml
│ │ ├── mednafen/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── mgba/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── retroarch/
│ │ │ └── recipe.toml
│ │ ├── rs-nes/
│ │ │ └── recipe.toml
│ │ ├── rust64/
│ │ │ └── recipe.toml
│ │ ├── rustual-boy/
│ │ │ └── recipe.toml
│ │ ├── rvvm/
│ │ │ └── recipe.toml
│ │ └── scummvm/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── files/
│ │ └── hf/
│ │ └── recipe.toml
│ ├── fonts/
│ │ ├── dejavu/
│ │ │ └── recipe.toml
│ │ ├── freefont/
│ │ │ └── recipe.toml
│ │ ├── ibm-plex/
│ │ │ └── recipe.toml
│ │ ├── intel-one-mono/
│ │ │ └── recipe.toml
│ │ ├── noto-color-emoji/
│ │ │ └── recipe.toml
│ │ └── ttf-hack/
│ │ └── recipe.toml
│ ├── games/
│ │ ├── classicube/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── devilutionx/
│ │ │ └── recipe.toml
│ │ ├── eduke32/
│ │ │ ├── manifest
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── freeciv/
│ │ │ └── recipe.toml
│ │ ├── freedoom/
│ │ │ └── recipe.toml
│ │ ├── game-2048/
│ │ │ └── recipe.toml
│ │ ├── gigalomania/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── hematite/
│ │ │ └── recipe.toml
│ │ ├── neverball/
│ │ │ ├── manifest-neverball
│ │ │ ├── manifest-neverputt
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── neverball-sols/
│ │ │ └── recipe.toml
│ │ ├── openjazz/
│ │ │ └── recipe.toml
│ │ ├── openjk/
│ │ │ └── recipe.toml
│ │ ├── openttd/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── openttd-opengfx/
│ │ │ └── recipe.toml
│ │ ├── openttd-openmsx/
│ │ │ └── recipe.toml
│ │ ├── openttd-opensfx/
│ │ │ └── recipe.toml
│ │ ├── opentyrian/
│ │ │ ├── manifest
│ │ │ ├── recipe.toml
│ │ │ ├── redox.patch
│ │ │ └── tyrian21.zip.sha
│ │ ├── prboom/
│ │ │ ├── 01_redox.patch
│ │ │ └── recipe.toml
│ │ ├── quakespasm/
│ │ │ ├── manifest
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── redox-games/
│ │ │ └── recipe.toml
│ │ ├── sm64ex/
│ │ │ ├── .gitignore
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── sopwith/
│ │ │ └── recipe.toml
│ │ └── spacecadetpinball/
│ │ └── recipe.toml
│ ├── graphics/
│ │ └── procedural-wallpapers-rs/
│ │ └── recipe.toml
│ ├── groups/
│ │ ├── auto-test/
│ │ │ ├── auto-test.ion
│ │ │ └── recipe.toml
│ │ ├── demo/
│ │ │ └── recipe.toml
│ │ ├── desktop/
│ │ │ └── recipe.toml
│ │ ├── dev-essential/
│ │ │ └── recipe.toml
│ │ ├── dev-redox/
│ │ │ └── recipe.toml
│ │ ├── llvm21-common/
│ │ │ └── recipe.toml
│ │ ├── mate-common/
│ │ │ └── recipe.toml
│ │ ├── redox-tests/
│ │ │ └── recipe.toml
│ │ ├── server/
│ │ │ └── recipe.toml
│ │ ├── sys/
│ │ │ └── recipe.toml
│ │ ├── sys-gui/
│ │ │ └── recipe.toml
│ │ ├── x11-full/
│ │ │ └── recipe.toml
│ │ └── x11-minimal/
│ │ └── recipe.toml
│ ├── gui/
│ │ ├── installer-gui/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── orbdata/
│ │ │ └── recipe.toml
│ │ ├── orbital/
│ │ │ └── recipe.toml
│ │ ├── orbterm/
│ │ │ └── recipe.toml
│ │ ├── orbutils/
│ │ │ └── recipe.toml
│ │ └── orbutils-background/
│ │ └── recipe.toml
│ ├── icons/
│ │ ├── cosmic-icons/
│ │ │ └── recipe.toml
│ │ ├── hicolor-icon-theme/
│ │ │ └── recipe.toml
│ │ └── pop-icon-theme/
│ │ └── recipe.toml
│ ├── libs/
│ │ ├── atk/
│ │ │ └── recipe.toml
│ │ ├── cairo/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── duktape/
│ │ │ └── recipe.toml
│ │ ├── expat/
│ │ │ └── recipe.toml
│ │ ├── ffmpeg6/
│ │ │ ├── binutils-2.41.patch
│ │ │ ├── ffmpeg.patch
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── freetype2/
│ │ │ └── recipe.toml
│ │ ├── fribidi/
│ │ │ └── recipe.toml
│ │ ├── glib/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── gstreamer/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── harfbuzz/
│ │ │ └── recipe.toml
│ │ ├── jansson/
│ │ │ ├── jansson.patch
│ │ │ └── recipe.toml
│ │ ├── libarchive/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── libatomic/
│ │ │ └── recipe.toml
│ │ ├── libcosmic/
│ │ │ └── recipe.toml
│ │ ├── libffi/
│ │ │ └── recipe.toml
│ │ ├── libflac/
│ │ │ └── recipe.toml
│ │ ├── libgcc/
│ │ │ └── recipe.toml
│ │ ├── libgmp/
│ │ │ └── recipe.toml
│ │ ├── libiconv/
│ │ │ ├── 01_redox.patch
│ │ │ └── recipe.toml
│ │ ├── libjpeg/
│ │ │ └── recipe.toml
│ │ ├── libmodplug1/
│ │ │ └── recipe.toml
│ │ ├── libmpfr/
│ │ │ └── recipe.toml
│ │ ├── libnettle/
│ │ │ └── recipe.toml
│ │ ├── libogg/
│ │ │ └── recipe.toml
│ │ ├── libopus/
│ │ │ └── recipe.toml
│ │ ├── liborbital/
│ │ │ └── recipe.toml
│ │ ├── libpng/
│ │ │ └── recipe.toml
│ │ ├── libpsl/
│ │ │ └── recipe.toml
│ │ ├── libsodium/
│ │ │ └── recipe.toml
│ │ ├── libssh2/
│ │ │ └── recipe.toml
│ │ ├── libstdcxx/
│ │ │ └── recipe.toml
│ │ ├── libstdcxx-v3/
│ │ │ └── recipe.toml
│ │ ├── liburcu/
│ │ │ ├── 0001-Fix-compilation-on-Redox-OS.patch
│ │ │ └── recipe.toml
│ │ ├── libuv/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── libvorbis/
│ │ │ └── recipe.toml
│ │ ├── libxml2/
│ │ │ └── recipe.toml
│ │ ├── lua-compat-53/
│ │ │ └── recipe.toml
│ │ ├── luv/
│ │ │ └── recipe.toml
│ │ ├── mesa/
│ │ │ └── recipe.toml
│ │ ├── mesa-glu/
│ │ │ └── recipe.toml
│ │ ├── mpc/
│ │ │ └── recipe.toml
│ │ ├── ncurses/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── ncursesw/
│ │ │ └── recipe.toml
│ │ ├── nghttp2/
│ │ │ └── recipe.toml
│ │ ├── openssl1/
│ │ │ └── recipe.toml
│ │ ├── opusfile/
│ │ │ └── recipe.toml
│ │ ├── pango/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── pcre/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── pcre2/
│ │ │ └── recipe.toml
│ │ ├── pixman/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── readline/
│ │ │ └── recipe.toml
│ │ ├── redox-fatfs/
│ │ │ └── recipe.toml
│ │ ├── sdl-gfx/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl1/
│ │ │ └── recipe.toml
│ │ ├── sdl1-image/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl1-mixer/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl1-ttf/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl2/
│ │ │ └── recipe.toml
│ │ ├── sdl2-gfx/
│ │ │ └── recipe.toml
│ │ ├── sdl2-image/
│ │ │ └── recipe.toml
│ │ ├── sdl2-mixer/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sdl2-ttf/
│ │ │ └── recipe.toml
│ │ ├── termcap/
│ │ │ └── recipe.toml
│ │ ├── unibilium/
│ │ │ └── recipe.toml
│ │ ├── utf8proc/
│ │ │ └── recipe.toml
│ │ └── zlib/
│ │ └── recipe.toml
│ ├── math/
│ │ └── orbcalculator/
│ │ └── recipe.toml
│ ├── net/
│ │ ├── download/
│ │ │ ├── curl/
│ │ │ │ └── recipe.toml
│ │ │ └── wget/
│ │ │ └── recipe.toml
│ │ ├── http/
│ │ │ └── simple-http-server/
│ │ │ └── recipe.toml
│ │ ├── nginx/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── openssh/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── redox-ssh/
│ │ │ └── recipe.toml
│ │ └── rsync/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── other/
│ │ ├── ca-certificates/
│ │ │ └── recipe.toml
│ │ ├── cookbook/
│ │ │ └── recipe.toml
│ │ ├── generaluser-gs/
│ │ │ └── recipe.toml
│ │ ├── jeremy/
│ │ │ └── recipe.toml
│ │ ├── myfiles/
│ │ │ └── recipe.toml
│ │ ├── rustconf2025/
│ │ │ └── recipe.toml
│ │ ├── shared-mime-info/
│ │ │ └── recipe.toml
│ │ └── terminfo/
│ │ └── recipe.toml
│ ├── shells/
│ │ ├── bash/
│ │ │ ├── etc/
│ │ │ │ ├── bash.bashrc
│ │ │ │ ├── profile
│ │ │ │ └── skel/
│ │ │ │ ├── .bashrc
│ │ │ │ └── .profile
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── nushell/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── sound/
│ │ ├── freepats/
│ │ │ └── recipe.toml
│ │ ├── rodioplay/
│ │ │ └── recipe.toml
│ │ └── timidity/
│ │ └── recipe.toml
│ ├── terminal/
│ │ ├── bash-completion/
│ │ │ └── recipe.toml
│ │ ├── pls/
│ │ │ └── recipe.toml
│ │ └── zoxide/
│ │ └── recipe.toml
│ ├── tests/
│ │ ├── acid/
│ │ │ └── recipe.toml
│ │ ├── acid-bins/
│ │ │ └── recipe.toml
│ │ ├── benchmarks/
│ │ │ └── recipe.toml
│ │ ├── hello-redox/
│ │ │ ├── files/
│ │ │ │ ├── test.c
│ │ │ │ ├── test.cpp
│ │ │ │ ├── test.go
│ │ │ │ ├── test.java
│ │ │ │ ├── test.js
│ │ │ │ ├── test.lua
│ │ │ │ ├── test.py
│ │ │ │ ├── test.rs
│ │ │ │ └── test.zig
│ │ │ └── recipe.toml
│ │ ├── iperf3/
│ │ │ └── recipe.toml
│ │ ├── openposixtestsuite/
│ │ │ └── recipe.toml
│ │ ├── os-test/
│ │ │ └── recipe.toml
│ │ ├── os-test-bins/
│ │ │ └── recipe.toml
│ │ ├── os-test-result/
│ │ │ └── recipe.toml
│ │ ├── redox-posix-tests/
│ │ │ └── recipe.toml
│ │ ├── relibc-tests/
│ │ │ └── recipe.toml
│ │ ├── relibc-tests-bins/
│ │ │ └── recipe.toml
│ │ ├── schedrs/
│ │ │ └── recipe.toml
│ │ ├── sysbench/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── vttest/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── tools/
│ │ ├── bzip2/
│ │ │ ├── pkgconfig
│ │ │ └── recipe.toml
│ │ ├── cleye/
│ │ │ └── recipe.toml
│ │ ├── cosmic-edit/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── cosmic-files/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── cosmic-reader/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── cosmic-settings/
│ │ │ └── recipe.toml
│ │ ├── cosmic-store/
│ │ │ └── recipe.toml
│ │ ├── cosmic-term/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── cosmic-text/
│ │ │ └── recipe.toml
│ │ ├── diffutils/
│ │ │ ├── diffutils.patch
│ │ │ └── recipe.toml
│ │ ├── fd/
│ │ │ └── recipe.toml
│ │ ├── file/
│ │ │ └── recipe.toml
│ │ ├── friar/
│ │ │ └── recipe.toml
│ │ ├── gettext/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── gnu-binutils/
│ │ │ ├── 01_build_fix.patch
│ │ │ └── recipe.toml
│ │ ├── gnu-grep/
│ │ │ ├── grep.patch
│ │ │ └── recipe.toml
│ │ ├── helix/
│ │ │ └── recipe.toml
│ │ ├── libc-bench/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── lsd/
│ │ │ └── recipe.toml
│ │ ├── nano/
│ │ │ └── recipe.toml
│ │ ├── onefetch/
│ │ │ └── recipe.toml
│ │ ├── patchelf/
│ │ │ └── recipe.toml
│ │ ├── pathfinder/
│ │ │ └── recipe.toml
│ │ ├── perg/
│ │ │ └── recipe.toml
│ │ ├── periodictable/
│ │ │ └── recipe.toml
│ │ ├── powerline/
│ │ │ └── recipe.toml
│ │ ├── ripgrep/
│ │ │ └── recipe.toml
│ │ ├── schismtracker/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── sed/
│ │ │ ├── recipe.toml
│ │ │ └── sed.patch
│ │ ├── shellharden/
│ │ │ └── recipe.toml
│ │ ├── shellstorm/
│ │ │ └── recipe.toml
│ │ ├── smith/
│ │ │ └── recipe.toml
│ │ ├── sodium/
│ │ │ └── recipe.toml
│ │ ├── tokei/
│ │ │ └── recipe.toml
│ │ ├── twin-commander/
│ │ │ └── recipe.toml
│ │ ├── vim/
│ │ │ ├── recipe.toml
│ │ │ └── vim.patch
│ │ └── xz/
│ │ └── recipe.toml
│ ├── tui/
│ │ ├── goaccess/
│ │ │ ├── recipe.toml
│ │ │ ├── redox1.patch
│ │ │ └── redox2.patch
│ │ ├── mdp/
│ │ │ └── recipe.toml
│ │ └── ncdu/
│ │ └── recipe.toml
│ ├── video/
│ │ └── sdl-player/
│ │ └── recipe.toml
│ ├── web/
│ │ ├── netsurf/
│ │ │ ├── 01_redox.patch
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ └── website/
│ │ └── recipe.toml
│ └── wip/
│ ├── a11y/
│ │ ├── espeak-ng/
│ │ │ └── recipe.toml
│ │ └── orca/
│ │ └── recipe.toml
│ ├── ai/
│ │ ├── nnx/
│ │ │ └── recipe.toml
│ │ ├── rustgpt/
│ │ │ └── recipe.toml
│ │ └── tgs/
│ │ └── recipe.toml
│ ├── analysis/
│ │ ├── binsider/
│ │ │ └── recipe.toml
│ │ ├── cutter/
│ │ │ └── recipe.toml
│ │ ├── email-sleuth/
│ │ │ └── recipe.toml
│ │ ├── flowgger/
│ │ │ └── recipe.toml
│ │ ├── graphs/
│ │ │ └── recipe.toml
│ │ ├── mmdr/
│ │ │ └── recipe.toml
│ │ ├── netdata/
│ │ │ └── recipe.toml
│ │ ├── rizin/
│ │ │ └── recipe.toml
│ │ └── tmmpr/
│ │ └── recipe.toml
│ ├── archives/
│ │ ├── 7-zip/
│ │ │ └── recipe.toml
│ │ ├── lzip/
│ │ │ └── recipe.toml
│ │ ├── mlar/
│ │ │ └── recipe.toml
│ │ ├── orz/
│ │ │ └── recipe.toml
│ │ ├── ouch/
│ │ │ └── recipe.toml
│ │ ├── plzip/
│ │ │ └── recipe.toml
│ │ └── unzrip/
│ │ └── recipe.toml
│ ├── backup/
│ │ ├── borg/
│ │ │ └── recipe.toml
│ │ ├── partclone/
│ │ │ └── recipe.toml
│ │ ├── pika-backup/
│ │ │ └── recipe.toml
│ │ └── vorta/
│ │ └── recipe.toml
│ ├── bench/
│ │ ├── cargo/
│ │ │ ├── cargo-benchcmp/
│ │ │ │ └── recipe.toml
│ │ │ └── cargo-criterion/
│ │ │ └── recipe.toml
│ │ ├── dacapo-benchmarks/
│ │ │ └── recipe.toml
│ │ ├── hpc/
│ │ │ ├── hpcc/
│ │ │ │ └── recipe.toml
│ │ │ ├── hpcg/
│ │ │ │ └── recipe.toml
│ │ │ └── minibude/
│ │ │ └── recipe.toml
│ │ ├── hyperfine/
│ │ │ └── recipe.toml
│ │ ├── io/
│ │ │ ├── blogbench/
│ │ │ │ └── recipe.toml
│ │ │ ├── fio/
│ │ │ │ └── recipe.toml
│ │ │ └── simple-disk-benchmark/
│ │ │ └── recipe.toml
│ │ ├── jasonisnthappy/
│ │ │ └── recipe.toml
│ │ ├── rodinia/
│ │ │ └── recipe.toml
│ │ ├── rpc-perf/
│ │ │ └── recipe.toml
│ │ ├── stress-ng/
│ │ │ └── recipe.toml
│ │ └── suite/
│ │ └── pts/
│ │ └── recipe.toml
│ ├── codecs/
│ │ ├── dav1d/
│ │ │ └── recipe.toml
│ │ ├── faad2/
│ │ │ └── recipe.toml
│ │ ├── kvazaar/
│ │ │ └── recipe.toml
│ │ ├── rav1e/
│ │ │ └── recipe.toml
│ │ ├── svt-av1/
│ │ │ └── recipe.toml
│ │ ├── svt-hevc/
│ │ │ └── recipe.toml
│ │ ├── svt-vp9/
│ │ │ └── recipe.toml
│ │ ├── uvg266/
│ │ │ └── recipe.toml
│ │ ├── vvenc/
│ │ │ └── recipe.toml
│ │ ├── wavpack/
│ │ │ └── recipe.toml
│ │ ├── x264/
│ │ │ └── recipe.toml
│ │ └── x265/
│ │ └── recipe.toml
│ ├── containers/
│ │ ├── crun/
│ │ │ └── recipe.toml
│ │ ├── crun-vm/
│ │ │ └── recipe.toml
│ │ ├── docker/
│ │ │ └── recipe.toml
│ │ ├── podman/
│ │ │ └── recipe.toml
│ │ ├── skopeo/
│ │ │ └── recipe.toml
│ │ └── youki/
│ │ └── recipe.toml
│ ├── crypto/
│ │ ├── data2sound/
│ │ │ └── recipe.toml
│ │ ├── decoder/
│ │ │ └── recipe.toml
│ │ ├── morse2sound/
│ │ │ └── recipe.toml
│ │ ├── qrrs/
│ │ │ └── recipe.toml
│ │ ├── qrscan/
│ │ │ └── recipe.toml
│ │ ├── qrtool/
│ │ │ └── recipe.toml
│ │ ├── steg86/
│ │ │ └── recipe.toml
│ │ └── stupidfs/
│ │ └── recipe.toml
│ ├── data/
│ │ └── poppler-data/
│ │ └── recipe.toml
│ ├── data-integrity/
│ │ ├── b3sum/
│ │ │ └── recipe.toml
│ │ ├── fim/
│ │ │ └── recipe.toml
│ │ ├── hashgood/
│ │ │ └── recipe.toml
│ │ └── rapidhash/
│ │ └── recipe.toml
│ ├── data-recovery/
│ │ ├── ddrescue/
│ │ │ └── recipe.toml
│ │ ├── foremost/
│ │ │ └── recipe.toml
│ │ └── testdisk/
│ │ └── recipe.toml
│ ├── db/
│ │ ├── bobby/
│ │ │ └── recipe.toml
│ │ ├── clickhouse/
│ │ │ └── recipe.toml
│ │ ├── cockroachdb/
│ │ │ └── recipe.toml
│ │ ├── gobang/
│ │ │ └── recipe.toml
│ │ ├── influxdb/
│ │ │ └── recipe.toml
│ │ ├── iotdb/
│ │ │ └── recipe.toml
│ │ ├── jdbrowser/
│ │ │ └── recipe.toml
│ │ ├── limbo/
│ │ │ └── recipe.toml
│ │ ├── mariadb/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── mariadb-lts/
│ │ │ └── recipe.toml
│ │ ├── memcached/
│ │ │ └── recipe.toml
│ │ ├── mongodb6/
│ │ │ └── recipe.toml
│ │ ├── mongodb7/
│ │ │ └── recipe.toml
│ │ ├── mysql-server/
│ │ │ └── recipe.toml
│ │ ├── mysql-shell/
│ │ │ └── recipe.toml
│ │ ├── pgtui/
│ │ │ └── recipe.toml
│ │ ├── postgresql16/
│ │ │ └── recipe.toml
│ │ ├── postgresql18/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── rainfrog/
│ │ │ └── recipe.toml
│ │ ├── rocksdb/
│ │ │ └── recipe.toml
│ │ ├── skytable/
│ │ │ └── recipe.toml
│ │ ├── sqlite3/
│ │ │ └── recipe.toml
│ │ ├── sqllogictest/
│ │ │ └── recipe.toml
│ │ ├── stoolap/
│ │ │ └── recipe.toml
│ │ ├── tidb-server/
│ │ │ └── recipe.toml
│ │ ├── tsql/
│ │ │ └── recipe.toml
│ │ └── valkey/
│ │ └── recipe.toml
│ ├── demos/
│ │ ├── albedo/
│ │ │ └── recipe.toml
│ │ ├── appcui/
│ │ │ └── recipe.toml
│ │ ├── avian/
│ │ │ └── recipe.toml
│ │ ├── avt/
│ │ │ └── recipe.toml
│ │ ├── bevy/
│ │ │ └── recipe.toml
│ │ ├── blade/
│ │ │ └── recipe.toml
│ │ ├── blitz/
│ │ │ └── recipe.toml
│ │ ├── blockish/
│ │ │ └── recipe.toml
│ │ ├── blockishfire/
│ │ │ └── recipe.toml
│ │ ├── blue-engine/
│ │ │ └── recipe.toml
│ │ ├── bones/
│ │ │ └── recipe.toml
│ │ ├── colored/
│ │ │ └── recipe.toml
│ │ ├── comfy/
│ │ │ └── recipe.toml
│ │ ├── console-rs/
│ │ │ └── recipe.toml
│ │ ├── contrast-renderer/
│ │ │ └── recipe.toml
│ │ ├── cubecl/
│ │ │ └── recipe.toml
│ │ ├── dioxus-examples/
│ │ │ └── recipe.toml
│ │ ├── doomfire/
│ │ │ └── recipe.toml
│ │ ├── egui/
│ │ │ └── recipe.toml
│ │ ├── euc/
│ │ │ └── recipe.toml
│ │ ├── feoxdb/
│ │ │ └── recipe.toml
│ │ ├── ferris-says/
│ │ │ └── recipe.toml
│ │ ├── firewheel/
│ │ │ └── recipe.toml
│ │ ├── firework-rs/
│ │ │ └── recipe.toml
│ │ ├── fonterator/
│ │ │ └── recipe.toml
│ │ ├── fractal-rs/
│ │ │ └── recipe.toml
│ │ ├── freya/
│ │ │ └── recipe.toml
│ │ ├── fundsp/
│ │ │ └── recipe.toml
│ │ ├── funutd/
│ │ │ └── recipe.toml
│ │ ├── fyrox/
│ │ │ └── recipe.toml
│ │ ├── genpdf-rs/
│ │ │ └── recipe.toml
│ │ ├── gfx-shader-watch/
│ │ │ └── recipe.toml
│ │ ├── ggez/
│ │ │ └── recipe.toml
│ │ ├── globe-rs/
│ │ │ └── recipe.toml
│ │ ├── hotline/
│ │ │ └── recipe.toml
│ │ ├── iced-7guis/
│ │ │ └── recipe.toml
│ │ ├── if-watch/
│ │ │ └── recipe.toml
│ │ ├── imgui-examples/
│ │ │ └── recipe.toml
│ │ ├── iocraft/
│ │ │ └── recipe.toml
│ │ ├── kira/
│ │ │ └── recipe.toml
│ │ ├── kiss3d/
│ │ │ └── recipe.toml
│ │ ├── lenia/
│ │ │ └── recipe.toml
│ │ ├── macroquad/
│ │ │ └── recipe.toml
│ │ ├── mage/
│ │ │ └── recipe.toml
│ │ ├── mesa-demos/
│ │ │ └── recipe.toml
│ │ ├── mousefood/
│ │ │ └── recipe.toml
│ │ ├── nibble/
│ │ │ └── recipe.toml
│ │ ├── notan/
│ │ │ └── recipe.toml
│ │ ├── pingora/
│ │ │ └── recipe.toml
│ │ ├── pipes-rs/
│ │ │ └── recipe.toml
│ │ ├── piston/
│ │ │ └── recipe.toml
│ │ ├── pix-engine/
│ │ │ └── recipe.toml
│ │ ├── pixels/
│ │ │ └── recipe.toml
│ │ ├── raclettui/
│ │ │ └── recipe.toml
│ │ ├── rain/
│ │ │ └── recipe.toml
│ │ ├── rapier/
│ │ │ └── recipe.toml
│ │ ├── ratatui/
│ │ │ └── recipe.toml
│ │ ├── ratatui-hypertile/
│ │ │ └── recipe.toml
│ │ ├── ratzilla/
│ │ │ └── recipe.toml
│ │ ├── rend3/
│ │ │ └── recipe.toml
│ │ ├── renderling/
│ │ │ └── recipe.toml
│ │ ├── reticulum-rs/
│ │ │ └── recipe.toml
│ │ ├── rootvg/
│ │ │ └── recipe.toml
│ │ ├── rpt/
│ │ │ └── recipe.toml
│ │ ├── rsille/
│ │ │ └── recipe.toml
│ │ ├── rui/
│ │ │ └── recipe.toml
│ │ ├── ruscii/
│ │ │ └── recipe.toml
│ │ ├── rust-cairo/
│ │ │ └── recipe.sh
│ │ ├── rust-cairo-demo/
│ │ │ └── recipe.sh
│ │ ├── rustubble/
│ │ │ └── recipe.toml
│ │ ├── rustui/
│ │ │ └── recipe.toml
│ │ ├── rusty-rain/
│ │ │ └── recipe.toml
│ │ ├── servo-gtk/
│ │ │ └── recipe.toml
│ │ ├── simdjson-rs/
│ │ │ └── recipe.toml
│ │ ├── slint/
│ │ │ └── recipe.toml
│ │ ├── soft-ratatui/
│ │ │ └── recipe.toml
│ │ ├── speedy2d/
│ │ │ └── recipe.toml
│ │ ├── spinners/
│ │ │ └── recipe.toml
│ │ ├── spinoff/
│ │ │ └── recipe.toml
│ │ ├── tachyonfx/
│ │ │ └── recipe.toml
│ │ ├── taffy/
│ │ │ └── recipe.toml
│ │ ├── tenki/
│ │ │ └── recipe.toml
│ │ ├── termtree/
│ │ │ └── recipe.toml
│ │ ├── ternimal/
│ │ │ └── recipe.toml
│ │ ├── terra/
│ │ │ └── recipe.toml
│ │ ├── three-d/
│ │ │ └── recipe.toml
│ │ ├── tquic/
│ │ │ └── recipe.toml
│ │ ├── uniocr/
│ │ │ └── recipe.toml
│ │ ├── usfx/
│ │ │ └── recipe.toml
│ │ ├── vizia/
│ │ │ └── recipe.toml
│ │ ├── wavy/
│ │ │ └── recipe.toml
│ │ ├── wgpu-sky-rendering/
│ │ │ └── recipe.toml
│ │ ├── xaos/
│ │ │ └── recipe.toml
│ │ └── xilem/
│ │ └── recipe.toml
│ ├── dev/
│ │ ├── analysis/
│ │ │ ├── binocle/
│ │ │ │ └── recipe.toml
│ │ │ ├── binwalk/
│ │ │ │ └── recipe.toml
│ │ │ ├── code-minimap/
│ │ │ │ └── recipe.toml
│ │ │ ├── codevis/
│ │ │ │ └── recipe.toml
│ │ │ ├── debtmap/
│ │ │ │ └── recipe.toml
│ │ │ ├── feluda/
│ │ │ │ └── recipe.toml
│ │ │ ├── hex/
│ │ │ │ └── recipe.toml
│ │ │ ├── hgrep/
│ │ │ │ └── recipe.toml
│ │ │ ├── hl/
│ │ │ │ └── recipe.toml
│ │ │ ├── honggfuzz-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── hx/
│ │ │ │ └── recipe.toml
│ │ │ ├── pratdiff/
│ │ │ │ └── recipe.toml
│ │ │ ├── statui/
│ │ │ │ └── recipe.toml
│ │ │ ├── tinywatcher/
│ │ │ │ └── recipe.toml
│ │ │ └── zizmor/
│ │ │ └── recipe.toml
│ │ ├── blockchain/
│ │ │ ├── foundry/
│ │ │ │ └── recipe.toml
│ │ │ ├── geth/
│ │ │ │ └── recipe.toml
│ │ │ ├── solidity/
│ │ │ │ └── recipe.toml
│ │ │ └── surfpool/
│ │ │ └── recipe.toml
│ │ ├── build-system/
│ │ │ ├── ant/
│ │ │ │ └── recipe.toml
│ │ │ ├── ccache/
│ │ │ │ └── recipe.toml
│ │ │ ├── hadrian/
│ │ │ │ └── recipe.toml
│ │ │ ├── just/
│ │ │ │ └── recipe.toml
│ │ │ ├── lux/
│ │ │ │ └── recipe.toml
│ │ │ ├── meson/
│ │ │ │ └── recipe.toml
│ │ │ ├── ninja-build/
│ │ │ │ └── recipe.toml
│ │ │ ├── sbt/
│ │ │ │ └── recipe.toml
│ │ │ ├── scala-cli/
│ │ │ │ └── recipe.toml
│ │ │ └── werk/
│ │ │ └── recipe.toml
│ │ ├── cargo-tools/
│ │ │ ├── cargo-about/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-all-features/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-attribution/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-audit/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-auditable/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-auto/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-autodd/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-binutils/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-bloat/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-c/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-cache/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-careful/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-check-deadlock/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-checkmate/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-clone/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-clone-crate/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-compete/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-component/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-crev/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-deny/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-depsize/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-derivefmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-diet/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-dist/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-docs/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-docs-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-duplicates/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-edit/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-equip/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-expand/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-featalign/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-feature/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-feature-combinations/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-files/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-fixture/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-ft/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-fuzz/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-gc/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-geiger/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-generate/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-get/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-goggles/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-guppy/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-hack/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-hackerman/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-hakari/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-http-registry/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-info/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-lambda/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-leet/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-leptos/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-license/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-limit/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-list/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-llvm-cov/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-llvm-lines/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-loc/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-lockup/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-machete/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-make/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-modules/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-msrv/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-multivers/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-mutants/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-nextest/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-outofdate/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-packager/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-patch/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-preflight/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-public-api/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-px/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-qtest/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-rdme/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-release/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-remark/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-run-bin/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-scaffold/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-selector/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-semver-checks/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-shear/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-show-asm/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-single-line/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-smart-release/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-spellcheck/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-subspace/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-supply-chain/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-sweep/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-sync-rdme/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-tally/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-tarpaulin/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-temp/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-trend/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-trim/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-udeps/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-ui/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-unfmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-unmaintained/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-update/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-vendor-filterer/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-vet/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-wasi/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-wasix/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-watch/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-whatfeatures/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-wizard/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-workspace-version/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-workspaces/
│ │ │ │ └── recipe.toml
│ │ │ ├── cargo-zigbuild/
│ │ │ │ └── recipe.toml
│ │ │ ├── carwash/
│ │ │ │ └── recipe.toml
│ │ │ └── crunch/
│ │ │ └── recipe.toml
│ │ ├── debug/
│ │ │ ├── dr-memory/
│ │ │ │ └── recipe.toml
│ │ │ ├── gdb/
│ │ │ │ └── recipe.toml
│ │ │ ├── nnd/
│ │ │ │ └── recipe.toml
│ │ │ ├── rr-debugger/
│ │ │ │ └── recipe.toml
│ │ │ ├── termfu/
│ │ │ │ └── recipe.toml
│ │ │ └── yetty/
│ │ │ └── recipe.toml
│ │ ├── framework/
│ │ │ ├── biome/
│ │ │ │ └── recipe.toml
│ │ │ ├── deno/
│ │ │ │ └── recipe.toml
│ │ │ ├── feather/
│ │ │ │ └── recipe.toml
│ │ │ ├── moonzoon/
│ │ │ │ └── recipe.toml
│ │ │ └── sphere/
│ │ │ └── recipe.toml
│ │ ├── game-engine/
│ │ │ ├── defold-engine/
│ │ │ │ └── recipe.toml
│ │ │ ├── fyrox-template/
│ │ │ │ └── recipe.toml
│ │ │ ├── godot4/
│ │ │ │ └── recipe.toml
│ │ │ └── redot4/
│ │ │ └── recipe.toml
│ │ ├── git-tools/
│ │ │ ├── auto-commit/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-absorb/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-chain/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-cliff/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-grab/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-graph/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-ignore-generator/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-interactive-rebase-tool/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-lfs/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-repo-manager/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-statuses/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-subset/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-tool-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── git-tools-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── gitlogue/
│ │ │ │ └── recipe.toml
│ │ │ ├── gitv/
│ │ │ │ └── recipe.toml
│ │ │ ├── keifu/
│ │ │ │ └── recipe.toml
│ │ │ ├── lazygh/
│ │ │ │ └── recipe.toml
│ │ │ ├── lazygit/
│ │ │ │ └── recipe.toml
│ │ │ ├── oyo/
│ │ │ │ └── recipe.toml
│ │ │ ├── patchy/
│ │ │ │ └── recipe.toml
│ │ │ ├── riff/
│ │ │ │ └── recipe.toml
│ │ │ ├── serie/
│ │ │ │ └── recipe.toml
│ │ │ └── shackle-shell/
│ │ │ └── recipe.toml
│ │ ├── graphics/
│ │ │ ├── bonzomatic/
│ │ │ │ └── recipe.toml
│ │ │ ├── pilka/
│ │ │ │ └── recipe.toml
│ │ │ └── sh4der-jockey/
│ │ │ └── recipe.toml
│ │ ├── hw/
│ │ │ ├── design/
│ │ │ │ └── recipe.toml
│ │ │ ├── librepcb/
│ │ │ │ └── recipe.toml
│ │ │ └── uefitool/
│ │ │ └── recipe.toml
│ │ ├── ide/
│ │ │ ├── asm-lsp/
│ │ │ │ └── recipe.toml
│ │ │ ├── astronvim/
│ │ │ │ └── recipe.toml
│ │ │ └── rust-analyzer/
│ │ │ └── recipe.toml
│ │ ├── lang/
│ │ │ ├── artichoke/
│ │ │ │ └── recipe.toml
│ │ │ ├── blueprint/
│ │ │ │ └── recipe.toml
│ │ │ ├── brimstone/
│ │ │ │ └── recipe.toml
│ │ │ ├── cjit/
│ │ │ │ └── recipe.toml
│ │ │ ├── dotnet8/
│ │ │ │ └── recipe.toml
│ │ │ ├── elixir/
│ │ │ │ └── recipe.toml
│ │ │ ├── elm/
│ │ │ │ └── recipe.toml
│ │ │ ├── erlang/
│ │ │ │ └── recipe.toml
│ │ │ ├── ghc/
│ │ │ │ └── recipe.toml
│ │ │ ├── ghostscript/
│ │ │ │ └── recipe.toml
│ │ │ ├── go/
│ │ │ │ └── recipe.toml
│ │ │ ├── goiaba/
│ │ │ │ └── recipe.toml
│ │ │ ├── java/
│ │ │ │ ├── openjdk11/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── openjdk17/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── openjdk21/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── openjdk8/
│ │ │ │ └── recipe.toml
│ │ │ ├── kotlin/
│ │ │ │ └── recipe.toml
│ │ │ ├── lacc/
│ │ │ │ └── recipe.toml
│ │ │ ├── llvm-mingw/
│ │ │ │ └── recipe.toml
│ │ │ ├── mono/
│ │ │ │ └── recipe.toml
│ │ │ ├── nodejs-21/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── nodejs-24/
│ │ │ │ ├── 01_redox.patch
│ │ │ │ └── recipe.toml
│ │ │ ├── perl5/
│ │ │ │ ├── configure_tool.sh
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox
│ │ │ ├── php80/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── python37/
│ │ │ │ ├── config.site
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── python39/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── rilua/
│ │ │ │ └── recipe.toml
│ │ │ ├── ristretto/
│ │ │ │ └── recipe.toml
│ │ │ ├── ruby/
│ │ │ │ └── recipe.toml
│ │ │ ├── scala/
│ │ │ │ └── recipe.toml
│ │ │ ├── scc/
│ │ │ │ └── recipe.toml
│ │ │ ├── tcc/
│ │ │ │ └── recipe.toml
│ │ │ ├── tsuki/
│ │ │ │ └── recipe.toml
│ │ │ ├── tur/
│ │ │ │ └── recipe.toml
│ │ │ ├── vala/
│ │ │ │ └── recipe.toml
│ │ │ ├── wrecc/
│ │ │ │ └── recipe.toml
│ │ │ ├── xylo/
│ │ │ │ └── recipe.toml
│ │ │ └── zig/
│ │ │ └── recipe.toml
│ │ ├── managers/
│ │ │ ├── moon/
│ │ │ │ └── recipe.toml
│ │ │ ├── proto/
│ │ │ │ └── recipe.toml
│ │ │ └── ratifact/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── abi-cafe/
│ │ │ │ └── recipe.toml
│ │ │ ├── add-determinism/
│ │ │ │ └── recipe.toml
│ │ │ ├── allocscope/
│ │ │ │ └── recipe.toml
│ │ │ ├── alquitran/
│ │ │ │ └── recipe.toml
│ │ │ ├── alt/
│ │ │ │ └── recipe.toml
│ │ │ ├── apitrace/
│ │ │ │ └── recipe.toml
│ │ │ ├── apr/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── apr-util/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── argp-standalone/
│ │ │ │ └── recipe.toml
│ │ │ ├── bender/
│ │ │ │ └── recipe.toml
│ │ │ ├── bison/
│ │ │ │ └── recipe.toml
│ │ │ ├── bite/
│ │ │ │ └── recipe.toml
│ │ │ ├── boon/
│ │ │ │ └── recipe.toml
│ │ │ ├── bugstalker/
│ │ │ │ └── recipe.toml
│ │ │ ├── cackle/
│ │ │ │ └── recipe.toml
│ │ │ ├── capnproto/
│ │ │ │ └── recipe.toml
│ │ │ ├── ccs-tools/
│ │ │ │ └── recipe.toml
│ │ │ ├── charm++/
│ │ │ │ └── recipe.toml
│ │ │ ├── chars/
│ │ │ │ └── recipe.toml
│ │ │ ├── cling/
│ │ │ │ └── recipe.toml
│ │ │ ├── colm/
│ │ │ │ └── recipe.toml
│ │ │ ├── colmena/
│ │ │ │ └── recipe.toml
│ │ │ ├── commit/
│ │ │ │ └── recipe.toml
│ │ │ ├── cppunit/
│ │ │ │ └── recipe.toml
│ │ │ ├── crates-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── criner/
│ │ │ │ └── recipe.toml
│ │ │ ├── crosstool-ng/
│ │ │ │ └── recipe.toml
│ │ │ ├── customasm/
│ │ │ │ └── recipe.toml
│ │ │ ├── debugedit/
│ │ │ │ └── recipe.toml
│ │ │ ├── deploy-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── deps-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── difftastic/
│ │ │ │ └── recipe.toml
│ │ │ ├── dioxus/
│ │ │ │ └── recipe.toml
│ │ │ ├── doxygen/
│ │ │ │ └── recipe.toml
│ │ │ ├── dtool/
│ │ │ │ └── recipe.toml
│ │ │ ├── ecargo/
│ │ │ │ └── recipe.toml
│ │ │ ├── elfshaker/
│ │ │ │ └── recipe.toml
│ │ │ ├── elfutils/
│ │ │ │ └── recipe.toml
│ │ │ ├── espmonitor/
│ │ │ │ └── recipe.toml
│ │ │ ├── eww/
│ │ │ │ └── recipe.toml
│ │ │ ├── fal/
│ │ │ │ └── recipe.toml
│ │ │ ├── fazi/
│ │ │ │ └── recipe.toml
│ │ │ ├── firedbg/
│ │ │ │ └── recipe.toml
│ │ │ ├── flamegraph/
│ │ │ │ └── recipe.toml
│ │ │ ├── flex/
│ │ │ │ └── recipe.toml
│ │ │ ├── gem5/
│ │ │ │ └── recipe.toml
│ │ │ ├── get-blessed/
│ │ │ │ └── recipe.toml
│ │ │ ├── gex/
│ │ │ │ └── recipe.toml
│ │ │ ├── gfold/
│ │ │ │ └── recipe.toml
│ │ │ ├── ghostpdl/
│ │ │ │ └── recipe.toml
│ │ │ ├── gist-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── gitlab-cargo-shim/
│ │ │ │ └── recipe.toml
│ │ │ ├── gperf/
│ │ │ │ └── recipe.toml
│ │ │ ├── grcov/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtest/
│ │ │ │ └── recipe.toml
│ │ │ ├── guile/
│ │ │ │ └── recipe.toml
│ │ │ ├── harper/
│ │ │ │ └── recipe.toml
│ │ │ ├── headers/
│ │ │ │ └── recipe.toml
│ │ │ ├── hexyl/
│ │ │ │ └── recipe.toml
│ │ │ ├── honggfuzz/
│ │ │ │ └── recipe.toml
│ │ │ ├── htmlq/
│ │ │ │ └── recipe.toml
│ │ │ ├── hvm/
│ │ │ │ └── recipe.toml
│ │ │ ├── icemaker/
│ │ │ │ └── recipe.toml
│ │ │ ├── inko/
│ │ │ │ └── recipe.toml
│ │ │ ├── intltool/
│ │ │ │ └── recipe.toml
│ │ │ ├── irust/
│ │ │ │ └── recipe.toml
│ │ │ ├── ispc/
│ │ │ │ └── recipe.toml
│ │ │ ├── jaq/
│ │ │ │ └── recipe.toml
│ │ │ ├── jco/
│ │ │ │ └── recipe.toml
│ │ │ ├── jujutsu/
│ │ │ │ └── recipe.toml
│ │ │ ├── kicad/
│ │ │ │ └── recipe.toml
│ │ │ ├── kickstart/
│ │ │ │ └── recipe.toml
│ │ │ ├── knope/
│ │ │ │ └── recipe.toml
│ │ │ ├── kondo/
│ │ │ │ └── recipe.toml
│ │ │ ├── ktra/
│ │ │ │ └── recipe.toml
│ │ │ ├── lading/
│ │ │ │ └── recipe.toml
│ │ │ ├── leetup/
│ │ │ │ └── recipe.toml
│ │ │ ├── leptosfmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── level-zero/
│ │ │ │ └── recipe.toml
│ │ │ ├── license-generator/
│ │ │ │ └── recipe.toml
│ │ │ ├── licensure/
│ │ │ │ └── recipe.toml
│ │ │ ├── loadlibrary/
│ │ │ │ └── recipe.toml
│ │ │ ├── lockdiff/
│ │ │ │ └── recipe.toml
│ │ │ ├── loco/
│ │ │ │ └── recipe.toml
│ │ │ ├── lttng-ust/
│ │ │ │ └── recipe.toml
│ │ │ ├── lurk/
│ │ │ │ └── recipe.toml
│ │ │ ├── margo/
│ │ │ │ └── recipe.toml
│ │ │ ├── memtest-vulkan/
│ │ │ │ └── recipe.toml
│ │ │ ├── mise/
│ │ │ │ └── recipe.toml
│ │ │ ├── mkrs/
│ │ │ │ └── recipe.toml
│ │ │ ├── mnn/
│ │ │ │ └── recipe.toml
│ │ │ ├── mold/
│ │ │ │ └── recipe.toml
│ │ │ ├── morty/
│ │ │ │ └── recipe.toml
│ │ │ ├── musl-fts/
│ │ │ │ └── recipe.toml
│ │ │ ├── musl-obstack/
│ │ │ │ └── recipe.toml
│ │ │ ├── ncnn/
│ │ │ │ └── recipe.toml
│ │ │ ├── necessist/
│ │ │ │ └── recipe.toml
│ │ │ ├── netradiant/
│ │ │ │ └── recipe.toml
│ │ │ ├── ngspice/
│ │ │ │ └── recipe.toml
│ │ │ ├── not-perf/
│ │ │ │ └── recipe.toml
│ │ │ ├── novops/
│ │ │ │ └── recipe.toml
│ │ │ ├── omni/
│ │ │ │ └── recipe.toml
│ │ │ ├── omnibor-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── opam/
│ │ │ │ └── recipe.toml
│ │ │ ├── opencascade/
│ │ │ │ └── recipe.toml
│ │ │ ├── openradioss/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxc/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxidizer/
│ │ │ │ └── recipe.toml
│ │ │ ├── panamax/
│ │ │ │ └── recipe.toml
│ │ │ ├── phantom-ci/
│ │ │ │ └── recipe.toml
│ │ │ ├── piccolo/
│ │ │ │ └── recipe.toml
│ │ │ ├── pixi/
│ │ │ │ └── recipe.toml
│ │ │ ├── precious/
│ │ │ │ └── recipe.toml
│ │ │ ├── probe-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── projclean/
│ │ │ │ └── recipe.toml
│ │ │ ├── projections/
│ │ │ │ └── recipe.toml
│ │ │ ├── protobuf/
│ │ │ │ └── recipe.toml
│ │ │ ├── protofetch/
│ │ │ │ └── recipe.toml
│ │ │ ├── putzen/
│ │ │ │ └── recipe.toml
│ │ │ ├── pxp/
│ │ │ │ └── recipe.toml
│ │ │ ├── qbe/
│ │ │ │ └── recipe.toml
│ │ │ ├── quicktest/
│ │ │ │ └── recipe.toml
│ │ │ ├── radicle/
│ │ │ │ └── recipe.toml
│ │ │ ├── ragel/
│ │ │ │ └── recipe.toml
│ │ │ ├── rattler-build/
│ │ │ │ └── recipe.toml
│ │ │ ├── rbasefind/
│ │ │ │ └── recipe.toml
│ │ │ ├── redict/
│ │ │ │ └── recipe.toml
│ │ │ ├── redis/
│ │ │ │ └── recipe.toml
│ │ │ ├── release-plz/
│ │ │ │ └── recipe.toml
│ │ │ ├── renderdoc/
│ │ │ │ └── recipe.toml
│ │ │ ├── resym/
│ │ │ │ └── recipe.toml
│ │ │ ├── rgit/
│ │ │ │ └── recipe.toml
│ │ │ ├── rhack/
│ │ │ │ └── recipe.toml
│ │ │ ├── rudra/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-counter-strings/
│ │ │ │ └── recipe.toml
│ │ │ ├── rusty-radamsa/
│ │ │ │ └── recipe.toml
│ │ │ ├── shaderc/
│ │ │ │ └── recipe.toml
│ │ │ ├── silicon/
│ │ │ │ └── recipe.toml
│ │ │ ├── souper/
│ │ │ │ └── recipe.toml
│ │ │ ├── steel/
│ │ │ │ └── recipe.toml
│ │ │ ├── stgit/
│ │ │ │ └── recipe.toml
│ │ │ ├── stitch/
│ │ │ │ └── recipe.toml
│ │ │ ├── svd2rust/
│ │ │ │ └── recipe.toml
│ │ │ ├── swig/
│ │ │ │ └── recipe.toml
│ │ │ ├── tcl/
│ │ │ │ └── recipe.toml
│ │ │ ├── tk/
│ │ │ │ └── recipe.toml
│ │ │ ├── tnn/
│ │ │ │ └── recipe.toml
│ │ │ ├── tokio-console/
│ │ │ │ └── recipe.toml
│ │ │ ├── tv/
│ │ │ │ └── recipe.toml
│ │ │ ├── twiggy/
│ │ │ │ └── recipe.toml
│ │ │ ├── ucd-generate/
│ │ │ │ └── recipe.toml
│ │ │ ├── ut/
│ │ │ │ └── recipe.toml
│ │ │ ├── valgrind/
│ │ │ │ └── recipe.toml
│ │ │ ├── verrou/
│ │ │ │ └── recipe.toml
│ │ │ ├── wrkflw/
│ │ │ │ └── recipe.toml
│ │ │ ├── zeal/
│ │ │ │ └── recipe.toml
│ │ │ └── zepter/
│ │ │ └── recipe.toml
│ │ ├── patchers/
│ │ │ └── hexpatch/
│ │ │ └── recipe.toml
│ │ ├── perf/
│ │ │ ├── flamelens/
│ │ │ │ └── recipe.toml
│ │ │ ├── samply/
│ │ │ │ └── recipe.toml
│ │ │ ├── tracy/
│ │ │ │ └── recipe.toml
│ │ │ └── vkpeak/
│ │ │ └── recipe.toml
│ │ ├── proofs/
│ │ │ ├── cvc5/
│ │ │ │ └── recipe.toml
│ │ │ ├── eldarica/
│ │ │ │ └── recipe.toml
│ │ │ └── z3/
│ │ │ └── recipe.toml
│ │ ├── python/
│ │ │ ├── py-spy/
│ │ │ │ └── recipe.toml
│ │ │ ├── pyapp/
│ │ │ │ └── recipe.toml
│ │ │ ├── pylyzer/
│ │ │ │ └── recipe.toml
│ │ │ ├── pyrev/
│ │ │ │ └── recipe.toml
│ │ │ ├── pyscan/
│ │ │ │ └── recipe.toml
│ │ │ ├── python-launcher/
│ │ │ │ └── recipe.toml
│ │ │ ├── ruff/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ └── uv/
│ │ │ └── recipe.toml
│ │ ├── rust-tools/
│ │ │ ├── bacon/
│ │ │ │ └── recipe.toml
│ │ │ ├── c2rust/
│ │ │ │ └── recipe.toml
│ │ │ ├── cbindgen/
│ │ │ │ └── recipe.toml
│ │ │ ├── clippy/
│ │ │ │ └── recipe.toml
│ │ │ ├── coq-of-rust/
│ │ │ │ └── recipe.toml
│ │ │ ├── crater/
│ │ │ │ └── recipe.toml
│ │ │ ├── diplomat/
│ │ │ │ └── recipe.toml
│ │ │ ├── dylint/
│ │ │ │ └── recipe.toml
│ │ │ ├── evcxr-jupyter/
│ │ │ │ └── recipe.toml
│ │ │ ├── evcxr-repl/
│ │ │ │ └── recipe.toml
│ │ │ ├── ferrisup/
│ │ │ │ └── recipe.toml
│ │ │ ├── kani/
│ │ │ │ └── recipe.toml
│ │ │ ├── miri/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-script/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-to-npm/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustfmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustup/
│ │ │ │ └── recipe.toml
│ │ │ ├── sccache/
│ │ │ │ └── recipe.toml
│ │ │ ├── scriptisto/
│ │ │ │ └── recipe.toml
│ │ │ └── tagref/
│ │ │ └── recipe.toml
│ │ ├── training/
│ │ │ └── gittype/
│ │ │ └── recipe.toml
│ │ ├── vcs/
│ │ │ └── mercurial/
│ │ │ └── recipe.toml
│ │ ├── wasm/
│ │ │ ├── binaryen/
│ │ │ │ └── recipe.toml
│ │ │ ├── trunk/
│ │ │ │ └── recipe.toml
│ │ │ ├── wabt/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasm-pack/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasm-tools/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasmer/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasmi/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasminspect/
│ │ │ │ └── recipe.toml
│ │ │ ├── wasmtime/
│ │ │ │ └── recipe.toml
│ │ │ └── wepl/
│ │ │ └── recipe.toml
│ │ └── web/
│ │ ├── emscripten/
│ │ │ └── recipe.toml
│ │ ├── vox/
│ │ │ └── recipe.toml
│ │ └── zola/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── doc/
│ │ ├── bookokrat/
│ │ │ └── recipe.toml
│ │ ├── brief/
│ │ │ └── recipe.toml
│ │ ├── doctave/
│ │ │ └── recipe.toml
│ │ ├── gnome-doc-utils/
│ │ │ └── recipe.toml
│ │ ├── gtk-doc/
│ │ │ └── recipe.toml
│ │ ├── mdbook/
│ │ │ └── recipe.toml
│ │ ├── newdoc/
│ │ │ └── recipe.toml
│ │ ├── po4a/
│ │ │ └── recipe.toml
│ │ ├── tendril-wiki/
│ │ │ └── recipe.toml
│ │ └── texinfo/
│ │ └── recipe.toml
│ ├── edu/
│ │ ├── bibiman/
│ │ │ └── recipe.toml
│ │ ├── hacker-laws/
│ │ │ └── recipe.toml
│ │ ├── nanocore/
│ │ │ └── recipe.toml
│ │ ├── rustlings/
│ │ │ └── recipe.toml
│ │ └── rusty-tape/
│ │ └── recipe.toml
│ ├── emu/
│ │ ├── cpu/
│ │ │ ├── 6502-emulator/
│ │ │ │ └── recipe.toml
│ │ │ ├── 8086-emulator/
│ │ │ │ └── recipe.toml
│ │ │ ├── mipsy/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustzx/
│ │ │ │ └── recipe.toml
│ │ │ ├── rvemu/
│ │ │ │ └── recipe.toml
│ │ │ ├── scemu/
│ │ │ │ └── recipe.toml
│ │ │ └── unicorn/
│ │ │ └── recipe.toml
│ │ ├── game-console/
│ │ │ ├── azahar/
│ │ │ │ └── recipe.toml
│ │ │ ├── clementine/
│ │ │ │ └── recipe.toml
│ │ │ ├── dolphin-emu/
│ │ │ │ └── recipe.toml
│ │ │ ├── finalburn-neo/
│ │ │ │ └── recipe.toml
│ │ │ ├── gameboy/
│ │ │ │ ├── boytacean/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── gameroy/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── mimic/
│ │ │ │ └── recipe.toml
│ │ │ ├── gopher64/
│ │ │ │ └── recipe.toml
│ │ │ ├── jgenesis/
│ │ │ │ └── recipe.toml
│ │ │ ├── mame/
│ │ │ │ └── recipe.toml
│ │ │ ├── melonds/
│ │ │ │ └── recipe.toml
│ │ │ ├── meru/
│ │ │ │ └── recipe.toml
│ │ │ ├── mupen64plus/
│ │ │ │ └── recipe.toml
│ │ │ ├── obliteration/
│ │ │ │ └── recipe.toml
│ │ │ ├── pcsx2/
│ │ │ │ └── recipe.toml
│ │ │ ├── picodrive/
│ │ │ │ └── recipe.toml
│ │ │ ├── play/
│ │ │ │ └── recipe.toml
│ │ │ ├── ppsspp/
│ │ │ │ └── recipe.toml
│ │ │ ├── ps1/
│ │ │ │ ├── duckstation/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── pcsx-rearmed/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── rpsx/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── trapezoid/
│ │ │ │ └── recipe.toml
│ │ │ ├── rpcs3/
│ │ │ │ └── recipe.toml
│ │ │ ├── shadps4/
│ │ │ │ └── recipe.toml
│ │ │ ├── snes9x/
│ │ │ │ └── recipe.toml
│ │ │ ├── tetanes/
│ │ │ │ └── recipe.toml
│ │ │ ├── uoyabause/
│ │ │ │ └── recipe.toml
│ │ │ ├── vita3k/
│ │ │ │ └── recipe.toml
│ │ │ ├── xemu/
│ │ │ │ └── recipe.toml
│ │ │ ├── xenia-canary/
│ │ │ │ └── recipe.toml
│ │ │ └── zsnes/
│ │ │ └── recipe.toml
│ │ ├── mobile/
│ │ │ ├── touchhle/
│ │ │ │ └── recipe.toml
│ │ │ └── wie/
│ │ │ └── recipe.toml
│ │ ├── pc/
│ │ │ ├── darling/
│ │ │ │ └── recipe.toml
│ │ │ ├── martypc/
│ │ │ │ └── recipe.toml
│ │ │ ├── opengmk/
│ │ │ │ └── recipe.toml
│ │ │ └── ruffle/
│ │ │ └── recipe.toml
│ │ ├── security/
│ │ │ └── rust-u2f/
│ │ │ └── recipe.toml
│ │ └── win/
│ │ ├── boxedwine/
│ │ │ └── recipe.toml
│ │ ├── hangover/
│ │ │ └── recipe.toml
│ │ ├── retrowin32/
│ │ │ └── recipe.toml
│ │ └── wine-stable/
│ │ └── recipe.toml
│ ├── files/
│ │ ├── exi/
│ │ │ └── recipe.toml
│ │ ├── lsv/
│ │ │ └── recipe.toml
│ │ ├── mc/
│ │ │ └── recipe.toml
│ │ └── unf/
│ │ └── recipe.toml
│ ├── finance/
│ │ ├── crypto/
│ │ │ ├── bitcoin/
│ │ │ │ ├── btc-vanity/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── btcpay-server/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── electrum/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── liana/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── nakamoto-wallet/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── nakatoshi/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── ord/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── pushtx/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── rusty-blockparser/
│ │ │ │ └── recipe.toml
│ │ │ ├── eth/
│ │ │ │ ├── lighthouse/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── reth/
│ │ │ │ └── recipe.toml
│ │ │ └── monero/
│ │ │ ├── gupax/
│ │ │ │ └── recipe.toml
│ │ │ └── xmrig/
│ │ │ └── recipe.toml
│ │ ├── donation/
│ │ │ └── cargo-fund/
│ │ │ └── recipe.toml
│ │ ├── market/
│ │ │ ├── apcacli/
│ │ │ │ └── recipe.toml
│ │ │ ├── merkato/
│ │ │ │ └── recipe.toml
│ │ │ └── tick-rs/
│ │ │ └── recipe.toml
│ │ ├── mgmt/
│ │ │ ├── gnucash/
│ │ │ │ └── recipe.toml
│ │ │ └── tackler-ng/
│ │ │ └── recipe.toml
│ │ └── rex/
│ │ └── recipe.toml
│ ├── fonts/
│ │ ├── fontfor/
│ │ │ └── recipe.toml
│ │ ├── fontforge/
│ │ │ └── recipe.toml
│ │ ├── gerb/
│ │ │ └── recipe.toml
│ │ ├── nerd-fonts/
│ │ │ └── recipe.toml
│ │ ├── noto/
│ │ │ └── recipe.toml
│ │ ├── noto-sans-cjk/
│ │ │ └── recipe.toml
│ │ ├── noto-serif-cjk/
│ │ │ └── recipe.toml
│ │ └── sitra/
│ │ └── recipe.toml
│ ├── fuse/
│ │ ├── archivemount/
│ │ │ └── recipe.toml
│ │ ├── btfs/
│ │ │ └── recipe.toml
│ │ ├── cryfs/
│ │ │ └── recipe.toml
│ │ ├── cvmfs/
│ │ │ └── recipe.toml
│ │ ├── dislocker/
│ │ │ └── recipe.toml
│ │ ├── dwarfs/
│ │ │ └── recipe.toml
│ │ ├── e2fsprogs/
│ │ │ └── recipe.toml
│ │ ├── exfat-fuse/
│ │ │ └── recipe.toml
│ │ ├── ffmpegfs/
│ │ │ └── recipe.toml
│ │ ├── fuse-ext2/
│ │ │ └── recipe.toml
│ │ ├── fuse-nfs/
│ │ │ └── recipe.toml
│ │ ├── fuse-zip/
│ │ │ └── recipe.toml
│ │ ├── glusterfs/
│ │ │ └── recipe.toml
│ │ ├── goofys/
│ │ │ └── recipe.toml
│ │ ├── hfsfuse/
│ │ │ └── recipe.toml
│ │ ├── httpdirfs/
│ │ │ └── recipe.toml
│ │ ├── ifuse/
│ │ │ └── recipe.toml
│ │ ├── indexfs/
│ │ │ └── recipe.toml
│ │ ├── lazyfs/
│ │ │ └── recipe.toml
│ │ ├── lis/
│ │ │ └── recipe.toml
│ │ ├── littlefs/
│ │ │ └── recipe.toml
│ │ ├── loggedfs/
│ │ │ └── recipe.toml
│ │ ├── mergerfs/
│ │ │ └── recipe.toml
│ │ ├── moosefs/
│ │ │ └── recipe.toml
│ │ ├── mount-zip/
│ │ │ └── recipe.toml
│ │ ├── ntfs-3g/
│ │ │ └── recipe.toml
│ │ ├── oku-fs/
│ │ │ └── recipe.toml
│ │ ├── pifs/
│ │ │ └── recipe.toml
│ │ ├── rencfs/
│ │ │ └── recipe.toml
│ │ ├── s3fs/
│ │ │ └── recipe.toml
│ │ ├── securefs/
│ │ │ └── recipe.toml
│ │ ├── simple-mtpfs/
│ │ │ └── recipe.toml
│ │ ├── squashfuse/
│ │ │ └── recipe.toml
│ │ ├── unionfs-fuse/
│ │ │ └── recipe.toml
│ │ └── unreliablefs/
│ │ └── recipe.toml
│ ├── games/
│ │ ├── action/
│ │ │ ├── battleship-rs/
│ │ │ │ └── recipe.toml
│ │ │ └── bevy-combat/
│ │ │ └── recipe.toml
│ │ ├── data/
│ │ │ ├── 0ad-data/
│ │ │ │ └── recipe.toml
│ │ │ ├── crosshare-data/
│ │ │ │ └── recipe.toml
│ │ │ ├── luanti-data/
│ │ │ │ └── recipe.toml
│ │ │ ├── openjazz-shareware-data/
│ │ │ │ ├── jazzdemo.rar.sha
│ │ │ │ ├── manifest
│ │ │ │ └── recipe.toml
│ │ │ └── quake1-shareware/
│ │ │ ├── manifest
│ │ │ ├── pak0.pak.sha
│ │ │ ├── quake106.zip.sha
│ │ │ └── recipe.toml
│ │ ├── engines/
│ │ │ ├── chocolate-doom/
│ │ │ │ └── recipe.toml
│ │ │ ├── crispy-doom/
│ │ │ │ └── recipe.toml
│ │ │ ├── gemrb/
│ │ │ │ └── recipe.toml
│ │ │ ├── ioquake3/
│ │ │ │ └── recipe.toml
│ │ │ ├── love/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── luanti/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── odamex/
│ │ │ │ └── recipe.toml
│ │ │ ├── openlara/
│ │ │ │ ├── assets/
│ │ │ │ │ └── README.md
│ │ │ │ └── recipe.toml
│ │ │ ├── opentomb/
│ │ │ │ └── recipe.toml
│ │ │ ├── rbdoom3-bfg/
│ │ │ │ └── recipe.toml
│ │ │ ├── room4doom/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-doom/
│ │ │ │ └── recipe.toml
│ │ │ ├── shockolate/
│ │ │ │ └── recipe.toml
│ │ │ ├── uzdoom/
│ │ │ │ └── recipe.toml
│ │ │ ├── vkquake/
│ │ │ │ └── recipe.toml
│ │ │ ├── vkquake2/
│ │ │ │ └── recipe.toml
│ │ │ ├── xash3d-fwgs/
│ │ │ │ └── recipe.toml
│ │ │ └── yquake2/
│ │ │ └── recipe.toml
│ │ ├── fps/
│ │ │ ├── assaultcube/
│ │ │ │ └── recipe.toml
│ │ │ ├── betterspades/
│ │ │ │ └── recipe.toml
│ │ │ ├── et-legacy/
│ │ │ │ └── recipe.toml
│ │ │ ├── openarena/
│ │ │ │ └── recipe.toml
│ │ │ ├── openspades-free/
│ │ │ │ └── recipe.toml
│ │ │ ├── openspades-free-pak/
│ │ │ │ └── recipe.toml
│ │ │ ├── smokin-guns/
│ │ │ │ └── recipe.toml
│ │ │ ├── unvanquished/
│ │ │ │ └── recipe.toml
│ │ │ ├── xonotic/
│ │ │ │ └── recipe.toml
│ │ │ └── zerospades-free/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── math/
│ │ │ ├── binbreak/
│ │ │ │ └── recipe.toml
│ │ │ ├── cosmic-ext-2048/
│ │ │ │ └── recipe.toml
│ │ │ ├── sudoku-rs/
│ │ │ │ └── recipe.toml
│ │ │ └── tuxmath/
│ │ │ └── recipe.toml
│ │ ├── music/
│ │ │ ├── performous/
│ │ │ │ └── recipe.toml
│ │ │ ├── performous-composer/
│ │ │ │ └── recipe.toml
│ │ │ └── stepmania/
│ │ │ └── recipe.toml
│ │ ├── open-world/
│ │ │ ├── all-is-cubes/
│ │ │ │ └── recipe.toml
│ │ │ ├── asciicker/
│ │ │ │ └── recipe.toml
│ │ │ ├── cytopia/
│ │ │ │ └── recipe.toml
│ │ │ ├── cytopia-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── ethertia/
│ │ │ │ └── recipe.toml
│ │ │ ├── leafish/
│ │ │ │ └── recipe.toml
│ │ │ ├── teloren/
│ │ │ │ └── recipe.toml
│ │ │ └── veloren/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── blightmud/
│ │ │ │ └── recipe.toml
│ │ │ ├── mudlet/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxycards/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-sadari-cli/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustorio/
│ │ │ │ └── recipe.toml
│ │ │ ├── sandbox-rs1/
│ │ │ │ └── recipe.toml
│ │ │ ├── slint-tetris/
│ │ │ │ └── recipe.toml
│ │ │ ├── sshattrick/
│ │ │ │ └── recipe.toml
│ │ │ ├── terdle/
│ │ │ │ └── recipe.toml
│ │ │ ├── tetromino/
│ │ │ │ └── recipe.toml
│ │ │ ├── tintin/
│ │ │ │ └── recipe.toml
│ │ │ ├── turdle/
│ │ │ │ └── recipe.toml
│ │ │ ├── unvanquished-benchmarks/
│ │ │ │ └── recipe.toml
│ │ │ ├── uqm/
│ │ │ │ └── recipe.toml
│ │ │ ├── vong/
│ │ │ │ └── recipe.toml
│ │ │ ├── vvvvvv/
│ │ │ │ └── recipe.toml
│ │ │ └── wesnoth/
│ │ │ └── recipe.toml
│ │ ├── platform/
│ │ │ ├── irrlamb/
│ │ │ │ └── recipe.toml
│ │ │ └── supertux/
│ │ │ └── recipe.toml
│ │ ├── puzzle/
│ │ │ ├── conduit/
│ │ │ │ └── recipe.toml
│ │ │ ├── crosstui/
│ │ │ │ └── recipe.toml
│ │ │ └── setrixtui/
│ │ │ └── recipe.toml
│ │ ├── racing/
│ │ │ ├── q3rally/
│ │ │ │ └── recipe.toml
│ │ │ └── supertuxkart/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── rpg/
│ │ │ ├── dcss/
│ │ │ │ └── recipe.toml
│ │ │ └── kingslayer/
│ │ │ └── recipe.toml
│ │ ├── rts/
│ │ │ ├── mindustry/
│ │ │ │ └── recipe.toml
│ │ │ └── mindustry-beta/
│ │ │ └── recipe.toml
│ │ ├── servers/
│ │ │ └── cuberite/
│ │ │ └── recipe.toml
│ │ ├── shooter/
│ │ │ ├── asciiarena/
│ │ │ │ └── recipe.toml
│ │ │ ├── call-of-ferris/
│ │ │ │ └── recipe.toml
│ │ │ └── empty-clip/
│ │ │ └── recipe.toml
│ │ ├── simulation/
│ │ │ ├── egregoria/
│ │ │ │ └── recipe.toml
│ │ │ ├── formicarium/
│ │ │ │ └── recipe.toml
│ │ │ ├── game-of-life-piston/
│ │ │ │ └── recipe.toml
│ │ │ ├── game-of-life-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── nbodysim/
│ │ │ │ └── recipe.toml
│ │ │ ├── sandbox-rs2/
│ │ │ │ └── recipe.toml
│ │ │ └── symbiants/
│ │ │ └── recipe.toml
│ │ ├── space/
│ │ │ ├── endless-sky/
│ │ │ │ └── recipe.toml
│ │ │ ├── naev/
│ │ │ │ └── recipe.toml
│ │ │ ├── osirion/
│ │ │ │ └── recipe.toml
│ │ │ ├── outfly/
│ │ │ │ └── recipe.toml
│ │ │ ├── rebels-in-the-sky/
│ │ │ │ └── recipe.toml
│ │ │ └── rust-belt/
│ │ │ └── recipe.toml
│ │ ├── strategy/
│ │ │ ├── 0ad/
│ │ │ │ └── recipe.toml
│ │ │ ├── asmfish/
│ │ │ │ └── recipe.toml
│ │ │ ├── balatro-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── castle-game/
│ │ │ │ └── recipe.toml
│ │ │ ├── cell-graph-risk/
│ │ │ │ └── recipe.toml
│ │ │ ├── chess-engine/
│ │ │ │ └── recipe.toml
│ │ │ ├── chess-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── chessmd/
│ │ │ │ └── recipe.toml
│ │ │ ├── draughts/
│ │ │ │ └── recipe.toml
│ │ │ ├── hammurabi/
│ │ │ │ └── recipe.toml
│ │ │ ├── hnefatafl-copenhagen/
│ │ │ │ └── recipe.toml
│ │ │ ├── mazter/
│ │ │ │ └── recipe.toml
│ │ │ ├── minesweep-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── offline-chess-puzzles/
│ │ │ │ └── recipe.toml
│ │ │ ├── rust-sudoku/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustoku/
│ │ │ │ └── recipe.toml
│ │ │ ├── ship-of-harkinian/
│ │ │ │ └── recipe.toml
│ │ │ ├── stockfish/
│ │ │ │ └── recipe.toml
│ │ │ ├── tage/
│ │ │ │ └── recipe.toml
│ │ │ ├── tetris-demo/
│ │ │ │ └── recipe.toml
│ │ │ ├── tic-tac-toe-rs/
│ │ │ │ └── recipe.toml
│ │ │ └── warsow/
│ │ │ └── recipe.toml
│ │ ├── syobonaction/
│ │ │ ├── 01_redox.patch
│ │ │ └── recipe.toml
│ │ └── tools/
│ │ ├── deutex/
│ │ │ └── recipe.toml
│ │ └── oxyromon/
│ │ └── recipe.toml
│ ├── gnome/
│ │ ├── aisleriot/
│ │ │ └── recipe.toml
│ │ ├── brasero/
│ │ │ └── recipe.toml
│ │ ├── cheese/
│ │ │ └── recipe.toml
│ │ ├── evince/
│ │ │ └── recipe.toml
│ │ ├── file-roller/
│ │ │ └── recipe.toml
│ │ ├── geary/
│ │ │ └── recipe.toml
│ │ ├── gimp/
│ │ │ └── recipe.toml
│ │ ├── gnome-2048/
│ │ │ └── recipe.toml
│ │ ├── gnome-boxes/
│ │ │ └── recipe.toml
│ │ ├── gnome-builder/
│ │ │ └── recipe.toml
│ │ ├── gnome-calculator/
│ │ │ └── recipe.toml
│ │ ├── gnome-chess/
│ │ │ └── recipe.toml
│ │ ├── gnome-connections/
│ │ │ └── recipe.toml
│ │ ├── gnome-files/
│ │ │ └── recipe.toml
│ │ ├── gnome-image-viewer/
│ │ │ └── recipe.toml
│ │ ├── gnome-keyring/
│ │ │ └── recipe.toml
│ │ ├── gnome-sudoku/
│ │ │ └── recipe.toml
│ │ ├── gnome-text-editor/
│ │ │ └── recipe.toml
│ │ ├── gnome-web/
│ │ │ └── recipe.toml
│ │ ├── pitivi/
│ │ │ └── recipe.toml
│ │ ├── simple-scan/
│ │ │ └── recipe.toml
│ │ └── snapshot/
│ │ └── recipe.toml
│ ├── graphics/
│ │ ├── converters/
│ │ │ ├── inkdrop/
│ │ │ │ └── recipe.toml
│ │ │ └── vtracer/
│ │ │ └── recipe.toml
│ │ ├── editors/
│ │ │ ├── blender/
│ │ │ │ └── recipe.toml
│ │ │ ├── blender-lts/
│ │ │ │ └── recipe.toml
│ │ │ ├── eyedropper/
│ │ │ │ └── recipe.toml
│ │ │ ├── opentoonz/
│ │ │ │ └── recipe.toml
│ │ │ ├── pencil2d/
│ │ │ │ └── recipe.toml
│ │ │ └── texel/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── appleseed/
│ │ │ │ └── recipe.toml
│ │ │ ├── c-ray/
│ │ │ │ └── recipe.toml
│ │ │ ├── cmark/
│ │ │ │ └── recipe.toml
│ │ │ ├── curvis/
│ │ │ │ └── recipe.toml
│ │ │ ├── darktable/
│ │ │ │ └── recipe.toml
│ │ │ ├── derive-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── dify/
│ │ │ │ └── recipe.toml
│ │ │ ├── dssim/
│ │ │ │ └── recipe.toml
│ │ │ ├── embree/
│ │ │ │ └── recipe.toml
│ │ │ ├── flowbetween/
│ │ │ │ └── recipe.toml
│ │ │ ├── gaffer/
│ │ │ │ └── recipe.toml
│ │ │ ├── glou/
│ │ │ │ └── recipe.toml
│ │ │ ├── gmic/
│ │ │ │ └── recipe.toml
│ │ │ ├── gmic-qt/
│ │ │ │ └── recipe.toml
│ │ │ ├── graphviz/
│ │ │ │ └── recipe.toml
│ │ │ ├── halo/
│ │ │ │ └── recipe.toml
│ │ │ ├── hdr10plus-tool/
│ │ │ │ └── recipe.toml
│ │ │ ├── image-sieve/
│ │ │ │ └── recipe.toml
│ │ │ ├── incompact3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── kantig/
│ │ │ │ └── recipe.toml
│ │ │ ├── lpl/
│ │ │ │ └── recipe.toml
│ │ │ ├── luxcorerender/
│ │ │ │ └── recipe.toml
│ │ │ ├── lyon/
│ │ │ │ └── recipe.toml
│ │ │ ├── matugen/
│ │ │ │ └── recipe.toml
│ │ │ ├── naga/
│ │ │ │ └── recipe.toml
│ │ │ ├── ocrs/
│ │ │ │ └── recipe.toml
│ │ │ ├── oculante/
│ │ │ │ └── recipe.toml
│ │ │ ├── openscad/
│ │ │ │ └── recipe.toml
│ │ │ ├── ospray/
│ │ │ │ └── recipe.toml
│ │ │ ├── ospray-studio/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxipng/
│ │ │ │ └── recipe.toml
│ │ │ ├── paraview/
│ │ │ │ └── recipe.toml
│ │ │ ├── paraview-data/
│ │ │ │ └── recipe.toml
│ │ │ ├── pix-image-viewer/
│ │ │ │ └── recipe.toml
│ │ │ ├── pixsort/
│ │ │ │ └── recipe.toml
│ │ │ ├── rascii/
│ │ │ │ └── recipe.toml
│ │ │ ├── rawtherapee/
│ │ │ │ └── recipe.toml
│ │ │ ├── reve/
│ │ │ │ └── recipe.toml
│ │ │ ├── rimage/
│ │ │ │ └── recipe.toml
│ │ │ ├── satty/
│ │ │ │ └── recipe.toml
│ │ │ ├── shadergarden/
│ │ │ │ └── recipe.toml
│ │ │ ├── simp/
│ │ │ │ └── recipe.toml
│ │ │ ├── smag/
│ │ │ │ └── recipe.toml
│ │ │ ├── toybrot/
│ │ │ │ └── recipe.toml
│ │ │ ├── tungsten-renderer/
│ │ │ │ └── recipe.toml
│ │ │ ├── viu/
│ │ │ │ └── recipe.toml
│ │ │ ├── vulkan-tools/
│ │ │ │ └── recipe.toml
│ │ │ └── watch-stl/
│ │ │ └── recipe.toml
│ │ ├── shaders/
│ │ │ ├── glsl-viewer/
│ │ │ │ └── recipe.toml
│ │ │ ├── glslang/
│ │ │ │ └── recipe.toml
│ │ │ ├── shadertoy-rs/
│ │ │ │ └── recipe.toml
│ │ │ └── vibe/
│ │ │ └── recipe.toml
│ │ ├── terminal/
│ │ │ ├── 3d-terminal-renderer/
│ │ │ │ └── recipe.toml
│ │ │ ├── aarty/
│ │ │ │ └── recipe.toml
│ │ │ ├── ascii-image/
│ │ │ │ └── recipe.toml
│ │ │ ├── blockpaint/
│ │ │ │ └── recipe.toml
│ │ │ ├── display3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── img2text/
│ │ │ │ └── recipe.toml
│ │ │ ├── kakikun/
│ │ │ │ └── recipe.toml
│ │ │ ├── sloth/
│ │ │ │ └── recipe.toml
│ │ │ └── tapciify/
│ │ │ └── recipe.toml
│ │ ├── viewers/
│ │ │ └── exhibit/
│ │ │ └── recipe.toml
│ │ └── vr/
│ │ └── alvr/
│ │ └── recipe.toml
│ ├── gui/
│ │ ├── gpcl/
│ │ │ └── recipe.toml
│ │ ├── ordinary/
│ │ │ └── recipe.toml
│ │ └── slop/
│ │ └── recipe.toml
│ ├── health/
│ │ ├── blanket/
│ │ │ └── recipe.toml
│ │ └── dosage/
│ │ └── recipe.toml
│ ├── hw/
│ │ └── piper/
│ │ └── recipe.toml
│ ├── icons/
│ │ ├── adwaita-icon-theme/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── breeze-icons/
│ │ └── recipe.toml
│ ├── image/
│ │ ├── converters/
│ │ │ └── dipc/
│ │ │ └── recipe.toml
│ │ ├── editors/
│ │ │ ├── ascii-draw/
│ │ │ │ └── recipe.toml
│ │ │ ├── drawing/
│ │ │ │ └── recipe.toml
│ │ │ ├── inkscape/
│ │ │ │ └── recipe.toml
│ │ │ ├── rx/
│ │ │ │ └── recipe.toml
│ │ │ ├── watermarker/
│ │ │ │ └── recipe.toml
│ │ │ └── xpano/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── converseen/
│ │ │ │ └── recipe.toml
│ │ │ ├── curtail/
│ │ │ │ └── recipe.toml
│ │ │ ├── dominant-colours/
│ │ │ │ └── recipe.toml
│ │ │ ├── ferrishot/
│ │ │ │ └── recipe.toml
│ │ │ ├── graphicsmagick/
│ │ │ │ └── recipe.toml
│ │ │ ├── imageflow/
│ │ │ │ └── recipe.toml
│ │ │ ├── imagemagick/
│ │ │ │ └── recipe.toml
│ │ │ ├── jpegoptim/
│ │ │ │ └── recipe.toml
│ │ │ ├── jxl-oxide/
│ │ │ │ └── recipe.toml
│ │ │ ├── lsix/
│ │ │ │ └── recipe.toml
│ │ │ ├── oxvg/
│ │ │ │ └── recipe.toml
│ │ │ ├── pngquant/
│ │ │ │ └── recipe.toml
│ │ │ ├── satpaper/
│ │ │ │ └── recipe.toml
│ │ │ └── sic/
│ │ │ └── recipe.toml
│ │ └── upscaling/
│ │ ├── jdpixelupscaler/
│ │ │ └── recipe.toml
│ │ ├── rscale2x/
│ │ │ └── recipe.toml
│ │ ├── upscaler/
│ │ │ └── recipe.toml
│ │ ├── upscaler-rs/
│ │ │ └── recipe.toml
│ │ ├── upscayl-ncnn/
│ │ │ └── recipe.toml
│ │ └── video2x/
│ │ └── recipe.toml
│ ├── kde/
│ │ ├── ark/
│ │ │ └── recipe.toml
│ │ ├── discover/
│ │ │ └── recipe.toml
│ │ ├── k3b/
│ │ │ └── recipe.toml
│ │ ├── kamoso/
│ │ │ └── recipe.toml
│ │ ├── kde-dolphin/
│ │ │ └── recipe.toml
│ │ ├── kdenlive/
│ │ │ └── recipe.toml
│ │ ├── kdevelop/
│ │ │ └── recipe.toml
│ │ ├── kpatience/
│ │ │ └── recipe.toml
│ │ ├── krita/
│ │ │ └── recipe.toml
│ │ ├── ktorrent/
│ │ │ └── recipe.toml
│ │ ├── kwave/
│ │ │ └── recipe.toml
│ │ ├── marble/
│ │ │ └── recipe.toml
│ │ ├── okteta/
│ │ │ └── recipe.toml
│ │ └── skanpage/
│ │ └── recipe.toml
│ ├── lang/
│ │ ├── kana/
│ │ │ └── recipe.toml
│ │ └── uroman-rs/
│ │ └── recipe.toml
│ ├── libs/
│ │ ├── archives/
│ │ │ └── libzip/
│ │ │ └── recipe.toml
│ │ ├── audio/
│ │ │ ├── boca/
│ │ │ │ └── recipe.toml
│ │ │ ├── libalsa/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcanberra/
│ │ │ │ └── recipe.toml
│ │ │ ├── libopenshot-audio/
│ │ │ │ └── recipe.toml
│ │ │ ├── mpg123/
│ │ │ │ └── recipe.toml
│ │ │ ├── openal/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── soundtouch/
│ │ │ │ └── recipe.toml
│ │ │ ├── speex/
│ │ │ │ └── recipe.toml
│ │ │ ├── speexdsp/
│ │ │ │ └── recipe.toml
│ │ │ └── zmusic/
│ │ │ └── recipe.toml
│ │ ├── debug/
│ │ │ └── libbacktrace/
│ │ │ └── recipe.toml
│ │ ├── fs/
│ │ │ ├── libattr/
│ │ │ │ └── recipe.toml
│ │ │ ├── libnfs/
│ │ │ │ └── recipe.toml
│ │ │ └── physicsfs/
│ │ │ └── recipe.toml
│ │ ├── gnome/
│ │ │ ├── at-spi2-core/
│ │ │ │ └── recipe.toml
│ │ │ ├── atkmm/
│ │ │ │ └── recipe.toml
│ │ │ ├── clutter/
│ │ │ │ └── recipe.toml
│ │ │ ├── clutter-gst/
│ │ │ │ └── recipe.toml
│ │ │ ├── clutter-gtk/
│ │ │ │ └── recipe.toml
│ │ │ ├── cogl/
│ │ │ │ └── recipe.toml
│ │ │ ├── dconf/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── dspy/
│ │ │ │ └── recipe.toml
│ │ │ ├── gegl/
│ │ │ │ └── recipe.toml
│ │ │ ├── gexiv2/
│ │ │ │ └── recipe.toml
│ │ │ ├── glib-networking/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── glibmm/
│ │ │ │ └── recipe.toml
│ │ │ ├── gnome2-common/
│ │ │ │ └── recipe.toml
│ │ │ ├── gnome3-common/
│ │ │ │ └── recipe.toml
│ │ │ ├── gobject-introspection/
│ │ │ │ └── recipe.toml
│ │ │ ├── graphene/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk-engines/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk-vnc/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk2/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk2mm/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk3/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── gtk3mm/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk4/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtk4mm/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtkglext/
│ │ │ │ └── recipe.toml
│ │ │ ├── gtksourceview/
│ │ │ │ └── recipe.toml
│ │ │ ├── json-glib/
│ │ │ │ └── recipe.toml
│ │ │ ├── jsonrpc-glib/
│ │ │ │ └── recipe.toml
│ │ │ ├── libadwaita/
│ │ │ │ └── recipe.toml
│ │ │ ├── libart/
│ │ │ │ └── recipe.toml
│ │ │ ├── libayatana-appindicator-glib/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libdex/
│ │ │ │ └── recipe.toml
│ │ │ ├── libepoxy/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libgee/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgspell-gtk3/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgspell-gtk4/
│ │ │ │ └── recipe.toml
│ │ │ ├── libhandy/
│ │ │ │ └── recipe.toml
│ │ │ ├── libnotify/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpanel/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpeas/
│ │ │ │ └── recipe.toml
│ │ │ ├── librsvg/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsecret/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsigcpp/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsoup/
│ │ │ │ └── recipe.toml
│ │ │ ├── libspelling/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwnck3/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxslt/
│ │ │ │ └── recipe.toml
│ │ │ ├── pangomm/
│ │ │ │ └── recipe.toml
│ │ │ ├── totem-pl-parser/
│ │ │ │ └── recipe.toml
│ │ │ ├── vte/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── xdg-user-dirs-gtk/
│ │ │ │ └── recipe.toml
│ │ │ └── zenity/
│ │ │ └── recipe.toml
│ │ ├── graphics/
│ │ │ ├── libnoise/
│ │ │ │ └── recipe.toml
│ │ │ ├── libvulkan/
│ │ │ │ └── recipe.toml
│ │ │ └── vulkan-headers/
│ │ │ └── recipe.toml
│ │ ├── gui/
│ │ │ ├── girara/
│ │ │ │ └── recipe.toml
│ │ │ ├── imgui/
│ │ │ │ └── recipe.toml
│ │ │ └── libappindicator/
│ │ │ └── recipe.toml
│ │ ├── hw/
│ │ │ └── libratbag/
│ │ │ └── recipe.toml
│ │ ├── image/
│ │ │ ├── libavif/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgphoto2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libheif/
│ │ │ │ └── recipe.toml
│ │ │ ├── libjxl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libraw/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsixel/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwebp/
│ │ │ │ └── recipe.toml
│ │ │ └── libwebp2/
│ │ │ └── recipe.toml
│ │ ├── kde/
│ │ │ ├── kf5/
│ │ │ │ ├── kf5-activities/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-activities-stats/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-apidox/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-archive/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-attica/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-auth/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-baloo/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-bookmarks/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-calendarcore/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-cmake-modules/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-cmutils/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-codecs/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-completion/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-config/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-configwidgets/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-contacts/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-coreaddons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-crash/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-dav/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-dbusaddons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-declarative/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-dnssd/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-doctools/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-emoticons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-filemetadata/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-frameworkintegration/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-globalaccel/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-guiaddons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-holidays/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-i18n/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-iconthemes/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-idletime/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-init/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-io/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-itemmodels/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-itemviews/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-jobwidgets/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-kded/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-kdesu/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-kirigami/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-modem-manager/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-networkmanager/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-newstuff/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-notifications/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-notifyconfig/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-package/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-parts/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-people/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-plasma-framework/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-plotting/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-prison/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-pty/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-purpose/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-qqc2-desktop-style/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-quickcharts/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-runner/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-service/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-solid/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-sonnet/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-syndication/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-syntax-highlighting/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-sysguard/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-texteditor/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-textwidgets/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-threadweaver/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-unitconversion/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-wayland/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-widgetaddons/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── kf5-windowsystem/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── kf5-xmlgui/
│ │ │ │ └── recipe.toml
│ │ │ ├── kf6/
│ │ │ │ ├── kcodecs6/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── ktexteditor6/
│ │ │ │ └── recipe.toml
│ │ │ ├── libkdcraw/
│ │ │ │ └── recipe.toml
│ │ │ ├── libkomparediff2/
│ │ │ │ └── recipe.toml
│ │ │ └── libseexpr-kde/
│ │ │ └── recipe.toml
│ │ ├── lua/
│ │ │ └── lpeg/
│ │ │ └── recipe.toml
│ │ ├── ml/
│ │ │ └── libtorch/
│ │ │ └── recipe.toml
│ │ ├── mobile/
│ │ │ ├── libimobiledevice/
│ │ │ │ └── recipe.toml
│ │ │ └── libusbmuxd/
│ │ │ └── recipe.toml
│ │ ├── mozjs/
│ │ │ └── recipe.toml
│ │ ├── net/
│ │ │ ├── c-ares/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfilezilla/
│ │ │ │ └── recipe.toml
│ │ │ ├── libidn/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtirpc/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtorrent/
│ │ │ │ └── recipe.toml
│ │ │ ├── nghttp3/
│ │ │ │ └── recipe.toml
│ │ │ └── ngtcp2/
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── appstream/
│ │ │ │ └── recipe.toml
│ │ │ ├── aws-lc-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── babl/
│ │ │ │ └── recipe.toml
│ │ │ ├── boost/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── bullet-physics/
│ │ │ │ └── recipe.toml
│ │ │ ├── cairomm10+/
│ │ │ │ └── recipe.toml
│ │ │ ├── cairomm116+/
│ │ │ │ └── recipe.toml
│ │ │ ├── dcmtk/
│ │ │ │ └── recipe.toml
│ │ │ ├── fftw/
│ │ │ │ └── recipe.toml
│ │ │ ├── fltk13/
│ │ │ │ └── recipe.toml
│ │ │ ├── fltk14/
│ │ │ │ └── recipe.toml
│ │ │ ├── freealut/
│ │ │ │ └── recipe.toml
│ │ │ ├── freeglut/
│ │ │ │ └── recipe.toml
│ │ │ ├── freetype-sys/
│ │ │ │ └── recipe.toml
│ │ │ ├── gdbm/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── gflags/
│ │ │ │ └── recipe.toml
│ │ │ ├── glew/
│ │ │ │ └── recipe.toml
│ │ │ ├── glfw3/
│ │ │ │ └── recipe.toml
│ │ │ ├── gpgme/
│ │ │ │ └── recipe.toml
│ │ │ ├── grpc/
│ │ │ │ └── recipe.toml
│ │ │ ├── hdf5/
│ │ │ │ └── recipe.toml
│ │ │ ├── hwdata/
│ │ │ │ └── recipe.toml
│ │ │ ├── hwloc/
│ │ │ │ └── recipe.toml
│ │ │ ├── imlib2/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── inih/
│ │ │ │ └── recipe.toml
│ │ │ ├── iniparser/
│ │ │ │ └── recipe.toml
│ │ │ ├── json-c/
│ │ │ │ └── recipe.toml
│ │ │ ├── kerberos5/
│ │ │ │ └── recipe.toml
│ │ │ ├── lame/
│ │ │ │ └── recipe.toml
│ │ │ ├── lammps/
│ │ │ │ └── recipe.toml
│ │ │ ├── lib2geom/
│ │ │ │ └── recipe.toml
│ │ │ ├── liba52/
│ │ │ │ └── recipe.toml
│ │ │ ├── libabsl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libaio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libaom/
│ │ │ │ └── recipe.toml
│ │ │ ├── libargon2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libaspell/
│ │ │ │ └── recipe.toml
│ │ │ ├── libass/
│ │ │ │ └── recipe.toml
│ │ │ ├── libatomic-ops/
│ │ │ │ └── recipe.toml
│ │ │ ├── libbluray/
│ │ │ │ └── recipe.toml
│ │ │ ├── libbotan/
│ │ │ │ └── recipe.toml
│ │ │ ├── libbrotli/
│ │ │ │ └── recipe.toml
│ │ │ ├── libbsd/
│ │ │ │ └── recipe.toml
│ │ │ ├── libburn/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcaca/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcamera/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcap/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcdio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcdio-paranoia/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcdr/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcpuid/
│ │ │ │ └── recipe.toml
│ │ │ ├── libcups/
│ │ │ │ └── recipe.toml
│ │ │ ├── libde265/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdecor/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdeflate/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdmx/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdotconf/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdouble-conversion/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdvbpsi/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdvdcss/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdvdnav/
│ │ │ │ └── recipe.toml
│ │ │ ├── libdvdread/
│ │ │ │ └── recipe.toml
│ │ │ ├── libebml/
│ │ │ │ └── recipe.toml
│ │ │ ├── libedit/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libeditline/
│ │ │ │ └── recipe.toml
│ │ │ ├── libeigen/
│ │ │ │ └── recipe.toml
│ │ │ ├── libenet/
│ │ │ │ └── recipe.toml
│ │ │ ├── liberty-eiffel/
│ │ │ │ └── recipe.toml
│ │ │ ├── libev/
│ │ │ │ └── recipe.toml
│ │ │ ├── libevdev/
│ │ │ │ └── recipe.toml
│ │ │ ├── libevent/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfmt/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfs/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfuse2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libfuse3/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgav1/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgc/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgcrypt/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libgdal/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgit2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libglm/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgloox/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgpg-error/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgpm/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgrantlee/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgsl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libgumbo/
│ │ │ │ └── recipe.toml
│ │ │ ├── libharu/
│ │ │ │ └── recipe.toml
│ │ │ ├── libhidapi/
│ │ │ │ └── recipe.toml
│ │ │ ├── libhyphen/
│ │ │ │ └── recipe.toml
│ │ │ ├── libicu/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libimath/
│ │ │ │ └── recipe.toml
│ │ │ ├── libimmer/
│ │ │ │ └── recipe.toml
│ │ │ ├── libinput/
│ │ │ │ └── recipe.toml
│ │ │ ├── libisoburn/
│ │ │ │ └── recipe.toml
│ │ │ ├── libisofs/
│ │ │ │ └── recipe.toml
│ │ │ ├── libjasper/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblager/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblapack/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblcms/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblensfun/
│ │ │ │ └── recipe.toml
│ │ │ ├── liblo/
│ │ │ │ └── recipe.toml
│ │ │ ├── libm17n/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmad/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmd/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmpeg2/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmtp/
│ │ │ │ └── recipe.toml
│ │ │ ├── libmypaint/
│ │ │ │ └── recipe.toml
│ │ │ ├── libnlopt/
│ │ │ │ └── recipe.toml
│ │ │ ├── libnsl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libonig/
│ │ │ │ └── recipe.toml
│ │ │ ├── libotf/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpcap/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpcsclite/
│ │ │ │ └── recipe.toml
│ │ │ ├── libplist/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpoppler/
│ │ │ │ └── recipe.toml
│ │ │ ├── libportaudio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpthread-stubs/
│ │ │ │ └── recipe.toml
│ │ │ ├── libpugixml/
│ │ │ │ └── recipe.toml
│ │ │ ├── libqalculate/
│ │ │ │ └── recipe.toml
│ │ │ ├── libqrcodegenc/
│ │ │ │ └── recipe.toml
│ │ │ ├── libraptor2/
│ │ │ │ └── recipe.toml
│ │ │ ├── librasqal/
│ │ │ │ └── recipe.toml
│ │ │ ├── librdf/
│ │ │ │ └── recipe.toml
│ │ │ ├── librevenge/
│ │ │ │ └── recipe.toml
│ │ │ ├── librist/
│ │ │ │ └── recipe.toml
│ │ │ ├── librkcommon/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsamplerate/
│ │ │ │ └── recipe.toml
│ │ │ ├── libskia/
│ │ │ │ └── recipe.toml
│ │ │ ├── libslirp/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsmooth/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsndfile/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsoundio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libspdlog/
│ │ │ │ └── recipe.toml
│ │ │ ├── libspiro/
│ │ │ │ └── recipe.toml
│ │ │ ├── libsrt/
│ │ │ │ └── recipe.toml
│ │ │ ├── libssh/
│ │ │ │ └── recipe.toml
│ │ │ ├── libstatgrab/
│ │ │ │ └── recipe.toml
│ │ │ ├── libstk/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtasn1/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtatsu/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtheora/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtickit/
│ │ │ │ └── recipe.toml
│ │ │ ├── libtiff/
│ │ │ │ └── recipe.toml
│ │ │ ├── libunibreak/
│ │ │ │ └── recipe.toml
│ │ │ ├── libunistring/
│ │ │ │ └── recipe.toml
│ │ │ ├── libunwind/
│ │ │ │ └── recipe.toml
│ │ │ ├── liburiparser/
│ │ │ │ └── recipe.toml
│ │ │ ├── libusb/
│ │ │ │ └── recipe.toml
│ │ │ ├── libuuid/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── libuuid-ossp/
│ │ │ │ └── recipe.toml
│ │ │ ├── libva/
│ │ │ │ └── recipe.toml
│ │ │ ├── libvisio/
│ │ │ │ └── recipe.toml
│ │ │ ├── libvncserver/
│ │ │ │ └── recipe.toml
│ │ │ ├── libvterm/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwebsocket++/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwebsockets/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwmf/
│ │ │ │ └── recipe.toml
│ │ │ ├── libwpd/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxcrypt/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxcursor/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxkbcommon/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxsimd/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxss/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxtl/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxtst/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxv/
│ │ │ │ └── recipe.toml
│ │ │ ├── libxvmc/
│ │ │ │ └── recipe.toml
│ │ │ ├── libyaml/
│ │ │ │ └── recipe.toml
│ │ │ ├── libzimg/
│ │ │ │ └── recipe.toml
│ │ │ ├── libzug/
│ │ │ │ └── recipe.toml
│ │ │ ├── libzvbi/
│ │ │ │ └── recipe.toml
│ │ │ ├── lilv/
│ │ │ │ └── recipe.toml
│ │ │ ├── liquid-dsp/
│ │ │ │ └── recipe.toml
│ │ │ ├── livedotcom/
│ │ │ │ └── recipe.toml
│ │ │ ├── lrdf/
│ │ │ │ └── recipe.toml
│ │ │ ├── lv2/
│ │ │ │ └── recipe.toml
│ │ │ ├── lzlib/
│ │ │ │ └── recipe.toml
│ │ │ ├── m4/
│ │ │ │ └── recipe.toml
│ │ │ ├── maven/
│ │ │ │ └── recipe.toml
│ │ │ ├── mimalloc/
│ │ │ │ └── recipe.toml
│ │ │ ├── mlt/
│ │ │ │ └── recipe.toml
│ │ │ ├── mozangle/
│ │ │ │ └── recipe.toml
│ │ │ ├── musepack/
│ │ │ │ └── recipe.toml
│ │ │ ├── nlohmann-json/
│ │ │ │ └── recipe.toml
│ │ │ ├── oidn/
│ │ │ │ └── recipe.toml
│ │ │ ├── onednn/
│ │ │ │ └── recipe.toml
│ │ │ ├── onetbb/
│ │ │ │ └── recipe.toml
│ │ │ ├── openblas/
│ │ │ │ └── recipe.toml
│ │ │ ├── opencolorio/
│ │ │ │ └── recipe.toml
│ │ │ ├── opencv4/
│ │ │ │ └── recipe.toml
│ │ │ ├── openexr/
│ │ │ │ └── recipe.toml
│ │ │ ├── openimageio/
│ │ │ │ └── recipe.toml
│ │ │ ├── openjpeg/
│ │ │ │ └── recipe.toml
│ │ │ ├── openmpi/
│ │ │ │ └── recipe.toml
│ │ │ ├── openvkl/
│ │ │ │ └── recipe.toml
│ │ │ ├── pjsip/
│ │ │ │ └── recipe.toml
│ │ │ ├── popt/
│ │ │ │ └── recipe.toml
│ │ │ ├── projectm/
│ │ │ │ └── recipe.toml
│ │ │ ├── pystring/
│ │ │ │ └── recipe.toml
│ │ │ ├── quantlib/
│ │ │ │ └── recipe.toml
│ │ │ ├── raylib/
│ │ │ │ └── recipe.toml
│ │ │ ├── rdflib/
│ │ │ │ └── recipe.toml
│ │ │ ├── rnnoise/
│ │ │ │ └── recipe.toml
│ │ │ ├── rubberband/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustls-openssl-compat/
│ │ │ │ └── recipe.toml
│ │ │ ├── scotch/
│ │ │ │ └── recipe.toml
│ │ │ ├── sdl-pango/
│ │ │ │ └── recipe.toml
│ │ │ ├── sdl2-net/
│ │ │ │ └── recipe.toml
│ │ │ ├── sdl2-pango/
│ │ │ │ └── recipe.toml
│ │ │ ├── sdl3/
│ │ │ │ └── recipe.toml
│ │ │ ├── simdjson/
│ │ │ │ └── recipe.toml
│ │ │ ├── simdutf/
│ │ │ │ └── recipe.toml
│ │ │ ├── snappy/
│ │ │ │ └── recipe.toml
│ │ │ ├── sord/
│ │ │ │ └── recipe.toml
│ │ │ ├── sratom/
│ │ │ │ └── recipe.toml
│ │ │ ├── suil/
│ │ │ │ └── recipe.toml
│ │ │ ├── t4kcommon/
│ │ │ │ └── recipe.toml
│ │ │ ├── taglib/
│ │ │ │ └── recipe.toml
│ │ │ ├── tree-sitter/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── twolame/
│ │ │ │ └── recipe.toml
│ │ │ ├── vamp-plugin-sdk/
│ │ │ │ └── recipe.toml
│ │ │ ├── volk/
│ │ │ │ └── recipe.toml
│ │ │ ├── webkit/
│ │ │ │ └── recipe.toml
│ │ │ ├── wxpython/
│ │ │ │ └── recipe.toml
│ │ │ ├── wxwidgets-gtk3/
│ │ │ │ └── recipe.toml
│ │ │ ├── xxhash/
│ │ │ │ └── recipe.toml
│ │ │ ├── yajl/
│ │ │ │ └── recipe.toml
│ │ │ └── zlib-ng/
│ │ │ └── recipe.toml
│ │ ├── perf/
│ │ │ └── openmp/
│ │ │ └── recipe.toml
│ │ ├── qt/
│ │ │ ├── qt4/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt5/
│ │ │ │ ├── qt5-3d/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-activeqt/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-base/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-charts/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-coap/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-connectivity/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-datavis3d/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-declarative/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-doc/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-full/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-gamepad/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-graphical-effects/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-imageformats/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-knx/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-location/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-lottie/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-mqtt/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-multimedia/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-networkauth/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-opcua/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-purchasing/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-quick3d/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-quickcontrols/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-quickcontrols2/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-quicktimeline/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-remoteobjects/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-script/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-scxml/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-sensors/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-serialbus/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-serialport/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-speech/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-svg/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-tools/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-tqtc/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-translations/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-virtualkeyboard/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-wayland/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webchannel/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webengine/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webglplugin/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webkit/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-websockets/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-webview/
│ │ │ │ │ └── recipe.toml
│ │ │ │ ├── qt5-x11extras/
│ │ │ │ │ └── recipe.toml
│ │ │ │ └── qt5-xmlpatterns/
│ │ │ │ └── recipe.toml
│ │ │ └── qt6/
│ │ │ ├── qt6-3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-activeqt/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-base/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-charts/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-connectivity/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-datavis3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-declarative/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-doc/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-full/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-graphs/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-grpc/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-httpserver/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-imageformats/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-languageserver/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-location/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-lottie/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-multimedia/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-networkauth/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-positioning/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-qt5compat/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-quick3d/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-quick3dphysics/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-quickeffectmaker/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-quicktimeline/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-remoteobjects/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-scxml/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-sensors/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-serialbus/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-serialport/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-shadertools/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-speech/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-svg/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-tools/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-translations/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-virtualkeyboard/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-wayland/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-webchannel/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-webengine/
│ │ │ │ └── recipe.toml
│ │ │ ├── qt6-websockets/
│ │ │ │ └── recipe.toml
│ │ │ └── qt6-webview/
│ │ │ └── recipe.toml
│ │ ├── security/
│ │ │ └── libacl/
│ │ │ └── recipe.toml
│ │ ├── text/
│ │ │ └── hunspell/
│ │ │ └── recipe.toml
│ │ ├── tikv-jemallocator/
│ │ │ └── recipe.toml
│ │ ├── tls/
│ │ │ ├── gnutls3/
│ │ │ │ └── recipe.toml
│ │ │ ├── mbedtls3/
│ │ │ │ └── recipe.toml
│ │ │ ├── mbedtls4/
│ │ │ │ └── recipe.toml
│ │ │ ├── openssl3/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ └── wolfssl5/
│ │ │ └── recipe.toml
│ │ └── video/
│ │ ├── libgif/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── libmatroska/
│ │ │ └── recipe.toml
│ │ ├── libopenshot/
│ │ │ └── recipe.toml
│ │ └── libvpx/
│ │ └── recipe.toml
│ ├── logging/
│ │ └── krapslog/
│ │ └── recipe.toml
│ ├── math/
│ │ ├── cosmic-ext-calculator/
│ │ │ └── recipe.toml
│ │ ├── fend/
│ │ │ └── recipe.toml
│ │ ├── fractal-explorer/
│ │ │ └── recipe.toml
│ │ ├── kalc/
│ │ │ └── recipe.toml
│ │ ├── kalker/
│ │ │ └── recipe.toml
│ │ ├── numbat/
│ │ │ └── recipe.toml
│ │ ├── numr/
│ │ │ └── recipe.toml
│ │ ├── primesieve/
│ │ │ └── recipe.toml
│ │ ├── qalculate-gtk/
│ │ │ └── recipe.toml
│ │ └── rink/
│ │ └── recipe.toml
│ ├── media/
│ │ └── effy/
│ │ └── recipe.toml
│ ├── mobile/
│ │ └── android-tools/
│ │ └── recipe.toml
│ ├── monitors/
│ │ ├── bandwhich/
│ │ │ └── recipe.toml
│ │ ├── bottom/
│ │ │ └── recipe.toml
│ │ ├── conky/
│ │ │ └── recipe.toml
│ │ ├── cosmic-ext-observatory/
│ │ │ └── recipe.toml
│ │ ├── fluere/
│ │ │ └── recipe.toml
│ │ ├── hearth/
│ │ │ └── recipe.toml
│ │ ├── htop/
│ │ │ └── recipe.toml
│ │ ├── latencymon/
│ │ │ └── recipe.toml
│ │ ├── mountstatus/
│ │ │ └── recipe.toml
│ │ ├── resources/
│ │ │ └── recipe.toml
│ │ ├── rtop/
│ │ │ └── recipe.toml
│ │ ├── sentrum/
│ │ │ └── recipe.toml
│ │ ├── serial-monitor-rs/
│ │ │ └── recipe.toml
│ │ ├── sniffnet/
│ │ │ └── recipe.toml
│ │ ├── socktop/
│ │ │ └── recipe.toml
│ │ ├── sysinfo/
│ │ │ └── recipe.toml
│ │ └── xtop/
│ │ └── recipe.toml
│ ├── net/
│ │ ├── admin/
│ │ │ └── webmin/
│ │ │ └── recipe.toml
│ │ ├── analysis/
│ │ │ ├── angryether-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── echo/
│ │ │ │ └── recipe.toml
│ │ │ ├── pepe/
│ │ │ │ └── recipe.toml
│ │ │ ├── r-lanscan/
│ │ │ │ └── recipe.toml
│ │ │ ├── rkik/
│ │ │ │ └── recipe.toml
│ │ │ └── ttl/
│ │ │ └── recipe.toml
│ │ ├── bittorrent/
│ │ │ ├── aquatic-udp/
│ │ │ │ └── recipe.toml
│ │ │ ├── attractorr/
│ │ │ │ └── recipe.toml
│ │ │ ├── btpd/
│ │ │ │ └── recipe.toml
│ │ │ ├── rtorrent/
│ │ │ │ └── recipe.toml
│ │ │ ├── superseedr/
│ │ │ │ └── recipe.toml
│ │ │ ├── synapse-bt/
│ │ │ │ └── recipe.toml
│ │ │ ├── transg-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── transmission-cli/
│ │ │ │ └── recipe.toml
│ │ │ ├── transmission-daemon/
│ │ │ │ └── recipe.toml
│ │ │ ├── transmission-gtk/
│ │ │ │ └── recipe.toml
│ │ │ └── webtorrent-cli/
│ │ │ └── recipe.toml
│ │ ├── chat/
│ │ │ ├── bitchat-tui/
│ │ │ │ └── recipe.toml
│ │ │ ├── gosuto/
│ │ │ │ └── recipe.toml
│ │ │ ├── halloy/
│ │ │ │ └── recipe.toml
│ │ │ ├── iamb/
│ │ │ │ └── recipe.toml
│ │ │ ├── jami/
│ │ │ │ └── recipe.toml
│ │ │ ├── pidgin/
│ │ │ │ └── recipe.toml
│ │ │ ├── telegram-desktop/
│ │ │ │ └── recipe.toml
│ │ │ ├── termchat/
│ │ │ │ └── recipe.toml
│ │ │ └── tiny/
│ │ │ └── recipe.toml
│ │ ├── download/
│ │ │ ├── aim/
│ │ │ │ └── recipe.toml
│ │ │ ├── anime-downloader/
│ │ │ │ └── recipe.toml
│ │ │ ├── apkeep/
│ │ │ │ └── recipe.toml
│ │ │ ├── aria2/
│ │ │ │ └── recipe.toml
│ │ │ ├── curlio/
│ │ │ │ └── recipe.toml
│ │ │ ├── kget/
│ │ │ │ └── recipe.toml
│ │ │ ├── kitget/
│ │ │ │ └── recipe.toml
│ │ │ ├── parabolic/
│ │ │ │ └── recipe.toml
│ │ │ ├── rusty-psn-cli/
│ │ │ │ └── recipe.toml
│ │ │ ├── rusty-psn-gui/
│ │ │ │ └── recipe.toml
│ │ │ ├── wget2/
│ │ │ │ └── recipe.toml
│ │ │ ├── yaydl/
│ │ │ │ └── recipe.toml
│ │ │ ├── youtube-tui/
│ │ │ │ └── recipe.toml
│ │ │ └── yt-dlp/
│ │ │ └── recipe.toml
│ │ ├── email/
│ │ │ ├── neverest/
│ │ │ │ └── recipe.toml
│ │ │ └── thunderbird/
│ │ │ ├── mozconfig
│ │ │ └── recipe.toml
│ │ ├── ftp/
│ │ │ ├── filezilla-client/
│ │ │ │ └── recipe.toml
│ │ │ ├── filezilla-server/
│ │ │ │ └── recipe.toml
│ │ │ └── unftp/
│ │ │ └── recipe.toml
│ │ ├── gemini/
│ │ │ └── lagrange/
│ │ │ └── recipe.toml
│ │ ├── http/
│ │ │ ├── apache-httpd/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── easyp/
│ │ │ │ └── recipe.toml
│ │ │ ├── ferron/
│ │ │ │ └── recipe.toml
│ │ │ ├── freenginx/
│ │ │ │ └── recipe.toml
│ │ │ ├── http-server-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── lighttpd/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── miniserve/
│ │ │ │ ├── recipe.toml
│ │ │ │ └── redox.patch
│ │ │ ├── quark/
│ │ │ │ └── recipe.toml
│ │ │ ├── sozu/
│ │ │ │ └── recipe.toml
│ │ │ ├── sws/
│ │ │ │ └── recipe.toml
│ │ │ └── thttpd/
│ │ │ └── recipe.toml
│ │ ├── lan/
│ │ │ ├── lantun/
│ │ │ │ └── recipe.toml
│ │ │ ├── malai/
│ │ │ │ └── recipe.toml
│ │ │ ├── zerotier/
│ │ │ │ └── recipe.toml
│ │ │ └── ztui/
│ │ │ └── recipe.toml
│ │ ├── monitor/
│ │ │ ├── network-monitor-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustnet/
│ │ │ │ └── recipe.toml
│ │ │ └── somo/
│ │ │ └── recipe.toml
│ │ ├── onion-routing/
│ │ │ ├── arti/
│ │ │ │ └── recipe.toml
│ │ │ ├── i2pd/
│ │ │ │ └── recipe.toml
│ │ │ ├── tor/
│ │ │ │ └── recipe.toml
│ │ │ └── tor-browser/
│ │ │ ├── mozconfig
│ │ │ └── recipe.toml
│ │ ├── other/
│ │ │ ├── agnos/
│ │ │ │ └── recipe.toml
│ │ │ ├── altuntun/
│ │ │ │ └── recipe.toml
│ │ │ ├── arp-scanner/
│ │ │ │ └── recipe.toml
│ │ │ ├── bita/
│ │ │ │ └── recipe.toml
│ │ │ ├── bore/
│ │ │ │ └── recipe.toml
│ │ │ ├── celeste/
│ │ │ │ └── recipe.toml
│ │ │ ├── cobalt/
│ │ │ │ └── recipe.toml
│ │ │ ├── crab-dlna/
│ │ │ │ └── recipe.toml
│ │ │ ├── dnst/
│ │ │ │ └── recipe.toml
│ │ │ ├── dqy/
│ │ │ │ └── recipe.toml
│ │ │ ├── drill/
│ │ │ │ └── recipe.toml
│ │ │ ├── dufs/
│ │ │ │ └── recipe.toml
│ │ │ ├── floresta/
│ │ │ │ └── recipe.toml
│ │ │ ├── guacamole-client/
│ │ │ │ └── recipe.toml
│ │ │ ├── gws/
│ │ │ │ └── recipe.toml
│ │ │ ├── havn/
│ │ │ │ └── recipe.toml
│ │ │ ├── hinoki/
│ │ │ │ └── recipe.toml
│ │ │ ├── hurl/
│ │ │ │ └── recipe.toml
│ │ │ ├── impala/
│ │ │ │ └── recipe.toml
│ │ │ ├── lldap/
│ │ │ │ └── recipe.toml
│ │ │ ├── lychee/
│ │ │ │ └── recipe.toml
│ │ │ ├── lynx/
│ │ │ │ └── recipe.toml
│ │ │ ├── meli/
│ │ │ │ └── recipe.toml
│ │ │ ├── miniupnpc/
│ │ │ │ └── recipe.toml
│ │ │ ├── moonfire-nvr-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── netop/
│ │ │ │ └── recipe.toml
│ │ │ ├── netscanner/
│ │ │ │ └── recipe.toml
│ │ │ ├── nmap/
│ │ │ │ └── recipe.toml
│ │ │ ├── nspr/
│ │ │ │ └── recipe.toml
│ │ │ ├── nss/
│ │ │ │ └── recipe.toml
│ │ │ ├── nss-pem/
│ │ │ │ └── recipe.toml
│ │ │ ├── oha/
│ │ │ │ └── recipe.toml
│ │ │ ├── pavao/
│ │ │ │ └── recipe.toml
│ │ │ ├── phantun/
│ │ │ │ └── recipe.toml
│ │ │ ├── quincy/
│ │ │ │ └── recipe.toml
│ │ │ ├── rallyup/
│ │ │ │ └── recipe.toml
│ │ │ ├── rathole/
│ │ │ │ └── recipe.toml
│ │ │ ├── realm/
│ │ │ │ └── recipe.toml
│ │ │ ├── rlt/
│ │ │ │ └── recipe.toml
│ │ │ ├── rqbit/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustscan/
│ │ │ │ └── recipe.toml
│ │ │ ├── samba/
│ │ │ │ ├── answers.txt
│ │ │ │ └── recipe.toml
│ │ │ ├── sandhole/
│ │ │ │ └── recipe.toml
│ │ │ ├── slumber/
│ │ │ │ └── recipe.toml
│ │ │ ├── smb-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── socat/
│ │ │ │ └── recipe.toml
│ │ │ ├── speedtest-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── spiko/
│ │ │ │ └── recipe.toml
│ │ │ ├── spis/
│ │ │ │ └── recipe.toml
│ │ │ ├── srsran-4g/
│ │ │ │ └── recipe.toml
│ │ │ ├── srsran-project/
│ │ │ │ └── recipe.toml
│ │ │ ├── tobaru/
│ │ │ │ └── recipe.toml
│ │ │ ├── trippy/
│ │ │ │ └── recipe.toml
│ │ │ ├── turn-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── unbound/
│ │ │ │ └── recipe.toml
│ │ │ ├── updns/
│ │ │ │ └── recipe.toml
│ │ │ ├── varia/
│ │ │ │ └── recipe.toml
│ │ │ ├── vimini/
│ │ │ │ └── recipe.toml
│ │ │ ├── vopono/
│ │ │ │ └── recipe.toml
│ │ │ ├── vpncloud/
│ │ │ │ └── recipe.toml
│ │ │ ├── vsd/
│ │ │ │ └── recipe.toml
│ │ │ ├── wireguard-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── wstunnel/
│ │ │ │ └── recipe.toml
│ │ │ └── yazi/
│ │ │ └── recipe.toml
│ │ ├── p2p/
│ │ │ ├── dumbpipe/
│ │ │ │ └── recipe.toml
│ │ │ ├── easytier/
│ │ │ │ └── recipe.toml
│ │ │ └── oku/
│ │ │ └── recipe.toml
│ │ ├── proxy/
│ │ │ ├── hitch/
│ │ │ │ └── recipe.toml
│ │ │ └── stunnel/
│ │ │ └── recipe.toml
│ │ ├── remote/
│ │ │ ├── bayesian-ssh/
│ │ │ │ └── recipe.toml
│ │ │ ├── do-ssh/
│ │ │ │ └── recipe.toml
│ │ │ ├── ethersync/
│ │ │ │ └── recipe.toml
│ │ │ ├── iroh-ssh/
│ │ │ │ └── recipe.toml
│ │ │ ├── jupii/
│ │ │ │ └── recipe.toml
│ │ │ ├── remmina/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustconn/
│ │ │ │ └── recipe.toml
│ │ │ ├── sanzu/
│ │ │ │ └── recipe.toml
│ │ │ ├── shared/
│ │ │ │ └── recipe.toml
│ │ │ ├── ssh-portfolio/
│ │ │ │ └── recipe.toml
│ │ │ ├── tigervnc/
│ │ │ │ └── recipe.toml
│ │ │ └── zeco/
│ │ │ └── recipe.toml
│ │ ├── scan/
│ │ │ └── netpeek/
│ │ │ └── recipe.toml
│ │ ├── security/
│ │ │ └── yadb/
│ │ │ └── recipe.toml
│ │ ├── server/
│ │ │ ├── bitcoin-core/
│ │ │ │ └── recipe.toml
│ │ │ ├── devserver/
│ │ │ │ └── recipe.toml
│ │ │ ├── doh-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── dora/
│ │ │ │ └── recipe.toml
│ │ │ ├── electrs/
│ │ │ │ └── recipe.toml
│ │ │ ├── encrypted-dns-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── feox-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── guacamole-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── nea/
│ │ │ │ └── recipe.toml
│ │ │ ├── nostr-rs-relay/
│ │ │ │ └── recipe.toml
│ │ │ ├── quick-serve/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustdesk-server/
│ │ │ │ └── recipe.toml
│ │ │ ├── rustypaste/
│ │ │ │ └── recipe.toml
│ │ │ ├── shoes/
│ │ │ │ └── recipe.toml
│ │ │ ├── spadesx/
│ │ │ │ └── recipe.toml
│ │ │ ├── toe-beans/
│ │ │ │ └── recipe.toml
│ │ │ └── vproxy/
│ │ │ └── recipe.toml
│ │ ├── sharing/
│ │ │ ├── gday/
│ │ │ │ └── recipe.toml
│ │ │ ├── hakanai/
│ │ │ │ └── recipe.toml
│ │ │ ├── lan-mouse/
│ │ │ │ └── recipe.toml
│ │ │ ├── magic-wormhole-rs/
│ │ │ │ └── recipe.toml
│ │ │ ├── microbin/
│ │ │ │ └── recipe.toml
│ │ │ ├── qft/
│ │ │ │ └── recipe.toml
│ │ │ ├── sendme/
│ │ │ │ └── recipe.toml
│ │ │ └── warp/
│ │ │ └── recipe.toml
│ │ ├── social/
│ │ │ ├── nostui/
│ │ │ │ └── recipe.toml
│ │ │ ├── perch/
│ │ │ │ └── recipe.toml
│ │ │ ├── reddix/
│ │ │ │ └── recipe.toml
│ │ │ └── tuba/
│ │ │ └── recipe.toml
│ │ └── ssh/
│ │ ├── color-ssh/
│ │ │ └── recipe.toml
│ │ ├── dropbear/
│ │ │ └── recipe.toml
│ │ ├── fastssh/
│ │ │ └── recipe.toml
│ │ ├── filessh/
│ │ │ └── recipe.toml
│ │ ├── mosh/
│ │ │ └── recipe.toml
│ │ ├── russh/
│ │ │ └── recipe.toml
│ │ ├── ssh-pilot/
│ │ │ └── recipe.toml
│ │ ├── sshfs/
│ │ │ └── recipe.toml
│ │ ├── sshs/
│ │ │ └── recipe.toml
│ │ ├── sshx/
│ │ │ └── recipe.toml
│ │ └── termirs/
│ │ └── recipe.toml
│ ├── news/
│ │ ├── feedr/
│ │ │ └── recipe.toml
│ │ ├── moccasin/
│ │ │ └── recipe.toml
│ │ ├── news-rs/
│ │ │ └── recipe.toml
│ │ ├── newsflash/
│ │ │ └── recipe.toml
│ │ └── tuifeed/
│ │ └── recipe.toml
│ ├── office/
│ │ ├── cactui/
│ │ │ └── recipe.toml
│ │ ├── doxx/
│ │ │ └── recipe.toml
│ │ ├── letters/
│ │ │ └── recipe.toml
│ │ ├── libreoffice/
│ │ │ └── recipe.toml
│ │ ├── libreoffice-dictionaries/
│ │ │ └── recipe.toml
│ │ ├── libreoffice-translations/
│ │ │ └── recipe.toml
│ │ ├── sheetsui/
│ │ │ └── recipe.toml
│ │ ├── xleak/
│ │ │ └── recipe.toml
│ │ └── zathura/
│ │ └── recipe.toml
│ ├── players/
│ │ ├── clapper/
│ │ │ └── recipe.toml
│ │ ├── cmus/
│ │ │ └── recipe.toml
│ │ ├── cosmic-player/
│ │ │ ├── manifest
│ │ │ └── recipe.toml
│ │ ├── festival/
│ │ │ └── recipe.toml
│ │ ├── glide/
│ │ │ └── recipe.toml
│ │ ├── kronos/
│ │ │ └── recipe.toml
│ │ ├── mpv/
│ │ │ └── recipe.toml
│ │ ├── podcasts/
│ │ │ └── recipe.toml
│ │ ├── pragha/
│ │ │ └── recipe.toml
│ │ ├── recordbox/
│ │ │ └── recipe.toml
│ │ ├── rustcloud/
│ │ │ └── recipe.toml
│ │ ├── rustic/
│ │ │ └── recipe.toml
│ │ ├── spoify/
│ │ │ └── recipe.toml
│ │ ├── spotify-player/
│ │ │ └── recipe.toml
│ │ ├── symphonia-play/
│ │ │ └── recipe.toml
│ │ ├── tap/
│ │ │ └── recipe.toml
│ │ ├── termusic/
│ │ │ └── recipe.toml
│ │ ├── tplay/
│ │ │ └── recipe.toml
│ │ ├── ttv/
│ │ │ └── recipe.toml
│ │ ├── vlc/
│ │ │ └── recipe.toml
│ │ └── ytermusic/
│ │ └── recipe.toml
│ ├── recorders/
│ │ ├── asciinema/
│ │ │ └── recipe.toml
│ │ ├── autocast/
│ │ │ └── recipe.toml
│ │ ├── gpu-screen-recorder/
│ │ │ └── recipe.toml
│ │ ├── gpu-screen-recorder-gtk/
│ │ │ └── recipe.toml
│ │ └── obs-studio/
│ │ └── recipe.toml
│ ├── scan/
│ │ ├── sane-backends/
│ │ │ └── recipe.toml
│ │ └── zbar/
│ │ └── recipe.toml
│ ├── science/
│ │ ├── alevin-fry/
│ │ │ └── recipe.toml
│ │ ├── astroterm/
│ │ │ └── recipe.toml
│ │ ├── celestia/
│ │ │ └── recipe.toml
│ │ ├── celestia-data/
│ │ │ └── recipe.toml
│ │ ├── chem-creator/
│ │ │ └── recipe.toml
│ │ ├── cosmic-weather/
│ │ │ └── recipe.toml
│ │ ├── gaia-sky/
│ │ │ └── recipe.toml
│ │ ├── gromacs/
│ │ │ └── recipe.toml
│ │ ├── mrbayes/
│ │ │ └── recipe.toml
│ │ ├── nucleus/
│ │ │ └── recipe.toml
│ │ ├── oarfish/
│ │ │ └── recipe.toml
│ │ ├── openfoam/
│ │ │ └── recipe.toml
│ │ ├── openspace/
│ │ │ └── recipe.toml
│ │ ├── piscem/
│ │ │ └── recipe.toml
│ │ ├── polypolish/
│ │ │ └── recipe.toml
│ │ ├── qmcpack/
│ │ │ └── recipe.toml
│ │ ├── scidataflow/
│ │ │ └── recipe.toml
│ │ ├── simpleaf/
│ │ │ └── recipe.toml
│ │ ├── siril/
│ │ │ └── recipe.toml
│ │ ├── sonde/
│ │ │ └── recipe.toml
│ │ ├── specfem2d/
│ │ │ └── recipe.toml
│ │ ├── specfem3d/
│ │ │ └── recipe.toml
│ │ ├── specfem3d-globe/
│ │ │ └── recipe.toml
│ │ ├── stellarium/
│ │ │ └── recipe.toml
│ │ ├── vidoxide/
│ │ │ └── recipe.toml
│ │ ├── weather/
│ │ │ └── cosmic-ext-forecast/
│ │ │ └── recipe.toml
│ │ └── wthrr/
│ │ └── recipe.toml
│ ├── search/
│ │ ├── clapgrep/
│ │ │ └── recipe.toml
│ │ ├── fzf/
│ │ │ └── recipe.toml
│ │ ├── localsearch/
│ │ │ └── recipe.toml
│ │ ├── lstr/
│ │ │ └── recipe.toml
│ │ ├── scout/
│ │ │ └── recipe.toml
│ │ ├── srgn/
│ │ │ └── recipe.toml
│ │ ├── television/
│ │ │ └── recipe.toml
│ │ └── ugrep/
│ │ └── recipe.toml
│ ├── security/
│ │ ├── airgorah/
│ │ │ └── recipe.toml
│ │ ├── angryoxide/
│ │ │ └── recipe.toml
│ │ ├── apbf/
│ │ │ └── recipe.toml
│ │ ├── authenticator/
│ │ │ └── recipe.toml
│ │ ├── authoscope/
│ │ │ └── recipe.toml
│ │ ├── binsec/
│ │ │ └── recipe.toml
│ │ ├── breakmancer/
│ │ │ └── recipe.toml
│ │ ├── burrow/
│ │ │ └── recipe.toml
│ │ ├── capstone/
│ │ │ └── recipe.toml
│ │ ├── cargo-scan/
│ │ │ └── recipe.toml
│ │ ├── clamav/
│ │ │ └── recipe.toml
│ │ ├── cotp/
│ │ │ └── recipe.toml
│ │ ├── deoptimizer/
│ │ │ └── recipe.toml
│ │ ├── dfir-toolkit/
│ │ │ └── recipe.toml
│ │ ├── feroxbuster/
│ │ │ └── recipe.toml
│ │ ├── flawz/
│ │ │ └── recipe.toml
│ │ ├── gnupg/
│ │ │ └── recipe.toml
│ │ ├── gnupg-lts/
│ │ │ └── recipe.toml
│ │ ├── john-the-ripper/
│ │ │ └── recipe.toml
│ │ ├── kanha/
│ │ │ └── recipe.toml
│ │ ├── keepassxc/
│ │ │ └── recipe.toml
│ │ ├── keyscope/
│ │ │ └── recipe.toml
│ │ ├── lynis/
│ │ │ └── recipe.toml
│ │ ├── motus/
│ │ │ └── recipe.toml
│ │ ├── nitrocli/
│ │ │ └── recipe.toml
│ │ ├── openpgp-ca/
│ │ │ └── recipe.toml
│ │ ├── otti/
│ │ │ └── recipe.toml
│ │ ├── pass/
│ │ │ └── recipe.toml
│ │ ├── please/
│ │ │ └── recipe.toml
│ │ ├── plutus-rustus/
│ │ │ └── recipe.toml
│ │ ├── rage/
│ │ │ └── recipe.toml
│ │ ├── retdec/
│ │ │ └── recipe.toml
│ │ ├── rowhammer-test/
│ │ │ └── recipe.toml
│ │ ├── rshijack/
│ │ │ └── recipe.toml
│ │ ├── rustyvault/
│ │ │ └── recipe.toml
│ │ ├── safecloset/
│ │ │ └── recipe.toml
│ │ ├── sn0int/
│ │ │ └── recipe.toml
│ │ ├── sniffglue/
│ │ │ └── recipe.toml
│ │ ├── sq/
│ │ │ └── recipe.toml
│ │ ├── sqop/
│ │ │ └── recipe.toml
│ │ ├── sqv/
│ │ │ └── recipe.toml
│ │ ├── sss-cli/
│ │ │ └── recipe.toml
│ │ ├── stegano/
│ │ │ └── recipe.toml
│ │ ├── sudo-rs/
│ │ │ └── recipe.toml
│ │ ├── tyr/
│ │ │ └── recipe.toml
│ │ ├── vagga/
│ │ │ └── recipe.toml
│ │ ├── veldora/
│ │ │ └── recipe.toml
│ │ ├── veracrypt/
│ │ │ └── recipe.toml
│ │ ├── weggli/
│ │ │ └── recipe.toml
│ │ ├── whyno/
│ │ │ └── recipe.toml
│ │ └── yara-x/
│ │ └── recipe.toml
│ ├── services/
│ │ ├── ala-lape/
│ │ │ └── recipe.toml
│ │ ├── busd/
│ │ │ └── recipe.toml
│ │ ├── coppwr/
│ │ │ └── recipe.toml
│ │ ├── dbus/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── elogind/
│ │ │ └── recipe.toml
│ │ ├── eudev/
│ │ │ └── recipe.toml
│ │ ├── grub/
│ │ │ └── recipe.toml
│ │ ├── hickory-dns/
│ │ │ └── recipe.toml
│ │ ├── jack/
│ │ │ └── recipe.toml
│ │ ├── lemurs/
│ │ │ └── recipe.toml
│ │ ├── limine/
│ │ │ └── recipe.toml
│ │ ├── ntpd-rs/
│ │ │ └── recipe.toml
│ │ ├── pipewire/
│ │ │ └── recipe.toml
│ │ ├── qpwgraph/
│ │ │ └── recipe.toml
│ │ ├── runst/
│ │ │ └── recipe.toml
│ │ ├── seatd/
│ │ │ └── recipe.toml
│ │ └── wireplumber/
│ │ └── recipe.toml
│ ├── shells/
│ │ ├── brush/
│ │ │ └── recipe.toml
│ │ ├── cicada/
│ │ │ └── recipe.toml
│ │ ├── dune/
│ │ │ └── recipe.toml
│ │ ├── fish-shell/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── nsh/
│ │ │ └── recipe.toml
│ │ ├── pure/
│ │ │ └── recipe.toml
│ │ ├── relish/
│ │ │ └── recipe.toml
│ │ ├── sheldon/
│ │ │ └── recipe.toml
│ │ └── zsh/
│ │ ├── 01_redox.patch
│ │ └── recipe.toml
│ ├── sim/
│ │ ├── coulomb/
│ │ │ └── recipe.toml
│ │ └── trmt/
│ │ └── recipe.toml
│ ├── sound/
│ │ ├── asak/
│ │ │ └── recipe.toml
│ │ ├── aubio/
│ │ │ └── recipe.toml
│ │ ├── audacity/
│ │ │ └── recipe.toml
│ │ ├── audeye/
│ │ │ └── recipe.toml
│ │ ├── auditorium/
│ │ │ └── recipe.toml
│ │ ├── chiptrack/
│ │ │ └── recipe.toml
│ │ ├── daw/
│ │ │ ├── ardour/
│ │ │ │ └── recipe.toml
│ │ │ ├── lmms/
│ │ │ │ └── recipe.toml
│ │ │ └── tek/
│ │ │ └── recipe.toml
│ │ ├── easy-effects/
│ │ │ └── recipe.toml
│ │ ├── freac/
│ │ │ └── recipe.toml
│ │ ├── fretboard/
│ │ │ └── recipe.toml
│ │ ├── jukebox-cli/
│ │ │ └── recipe.toml
│ │ ├── lang/
│ │ │ ├── chuck/
│ │ │ │ └── recipe.toml
│ │ │ └── glicol/
│ │ │ └── recipe.toml
│ │ ├── libpulse/
│ │ │ └── recipe.toml
│ │ ├── lookas/
│ │ │ └── recipe.toml
│ │ ├── miniaudicle/
│ │ │ └── recipe.toml
│ │ ├── mixxx/
│ │ │ └── recipe.toml
│ │ ├── mousai/
│ │ │ └── recipe.toml
│ │ ├── music/
│ │ │ ├── metronome/
│ │ │ │ └── recipe.toml
│ │ │ ├── mpd/
│ │ │ │ └── recipe.toml
│ │ │ ├── neothesia/
│ │ │ │ └── recipe.toml
│ │ │ └── tempo/
│ │ │ └── recipe.toml
│ │ ├── odin2/
│ │ │ └── recipe.toml
│ │ ├── pcmg/
│ │ │ └── recipe.toml
│ │ ├── piano-rs/
│ │ │ └── recipe.toml
│ │ ├── players/
│ │ │ ├── euphonica/
│ │ │ │ └── recipe.toml
│ │ │ ├── ncspot/
│ │ │ │ └── recipe.toml
│ │ │ └── rmpc/
│ │ │ └── recipe.toml
│ │ ├── rustyvibes/
│ │ │ └── recipe.toml
│ │ ├── ruxguitar/
│ │ │ └── recipe.toml
│ │ ├── scope-tui/
│ │ │ └── recipe.toml
│ │ ├── shezem-rs/
│ │ │ └── recipe.toml
│ │ ├── sndio/
│ │ │ └── recipe.toml
│ │ ├── sonobus/
│ │ │ └── recipe.toml
│ │ ├── sonusmix/
│ │ │ └── recipe.toml
│ │ ├── soundboard/
│ │ │ └── recipe.toml
│ │ ├── soundscope/
│ │ │ └── recipe.toml
│ │ ├── soundux/
│ │ │ └── recipe.toml
│ │ ├── speech-dispatcher/
│ │ │ └── recipe.toml
│ │ ├── swyh-rs/
│ │ │ └── recipe.toml
│ │ ├── tori/
│ │ │ └── recipe.toml
│ │ ├── tuisic/
│ │ │ └── recipe.toml
│ │ ├── viewer/
│ │ │ ├── cava/
│ │ │ │ └── recipe.toml
│ │ │ └── cavasik/
│ │ │ └── recipe.toml
│ │ ├── whis/
│ │ │ └── recipe.toml
│ │ └── wiremix/
│ │ └── recipe.toml
│ ├── storage/
│ │ ├── bmap-rs/
│ │ │ └── recipe.toml
│ │ ├── ezio/
│ │ │ └── recipe.toml
│ │ ├── kiorg/
│ │ │ └── recipe.toml
│ │ ├── stor-age/
│ │ │ └── recipe.toml
│ │ └── wiper/
│ │ └── recipe.toml
│ ├── sys-info/
│ │ ├── bb/
│ │ │ └── recipe.toml
│ │ ├── btop/
│ │ │ └── recipe.toml
│ │ ├── cpu-x/
│ │ │ └── recipe.toml
│ │ ├── cyme/
│ │ │ └── recipe.toml
│ │ ├── ffetch/
│ │ │ └── recipe.toml
│ │ ├── freshfetch/
│ │ │ └── recipe.toml
│ │ ├── macchina/
│ │ │ └── recipe.toml
│ │ ├── mission-center/
│ │ │ └── recipe.toml
│ │ ├── neofetch/
│ │ │ └── recipe.toml
│ │ ├── pciutils/
│ │ │ └── recipe.toml
│ │ ├── pfetch-rs/
│ │ │ └── recipe.toml
│ │ ├── process-viewer/
│ │ │ └── recipe.toml
│ │ ├── procps-ng/
│ │ │ └── recipe.toml
│ │ ├── procs/
│ │ │ └── recipe.toml
│ │ ├── rfetch/
│ │ │ └── recipe.toml
│ │ ├── rsftch/
│ │ │ └── recipe.toml
│ │ ├── usbutils/
│ │ │ └── recipe.toml
│ │ └── zeitfetch/
│ │ └── recipe.toml
│ ├── system/
│ │ ├── pik/
│ │ │ └── recipe.toml
│ │ ├── procman/
│ │ │ └── recipe.toml
│ │ ├── rustysd/
│ │ │ └── recipe.toml
│ │ └── topgrade/
│ │ └── recipe.toml
│ ├── tel/
│ │ ├── sms-server/
│ │ │ └── recipe.toml
│ │ └── sms-terminal/
│ │ └── recipe.toml
│ ├── terminal/
│ │ ├── agg/
│ │ │ └── recipe.toml
│ │ ├── alacritty/
│ │ │ └── recipe.toml
│ │ ├── ascii-gen/
│ │ │ └── recipe.toml
│ │ ├── asciiquarium/
│ │ │ └── recipe.toml
│ │ ├── bobr/
│ │ │ └── recipe.toml
│ │ ├── boulette/
│ │ │ └── recipe.toml
│ │ ├── cbonsai/
│ │ │ └── recipe.toml
│ │ ├── chafa/
│ │ │ └── recipe.toml
│ │ ├── chatd/
│ │ │ └── recipe.toml
│ │ ├── contour-terminal/
│ │ │ └── recipe.toml
│ │ ├── countryfetch/
│ │ │ └── recipe.toml
│ │ ├── desktop-tui/
│ │ │ └── recipe.toml
│ │ ├── envx/
│ │ │ └── recioe.toml
│ │ ├── fsel/
│ │ │ └── recipe.toml
│ │ ├── ghostie/
│ │ │ └── recipe.toml
│ │ ├── leadr/
│ │ │ └── recipe.toml
│ │ ├── lk/
│ │ │ └── recipe.toml
│ │ ├── logria/
│ │ │ └── recipe.toml
│ │ ├── loriini/
│ │ │ └── recipe.toml
│ │ ├── lule/
│ │ │ └── recipe.toml
│ │ ├── ngrv/
│ │ │ └── recipe.toml
│ │ ├── otter-launcher/
│ │ │ └── recipe.toml
│ │ ├── pastel/
│ │ │ └── recipe.toml
│ │ ├── pay-respects/
│ │ │ └── recipe.toml
│ │ ├── pipecolor/
│ │ │ └── recipe.toml
│ │ ├── pipes-sh/
│ │ │ └── recipe.toml
│ │ ├── pretty/
│ │ │ └── recipe.toml
│ │ ├── rioterm/
│ │ │ └── recipe.toml
│ │ ├── rterm/
│ │ │ └── recipe.toml
│ │ ├── scooter/
│ │ │ └── recipe.toml
│ │ ├── so/
│ │ │ └── recipe.toml
│ │ ├── starship/
│ │ │ └── recipe.toml
│ │ ├── tab-rs/
│ │ │ └── recipe.toml
│ │ ├── tarts/
│ │ │ └── recipe.toml
│ │ ├── tattoy/
│ │ │ └── recipe.toml
│ │ ├── tere/
│ │ │ └── recipe.toml
│ │ ├── term39/
│ │ │ └── recipe.toml
│ │ ├── termimage/
│ │ │ └── recipe.toml
│ │ ├── terminal-toys/
│ │ │ └── recipe.toml
│ │ ├── terminal-yt/
│ │ │ └── recipe.toml
│ │ ├── thokr/
│ │ │ └── recipe.toml
│ │ ├── tmux/
│ │ │ └── recipe.toml
│ │ ├── tmuxpanel/
│ │ │ └── recipe.toml
│ │ ├── toyterm/
│ │ │ └── recipe.toml
│ │ ├── tvk/
│ │ │ └── recipe.toml
│ │ ├── useenv/
│ │ │ └── recipe.toml
│ │ ├── wezterm/
│ │ │ └── recipe.toml
│ │ └── zellij/
│ │ └── recipe.toml
│ ├── tests/
│ │ ├── pjdfstest/
│ │ │ └── recipe.toml
│ │ └── xfstests/
│ │ └── recipe.toml
│ ├── text/
│ │ ├── amp/
│ │ │ └── recipe.toml
│ │ ├── basalt/
│ │ │ └── recipe.toml
│ │ ├── bat/
│ │ │ └── recipe.toml
│ │ ├── blogr/
│ │ │ └── recipe.toml
│ │ ├── csview/
│ │ │ └── recipe.toml
│ │ ├── csvlens/
│ │ │ └── recipe.toml
│ │ ├── dog/
│ │ │ └── recipe.toml
│ │ ├── duat/
│ │ │ └── recipe.toml
│ │ ├── edit/
│ │ │ └── recipe.toml
│ │ ├── emacs-nox/
│ │ │ └── recipe.toml
│ │ ├── emacs-pgtk/
│ │ │ └── recipe.toml
│ │ ├── flowfix/
│ │ │ └── recipe.toml
│ │ ├── fsrx/
│ │ │ └── recipe.toml
│ │ ├── helix-gpui/
│ │ │ └── recipe.toml
│ │ ├── igrep/
│ │ │ └── recipe.toml
│ │ ├── jt/
│ │ │ └── recipe.toml
│ │ ├── keypunch/
│ │ │ └── recipe.toml
│ │ ├── ki-editor/
│ │ │ └── recipe.toml
│ │ ├── kibi/
│ │ │ └── recipe.toml
│ │ ├── mado/
│ │ │ └── recipe.toml
│ │ ├── md-tui/
│ │ │ └── recipe.toml
│ │ ├── mdcat/
│ │ │ └── recipe.toml
│ │ ├── nanorust/
│ │ │ └── recipe.toml
│ │ ├── neovide/
│ │ │ └── recipe.toml
│ │ ├── neovim/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── octotype/
│ │ │ └── recipe.toml
│ │ ├── quicknotes/
│ │ │ └── recipe.toml
│ │ ├── read-it-later/
│ │ │ └── recipe.toml
│ │ ├── repgrep/
│ │ │ └── recipe.toml
│ │ ├── revi/
│ │ │ └── recipe.toml
│ │ ├── rhyolite/
│ │ │ └── recipe.toml
│ │ ├── ripgrep-all/
│ │ │ └── recipe.toml
│ │ ├── ripwc/
│ │ │ └── recipe.toml
│ │ ├── rnote/
│ │ │ └── recipe.toml
│ │ ├── rucola/
│ │ │ └── recipe.toml
│ │ ├── sd/
│ │ │ └── recipe.toml
│ │ ├── sed-rs/
│ │ │ └── recipe.toml
│ │ ├── serpl/
│ │ │ └── recipe.toml
│ │ ├── svgbob/
│ │ │ └── recipe.toml
│ │ ├── syncat/
│ │ │ └── recipe.toml
│ │ ├── t/
│ │ │ └── recipe.toml
│ │ ├── treemd/
│ │ │ └── recipe.toml
│ │ ├── tylax/
│ │ │ └── recipe.toml
│ │ ├── typesetter/
│ │ │ └── recipe.toml
│ │ ├── yes-rs/
│ │ │ └── recipe.toml
│ │ ├── zed/
│ │ │ └── recipe.toml
│ │ └── zee/
│ │ └── recipe.toml
│ ├── time/
│ │ ├── dispute/
│ │ │ └── recipe.toml
│ │ ├── litime/
│ │ │ └── recipe.toml
│ │ ├── rsclock/
│ │ │ └── recipe.toml
│ │ ├── timer-rs/
│ │ │ └── recipe.toml
│ │ ├── tomotroid/
│ │ │ └── recipe.toml
│ │ ├── trackie/
│ │ │ └── recipe.toml
│ │ ├── worktime-tui/
│ │ │ └── recipe.toml
│ │ └── zman/
│ │ └── recipe.toml
│ ├── tools/
│ │ ├── aeruginous/
│ │ │ └── recipe.toml
│ │ ├── ani-cli/
│ │ │ └── recipe.toml
│ │ ├── ani-skip/
│ │ │ └── recipe.toml
│ │ ├── arrow-tools/
│ │ │ └── recipe.toml
│ │ ├── artem/
│ │ │ └── recipe.toml
│ │ ├── ast-grep/
│ │ │ └── recipe.toml
│ │ ├── astc-encoder/
│ │ │ └── recipe.toml
│ │ ├── astyle/
│ │ │ └── recipe.toml
│ │ ├── atm-cli/
│ │ │ └── recipe.toml
│ │ ├── atuin/
│ │ │ └── recipe.toml
│ │ ├── backhand/
│ │ │ └── recipe.toml
│ │ ├── bacup/
│ │ │ └── recipe.toml
│ │ ├── bartib/
│ │ │ └── recipe.toml
│ │ ├── battop/
│ │ │ └── recipe.toml
│ │ ├── bdt/
│ │ │ └── recipe.toml
│ │ ├── binserve/
│ │ │ └── recipe.toml
│ │ ├── birdy/
│ │ │ └── recipe.toml
│ │ ├── blockish-caca/
│ │ │ └── recipe.toml
│ │ ├── broot/
│ │ │ └── recipe.toml
│ │ ├── busybox/
│ │ │ └── recipe.toml
│ │ ├── bvr/
│ │ │ └── recipe.toml
│ │ ├── byteblitz/
│ │ │ └── recipe.toml
│ │ ├── caesium/
│ │ │ └── recipe.toml
│ │ ├── caligula/
│ │ │ └── recipe.toml
│ │ ├── carbonyl/
│ │ │ └── recipe.toml
│ │ ├── cb/
│ │ │ └── recipe.toml
│ │ ├── cfait/
│ │ │ └── recipe.toml
│ │ ├── checkpwn/
│ │ │ └── recipe.toml
│ │ ├── choose/
│ │ │ └── recipe.toml
│ │ ├── chromazone/
│ │ │ └── recipe.toml
│ │ ├── clipcat/
│ │ │ └── recipe.toml
│ │ ├── clipshare-desktop/
│ │ │ └── recipe.toml
│ │ ├── clipshare-server/
│ │ │ └── recipe.toml
│ │ ├── clog-cli/
│ │ │ └── recipe.toml
│ │ ├── conceal/
│ │ │ └── recipe.toml
│ │ ├── conserve/
│ │ │ └── recipe.toml
│ │ ├── counts/
│ │ │ └── recipe.toml
│ │ ├── cpuminer-opt/
│ │ │ └── recipe.toml
│ │ ├── crunchy-cli/
│ │ │ └── recipe.toml
│ │ ├── cube-timer/
│ │ │ └── recipe.toml
│ │ ├── cute/
│ │ │ └── recipe.toml
│ │ ├── czkawka/
│ │ │ └── recipe.toml
│ │ ├── daktilo/
│ │ │ └── recipe.toml
│ │ ├── dead-ringer/
│ │ │ └── recipe.toml
│ │ ├── delta/
│ │ │ └── recipe.toml
│ │ ├── desed/
│ │ │ └── recipe.toml
│ │ ├── dfm/
│ │ │ └── recipe.toml
│ │ ├── diffr/
│ │ │ └── recipe.toml
│ │ ├── diffutils-rs/
│ │ │ └── recipe.toml
│ │ ├── diffy/
│ │ │ └── recipe.toml
│ │ ├── dim/
│ │ │ └── recipe.toml
│ │ ├── dirscan/
│ │ │ └── recipe.toml
│ │ ├── diskonaut/
│ │ │ └── recipe.toml
│ │ ├── dispatch/
│ │ │ └── recipe.toml
│ │ ├── dog-dns/
│ │ │ └── recipe.toml
│ │ ├── dotr/
│ │ │ └── recipe.toml
│ │ ├── dotter/
│ │ │ └── recipe.toml
│ │ ├── dply/
│ │ │ └── recipe.toml
│ │ ├── dprint/
│ │ │ └── recipe.toml
│ │ ├── dra-cla/
│ │ │ └── recipe.toml
│ │ ├── dua/
│ │ │ └── recipe.toml
│ │ ├── dui/
│ │ │ └── recipe.toml
│ │ ├── dura/
│ │ │ └── recipe.toml
│ │ ├── dust/
│ │ │ └── recipe.toml
│ │ ├── dutree/
│ │ │ └── recipe.toml
│ │ ├── dysk/
│ │ │ └── recipe.toml
│ │ ├── emplace/
│ │ │ └── recipe.toml
│ │ ├── enchant/
│ │ │ └── recipe.toml
│ │ ├── envio/
│ │ │ └── recipe.toml
│ │ ├── epub2txt/
│ │ │ └── recipe.toml
│ │ ├── erdtree/
│ │ │ └── recipe.toml
│ │ ├── espanso/
│ │ │ └── recipe.toml
│ │ ├── eureka/
│ │ │ └── recipe.toml
│ │ ├── eva/
│ │ │ └── recipe.toml
│ │ ├── exa/
│ │ │ └── recipe.toml
│ │ ├── exhaust/
│ │ │ └── recipe.toml
│ │ ├── exuberant-ctags/
│ │ │ └── recipe.toml
│ │ ├── eza/
│ │ │ └── recipe.toml
│ │ ├── fclones/
│ │ │ └── recipe.toml
│ │ ├── felix/
│ │ │ └── recipe.toml
│ │ ├── fennec/
│ │ │ └── recipe.toml
│ │ ├── ffizer/
│ │ │ └── recipe.toml
│ │ ├── findutils-rs/
│ │ │ └── recipe.toml
│ │ ├── flameshot/
│ │ │ └── recipe.toml
│ │ ├── flowtime/
│ │ │ └── recipe.toml
│ │ ├── fselect/
│ │ │ └── recipe.toml
│ │ ├── fuc/
│ │ │ └── recipe.toml
│ │ ├── fuga/
│ │ │ └── recipe.toml
│ │ ├── funzzy/
│ │ │ └── recipe.toml
│ │ ├── fzf-make/
│ │ │ └── recipe.toml
│ │ ├── gengo/
│ │ │ └── recipe.toml
│ │ ├── germ/
│ │ │ └── recipe.toml
│ │ ├── gifski/
│ │ │ └── recipe.toml
│ │ ├── gnu-radio/
│ │ │ └── recipe.toml
│ │ ├── gnuplot/
│ │ │ └── recipe.toml
│ │ ├── goldboot/
│ │ │ └── recipe.toml
│ │ ├── goxel/
│ │ │ └── recipe.toml
│ │ ├── gpg-tui/
│ │ │ └── recipe.toml
│ │ ├── gphoto2/
│ │ │ └── recipe.toml
│ │ ├── gping/
│ │ │ └── recipe.toml
│ │ ├── gptman/
│ │ │ └── recipe.toml
│ │ ├── gptube-cli/
│ │ │ └── recipe.toml
│ │ ├── grex/
│ │ │ └── recipe.toml
│ │ ├── groff/
│ │ │ └── recipe.toml
│ │ ├── guix/
│ │ │ └── recipe.toml
│ │ ├── halp/
│ │ │ └── recipe.toml
│ │ ├── hawkeye/
│ │ │ └── recipe.toml
│ │ ├── haylxon/
│ │ │ └── recipe.toml
│ │ ├── himalaya/
│ │ │ └── recipe.toml
│ │ ├── hired/
│ │ │ └── recipe.toml
│ │ ├── hoard/
│ │ │ └── recipe.toml
│ │ ├── horsetab/
│ │ │ └── recipe.toml
│ │ ├── humphrey/
│ │ │ └── recipe.toml
│ │ ├── hwatch/
│ │ │ └── recipe.toml
│ │ ├── imager/
│ │ │ └── recipe.toml
│ │ ├── inlyne/
│ │ │ └── recipe.toml
│ │ ├── innernet-cli/
│ │ │ └── recipe.toml
│ │ ├── innernet-server/
│ │ │ └── recipe.toml
│ │ ├── intelli-shell/
│ │ │ └── recipe.toml
│ │ ├── interaction-calculus/
│ │ │ └── recipe.toml
│ │ ├── intermodal/
│ │ │ └── recipe.toml
│ │ ├── itstool/
│ │ │ └── recipe.toml
│ │ ├── jirust/
│ │ │ └── recipe.toml
│ │ ├── jless/
│ │ │ └── recipe.toml
│ │ ├── joshuto/
│ │ │ └── recipe.toml
│ │ ├── jql/
│ │ │ └── recipe.toml
│ │ ├── kami/
│ │ │ └── recipe.toml
│ │ ├── kanata/
│ │ │ └── recipe.toml
│ │ ├── kbt/
│ │ │ └── recipe.toml
│ │ ├── kodi/
│ │ │ └── recipe.toml
│ │ ├── lapce/
│ │ │ └── recipe.toml
│ │ ├── lazy-etherscan/
│ │ │ └── recipe.toml
│ │ ├── lcs-image-diff/
│ │ │ └── recipe.toml
│ │ ├── lddtree-rs/
│ │ │ └── recipe.toml
│ │ ├── legdur/
│ │ │ └── recipe.toml
│ │ ├── lemmeknow/
│ │ │ └── recipe.toml
│ │ ├── less/
│ │ │ └── recipe.toml
│ │ ├── lines-rs/
│ │ │ └── recipe.toml
│ │ ├── lineselect/
│ │ │ └── recipe.toml
│ │ ├── logss/
│ │ │ └── recipe.toml
│ │ ├── lowcharts/
│ │ │ └── recipe.toml
│ │ ├── lucid/
│ │ │ └── recipe.toml
│ │ ├── mandy/
│ │ │ └── recipe.toml
│ │ ├── mangohud/
│ │ │ └── recipe.toml
│ │ ├── mask/
│ │ │ └── recipe.toml
│ │ ├── matui/
│ │ │ └── recipe.toml
│ │ ├── maze-tui/
│ │ │ └── recipe.toml
│ │ ├── mcfly/
│ │ │ └── recipe.toml
│ │ ├── menyoki/
│ │ │ └── recipe.toml
│ │ ├── mhv/
│ │ │ └── recipe.toml
│ │ ├── minmon/
│ │ │ └── recipe.toml
│ │ ├── mkisofs-rs/
│ │ │ └── recipe.toml
│ │ ├── mprocs/
│ │ │ └── recipe.toml
│ │ ├── navi/
│ │ │ └── recipe.toml
│ │ ├── nickel/
│ │ │ └── recipe.toml
│ │ ├── nix/
│ │ │ └── recipe.toml
│ │ ├── nomad/
│ │ │ └── recipe.toml
│ │ ├── nomino/
│ │ │ └── recipe.toml
│ │ ├── notnow/
│ │ │ └── recipe.toml
│ │ ├── objdiff/
│ │ │ └── recipe.toml
│ │ ├── odilia/
│ │ │ └── recipe.toml
│ │ ├── omega/
│ │ │ └── recipe.toml
│ │ ├── oranda/
│ │ │ └── recipe.toml
│ │ ├── orchaldir-texture-generator/
│ │ │ └── recipe.toml
│ │ ├── pdbview/
│ │ │ └── recipe.toml
│ │ ├── pdu/
│ │ │ └── recipe.toml
│ │ ├── pipr/
│ │ │ └── recipe.toml
│ │ ├── pixcil/
│ │ │ └── recipe.toml
│ │ ├── pixelsort/
│ │ │ └── recipe.toml
│ │ ├── planify/
│ │ │ └── recipe.toml
│ │ ├── pomky/
│ │ │ └── recipe.toml
│ │ ├── porsmo/
│ │ │ └── recipe.toml
│ │ ├── posixutils-rs/
│ │ │ └── recipe.toml
│ │ ├── potrace/
│ │ │ └── recipe.toml
│ │ ├── presenterm/
│ │ │ └── recipe.toml
│ │ ├── pueue/
│ │ │ └── recipe.toml
│ │ ├── qv/
│ │ │ └── recipe.toml
│ │ ├── rana/
│ │ │ └── recipe.toml
│ │ ├── rargs/
│ │ │ └── recipe.toml
│ │ ├── rclone/
│ │ │ └── recipe.toml
│ │ ├── restic/
│ │ │ └── recipe.toml
│ │ ├── rfz/
│ │ │ └── recipe.toml
│ │ ├── rip/
│ │ │ └── recipe.toml
│ │ ├── ripasso/
│ │ │ └── recipe.toml
│ │ ├── ripsecrets/
│ │ │ └── recipe.toml
│ │ ├── rix/
│ │ │ └── recipe.toml
│ │ ├── rnr/
│ │ │ └── recipe.toml
│ │ ├── rq/
│ │ │ └── recipe.toml
│ │ ├── ruke/
│ │ │ └── recipe.toml
│ │ ├── run/
│ │ │ └── recipe.toml
│ │ ├── ruplacer/
│ │ │ └── recipe.toml
│ │ ├── rusty/
│ │ │ └── recipe.toml
│ │ ├── rusty-krab-manager/
│ │ │ └── recipe.toml
│ │ ├── rusync/
│ │ │ └── recipe.toml
│ │ ├── sad/
│ │ │ └── recipe.toml
│ │ ├── sam/
│ │ │ └── recipe.toml
│ │ ├── scribus/
│ │ │ └── recipe.toml
│ │ ├── scrying/
│ │ │ └── recipe.toml
│ │ ├── shd/
│ │ │ └── recipe.toml
│ │ ├── shellfirm/
│ │ │ └── recipe.toml
│ │ ├── shokunin/
│ │ │ └── recipe.toml
│ │ ├── sig/
│ │ │ └── recipe.toml
│ │ ├── sigi/
│ │ │ └── recipe.toml
│ │ ├── simplemoji/
│ │ │ └── recipe.toml
│ │ ├── skim/
│ │ │ └── recipe.toml
│ │ ├── skyspell/
│ │ │ └── recipe.toml
│ │ ├── smartmontools/
│ │ │ └── recipe.toml
│ │ ├── snappy-rs/
│ │ │ └── recipe.toml
│ │ ├── spacer/
│ │ │ └── recipe.toml
│ │ ├── spidey/
│ │ │ └── recipe.toml
│ │ ├── sprinkles/
│ │ │ └── recipe.toml
│ │ ├── succeed2ban-tui/
│ │ │ └── recipe.toml
│ │ ├── sued/
│ │ │ └── recipe.toml
│ │ ├── svg2pdf/
│ │ │ └── recipe.toml
│ │ ├── swc/
│ │ │ └── recipe.toml
│ │ ├── t-rec/
│ │ │ └── recipe.toml
│ │ ├── tailspin/
│ │ │ └── recipe.toml
│ │ ├── tarlz/
│ │ │ └── recipe.toml
│ │ ├── task-maker-rs/
│ │ │ └── recipe.toml
│ │ ├── taskserver/
│ │ │ └── recipe.toml
│ │ ├── taskwarrior/
│ │ │ └── recipe.toml
│ │ ├── taskwarrior-tui/
│ │ │ └── recipe.toml
│ │ ├── tauno-monitor/
│ │ │ └── recipe.toml
│ │ ├── tealdeer/
│ │ │ └── recipe.toml
│ │ ├── teip/
│ │ │ └── recipe.toml
│ │ ├── thwack/
│ │ │ └── recipe.toml
│ │ ├── tin-summer/
│ │ │ └── recipe.toml
│ │ ├── tinywasm/
│ │ │ └── recipe.toml
│ │ ├── tl-rs/
│ │ │ └── recipe.toml
│ │ ├── tock/
│ │ │ └── recipe.toml
│ │ ├── toipe/
│ │ │ └── recipe.toml
│ │ ├── torrust-tracker/
│ │ │ └── recipe.toml
│ │ ├── toybox/
│ │ │ └── recipe.toml
│ │ ├── tp-note/
│ │ │ └── recipe.toml
│ │ ├── tq/
│ │ │ └── recipe.toml
│ │ ├── treq/
│ │ │ └── recipe.toml
│ │ ├── tsuchita/
│ │ │ └── recipe.toml
│ │ ├── tts-tui/
│ │ │ └── recipe.toml
│ │ ├── ttyper/
│ │ │ └── recipe.toml
│ │ ├── tui-journal/
│ │ │ └── recipe.toml
│ │ ├── tvix/
│ │ │ └── recipe.toml
│ │ ├── typst/
│ │ │ └── recipe.toml
│ │ ├── upx/
│ │ │ └── recipe.toml
│ │ ├── util-linux/
│ │ │ └── recipe.toml
│ │ ├── vector/
│ │ │ └── recipe.toml
│ │ ├── ventoy/
│ │ │ └── recipe.toml
│ │ ├── vincenzo/
│ │ │ └── recipe.toml
│ │ ├── watchexec/
│ │ │ └── recipe.toml
│ │ ├── watchmen/
│ │ │ └── recipe.toml
│ │ ├── wayback-rs/
│ │ │ └── recipe.toml
│ │ ├── wayshot/
│ │ │ └── recipe.toml
│ │ ├── wethr/
│ │ │ └── recipe.toml
│ │ ├── weylus/
│ │ │ └── recipe.toml
│ │ ├── wick/
│ │ │ └── recipe.toml
│ │ ├── wpaperd/
│ │ │ └── recipe.toml
│ │ ├── xcp/
│ │ │ └── recipe.toml
│ │ ├── xdg-utils/
│ │ │ └── recipe.toml
│ │ ├── xdotool/
│ │ │ └── recipe.toml
│ │ ├── xdvdfs/
│ │ │ └── recipe.toml
│ │ ├── xh/
│ │ │ └── recipe.toml
│ │ ├── xiu/
│ │ │ └── recipe.toml
│ │ ├── xorriso/
│ │ │ └── recipe.toml
│ │ ├── xsv/
│ │ │ └── recipe.toml
│ │ └── zet/
│ │ └── recipe.toml
│ ├── tui/
│ │ ├── finch/
│ │ │ └── recipe.toml
│ │ ├── gitu/
│ │ │ └── recipe.toml
│ │ ├── gitui/
│ │ │ └── recipe.toml
│ │ ├── gyr/
│ │ │ └── recipe.toml
│ │ ├── heh/
│ │ │ └── recipe.toml
│ │ ├── heretek/
│ │ │ └── recipe.toml
│ │ ├── lazyjj/
│ │ │ └── recipe.toml
│ │ ├── manga-tui/
│ │ │ └── recipe.toml
│ │ ├── nnn/
│ │ │ └── recipe.toml
│ │ ├── nyaa-rs/
│ │ │ └── recipe.toml
│ │ ├── oatmeal/
│ │ │ └── recipe.toml
│ │ ├── otree/
│ │ │ └── recipe.toml
│ │ ├── projectable/
│ │ │ └── recipe.toml
│ │ ├── radicle-tui/
│ │ │ └── recipe.toml
│ │ ├── regname/
│ │ │ └── recipe.toml
│ │ ├── russ/
│ │ │ └── recipe.toml
│ │ ├── rust-kanban/
│ │ │ └── recipe.toml
│ │ ├── rust-traverse/
│ │ │ └── recipe.toml
│ │ ├── syndicationd/
│ │ │ └── recipe.toml
│ │ ├── tenere/
│ │ │ └── recipe.toml
│ │ ├── terminusdm/
│ │ │ └── recipe.toml
│ │ ├── termlaunch/
│ │ │ └── recipe.toml
│ │ ├── termscp/
│ │ │ └── recipe.toml
│ │ ├── thesaurust/
│ │ │ └── recipe.toml
│ │ ├── tooters/
│ │ │ └── recipe.toml
│ │ ├── tui-slides/
│ │ │ └── recipe.toml
│ │ ├── twitch-tui/
│ │ │ └── recipe.toml
│ │ ├── xplr/
│ │ │ └── recipe.toml
│ │ └── zenith/
│ │ └── recipe.toml
│ ├── vice/
│ │ ├── 01_redox.patch
│ │ └── recipe.sh
│ ├── video/
│ │ ├── camera/
│ │ │ ├── cosmic-ext-camera/
│ │ │ │ └── recipe.toml
│ │ │ ├── tuicam/
│ │ │ │ └── recipe.toml
│ │ │ └── webcamoid/
│ │ │ └── recipe.toml
│ │ ├── converters/
│ │ │ ├── handbrake-cli/
│ │ │ │ └── recipe.toml
│ │ │ └── trv/
│ │ │ └── recipe.toml
│ │ ├── editors/
│ │ │ ├── anime-effects/
│ │ │ │ └── recipe.toml
│ │ │ ├── blind/
│ │ │ │ └── recipe.toml
│ │ │ ├── openshot/
│ │ │ │ └── recipe.toml
│ │ │ └── video-trimmer/
│ │ │ └── recipe.toml
│ │ └── other/
│ │ ├── alass/
│ │ │ └── recipe.toml
│ │ ├── av1an/
│ │ │ └── recipe.toml
│ │ ├── avp/
│ │ │ └── recipe.toml
│ │ ├── detect-scene-change/
│ │ │ └── recipe.toml
│ │ ├── dovi-tool/
│ │ │ └── recipe.toml
│ │ ├── gnome-video-effects/
│ │ │ └── recipe.toml
│ │ ├── gopro-assembler/
│ │ │ └── recipe.toml
│ │ ├── gyroflow/
│ │ │ └── recipe.toml
│ │ ├── imdb-rename/
│ │ │ └── recipe.toml
│ │ ├── jerry/
│ │ │ └── recipe.toml
│ │ ├── lecturecut/
│ │ │ └── recipe.toml
│ │ ├── lobster/
│ │ │ └── recipe.toml
│ │ ├── pipeline/
│ │ │ └── recipe.toml
│ │ ├── smoothie-rs/
│ │ │ └── recipe.toml
│ │ ├── streamlib/
│ │ │ └── recipe.toml
│ │ ├── sub-batch/
│ │ │ └── recipe.toml
│ │ ├── teres/
│ │ │ └── recipe.toml
│ │ ├── timelens/
│ │ │ └── recipe.toml
│ │ ├── trimmeroni/
│ │ │ └── recipe.toml
│ │ ├── vapoursynth/
│ │ │ └── recipe.toml
│ │ ├── video4discord/
│ │ │ └── recipe.toml
│ │ ├── vidmerger/
│ │ │ └── recipe.toml
│ │ └── yt-chanvids/
│ │ └── recipe.toml
│ ├── vm/
│ │ ├── cloud-hypervisor/
│ │ │ └── recipe.toml
│ │ ├── crosvm/
│ │ │ └── recipe.toml
│ │ ├── firecracker/
│ │ │ └── recipe.toml
│ │ ├── libguestfs/
│ │ │ └── recipe.toml
│ │ ├── libvirt/
│ │ │ └── recipe.toml
│ │ ├── qemu/
│ │ │ └── recipe.toml
│ │ ├── v86/
│ │ │ └── recipe.toml
│ │ └── virtualbox/
│ │ └── recipe.toml
│ ├── wayland/
│ │ ├── anvil/
│ │ │ └── recipe.toml
│ │ ├── cosmic-app-library/
│ │ │ └── recipe.toml
│ │ ├── cosmic-comp/
│ │ │ └── recipe.toml
│ │ ├── cosmic-panel/
│ │ │ └── recipe.toml
│ │ ├── fht-compositor/
│ │ │ └── recipe.toml
│ │ ├── hyprland/
│ │ │ └── recipe.toml
│ │ ├── iced-wayland/
│ │ │ └── recipe.toml
│ │ ├── libcosmic-wayland/
│ │ │ └── recipe.toml
│ │ ├── libwayland/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── niri/
│ │ │ └── recipe.toml
│ │ ├── pinnacle/
│ │ │ └── recipe.toml
│ │ ├── smallvil/
│ │ │ └── recipe.toml
│ │ ├── softbuffer-wayland/
│ │ │ └── recipe.toml
│ │ ├── sway/
│ │ │ └── recipe.toml
│ │ ├── wayland-protocols/
│ │ │ └── recipe.toml
│ │ ├── wayland-rs/
│ │ │ └── recipe.toml
│ │ ├── wayland-utils/
│ │ │ └── recipe.toml
│ │ ├── waylandpp/
│ │ │ └── recipe.toml
│ │ ├── winit-wayland/
│ │ │ └── recipe.toml
│ │ ├── wlroots/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ └── xwayland/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── web/
│ │ ├── basilisk/
│ │ │ └── recipe.toml
│ │ ├── chromium/
│ │ │ └── recipe.toml
│ │ ├── dillo/
│ │ │ └── recipe.toml
│ │ ├── dirble/
│ │ │ └── recipe.toml
│ │ ├── dodeca/
│ │ │ └── recipe.toml
│ │ ├── elinks/
│ │ │ └── recipe.toml
│ │ ├── faircamp/
│ │ │ └── recipe.toml
│ │ ├── firefox-esr/
│ │ │ ├── mozconfig
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── gosub/
│ │ │ └── recipe.toml
│ │ ├── librewolf/
│ │ │ ├── mozconfig
│ │ │ └── recipe.toml
│ │ ├── marmite/
│ │ │ └── recipe.toml
│ │ ├── monolith/
│ │ │ └── recipe.toml
│ │ ├── pale-moon/
│ │ │ ├── .mozconfig
│ │ │ └── recipe.toml
│ │ ├── rustyink/
│ │ │ └── recipe.toml
│ │ ├── servo/
│ │ │ ├── .servobuild
│ │ │ └── recipe.toml
│ │ ├── share-preview/
│ │ │ └── recipe.toml
│ │ ├── sitesmith/
│ │ │ └── recipe.toml
│ │ ├── spider/
│ │ │ └── recipe.toml
│ │ ├── sukr/
│ │ │ └── recipe.toml
│ │ ├── surf/
│ │ │ └── recipe.toml
│ │ ├── teacat/
│ │ │ └── recipe.toml
│ │ ├── tola-ssg/
│ │ │ └── recipe.toml
│ │ ├── verso/
│ │ │ └── recipe.toml
│ │ ├── vidium/
│ │ │ └── recipe.toml
│ │ ├── webkitgtk3/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── webkitgtk4/
│ │ │ └── recipe.toml
│ │ └── zen-browser/
│ │ └── recipe.toml
│ └── x11/
│ ├── drm-info/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── feh/
│ │ └── recipe.toml
│ ├── font-util/
│ │ └── recipe.toml
│ ├── i3/
│ │ └── i3/
│ │ └── recipe.toml
│ ├── iso-codes/
│ │ └── recipe.toml
│ ├── jwm/
│ │ └── recipe.toml
│ ├── keybinder3/
│ │ └── recipe.toml
│ ├── leftwm/
│ │ └── recipe.toml
│ ├── libdrm/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── libfontenc/
│ │ └── recipe.toml
│ ├── libglvnd/
│ │ └── recipe.toml
│ ├── libice/
│ │ └── recipe.toml
│ ├── libsm/
│ │ └── recipe.toml
│ ├── libx11/
│ │ └── recipe.toml
│ ├── libxau/
│ │ └── recipe.toml
│ ├── libxaw/
│ │ └── recipe.toml
│ ├── libxcb/
│ │ └── recipe.toml
│ ├── libxcomposite/
│ │ └── recipe.toml
│ ├── libxcvt/
│ │ └── recipe.toml
│ ├── libxdamage/
│ │ └── recipe.toml
│ ├── libxdmcp/
│ │ └── recipe.toml
│ ├── libxext/
│ │ └── recipe.toml
│ ├── libxfixes/
│ │ └── recipe.toml
│ ├── libxfont2/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── libxft/
│ │ └── recipe.toml
│ ├── libxi/
│ │ └── recipe.toml
│ ├── libxinerama/
│ │ └── recipe.toml
│ ├── libxkbcommon-x11/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── libxkbfile/
│ │ └── recipe.toml
│ ├── libxklavier/
│ │ └── recipe.toml
│ ├── libxmu/
│ │ └── recipe.toml
│ ├── libxpm/
│ │ └── recipe.toml
│ ├── libxrandr/
│ │ └── recipe.toml
│ ├── libxrender/
│ │ └── recipe.toml
│ ├── libxres/
│ │ └── recipe.toml
│ ├── libxscrnsaver/
│ │ └── recipe.toml
│ ├── libxshmfence/
│ │ └── recipe.toml
│ ├── libxt/
│ │ └── recipe.toml
│ ├── libxxf86vm/
│ │ └── recipe.toml
│ ├── lxde/
│ │ ├── libfm-extra/
│ │ │ └── recipe.toml
│ │ ├── libfm-gtk3/
│ │ │ └── recipe.toml
│ │ ├── libmenu-cache/
│ │ │ └── recipe.toml
│ │ └── lxpanel/
│ │ └── recipe.toml
│ ├── mate/
│ │ ├── caja/
│ │ │ └── recipe.toml
│ │ ├── dbus-glib/
│ │ │ └── recipe.toml
│ │ ├── libmate-desktop-2/
│ │ │ └── recipe.toml
│ │ ├── libmate-menu/
│ │ │ └── recipe.toml
│ │ ├── libmatekbd/
│ │ │ └── recipe.toml
│ │ ├── libmateweather/
│ │ │ └── recipe.toml
│ │ ├── marco/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── mate-control-center/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── mate-icon-theme/
│ │ │ └── recipe.toml
│ │ ├── mate-panel/
│ │ │ └── recipe.toml
│ │ ├── mate-session-manager/
│ │ │ └── recipe.toml
│ │ ├── mate-settings-daemon/
│ │ │ └── recipe.toml
│ │ └── mate-terminal/
│ │ └── recipe.toml
│ ├── mesa-demos-x11/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── mesa-glu-x11/
│ │ └── recipe.toml
│ ├── mesa-x11/
│ │ └── recipe.toml
│ ├── openbox/
│ │ └── recipe.toml
│ ├── startup-notification/
│ │ └── recipe.toml
│ ├── twm/
│ │ └── recipe.toml
│ ├── x11proto/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── x11proto-kb/
│ │ └── recipe.toml
│ ├── xcb-proto/
│ │ └── recipe.toml
│ ├── xcb-util/
│ │ └── recipe.toml
│ ├── xcb-util-cursor/
│ │ └── recipe.toml
│ ├── xcb-util-image/
│ │ └── recipe.toml
│ ├── xcb-util-keysyms/
│ │ └── recipe.toml
│ ├── xcb-util-renderutil/
│ │ └── recipe.toml
│ ├── xcb-util-wm/
│ │ └── recipe.toml
│ ├── xcb-util-xrm/
│ │ └── recipe.toml
│ ├── xev/
│ │ └── recipe.toml
│ ├── xextproto/
│ │ └── recipe.toml
│ ├── xeyes/
│ │ └── recipe.toml
│ ├── xfce4/
│ │ ├── garcon/
│ │ │ └── recipe.toml
│ │ ├── libxfce4ui/
│ │ │ └── recipe.toml
│ │ ├── libxfce4util/
│ │ │ └── recipe.toml
│ │ ├── libxfce4windowing/
│ │ │ ├── recipe.toml
│ │ │ └── redox.patch
│ │ ├── xfce4-panel/
│ │ │ └── recipe.toml
│ │ ├── xfconf/
│ │ │ └── recipe.toml
│ │ └── xfwm4/
│ │ └── recipe.toml
│ ├── xinit/
│ │ └── recipe.toml
│ ├── xkbcomp/
│ │ └── recipe.toml
│ ├── xkbutils/
│ │ └── recipe.toml
│ ├── xkeyboard-config/
│ │ └── recipe.toml
│ ├── xserver-xorg/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── xserver-xorg-video-orbital/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ ├── xterm/
│ │ ├── recipe.toml
│ │ └── redox.patch
│ └── xtrans/
│ └── recipe.toml
├── redox.ipxe
├── rust-toolchain.toml
├── scripts/
│ ├── backtrace.sh
│ ├── cargo-update.sh
│ ├── category.sh
│ ├── changelog.sh
│ ├── check-ci-config.sh
│ ├── commit-hash.sh
│ ├── dual-boot.sh
│ ├── executables.sh
│ ├── find-recipe.sh
│ ├── include-recipes.sh
│ ├── mount-redoxfs.sh
│ ├── network-boot.sh
│ ├── pkg-size.sh
│ ├── print-recipe.sh
│ ├── recipe-match.sh
│ ├── recipe-path.sh
│ ├── show-package.sh
│ └── ventoy.sh
└── src/
├── bin/
│ ├── cookbook_redoxer.rs
│ ├── repo.rs
│ └── repo_builder.rs
├── blake3.rs
├── config.rs
├── cook/
│ ├── cook_build.rs
│ ├── fetch.rs
│ ├── fetch_repo.rs
│ ├── fs.rs
│ ├── ident.rs
│ ├── package.rs
│ ├── pty.rs
│ ├── script.rs
│ └── tree.rs
├── cook.rs
├── lib.rs
├── progress_bar.rs
├── recipe.rs
├── web/
│ ├── html.rs
│ └── style.css
└── web.rs
SYMBOL INDEX (282 symbols across 27 files)
FILE: recipes/demos/cairo-demo/cairo-demo.c
function travel_path (line 14) | static void
function draw (line 86) | static void
function main (line 95) | int
FILE: recipes/demos/gears/gears.c
function gear (line 36) | static void
function sync (line 164) | static void
function draw (line 180) | static void
function idle (line 218) | static void
function reshape (line 226) | static void
function init (line 240) | static void
FILE: recipes/demos/osdemo/osdemo.c
function Sphere (line 28) | static void
function Cone (line 38) | static void
function Torus (line 49) | static void
function Cube (line 90) | static void Cube(float size)
function render_gradient (line 146) | static void
function render_image (line 175) | static void
function init_context (line 274) | static void
function display_image (line 317) | static void
function write_ppm (line 356) | static void
function GLboolean (line 402) | static GLboolean
function main (line 526) | int
FILE: recipes/demos/sdl2-gears/gears.c
function gear (line 34) | static void
function draw (line 166) | static void
function idle (line 197) | static void
function reshape (line 210) | static void
function init (line 224) | static void
function CheckSDLError (line 264) | void CheckSDLError(int line)
function cleanup (line 287) | void cleanup()
function main (line 324) | int main(int argc, char *argv[])
FILE: recipes/tests/hello-redox/files/test.c
function main (line 3) | int main(void) {
FILE: recipes/tests/hello-redox/files/test.cpp
function main (line 3) | int main()
FILE: recipes/tests/hello-redox/files/test.go
function main (line 5) | func main() {
FILE: recipes/tests/hello-redox/files/test.java
class Java (line 1) | public class Java {
method main (line 2) | public static void main(String[] args) {
FILE: recipes/tests/hello-redox/files/test.rs
function main (line 1) | fn main() {
FILE: src/bin/cookbook_redoxer.rs
function main (line 3) | fn main() {
FILE: src/bin/repo.rs
constant REPO_HELP_STR (line 41) | const REPO_HELP_STR: &str = r#"
type CliConfig (line 82) | struct CliConfig {
method new (line 160) | fn new() -> Result<Self, std::io::Error> {
type CliCommand (line 95) | enum CliCommand {
method is_informational (line 108) | pub fn is_informational(&self) -> bool {
method is_building (line 111) | pub fn is_building(&self) -> bool {
method is_pushing (line 114) | pub fn is_pushing(&self) -> bool {
method is_cleaning (line 117) | pub fn is_cleaning(&self) -> bool {
type Err (line 125) | type Err = anyhow::Error;
method from_str (line 127) | fn from_str(s: &str) -> Result<Self, Self::Err> {
method to_string (line 144) | fn to_string(&self) -> String {
function main (line 186) | fn main() {
function main_inner (line 194) | fn main_inner() -> anyhow::Result<()> {
function print_failed (line 270) | fn print_failed(command: &CliCommand, recipe: &PackageName) {
function print_success (line 282) | fn print_success(command: &CliCommand, recipe: Option<&PackageName>) {
function print_cached (line 305) | fn print_cached(command: &CliCommand, recipe: Option<&PackageName>) {
function repo_inner (line 328) | fn repo_inner(
function publish_packages (line 405) | fn publish_packages(recipe_names: &Vec<CookRecipe>, repo_path: &PathBuf)...
function parse_args (line 421) | fn parse_args(args: Vec<String>) -> anyhow::Result<(CliConfig, CliComman...
function handle_fetch (line 697) | fn handle_fetch(
function handle_cook (line 712) | fn handle_cook(
function handle_nonstop_fail (line 753) | fn handle_nonstop_fail(recipe: &CookRecipe) -> anyhow::Result<()> {
function handle_clean (line 763) | fn handle_clean(
function handle_push (line 786) | fn handle_push(recipes: &Vec<CookRecipe>, config: &CliConfig) -> anyhow:...
function handle_tree (line 870) | fn handle_tree(
type RecipeStatus (line 929) | enum RecipeStatus {
type StatusUpdate (line 940) | enum StatusUpdate {
type JobType (line 954) | enum JobType {
method to_string (line 960) | fn to_string(&self) -> String {
type TuiApp (line 969) | struct TuiApp {
method new (line 996) | fn new(recipes: Vec<CookRecipe>) -> Self {
method get_active_name (line 1028) | pub fn get_active_name(&self) -> Option<PackageName> {
method get_active_log (line 1036) | pub fn get_active_log(
method get_recipe_log (line 1053) | pub fn get_recipe_log(
method write_log (line 1066) | pub fn write_log(&self, recipe_name: &PackageName, log_path: &PathBuf)...
method update_status (line 1078) | fn update_status(&mut self, update: StatusUpdate) {
function run_tui_cook (line 1176) | fn run_tui_cook(
function join_logs (line 1663) | fn join_logs(log: &Vec<String>, line: Option<Cow<'_, str>>) -> String {
function handle_cr (line 1672) | fn handle_cr<'a>(buffer: &'a Cow<'_, str>) -> &'a str {
function handle_main_event (line 1677) | fn handle_main_event(app: &mut TuiApp, event: &Event) {
function kill_everything (line 1759) | fn kill_everything() {
function handle_prompt_input (line 1770) | fn handle_prompt_input<'a>(
function draw_prompt (line 1795) | fn draw_prompt(f: &mut ratatui::Frame, prompt: &FailurePrompt, is_nonsto...
function spawn_log_reader (line 1869) | fn spawn_log_reader<R>(
function setup_logger (line 1895) | fn setup_logger(
type PromptOption (line 1908) | enum PromptOption {
type FailurePrompt (line 1914) | struct FailurePrompt {
method new (line 1921) | fn new(recipe: CookRecipe, error: String) -> Self {
method next (line 1929) | fn next(&mut self) {
method prev (line 1937) | fn prev(&mut self) {
FILE: src/bin/repo_builder.rs
function is_newer (line 16) | fn is_newer(src: &Path, dst: &Path) -> bool {
type CliConfig (line 29) | struct CliConfig {
method parse_args (line 37) | fn parse_args() -> Result<Self, std::io::Error> {
function main (line 53) | fn main() -> Result<(), Box<dyn std::error::Error>> {
function publish_packages (line 60) | fn publish_packages(config: &CliConfig) -> anyhow::Result<()> {
FILE: src/blake3.rs
function blake3_progress (line 6) | pub fn blake3_progress<P: AsRef<Path>>(path: P) -> Result<String> {
function blake3_silent (line 25) | pub fn blake3_silent<P: AsRef<Path>>(path: P) -> Result<String> {
function hash_to_hex (line 33) | pub fn hash_to_hex(h: [u8; 32]) -> String {
FILE: src/config.rs
type CookConfigOpt (line 7) | pub struct CookConfigOpt {
type CookConfig (line 34) | pub struct CookConfig {
method from (line 48) | fn from(value: CookConfigOpt) -> Self {
type CookbookConfig (line 66) | pub struct CookbookConfig {
function init_config (line 76) | pub fn init_config() {
function extract_env (line 140) | fn extract_env<T: FromStr>(key: &str, default: T) -> T {
function get_config (line 148) | pub fn get_config() -> &'static CookbookConfig {
function translate_mirror (line 152) | pub fn translate_mirror(original_url: &str) -> String {
function setup_test_config (line 190) | fn setup_test_config() {
function test_parse_cook (line 204) | fn test_parse_cook() {
function test_exact_match (line 215) | fn test_exact_match() {
function test_prefix_match (line 222) | fn test_prefix_match() {
function test_longest_prefix_match (line 235) | fn test_longest_prefix_match() {
function test_no_match (line 246) | fn test_no_match() {
FILE: src/cook/cook_build.rs
function auto_deps_from_dynamic_linking (line 24) | fn auto_deps_from_dynamic_linking(
function auto_deps_from_static_package_deps (line 156) | fn auto_deps_from_static_package_deps(
type BuildResult (line 170) | pub struct BuildResult {
method new (line 177) | pub fn new(stage_dirs: Vec<PathBuf>, auto_deps: BTreeSet<PackageName>)...
method cached (line 185) | pub fn cached(stage_dirs: Vec<PathBuf>, auto_deps: BTreeSet<PackageNam...
function build (line 194) | pub fn build(
function remove_stage_dir (line 523) | pub fn remove_stage_dir(stage_dir: &PathBuf) -> Result<(), String> {
function get_stage_dirs (line 542) | pub fn get_stage_dirs(features: &Vec<OptionalPackageRecipe>, target_dir:...
function get_build_dir (line 559) | pub fn get_build_dir(target_dir: &Path) -> PathBuf {
function build_deps_dir (line 570) | fn build_deps_dir(
function build_auto_deps (line 638) | fn build_auto_deps(
function build_remote (line 683) | pub fn build_remote(
function file_system_loop_no_infinite_loop (line 749) | fn file_system_loop_no_infinite_loop() {
FILE: src/cook/fetch.rs
function get_blake3 (line 24) | pub(crate) fn get_blake3(path: &PathBuf, show_progress: bool) -> Result<...
function fetch_offline (line 40) | pub fn fetch_offline(recipe: &CookRecipe, logger: &PtyOut) -> Result<Pat...
function fetch (line 120) | pub fn fetch(recipe: &CookRecipe, check_source: bool, logger: &PtyOut) -...
function fetch_make_symlink (line 410) | pub(crate) fn fetch_make_symlink(source_dir: &PathBuf, same_as: &String)...
function fetch_resolve_canon (line 433) | pub(crate) fn fetch_resolve_canon(
function fetch_extract_tar (line 456) | pub(crate) fn fetch_extract_tar(
function fetch_cargo (line 480) | pub(crate) fn fetch_cargo(
function fetch_remote (line 506) | pub fn fetch_remote(
function read_source_toml (line 594) | fn read_source_toml(source_toml: &Path) -> Result<pkg::Package, String> {
function fetch_is_patches_newer (line 605) | pub(crate) fn fetch_is_patches_newer(
function fetch_apply_patches (line 629) | pub(crate) fn fetch_apply_patches(
function fetch_apply_source_info (line 671) | pub(crate) fn fetch_apply_source_info(
function fetch_apply_source_info_from_remote (line 685) | pub(crate) fn fetch_apply_source_info_from_remote(
function fetch_get_source_info (line 695) | pub fn fetch_get_source_info(recipe: &CookRecipe) -> Result<SourceIdenti...
FILE: src/cook/fetch_repo.rs
function load_cached_repo (line 21) | fn load_cached_repo(path: &Path) -> Option<Repository> {
function init_binary_repo (line 37) | fn init_binary_repo() -> (RepoManager, Repository) {
function get_binary_repo (line 59) | pub fn get_binary_repo() -> (RepoManager, Repository) {
type PlainPtyCallback (line 70) | pub struct PlainPtyCallback {
method new (line 82) | pub fn new(pty: PipeWriter) -> Self {
method set_interactive (line 96) | pub fn set_interactive(&mut self, enabled: bool) {
method flush (line 100) | fn flush(&self) {
method format_size (line 104) | pub fn format_size(bytes: u64) -> String {
method downloading_str (line 114) | fn downloading_str(&self) -> &'static str {
constant RESET_LINE (line 119) | const RESET_LINE: &str = "\r\x1b[2K";
method fetch_start (line 122) | fn fetch_start(&mut self, initial_count: usize) {
method fetch_package_name (line 128) | fn fetch_package_name(&mut self, pkg_name: &PackageName) {
method fetch_package_increment (line 134) | fn fetch_package_increment(&mut self, added_processed: usize, added_coun...
method fetch_end (line 146) | fn fetch_end(&mut self) {
method download_start (line 154) | fn download_start(&mut self, length: u64, file: &str) {
method download_increment (line 165) | fn download_increment(&mut self, downloaded: u64) {
method download_end (line 193) | fn download_end(&mut self) {
method install_extract (line 200) | fn install_extract(&mut self, remote_pkg: &RemotePackage) {
FILE: src/cook/fs.rs
function remove_all (line 20) | pub fn remove_all(path: &Path) -> Result<(), String> {
function create_dir (line 29) | pub fn create_dir(dir: &Path) -> Result<(), String> {
function create_dir_clean (line 34) | pub fn create_dir_clean(dir: &Path) -> Result<(), String> {
function create_target_dir (line 42) | pub fn create_target_dir(recipe_dir: &Path, target: &'static str) -> Res...
function copy_dir_all (line 54) | pub fn copy_dir_all(src: impl AsRef<Path>, dst: impl AsRef<Path>) -> io:...
function move_dir_all_fn (line 68) | pub fn move_dir_all_fn<'a>(
function move_dir_all_inner_fn (line 75) | fn move_dir_all_inner_fn<'a>(
function symlink (line 105) | pub fn symlink(original: impl AsRef<Path>, link: impl AsRef<Path>) -> Re...
function modified (line 117) | pub fn modified(path: &Path) -> Result<SystemTime, String> {
function modified_all (line 136) | pub fn modified_all(
function modified_dir_inner (line 150) | pub fn modified_dir_inner<F: FnMut(&DirEntry) -> bool>(
function modified_dir (line 165) | pub fn modified_dir(dir: &Path) -> Result<SystemTime, String> {
function modified_dir_ignore_git (line 176) | pub fn modified_dir_ignore_git(dir: &Path) -> Result<SystemTime, String> {
function check_files_present (line 194) | pub fn check_files_present(dir: &Path, expected_files: &BTreeSet<&str>) ...
function rename (line 220) | pub fn rename(src: &Path, dst: &Path) -> Result<(), String> {
function run_command (line 232) | pub fn run_command(mut command: process::Command, stdout_pipe: &PtyOut) ...
function run_command_stdin (line 248) | pub fn run_command_stdin(
function serialize_and_write (line 282) | pub fn serialize_and_write<T: Serialize>(file_path: &Path, content: &T) ...
function offline_check_exists (line 296) | pub fn offline_check_exists(path: &PathBuf) -> Result<(), String> {
function download_wget (line 306) | pub fn download_wget(url: &str, dest: &PathBuf, logger: &PtyOut) -> Resu...
function read_to_string (line 318) | pub fn read_to_string(path: &Path) -> crate::Result<String> {
function get_git_head_rev (line 323) | pub fn get_git_head_rev(dir: &PathBuf) -> Result<(String, bool), String> {
function get_git_tag_rev (line 343) | pub fn get_git_tag_rev(dir: &PathBuf, tag: &str) -> Result<String, Strin...
function get_git_ref_entry (line 349) | pub fn get_git_ref_entry(dir: &PathBuf, entry: &str) -> Result<String, S...
function get_git_fetch_rev (line 368) | pub fn get_git_fetch_rev(
function get_git_remote_tracking (line 403) | pub fn get_git_remote_tracking(dir: &PathBuf) -> Result<(String, String,...
function chop_dot_git (line 494) | pub(crate) fn chop_dot_git(url: &str) -> &str {
function get_git_branch_name (line 501) | fn get_git_branch_name(local_branch_path: &str) -> Result<String, String> {
FILE: src/cook/ident.rs
type IdentifierConfig (line 7) | pub struct IdentifierConfig {
method new (line 13) | fn new() -> Self {
function get_ident (line 36) | pub fn get_ident() -> &'static IdentifierConfig {
function init_ident (line 42) | pub fn init_ident() {
FILE: src/cook/package.rs
function package (line 18) | pub fn package(
function package_toml (line 122) | pub fn package_toml(
function package_target (line 202) | pub fn package_target(name: &PackageName) -> &'static str {
function package_stage_paths (line 210) | pub fn package_stage_paths(
function package_source_paths (line 224) | pub fn package_source_paths(
function package_name_paths (line 231) | fn package_name_paths(
function get_package_name (line 243) | pub fn get_package_name(name: &str, package: Option<&OptionalPackageReci...
function get_package_name_inner (line 247) | fn get_package_name_inner(name: &str, package: Option<&str>) -> String {
function package_handle_push (line 256) | pub fn package_handle_push(
FILE: src/cook/pty.rs
type PtyOut (line 32) | pub type PtyOut<'a> = Option<(&'a mut UnixSlavePty, &'a mut PipeWriter)>;
function setup_pty (line 34) | pub fn setup_pty() -> (
function flush_pty (line 59) | pub fn flush_pty(logger: &mut PtyOut) {
function spawn_to_pipe (line 69) | pub fn spawn_to_pipe(command: &mut Command, stdout_pipe: &PtyOut) -> Res...
type UnixPtySystem (line 82) | pub struct UnixPtySystem {}
method openpty (line 162) | fn openpty(&self, size: PtySize) -> anyhow::Result<PtyPair> {
type PtySize (line 86) | pub struct PtySize {
method default (line 100) | fn default() -> Self {
function openpty (line 110) | fn openpty(size: PtySize) -> anyhow::Result<(UnixMasterPty, UnixSlavePty...
type PtyPair (line 154) | pub struct PtyPair {
type PtyFd (line 171) | struct PtyFd(pub File);
type Target (line 173) | type Target = File;
method deref (line 174) | fn deref(&self) -> &File {
method resize (line 195) | fn resize(&self, size: PtySize) -> Result<(), Error> {
method get_size (line 220) | fn get_size(&self) -> Result<PtySize, Error> {
method spawn_command (line 243) | fn spawn_command(&self, cmd: &mut Command) -> anyhow::Result<std::proc...
method flush (line 290) | fn flush(&mut self) -> std::io::Result<()> {
method read (line 180) | fn read(&mut self, buf: &mut [u8]) -> Result<usize, io::Error> {
type UnixMasterPty (line 297) | pub struct UnixMasterPty {
method resize (line 337) | fn resize(&self, size: PtySize) -> Result<(), Error> {
method get_size (line 342) | fn get_size(&self) -> Result<PtySize, Error> {
method try_clone_reader (line 346) | fn try_clone_reader(&self) -> Result<Box<dyn Read + Send>, Error> {
type UnixSlavePty (line 303) | pub struct UnixSlavePty {
method spawn_command (line 327) | fn spawn_command(&self, builder: &mut Command) -> Result<std::process:...
method flush (line 330) | fn flush(&mut self) -> Result<(), anyhow::Error> {
function cloexec (line 308) | fn cloexec(fd: RawFd) -> Result<(), Error> {
FILE: src/cook/tree.rs
type WalkTreeEntry (line 12) | pub enum WalkTreeEntry<'a> {
function display_tree_entry (line 19) | pub fn display_tree_entry(
function walk_tree_entry (line 42) | pub fn walk_tree_entry(
function display_pkg_fn (line 129) | pub fn display_pkg_fn(
function walk_file_tree (line 147) | pub fn walk_file_tree(dir: &PathBuf, prefix: &str, buffer: &mut String) ...
function format_size (line 187) | pub fn format_size(bytes: u64) -> String {
FILE: src/lib.rs
constant WALK_DEPTH (line 10) | pub const WALK_DEPTH: usize = 16;
constant REMOTE_PKG_SOURCE (line 13) | pub const REMOTE_PKG_SOURCE: &str = "https://static.redox-os.org/pkg";
function is_redox (line 15) | pub fn is_redox() -> bool {
type Error (line 25) | pub enum Error {
method from (line 54) | fn from(value: String) -> Self {
method from (line 60) | fn from(value: pkg::PackageError) -> Self {
method from (line 66) | fn from(value: pkgar::Error) -> Self {
type Result (line 82) | pub(crate) type Result<T> = std::result::Result<T, Error>;
FILE: src/progress_bar.rs
type ProgressBarRead (line 5) | pub struct ProgressBarRead<'p, 'r, P: Write + 'p, R: Read + 'r> {
function new (line 11) | pub fn new(pb: &'p mut ProgressBar<P>, r: &'r mut R) -> ProgressBarRead<...
method read (line 17) | fn read(&mut self, buf: &mut [u8]) -> Result<usize> {
FILE: src/recipe.rs
type SourceRecipe (line 17) | pub enum SourceRecipe {
type BuildKind (line 69) | pub enum BuildKind {
method default (line 112) | fn default() -> Self {
type BuildRecipe (line 119) | pub struct BuildRecipe {
method new (line 159) | pub fn new(kind: BuildKind) -> Self {
method set_as_remote (line 165) | pub fn set_as_remote(&mut self) {
method set_as_none (line 174) | pub fn set_as_none(&mut self) {
type PackageRecipe (line 129) | pub struct PackageRecipe {
type OptionalPackageRecipe (line 137) | pub struct OptionalPackageRecipe {
type Recipe (line 146) | pub struct Recipe {
method new (line 193) | pub fn new(file: &PathBuf) -> Result<Recipe, PackageError> {
method get_packages_list (line 204) | pub fn get_packages_list(&self) -> Vec<Option<&OptionalPackageRecipe>> {
type CookRecipe (line 182) | pub struct CookRecipe {
method new (line 214) | pub fn new(name: PackageName, dir: PathBuf, mut recipe: Recipe) -> Res...
method from_name (line 250) | pub fn from_name(name: PackageName) -> Result<Self, PackageError> {
method from_list (line 258) | pub fn from_list(names: Vec<PackageName>) -> Result<Vec<Self>, Package...
method from_path (line 266) | pub fn from_path(dir: &Path, read_recipe: bool, is_host: bool) -> Resu...
method new_recursive (line 281) | fn new_recursive(
method get_build_deps_recursive (line 381) | pub fn get_build_deps_recursive(
method get_package_deps_recursive (line 399) | pub fn get_package_deps_recursive(
method get_all_deps_names_recursive (line 418) | pub fn get_all_deps_names_recursive(
method reload_recipe (line 428) | pub fn reload_recipe(&mut self) -> Result<(), PackageError> {
method stage_paths (line 435) | pub fn stage_paths(&self) -> (PathBuf, PathBuf, PathBuf) {
method target_dir (line 443) | pub fn target_dir(&self) -> PathBuf {
method apply_filesystem_config (line 447) | pub fn apply_filesystem_config(&mut self, rule: &str) -> Result<(), an...
method guess_version (line 479) | pub fn guess_version(&self) -> Option<String> {
function recipes_mark_as_deps (line 538) | pub fn recipes_mark_as_deps(names: &[PackageName], packages: &mut Vec<Co...
function recipes_flatten_package_names (line 544) | pub fn recipes_flatten_package_names(packages: Vec<CookRecipe>) -> Vec<C...
type AutoDeps (line 563) | pub struct AutoDeps {
type VersionExtractor (line 567) | pub struct VersionExtractor {
method new (line 572) | pub fn new() -> Self {
method extract_ver (line 577) | pub fn extract_ver(&self, text: &str) -> Option<String> {
method extract_cargo_ver (line 583) | fn extract_cargo_ver(path: &Path) -> Option<String> {
function git_cargo_recipe (line 613) | fn git_cargo_recipe() {
function tar_custom_recipe (line 653) | fn tar_custom_recipe() {
function meta_recipe (line 690) | fn meta_recipe() {
FILE: src/web.rs
type CliWebConfig (line 17) | pub struct CliWebConfig {
method parse_args (line 27) | pub fn parse_args() -> Option<CliWebConfig> {
constant CSS (line 50) | const CSS: &str = include_str!("./web/style.css");
function generate_web (line 52) | pub fn generate_web(all_packages: &Vec<String>, config: &CliWebConfig) {
function get_category (line 117) | pub(crate) fn get_category(dir: &Path) -> String {
FILE: src/web/html.rs
function generate_html_pkg (line 9) | pub fn generate_html_pkg(
function generate_html_index (line 207) | pub fn generate_html_index(
function get_hostname (line 290) | fn get_hostname(url: &str) -> &str {
function get_tree_url (line 302) | pub fn get_tree_url(git_url: &str, host: &str, commit: &str, folder: Opt...
function get_short_commit (line 327) | fn get_short_commit(commit: &str) -> &str {
Condensed preview — 3133 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,094K chars).
[
{
"path": ".cargo/config.toml",
"chars": 473,
"preview": "[target.aarch64-unknown-redox]\nlinker = \"aarch64-unknown-redox-gcc\"\nrustflags = []\n\n[target.i586-unknown-redox]\nlinker ="
},
{
"path": ".gitignore",
"chars": 433,
"preview": "/build/\n/prefix/\n.config\n**/my_*\n# Local settings folder for Jetbrains products (RustRover, IntelliJ, CLion)\n.idea/\n# Lo"
},
{
"path": ".gitlab/issue_templates/Issue_template.md",
"chars": 3740,
"preview": "<!-- Thank you for taking the time to submit an issue! By following these comments and filling out the sections below, y"
},
{
"path": ".gitlab/merge_request_templates/Merge_request_template.md",
"chars": 669,
"preview": "**Problem**: [describe the problem you try to solve with this PR.]\n\n**Solution**: [describe carefully what you change by"
},
{
"path": ".gitlab-ci.yml",
"chars": 1263,
"preview": "# The GitLab Continuous Integration configuration\n\nvariables:\n GIT_STRATEGY: \"clone\"\n\nstages:\n - lint\n - test\n\nworkfl"
},
{
"path": "CONTRIBUTING.md",
"chars": 16655,
"preview": "# Contributing to Redox\n\n**Thank you for your interest in contributing to Redox!**\n\nThis document will outline the basic"
},
{
"path": "Cargo.toml",
"chars": 1617,
"preview": "[package]\nname = \"redox_cookbook\"\nversion = \"0.1.0\"\nauthors = [\"Jeremy Soller <jackpot51@gmail.com>\"]\nedition = \"2024\"\nd"
},
{
"path": "HARDWARE.md",
"chars": 9494,
"preview": "# Hardware Compatibility\n\nThis document tracks the current hardware compatibility of Redox OS.\n\n- [Why are hardware repo"
},
{
"path": "LICENSE",
"chars": 1076,
"preview": "Copyright (c) 2016 Redox OS Developers\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaini"
},
{
"path": "Makefile",
"chars": 3549,
"preview": "# This file contains the build system commands configuration\n# and environment variables\ninclude mk/config.mk\n\n# Build s"
},
{
"path": "README.md",
"chars": 4999,
"preview": "<p align=\"center\">\n<img alt=\"Redox\" width=\"346\" src=\"https://gitlab.redox-os.org/redox-os/assets/raw/master/logos/redox/"
},
{
"path": "TRADEMARK.md",
"chars": 4575,
"preview": "# Redox OS Trademark Policy\n\nThis document outlines the policy regarding the use of the Redox OS trademark owned by the "
},
{
"path": "bin/aarch64-unknown-redox-pkg-config",
"chars": 312,
"preview": "#!/usr/bin/env bash\n\nexport PKG_CONFIG_SYSROOT_DIR=\"${COOKBOOK_SYSROOT}\"\nexport PKG_CONFIG_LIBDIR=\"${PKG_CONFIG_SYSROOT_"
},
{
"path": "bin/i586-unknown-redox-pkg-config",
"chars": 312,
"preview": "#!/usr/bin/env bash\n\nexport PKG_CONFIG_SYSROOT_DIR=\"${COOKBOOK_SYSROOT}\"\nexport PKG_CONFIG_LIBDIR=\"${PKG_CONFIG_SYSROOT_"
},
{
"path": "bin/i686-unknown-redox-pkg-config",
"chars": 312,
"preview": "#!/usr/bin/env bash\n\nexport PKG_CONFIG_SYSROOT_DIR=\"${COOKBOOK_SYSROOT}\"\nexport PKG_CONFIG_LIBDIR=\"${PKG_CONFIG_SYSROOT_"
},
{
"path": "bin/riscv64-unknown-redox-pkg-config",
"chars": 312,
"preview": "#!/usr/bin/env bash\n\nexport PKG_CONFIG_SYSROOT_DIR=\"${COOKBOOK_SYSROOT}\"\nexport PKG_CONFIG_LIBDIR=\"${PKG_CONFIG_SYSROOT_"
},
{
"path": "bin/x86_64-unknown-redox-llvm-config",
"chars": 3266,
"preview": "#!/usr/bin/env python3\n\n# This script wraps llvm-config that intended for cross compiling to Redox.\n# Because we can't r"
},
{
"path": "bin/x86_64-unknown-redox-pkg-config",
"chars": 312,
"preview": "#!/usr/bin/env bash\n\nexport PKG_CONFIG_SYSROOT_DIR=\"${COOKBOOK_SYSROOT}\"\nexport PKG_CONFIG_LIBDIR=\"${PKG_CONFIG_SYSROOT_"
},
{
"path": "build.sh",
"chars": 4187,
"preview": "#!/usr/bin/env bash\n\n# Alternative script for the build system Makefiles\n\n##############################################"
},
{
"path": "config/aarch64/ci.toml",
"chars": 6132,
"preview": "# The Redox build server configuration\n\n# General settings\n[general]\n# Do not prompt if settings are not defined\nprompt "
},
{
"path": "config/aarch64/demo.toml",
"chars": 65,
"preview": "# Configuration for demonstration\n\ninclude = [\"../desktop.toml\"]\n"
},
{
"path": "config/aarch64/dev.toml",
"chars": 354,
"preview": "# Configuration for development\n\ninclude = [\"../dev.toml\"]\n\n# Override the default settings here\n\n# General settings\n[ge"
},
{
"path": "config/aarch64/jeremy.toml",
"chars": 62,
"preview": "# Configuration for Jeremy Soller\n\ninclude = [\"desktop.toml\"]\n"
},
{
"path": "config/aarch64/raspi3bp/minimal.toml",
"chars": 188,
"preview": "# Minimal configuration\n\ninclude = [\"../../minimal.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\nfilesys"
},
{
"path": "config/aarch64/redoxer.toml",
"chars": 162,
"preview": "# Configuration used for building redoxer base image\n\ninclude = [\"../redoxer.toml\"]\n\n# General settings\n[general]\n# File"
},
{
"path": "config/acid.toml",
"chars": 455,
"preview": "# Configuration for \"acid\" testing\n\ninclude = [\"base.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\nfiles"
},
{
"path": "config/auto-test.toml",
"chars": 597,
"preview": "# Configuration for automated testing of essential test suites\n# Smaller test suites are executed first to catch possibl"
},
{
"path": "config/base.toml",
"chars": 4680,
"preview": "# Base configuration: This configuration is meant to be included by\n# other configurations rather than use directly. It "
},
{
"path": "config/desktop-minimal.toml",
"chars": 548,
"preview": "# Minimal desktop configuration\n\ninclude = [\"minimal.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\nfiles"
},
{
"path": "config/desktop.toml",
"chars": 472,
"preview": "# Default build system configuration\n\ninclude = [\"desktop-minimal.toml\", \"server.toml\"]\n\n# General settings\n[general]\n# "
},
{
"path": "config/dev.toml",
"chars": 261,
"preview": "# Configuration for development\n\ninclude = [\"desktop.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\nfiles"
},
{
"path": "config/i586/ci.toml",
"chars": 6050,
"preview": "# The Redox build server configuration\n\n# General settings\n[general]\n# Do not prompt if settings are not defined\nprompt "
},
{
"path": "config/i586/demo.toml",
"chars": 2001,
"preview": "# Configuration for demonstration\n\ninclude = [\"../desktop.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\n"
},
{
"path": "config/i586/dev.toml",
"chars": 223,
"preview": "# Configuration for development\n\ninclude = [\"../dev.toml\"]\n\n# Override the default settings here\n\n# General settings\n[ge"
},
{
"path": "config/i586/jeremy.toml",
"chars": 474,
"preview": "# Configuration for Jeremy Soller\n\ninclude = [\"../desktop.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\n"
},
{
"path": "config/i586/redoxer.toml",
"chars": 162,
"preview": "# Configuration used for building redoxer base image\n\ninclude = [\"../redoxer.toml\"]\n\n# General settings\n[general]\n# File"
},
{
"path": "config/minimal.toml",
"chars": 394,
"preview": "# Minimal configuration\n\ninclude = [\"base.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\nfilesystem_size "
},
{
"path": "config/os-test.toml",
"chars": 424,
"preview": "# Configuration for \"os-test\" testing\n\ninclude = [\"server.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\n"
},
{
"path": "config/redoxer-gui.toml",
"chars": 320,
"preview": "# Configuration for the Redoxer GUI image\n\ninclude = [\"redoxer.toml\"]\n\n# Package settings\n[packages]\norbdata = {}\norbita"
},
{
"path": "config/redoxer.toml",
"chars": 759,
"preview": "# Configuration for the Redoxer image\n\ninclude = [\"base.toml\"]\n\n# Package settings\n[packages]\nbash = {}\nca-certificates "
},
{
"path": "config/riscv64gc/ci.toml",
"chars": 6447,
"preview": "# The Redox build server configuration\n\n# General settings\n[general]\n# Do not prompt if settings are not defined\nprompt "
},
{
"path": "config/riscv64gc/demo.toml",
"chars": 62,
"preview": "# Configuration for demonstration\n\ninclude = [\"desktop.toml\"]\n"
},
{
"path": "config/riscv64gc/desktop.toml",
"chars": 310,
"preview": "# Default build system configuration\n\ninclude = [\"../desktop.toml\"]\n\n# Override the default settings here\n\n# General set"
},
{
"path": "config/riscv64gc/jeremy.toml",
"chars": 62,
"preview": "# Configuration for Jeremy Soller\n\ninclude = [\"desktop.toml\"]\n"
},
{
"path": "config/server.toml",
"chars": 313,
"preview": "# Server configuration\n\ninclude = [\"minimal.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\nfilesystem_siz"
},
{
"path": "config/tests.toml",
"chars": 257,
"preview": "# Configuration for testing\n\ninclude = [\"server.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\nfilesystem"
},
{
"path": "config/wayland.toml",
"chars": 1868,
"preview": "# Wayland configuration\n\ninclude = [\"desktop.toml\"]\n\n# Override the default settings here\n\n# General settings\n[general]\n"
},
{
"path": "config/x11.toml",
"chars": 2989,
"preview": "# X11 configuration\n\ninclude = [\"desktop.toml\"]\n\n# Override the default settings here\n\n# General settings\n[general]\n# Fi"
},
{
"path": "config/x86_64/ci.toml",
"chars": 5582,
"preview": "# The Redox build server configuration\n\n# General settings\n[general]\n# Do not prompt if settings are not defined\nprompt "
},
{
"path": "config/x86_64/demo.toml",
"chars": 2239,
"preview": "# Configuration for demonstration\n\ninclude = [\"../desktop.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\n"
},
{
"path": "config/x86_64/desktop-contain.toml",
"chars": 970,
"preview": "# Desktop configuration using the Contain sandbox\n\ninclude = [\"../desktop.toml\"]\n\n# Override the default settings here\n\n"
},
{
"path": "config/x86_64/full.toml",
"chars": 138,
"preview": "include = [ \"../base.toml\", \"ci.toml\" ]\n\n# General settings\n[general]\nfilesystem_size = 8192\n\n# Package settings\n[packag"
},
{
"path": "config/x86_64/jeremy.toml",
"chars": 1601,
"preview": "# Configuration for Jeremy Soller\n\ninclude = [\"demo.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\nfilesy"
},
{
"path": "config/x86_64/redoxer.toml",
"chars": 162,
"preview": "# Configuration used for building redoxer base image\n\ninclude = [\"../redoxer.toml\"]\n\n# General settings\n[general]\n# File"
},
{
"path": "config/x86_64/rustconf2025.toml",
"chars": 205,
"preview": "# Configuration for demonstration\n\ninclude = [\"demo.toml\"]\n\n# General settings\n[general]\n# Filesystem size in MiB\nfilesy"
},
{
"path": "config/x86_64/server-demo.toml",
"chars": 6084,
"preview": "# Configuration for server stack demonstration\n\ninclude = [\"../server.toml\"]\n\n# General settings\n[general]\n# Filesystem "
},
{
"path": "flake.nix",
"chars": 6947,
"preview": "{\n description = \"The Nix-flake for Redox development on NixOS\";\n\n inputs = {\n nixpkgs.url = \"github:NixOS/nixpkgs/"
},
{
"path": "mk/ci.mk",
"chars": 3006,
"preview": "# Configuration file of the build system commands for the build server\n\nIMG_TAG?=$(shell git describe --tags)\nIMG_SEPARA"
},
{
"path": "mk/config.mk",
"chars": 5770,
"preview": "# Configuration file of the build system environment variables\n\n-include .config\n\nHOST_ARCH?=$(shell uname -m)\n\n# Config"
},
{
"path": "mk/depends.mk",
"chars": 882,
"preview": "# Configuration file for the build system dependencies\n\n# Don't check for dependencies if you will be using Podman\nifneq"
},
{
"path": "mk/disk.mk",
"chars": 2977,
"preview": "# Configuration file with the commands configuration of the Redox image\n\n$(BUILD)/harddrive.img: $(FSTOOLS) $(REPO_TAG)\n"
},
{
"path": "mk/fstools.mk",
"chars": 1466,
"preview": "# Configuration file for redox-installer, Cookbook and RedoxFS FUSE\n\nfstools: $(FSTOOLS_TAG) $(FSTOOLS)\n\nGOING_TO_PODMAN"
},
{
"path": "mk/podman.mk",
"chars": 4068,
"preview": "# Configuration file of the Podman commands\n\n# Configuration variables for running make in Podman\n## Tag the podman imag"
},
{
"path": "mk/prefix.mk",
"chars": 16171,
"preview": "# Configuration file for the Rust/GCC cross-compilers, relibc and libtool\n\nPREFIX=prefix/$(TARGET)\n\nPREFIX_INSTALL=$(PRE"
},
{
"path": "mk/qemu.mk",
"chars": 9383,
"preview": "# Configuration file for QEMU\n\nQEMU=qemu-system-$(QEMU_ARCH)\nQEMUFLAGS=-d guest_errors -name \"Redox OS $(ARCH)\"\nnetboot?"
},
{
"path": "mk/repo.mk",
"chars": 8023,
"preview": "# Configuration file for recipe commands\n\n$(REPO_TAG): prefix $(FILESYSTEM_CONFIG) | $(FSTOOLS) $(FSTOOLS_TAG) $(CONTAIN"
},
{
"path": "mk/virtualbox.mk",
"chars": 1571,
"preview": "# Configuration file for VirtualBox, it creates a VirtualBox virtual machine\n\nvirtualbox: $(BUILD)/harddrive.img\n\techo \""
},
{
"path": "native_bootstrap.sh",
"chars": 35523,
"preview": "#!/usr/bin/env bash\n\n# This script is used to setup the Redox build system\n# It installs Rustup, the recipe dependencies"
},
{
"path": "podman/redox-base-containerfile",
"chars": 1816,
"preview": "# Configuration file to install the recipe dependencies inside the Podman container\n\nFROM docker.io/library/debian:trixi"
},
{
"path": "podman/redox-gdb-containerfile",
"chars": 344,
"preview": "FROM debian:stable-backports\n\nRUN apt-get update \\\n && apt-get install -y --no-install-recommends -t stable-backports"
},
{
"path": "podman/rustinstall.sh",
"chars": 1100,
"preview": "#!/usr/bin/env bash\n# This must be run outside podman build so the build/podman volume mount to /root contains all home "
},
{
"path": "podman_bootstrap.sh",
"chars": 21950,
"preview": "#!/usr/bin/env bash\n\n# This script setup the Redox build system with Podman\n# It install the Podman dependencies for cro"
},
{
"path": "recipes/archives/lz4/recipe.toml",
"chars": 431,
"preview": "[source]\ntar = \"https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz\"\nblake3 = \"3e69fd475e7852e1759498"
},
{
"path": "recipes/archives/lz4/redox.patch",
"chars": 1153,
"preview": "diff '--color=auto' -ruwN source/programs/util.h source-new/programs/util.h\n--- source/programs/util.h\t2024-07-21 13:29:"
},
{
"path": "recipes/archives/zstd/01_redox.patch",
"chars": 562,
"preview": "diff -ruwN source/programs/platform.h source-new/programs/platform.h\r\n--- source/programs/platform.h\t2025-02-19 07:04:24"
},
{
"path": "recipes/archives/zstd/recipe.toml",
"chars": 472,
"preview": "[source]\ntar = \"https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz\"\npatches = [\n \"01_redox.p"
},
{
"path": "recipes/artwork/pop-wallpapers/recipe.toml",
"chars": 230,
"preview": "[source]\ngit = \"https://github.com/pop-os/wallpapers\"\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\nmkdir -pv \"${COOKBOOK_STA"
},
{
"path": "recipes/artwork/ubuntu-wallpapers/recipe.toml",
"chars": 419,
"preview": "[source]\ntar = \"https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/ubuntu-wallpapers/23.10.4/ubuntu-wallpapers_2"
},
{
"path": "recipes/core/base/recipe.toml",
"chars": 2123,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/base.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\nmkdir -pv \"${CO"
},
{
"path": "recipes/core/base-initfs/recipe.toml",
"chars": 2860,
"preview": "[source]\nsame_as = \"../base\"\n\n[build]\ntemplate = \"custom\"\ndependencies = [\n \"redoxfs\",\n]\nscript = \"\"\"\nBINS=(\n init\n "
},
{
"path": "recipes/core/binutils/recipe.toml",
"chars": 95,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/binutils.git\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/core/bootloader/recipe.toml",
"chars": 1054,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/bootloader.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\nOUTDIR=\"$"
},
{
"path": "recipes/core/contain/recipe.toml",
"chars": 94,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/contain.git\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/core/coreutils/recipe.toml",
"chars": 96,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/coreutils.git\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/core/dash/recipe.toml",
"chars": 580,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/dash.git\"\nbranch = \"redox\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\""
},
{
"path": "recipes/core/extrautils/recipe.toml",
"chars": 298,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/extrautils.git\"\n\n[build]\ntemplate = \"custom\"\ndependencies = [\n \""
},
{
"path": "recipes/core/findutils/recipe.toml",
"chars": 130,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/findutils.git\"\n\n[build]\ntemplate = \"cargo\"\ncargoflags = [\n \"--bi"
},
{
"path": "recipes/core/installer/recipe.toml",
"chars": 96,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/installer.git\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/core/ion/recipe.toml",
"chars": 151,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/ion.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\n# Must be static"
},
{
"path": "recipes/core/kernel/recipe.toml",
"chars": 236,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/kernel.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\nmake -f ${COO"
},
{
"path": "recipes/core/netdb/recipe.toml",
"chars": 160,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/netdb.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\ncp -rv \"${COOK"
},
{
"path": "recipes/core/netutils/recipe.toml",
"chars": 95,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/netutils.git\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/core/pkgar/recipe.toml",
"chars": 181,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/pkgar.git\"\n\n[build]\ntemplate = \"cargo\"\ncargopackages = [\n \"pkgar"
},
{
"path": "recipes/core/pkgutils/recipe.toml",
"chars": 184,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/pkgutils.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\n# Must be s"
},
{
"path": "recipes/core/profiled/recipe.toml",
"chars": 156,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/profiled.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\n# Must be s"
},
{
"path": "recipes/core/redoxfs/recipe.toml",
"chars": 155,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/redoxfs.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\n# Must be st"
},
{
"path": "recipes/core/relibc/recipe.toml",
"chars": 646,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/relibc.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\n# obscure cra"
},
{
"path": "recipes/core/strace/recipe.toml",
"chars": 99,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/strace-redox.git\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/core/userutils/recipe.toml",
"chars": 242,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/userutils.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\nDYNAMIC_IN"
},
{
"path": "recipes/core/uutils/recipe.toml",
"chars": 1531,
"preview": "# TODO Fix coreutils i18n/l10n behavior on Redox\n# TODO Fix locale init bug on aarch64 before removing patches\n[source]\n"
},
{
"path": "recipes/core/uutils/redox.patch",
"chars": 2815,
"preview": "diff --git a/Cargo.toml b/Cargo.toml\nindex b0015fa6f..cfb2b1b30 100644\n--- a/Cargo.toml\n+++ b/Cargo.toml\n@@ -326,6 +326,"
},
{
"path": "recipes/demos/cairo-demo/cairo-demo.c",
"chars": 3620,
"preview": "#include <stdint.h>\n#include <math.h>\n#include <stdlib.h>\n#include <cairo/cairo.h>\n#include <orbital.h>\n\n#ifndef M_PI\n#d"
},
{
"path": "recipes/demos/cairo-demo/recipe.toml",
"chars": 478,
"preview": "# source is part of cookbook\n\n[build]\ndependencies = [\n \"cairo\",\n \"expat\",\n \"fontconfig\",\n \"freetype2\",\n "
},
{
"path": "recipes/demos/cmatrix/recipe.toml",
"chars": 522,
"preview": "[source]\ngit = \"https://github.com/abishekvashok/cmatrix\"\nscript = \"\"\"\nautoreconf -i\n\"\"\"\n\n[build]\ntemplate = \"custom\"\nde"
},
{
"path": "recipes/demos/cpal/recipe.toml",
"chars": 203,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/cpal.git\"\nbranch = \"redox\"\nupstream = \"https://github.com/tomaka/cp"
},
{
"path": "recipes/demos/dynamic-example/recipe.toml",
"chars": 147,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/dynamic-example.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\nDYNA"
},
{
"path": "recipes/demos/exampled/recipe.toml",
"chars": 95,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/exampled.git\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/demos/gears/gears.c",
"chars": 8438,
"preview": "/* gears.c */\n\n/*\n * 3-D gear wheels. This program is in the public domain.\n *\n * Brian Paul\n */\n\n/* Conversion to GLUT"
},
{
"path": "recipes/demos/gears/recipe.toml",
"chars": 371,
"preview": "[build]\ndependencies=[\n \"liborbital\",\n \"mesa\",\n \"mesa-glu\",\n \"zlib\",\n]\ntemplate = \"custom\"\nscript = \"\"\"\nDYNA"
},
{
"path": "recipes/demos/glutin/recipe.toml",
"chars": 719,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/glutin.git\"\nbranch = \"redox-0.30\"\nupstream = \"https://github.com/ru"
},
{
"path": "recipes/demos/iced/recipe.toml",
"chars": 158,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/iced.git\"\nbranch = \"redox\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\""
},
{
"path": "recipes/demos/orbclient/recipe.toml",
"chars": 129,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/orbclient.git\"\n\n[build]\ntemplate = \"cargo\"\ncargoexamples = [\n \"s"
},
{
"path": "recipes/demos/osdemo/osdemo.c",
"chars": 14528,
"preview": "/*\n * Test OSMesa interface at 8, 16 and 32 bits/channel.\n *\n * Usage: osdemo [options]\n *\n * Options:\n * -f generat"
},
{
"path": "recipes/demos/osdemo/recipe.toml",
"chars": 392,
"preview": "[build]\ntemplate = \"custom\"\ndependencies = [\n \"liborbital\",\n \"mesa\",\n \"mesa-glu\",\n \"zlib\"\n]\nscript = \"\"\"\nDYN"
},
{
"path": "recipes/demos/pixelcannon/recipe.toml",
"chars": 423,
"preview": "[source]\ngit = \"https://github.com/jackpot51/pixelcannon.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\ncookbook_cargo\n\n"
},
{
"path": "recipes/demos/sdl2-gears/gears.c",
"chars": 13495,
"preview": "/* gears.c */\n\n/*\n * 3-D gear wheels. This program is in the public domain.\n *\n * Brian Paul\n */\n\n/* Conversion to GLUT"
},
{
"path": "recipes/demos/sdl2-gears/recipe.toml",
"chars": 579,
"preview": "[build]\ntemplate = \"custom\"\ndependencies = [\n \"sdl2-image\",\n \"sdl2-mixer\",\n \"sdl2-ttf\",\n]\nscript = \"\"\"\nDYNAMIC_"
},
{
"path": "recipes/demos/winit/recipe.toml",
"chars": 189,
"preview": "[source]\ngit = \"https://github.com/pop-os/winit.git\"\nbranch = \"winit-0.29\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\ncoo"
},
{
"path": "recipes/dev/autoconf/recipe.toml",
"chars": 215,
"preview": "[source]\ntar = \"https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz\"\nblake3 = \"da1cc8af8551c343de9f42af0ae53fd7dff3623"
},
{
"path": "recipes/dev/automake/recipe.toml",
"chars": 217,
"preview": "[source]\ntar = \"https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz\"\nblake3 = \"f42cfc333aaaa11f2bcb05b5b0273b8706c82"
},
{
"path": "recipes/dev/binutils-gdb/recipe.toml",
"chars": 713,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/binutils-gdb\"\nbranch = \"redox-2.43.1\"\nshallow_clone = true\n\n[build]"
},
{
"path": "recipes/dev/clang21/recipe.toml",
"chars": 2437,
"preview": "[source]\nsame_as = \"../llvm21\"\n\n[build]\ntemplate = \"custom\"\ndependencies = [\n \"llvm21\",\n]\ndev-dependencies = [\n \"l"
},
{
"path": "recipes/dev/cmake/recipe.toml",
"chars": 908,
"preview": "[source]\ntar = \"https://github.com/Kitware/CMake/releases/download/v4.0.3/cmake-4.0.3.tar.gz\"\n\n[build]\ntemplate = \"custo"
},
{
"path": "recipes/dev/composer/recipe.toml",
"chars": 268,
"preview": "#TODO must be run using `php $(which composer)`\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\nmkdir -p \"${COOKBOOK_STAGE}\"/us"
},
{
"path": "recipes/dev/crates-io-index/recipe.toml",
"chars": 278,
"preview": "[source]\ngit = \"https://github.com/rust-lang/crates.io-index.git\"\nshallow_clone = true\n\n[build]\ntemplate = \"custom\"\nscri"
},
{
"path": "recipes/dev/fontconfig/recipe.toml",
"chars": 365,
"preview": "[source]\ntar = \"https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.16.0.tar.xz\"\nblake3 = \"5c95d48f5b91"
},
{
"path": "recipes/dev/fontconfig/redox.patch",
"chars": 1005,
"preview": "diff -ruwN source/src/fccache.c source-new/src/fccache.c\n--- source/src/fccache.c\t2019-06-10 05:36:37.000000000 -0600\n++"
},
{
"path": "recipes/dev/gcc13/recipe.toml",
"chars": 3031,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/gcc\"\nbranch = \"redox-13.2.0\"\nshallow_clone = true\nscript = \"\"\"\nDYNA"
},
{
"path": "recipes/dev/gdbserver/recipe.toml",
"chars": 96,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/gdbserver.git\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/dev/gdk-pixbuf/recipe.toml",
"chars": 473,
"preview": "[source]\ntar = \"https://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.44/gdk-pixbuf-2.44.4.tar.xz\"\nblake3 = \"94db7bebffbd"
},
{
"path": "recipes/dev/git/git.patch",
"chars": 6321,
"preview": "diff -ruwN git-2.13.1/compat/bswap.h source/compat/bswap.h\n--- git-2.13.1/compat/bswap.h\t2017-06-04 19:08:11.000000000 -"
},
{
"path": "recipes/dev/git/recipe.toml",
"chars": 1065,
"preview": "[source]\ntar = \"https://www.kernel.org/pub/software/scm/git/git-2.13.1.tar.xz\"\nblake3 = \"bc78271bffd60c5b8b938d8c08fd74d"
},
{
"path": "recipes/dev/gitoxide/recipe.toml",
"chars": 222,
"preview": "[source]\ngit = \"https://github.com/Byron/gitoxide.git\"\n\n[build]\ndependencies = [\n \"openssl1\",\n]\ntemplate = \"custom\"\ns"
},
{
"path": "recipes/dev/gnu-make/recipe.toml",
"chars": 410,
"preview": "#TODO very basic makefiles are tested to work but needs more testing\n[source]\ntar = \"http://ftp.gnu.org/gnu/make/make-4."
},
{
"path": "recipes/dev/gnu-make/redox.patch",
"chars": 962,
"preview": "diff -ruwN make-4.4/src/arscan.c source/src/arscan.c\n--- make-4.4/src/arscan.c\t2022-10-23 16:52:32.000000000 +0200\n+++ s"
},
{
"path": "recipes/dev/hello-world-examples/recipe.toml",
"chars": 271,
"preview": "[source]\ngit = \"https://github.com/leachim6/hello-world\"\nshallow_clone = true\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\nm"
},
{
"path": "recipes/dev/jq/recipe.toml",
"chars": 146,
"preview": "#TODO undefined reference\n[source]\ntar = \"https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-1.8.1.tar.gz\"\n[buil"
},
{
"path": "recipes/dev/lang/gawk/recipe.toml",
"chars": 349,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/gawk.git\"\nupstream = \"https://git.savannah.gnu.org/git/gawk.git\"\nbr"
},
{
"path": "recipes/dev/lci/recipe.toml",
"chars": 82,
"preview": "[source]\ngit = \"https://github.com/jD91mZM2/rust-lci\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/dev/libtool/recipe.toml",
"chars": 430,
"preview": "#TODO can build, not tested\n[source]\ngit = \"https://gitlab.redox-os.org/redox-os/libtool\"\nbranch = \"v2.5.4-redox\"\nshallo"
},
{
"path": "recipes/dev/lld21/recipe.toml",
"chars": 1426,
"preview": "[source]\nsame_as = \"../llvm21\"\n\n[build]\ntemplate = \"custom\"\ndependencies = [\n \"llvm21\",\n \"zstd\",\n]\ndev-dependencie"
},
{
"path": "recipes/dev/llvm18/native.cmake",
"chars": 53,
"preview": "set(CMAKE_C_COMPILER cc)\nset(CMAKE_CXX_COMPILER c++)\n"
},
{
"path": "recipes/dev/llvm18/recipe.toml",
"chars": 2036,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/llvm-project.git\"\nupstream = \"https://github.com/rust-lang/llvm-pro"
},
{
"path": "recipes/dev/llvm21/native.cmake",
"chars": 53,
"preview": "set(CMAKE_C_COMPILER cc)\nset(CMAKE_CXX_COMPILER c++)\n"
},
{
"path": "recipes/dev/llvm21/recipe.toml",
"chars": 2035,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/llvm-project.git\"\nupstream = \"https://github.com/rust-lang/llvm-pro"
},
{
"path": "recipes/dev/lua54/recipe.toml",
"chars": 446,
"preview": "[source]\ntar = \"https://lua.org/ftp/lua-5.4.7.tar.gz\"\nblake3 = \"e51c2f347e3185479d5ff95cae8ac77511db486853269443c56bedaa"
},
{
"path": "recipes/dev/luajit/recipe.toml",
"chars": 461,
"preview": "[source]\ngit = \"https://luajit.org/git/luajit.git\"\nrev = \"a4f56a459a588ae768801074b46ba0adcfb49eb1\"\npatches = [\"redox.pa"
},
{
"path": "recipes/dev/luajit/redox.patch",
"chars": 693,
"preview": "diff --git a/src/Makefile b/src/Makefile\nindex 3a6a4329..450e8fe6 100644\n--- a/src/Makefile\n+++ b/src/Makefile\n@@ -351,6"
},
{
"path": "recipes/dev/luarocks/recipe.toml",
"chars": 369,
"preview": "[source]\ngit = \"https://github.com/luarocks/luarocks.git\"\n[build]\ntemplate = \"custom\"\ndependencies = [\n\"lua54\"\n]\nscript "
},
{
"path": "recipes/dev/nasm/recipe.toml",
"chars": 293,
"preview": "[source]\n#TODO: nasm.us is down: tar = \"https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz\"\ntar = \"h"
},
{
"path": "recipes/dev/patch/01_no_rlimit.patch",
"chars": 1060,
"preview": "diff -ru source/lib/getdtablesize.c source-new/lib/getdtablesize.c\n--- source/lib/getdtablesize.c\t2015-03-06 16:31:45.00"
},
{
"path": "recipes/dev/patch/02_no_chown.patch",
"chars": 645,
"preview": "diff -ru source/src/util.c source-new/src/util.c\n--- source/src/util.c\t2015-03-06 16:34:20.000000000 -0800\n+++ source-ne"
},
{
"path": "recipes/dev/patch/03_renameat2.patch",
"chars": 467,
"preview": "--- source-old/lib/renameat2.c\t2018-02-03 05:41:53.000000000 -0700\n+++ source/lib/renameat2.c\t2025-11-01 08:39:54.945513"
},
{
"path": "recipes/dev/patch/recipe.toml",
"chars": 696,
"preview": "[source]\ntar = \"https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz\"\nblake3 = \"d46d14c12aa4ea51e356bf92091c368fd871e1d770b9"
},
{
"path": "recipes/dev/pciids/recipe.toml",
"chars": 214,
"preview": "[source]\ngit = \"https://github.com/pciutils/pciids.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\ninstall -d \"${COOKBOOK"
},
{
"path": "recipes/dev/php84/recipe.toml",
"chars": 1865,
"preview": "[source]\ntar = \"https://www.php.net/distributions/php-8.4.17.tar.xz\"\nblake3 = \"a8478dddd948d4b26e51c5727ac0895440da76e8a"
},
{
"path": "recipes/dev/php84/redox.patch",
"chars": 3301,
"preview": "diff -ruwN source/configure source-new/configure\n--- source/configure\t2026-01-14 00:17:10.000000000 +0700\n+++ source-new"
},
{
"path": "recipes/dev/pkg-config/recipe.toml",
"chars": 358,
"preview": "[source]\ntar = \"https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz\"\nblake3 = \"713372b09a1fafeec130dc9b"
},
{
"path": "recipes/dev/python312/recipe.toml",
"chars": 1492,
"preview": "[source]\ntar = \"https://www.python.org/ftp/python/3.12.12/Python-3.12.12.tar.xz\"\nblake3 = \"29636fdae3e0ee8d0fe585e528c93"
},
{
"path": "recipes/dev/python312/redox.patch",
"chars": 4863,
"preview": "diff -ruwN source/configure source-new/configure\n--- source/configure\t2025-10-09 18:07:00.000000000 +0700\n+++ source-new"
},
{
"path": "recipes/dev/redoxer/recipe.toml",
"chars": 108,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/redoxer\"\nbranch = \"master\"\n\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/dev/rust/.gitignore",
"chars": 41,
"preview": "/llvm-build/\n/llvm-prefix/\n/llvm-source/\n"
},
{
"path": "recipes/dev/rust/config-bootstrap.toml",
"chars": 635,
"preview": "[llvm]\ndownload-ci-llvm = false\nstatic-libstdcpp = false\nlink-shared = true\n\n[build]\nhost = [\"TARGET\"]\ntarget = [\"TARGET"
},
{
"path": "recipes/dev/rust/config.toml",
"chars": 764,
"preview": "[llvm]\ndownload-ci-llvm = false\nstatic-libstdcpp = false\nlink-shared = true\n\n[build]\nhost = [\"COOKBOOK_TARGET\"]\ntarget ="
},
{
"path": "recipes/dev/rust/recipe.toml",
"chars": 2779,
"preview": "[source]\r\ngit = \"https://gitlab.redox-os.org/redox-os/rust.git\"\r\nbranch = \"redox-2025-10-03\"\r\nshallow_clone = true\r\n\r\n[b"
},
{
"path": "recipes/dev/rustpython/recipe.toml",
"chars": 647,
"preview": "[source]\ngit = \"https://github.com/RustPython/RustPython\"\n# newer rev requires 'bits/libc-header-start.h' for bindgen\nre"
},
{
"path": "recipes/dev/rustpython/redox.patch",
"chars": 967,
"preview": "diff --git a/stdlib/src/posixsubprocess.rs b/stdlib/src/posixsubprocess.rs\nindex 7f418c899..4da6a6858 100644\n--- a/stdli"
},
{
"path": "recipes/doc/book/recipe.toml",
"chars": 221,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/book.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\ndir=\"${COOKBOOK"
},
{
"path": "recipes/emulators/dosbox/01_redox.patch",
"chars": 1195,
"preview": "diff -rupNw source-original/include/cross.h source/include/cross.h\n--- source-original/include/cross.h\t2010-05-10 19:43:"
},
{
"path": "recipes/emulators/dosbox/manifest",
"chars": 77,
"preview": "name=DOSBox\ncategory=Games\nbinary=/bin/dosbox\nicon=/ui/icons/apps/dosbox.png\n"
},
{
"path": "recipes/emulators/dosbox/recipe.toml",
"chars": 935,
"preview": "[source]\ntar = \"https://sourceforge.net/projects/dosbox/files/dosbox/0.74-3/dosbox-0.74-3.tar.gz/download\"\nblake3 = \"8bc"
},
{
"path": "recipes/emulators/flycast/recipe.toml",
"chars": 1547,
"preview": "[source]\ngit = \"https://github.com/jackpot51/flycast.git\"\n\n[build]\ntemplate = \"custom\"\ndependencies = [\n \"curl\",\n "
},
{
"path": "recipes/emulators/libretro-super/recipe.toml",
"chars": 413,
"preview": "[source]\ngit = \"https://github.com/jackpot51/libretro-super.git\"\n\n[build]\ntemplate = \"custom\"\ndependencies = [\n \"zlib"
},
{
"path": "recipes/emulators/mednafen/recipe.toml",
"chars": 512,
"preview": "[source]\ntar = \"https://mednafen.github.io/releases/files/mednafen-1.29.0.tar.xz\"\nblake3 = \"c75c1044cdc9328b2349915a6797"
},
{
"path": "recipes/emulators/mednafen/redox.patch",
"chars": 449,
"preview": "diff -ruwN source-old/src/sound/SwiftResampler.cpp source/src/sound/SwiftResampler.cpp\n--- source-old/src/sound/SwiftRes"
},
{
"path": "recipes/emulators/mgba/recipe.toml",
"chars": 506,
"preview": "[source]\ntar = \"https://github.com/mgba-emu/mgba/archive/0.10.5.tar.gz\"\nblake3 = \"a1b9e797a5058f5264d276805aef5643b7ea46"
},
{
"path": "recipes/emulators/mgba/redox.patch",
"chars": 523,
"preview": "diff -ruwN mgba-0.10.5/src/third-party/zlib/contrib/minizip/ioapi.h source/src/third-party/zlib/contrib/minizip/ioapi.h\n"
},
{
"path": "recipes/emulators/retroarch/recipe.toml",
"chars": 1019,
"preview": "[source]\ngit = \"https://github.com/jackpot51/retroarch.git\"\n\n[build]\ntemplate = \"custom\"\ndependencies = [\n \"liborbita"
},
{
"path": "recipes/emulators/rs-nes/recipe.toml",
"chars": 182,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/rs-nes.git\"\n#git_upstream = \"https://github.com/bgourlie/rs-nes.git"
},
{
"path": "recipes/emulators/rust64/recipe.toml",
"chars": 181,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/rust64.git\"\n#git_upstream = \"https://github.com/kondrak/rust64.git\""
},
{
"path": "recipes/emulators/rustual-boy/recipe.toml",
"chars": 300,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/rustual-boy.git\"\nupstream = \"https://github.com/emu-rs/rustual-boy."
},
{
"path": "recipes/emulators/rvvm/recipe.toml",
"chars": 698,
"preview": "[source]\ngit = \"https://github.com/LekKit/RVVM.git\"\nupstream = \"https://github.com/LekKit/RVVM\"\n\n[build]\ntemplate = \"cus"
},
{
"path": "recipes/emulators/scummvm/recipe.toml",
"chars": 731,
"preview": "[source]\ntar = \"https://downloads.scummvm.org/frs/scummvm/2.0.0/scummvm-2.0.0.tar.xz\"\nblake3 = \"02e6791fd43ad3cb4238c07d"
},
{
"path": "recipes/emulators/scummvm/redox.patch",
"chars": 1271,
"preview": "diff -rupNw source-original/common/stream.cpp source/common/stream.cpp\n--- source-original/common/stream.cpp\t2017-12-08 "
},
{
"path": "recipes/files/hf/recipe.toml",
"chars": 78,
"preview": "[source]\ngit = \"https://github.com/sorairolake/hf\"\n[build]\ntemplate = \"cargo\"\n"
},
{
"path": "recipes/fonts/dejavu/recipe.toml",
"chars": 451,
"preview": "[source]\ntar=\"http://sourceforge.net/projects/dejavu/files/dejavu/2.37/dejavu-fonts-ttf-2.37.tar.bz2\"\nblake3=\"b702bac8a0"
},
{
"path": "recipes/fonts/freefont/recipe.toml",
"chars": 382,
"preview": "[source]\ntar=\"https://ftp.gnu.org/gnu/freefont/freefont-otf-20120503.tar.gz\"\nblake3=\"e950397741d84981106cf648fbc143c7827"
},
{
"path": "recipes/fonts/ibm-plex/recipe.toml",
"chars": 405,
"preview": "[source]\ntar=\"https://github.com/IBM/plex/archive/refs/tags/v6.3.0.tar.gz\"\nblake3=\"6c67f5bf8069762eea1e31f5cca5b4e6f57ea"
},
{
"path": "recipes/fonts/intel-one-mono/recipe.toml",
"chars": 338,
"preview": "[source]\ntar=\"https://github.com/intel/intel-one-mono/archive/refs/tags/V1.3.0.tar.gz\"\nblake3=\"9caff71b0a9fe8627253c5588"
},
{
"path": "recipes/fonts/noto-color-emoji/recipe.toml",
"chars": 287,
"preview": "[source]\ngit = \"https://github.com/googlefonts/noto-emoji\"\nrev = \"e8073ab740292f8d5f19b5de144087ac58044d06\"\n[build]\ntemp"
},
{
"path": "recipes/fonts/ttf-hack/recipe.toml",
"chars": 369,
"preview": "[source]\ntar = \"https://github.com/source-foundry/Hack/releases/download/v3.003/Hack-v3.003-ttf.tar.xz\"\nblake3 = \"acd40f"
},
{
"path": "recipes/games/classicube/manifest",
"chars": 106,
"preview": "name=ClassiCube\ncategory=Games\nbinary=/usr/games/classicube/ClassiCube\nicon=/ui/icons/apps/classicube.png\n"
},
{
"path": "recipes/games/classicube/recipe.toml",
"chars": 685,
"preview": "[source]\ngit = \"https://github.com/jackpot51/ClassiCube.git\"\n\n[build]\ntemplate = \"custom\"\ndependencies = [\n \"liborbit"
},
{
"path": "recipes/games/devilutionx/recipe.toml",
"chars": 902,
"preview": "[source]\ntar = \"https://github.com/diasurgical/devilutionX/archive/refs/tags/1.5.4.tar.gz\"\nblake3 = \"d4a61ff3a7c69d86a29"
},
{
"path": "recipes/games/eduke32/manifest",
"chars": 86,
"preview": "name=EDuke32\ncategory=Games\nbinary=/usr/games/eduke32\nicon=/ui/icons/apps/eduke32.png\n"
},
{
"path": "recipes/games/eduke32/recipe.toml",
"chars": 1103,
"preview": "[source]\ntar = \"https://dukeworld.com/eduke32/synthesis/20181010-7067/eduke32_src_20181010-7067.tar.xz\"\nblake3 = \"b0b759"
},
{
"path": "recipes/games/eduke32/redox.patch",
"chars": 5203,
"preview": "diff -rupwN source/Common.mak source-new/Common.mak\n--- source/Common.mak\t2018-07-14 15:36:44.000000000 -0600\n+++ source"
},
{
"path": "recipes/games/freeciv/recipe.toml",
"chars": 1032,
"preview": "[source]\ntar = \"https://files.freeciv.org/stable/freeciv-3.1.4.tar.xz\"\nblake3 = \"212630af5e50fb72662ca62a71cdd57318d0cf3"
},
{
"path": "recipes/games/freedoom/recipe.toml",
"chars": 1170,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/freedoom.git\"\n\n[build]\ntemplate = \"custom\"\nscript = \"\"\"\nmkdir -pv \""
},
{
"path": "recipes/games/game-2048/recipe.toml",
"chars": 160,
"preview": "[source]\ngit = \"https://gitlab.redox-os.org/redox-os/2048-rs.git\"\n#git_upstream = \"https://github.com/pierrechevalier83/"
}
]
// ... and 2933 more files (download for full content)
About this extraction
This page contains the full source code of the redox-os/redox GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3133 files (1.7 MB), approximately 634.1k tokens, and a symbol index with 282 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.