mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-07-03 18:18:44 +08:00
Compare commits
78 Commits
bdbae5e2bd
...
359cd577a8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
359cd577a8 | ||
|
|
437fd56743 | ||
|
|
b0fcf6daa5 | ||
|
|
489a252c83 | ||
|
|
ada05a5b44 | ||
|
|
28e385ca80 | ||
|
|
5d5ea4b306 | ||
|
|
c1f13049dc | ||
|
|
b5c9bc2e18 | ||
|
|
695a72f6df | ||
|
|
f5403a490c | ||
|
|
db6205137b | ||
|
|
6b37db810e | ||
|
|
ca64eae3b9 | ||
|
|
e84899efc4 | ||
|
|
389899a69b | ||
|
|
8f5387cbb5 | ||
|
|
169c7a3ca2 | ||
|
|
991a011689 | ||
|
|
ce0e42833d | ||
|
|
96ca39969c | ||
|
|
4b152092bc | ||
|
|
6d88695a22 | ||
|
|
56967cc5ce | ||
|
|
d0d00fc239 | ||
|
|
04fa310351 | ||
|
|
fce16483f4 | ||
|
|
04cb8e436a | ||
|
|
f0eda79252 | ||
|
|
b1669277dd | ||
|
|
1c366513e1 | ||
|
|
a3b1c62fef | ||
|
|
22f62b365b | ||
|
|
a6acfb3d68 | ||
|
|
67bccab3bf | ||
|
|
f7f57f54ae | ||
|
|
3e1595133f | ||
|
|
f4fe816850 | ||
|
|
d877f4ff5a | ||
|
|
c9b6d7893b | ||
|
|
10e0ab50a4 | ||
|
|
7e122d72fd | ||
|
|
203960a0fd | ||
|
|
49bdc21933 | ||
|
|
5d10e485d1 | ||
|
|
6548af0913 | ||
|
|
14d344a64c | ||
|
|
63694cf409 | ||
|
|
3874142a82 | ||
|
|
fb9d5bfbe1 | ||
|
|
b6f5d01597 | ||
|
|
7e46f5747b | ||
|
|
121e336882 | ||
|
|
158ce47959 | ||
|
|
b38f64c2f5 | ||
|
|
0a68b0289e | ||
|
|
5249d8d9e5 | ||
|
|
927e4cf0ab | ||
|
|
b2f60b8d9f | ||
|
|
bb57b364bb | ||
|
|
d982644a73 | ||
|
|
2941e1dcda | ||
|
|
08f5d72ce1 | ||
|
|
8270d68b5d | ||
|
|
6ffba92954 | ||
|
|
cf26822ec3 | ||
|
|
09676d4ebd | ||
|
|
69768efce7 | ||
|
|
536a3454e8 | ||
|
|
df4bed146c | ||
|
|
5d28f73987 | ||
|
|
425e4e4eba | ||
|
|
883ae89301 | ||
|
|
4e2665bd98 | ||
|
|
322e6050b9 | ||
|
|
31e0ab5f82 | ||
|
|
a7b7020f2f | ||
|
|
3e3c26203b |
@ -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 = []
|
||||
|
||||
@ -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
2180
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
22
Cargo.toml
22
Cargo.toml
@ -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"
|
||||
|
||||
101
HARDWARE.md
101
HARDWARE.md
@ -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 |
|
||||
|
||||
|
||||
6
Makefile
6
Makefile
@ -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
|
||||
|
||||
|
||||
@ -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**
|
||||
|
||||
@ -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 = {}
|
||||
|
||||
@ -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]]
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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 = {}
|
||||
|
||||
@ -12,4 +12,3 @@ include = ["../desktop.toml"]
|
||||
# Package settings
|
||||
[packages]
|
||||
# example = {}
|
||||
rustpython = "ignore" # https://github.com/Alexhuszagh/rust-lexical/issues/218
|
||||
@ -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
|
||||
"""
|
||||
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -13,7 +13,7 @@ netutils = {}
|
||||
path = "/usr/lib/init.d/10_net"
|
||||
data = """
|
||||
smolnetd
|
||||
dhcpd -b
|
||||
nowait dhcpd
|
||||
"""
|
||||
|
||||
## Default net configuration (optimized for QEMU)
|
||||
|
||||
@ -14,6 +14,6 @@ data = """
|
||||
echo
|
||||
echo ## running redoxer in orbital ##
|
||||
export VT 3
|
||||
orbital redoxerd
|
||||
nowait orbital redoxerd
|
||||
unset VT
|
||||
"""
|
||||
|
||||
@ -10,6 +10,7 @@ coreutils = {}
|
||||
extrautils = {}
|
||||
findutils = {}
|
||||
gcc13 = {}
|
||||
"gcc13.cxx" = {}
|
||||
gnu-binutils = {}
|
||||
ion = {}
|
||||
netdb = {}
|
||||
|
||||
@ -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 = {}
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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]]
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -50,8 +50,6 @@ dash = {}
|
||||
dejavu = {}
|
||||
diffutils = {}
|
||||
dosbox = {}
|
||||
drivers = {}
|
||||
drivers-initfs = {}
|
||||
duktape = {}
|
||||
eduke32 = {}
|
||||
exampled = {}
|
||||
|
||||
@ -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
24
flake.lock
generated
@ -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": {
|
||||
|
||||
88
flake.nix
88
flake.nix
@ -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"
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
27
mk/repo.mk
27
mk/repo.mk
@ -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?=
|
||||
|
||||
|
||||
@ -420,6 +420,7 @@ ubuntu()
|
||||
clang \
|
||||
cmake \
|
||||
curl \
|
||||
default-jre-headless \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
expect \
|
||||
|
||||
@ -17,6 +17,7 @@ RUN apt-get update \
|
||||
clang \
|
||||
cmake \
|
||||
curl \
|
||||
default-jre-headless \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
expect \
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
hwd
|
||||
pcid
|
||||
pcid-spawner /etc/pcid/initfs.toml
|
||||
@ -1 +0,0 @@
|
||||
bcm2835-sdhcid
|
||||
@ -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
|
||||
@ -1,4 +0,0 @@
|
||||
ps2d us
|
||||
hwd
|
||||
pcid
|
||||
pcid-spawner /etc/pcid/initfs.toml
|
||||
@ -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 \
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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"
|
||||
"""
|
||||
@ -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
|
||||
"""
|
||||
@ -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=(
|
||||
'['
|
||||
|
||||
@ -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/**",
|
||||
]
|
||||
|
||||
@ -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 = [
|
||||
|
||||
22
recipes/dev/rustpython/redox.patch
Normal file
22
recipes/dev/rustpython/redox.patch
Normal 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()? {
|
||||
@ -4,6 +4,7 @@ dependencies = [
|
||||
"automake",
|
||||
"cargo",
|
||||
"gcc13",
|
||||
"gcc13.cxx",
|
||||
"llvm18",
|
||||
"gnu-binutils",
|
||||
"gnu-make",
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/cosmic-icons.git"
|
||||
rev = "f93dcdfa1060c2cf3f8cf0b56b0338292edcafa5"
|
||||
shallow_clone = true
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/icon-theme.git"
|
||||
|
||||
shallow_clone = true
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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 = [
|
||||
|
||||
@ -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}"
|
||||
|
||||
@ -17,6 +17,7 @@ dependencies = [
|
||||
"autoconf",
|
||||
"automake",
|
||||
"gcc13",
|
||||
"gcc13.cxx",
|
||||
"git",
|
||||
"gnu-make",
|
||||
"libtool",
|
||||
|
||||
44
recipes/tui/goaccess/recipe.toml
Normal file
44
recipes/tui/goaccess/recipe.toml
Normal 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
|
||||
"""
|
||||
|
||||
|
||||
|
||||
34
recipes/tui/goaccess/redox1.patch
Normal file
34
recipes/tui/goaccess/redox1.patch
Normal 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
|
||||
|
||||
60
recipes/tui/goaccess/redox2.patch
Normal file
60
recipes/tui/goaccess/redox2.patch
Normal 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
|
||||
|
||||
@ -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
|
||||
|
||||
5
recipes/wip/dev/analysis/pratdiff/recipe.toml
Normal file
5
recipes/wip/dev/analysis/pratdiff/recipe.toml
Normal file
@ -0,0 +1,5 @@
|
||||
#TODO not compiled or tested
|
||||
[source]
|
||||
git = "https://github.com/fowles/pratdiff"
|
||||
[build]
|
||||
template = "cargo"
|
||||
5
recipes/wip/dev/analysis/statui/recipe.toml
Normal file
5
recipes/wip/dev/analysis/statui/recipe.toml
Normal file
@ -0,0 +1,5 @@
|
||||
#TODO not compiled or tested
|
||||
[source]
|
||||
git = "https://github.com/Mohamed-Badry/statui"
|
||||
[build]
|
||||
template = "cargo"
|
||||
23
recipes/wip/dev/git-tools/lazygit/recipe.toml
Normal file
23
recipes/wip/dev/git-tools/lazygit/recipe.toml
Normal 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
|
||||
"""
|
||||
@ -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
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
17
recipes/wip/gnome/aisleriot/recipe.toml
Normal file
17
recipes/wip/gnome/aisleriot/recipe.toml
Normal 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",
|
||||
]
|
||||
13
recipes/wip/gnome/brasero/recipe.toml
Normal file
13
recipes/wip/gnome/brasero/recipe.toml
Normal 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",
|
||||
]
|
||||
19
recipes/wip/gnome/evince/recipe.toml
Normal file
19
recipes/wip/gnome/evince/recipe.toml
Normal 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",
|
||||
]
|
||||
11
recipes/wip/gnome/gnome-2048/recipe.toml
Normal file
11
recipes/wip/gnome/gnome-2048/recipe.toml
Normal 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",
|
||||
]
|
||||
12
recipes/wip/gnome/gnome-chess/recipe.toml
Normal file
12
recipes/wip/gnome/gnome-chess/recipe.toml
Normal 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",
|
||||
]
|
||||
11
recipes/wip/gnome/gnome-image-viewer/recipe.toml
Normal file
11
recipes/wip/gnome/gnome-image-viewer/recipe.toml
Normal 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",
|
||||
]
|
||||
12
recipes/wip/gnome/gnome-sudoku/recipe.toml
Normal file
12
recipes/wip/gnome/gnome-sudoku/recipe.toml
Normal 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",
|
||||
]
|
||||
9
recipes/wip/gnome/simple-scan/recipe.toml
Normal file
9
recipes/wip/gnome/simple-scan/recipe.toml
Normal 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",
|
||||
]
|
||||
12
recipes/wip/gnome/snapshot/recipe.toml
Normal file
12
recipes/wip/gnome/snapshot/recipe.toml
Normal 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",
|
||||
]
|
||||
11
recipes/wip/kde/ark/recipe.toml
Normal file
11
recipes/wip/kde/ark/recipe.toml
Normal 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",
|
||||
]
|
||||
12
recipes/wip/kde/k3b/recipe.toml
Normal file
12
recipes/wip/kde/k3b/recipe.toml
Normal 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",
|
||||
]
|
||||
8
recipes/wip/kde/kpatience/recipe.toml
Normal file
8
recipes/wip/kde/kpatience/recipe.toml
Normal 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"
|
||||
11
recipes/wip/kde/skanpage/recipe.toml
Normal file
11
recipes/wip/kde/skanpage/recipe.toml
Normal 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",
|
||||
]
|
||||
@ -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}"
|
||||
|
||||
8
recipes/wip/math/numr/recipe.toml
Normal file
8
recipes/wip/math/numr/recipe.toml
Normal 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
|
||||
"""
|
||||
13
recipes/wip/monitors/resources/recipe.toml
Normal file
13
recipes/wip/monitors/resources/recipe.toml
Normal 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",
|
||||
]
|
||||
9
recipes/wip/net/monitor/network-monitor-rs/recipe.toml
Normal file
9
recipes/wip/net/monitor/network-monitor-rs/recipe.toml
Normal file
@ -0,0 +1,9 @@
|
||||
#TODO not compiled or tested
|
||||
[source]
|
||||
git = "https://github.com/grigio/network-monitor"
|
||||
[build]
|
||||
template = "cargo"
|
||||
dependencies = [
|
||||
"gtk4",
|
||||
"libadwaita",
|
||||
]
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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 = [
|
||||
|
||||
@ -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",
|
||||
]
|
||||
|
||||
@ -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++",
|
||||
# ]
|
||||
|
||||
10
recipes/wip/scan/sane-backends/recipe.toml
Normal file
10
recipes/wip/scan/sane-backends/recipe.toml
Normal 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",
|
||||
]
|
||||
8
recipes/wip/storage/bmap-rs/recipe.toml
Normal file
8
recipes/wip/storage/bmap-rs/recipe.toml
Normal 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
|
||||
"""
|
||||
5
recipes/wip/text/yes-rs/recipe.toml
Normal file
5
recipes/wip/text/yes-rs/recipe.toml
Normal file
@ -0,0 +1,5 @@
|
||||
#TODO not compiled or tested
|
||||
[source]
|
||||
git = "https://github.com/jedisct1/yes-rs"
|
||||
[build]
|
||||
template = "cargo"
|
||||
@ -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",
|
||||
]
|
||||
5
recipes/wip/web/tola-ssg/recipe.toml
Normal file
5
recipes/wip/web/tola-ssg/recipe.toml
Normal file
@ -0,0 +1,5 @@
|
||||
#TODO not compiled or tested
|
||||
[source]
|
||||
git = "https://github.com/kawayww/tola-ssg"
|
||||
[build]
|
||||
template = "cargo"
|
||||
165
src/bin/cook.rs
165
src/bin/cook.rs
@ -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
Loading…
Reference in New Issue
Block a user