Compare commits

...

78 Commits

Author SHA1 Message Date
Ribbon
359cd577a8 Merge branch 'install-jre-headless' into 'master'
Install JRE headless package

See merge request redox-os/redox!1686
2025-12-04 18:07:30 -03:00
Jeremy Soller
437fd56743 Merge branch 'improve-recipes' into 'master'
Improve some recipes

See merge request redox-os/redox!1732
2025-12-03 09:33:30 -07:00
Ribbon
b0fcf6daa5 Improve some recipes 2025-12-03 13:27:44 -03:00
Jeremy Soller
489a252c83 Merge branch 'fix-ci-no-driver' into 'master'
Remove drivers package from CI

See merge request redox-os/redox!1731
2025-12-03 06:40:59 -07:00
Jeremy Soller
ada05a5b44 Merge branch 'find-cli-msg' into 'master'
Don't display message on make find

See merge request redox-os/redox!1730
2025-12-03 06:40:33 -07:00
Wildan M
28e385ca80
Remove drivers package from CI 2025-12-03 18:15:28 +07:00
Wildan M
5d5ea4b306
Don't display message on make find 2025-12-03 18:11:29 +07:00
Jeremy Soller
c1f13049dc Merge branch 'optional-packages' into 'master'
Implement optional packages

Closes #1749

See merge request redox-os/redox!1729
2025-12-03 03:53:41 -07:00
Wildan M
b5c9bc2e18
Implement optional packages 2025-12-03 15:15:55 +07:00
Jeremy Soller
695a72f6df Merge branch 'fetch-fix' into 'master'
Fix missing envar in make fetch

See merge request redox-os/redox!1728
2025-12-02 09:53:42 -07:00
Wildan M
f5403a490c
Fix missing envar in make fetch 2025-12-02 22:37:29 +07:00
Ribbon
db6205137b Remove outdated information from CONTRIBUTING and README 2025-12-02 10:56:14 -03:00
Jeremy Soller
6b37db810e Merge branch 'skip-dev-push' into 'master'
Avoid pushing dev dependencies

See merge request redox-os/redox!1727
2025-11-30 15:24:33 -07:00
Jeremy Soller
ca64eae3b9 Merge branch 'tui-nowrap' into 'master'
Don't wrap lines on TUI

See merge request redox-os/redox!1726
2025-11-30 15:22:27 -07:00
Jeremy Soller
e84899efc4 Merge branch 'nodejs-compile' into 'master'
Fix nodejs compilation

See merge request redox-os/redox!1725
2025-11-30 15:19:16 -07:00
Ribbon
389899a69b Improve recipes 2025-11-30 17:39:32 -03:00
Ribbon
8f5387cbb5 Move a recipe 2025-11-30 17:18:55 -03:00
Ribbon
169c7a3ca2 Add recipes 2025-11-30 17:16:32 -03:00
Ribbon
991a011689 Add recipes 2025-11-30 16:26:06 -03:00
Wildan M
ce0e42833d
Avoid pushing dev dependencies 2025-11-30 22:20:11 +07:00
Wildan M
96ca39969c
Don't wrap lines on TUI 2025-11-30 22:13:20 +07:00
Wildan M
4b152092bc
Fix nodejs compilation 2025-11-30 22:02:18 +07:00
Jeremy Soller
6d88695a22 Merge branch 'nowait_orbital' into 'master'
Use nowait for a bunch of daemons

See merge request redox-os/redox!1724
2025-11-30 07:24:15 -07:00
bjorn3
56967cc5ce Use nowait for sudo, getty and dhcpd 2025-11-30 15:11:21 +01:00
bjorn3
d0d00fc239 Use nowait for orbital
This way orbital no longer needs to daemonize itself.
2025-11-30 15:11:21 +01:00
Jeremy Soller
04fa310351 Merge branch 'host-deps' into 'master'
Make deps for hosts recipes work

See merge request redox-os/redox!1723
2025-11-30 07:08:26 -07:00
Jeremy Soller
fce16483f4 Merge branch 'move_init_rc' into 'master'
Move init.rc to base repo

See merge request redox-os/redox!1722
2025-11-30 07:07:45 -07:00
Ribbon
04cb8e436a Move recipes 2025-11-30 10:19:01 -03:00
Ribbon
f0eda79252 Add recipes 2025-11-30 09:49:34 -03:00
Wildan M
b1669277dd
Make deps for hosts recipes work 2025-11-30 00:14:30 -08:00
bjorn3
1c366513e1 Move init.rc to base repo
This makes it easier to keep in sync with changes to the base repo. And
in addition it ensures that the base-initfs recipe actually gets rebuilt
when changing init.rc.
2025-11-30 09:09:59 +01:00
bjorn3
a3b1c62fef Merge branch 'merge_drivers_repo' into 'master'
Merge the drivers repo into the base repo

See merge request redox-os/redox!1721
2025-11-29 18:05:19 +00:00
bjorn3
22f62b365b Merge the drivers repo into the base repo 2025-11-29 17:47:31 +01:00
Jeremy Soller
a6acfb3d68 Merge branch 'openssl1-static' into 'master'
Pass no-shared if openssl1 statically linked

See merge request redox-os/redox!1720
2025-11-29 08:02:40 -07:00
Wildan M
67bccab3bf
Pass no-shared if openssl1 statically linked 2025-11-29 06:22:17 -08:00
Jeremy Soller
f7f57f54ae Merge branch 'host-as-deps' into 'master'
Implement recipes as host toolchain

See merge request redox-os/redox!1719
2025-11-29 06:43:27 -07:00
Wildan M
3e1595133f
Implement recipes as host toolchain 2025-11-29 00:02:59 -08:00
Jeremy Soller
f4fe816850 Merge branch 'fix-push-combine' into 'master'
Fix push combination not triggering mount

See merge request redox-os/redox!1717
2025-11-27 06:15:48 -07:00
Jeremy Soller
d877f4ff5a Merge branch 'riscv-ci-fix' into 'master'
Disable patch and cosmic-text for riscv64gc

See merge request redox-os/redox!1716
2025-11-27 06:13:57 -07:00
Wildan M
c9b6d7893b
Fix push combination not triggering mount 2025-11-27 03:00:46 -08:00
Wildan M
10e0ab50a4
Disable patch and cosmic-text for riscv64gc 2025-11-26 21:07:35 -08:00
Jeremy Soller
7e122d72fd Merge branch 'rustpython-x86' into 'master'
Update rustpython to fix i586 build

See merge request redox-os/redox!1715
2025-11-26 21:56:56 -07:00
Wildan M
203960a0fd
Update rustpython to fix i586 build 2025-11-26 20:44:43 -08:00
Jeremy Soller
49bdc21933 Merge branch 'desktop-ci' into 'master'
Enable desktop packages on build servers

See merge request redox-os/redox!1714
2025-11-26 17:54:11 -07:00
Wildan M
5d10e485d1
Enable desktop packages on build servers 2025-11-26 15:39:13 -08:00
Jeremy Soller
6548af0913 Merge branch 'website-installs' into 'master'
Add installations to website recipe

See merge request redox-os/redox!1712
2025-11-25 07:51:42 -07:00
Jeremy Soller
14d344a64c Merge branch 'flake-nix' into 'master'
Update flake nix

See merge request redox-os/redox!1713
2025-11-25 07:50:37 -07:00
Wildan M
63694cf409
Update flake nix 2025-11-25 06:27:53 -08:00
Wildan M
3874142a82
Add installations to website recipe 2025-11-24 21:30:09 -08:00
Jeremy Soller
fb9d5bfbe1 Merge branch 'non-tui-flow-fix' into 'master'
Fix non TUI with logs flow

See merge request redox-os/redox!1711
2025-11-24 11:53:45 -07:00
Wildan M
b6f5d01597
Fix non tui with logs flow 2025-11-24 07:31:51 -08:00
Jeremy Soller
7e46f5747b Merge branch 'makefile-fix' into 'master'
Fix Makefile

See merge request redox-os/redox!1708
2025-11-23 06:36:22 -07:00
Jeremy Soller
121e336882 Merge branch 'installer-fix' into 'master'
Fix fstools requiring gcc on host

See merge request redox-os/redox!1710
2025-11-23 06:35:43 -07:00
Jeremy Soller
158ce47959 Merge branch 'trig-rebuild' into 'master'
Trigger cookbook rebuild on make pull

See merge request redox-os/redox!1709
2025-11-23 06:35:05 -07:00
Wildan M
b38f64c2f5
Fix fstools requiring gcc on host 2025-11-22 22:52:48 -08:00
Wildan M
0a68b0289e
Trigger cookbook rebuild on make pull 2025-11-22 21:37:43 -08:00
Wormss9
5249d8d9e5 Fix Makefile 2025-11-23 06:03:00 +01:00
Jeremy Soller
927e4cf0ab Merge branch 'trim-deps' into 'master'
Trim deps, remove legacy bins, fix clean without container

See merge request redox-os/redox!1707
2025-11-22 17:56:04 -07:00
Jeremy Soller
b2f60b8d9f
hwd now launches pcid 2025-11-22 17:31:28 -07:00
Wildan M
bb57b364bb
Trim deps, remove legacy bins, fix clean without container 2025-11-22 16:02:38 -08:00
Jeremy Soller
d982644a73 Merge branch 'uutils_thin_lto' into 'master'
Use ThinLTO rather than fat LTO for uutils

See merge request redox-os/redox!1706
2025-11-22 15:02:32 -07:00
bjorn3
2941e1dcda Use ThinLTO rather than fat LTO for uutils
This reduces compile times from 2m50s to 1m56s.
2025-11-22 22:25:40 +01:00
Ribbon
08f5d72ce1 Small improvement to HARDWARE.md 2025-11-22 15:24:10 -03:00
Ribbon
8270d68b5d Improve and simplify HARDWARE.md 2025-11-22 15:20:28 -03:00
Ribbon
6ffba92954 Merge branch 'master' into 'master'
Edit HARDWARE.md for enhanced standardization.

See merge request redox-os/redox!1678
2025-11-22 14:50:51 -03:00
Jonathan McCormick Jr.
cf26822ec3 Edit HARDWARE.md for enhanced standardization. 2025-11-22 14:50:51 -03:00
Jeremy Soller
09676d4ebd Use kibi instead of smith in minimal configs 2025-11-22 08:52:06 -07:00
Jeremy Soller
69768efce7 Merge branch 'update-cargo' into 'master'
Update redox-pkg lock

See merge request redox-os/redox!1705
2025-11-22 07:46:23 -07:00
Wildan M
536a3454e8
Update redox-pkg lock 2025-11-22 06:38:33 -08:00
Jeremy Soller
df4bed146c Merge branch 'fetch-target' into 'master'
Add fetch target

See merge request redox-os/redox!1704
2025-11-22 06:41:45 -07:00
Jeremy Soller
5d28f73987 Merge branch 'binary-at-fetch' into 'master'
Move package binary download at fetch step

See merge request redox-os/redox!1703
2025-11-22 06:41:24 -07:00
Jeremy Soller
425e4e4eba Merge branch 'expand-pkg-toml' into 'master'
Use expanded package toml and switch repo.toml to use blake3 hash

See merge request redox-os/redox!1702
2025-11-22 06:40:04 -07:00
Jeremy Soller
883ae89301 Merge branch 'goaccess' into 'master'
Port of goaccess

See merge request redox-os/redox!1701
2025-11-22 06:36:49 -07:00
Rafael Senties Martinelli
4e2665bd98 Port of goaccess 2025-11-22 06:36:49 -07:00
Wildan M
322e6050b9
Add fetch target 2025-11-22 05:11:07 -08:00
Wildan M
31e0ab5f82
Move package binary download at fetch step 2025-11-22 04:49:29 -08:00
Wildan M
a7b7020f2f
Use expanded package toml and switch repo.toml to use blake3 hash 2025-11-22 04:25:22 -08:00
Ribbon
3e3c26203b Install JRE headless package 2025-11-17 08:35:53 -03:00
112 changed files with 1730 additions and 3149 deletions

View File

@ -20,7 +20,3 @@ rustflags = []
[env]
CFLAGS_riscv64gc_unknown_redox="-march=rv64gc -mabi=lp64d"
[target.x86_64-unknown-linux-gnu]
linker = "x86_64-linux-gnu-gcc"
rustflags = []

View File

@ -97,7 +97,7 @@ Please follow [our process](https://doc.redox-os.org/book/creating-proper-pull-r
Before starting to contribute, we recommend reading the [Website 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 first):
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
@ -108,11 +108,9 @@ You can contribute to the Redox documentation and code on the following reposito
- [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
- [netstack](https://gitlab.redox-os.org/redox-os/netstack) - Network Stack
- [Bootloader](https://gitlab.redox-os.org/redox-os/bootloader)
- [RedoxFS](https://gitlab.redox-os.org/redox-os/redoxfs) - Default filesystem
- [Drivers](https://gitlab.redox-os.org/redox-os/drivers) - Device Drivers
- [Base](https://gitlab.redox-os.org/redox-os/base) - Essential system daemons
- [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).

2180
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -7,14 +7,18 @@ default-run = "repo"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[[bin]]
name = "cook"
path = "src/bin/cook.rs"
[[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"
@ -29,6 +33,7 @@ tui = ["ratatui", "ansi-to-tui", "filedescriptor", "strip-ansi-escapes"]
anyhow = "1"
# blake3 1.5.4 is incompatible with 0.3 dependency from pkgar
blake3 = "=1.5.3"
globset = "0.4"
libc = "0.2"
ignore = "0.4"
object = { version = "0.36", features = ["build_core"] }
@ -36,9 +41,9 @@ 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 = "0.2.8"
redox_installer = "0.2.37"
redoxer = { git = "https://gitlab.redox-os.org/redox-os/redoxer" }
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"
@ -53,6 +58,3 @@ version = "0.29.0"
default-features = false
features = ["termion"]
optional = true
[dev-dependencies]
tempfile = "3"

View File

@ -2,18 +2,20 @@
This document tracks the current hardware compatibility of Redox.
- [Why hardware reports are needed?](#why-hardware-reports-are-needed)
- [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)
- [Template](#template)
- [Contribute to this document](#contribute-to-this-document)
- [Template](#template)
- [Table row ordering](#table-row-ordering)
- [Recommended](#recommended)
- [Booting](#booting)
- [Broken](#broken)
## Why hardware reports are needed?
## Why are hardware reports needed?
Each computer model have different hardware interfaces, firmware implementations and devices, which can cause the following problems:
Each computer model has different hardware interfaces, firmware implementations, and devices, which can cause the following problems:
- Boot bugs
- Lack of device support
@ -27,21 +29,24 @@ You can use the "Custom" word on the "Vendor" and "Model" categories, we also re
## Status
- Broken - The system can't boot.
- Booting - The system boots with some issues.
- Recommended - The system start with all features working.
- **Recommended:** The system boots with all features working.
- **Booting:** The system boots with some issues.
- **Broken:** The system can't boot.
## General
This section cover things to consider.
This section contain limitations to consider.
- ACPI support is incomplete (some things are hardcoded on the kernel)
- Only USB input devices are supported
- Wi-Fi is not supported
- GPU drivers aren't supported (only VESA and UEFI GOP)
- Wi-Fi is not supported yet
- GPU drivers aren't supported yet (only VESA and UEFI GOP)
- Automatic operating system discovery on boot loader is not implemented (remember this before installing Redox)
## Template
## 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.
@ -49,47 +54,65 @@ 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** |
|------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------|
| System76 | Galago Pro (galp5) | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital |
| System76 | Lemur Pro (lemp9) | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital |
| Lenovo | IdeaPad Y510P | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS, UEFI | Boots to Orbital |
| 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** |
|------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------|
| System76 | Oryx Pro (oryp10) | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, though it should be working |
| System76 | Pangolin (pang12) | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, requires I2C HID |
| Dell | XPS 13 (9350) | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS, UEFI | Boots to Orbital, NVMe driver livelocks |
| Dell | XPS 13 (9350) | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Boots to Orbital, NVMe driver livelocks |
| HP | Dev One | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, requires I2C HID |
| ASUS | X554L | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS | Boots to Orbital, No audio, HDA driver cannot find output pins |
| ASUS | ROG g55vw | 0.8.0 | 11-11-2023 | desktop | x86-64 | BIOS | Boots to Orbital, UEFI panic in SETUP |
| ASUS | PRIME B350M-E (custom) | 0.9.0 | 20-09-2024 | desktop | x86-64 | UEFI | Partial support for the PS/2 keyboard, PS/2 mouse is broken |
| ASUS | Eee PC 900 | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Boots to Orbital, No ethernet driver, Correct video mode not offered (firmware issue) |
| Toshiba | Satellite L500 | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS | Boots to Orbital, No ethernet driver, Correct video mode not offered (firmware issue) |
| 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) |
| Lenovo | ThinkPad Yoga 260 Laptop - Type 20FE | 0.9.0 | 07-09-2024 | demo | x86-64 | UEFI | Boots to Orbital, No audio |
| Lenovo | Yoga S730-13IWL | 0.9.0 | 09-11-2024 | desktop | x86-64 | UEFI | Boots to Orbital, No trackpad or USB mouse input support |
| Samsung | Series 3 (NP350V5C) | 0.9.0 | 04-08-2025 | 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 |
| Asus | Vivobook 15 OLED (M1503Q) | 0.9.0 | 04-08-2025 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad and usb do not work, cannot connect to the internet, right maximum display resolution 2880x1620 |
| HP | EliteBook Folio 9480M | 0.9.0 | 04-11-2025 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad and usb work, cannot connect to the Internet, install failed, right maximum display resolution 1600x900
| 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** |
|------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------|
| HP | EliteBook 2570p | 0.8.0 | 23-11-2022 | demo | x86-64 | BIOS (CSM mode?) | Gets to resolution selection, Fails assert in `src/os/bios/mod.rs:77` after selecting resolution |
| BEELINK | U59 | 0.8.0 | 30-05-2024 | server | x86-64 | Unknown | Aborts after panic in xhcid |
| ASUS | PN41 | 0.8.0 | 30-05-2024 | server | x86-64 | Unknown | Aborts after panic in xhcid |
| Lenovo | G570 | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS | Bootloader panics in `alloc_zeroed_page_aligned`, Correct video mode not offered (firmware issue) |
| Lenovo | IdeaPad Y510P | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Panics on `phys_to_virt overflow`, probably having invalid mappings for 32-bit |
| Framework | Laptop 16 (AMD Ryzen 7040 Series) | 0.9.0 | 07-09-2024 | server, demo | x86-64 | UEFI | Black screen and unresponsive after the bootloader and resolution selection |
| Toshiba | Satellite L500 | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Correct video mode not offered (firmware issue), Panics on `phys_to_virt overflow`, probably having invalid mappings for 32-bit |
| Panasonic | Toughbook CF-18 | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Hangs after PIT initialization |
| XMG (Schenker) | Apex 17 (M21) | 0.9.0 | 30-09-2024 | 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 |
| 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 |

View File

@ -38,7 +38,7 @@ 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
$(MAKE) clean PODMAN_BUILD=0 NOT_ON_PODMAN=1 SKIP_CHECK_TOOLS=1
endif # CONTAINER_TAG
else
ifneq ($(NOT_ON_PODMAN),1)
@ -47,7 +47,6 @@ ifneq ($(NOT_ON_PODMAN),1)
-$(FUMOUNT) /tmp/redox_installer/ || true
endif # NOT_ON_PODMAN
rm -rf repo
rm -rf relibc/target
rm -rf $(BUILD) $(PREFIX)
$(MAKE) fstools_clean
endif # PODMAN_BUILD
@ -58,7 +57,7 @@ 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
$(MAKE) distclean PODMAN_BUILD=0 NOT_ON_PODMAN=1 SKIP_CHECK_TOOLS=1
endif # CONTAINER_TAG
else
ifneq ($(NOT_ON_PODMAN),1)
@ -69,6 +68,7 @@ endif # PODMAN_BUILD
pull:
git pull
rm -f $(FSTOOLS_TAG)
repo: $(BUILD)/repo.tag

View File

@ -37,13 +37,11 @@ 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)](https://gitlab.redox-os.org/redox-os/base) | **@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**
| [Drivers](https://gitlab.redox-os.org/redox-os/drivers) | **@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**
| [netstack (network stack)](https://gitlab.redox-os.org/redox-os/netstack) | **@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**

View File

@ -9,18 +9,28 @@ prompt = false
[packages]
base = {}
base-initfs = {}
bash = {}
bootloader = {}
bottom = {}
ca-certificates = {}
contain = {}
coreutils = {}
cosmic-edit = {}
cosmic-files = {}
cosmic-icons = {}
cosmic-term = {}
cosmic-text = {}
curl = {}
dash = {}
dejavu = {}
diffutils = {}
drivers = {}
expat = {}
extrautils = {}
findutils = {}
freefont = {}
freetype2 = {}
gettext = {}
git = {}
# gdbserver = {} # wrong libc type
# gnu-binutils = {} # bfd doesn't recognize redox
hicolor-icon-theme = {}
@ -28,8 +38,10 @@ installer = {}
installer-gui = {}
ion = {}
kernel = {}
kibi = {}
libffi = {}
libgcc = {}
libiconv = {}
libjpeg = {}
libogg = {}
liborbital = {}
@ -58,17 +70,22 @@ orbutils-launcher = {}
orbutils-orblogin = {}
patch = {}
pcre = {}
patchelf = {}
pop-icon-theme = {}
pkgutils = {}
redoxfs = {}
relibc = {}
resist = {}
ripgrep = {}
rustpython = {}
# strace = {} # unknown syscall
sdl1 = {}
sed = {}
shared-mime-info = {}
smith = {}
terminfo = {}
userutils = {}
uutils = {}
xz = {}
vim = {}
zlib = {}

View File

@ -12,7 +12,6 @@ prompt = false
base = {}
base-initfs = {}
bootloader = {}
drivers = {}
kernel = {}
libgcc = {}
libstdcxx = {}
@ -30,7 +29,7 @@ mkdir -m a=rwxt /tmp
ipcd
ptyd
sudo --daemon
nowait sudo --daemon
"""
[[files]]

View File

@ -20,7 +20,7 @@ orbutils-orblogin = {}
path = "/usr/lib/init.d/20_orbital"
data = """
export VT 3
orbital orblogin launcher
nowait orbital orblogin launcher
unset VT
"""
@ -28,6 +28,6 @@ unset VT
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty 2
getty /scheme/debug/no-preserve -J
nowait getty 2
nowait getty /scheme/debug/no-preserve -J
"""

View File

@ -32,7 +32,7 @@ data = """
audiod
export BROWSER /bin/netsurf-fb
export VT 3
orbital orblogin launcher
nowait orbital orblogin launcher
unset BROWSER
unset VT
"""
@ -41,6 +41,6 @@ unset VT
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty 2
getty /scheme/debug/no-preserve -J
nowait getty 2
nowait getty /scheme/debug/no-preserve -J
"""

View File

@ -9,26 +9,53 @@ prompt = false
[packages]
base = {}
base-initfs = {}
bash = {}
bootloader = {}
bottom = {}
ca-certificates = {}
contain = {}
coreutils = {}
cosmic-edit = {}
cosmic-files = {}
cosmic-icons = {}
cosmic-term = {}
cosmic-text = {}
curl = {}
dash = {}
dejavu = {}
diffutils = {}
drivers = {}
expat = {}
extrautils = {}
findutils = {}
freefont = {}
freetype2 = {}
gettext = {}
git = {}
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 = {}
@ -36,14 +63,23 @@ orbutils = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
patch = {}
pcre = {}
patchelf = {}
pop-icon-theme = {}
pkgutils = {}
redoxfs = {}
relibc = {}
resist = {}
ripgrep = {}
rustpython = {}
sdl1 = {}
sed = {}
shared-mime-info = {}
smith = {}
terminfo = {}
userutils = {}
uutils = {}
xz = {}
#vim = {} # conflicting types
#TODO: Add more packages
zlib = {}

View File

@ -12,4 +12,3 @@ include = ["../desktop.toml"]
# Package settings
[packages]
# example = {}
rustpython = "ignore" # https://github.com/Alexhuszagh/rust-lexical/issues/218

View File

@ -16,13 +16,13 @@ findutils = {}
ion = {}
netdb = {}
pkgutils = {}
smith = {}
kibi = {}
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
inputd -A 2
getty 2
getty /scheme/debug -J
nowait getty 2
nowait getty /scheme/debug -J
"""

View File

@ -12,12 +12,12 @@ filesystem_size = 196
coreutils = {}
extrautils = {}
ion = {}
smith = {}
kibi = {}
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
inputd -A 2
getty 2
getty /scheme/debug/no-preserve -J
nowait getty 2
nowait getty /scheme/debug/no-preserve -J
"""

View File

@ -13,7 +13,7 @@ netutils = {}
path = "/usr/lib/init.d/10_net"
data = """
smolnetd
dhcpd -b
nowait dhcpd
"""
## Default net configuration (optimized for QEMU)

View File

@ -14,6 +14,6 @@ data = """
echo
echo ## running redoxer in orbital ##
export VT 3
orbital redoxerd
nowait orbital redoxerd
unset VT
"""

View File

@ -10,6 +10,7 @@ coreutils = {}
extrautils = {}
findutils = {}
gcc13 = {}
"gcc13.cxx" = {}
gnu-binutils = {}
ion = {}
netdb = {}

View File

@ -9,26 +9,53 @@ prompt = false
[packages]
base = {}
base-initfs = {}
bash = {}
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 = {}
drivers = {}
#extrautils = {} # xz fails to build
expat = {}
extrautils = {}
findutils = {}
freefont = {}
freetype2 = {}
gettext = {}
git = {}
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 = {}
@ -36,13 +63,23 @@ orbutils = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
#patch = {} error configure machine `riscv64gc-unknown' not recognized
pcre = {}
patchelf = {}
pop-icon-theme = {}
pkgutils = {}
redoxfs = {}
relibc = {}
#resist = {} # Uses redox_syscall 0.2 which does not compile on riscv64gc
ripgrep = {}
rustpython = {}
#sdl1 = {} # not tested yet, netsurf is commented out
sed = {}
shared-mime-info = {}
smith = {}
terminfo = {}
userutils = {}
uutils = {}
xz = {}
#vim = {} # error compiling ncurses
#TODO: Add more packages
zlib = {}

View File

@ -29,6 +29,6 @@ redoxfs = {}
path = "/usr/lib/init.d/30_console"
data = """
inputd -A 2
getty 2
getty /scheme/debug/no-preserve -J
nowait getty 2
nowait getty /scheme/debug/no-preserve -J
"""

View File

@ -12,6 +12,7 @@ filesystem_size = 2048
# Package settings
[packages]
adwaita-icon-theme = {}
bash = {}
gtk3 = {}
libxcursor = {}
mesa = {}
@ -31,10 +32,16 @@ export WAYLAND_DISPLAY wayland-1
glib-compile-schemas /usr/share/glib-2.0/schemas/
"""
# Overridden to launch smallvil instead of orblogin
[[files]]
path = "/usr/lib/init.d/40_wayland"
path = "/usr/lib/init.d/20_orbital"
data = """
orbital-wayland
audiod
export BROWSER /bin/netsurf-fb
export VT 3
nowait orbital orbital-wayland
unset BROWSER
unset VT
"""
[[files]]

View File

@ -63,7 +63,7 @@ data = """
audiod
export BROWSER /bin/netsurf-fb
export VT 3
orbital orbital-x11
nowait orbital orbital-x11
unset BROWSER
unset VT
"""

View File

@ -50,8 +50,6 @@ dash = {}
dejavu = {}
diffutils = {}
dosbox = {}
drivers = {}
drivers-initfs = {}
duktape = {}
eduke32 = {}
exampled = {}

View File

@ -19,7 +19,7 @@ path = "/usr/lib/init.d/20_orbital"
data = """
audiod
export VT 3
orbital contain_orblogin launcher
nowait orbital contain_orblogin launcher
unset VT
"""
@ -27,8 +27,8 @@ unset VT
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty --contain 2
getty --contain /scheme/debug/no-preserve -J
nowait getty --contain 2
nowait getty --contain /scheme/debug/no-preserve -J
"""
[[files]]

24
flake.lock generated
View File

@ -5,11 +5,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
@ -20,11 +20,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1739863612,
"narHash": "sha256-UbtgxplOhFcyjBcNbTVO8+HUHAl/WXFDOb6LvqShiZo=",
"lastModified": 1763934636,
"narHash": "sha256-9glbI7f1uU+yzQCq5LwLgdZqx6svOhZWkd4JRY265fc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "632f04521e847173c54fa72973ec6c39a371211c",
"rev": "ee09932cedcef15aaf476f9343d1dea2cb77e261",
"type": "github"
},
"original": {
@ -36,11 +36,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1743296961,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
"lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"type": "github"
},
"original": {
@ -63,11 +63,11 @@
]
},
"locked": {
"lastModified": 1739932111,
"narHash": "sha256-WkayjH0vuGw0hx2gmjTUGFRvMKpM17gKcpL/U8EUUw0=",
"lastModified": 1764038373,
"narHash": "sha256-M6w2wNBRelcavoDAyFL2iO4NeWknD40ASkH1S3C0YGM=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "75b2271c5c087d830684cd5462d4410219acc367",
"rev": "ab3536fe850211a96673c6ffb2cb88aab8071cc9",
"type": "github"
},
"original": {

View File

@ -6,9 +6,7 @@
flake-parts.url = "github:hercules-ci/flake-parts";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs = {
nixpkgs.follows = "nixpkgs";
};
inputs.nixpkgs.follows = "nixpkgs";
};
};
@ -47,7 +45,7 @@
overlays = [ rust-overlay.overlays.default ];
};
rust-bin = pkgs.rust-bin.nightly."2025-01-12".default.override {
rust-bin = pkgs.rust-bin.nightly."2025-10-03".default.override {
extensions = [
"rust-analyzer"
"rust-src"
@ -71,19 +69,6 @@
rustc = rust-bin;
};
cargo-config = rustPlatform.buildRustPackage {
pname = "cargo-config";
version = "0.1.1";
src = pkgs.fetchFromGitHub {
owner = "wesleywiser";
repo = "cargo-config";
rev = "cf576faf65913615ed424914daa960800ed3ebc4";
sha256 = "sha256-HrITNTfjBppOH1MhfZHfzHc6N8ymcm7vaiBI94ctUOA=";
fetchSubmodules = true;
};
# useFetchCargoVendor = true; # this is recommended, but fails in some python code?
cargoHash = "sha256-yQpIKclZ8KLE5JGkB/tjKZA8ezaD9SbUthDsuBXYZjQ=";
};
podmanSetupScript =
let
registriesConf = pkgs.writeText "registries.conf" ''
@ -106,7 +91,7 @@
export PODMAN_SYSTEMD_UNIT=podman.socket
'';
# Provides a fake "docker" binary mapping to podman
dockerCompat = pkgs.runCommandNoCC "docker-podman-compat" { } ''
dockerCompat = pkgs.runCommand "docker-podman-compat" { } ''
mkdir -p $out/bin
ln -s ${pkgs.podman}/bin/podman $out/bin/docker
'';
@ -114,13 +99,6 @@
in
pkgs.mkShell rec {
buildInputs = with pkgs; [
# Compilation
rust-bin
# Utils
cowsay
lolcat
# Podman
dockerCompat
podman # Docker compat
@ -130,65 +108,24 @@
slirp4netns # User-mode networking for unprivileged namespaces
fuse-overlayfs # CoW for images, much faster than default vfs
# Cargo utilities
cargo-config
# Build Redox
ant
autoconf
automake
bison
cmake
curl
doxygen
expat
expect
file
flex
fuse
gmp
gnumake
gnupatch
gperf
just
libjpeg
libpng
libtool
llvmPackages.clang
llvmPackages.llvm
lua
m4
meson
nasm
perl
perl540Packages.HTMLParser
perl540Packages.Po4a
pkgconf
podman
protobuf
(python3.withPackages (ps: with ps; [ mako ]))
# with FSTOOLS_IN_PODMAN=1 these are not needed
# without it, the installer fails to link FUSE somehow
#fuse
#rust-bin
qemu_kvm
rust-cbindgen
scons
SDL
syslinux
texinfo
unzip
waf
wget
xdg-utils
zip
];
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
NIX_SHELL_BUILD = "1";
FSTOOLS_IN_PODMAN = "1";
shellHook = ''
# Install required configuration
${podmanSetupScript}
echo "Redox environment loaded" | cowsay | lolcat
echo "Redox podman build environment loaded"
'';
};
#TODO: This isn't tested yet, use at your own risk
native = pkgs.mkShell rec {
nativeBuildInputs =
let
@ -228,7 +165,6 @@
qemu_kvm
rust-cbindgen
scons
syslinux
texinfo
unzip
waf
@ -236,6 +172,8 @@
xdg-utils
xxd
zip
] ++ pkgs.lib.optionals pkgs.stdenv.hostPlatform.isx86 [
pkgs.syslinux
];
buildInputs = with pkgs; [
@ -254,7 +192,7 @@
PODMAN_BUILD = "0";
shellHook = with pkgs; ''
export PKG_CONFIG_PATH="${fuse.dev}/lib/pkgconfig\
:${libpng.dev}/lib/pkgconfig
:${libpng.dev}/lib/pkgconfig"
'';
};
};

View File

@ -1,6 +1,6 @@
# Configuration file for recipe commands
$(REPO_TAG): prefix $(FILESYSTEM_CONFIG) $(FSTOOLS_TAG) $(CONTAINER_TAG)
$(REPO_TAG): prefix $(FILESYSTEM_CONFIG) | $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@ -21,6 +21,16 @@ else
@./target/release/repo tree $(COOKBOOK_OPTS) --with-package-deps
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)" && \
./target/release/repo fetch $(COOKBOOK_OPTS) --with-package-deps
endif
# Find recipe for one or more targets separated by comma
find.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
@ -158,24 +168,13 @@ rp.%: $(FSTOOLS_TAG) FORCE
# Invoke clean, repo.sh and push for one of more targets separated by comma
crp.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(MAKE) c.$*
$(MAKE) r.$*
$(MAKE) cr.$*
$(MAKE) p.$*
endif
# Invoke unfetch. clean, repo.sh and push for one of more targets separated by comma
ucrp.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
$(MAKE) u.$*
$(MAKE) c.$*
$(MAKE) r.$*
$(MAKE) ucr.$*
$(MAKE) p.$*
endif
export DEBUG_BIN?=

View File

@ -420,6 +420,7 @@ ubuntu()
clang \
cmake \
curl \
default-jre-headless \
dos2unix \
doxygen \
expect \

View File

@ -17,6 +17,7 @@ RUN apt-get update \
clang \
cmake \
curl \
default-jre-headless \
dos2unix \
doxygen \
expect \

View File

@ -1,3 +0,0 @@
hwd
pcid
pcid-spawner /etc/pcid/initfs.toml

View File

@ -1,40 +0,0 @@
# Various daemons that relibc needs to function as well as a bunch of env vars
# that should be set for every program.
export PATH /bin
export RUST_BACKTRACE 1
rtcd
nulld
zerod
randd
# Logging
logd
stdio /scheme/log
ramfs logging
# Graphics infrastructure
inputd
vesad
unset FRAMEBUFFER_ADDR FRAMEBUFFER_VIRT FRAMEBUFFER_WIDTH FRAMEBUFFER_HEIGHT FRAMEBUFFER_STRIDE
#TODO: unset FRAMEBUFFER1 and beyond?
fbbootlogd
inputd -A 1
fbcond 2
# Live disk
# Note: Needs to start before drivers to ensure it gets priority when redoxfs searches for disks
lived
# Drivers
run /scheme/initfs/etc/init_drivers.rc
unset RSDP_ADDR RSDP_SIZE
# Mount rootfs
redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK
unset REDOXFS_UUID REDOXFS_BLOCK REDOXFS_PASSWORD_ADDR REDOXFS_PASSWORD_SIZE
# Exit initfs
set-default-scheme file
cd /
export PATH /usr/bin
run.d /usr/lib/init.d /etc/init.d

View File

@ -1,4 +0,0 @@
ps2d us
hwd
pcid
pcid-spawner /etc/pcid/initfs.toml

View File

@ -4,46 +4,98 @@ same_as = "../base"
[build]
template = "custom"
dependencies = [
"drivers-initfs",
"redoxfs",
]
script = """
INITFS_RM_BINS='redoxfs-ar redoxfs-mkfs'
BINS=(
init
logd
ramfs
randd
zerod
acpid
fbbootlogd
fbcond
hwd
inputd
lived
nvmed
pcid
pcid-spawner
rtcd
vesad
)
virt_bins()
{
BINS+=(virtio-blkd virtio-gpud)
}
x86_common_bins()
{
BINS+=(ahcid ided ps2d vesad)
virt_bins
}
aarch64_bins()
{
case "${BOARD}" in
raspi3b*)
BINS+=(bcm2835-sdhcid)
;;
*)
#qemu-virt
virt_bins
;;
esac
}
case "${TARGET}" in
i586-unknown-redox | i686-unknown-redox)
x86_common_bins
;;
x86_64-unknown-redox)
x86_common_bins
;;
aarch64-unknown-redox)
aarch64_bins
;;
*)
;;
esac
rm -rf "${COOKBOOK_BUILD}/initfs"
mkdir -p "${COOKBOOK_BUILD}/initfs/etc"
cp -r "${COOKBOOK_SYSROOT}/"* "${COOKBOOK_BUILD}/initfs"
# TODO: Move init.rc to another recipe, perhaps initfs-misc? Then it can be installed as a regular dependency.
cp "${COOKBOOK_RECIPE}/init.rc" "${COOKBOOK_BUILD}/initfs/etc/init.rc"
cp "${COOKBOOK_RECIPE}/init_drivers.rc" "${COOKBOOK_BUILD}/initfs/etc/init_drivers.rc"
if [ -e ${COOKBOOK_RECIPE}/${TARGET}/init_drivers.rc.${BOARD} ]; then
cp "${COOKBOOK_RECIPE}/${TARGET}/init_drivers.rc.${BOARD}" "${COOKBOOK_BUILD}/initfs/etc/init_drivers.rc"
elif [ -e ${COOKBOOK_RECIPE}/${TARGET}/init_drivers.rc ]; then
cp "${COOKBOOK_RECIPE}/${TARGET}/init_drivers.rc" "${COOKBOOK_BUILD}/initfs/etc/init_drivers.rc"
cp "${COOKBOOK_SOURCE}/init.rc" "${COOKBOOK_BUILD}/initfs/etc/init.rc"
cp "${COOKBOOK_SOURCE}/init_drivers.rc" "${COOKBOOK_BUILD}/initfs/etc/init_drivers.rc"
if [ -e ${COOKBOOK_SOURCE}/${TARGET}/init_drivers.rc.${BOARD} ]; then
cp "${COOKBOOK_SOURCE}/${TARGET}/init_drivers.rc.${BOARD}" "${COOKBOOK_BUILD}/initfs/etc/init_drivers.rc"
elif [ -e ${COOKBOOK_SOURCE}/${TARGET}/init_drivers.rc ]; then
cp "${COOKBOOK_SOURCE}/${TARGET}/init_drivers.rc" "${COOKBOOK_BUILD}/initfs/etc/init_drivers.rc"
fi
# Move /usr folders to / and remove links
for folder in bin lib include share
mkdir -pv "${COOKBOOK_BUILD}/initfs/etc/pcid"
cp -v "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_BUILD}/initfs/etc/pcid/initfs.toml"
export CARGO_PROFILE_RELEASE_OPT_LEVEL=s
export CARGO_PROFILE_RELEASE_PANIC=abort
"${COOKBOOK_CARGO}" build ${build_flags} \
--manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \
$(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done)
mkdir -pv "${COOKBOOK_BUILD}/initfs/bin" "${COOKBOOK_BUILD}/initfs/lib/drivers"
for bin in "${BINS[@]}"
do
rm "${COOKBOOK_BUILD}/initfs/${folder}"
mv "${COOKBOOK_BUILD}/initfs/usr/${folder}" "${COOKBOOK_BUILD}/initfs/${folder}"
done
rmdir "${COOKBOOK_BUILD}/initfs/usr"
for bin in ${INITFS_RM_BINS}; do
rm -f "${COOKBOOK_BUILD}/initfs/bin/$bin"
done
mkdir -pv "${COOKBOOK_BUILD}/initfs/bin"
for package in init logd ramfs randd zerod; do
"${COOKBOOK_CARGO}" build \
--manifest-path "${COOKBOOK_SOURCE}/${package}/Cargo.toml" \
${build_flags}
cp -v \
"target/${TARGET}/${build_type}/${package}" \
"${COOKBOOK_BUILD}/initfs/bin/${package}"
case "${bin}" in
init | logd | ramfs | randd | zerod | pcid | pcid-spawner | fbbootlogd | fbcond | inputd | vesad | lived | ps2d | acpid | bcm2835-sdhcid | rtcd | hwd)
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_BUILD}/initfs/bin"
;;
*)
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_BUILD}/initfs/lib/drivers"
;;
esac
done
# TODO: symlinks aren't supported by redox-initfs
@ -51,6 +103,8 @@ done
cp "${COOKBOOK_BUILD}/initfs/bin/zerod" "${COOKBOOK_BUILD}/initfs/bin/nulld"
cp "${COOKBOOK_SYSROOT}/usr/bin/redoxfs" "${COOKBOOK_BUILD}/initfs/bin"
ARCH="$(echo "${GNU_TARGET}" | cut -d - -f1)"
cargo \
-Zbuild-std=core,alloc,compiler_builtins \

View File

@ -20,4 +20,59 @@ done
cp -v \
"target/${TARGET}/${build_type}/smolnetd" \
"${COOKBOOK_STAGE}/usr/bin/smolnetd"
# Drivers that are built on all architectures, and NOT in drivers-initfs
BINS=(
alxd
e1000d
ihdad
ixgbed
pcid
pcid-spawner
rtl8139d
rtl8168d
usbctl
usbhidd
usbhubd
usbscsid
virtio-netd
xhcid
inputd
)
# Add additional drivers to the list to build, that are not in drivers-initfs
# depending on the target architecture
case "${TARGET}" in
i586-unknown-redox | i686-unknown-redox | x86_64-unknown-redox)
BINS+=(ac97d bgad sb16d vboxd)
;;
*)
;;
esac
#Build each driver in the list
mkdir -pv "${COOKBOOK_STAGE}/usr/bin" "${COOKBOOK_STAGE}/usr/lib/drivers"
export CARGO_PROFILE_RELEASE_OPT_LEVEL=s
export CARGO_PROFILE_RELEASE_PANIC=abort
"${COOKBOOK_CARGO}" build ${build_flags} \
--manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \
$(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done)
for bin in "${BINS[@]}"
do
if [[ "${bin}" == "inputd" || "${bin}" == "pcid" || "${bin}" == "pcid-spawner" ]]; then
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/bin"
else
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/lib/drivers"
fi
done
mkdir -pv "${COOKBOOK_STAGE}/etc/pcid"
cp -v "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_STAGE}/etc/pcid/initfs.toml"
mkdir -pv "${COOKBOOK_STAGE}/etc/pcid.d"
${FIND} "${COOKBOOK_SOURCE}/drivers" -maxdepth 3 -type f -name 'config.toml' | while read conf
do
driver="$(basename "$(dirname "$conf")")"
cp -v "$conf" "${COOKBOOK_STAGE}/etc/pcid.d/$driver.toml"
done
"""

View File

@ -1,79 +0,0 @@
[source]
same_as = "../drivers"
[build]
template = "custom"
script = """
BINS=(
acpid
fbbootlogd
fbcond
hwd
inputd
lived
nvmed
pcid
pcid-spawner
rtcd
vesad
)
virt_bins()
{
BINS+=(virtio-blkd virtio-gpud)
}
x86_common_bins()
{
BINS+=(ahcid ided ps2d vesad)
virt_bins
}
aarch64_bins()
{
case "${BOARD}" in
raspi3b*)
BINS+=(bcm2835-sdhcid)
;;
*)
#qemu-virt
virt_bins
;;
esac
}
case "${TARGET}" in
i586-unknown-redox | i686-unknown-redox)
x86_common_bins
;;
x86_64-unknown-redox)
x86_common_bins
;;
aarch64-unknown-redox)
aarch64_bins
;;
*)
;;
esac
mkdir -pv "${COOKBOOK_STAGE}/bin" "${COOKBOOK_STAGE}/lib/drivers"
export CARGO_PROFILE_RELEASE_OPT_LEVEL=s
export CARGO_PROFILE_RELEASE_PANIC=abort
"${COOKBOOK_CARGO}" build ${build_flags} \
--manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \
$(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done)
for bin in "${BINS[@]}"
do
case "${bin}" in
pcid | pcid-spawner | fbbootlogd | fbcond | inputd | vesad | lived | ps2d | acpid | bcm2835-sdhcid | rtcd | hwd)
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/bin"
;;
*)
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/lib/drivers"
;;
esac
done
mkdir -pv "${COOKBOOK_STAGE}/etc/pcid"
cp -v "${COOKBOOK_SOURCE}/initfs.toml" "${COOKBOOK_STAGE}/etc/pcid/initfs.toml"
"""

View File

@ -1,61 +0,0 @@
[source]
git = "https://gitlab.redox-os.org/redox-os/drivers.git"
[build]
template = "custom"
script = """
# Drivers that are built on all architectures, and NOT in drivers-initfs
BINS=(
alxd
e1000d
ihdad
ixgbed
pcid
pcid-spawner
rtl8139d
rtl8168d
usbctl
usbhidd
usbhubd
usbscsid
virtio-netd
xhcid
inputd
)
# Add additional drivers to the list to build, that are not in drivers-initfs
# depending on the target architecture
case "${TARGET}" in
i586-unknown-redox | i686-unknown-redox | x86_64-unknown-redox)
BINS+=(ac97d bgad sb16d vboxd)
;;
*)
;;
esac
#Build each driver in the list
mkdir -pv "${COOKBOOK_STAGE}/usr/bin" "${COOKBOOK_STAGE}/usr/lib/drivers"
export CARGO_PROFILE_RELEASE_OPT_LEVEL=s
export CARGO_PROFILE_RELEASE_PANIC=abort
"${COOKBOOK_CARGO}" build ${build_flags} \
--manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \
$(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done)
for bin in "${BINS[@]}"
do
if [[ "${bin}" == "inputd" || "${bin}" == "pcid" || "${bin}" == "pcid-spawner" ]]; then
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/bin"
else
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/lib/drivers"
fi
done
mkdir -pv "${COOKBOOK_STAGE}/etc/pcid"
cp -v "${COOKBOOK_SOURCE}/initfs.toml" "${COOKBOOK_STAGE}/etc/pcid/initfs.toml"
mkdir -pv "${COOKBOOK_STAGE}/etc/pcid.d"
${FIND} "${COOKBOOK_SOURCE}" -maxdepth 3 -type f -name 'config.toml' | while read conf
do
driver="$(basename "$(dirname "$conf")")"
cp -v "$conf" "${COOKBOOK_STAGE}/etc/pcid.d/$driver.toml"
done
"""

View File

@ -6,7 +6,7 @@ git = "https://github.com/uutils/coreutils"
template = "custom"
script = """
DYNAMIC_INIT
cookbook_cargo --no-default-features --features feat_os_unix_redox --bin coreutils
CARGO_PROFILE_RELEASE_LTO=thin cookbook_cargo --no-default-features --features feat_os_unix_redox --bin coreutils
BINS=(
'['

View File

@ -45,3 +45,15 @@ rm -f "${COOKBOOK_STAGE}"/usr/lib/libgcc_s.so* "${COOKBOOK_STAGE}"/usr/lib/libst
dependencies = [
"gnu-binutils"
]
[[optional-packages]]
name = "cxx"
dependencies = []
files = [
"usr/bin/*c++",
"usr/bin/*g++",
"usr/include/c++/**",
"usr/lib/*c++*",
"usr/libexec/gcc/**/cc1plus",
"usr/share/gcc-*/python/libstdcxx/**",
]

View File

@ -1,8 +1,11 @@
[source]
git = "https://github.com/RustPython/RustPython"
# requires https://github.com/rust-lang/rust/pull/137319
# since https://github.com/RustPython/RustPython/pull/5858
rev = "e41d7f523a74c36b9f360d992ce0a9eb7e604c2b"
# newer rev requires TLS 1.3 (openssl3) and 'bits/libc-header-start.h' for bindgen
rev = "2025-10-13-main-51"
shallow_clone = true
patches = [
"redox.patch"
]
[build]
dependencies = [

View File

@ -0,0 +1,22 @@
diff --git a/stdlib/src/posixsubprocess.rs b/stdlib/src/posixsubprocess.rs
index 7f418c899..4da6a6858 100644
--- a/stdlib/src/posixsubprocess.rs
+++ b/stdlib/src/posixsubprocess.rs
@@ -441,15 +441,14 @@ fn close_dir_fds(keep: KeepFds<'_>) -> nix::Result<()> {
fn close_filetable_fds(keep: KeepFds<'_>) -> nix::Result<()> {
use nix::fcntl;
use std::os::fd::{FromRawFd, OwnedFd};
- let fd = fcntl::open(
+ let filetable = fcntl::open(
c"/scheme/thisproc/current/filetable",
fcntl::OFlag::O_RDONLY,
nix::sys::stat::Mode::empty(),
)?;
- let filetable = unsafe { OwnedFd::from_raw_fd(fd) };
let read_one = || -> nix::Result<_> {
let mut byte = 0;
- let n = nix::unistd::read(filetable.as_raw_fd(), std::slice::from_mut(&mut byte))?;
+ let n = nix::unistd::read(&filetable, std::slice::from_mut(&mut byte))?;
Ok((n > 0).then_some(byte))
};
while let Some(c) = read_one()? {

View File

@ -4,6 +4,7 @@ dependencies = [
"automake",
"cargo",
"gcc13",
"gcc13.cxx",
"llvm18",
"gnu-binutils",
"gnu-make",

View File

@ -1,6 +1,7 @@
[source]
git = "https://github.com/pop-os/cosmic-icons.git"
rev = "f93dcdfa1060c2cf3f8cf0b56b0338292edcafa5"
shallow_clone = true
[build]
template = "custom"
script = """

View File

@ -1,6 +1,6 @@
[source]
git = "https://github.com/pop-os/icon-theme.git"
shallow_clone = true
[build]
template = "custom"
script = """

View File

@ -1,5 +1,5 @@
[source]
tar = "https://download.savannah.gnu.org/releases/freetype/freetype-2.13.3.tar.xz"
tar = "https://sourceforge.net/projects/freetype/files/freetype2/2.13.3/freetype-2.13.3.tar.xz/download"
blake3 = "07a01894ccdb584943ce817b57341a8595ce9a92bfaa77c602ec4757dfabd5e2"
[build]

View File

@ -2,7 +2,7 @@
git = "https://gitlab.redox-os.org/redox-os/mesa.git"
upstream = "https://gitlab.freedesktop.org/mesa/mesa"
branch = "redox-24.0"
shallow_clone = true
[build]
template = "custom"
dependencies = [

View File

@ -1,20 +1,27 @@
[source]
git = "https://gitlab.redox-os.org/redox-os/openssl.git"
branch = "redox-v1"
shallow_clone = true
[build]
template = "custom"
script = """
DYNAMIC_INIT
ARCH="${TARGET%%-*}"
OS=$(echo "${TARGET}" | cut -d - -f3)
COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/Configure"
COOKBOOK_CONFIGURE_FLAGS=(
shared
threads
no-dgram
"redox-${ARCH}"
"${OS}-${ARCH}"
--prefix="/"
)
if [ "${COOKBOOK_DYNAMIC}" = "1" ]; then
COOKBOOK_CONFIGURE_FLAGS+=(shared)
else
COOKBOOK_CONFIGURE_FLAGS+=(no-shared)
fi
export CC="${CC_WRAPPER} ${GNU_TARGET}-gcc"
"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}"
"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}"

View File

@ -17,6 +17,7 @@ dependencies = [
"autoconf",
"automake",
"gcc13",
"gcc13.cxx",
"git",
"gnu-make",
"libtool",

View File

@ -0,0 +1,44 @@
[source]
tar = "https://tar.goaccess.io/goaccess-1.9.4.tar.gz"
blake3 = "a7a7641c98956e8941191956129141e071321851d004269c7d21bce536d9224a"
#git = "https://github.com/allinurl/goaccess.git"
#branch = "master"
patches = [
"redox1.patch",
"redox2.patch",
]
# This is only needed when compiling from git. The tar.gz already has the make files.
script = """
autoreconf -fiv
automake --add-missing --copy --force-missing
"""
[build]
dependencies = ["ncursesw"]
template = "custom"
script = """
# Compile bin2c to be executed on the host
gcc -O2 -o "$COOKBOOK_BUILD/bin2c" "$COOKBOOK_SOURCE/src/bin2c.c"
chmod +x "$COOKBOOK_BUILD/bin2c"
# Compile goaccess
export COOKBOOK_NOSTRIP=1
DYNAMIC_INIT
COOKBOOK_CONFIGURE_FLAGS+=(
--host=$ARCH-unknown-redox
--enable-utf8
--disable-geoip
--prefix=/usr
--disable-dependency-tracking
--with-bin2c-path="$COOKBOOK_BUILD/src/bin2c"
)
cookbook_configure
"""

View File

@ -0,0 +1,34 @@
From 2444d71e7815c8b7f3bd4462b8418d9c7e8c5667 Mon Sep 17 00:00:00 2001
From: Rafael Senties Martinelli <rafael@rsm92.fr>
Date: Sun, 19 Oct 2025 19:42:46 +0200
Subject: [PATCH 1/2] Ensure fixed-width integers and PIPE_BUF are defined for
Redox or minimal libc
---
src/websocket.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/websocket.h b/src/websocket.h
index 79d03dff..31847b10 100644
--- a/src/websocket.h
+++ b/src/websocket.h
@@ -45,8 +45,15 @@
#include <openssl/ssl.h>
#endif
-#if defined(__linux__) || defined(__CYGWIN__)
+#if defined(__linux__) || defined(__CYGWIN__) || defined(__redox__)
# include <endian.h>
+#if defined(__redox__)
+# include <stdint.h> /* for uint*_t types */
+# include <limits.h> /* for PIPE_BUF */
+# ifndef PIPE_BUF
+# define PIPE_BUF 4096
+# endif
+#endif
#if ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 9))
#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN)
# include <arpa/inet.h>
--
2.51.1.dirty

View File

@ -0,0 +1,60 @@
From 4a564a6b0f9d4ee7a804b9dbb391e7421187014b Mon Sep 17 00:00:00 2001
From: Rafael Senties Martinelli <rafael@rsm92.fr>
Date: Sun, 19 Oct 2025 20:08:10 +0200
Subject: [PATCH 2/2] Add option to ignore building bin2c
---
Makefile.am | 9 +++++++++
configure.ac | 16 ++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/Makefile.am b/Makefile.am
index 7696c8f5..8d0fcdcd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -51,6 +51,15 @@ CLEANFILES = \
resources/js/charts.js.tmp \
resources/js/app.js.tmp
+# Prevent rebuilding bin2c if binary already exists
+bin2c$(EXEEXT):
+if USE_PREBUILT_BIN2C
+ @echo "Using prebuilt bin2c from $(BIN2C_PATH)"
+ cp $(BIN2C_PATH) bin2c$(EXEEXT)
+else
+ $(AM_V_CCLD)$(LINK) $(bin2c_OBJECTS) $(bin2c_LDADD) $(LIBS)
+endif
+
# Tpls
src/tpls.h: bin2c$(EXEEXT) $(srcdir)/resources/tpls.html
if HAS_SEDTR
diff --git a/configure.ac b/configure.ac
index 790499ce..feaf72d2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -105,6 +105,22 @@ if test "$with_getline" = "yes"; then
AC_DEFINE([WITH_GETLINE], 1, [Build using GNU getline.])
fi
+# bin2c
+AC_ARG_WITH([bin2c-path],
+ [AS_HELP_STRING([--with-bin2c-path=PATH], [Use prebuilt bin2c binary at PATH])],
+ [BIN2C_PATH="$withval"],
+ [BIN2C_PATH=""])
+
+if test -n "$BIN2C_PATH"; then
+ USE_PREBUILT_BIN2C=true
+else
+ USE_PREBUILT_BIN2C=false
+fi
+
+AM_CONDITIONAL([USE_PREBUILT_BIN2C], [test "$USE_PREBUILT_BIN2C" = true])
+AC_SUBST([BIN2C_PATH])
+
+
# UTF8
AC_ARG_ENABLE([utf8],[AS_HELP_STRING([--enable-utf8],[Enable ncurses library that handles wide characters. Default is disabled])],[utf8="$enableval"],[utf8=no])
--
2.51.1.dirty

View File

@ -3,6 +3,20 @@ git = "https://gitlab.redox-os.org/redox-os/website"
[build]
template = "custom"
script = """
export PATH="$HOME/.local/bin:$HOME/.local/opt/node/bin:$PATH"
if ! command -v node &> /dev/null; then
echo "Installing Node via webi..."
curl -sS https://webi.sh/node | sh
fi
if ! command -v hugo &> /dev/null; then
echo "Installing Hugo via webi..."
curl -sS https://webi.sh/hugo | sh
fi
if ! command -v postcss &> /dev/null; then
echo "Installing PostCSS via npm..."
npm install -g postcss-cli
fi
rsync -a "${COOKBOOK_SOURCE}/" ./
./hugo.sh
mkdir -pv "${COOKBOOK_STAGE}"/usr/share/website

View File

@ -0,0 +1,5 @@
#TODO not compiled or tested
[source]
git = "https://github.com/fowles/pratdiff"
[build]
template = "cargo"

View File

@ -0,0 +1,5 @@
#TODO not compiled or tested
[source]
git = "https://github.com/Mohamed-Badry/statui"
[build]
template = "cargo"

View File

@ -0,0 +1,23 @@
#TODO: Incomplete std/syscall porting, or vendor patches
[source]
git = "https://github.com/jesseduffield/lazygit"
[build]
template = "custom"
dev-dependencies = [
"host:go"
]
script = """
export GOTOOLCHAIN=local
case "${TARGET}" in
x86_64-unknown-linux-gnu) export GOARCH=amd64 GOOS=linux;;
aarch64-unknown-linux-gnu) export GOARCH=arm64 GOOS=linux;;
i586-unknown-redox) export GOARCH=386 GOOS=redox;;
x86_64-unknown-redox) export GOARCH=amd64 GOOS=redox;;
aarch64-unknown-redox) export GOARCH=arm64 GOOS=redox;;
riscv64gc-unknown-redox) export GOARCH=riscv64 GOOS=redox;;
esac
mkdir -p $COOKBOOK_STAGE/usr/bin
go build -C ${COOKBOOK_SOURCE} -o $COOKBOOK_STAGE/usr/bin/lazygit
"""

View File

@ -21,27 +21,31 @@ fi
# Go does not support out-of-tree builds :(
rsync -a --delete "${COOKBOOK_SOURCE}/" ./
export GOOS=redox
case "${TARGET}" in
x86-unknown-redox) export GOARCH=386;;
x86_64-unknown-redox) export GOARCH=amd64;;
aarch64-unknown-redox) export GOARCH=arm64;;
riscv64-unknown-redox) export GOARCH=riscv64;;
x86_64-unknown-linux-gnu) export GOARCH=amd64 GOOS=linux;;
aarch64-unknown-linux-gnu) export GOARCH=arm64 GOOS=linux;;
i586-unknown-redox) export GOARCH=386 GOOS=redox;;
x86_64-unknown-redox) export GOARCH=amd64 GOOS=redox;;
aarch64-unknown-redox) export GOARCH=arm64 GOOS=redox;;
riscv64gc-unknown-redox) export GOARCH=riscv64 GOOS=redox;;
esac
export CGO_ENABLED=1
export CC=x86_64-unknown-redox-gcc
export CCX=x86_64-unknown-redox-g++
echo "go1.25" > VERSION # to set -trimpath
echo "go1.25.0" > VERSION # to set -trimpath
(cd ./src && bash ./make.bash)
mkdir -p "${COOKBOOK_STAGE}"/usr/bin \
"${COOKBOOK_STAGE}"/usr/lib/golang/{bin,lib,misc,pkg/include,pkg/tool,src}
rsync -a bin/redox_${GOARCH}/* "${COOKBOOK_STAGE}"/usr/lib/golang/bin/
if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then
rsync -a bin/* "${COOKBOOK_STAGE}"/usr/lib/golang/bin/
else
rsync -a bin/${GOOS}_${GOARCH}/* "${COOKBOOK_STAGE}"/usr/lib/golang/bin/
fi
rsync -a lib/* "${COOKBOOK_STAGE}"/usr/lib/golang/lib/
rsync -a misc/* "${COOKBOOK_STAGE}"/usr/lib/golang/misc/
rsync -a pkg/include/* "${COOKBOOK_STAGE}"/usr/lib/golang/pkg/include/
rsync -a pkg/tool/redox_${GOARCH} "${COOKBOOK_STAGE}"/usr/lib/golang/pkg/tool/
rsync -a pkg/tool/${GOOS}_${GOARCH} "${COOKBOOK_STAGE}"/usr/lib/golang/pkg/tool/
rsync -a src/* "${COOKBOOK_STAGE}"/usr/lib/golang/src/
cat go.env > "${COOKBOOK_STAGE}"/usr/lib/golang/go.env
ln -s "../lib/golang/bin/go" "${COOKBOOK_STAGE}"/usr/bin/go

View File

@ -18,6 +18,20 @@ dependencies = [
"zlib",
"zstd",
]
dev-dependencies = [
"host:libbrotli",
"host:c-ares",
"host:libuv",
"host:ngtcp2",
"host:nghttp2",
"host:nghttp3",
"host:openssl3",
"host:sqlite3",
"host:zlib",
"host:zstd",
]
script = """
DYNAMIC_INIT
export PYTHONDONTWRITEBYTECODE=1
@ -26,15 +40,17 @@ export CC_host="$CC_WRAPPER gcc" CXX_host="$CC_WRAPPER g++"
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
case "${TARGET}" in
x86-unknown-redox) export NODE_CPU=x32;;
x86_64-unknown-redox) export NODE_CPU=x64;;
aarch64-unknown-redox) export NODE_CPU=arm64;;
x86_64-unknown-linux-gnu) export NODE_CPU=x64 NODE_OS=linux;;
aarch64-unknown-linux-gnu) export NODE_CPU=arm64 NODE_OS=linux;;
i586-unknown-redox) export NODE_CPU=ia32 NODE_OS=redox;;
x86_64-unknown-redox) export NODE_CPU=x64 NODE_OS=redox;;
aarch64-unknown-redox) export NODE_CPU=arm64 NODE_OS=redox;;
esac
COOKBOOK_CONFIGURE_FLAGS=(
--prefix=/usr
--dest-cpu=${NODE_CPU}
--dest-os=redox
--dest-os=${NODE_OS}
--shared-cares
--shared-libuv
--shared-ngtcp2
@ -42,6 +58,11 @@ COOKBOOK_CONFIGURE_FLAGS=(
--shared-nghttp3
--shared-openssl
--shared-zlib
# TODO: Find a way to separate host and target flags instead?
# --shared-zlib-includes="${COOKBOOK_TOOLCHAIN}/include"
--shared-openssl-includes="${COOKBOOK_SYSROOT}/include"
--shared-zlib-libpath="${COOKBOOK_TOOLCHAIN}/lib"
--shared-openssl-libpath="${COOKBOOK_SYSROOT}/lib"
--cross-compiling
)
COOKBOOK_CONFIGURE="./configure"

View File

@ -1,3 +1,23 @@
diff -ruwN source/configure source-new/configure
--- source/configure 2024-04-10 19:46:11.000000000 +0700
+++ source-new/configure 2025-11-30 18:13:57.842696765 +0700
@@ -4,6 +4,7 @@
# Note that the mix of single and double quotes is intentional,
# as is the fact that the ] goes on a new line.
_=[ 'exec' '/bin/sh' '-c' '''
+command -v python3.13 >/dev/null && exec python3.13 "$0" "$@"
command -v python3.12 >/dev/null && exec python3.12 "$0" "$@"
command -v python3.11 >/dev/null && exec python3.11 "$0" "$@"
command -v python3.10 >/dev/null && exec python3.10 "$0" "$@"
@@ -24,7 +25,7 @@
from distutils.spawn import find_executable as which
print('Node.js configure: Found Python {}.{}.{}...'.format(*sys.version_info))
-acceptable_pythons = ((3, 12), (3, 11), (3, 10), (3, 9), (3, 8), (3, 7), (3, 6))
+acceptable_pythons = ((3, 13), (3, 12), (3, 11), (3, 10), (3, 9), (3, 8), (3, 7), (3, 6))
if sys.version_info[:2] in acceptable_pythons:
import configure
else:
diff -ruwN source/configure.py source-new/configure.py
--- source/configure.py 2024-04-10 19:46:11.000000000 +0700
+++ source-new/configure.py 2025-10-10 13:46:04.244040340 +0700

View File

@ -0,0 +1,17 @@
#TODO not compiled or tested
[source]
tar = "https://download.gnome.org/sources/aisleriot/3.22/aisleriot-3.22.35.tar.xz"
[build]
template = "meson"
mesonflags = [
"-Ddocs=false",
"-Dsound=false",
]
dependencies = [
"glib",
"gtk3",
"cairo",
"libcanberra",
"qt5-svg",
"librsvg",
]

View File

@ -0,0 +1,13 @@
#TODO not compiled or tested
#TODO missing dependencies: https://gitlab.gnome.org/GNOME/brasero/-/blob/master/README?ref_type=heads&plain=1#L64
[source]
tar = "https://download.gnome.org/sources/brasero/3.12/brasero-3.12.3.tar.xz"
[build]
template = "configure"
dependencies = [
"gtk3",
"gstreamer",
"libxml2",
"cairo",
"libcanberra",
]

View File

@ -0,0 +1,19 @@
#TODO not compiled or tested
[source]
tar = "https://download.gnome.org/sources/evince/48/evince-48.1.tar.xz"
[build]
template = "meson"
mesonflags = [
"-Dgtk_doc=false",
"-Duser_doc=false",
"-Dintrospection=false",
"-Ddbus=false",
]
dependencies = [
"glib",
"gtk4",
"libadwaita",
"cairo",
"libxml2",
"cairo",
]

View File

@ -0,0 +1,11 @@
#TODO not compiled or tested
[source]
git = "https://gitlab.gnome.org/GNOME/gnome-2048"
shallow_clone = true
[build]
template = "meson"
dependencies = [
"glib",
"gtk4",
"libadwaita",
]

View File

@ -0,0 +1,12 @@
#TODO not compiled or tested
#TODO missing dependencies
[source]
tar = "https://download.gnome.org/sources/gnome-chess/49/gnome-chess-49.2.tar.xz"
[build]
template = "meson"
dependencies = [
"glib",
"gtk4",
"libadwaita",
"librsvg",
]

View File

@ -0,0 +1,11 @@
#TODO not compiled or tested
[source]
git = "https://gitlab.gnome.org/GNOME/loupe"
shallow_clone = true
[build]
template = "meson"
dependencies = [
"gtk4",
"libadwaita",
"liblcms",
]

View File

@ -0,0 +1,12 @@
#TODO not compiled or tested
#TODO missing dependencies
[source]
tar = "https://download.gnome.org/sources/gnome-sudoku/49/gnome-sudoku-49.2.tar.xz"
[build]
template = "meson"
dependencies = [
"glib",
"gtk4",
"libadwaita",
"json-glib",
]

View File

@ -0,0 +1,9 @@
#TODO not compiled or tested
#TODO discover minimum dependencies from meson log
[source]
tar = "https://download.gnome.org/sources/simple-scan/49/simple-scan-49.1.tar.xz"
[build]
template = "meson"
dependencies = [
"sane-backends",
]

View File

@ -0,0 +1,12 @@
#TODO not compiled or tested
[source]
git = "https://gitlab.gnome.org/GNOME/snapshot"
shallow_clone = true
[build]
template = "meson"
dependencies = [
"glib",
"gtk4",
"libadwaita",
"gstreamer",
]

View File

@ -0,0 +1,11 @@
#TODO not compiled or tested
#TODO discover minimum dependencies from cmake log
[source]
git = "https://invent.kde.org/utilities/ark"
branch = "release/25.08"
shallow_clone = true
[build]
template = "cmake"
dependencies = [
"libarchive",
]

View File

@ -0,0 +1,12 @@
#TODO not compiled or tested
#TODO discover minimum dependencies from cmake log
# build instructions: https://invent.kde.org/multimedia/k3b/-/blob/master/INSTALL.txt?ref_type=heads
[source]
git = "https://invent.kde.org/multimedia/k3b"
branch = "release/25.08"
shallow_clone = true
[build]
template = "cmake"
dependencies = [
"libcdio-paranoia",
]

View File

@ -0,0 +1,8 @@
#TODO not compiled or tested
#TODO discover minimum dependencies from cmake log
[source]
git = "https://invent.kde.org/games/kpat"
branch = "release/25.08"
shallow_clone = true
[build]
template = "cmake"

View File

@ -0,0 +1,11 @@
#TODO not compiled or tested
#TODO discover minimum dependencies from cmake log
[source]
git = "https://invent.kde.org/utilities/skanpage"
branch = "release/25.08"
shallow_clone = true
[build]
template = "cmake"
dependencies = [
"sane-backends",
]

View File

@ -11,17 +11,24 @@ dependencies = [
script = """
DYNAMIC_INIT
ARCH="${TARGET%%-*}"
OS=$(echo "${TARGET}" | cut -d - -f3)
export ARFLAGS=cr
COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/Configure"
COOKBOOK_CONFIGURE_FLAGS=(
no-tests
no-unit-test
shared
zlib
enable-zstd
"redox-${ARCH}"
"${OS}-${ARCH}"
--prefix="/usr"
)
if [ "${COOKBOOK_DYNAMIC}" = "1" ]; then
COOKBOOK_CONFIGURE_FLAGS+=(shared)
else
COOKBOOK_CONFIGURE_FLAGS+=(no-shared)
fi
"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}"
"${COOKBOOK_MAKE}" -j1 # bug in make/ar
"${COOKBOOK_MAKE}" install_sw install_ssldirs DESTDIR="${COOKBOOK_STAGE}"

View File

@ -0,0 +1,8 @@
#TODO not compiled or tested
[source]
git = "https://github.com/nasedkinpv/numr"
[build]
template = "custom"
script = """
cookbook_cargo_packages numr-cli numr-tui
"""

View File

@ -0,0 +1,13 @@
#TODO not compiled or tested
[source]
git = "https://github.com/nokyan/resources"
[build]
template = "meson"
mesonflags = [
"-Dprofile=default",
]
dependencies = [
"glib",
"gtk4",
"libadwaita",
]

View File

@ -0,0 +1,9 @@
#TODO not compiled or tested
[source]
git = "https://github.com/grigio/network-monitor"
[build]
template = "cargo"
dependencies = [
"gtk4",
"libadwaita",
]

View File

@ -1,11 +1,12 @@
#TODO make D-Bus work
#TODO not compiled or tested
[source]
git = "https://github.com/hinto-janai/festival"
[build]
template = "custom"
dependencies = [
"dbus",
]
#dependencies = [
# "dbus",
#]
script = """
#DYNAMIC_INIT # if dbus is needed
cookbook_cargo_packages festival-gui
"""

View File

@ -1,9 +1,10 @@
#TODO not compiled or tested
# build instructions: https://github.com/mpv-player/mpv#compilation
#TODO missing dependencies
# build instructions: https://github.com/mpv-player/mpv#compilation
[source]
git = "https://github.com/mpv-player/mpv"
rev = "e48ac7ce08462f5e33af6ef9deeac6fa87eef01e"
branch = "release/0.40"
shallow_clone = true
[build]
template = "meson"
dependencies = [

View File

@ -1,48 +1,48 @@
#TODO port Qt4 or wxWidgets
#TODO make dependencies work
# customization - https://wiki.videolan.org/Configure/
#TODO not compiled or tested
#TODO determine minimum dependencies
# customization: https://wiki.videolan.org/Configure/
[source]
tar = "https://get.videolan.org/vlc/3.0.20/vlc-3.0.20.tar.xz"
tar = "https://get.videolan.org/vlc/3.0.21/vlc-3.0.21.tar.xz"
[build]
template = "configure"
dependencies = [
"libvorbis",
"libogg",
"speex",
"libflac",
"libtheora",
"x264",
"liba52",
"libmpeg2",
"lame",
# "libvorbis",
# "libogg",
# "speex",
# "libflac",
# "libtheora",
# "x264",
# "liba52",
# "libmpeg2",
# "lame",
"ffmpeg6",
"libmad",
"libdca",
"twolame",
"musepack",
"libass",
"libzvbi",
"opus",
"libebml",
"libmatroska",
"libdvbpsi",
"libdvdcss",
"libdvdread",
"libdvdnav",
"libbluray",
"libgpg-error",
"libgcrypt",
"gnutls",
# "libmad",
# "libdca",
# "twolame",
# "musepack",
# "libass",
# "libzvbi",
# "opus",
# "libebml",
# "libmatroska",
# "libdvbpsi",
# "libdvdcss",
# "libdvdread",
# "libdvdnav",
# "libbluray",
# "libgpg-error",
# "libgcrypt",
# "gnutls",
"libxml2",
"libvncserver",
"libpng",
"libjpeg",
"libiconv",
"gettext",
# "libvncserver",
# "libpng",
# "libjpeg",
# "libiconv",
# "gettext",
"zlib",
"freetype2",
"fribidi",
# "fribidi",
"fontconfig",
"taglib",
# "taglib",
"wxwidgets-gtk3",
]

View File

@ -1,32 +1,31 @@
#TODO not compiled or tested
#TODO discover minimum dependencies from cmake log
# build instructions: https://github.com/obsproject/obs-studio/wiki/Building-OBS-Studio
# maybe missing dependencies
[source]
git = "https://github.com/obsproject/obs-studio"
rev = "b45a73296f4f898e2ed455023020058075c30bab"
tar = "https://github.com/obsproject/obs-studio/releases/download/32.0.2/OBS-Studio-32.0.2-Sources.tar.gz"
[build]
template = "cmake"
dependencies = [
"boost",
"librsvg",
"dbus",
"fontconfig",
"freetype2",
"jansson",
"pipewire",
"mesa",
"speexdsp",
"ffmpeg6",
"x264",
"curl",
"mbedtls",
"libva",
"qt5-base",
"qt5-svg",
"eudev",
"pciutils",
"libqrcodegenc",
"librist",
"libsrt",
"libwebsocket++",
]
# dependencies = [
# "boost",
# "librsvg",
# "dbus",
# "fontconfig",
# "freetype2",
# "jansson",
# "pipewire",
# "mesa",
# "speexdsp",
# "ffmpeg6",
# "x264",
# "curl",
# "mbedtls",
# "libva",
# "qt5-base",
# "qt5-svg",
# "eudev",
# "pciutils",
# "libqrcodegenc",
# "librist",
# "libsrt",
# "libwebsocket++",
# ]

View File

@ -0,0 +1,10 @@
#TODO not compiled or tested
# build instructions: https://gitlab.com/sane-project/backends/-/blob/master/README?ref_type=heads
[source]
tar = "https://gitlab.com/-/project/429008/uploads/843c156420e211859e974f78f64c3ea3/sane-backends-1.4.0.tar.gz"
[build]
template = "configure"
dependencies = [
"libusb",
"libjpeg",
]

View File

@ -0,0 +1,8 @@
#TODO not compiled or tested
[source]
git = "https://github.com/collabora/bmap-rs"
[build]
template = "custom"
script = """
cookbook_cargo_packages bmap-rs
"""

View File

@ -0,0 +1,5 @@
#TODO not compiled or tested
[source]
git = "https://github.com/jedisct1/yes-rs"
[build]
template = "cargo"

View File

@ -1,11 +0,0 @@
#TODO maybe wrong template, see https://gitlab.gnome.org/GNOME/snapshot
[source]
tar = "https://download.gnome.org/sources/snapshot/45/snapshot-45.2.tar.xz"
[build]
template = "cargo"
dependencies = [
"glib",
"gtk4",
"libadwaita",
"gstreamer",
]

View File

@ -0,0 +1,5 @@
#TODO not compiled or tested
[source]
git = "https://github.com/kawayww/tola-ssg"
[build]
template = "cargo"

View File

@ -1,165 +0,0 @@
use std::path::Path;
use std::{env, process};
use cookbook::cook::fetch::{fetch, fetch_offline};
use cookbook::cook::fs::create_target_dir;
use cookbook::cook::package::package;
use cookbook::recipe::{CookRecipe, Recipe};
use pkg::PackageName;
use cookbook::config::init_config;
use cookbook::cook::cook_build::build;
use termion::{color, style};
fn cook(
recipe_dir: &Path,
name: &PackageName,
recipe: &Recipe,
is_deps: bool,
fetch_only: bool,
is_offline: bool,
) -> Result<(), String> {
let source_dir = match is_offline {
true => fetch_offline(recipe_dir, recipe, &None),
false => fetch(recipe_dir, recipe, &None),
}
.map_err(|err| format!("failed to fetch: {}", err))?;
if fetch_only {
return Ok(());
}
let target_dir = create_target_dir(recipe_dir)?;
let (stage_dir, auto_deps) = build(
recipe_dir,
&source_dir,
&target_dir,
name,
recipe,
is_offline,
!is_deps,
&None,
)
.map_err(|err| format!("failed to build: {}", err))?;
package(&stage_dir, &target_dir, name, recipe, &auto_deps, &None)
.map_err(|err| format!("failed to package: {}", err))?;
Ok(())
}
fn main() {
init_config();
let mut matching = true;
let mut dry_run = false;
let mut fetch_only = false;
let mut with_package_deps = false;
let mut quiet = false;
let mut nonstop = false;
let mut is_offline = false;
let mut recipe_names = Vec::new();
for arg in env::args().skip(1) {
match arg.as_str() {
"--" if matching => matching = false,
"-d" | "--dry-run" if matching => dry_run = true,
"--with-package-deps" if matching => with_package_deps = true,
"--fetch-only" if matching => fetch_only = true,
"-q" | "--quiet" if matching => quiet = true,
"--nonstop" => nonstop = true,
"--offline" => is_offline = true,
_ => recipe_names.push(arg.try_into().expect("Invalid package name")),
}
}
if with_package_deps {
recipe_names = match CookRecipe::get_package_deps_recursive(&recipe_names, true) {
Ok(ok) => ok,
Err(err) => {
eprintln!(
"{}{}cook - error:{}{} {}",
style::Bold,
color::Fg(color::AnsiValue(196)),
color::Fg(color::Reset),
style::Reset,
err,
);
process::exit(1);
}
};
}
let recipes =
match CookRecipe::get_build_deps_recursive(&recipe_names, true, !with_package_deps) {
Ok(ok) => ok,
Err(err) => {
eprintln!(
"{}{}cook - error:{}{} {}",
style::Bold,
color::Fg(color::AnsiValue(196)),
color::Fg(color::Reset),
style::Reset,
err,
);
process::exit(1);
}
};
for recipe in recipes {
if !quiet {
eprintln!(
"{}{}cook - {}{}{}",
style::Bold,
color::Fg(color::AnsiValue(215)),
recipe.name,
color::Fg(color::Reset),
style::Reset,
);
}
let res = if dry_run {
if !quiet {
eprintln!("DRY RUN: {:#?}", recipe.recipe);
}
Ok(())
} else {
cook(
&recipe.dir,
&recipe.name,
&recipe.recipe,
recipe.is_deps,
fetch_only,
is_offline,
)
};
match res {
Ok(()) => {
if !quiet {
eprintln!(
"{}{}cook - {} - successful{}{}",
style::Bold,
color::Fg(color::AnsiValue(46)),
recipe.name,
color::Fg(color::Reset),
style::Reset,
);
}
}
Err(err) => {
eprintln!(
"{}{}cook - {} - error:{}{} {}",
style::Bold,
color::Fg(color::AnsiValue(196)),
recipe.name,
color::Fg(color::Reset),
style::Reset,
err,
);
if !nonstop {
process::exit(1);
}
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More