mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-17 15:34:18 +08:00
Compare commits
297 Commits
6e0784e7f5
...
f4bf837b00
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f4bf837b00 | ||
|
|
a56678a23f | ||
|
|
a0820bd177 | ||
|
|
569706f4f6 | ||
|
|
bd23510694 | ||
|
|
647db212f8 | ||
|
|
3a9b48db9c | ||
|
|
112ff5f653 | ||
|
|
57aa833983 | ||
|
|
5c70677c08 | ||
|
|
6ec374c66e | ||
|
|
8c5f7d5bc7 | ||
|
|
2f133104d7 | ||
|
|
bbaeca9031 | ||
|
|
a1593cc507 | ||
|
|
a722ca40fa | ||
|
|
5c61a7088a | ||
|
|
b64ebdbc25 | ||
|
|
7d1a3d2d5a | ||
|
|
d85a02121b | ||
|
|
92f5eb2917 | ||
|
|
be675094ef | ||
|
|
5ccb829d8b | ||
|
|
0c39c897ba | ||
|
|
c672547cdc | ||
|
|
b464a6c8cd | ||
|
|
ade1870e0b | ||
|
|
4f835f1979 | ||
|
|
bf82d7d11d | ||
|
|
e50218f49a | ||
|
|
26481b4c0f | ||
|
|
98eaa84966 | ||
|
|
87e16d60e2 | ||
|
|
dd9f6f9fc8 | ||
|
|
9dac14c07f | ||
|
|
84d78137a1 | ||
|
|
a030737847 | ||
|
|
754e8d5a94 | ||
|
|
cf074ee1b6 | ||
|
|
4c4a712ab5 | ||
|
|
3465e290e2 | ||
|
|
9c25e638cd | ||
|
|
632d4248f9 | ||
|
|
f0d4f6b198 | ||
|
|
e37801362f | ||
|
|
d6886407ac | ||
|
|
726940949f | ||
|
|
d228c75756 | ||
|
|
6fce854083 | ||
|
|
dcb020823e | ||
|
|
d3c12a1f24 | ||
|
|
b5eea24cf4 | ||
|
|
e9fc007847 | ||
|
|
d842c9579d | ||
|
|
8d2330dbc9 | ||
|
|
9375488b57 | ||
|
|
ccb9e4e580 | ||
|
|
471e5e3583 | ||
|
|
f16ed6be66 | ||
|
|
20a0fa88a6 | ||
|
|
ede550f56e | ||
|
|
72473b7d01 | ||
|
|
22f4f0b45c | ||
|
|
9dba94a28a | ||
|
|
68cebd6781 | ||
|
|
bf3b860c92 | ||
|
|
03bff2ff78 | ||
|
|
4043ec7a30 | ||
|
|
5f74a11ed8 | ||
|
|
82e3f60565 | ||
|
|
69a34818bd | ||
|
|
e727494c37 | ||
|
|
81e153fa43 | ||
|
|
38a7406435 | ||
|
|
aba574248d | ||
|
|
6c65f91d9c | ||
|
|
0fd6b596ef | ||
|
|
67dccc053a | ||
|
|
9ae3059530 | ||
|
|
a42a64e37a | ||
|
|
862b29d3d9 | ||
|
|
858a689d3f | ||
|
|
5401abff64 | ||
|
|
5676d5f763 | ||
|
|
9ed87f664a | ||
|
|
879bc820c4 | ||
|
|
64ed9dbd7d | ||
|
|
7b2e53d567 | ||
|
|
0c7353bfad | ||
|
|
841bb37725 | ||
|
|
82d250470a | ||
|
|
cceb7e4974 | ||
|
|
c040d826c1 | ||
|
|
631ce38da3 | ||
|
|
1efb396faa | ||
|
|
bf1bd0ea88 | ||
|
|
17c15616d1 | ||
|
|
3214d8bdf0 | ||
|
|
da71785aed | ||
|
|
79d8072276 | ||
|
|
7e1acfc1ce | ||
|
|
1ab4449c52 | ||
|
|
9fd5e00438 | ||
|
|
6541631e68 | ||
|
|
b01c5b5067 | ||
|
|
000eca0329 | ||
|
|
29e2c72584 | ||
|
|
5c745a821f | ||
|
|
7b9095fd21 | ||
|
|
2d0447671b | ||
|
|
df78f2f3e3 | ||
|
|
21396ea063 | ||
|
|
138574e9c5 | ||
|
|
42f9379bd8 | ||
|
|
21ff41e6d1 | ||
|
|
bdc26a481d | ||
|
|
2ced0edd35 | ||
|
|
9ec2f5d440 | ||
|
|
30fd08a340 | ||
|
|
8a28ce8da2 | ||
|
|
f28060df32 | ||
|
|
0ac93d72ac | ||
|
|
2dd0f0f1f2 | ||
|
|
d587f3e31b | ||
|
|
64064962a9 | ||
|
|
247754569c | ||
|
|
fd2d14d42b | ||
|
|
0886d88cd6 | ||
|
|
ca3cf86d80 | ||
|
|
4095eb2e53 | ||
|
|
c68f449ee6 | ||
|
|
d8d47ef157 | ||
|
|
5f15060d2f | ||
|
|
c9a8f417f9 | ||
|
|
deab2c71f5 | ||
|
|
fde6f77b2a | ||
|
|
480bf7c955 | ||
|
|
038ba28147 | ||
|
|
25c5c7f4c8 | ||
|
|
9b0681d1bc | ||
|
|
73034a4b98 | ||
|
|
900c5deef1 | ||
|
|
114833df68 | ||
|
|
2cef3c833a | ||
|
|
0ea9983bf9 | ||
|
|
68f5686159 | ||
|
|
075a9cef1b | ||
|
|
343c4f72b4 | ||
|
|
96e4de173a | ||
|
|
d8966fecb7 | ||
|
|
621f5062cb | ||
|
|
75018ecda5 | ||
|
|
1d0710d320 | ||
|
|
e0e52bf937 | ||
|
|
f59188c696 | ||
|
|
7db2e0db52 | ||
|
|
a66bc4459a | ||
|
|
fb6af700e9 | ||
|
|
fea1c984b4 | ||
|
|
c2dbec1dcf | ||
|
|
010861f71b | ||
|
|
93ad71411a | ||
|
|
5fc3bed36c | ||
|
|
f4d5bb9cbb | ||
|
|
b89464bba8 | ||
|
|
12145c1106 | ||
|
|
0acb0392b9 | ||
|
|
97a5a02808 | ||
|
|
70916091a0 | ||
|
|
ea576a2589 | ||
|
|
35288e173d | ||
|
|
b356334d14 | ||
|
|
676f32572d | ||
|
|
73cf9a5fdf | ||
|
|
58f7c4df55 | ||
|
|
66d336baff | ||
|
|
0e2ad35d67 | ||
|
|
ca7e4737da | ||
|
|
8985edf56a | ||
|
|
8f5f71bc4f | ||
|
|
bfdc2f7668 | ||
|
|
81398f4763 | ||
|
|
0012506f26 | ||
|
|
34ff7b8348 | ||
|
|
fd112d8640 | ||
|
|
9abdbd085e | ||
|
|
12d2be1e8f | ||
|
|
e703945410 | ||
|
|
f66a2ab28a | ||
|
|
7c43688ea2 | ||
|
|
0801c2cc82 | ||
|
|
0ce39682c5 | ||
|
|
9b2bf136b2 | ||
|
|
69dc41a1d8 | ||
|
|
260f98467e | ||
|
|
65f68c0645 | ||
|
|
9a9fa2ec7b | ||
|
|
771df295c5 | ||
|
|
4d30dceba0 | ||
|
|
dff2cb45e0 | ||
|
|
384405a080 | ||
|
|
2dd34be76f | ||
|
|
c45841ef6f | ||
|
|
15a610024d | ||
|
|
d66aaf4602 | ||
|
|
25d8916ed4 | ||
|
|
a5ae4342cf | ||
|
|
6f3bb65eb8 | ||
|
|
192dc5a2dc | ||
|
|
21356e4be6 | ||
|
|
a77eb39d50 | ||
|
|
950459dcc6 | ||
|
|
c8236b5692 | ||
|
|
baec8f7bb4 | ||
|
|
60bf9b5470 | ||
|
|
6b5c35d7ff | ||
|
|
063a966eca | ||
|
|
c9500591b2 | ||
|
|
953993ac05 | ||
|
|
c09e73007a | ||
|
|
1776731607 | ||
|
|
d05691f8bf | ||
|
|
ad06910a29 | ||
|
|
7ba21717c7 | ||
|
|
8d6ae193e7 | ||
|
|
16c8c87d4f | ||
|
|
4e88d4be1c | ||
|
|
65d19d6501 | ||
|
|
be0a51b0de | ||
|
|
a7a7a606c3 | ||
|
|
4b9be41ed8 | ||
|
|
a25e53bd60 | ||
|
|
153082f04b | ||
|
|
1bba2b69bd | ||
|
|
0fbe0fee42 | ||
|
|
cd93f8c398 | ||
|
|
f15fcfa940 | ||
|
|
5c42d00dc2 | ||
|
|
04cc7c0f15 | ||
|
|
b9dd2ee36d | ||
|
|
193c1cffcc | ||
|
|
f8c83ed80d | ||
|
|
eed7320cb3 | ||
|
|
e5587552c7 | ||
|
|
15bf773769 | ||
|
|
364743ae86 | ||
|
|
0a2a487439 | ||
|
|
6862a7b98d | ||
|
|
c3ccda5e99 | ||
|
|
16103df825 | ||
|
|
d2262fa1d1 | ||
|
|
642a6444fe | ||
|
|
e36c3d98eb | ||
|
|
0564884467 | ||
|
|
6e840ef0ad | ||
|
|
3977f37d22 | ||
|
|
e96734e910 | ||
|
|
7f8859812f | ||
|
|
5dca55d74b | ||
|
|
1ea6f027c3 | ||
|
|
2a499c179a | ||
|
|
0ab4ceed34 | ||
|
|
7fcfc50b89 | ||
|
|
ff38cd9bdc | ||
|
|
36f34251b3 | ||
|
|
6963cebcfc | ||
|
|
65c57b3fba | ||
|
|
a5dbf2ba24 | ||
|
|
82af8d02ac | ||
|
|
fe6d75db06 | ||
|
|
bfa75fcaa5 | ||
|
|
c2daab5320 | ||
|
|
661aac7b74 | ||
|
|
ea56858454 | ||
|
|
2dbd894b0e | ||
|
|
4c8154eff3 | ||
|
|
a8892769fe | ||
|
|
42ca0acfa4 | ||
|
|
ae7ac629c6 | ||
|
|
79eeee91af | ||
|
|
bd60e8fab6 | ||
|
|
f5695c4687 | ||
|
|
039dbcef4a | ||
|
|
3c4b8f9dbe | ||
|
|
36396971f7 | ||
|
|
e92839d2dd | ||
|
|
1edc7badde | ||
|
|
daf639a762 | ||
|
|
e43f2f3744 | ||
|
|
adeb668e3f | ||
|
|
829b4f68f4 | ||
|
|
dfcbb5bebe | ||
|
|
ba681c1942 | ||
|
|
1f5b0b012b | ||
|
|
8dce55105d | ||
|
|
cba10533b3 | ||
|
|
912a6880de |
1
.gitignore
vendored
1
.gitignore
vendored
@ -14,6 +14,7 @@
|
||||
/repo
|
||||
/web
|
||||
/cookbook.toml
|
||||
/cookbook.lock
|
||||
source
|
||||
source.tmp
|
||||
source-new
|
||||
|
||||
@ -25,8 +25,18 @@ cargo-test:
|
||||
script:
|
||||
- cargo test --locked
|
||||
|
||||
fetch-changed:
|
||||
image: "redoxos/redox-base-x86_64"
|
||||
stage: test
|
||||
script:
|
||||
- |
|
||||
export PATH="$HOME/.cargo/bin:$PATH" &&
|
||||
(curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal ) &&
|
||||
cargo install cbindgen &&
|
||||
env PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 ./scripts/fetch-changed.sh
|
||||
|
||||
img:
|
||||
image: "redoxos/redox-base"
|
||||
image: "redoxos/redox-base-x86_64"
|
||||
stage: test
|
||||
script:
|
||||
- |
|
||||
|
||||
42
Cargo.lock
generated
42
Cargo.lock
generated
@ -857,7 +857,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "redox-pkg"
|
||||
version = "0.3.1"
|
||||
source = "git+https://gitlab.redox-os.org/redox-os/pkgutils.git#52f7930f8e6dfbe85efd115b3848ea802e1a56f0"
|
||||
source = "git+https://gitlab.redox-os.org/redox-os/pkgutils.git#209d1edddd46fdc4a9fc06036ffc05ef6e5ce86a"
|
||||
dependencies = [
|
||||
"hex",
|
||||
"serde",
|
||||
@ -885,6 +885,7 @@ dependencies = [
|
||||
"redoxer",
|
||||
"regex",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"strip-ansi-escapes",
|
||||
"termion",
|
||||
"toml",
|
||||
@ -917,7 +918,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "redoxer"
|
||||
version = "0.2.63"
|
||||
source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#67af2b7543ff8fb2eaba6699ac9d331dfe2d0f8c"
|
||||
source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#e4c40952b1a3c2da74557c62c1e51f5c6ab699f7"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"dirs",
|
||||
@ -1018,24 +1019,47 @@ checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.197"
|
||||
version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
|
||||
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
||||
dependencies = [
|
||||
"serde_core",
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_core"
|
||||
version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.197"
|
||||
version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
|
||||
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.149"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
"serde",
|
||||
"serde_core",
|
||||
"zmij",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_spanned"
|
||||
version = "0.6.9"
|
||||
@ -1458,3 +1482,9 @@ dependencies = [
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zmij"
|
||||
version = "1.0.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
|
||||
|
||||
@ -42,12 +42,13 @@ redox-pkg = { git = "https://gitlab.redox-os.org/redox-os/pkgutils.git", default
|
||||
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"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
termion = "4"
|
||||
toml = "0.8"
|
||||
walkdir = "2.3.1"
|
||||
ansi-to-tui = { version = "8", optional = true }
|
||||
strip-ansi-escapes = { version = "0.2.1", optional = true }
|
||||
serde_json = "1"
|
||||
|
||||
[dependencies.ratatui]
|
||||
version = "0.30"
|
||||
|
||||
34
HARDWARE.md
34
HARDWARE.md
@ -5,7 +5,6 @@ This document tracks the current hardware compatibility of Redox OS.
|
||||
- [Why are hardware reports needed?](#why-are-hardware-reports-needed)
|
||||
- [What if my computer is customized?](#what-if-my-computer-is-customized)
|
||||
- [Status](#status)
|
||||
- [General](#general)
|
||||
- [Contribute to this document](#contribute-to-this-document)
|
||||
- [Template](#template)
|
||||
- [Table row ordering](#table-row-ordering)
|
||||
@ -33,21 +32,27 @@ We also recommend to add your `pciutils` log as a comment on [this](https://gitl
|
||||
|
||||
## Status
|
||||
|
||||
- **Recommended:** The operating system boots with video, sound, PS/2 or USB input, Ethernet, terminal and Orbital working.
|
||||
- **Booting:** The operating system boots with some issues or lacking hardware support (write the issues and what supported hardware is not working in the "Report" section).
|
||||
- **Broken:** The boot loader don't work or can't bootstrap the operating system.
|
||||
The following limitations apply to any status.
|
||||
|
||||
## General
|
||||
|
||||
This section contain limitations that apply to any status.
|
||||
|
||||
- ACPI support is incomplete (some things are hardcoded on the kernel to work)
|
||||
- ACPI support is incomplete (some things are hardcoded in the kernel to work)
|
||||
- Wi-Fi and Bluetooth aren't supported yet
|
||||
- AMD, NVIDIA, ARM, and PowerVR GPUs aren't supported yet (only BIOS VESA and UEFI GOP)
|
||||
- Only Intel GPUs are supported, other GPU vendors use BIOS VESA or UEFI GOP
|
||||
- I2C devices aren't supported yet (PS/2 or USB devices should be used)
|
||||
- USB support varies on each device model because some USB devices require specific drivers (use input devices with standardized controls for more compatibility)
|
||||
- Automatic operating system discovery is not implemented in the boot loader yet (remember this before installing Redox)
|
||||
|
||||
### Recommended
|
||||
|
||||
This status is used when the operating system boots with video, sound, PS/2 or USB input, Ethernet, terminal and Orbital working.
|
||||
|
||||
### Booting
|
||||
|
||||
This status is used when the operating system successfully boot with some issues or lacking hardware support (write the issues and what supported hardware is not working in the "Report" section).
|
||||
|
||||
### Broken
|
||||
|
||||
This status is used when the boot loader or system boot doesn't work.
|
||||
|
||||
## 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.
|
||||
@ -96,10 +101,13 @@ Each "Vendor" has its own alphabetical order in "Model", independent from models
|
||||
| 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 |
|
||||
| Dell | XPS L502X | 0.9.0 | 2026-05-01 | desktop | x86-64 | BIOS | Does not find the bootloader without patching the partition type byte to FAT32 (LBA), Boots to orbital with the patch in live mode, The entire system freezes after the orblogin screen appears unless recompiling the kernel without ACPI support, almost everything works out of box when using the kernel without ACPI, except the touchpad scrolling, WiFi and Intel graphics |
|
||||
| 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 | Thinkbook 14 Gen 2 ARE (AMD Ryzen Edition) Laptop | 0.9.0 | 2026-05-02 | desktop | x86-64 | UEFI | Boots to Orbital, but trackpad and USB mouse doesn't work so unable to test further |
|
||||
| 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 |
|
||||
| Lenovo | Ideapad 710S-13IKB | 0.9.0 | 2026-02-12 | demo | x86-64 | UEFI | Boots to Orbital, No trackpad or USB mouse input support |
|
||||
| Raspberry Pi | 3 Model B+ | 0.8.0 | Unknown | server | ARM64 | U-Boot | Boots to UART serial console (pl011) |
|
||||
| Samsung | Series 3 (NP350V5C) | 0.9.0 | 2025-08-04 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad works, USB does not work, can connect to the Internet through LAN. Wrong maximum display resolution 1024x768 |
|
||||
| System76 | Oryx Pro (oryp10) | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, though it should be working |
|
||||
@ -110,15 +118,19 @@ Each "Vendor" has its own alphabetical order in "Model", independent from models
|
||||
|
||||
| **Vendor** | **Model** | **Redox Version** | **Image Date** | **Variant** | **CPU Architecture** | **Motherboard Firmware** | **Report** |
|
||||
|------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------|
|
||||
| Apple | Mac Mini (Late 2012, Quad Core) | 0.9.0 | 2026-05-02 | desktop | x86-64 | EFI | Hangs after selecting boot device from boot menu, EFI 1.1 incompatibility? |
|
||||
| ASUS | PN41 | 0.8.0 | 2024-05-30 | server | x86-64 | Unknown | Aborts after panic in xhcid |
|
||||
| Asrock (Custom) | X570 Phantom Gaming 4 (Ryzen 3600) | 2026-05-02 | desktop | x86-64 | UEFI | Not recognised as a UEFI boot disk, have to boot in CSM mode. Bootloader fails with a panic |
|
||||
| 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 | 2026-3-29 | desktop, demo | x86-64 | UEFI | Crash due to unimplemented acpi function, see [jackpot51/acpi #3](https://github.com/jackpot51/acpi/pull/3) on GitHub |
|
||||
| Dell | Latitude D600 | 0.9.0 | 2026-01-25 | desktop | i586 | BIOS | Some kernel messages displayed, then locks up |
|
||||
| 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 | ThinkPad X1 20KH-002 | 0.9.0 | 2026-02-11 | server | x86-64 | UEFI | Boots once after build but not a second time, fails in ps2d |
|
||||
| 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 |
|
||||
| Unbranded | VIA C3 CPU | 0.9.0 | 2026-01-25 | desktop | i586 | BIOS | Some kernel messages displayed, then locks up |
|
||||
| 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 |
|
||||
|
||||
|
||||
17
Makefile
17
Makefile
@ -133,3 +133,20 @@ FORCE:
|
||||
# Wireshark
|
||||
wireshark: FORCE
|
||||
wireshark $(BUILD)/network.pcap
|
||||
|
||||
KPROF_KERNEL_BINARY?=recipes/core/profiling-kernel/target/$(TARGET)/build/kernel
|
||||
KPROF_KERNEL_SYM?=build/flamegraph/$(TARGET)-kernel-syms.txt
|
||||
KPROF_OUTPUT_TXT?=build/$(ARCH)/$(CONFIG_NAME)/filesystem/home/root/kprof.txt
|
||||
KPROF_PERF_SVG?=build/flamegraph/$(TARGET)-$(CONFIG_NAME)-kflamegraph.svg
|
||||
# XXX: This assumes the TSC is invariant, that the value for cpu0 is the same as for all other CPUs, and that the value from ACPI actually reflects the TSC rate. It also only works on Linux.
|
||||
KPROF_CPU_GHZ?=$(shell (cat /sys/devices/system/cpu/cpu0/acpi_cppc/nominal_freq || echo 3400) | xargs echo "0.001 *" | bc)
|
||||
# See https://gitlab.redox-os.org/redox-os/kprofiling/-/blob/master/src/main.rs?ref_type=heads#L16-L18
|
||||
# Set e.g. to "xo" to show individual instruction offsets
|
||||
KPROF_OPTIONS?=_
|
||||
|
||||
flamegraph:
|
||||
mkdir -p build/flamegraph && \
|
||||
make mount && \
|
||||
nm -CS $(KPROF_KERNEL_BINARY) >$(KPROF_KERNEL_SYM) && \
|
||||
redox-kprofiling $(KPROF_OUTPUT_TXT) $(KPROF_KERNEL_SYM) $(KPROF_OPTIONS) $(KPROF_CPU_GHZ) | inferno-collapse-perf | inferno-flamegraph > $(KPROF_PERF_SVG) && \
|
||||
make unmount
|
||||
|
||||
153
TESTING.md
Normal file
153
TESTING.md
Normal file
@ -0,0 +1,153 @@
|
||||
# Call For Testing
|
||||
|
||||
This document covers our call for testing when some feature freeze happens before a new Redox release.
|
||||
|
||||
A call for testing is when we freeze the code to only fix bugs in QEMU and real hardware, first Jeremy test the code on his computers and the community is called to test on QEMU and on their hardware.
|
||||
|
||||
- [Weekly Images](#weekly-images)
|
||||
- [Real Hardware](#real-hardware)
|
||||
- [Ready Images](#ready-images)
|
||||
- [Build Your Image](#build-your-image)
|
||||
- [QEMU](#qemu)
|
||||
- [Ready Images](#ready-images-1)
|
||||
- [Build Your Image](#build-your-image-1)
|
||||
|
||||
## Weekly Images
|
||||
|
||||
Weekly images are Redox images created with the new changes from each week, they contain the latest improvements and bug fixes.
|
||||
|
||||
When we start the feature freeze, the weekly images don't add new features but only bug fixes.
|
||||
|
||||
## Real Hardware
|
||||
|
||||
To start your testing on real hardware you need to download or build a bootable image, this section will explain how to do this.
|
||||
|
||||
(To test on real hardware you need the `*livedisk.iso` image variant)
|
||||
|
||||
### Ready Images
|
||||
|
||||
You can download the weekly images [here](https://static.redox-os.org/img/) or run this command:
|
||||
|
||||
(This is an x86-64 image for Intel/AMD computers)
|
||||
|
||||
```sh
|
||||
wget https://static.redox-os.org/img/x86_64/redox_desktop_x86_64*_livedisk.iso.zst
|
||||
```
|
||||
|
||||
- It's using the `desktop` variant which contains Orbital and some tools.
|
||||
- The `demo` variant contains some games and programs, if you want an advanced testing use this variant.
|
||||
- If you have problems with the `desktop` variant, try the `server` variant.
|
||||
|
||||
(You will need a USB storage device with 4GB or more of space)
|
||||
|
||||
### Linux Instructions
|
||||
|
||||
We recommend that you use the [Popsicle](https://github.com/pop-os/popsicle) tool on Linux to flash your USB device, follow the steps below:
|
||||
|
||||
- Click on [this](https://github.com/pop-os/popsicle/releases) link to open the Popsicle releases page and download the `.AppImage` file of the most recent version.
|
||||
- Open your file manager, click with the right-button of your mouse on the `.AppImage` file and open the "Properties", find the "Permissions" section and mark it as executable.
|
||||
- Open the Popsicle AppImage file, select the downloaded ISO and your USB device (in most cases it's the only available device).
|
||||
- Confirm the flash process and wait until the progress bar reach 100%
|
||||
- If the flash process had no errors it will give a success warning.
|
||||
- Now you can restart your Linux distribution and boot Redox.
|
||||
- Some computers don't come with USB booting enabled, to enable it press the keyboard key to open your UEFI or BIOS setup and allow the booting from USB devices (the name varies from firmware to firmware).
|
||||
- If you don't know the keyboard keys to open your UEFI/BIOS setup or boot menu, press the Esc or F keys (from 1 until 12), if you press the wrong key or got the wrong timing, don't stop your operating system boot process to try again, as it could corrupt your data.
|
||||
|
||||
### Windows Instructions
|
||||
|
||||
We recommend that you use the [Rufus](https://rufus.ie/) tool on Windows to flash your USB device, follow the steps below:
|
||||
|
||||
- Click on [this](https://rufus.ie/) link to open the Rufus website, move the page until the "Download" section and download the latest version.
|
||||
- Open Rufus, select the downloaded ISO, wait the Rufus image scanning, select your USB device and click on "Start".
|
||||
- Confirm the permission to erase the data of your device and wait until the progress bar reach 100%
|
||||
- If it show a choice window with "ISO" and "DD" mode, select the "DD" mode.
|
||||
- If the flash process had no errors it will give a success warning.
|
||||
- Now you can restart your Windows and boot Redox.
|
||||
- Some computers don't come with USB booting enabled, to enable it press the keyboard key to open your UEFI or BIOS setup and allow the booting from USB devices (the name varies from firmware to firmware).
|
||||
- If you don't know the keyboard keys to open your UEFI/BIOS setup or boot menu, press the Esc or F keys (from 1 until 12), if you press the wrong key or got the wrong timing, don't stop your operating system boot process to try again, as it could corrupt your data.
|
||||
|
||||
### Build Your Image
|
||||
|
||||
If you have the Redox build system, run the following command:
|
||||
|
||||
```sh
|
||||
make pull rebuild live
|
||||
```
|
||||
|
||||
This will create the bootable image at `build/your-cpu-arch/livedisk.iso`
|
||||
|
||||
(You will need a USB storage device with 4GB or more of space)
|
||||
|
||||
### Linux Instructions
|
||||
|
||||
We recommend that you use the [Popsicle](https://github.com/pop-os/popsicle) tool on Linux to flash your USB device, follow the steps below:
|
||||
|
||||
- Click on [this](https://github.com/pop-os/popsicle/releases) link to open the Popsicle releases page and download the `.AppImage` file of the most recent version.
|
||||
- Open your file manager, click with the right-button of your mouse on the `.AppImage` file and open the "Properties", find the "Permissions" section and mark it as executable.
|
||||
- Open the Popsicle AppImage file, select the ISO at `build/your-cpu-arch/livedisk.iso` and your USB device (in most cases it's the only available device).
|
||||
- Confirm the flash process and wait until the progress bar reach 100%
|
||||
- If the flash process had no errors it will give a success warning.
|
||||
- Now you can restart your Linux distribution and boot Redox.
|
||||
- Some computers don't come with USB booting enabled, to enable it press the keyboard key to open your UEFI or BIOS setup and allow the booting from USB devices (the name varies from firmware to firmware).
|
||||
- If you don't know the keyboard keys to open your UEFI/BIOS setup or boot menu, press the Esc or F keys (from 1 until 12), if you press the wrong key or got the wrong timing, don't stop your operating system boot process to try again, as it could corrupt your data.
|
||||
|
||||
### Windows Instructions
|
||||
|
||||
We recommend that you use the [Rufus](https://rufus.ie/) tool on Windows to flash your USB device, follow the steps below:
|
||||
|
||||
- Click on [this](https://rufus.ie/) link to open the Rufus website, move the page until the "Download" section and download the latest version.
|
||||
- Open Rufus, select the ISO at `build/your-cpu-arch/livedisk.iso`, wait the Rufus image scanning, select your USB device and click on "Start".
|
||||
- Confirm the permission to erase the data of your device and wait until the progress bar reach 100%
|
||||
- If it show a choice window with "ISO" and "DD" mode, select the "DD" mode.
|
||||
- If the flash process had no errors it will give a success warning.
|
||||
- Now you can restart your Windows and boot Redox.
|
||||
- Some computers don't come with USB booting enabled, to enable it press the keyboard key to open your UEFI or BIOS setup and allow the booting from USB devices (the name varies from firmware to firmware).
|
||||
- If you don't know the keyboard keys to open your UEFI/BIOS setup or boot menu, press the Esc or F keys (from 1 until 12), if you press the wrong key or got the wrong timing, don't stop your operating system boot process to try again, as it could corrupt your data.
|
||||
|
||||
## QEMU
|
||||
|
||||
To start your testing on QEMU you need an harddisk image from the build server or build system, this section will explain how to do this.
|
||||
|
||||
(To test on QEMU you need the `*harddrive.img` image variant)
|
||||
|
||||
### Ready Images
|
||||
|
||||
You can download the weekly images [here](https://static.redox-os.org/img/) or run this command:
|
||||
|
||||
(This is an x86-64 image for Intel/AMD computers)
|
||||
|
||||
```sh
|
||||
wget https://static.redox-os.org/img/x86_64/redox_desktop_x86_64*_harddrive.img.zst
|
||||
```
|
||||
|
||||
- It's using the `desktop` variant which contains Orbital and some tools.
|
||||
- The `demo` variant contains some games and programs, if you want an advanced testing use this variant.
|
||||
- If you have problems with the `desktop` variant, try the `server` variant.
|
||||
|
||||
After the image download, open your terminal and run:
|
||||
|
||||
(You need to have QEMU installed with the `x86_64` emulator)
|
||||
|
||||
```sh
|
||||
SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-x86_64 -d cpu_reset,guest_errors -smp 4 -m 2048 \
|
||||
-chardev stdio,id=debug,signal=off,mux=on,"" -serial chardev:debug -mon chardev=debug \
|
||||
-machine q35 -device ich9-intel-hda -device hda-duplex -netdev user,id=net0 \
|
||||
-device e1000,netdev=net0 -device nec-usb-xhci,id=xhci -enable-kvm -cpu host \
|
||||
-drive file=`echo $HOME/Downloads/redox_desktop_x86_64*_harddrive.img`,format=raw
|
||||
```
|
||||
|
||||
This command will open a QEMU window and boot Redox.
|
||||
|
||||
### Build Your Image
|
||||
|
||||
If you have the Redox build system, run the following command:
|
||||
|
||||
```sh
|
||||
make pull rebuild qemu
|
||||
```
|
||||
|
||||
This command will update the build system, recipes, build a QEMU image and boot Redox.
|
||||
|
||||
## How To Report Errors and Bugs
|
||||
|
||||
Read [this](https://doc.redox-os.org/book/ch08-05-troubleshooting.html#debug-methods) section and send a message on the [chat](https://doc.redox-os.org/book/ch13-01-chat.html) or open a [GitLab issue](https://doc.redox-os.org/book/ch12-05-filing-issues.html).
|
||||
@ -43,9 +43,11 @@ dejavu = {}
|
||||
diffutils = {}
|
||||
expat = {}
|
||||
extrautils = {}
|
||||
file = {}
|
||||
findutils = {}
|
||||
freefont = {}
|
||||
freetype2 = {}
|
||||
gawk = {}
|
||||
gcc13 = {}
|
||||
gettext = {}
|
||||
git = {}
|
||||
@ -100,6 +102,7 @@ smith = {}
|
||||
terminfo = {}
|
||||
userutils = {}
|
||||
uutils = {}
|
||||
uutils-procps = {}
|
||||
vim = {}
|
||||
xz = {}
|
||||
zlib = {}
|
||||
@ -129,13 +132,11 @@ zstd = {}
|
||||
# #dynamic-example = {}
|
||||
# #fal
|
||||
# #fd = {} # ctrlc-3.1.1
|
||||
# #file = {}
|
||||
# #flycast = {}
|
||||
# #freeciv = {}
|
||||
# #freeglut = {}
|
||||
# #friar = {} # mio patch
|
||||
# #game-2048 = {} # rustc-serialize
|
||||
# #gawk = {} # langinfo.h
|
||||
# #gigalomania = {} # old recipe format
|
||||
# #gitoxide = {}
|
||||
# #goaccess = {}
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
# Configuration for Jeremy Soller
|
||||
|
||||
include = ["desktop.toml"]
|
||||
include = ["demo.toml"]
|
||||
|
||||
@ -58,6 +58,7 @@ schemes = [
|
||||
"display.vesa",
|
||||
"display*",
|
||||
# Other schemes
|
||||
"proc",
|
||||
"pty",
|
||||
"sudo",
|
||||
"audio",
|
||||
@ -108,7 +109,7 @@ HOME_URL="https://redox-os.org/"
|
||||
DOCUMENTATION_URL="https://redox-os.org/docs/"
|
||||
SUPPORT_URL="https://redox-os.org/community/"
|
||||
"""
|
||||
# FIXME maybe add VARIANT= and VARIANT_ID= keys depending on the chosen configuration?
|
||||
# VARIANT and BUILD_ID are appended by redox_installer when creating images.
|
||||
|
||||
[[files]]
|
||||
path = "/etc/os-release"
|
||||
|
||||
@ -14,6 +14,7 @@ cosmic-files = {}
|
||||
cosmic-icons = {}
|
||||
cosmic-term = {}
|
||||
dejavu = {}
|
||||
file = {}
|
||||
freefont = {}
|
||||
hicolor-icon-theme = {}
|
||||
installer-gui = {}
|
||||
|
||||
@ -43,6 +43,7 @@ dejavu = {}
|
||||
diffutils = {}
|
||||
expat = {}
|
||||
extrautils = {}
|
||||
file = {}
|
||||
findutils = {}
|
||||
freefont = {}
|
||||
freetype2 = {}
|
||||
@ -94,6 +95,7 @@ smith = {}
|
||||
terminfo = {}
|
||||
userutils = {}
|
||||
uutils = {}
|
||||
uutils-procps = {}
|
||||
xz = {}
|
||||
#vim = {} # conflicting types
|
||||
zlib = {}
|
||||
@ -123,7 +125,6 @@ zlib = {}
|
||||
# #dynamic-example = {}
|
||||
# #fal
|
||||
# #fd = {} # ctrlc-3.1.1
|
||||
# #file = {}
|
||||
# #flycast = {}
|
||||
# #freeciv = {}
|
||||
# #freeglut = {}
|
||||
|
||||
@ -15,6 +15,7 @@ extrautils = {}
|
||||
ion = {}
|
||||
pkgutils = {}
|
||||
kibi = {}
|
||||
uutils-procps = {}
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/30_console"
|
||||
|
||||
@ -43,6 +43,7 @@ dejavu = {}
|
||||
diffutils = {}
|
||||
expat = {}
|
||||
extrautils = {}
|
||||
file = {}
|
||||
findutils = {}
|
||||
freefont = {}
|
||||
freetype2 = {}
|
||||
@ -94,6 +95,7 @@ smith = {}
|
||||
terminfo = {}
|
||||
userutils = {}
|
||||
uutils = {}
|
||||
uutils-procps = {}
|
||||
xz = {}
|
||||
#vim = {} # error compiling ncurses
|
||||
zlib = {}
|
||||
@ -123,7 +125,6 @@ zlib = {}
|
||||
# #dynamic-example = {}
|
||||
# #fal
|
||||
# #fd = {} # ctrlc-3.1.1
|
||||
# #file = {}
|
||||
# #flycast = {}
|
||||
# #freeciv = {}
|
||||
# #freeglut = {}
|
||||
|
||||
@ -15,6 +15,7 @@ bottom = {}
|
||||
curl = {}
|
||||
diffutils = {}
|
||||
findutils = {}
|
||||
gettext = {}
|
||||
git = {}
|
||||
installer = {}
|
||||
kibi = {}
|
||||
|
||||
@ -14,11 +14,12 @@ filesystem_size = 2048
|
||||
adwaita-icon-theme = {}
|
||||
dbus = {}
|
||||
gtk3 = {}
|
||||
mate-common = {}
|
||||
libxcursor = {} # loaded dynamically
|
||||
#mate-common = {}
|
||||
mesa-demos-x11 = {}
|
||||
#firefox = {}
|
||||
#webkitgtk3 = {} # not compiling
|
||||
#xfce4-panel = {}
|
||||
#xfwm4 = {}
|
||||
xfce4-full = {}
|
||||
x11-full = {}
|
||||
zenity = {}
|
||||
|
||||
@ -59,6 +60,28 @@ requires_weak 10_dbus 10_xenv 20_audiod.service
|
||||
nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-x11
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/run/user/0"
|
||||
data = ""
|
||||
directory = true
|
||||
mode = 0o700
|
||||
|
||||
[[files]]
|
||||
path = "/home/root/.config/dconf"
|
||||
data = ""
|
||||
directory = true
|
||||
|
||||
[[files]]
|
||||
path = "/home/root/Desktop"
|
||||
data = ""
|
||||
directory = true
|
||||
|
||||
|
||||
[[files]]
|
||||
path = "/usr/share/X11/xorg.conf.d"
|
||||
data = ""
|
||||
directory = true
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin/orbital-x11"
|
||||
mode = 0o755
|
||||
@ -70,11 +93,12 @@ set -ex
|
||||
# for ice authority and pixbuf
|
||||
export HOME=/home/root
|
||||
export XDG_DATA_DIRS=/usr/share
|
||||
export XDG_RUNTIME_DIR=/run/user/0
|
||||
export XDG_CONFIG_HOME=/home/root/.config
|
||||
|
||||
# Generate config file
|
||||
WIDTH="$((0x$(grep FRAMEBUFFER_WIDTH /scheme/sys/env | cut -d '=' -f 2)))"
|
||||
HEIGHT="$((0x$(grep FRAMEBUFFER_HEIGHT /scheme/sys/env | cut -d '=' -f 2)))"
|
||||
mkdir -p /usr/share/X11/xorg.conf.d
|
||||
cat > /usr/share/X11/xorg.conf.d/orbital.conf <<EOF
|
||||
Section "Device"
|
||||
Identifier "Configured Video Device"
|
||||
@ -105,22 +129,43 @@ EOF
|
||||
export DISPLAY=":0"
|
||||
X "${DISPLAY}" &
|
||||
sleep 1
|
||||
exec dbus-launch --exit-with-x11 orbital-x11-session
|
||||
exec dbus-launch --exit-with-x11 xfce4-x11-session
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin/orbital-x11-session"
|
||||
path = "/usr/bin/mate-x11-session"
|
||||
mode = 0o755
|
||||
data = """
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
gdk-pixbuf-query-loaders --update-cache
|
||||
/usr/libexec/dconf-service &
|
||||
|
||||
xterm&
|
||||
sleep 1
|
||||
#zenity --info --text="running mate as $(id)!"
|
||||
#exec marco
|
||||
exec mate-session
|
||||
"""
|
||||
|
||||
|
||||
[[files]]
|
||||
path = "/usr/bin/xfce4-x11-session"
|
||||
mode = 0o755
|
||||
data = """
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
|
||||
gdk-pixbuf-query-loaders --update-cache
|
||||
mate-session&
|
||||
/usr/lib/xfce4/xfconf/xfconfd &
|
||||
/usr/lib/tumbler-1/tumblerd &
|
||||
/usr/libexec/upowerd &
|
||||
xfsettingsd &
|
||||
|
||||
xterm&
|
||||
#zenity --info --text="running xfce4 as $(id)!"
|
||||
#exec xfwm4
|
||||
exec xfce4-session
|
||||
"""
|
||||
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@ prompt = false
|
||||
# Meta-packages below
|
||||
|
||||
auto-test = {}
|
||||
autotools = {}
|
||||
dev-essential = {}
|
||||
dev-redox = {}
|
||||
llvm21-common = {}
|
||||
@ -21,11 +22,14 @@ mate-common = {}
|
||||
redox-tests = {}
|
||||
x11-minimal = {}
|
||||
x11-full = {}
|
||||
xfce4-common = {}
|
||||
xfce4-full = {}
|
||||
|
||||
# Normal packages below
|
||||
|
||||
acid = {}
|
||||
adwaita-icon-theme = {}
|
||||
atk = {}
|
||||
autoconf = {}
|
||||
automake = {}
|
||||
base = {}
|
||||
@ -33,24 +37,32 @@ bash = {}
|
||||
bash-completion = {}
|
||||
binutils = {}
|
||||
bootloader = {}
|
||||
boxedwine = {}
|
||||
bottom = {}
|
||||
bzip2 = {}
|
||||
ca-certificates = {}
|
||||
cairo = {}
|
||||
cairo-demo = {}
|
||||
cbindgen = {}
|
||||
classicube = {}
|
||||
clang21 = {}
|
||||
cleye = {}
|
||||
cmake = {}
|
||||
cmatrix = {}
|
||||
composer = {}
|
||||
contain = {}
|
||||
coreutils = {}
|
||||
cosmic-edit = {}
|
||||
cosmic-files = {}
|
||||
cosmic-icons = {}
|
||||
cosmic-reader = {}
|
||||
cosmic-term = {}
|
||||
cosmic-text = {}
|
||||
cpal = {}
|
||||
curl = {}
|
||||
dash = {}
|
||||
dejavu = {}
|
||||
devilutionx = {}
|
||||
diffutils = {}
|
||||
dosbox = {}
|
||||
duktape = {}
|
||||
@ -59,28 +71,44 @@ exampled = {}
|
||||
expat = {}
|
||||
extrautils = {}
|
||||
ffmpeg6 = {}
|
||||
file = {}
|
||||
findutils = {}
|
||||
firefox = {}
|
||||
fish-shell = {}
|
||||
flycast = {}
|
||||
fontconfig = {}
|
||||
freeciv = {}
|
||||
freedoom = {}
|
||||
freefont = {}
|
||||
freepats = {}
|
||||
freetype2 = {}
|
||||
fribidi = {}
|
||||
gawk = {}
|
||||
gcc13 = {}
|
||||
gdbserver = {}
|
||||
gdk-pixbuf = {}
|
||||
gears = {}
|
||||
generaluser-gs = {}
|
||||
gettext = {}
|
||||
gigalomania = {}
|
||||
git = {}
|
||||
glib = {}
|
||||
glutin = {}
|
||||
gnu-binutils = {}
|
||||
gnu-grep = {}
|
||||
gnu-make = {}
|
||||
goaccess = {}
|
||||
gobject-introspection = {}
|
||||
gitoxide = {}
|
||||
gstreamer = {}
|
||||
harfbuzz = {}
|
||||
hicolor-icon-theme = {}
|
||||
helix = {}
|
||||
hello-redox = {}
|
||||
hf = {}
|
||||
htop = {}
|
||||
jansson = {}
|
||||
jq = {}
|
||||
installer = {}
|
||||
installer-gui = {}
|
||||
intel-one-mono = {}
|
||||
@ -88,22 +116,33 @@ ion = {}
|
||||
kernel = {}
|
||||
kibi = {}
|
||||
lci = {}
|
||||
libarchive = {}
|
||||
libatomic = {}
|
||||
libavif = {}
|
||||
libc-bench = {}
|
||||
libedit = {}
|
||||
libffi = {}
|
||||
libflac = {}
|
||||
libgcc = {}
|
||||
libgmp = {}
|
||||
libiconv = {}
|
||||
libicu = {}
|
||||
libjpeg = {}
|
||||
libmodplug1 = {}
|
||||
libmpfr = {}
|
||||
libnettle = {}
|
||||
libogg = {}
|
||||
libonig = {}
|
||||
liborbital = {}
|
||||
libpsl = {}
|
||||
libpng = {}
|
||||
libsodium = {}
|
||||
libssh2 = {}
|
||||
libstdcxx = {}
|
||||
libtool = {}
|
||||
libuuid = {}
|
||||
liburcu = {}
|
||||
libuv = {}
|
||||
libvorbis = {}
|
||||
libwebp = {}
|
||||
libxkbcommon = {}
|
||||
@ -112,14 +151,20 @@ libxml2 = {}
|
||||
llvm21 = {}
|
||||
lsd = {}
|
||||
lua54 = {}
|
||||
lua-compat-53 = {}
|
||||
luajit = {}
|
||||
luarocks = {}
|
||||
lz4 = {}
|
||||
mednafen = {}
|
||||
mesa = {}
|
||||
mesa-glu = {}
|
||||
mesa-demos-x11 = {}
|
||||
mgba = {}
|
||||
miniserve = {}
|
||||
mpc = {}
|
||||
nano = {}
|
||||
nasm = {}
|
||||
ncdu = {}
|
||||
ncurses = {}
|
||||
ncursesw = {}
|
||||
neovim = {}
|
||||
@ -133,6 +178,7 @@ nodejs-21 = {}
|
||||
nushell = {}
|
||||
onefetch = {}
|
||||
openjazz = {}
|
||||
openjk = {}
|
||||
openssh = {}
|
||||
openssl1 = {}
|
||||
openssl3 = {}
|
||||
@ -140,6 +186,7 @@ openttd = {}
|
||||
openttd-opengfx = {}
|
||||
openttd-openmsx = {}
|
||||
openttd-opensfx = {}
|
||||
opentyrian = {}
|
||||
orbclient = {}
|
||||
orbdata = {}
|
||||
orbital = {}
|
||||
@ -147,22 +194,30 @@ orbterm = {}
|
||||
orbutils = {}
|
||||
os-test-bins = {}
|
||||
osdemo = {}
|
||||
pango = {}
|
||||
patch = {}
|
||||
patchelf = {}
|
||||
pcre = {}
|
||||
pcre2 = {}
|
||||
perg = {}
|
||||
periodictable = {}
|
||||
perl5 = {}
|
||||
php84 = {}
|
||||
pixelcannon = {}
|
||||
pixman = {}
|
||||
pkg-config = {}
|
||||
pkgar = {}
|
||||
pkgutils = {}
|
||||
pls = {}
|
||||
pop-icon-theme = {}
|
||||
powerline = {}
|
||||
prboom = {}
|
||||
procedural-wallpapers-rs = {}
|
||||
profiled = {}
|
||||
profiling-kernel = {}
|
||||
python312 = {}
|
||||
qemu = {}
|
||||
quakespasm = {}
|
||||
readline = {}
|
||||
redox-fatfs = {}
|
||||
redox-games = {}
|
||||
@ -178,6 +233,7 @@ rust = {}
|
||||
rust64 = {}
|
||||
rustpython = {}
|
||||
rustual-boy = {}
|
||||
rvvm = {}
|
||||
scummvm = {}
|
||||
sdl-gfx = {}
|
||||
sdl1 = {}
|
||||
@ -203,6 +259,7 @@ sopwith = {}
|
||||
sqlite3 = {}
|
||||
strace = {}
|
||||
syobonaction = {}
|
||||
tcl = {}
|
||||
terminfo = {}
|
||||
timidity = {}
|
||||
tmux = {}
|
||||
@ -210,10 +267,13 @@ tokei = {}
|
||||
ttf-hack = {}
|
||||
userutils = {}
|
||||
uutils = {}
|
||||
uutils-procps = {}
|
||||
vim = {}
|
||||
vttest = {}
|
||||
wasmtime = {}
|
||||
wayland-rs = {}
|
||||
webkitgtk3 = {}
|
||||
wget = {}
|
||||
winit = {}
|
||||
winit-wayland = {}
|
||||
xxhash = {}
|
||||
@ -224,103 +284,41 @@ zsh = {}
|
||||
zlib = {}
|
||||
zstd = {}
|
||||
|
||||
#"python312.dev" = {}
|
||||
#"rust.doc" = {}
|
||||
#atk = {} # depends on glib which does not build
|
||||
#benchmarks = {}
|
||||
#binutils-gdb = {}
|
||||
#book = {}
|
||||
#cairo-demo = {} # linking errors
|
||||
#classicube = {}
|
||||
#cmake = {}
|
||||
#cmatrix = {} # needs ncursesw now
|
||||
#cookbook = {}
|
||||
#cosmic-reader = {}
|
||||
#cosmic-settings = {}
|
||||
#cosmic-store = {}
|
||||
#devilutionx = {}
|
||||
#dynamic-example = {}
|
||||
#fal
|
||||
#fd = {} # ctrlc-3.1.1
|
||||
#file = {}
|
||||
#flycast = {}
|
||||
#freeciv = {}
|
||||
#freeglut = {}
|
||||
#friar = {} # mio patch
|
||||
#game-2048 = {} # rustc-serialize
|
||||
#gawk = {} # langinfo.h
|
||||
#gigalomania = {} # old recipe format
|
||||
#gitoxide = {}
|
||||
#goaccess = {}
|
||||
#gstreamer = {} # conflict with thread local errno
|
||||
#harfbuzz = {} # depends on glib which does not build
|
||||
#helix = {}
|
||||
#hello-redox = {}
|
||||
#hematite = {} # needs crate patches for redox-unix
|
||||
#hf = {}
|
||||
#ibm-plex = {}
|
||||
#iced = {}
|
||||
#jansson = {} # needs config.sub update
|
||||
#jq = {}
|
||||
#libarchive = {}
|
||||
#libatomic = {}
|
||||
#libcosmic = {}
|
||||
#libflac = {}
|
||||
#libmodplug1 = {}
|
||||
#libmpfr = {}
|
||||
#libnettle = {}
|
||||
#libogg = {}
|
||||
#libpsl = {}
|
||||
#libssh2 = {}
|
||||
#libtool = {}
|
||||
#liburcu = {}
|
||||
#libuv = {}
|
||||
#lua-compat-53 = {}
|
||||
#luajit = {}
|
||||
#luarocks = {}
|
||||
#luv = {}
|
||||
#mdp = {} # gcc hangs
|
||||
#miniserve = {} # actix
|
||||
#mpc = {}
|
||||
#mupen64plus = {}
|
||||
#ncdu = {} # multiple definitions of symbols
|
||||
#newlib = {} # obsolete
|
||||
#newlibtest = {} # obsolete
|
||||
#noto-color-emoji = {}
|
||||
#openjk = {}
|
||||
#openposixtestsuite = {}
|
||||
#opentyrian = {}
|
||||
#orbcalculator = {}
|
||||
#ostest-bins = {}
|
||||
#pango = {} # undefined references to std::__throw_system_error(int)
|
||||
#pastel = {} # needs crate patches for redox-unix
|
||||
#pathfinder = {} # servo-fontconfig
|
||||
#pciids = {}
|
||||
#pcre2 = {}
|
||||
#pixman = {} # depends on glib which does not build
|
||||
#pls = {}
|
||||
#pop-wallpapers = {}
|
||||
#powerline = {} # dirs
|
||||
#qemu = {} # can be built, but not working
|
||||
#quakespasm = {}
|
||||
#redox-posix-tests = {}
|
||||
#redox-ssh = {} # does not compile
|
||||
#retroarch = {} # OS_TLSIndex not declared
|
||||
#retroarch = {} # cannot locate GL
|
||||
#rust-cairo = {} # linking errors
|
||||
#rust-cairo-demo = {} # linking errors
|
||||
#rvvm = {}
|
||||
#schismtracker = {} # uses system includes
|
||||
#sdl-player = {} # wctype_t
|
||||
#sdl2-gfx = {}
|
||||
#sm64ex = {}
|
||||
#spacecadetpinball = {}
|
||||
#twin-commander = {}
|
||||
#ubuntu-wallpapers = {}
|
||||
#unibilium = {}
|
||||
#utf8proc = {}
|
||||
#vice = {} # linker errors
|
||||
#vvvvvv = {} # did not compile
|
||||
#webrender = {} # unwind
|
||||
#website = {}
|
||||
#wesnoth = {}
|
||||
#wget = {}
|
||||
|
||||
@ -10,17 +10,20 @@ filesystem_size = 1536
|
||||
# Package settings
|
||||
[packages]
|
||||
# GUI Apps
|
||||
cosmic-reader = {}
|
||||
periodictable = {}
|
||||
|
||||
# GUI Data
|
||||
intel-one-mono = {}
|
||||
|
||||
# Shell Apps
|
||||
gawk = {}
|
||||
gnu-grep = {}
|
||||
htop = {}
|
||||
ripgrep = {}
|
||||
terminfo = {}
|
||||
vim = {}
|
||||
wget = {}
|
||||
|
||||
# Games
|
||||
dosbox = {}
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
|
||||
overlays = [ rust-overlay.overlays.default ];
|
||||
};
|
||||
rust-bin = pkgs.rust-bin.nightly."2025-10-03".default.override {
|
||||
rust-bin = pkgs.rust-bin.nightly."2026-05-24".default.override {
|
||||
extensions = [
|
||||
"rust-analyzer"
|
||||
"rust-src"
|
||||
|
||||
2
mk/ci.mk
2
mk/ci.mk
@ -4,7 +4,7 @@ IMG_TAG?=$(shell git describe --tags)
|
||||
IMG_SEPARATOR?=_
|
||||
IMG_DIR?=build/img/$(ARCH)
|
||||
OS_TEST_DIR?=build/os-test/$(ARCH)
|
||||
CI_COOKBOOK_CONFIG?=CI=1 COOKBOOK_LOGS=true COOKBOOK_CLEAN_BUILD=true COOKBOOK_VERBOSE=false COOKBOOK_COMPRESSED=true
|
||||
CI_COOKBOOK_CONFIG?=CI=1 COOKBOOK_LOGS=true COOKBOOK_CLEAN_BUILD=true COOKBOOK_VERBOSE=false COOKBOOK_COMPRESSED=true COOKBOOK_WEB=true
|
||||
|
||||
# CI image target - build standard images
|
||||
# To leave out the build tag, set both IMG_TAG and IMG_SEPARATOR to null
|
||||
|
||||
@ -172,7 +172,7 @@ FSTOOLS=build/fstools
|
||||
INSTALLER=$(FSTOOLS)/bin/redox_installer
|
||||
REDOXFS=$(FSTOOLS)/bin/redoxfs
|
||||
REDOXFS_MKFS=$(FSTOOLS)/bin/redoxfs-mkfs
|
||||
INSTALLER_OPTS=--cookbook=.
|
||||
INSTALLER_OPTS=--cookbook=. --config-name=$(CONFIG_NAME)
|
||||
INSTALLER_FEATURES=
|
||||
REDOXFS_FEATURES=
|
||||
COOKBOOK_OPTS="--filesystem=$(FILESYSTEM_CONFIG)"
|
||||
|
||||
@ -94,8 +94,12 @@ ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
@sync
|
||||
-$(FUMOUNT) $(MOUNT_DIR)
|
||||
ifneq ($(wildcard $(MOUNT_DIR)),)
|
||||
$(FUMOUNT) $(MOUNT_DIR)
|
||||
@rm -rf $(MOUNT_DIR)
|
||||
@-$(FUMOUNT) /tmp/redox_installer 2>/dev/null || true
|
||||
@echo "\033[1;36;49mFilesystem unmounted\033[0m"
|
||||
else
|
||||
@echo "\033[1;36;49mDisk is not mounted\033[0m"
|
||||
endif
|
||||
@-$(FUMOUNT) /tmp/redox_installer 2>/dev/null || true
|
||||
endif
|
||||
|
||||
@ -32,7 +32,7 @@ fstools_fetch: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
$(REPO_BIN) fetch installer redoxfs
|
||||
$(REPO_BIN) fetch host:installer host:redoxfs
|
||||
endif
|
||||
|
||||
CARGO_OFFLINE_FLAG=
|
||||
|
||||
@ -16,7 +16,7 @@ endif
|
||||
|
||||
# Cache layers to redox-os docker hub
|
||||
PODMAN_CACHE=
|
||||
PODMAN_CACHE_PATH=docker.io/redoxos/$(IMAGE_TAG)
|
||||
PODMAN_CACHE_PATH?=docker.io/redoxos/$(IMAGE_TAG)-$(HOST_ARCH)
|
||||
|
||||
PODMAN_CACHE_PULL?=1
|
||||
ifeq ($(PODMAN_CACHE_PULL),1)
|
||||
|
||||
32
mk/prefix.mk
32
mk/prefix.mk
@ -14,9 +14,19 @@ LLVM_TARGET=recipes/dev/llvm21/target/$(HOST_TARGET)/$(TARGET)
|
||||
RUST_TARGET=recipes/dev/rust/target/$(HOST_TARGET)/$(TARGET)
|
||||
CLANG_TARGET=recipes/dev/clang21/target/$(HOST_TARGET)/$(TARGET)
|
||||
LLD_TARGET=recipes/dev/lld21/target/$(HOST_TARGET)/$(TARGET)
|
||||
# dependencies of GCC and Rust
|
||||
LIBGMP_TARGET=recipes/libs/libgmp/target/$(HOST_TARGET)/$(TARGET)
|
||||
LIBMPFR_TARGET=recipes/libs/libmpfr/target/$(HOST_TARGET)/$(TARGET)
|
||||
LIBMPC_TARGET=recipes/libs/mpc/target/$(HOST_TARGET)/$(TARGET)
|
||||
LIBZLIB_TARGET=recipes/libs/zlib/target/$(HOST_TARGET)/$(TARGET)
|
||||
LIBZSTD_TARGET=recipes/libs/zstd/target/$(HOST_TARGET)/$(TARGET)
|
||||
LIBSSL_TARGET=recipes/libs/openssl3/target/$(HOST_TARGET)/$(TARGET)
|
||||
LIBHTTP2_TARGET=recipes/libs/nghttp2/target/$(HOST_TARGET)/$(TARGET)
|
||||
LIBCURL_TARGET=recipes/net/download/curl/target/$(HOST_TARGET)/$(TARGET)
|
||||
LIBGCC_TARGET=recipes/libs/libgcc/target/$(TARGET)
|
||||
LIBCPP_TARGET=recipes/libs/libstdcxx/target/$(TARGET)
|
||||
|
||||
# official RISC-V support introduced in newer version
|
||||
UPSTREAM_RUSTC_VERSION=2025-11-15
|
||||
UPSTREAM_RUSTC_VERSION=2026-05-24
|
||||
|
||||
export PREFIX_RUSTFLAGS=-L $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/lib
|
||||
export RUSTUP_TOOLCHAIN=$(ROOT)/$(PREFIX_INSTALL)
|
||||
@ -28,13 +38,19 @@ prefix: $(PREFIX)/sysroot
|
||||
# Remove prefix builds and downloads
|
||||
prefix_clean:
|
||||
rm -rf $(PREFIX)
|
||||
ifeq ($(PREFIX_BINARY),0)
|
||||
rm -rf $(BINUTILS_TARGET) $(LIBTOOL_TARGET) $(GCC_TARGET) $(LIBSTDCXX_TARGET) $(RELIBC_FREESTANDING_TARGET)
|
||||
rm -rf $(RELIBC_TARGET) $(LLVM_TARGET) $(RUST_TARGET) $(CLANG_TARGET) $(LLD_TARGET) $(LIBGMP_TARGET) $(LIBMPFR_TARGET)
|
||||
rm -rf $(LIBMPC_TARGET) $(LIBZLIB_TARGET) $(LIBZSTD_TARGET) $(LIBSSL_TARGET) $(LIBHTTP2_TARGET) $(LIBCURL_TARGET)
|
||||
rm -rf $(LIBGCC_TARGET) $(LIBCPP_TARGET)
|
||||
endif
|
||||
|
||||
# Remove relibc in sysroot and all statically linked recipes
|
||||
static_clean: | $(FSTOOLS_TAG)
|
||||
$(MAKE) c.relibc
|
||||
$(MAKE) c.base,base-initfs,extrautils,kernel,redoxfs
|
||||
$(MAKE) c.bash,luajit,gettext,openssl1,openssl3,pcre2,sdl1,zstd,zlib,bzip2,xz
|
||||
$(MAKE) c.expat,freetype2,libffi,libiconv,libjpeg,liborbital,libpng,libxml2,ncurses,ncursesw
|
||||
$(MAKE) c.base,extrautils,kernel,redoxfs
|
||||
$(MAKE) c.luajit,gettext,libgcc,libstdcxx,openssl1,openssl3,pcre2,sdl1,zstd,zlib,bzip2,xz
|
||||
$(MAKE) c.expat,freetype2,libffi,libiconv,libjpeg,liborbital,libpng,libxml2,ncurses,ncursesw,termcap
|
||||
rm -rf $(REPO_TAG)
|
||||
|
||||
$(PREFIX)/sysroot: $(PREFIX)/clang-install $(PREFIX)/rust-install $(PREFIX)/gcc-install | $(FSTOOLS_TAG) $(CONTAINER_TAG)
|
||||
@ -375,14 +391,14 @@ endif
|
||||
# BUILD RUST ---------------------------------------------------
|
||||
else
|
||||
|
||||
$(PREFIX)/rust-install: | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG)
|
||||
$(PREFIX)/rust-install: | $(PREFIX)/gcc-install $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG)
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
@echo "\033[1;36;49mBuilding rust-install\033[0m"
|
||||
rm -rf "$@.partial" "$@"
|
||||
export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \
|
||||
$(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \
|
||||
export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$(ROOT)/$(PREFIX)/gcc-install/bin:$$PATH" \
|
||||
$(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \
|
||||
$(REPO_BIN) cook host:llvm21 host:rust
|
||||
cp -r "$(RUST_TARGET)/stage/usr/". "$@.partial"
|
||||
cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial"
|
||||
|
||||
@ -375,4 +375,10 @@ $(BUILD)/qemu_uboot.rom:
|
||||
wget -O $@ https://gitlab.redox-os.org/Ivan/redox_firmware/-/raw/main/platform/qemu/qemu_arm64/u-boot-qemu-arm64.bin
|
||||
|
||||
qemu: qemu-deps
|
||||
ifeq ($(wildcard $(MOUNT_DIR)),)
|
||||
$(QEMU) $(QEMUFLAGS)
|
||||
else
|
||||
@echo "\033[1;38;5;196mDisk is mounted. Unmounting the disk...\033[0m";
|
||||
$(MAKE) unmount
|
||||
$(QEMU) $(QEMUFLAGS)
|
||||
endif
|
||||
|
||||
157
mk/repo.mk
157
mk/repo.mk
@ -38,7 +38,7 @@ else
|
||||
endif
|
||||
|
||||
# Fetch all recipes source or binary from filesystem config
|
||||
fetch: $(FSTOOLS_TAG) FORCE
|
||||
fetch: prefix $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
@ -47,6 +47,14 @@ else
|
||||
$(REPO_BIN) fetch $(COOKBOOK_OPTS) --with-package-deps
|
||||
endif
|
||||
|
||||
# Unfetch and clean all recipes source or binary from filesystem config
|
||||
unfetch: prefix $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
$(REPO_BIN) unfetch $(COOKBOOK_OPTS) --with-package-deps
|
||||
endif
|
||||
|
||||
# Fetch Cargo dependencies for the cookbook tool (needed for REPO_OFFLINE=1 builds)
|
||||
cargo-fetch: FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
@ -82,7 +90,7 @@ else
|
||||
endif
|
||||
|
||||
# Invoke fetch for one or more targets separated by comma
|
||||
f.%: $(FSTOOLS_TAG) FORCE
|
||||
f.%: prefix $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
@ -124,7 +132,7 @@ endif
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@ ALLOW_FSTOOLS=$(FSTOOLS_IN_PODMAN)
|
||||
else
|
||||
$(REPO_BIN) push $(foreach f,$(subst $(comma), ,$*),$(f)) "--sysroot=$(MOUNT_DIR)"
|
||||
$(REPO_BIN) push $(foreach f,$(subst $(comma), ,$*),$(f)) "--sysroot=$(MOUNT_DIR)" $(COOKBOOK_OPTS)
|
||||
endif
|
||||
ifeq ($(ALLOW_FSTOOLS),1)
|
||||
@if [ -f $(MOUNTED_TAG) ]; then \
|
||||
@ -176,7 +184,7 @@ else
|
||||
$(REPO_BIN) unfetch $(foreach f,$(subst $(comma), ,$*),$(f))
|
||||
endif
|
||||
|
||||
# Invoke clean, and repo.sh for one of more targets separated by comma
|
||||
# Invoke clean, and rebuild for one of more targets separated by comma
|
||||
cr.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
@ -185,7 +193,7 @@ else
|
||||
$(MAKE) r.$*
|
||||
endif
|
||||
|
||||
# Invoke unfetch, clean, and repo.sh for one or more targets separated by comma
|
||||
# Invoke unfetch, clean, and rebuild for one or more targets separated by comma
|
||||
ucr.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
@ -212,22 +220,155 @@ else
|
||||
$(MAKE) f.$*
|
||||
endif
|
||||
|
||||
# Invoke repo.sh and push for one of more targets separated by comma
|
||||
# Invoke rebuild and push for one of more targets separated by comma
|
||||
# Don't use podman here, as the p target cannot mount inside podman
|
||||
rp.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) r.$*,--with-package-deps
|
||||
$(MAKE) p.$*
|
||||
|
||||
# Invoke clean, repo.sh and push for one of more targets separated by comma
|
||||
# Invoke clean, rebuild and push for one of more targets separated by comma
|
||||
crp.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) cr.$*,--with-package-deps
|
||||
$(MAKE) p.$*
|
||||
|
||||
# Invoke unfetch. clean, repo.sh and push for one of more targets separated by comma
|
||||
# Invoke unfetch. clean, rebuild and push for one of more targets separated by comma
|
||||
ucrp.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) ucr.$*,--with-package-deps
|
||||
$(MAKE) p.$*
|
||||
|
||||
ifeq ($(HOSTED_REDOX),1)
|
||||
DESTDIR?=/
|
||||
|
||||
# Install all recipes specified by the filesystem config
|
||||
install:
|
||||
$(REPO_BIN) push $(COOKBOOK_OPTS) --with-package-deps "--sysroot=$(DESTDIR)"
|
||||
|
||||
# Rebuild and install all recipes specified by the filesystem config
|
||||
rebuild-install: $(FSTOOLS_TAG) FORCE
|
||||
rm -f $(REPO_TAG)
|
||||
$(MAKE) repo
|
||||
$(MAKE) install
|
||||
|
||||
i.%: $(FSTOOLS_TAG) FORCE
|
||||
$(REPO_BIN) push $(COOKBOOK_OPTS) --with-package-deps "--sysroot=$(DESTDIR)"
|
||||
|
||||
# Invoke rebuild and install for one of more targets separated by comma
|
||||
ri.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) r.$*,--with-package-deps
|
||||
$(MAKE) i.$*
|
||||
|
||||
# Invoke clean, rebuild and install for one of more targets separated by comma
|
||||
cri.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) cr.$*,--with-package-deps
|
||||
$(MAKE) i.$*
|
||||
|
||||
# Invoke unfetch. clean, rebuild and install for one of more targets separated by comma
|
||||
ucri.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) ucr.$*,--with-package-deps
|
||||
$(MAKE) i.$*
|
||||
endif
|
||||
|
||||
# Set recipe rule to "binary" then invoke clean
|
||||
bc.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
$(REPO_BIN) change-rule --set-rule=binary $(foreach f,$(subst $(comma), ,$*),$(f)) --with-package-deps
|
||||
endif
|
||||
|
||||
# Set recipe rule to "source" then invoke clean
|
||||
sc.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
$(REPO_BIN) change-rule --set-rule=source $(foreach f,$(subst $(comma), ,$*),$(f)) --with-package-deps
|
||||
endif
|
||||
|
||||
# Set specific recipe rule to "local" then invoke clean
|
||||
lc.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
$(REPO_BIN) change-rule-local --set-rule=local $(foreach f,$(subst $(comma), ,$*),$(f))
|
||||
endif
|
||||
|
||||
# Set specific recipe rule to "ignore" then invoke clean
|
||||
nc.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
$(REPO_BIN) change-rule-local --set-rule=ignore $(foreach f,$(subst $(comma), ,$*),$(f))
|
||||
endif
|
||||
|
||||
# Reset recipe rule then invoke clean
|
||||
cc.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
$(REPO_BIN) change-rule --unset $(foreach f,$(subst $(comma), ,$*),$(f)) --with-package-deps
|
||||
endif
|
||||
|
||||
# Set recipe rule to "binary" then invoke clean and rebuild
|
||||
bcr.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) bc.$*
|
||||
$(MAKE) r.$*,--with-package-deps
|
||||
|
||||
# Set recipe rule to "source" then invoke clean and rebuild
|
||||
scr.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) sc.$*
|
||||
$(MAKE) r.$*,--with-package-deps
|
||||
|
||||
# Set specific recipe rule to "local" then invoke clean and rebuild
|
||||
lcr.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) lc.$*
|
||||
$(MAKE) r.$*
|
||||
|
||||
# Set specific recipe rule to "ignore" then invoke clean and rebuild
|
||||
ncr.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) nc.$*
|
||||
$(MAKE) r.$*
|
||||
|
||||
# Set recipe rule to "binary" then invoke clean, rebuild and push
|
||||
bcrp.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) bcr.$*
|
||||
$(MAKE) p.$*
|
||||
|
||||
# Set recipe rule to "source" then invoke clean, rebuild and push
|
||||
scrp.%: $(FSTOOLS_TAG) FORCE
|
||||
$(MAKE) scr.$*
|
||||
$(MAKE) p.$*
|
||||
|
||||
# Save current git rev for next recipe fetch, locking git recipes frozen in time
|
||||
repo-lock: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
$(REPO_BIN) capture-rev $(COOKBOOK_OPTS) --with-package-deps
|
||||
endif
|
||||
|
||||
# Undo repo-lock, allowing git recipes to get updated by next recipe fetch
|
||||
repo-unlock: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
$(REPO_BIN) capture-rev $(COOKBOOK_OPTS) --unset --with-package-deps
|
||||
endif
|
||||
|
||||
# Like repo-lock, but also checking out the specified git rev.
|
||||
# Revert this operation by "git checkout master" "make pull" then "make repo-unlock".
|
||||
# Will not work if rolling back to a commit before 2026.
|
||||
repo-rollback.%: $(FSTOOLS_TAG) FORCE
|
||||
ifeq ($(PODMAN_BUILD),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
# have to be done otherwise podman will rebuild
|
||||
touch $(CONTAINER_TAG)
|
||||
else
|
||||
git checkout $*
|
||||
$(REPO_BIN) capture-rev $(COOKBOOK_OPTS) --rollback --with-package-deps
|
||||
endif
|
||||
# have to be done otherwise cookbook will rebuild
|
||||
touch $(FSTOOLS_TAG)
|
||||
|
||||
export DEBUG_BIN?=
|
||||
|
||||
# Debug a statically linked program with gdbgui, for example: debug.drivers-initfs DEBUG_BIN=pcid
|
||||
|
||||
@ -337,7 +337,7 @@ archLinux()
|
||||
zip"
|
||||
|
||||
if [ "$1" == "qemu" ]; then
|
||||
packages="$packages qemu-system-x86 qemu-system-arm qemu-system-riscv"
|
||||
packages="$packages qemu-desktop qemu-system-arm qemu-system-riscv"
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
packages="$packages virtualbox"
|
||||
else
|
||||
@ -456,9 +456,12 @@ ubuntu()
|
||||
if [ "$1" == "qemu" ]; then
|
||||
if [ -z "$(which qemu-system-x86_64)" ]; then
|
||||
echo "Installing QEMU..."
|
||||
if apt-cache show qemu-system-riscv > /dev/null 2>&1
|
||||
then riscv="qemu-system-riscv" # ubuntu 26 / debian 13
|
||||
else riscv="qemu-system-riscv64" # ubuntu 24 / debian 12
|
||||
fi
|
||||
sudo $install_command qemu-system-x86 qemu-kvm \
|
||||
qemu-system-arm qemu-efi-aarch64 \
|
||||
qemu-system-riscv
|
||||
qemu-system-arm qemu-efi-aarch64 $riscv
|
||||
else
|
||||
echo "QEMU already installed!"
|
||||
fi
|
||||
@ -1144,12 +1147,12 @@ else
|
||||
# SUSE and derivatives
|
||||
elif hash 2>/dev/null zypper; then
|
||||
suse "$emulator"
|
||||
# Debian or any derivative of it
|
||||
elif hash 2>/dev/null apt-get; then
|
||||
ubuntu "$emulator" "$noninteractive" "$defpackman"
|
||||
# Fedora
|
||||
elif hash 2>/dev/null dnf; then
|
||||
fedora "$emulator" "$noninteractive"
|
||||
# Debian or any derivative of it
|
||||
elif hash 2>/dev/null apt-get; then
|
||||
ubuntu "$emulator" "$noninteractive" "$defpackman"
|
||||
# Gentoo
|
||||
elif hash 2>/dev/null emerge; then
|
||||
gentoo "$emulator"
|
||||
@ -1168,7 +1171,7 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
cargoInstall just 1.42.4
|
||||
cargoInstall just 1.50.0
|
||||
cargoInstall cbindgen 0.29.0
|
||||
|
||||
if [ "$dependenciesonly" = false ]; then
|
||||
|
||||
@ -6,11 +6,11 @@ echo "Installing rust..."
|
||||
curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal
|
||||
|
||||
echo "Downloading sccache..."
|
||||
SCCACHE_URL="https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-$(uname -m)-unknown-linux-musl.tar.gz"
|
||||
SCCACHE_URL="https://github.com/mozilla/sccache/releases/download/v0.15.0/sccache-v0.15.0-$(uname -m)-unknown-linux-musl.tar.gz"
|
||||
wget -qO- --show-progress "${SCCACHE_URL}" | tar -xz -C ~/.cargo/bin --strip-components=1 --wildcards '*/sccache'
|
||||
|
||||
echo "Downloading just..."
|
||||
JUST_URL="https://github.com/casey/just/releases/download/1.45.0/just-1.45.0-$(uname -m)-unknown-linux-musl.tar.gz"
|
||||
JUST_URL="https://github.com/casey/just/releases/download/1.50.0/just-1.50.0-$(uname -m)-unknown-linux-musl.tar.gz"
|
||||
wget -qO- --show-progress "${JUST_URL}" | tar -xz -C ~/.cargo/bin --wildcards 'just'
|
||||
|
||||
echo "Downloading cbindgen..."
|
||||
|
||||
@ -180,7 +180,7 @@ archLinux()
|
||||
echo "Detected Arch Linux"
|
||||
packages="git make curl fuse3 fuse-overlayfs slirp4netns podman gdb"
|
||||
if [ "$1" == "qemu" ]; then
|
||||
packages="$packages qemu-system-x86 qemu-system-arm qemu-system-riscv"
|
||||
packages="$packages qemu-desktop qemu-system-arm qemu-system-riscv"
|
||||
elif [ "$1" == "virtualbox" ]; then
|
||||
packages="$packages virtualbox"
|
||||
else
|
||||
@ -215,9 +215,12 @@ ubuntu()
|
||||
if [ "$1" == "qemu" ]; then
|
||||
if [ -z "$(which qemu-system-x86_64)" ]; then
|
||||
echo "Installing QEMU..."
|
||||
sudo "$2" install qemu-system-x86 qemu-kvm
|
||||
sudo "$2" install qemu-system-arm qemu-efi-aarch64
|
||||
sudo "$2" install qemu-system-riscv
|
||||
if apt-cache show qemu-system-riscv > /dev/null 2>&1
|
||||
then riscv="qemu-system-riscv" # ubuntu 26 / debian 13
|
||||
else riscv="qemu-system-riscv64" # ubuntu 24 / debian 12
|
||||
fi
|
||||
sudo $install_command qemu-system-x86 qemu-kvm \
|
||||
qemu-system-arm qemu-efi-aarch64 $riscv
|
||||
else
|
||||
echo "QEMU already installed!"
|
||||
fi
|
||||
@ -632,12 +635,12 @@ else
|
||||
# SUSE and derivatives
|
||||
if hash 2>/dev/null zypper; then
|
||||
suse "$emulator"
|
||||
# Debian or any derivative of it
|
||||
elif hash 2>/dev/null apt-get; then
|
||||
ubuntu "$emulator" "$defpackman"
|
||||
# Fedora
|
||||
elif hash 2>/dev/null dnf; then
|
||||
fedora "$emulator"
|
||||
# Debian or any derivative of it
|
||||
elif hash 2>/dev/null apt-get; then
|
||||
ubuntu "$emulator" "$defpackman"
|
||||
# Gentoo
|
||||
elif hash 2>/dev/null emerge; then
|
||||
gentoo "$emulator"
|
||||
|
||||
@ -14,7 +14,7 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./
|
||||
AR="${AR}" \
|
||||
CC="${CC}" \
|
||||
RANLIB="${RANLIB}" \
|
||||
PREFIX="${COOKBOOK_STAGE}" \
|
||||
PREFIX="${COOKBOOK_STAGE}/usr" \
|
||||
install
|
||||
|
||||
# However, distros distribute libbz2 as well so we'll support it too
|
||||
@ -27,12 +27,12 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./
|
||||
AR="${AR}" \
|
||||
CC="${CC}" \
|
||||
RANLIB="${RANLIB}" \
|
||||
PREFIX="${COOKBOOK_STAGE}"
|
||||
PREFIX="${COOKBOOK_STAGE}/usr"
|
||||
|
||||
cp -av libbz2.so* "${COOKBOOK_STAGE}/lib"
|
||||
ln -sr "${COOKBOOK_STAGE}/lib/libbz2.so.1.0" "${COOKBOOK_STAGE}/lib/libbz2.so.1"
|
||||
ln -sr "${COOKBOOK_STAGE}/lib/libbz2.so.1.0" "${COOKBOOK_STAGE}/lib/libbz2.so"
|
||||
cp -av libbz2.so* "${COOKBOOK_STAGE}/usr/lib"
|
||||
ln -s "libbz2.so.1.0" "${COOKBOOK_STAGE}/usr/lib/libbz2.so.1"
|
||||
ln -s "libbz2.so.1.0" "${COOKBOOK_STAGE}/usr/lib/libbz2.so"
|
||||
|
||||
mkdir -p "${COOKBOOK_STAGE}/lib/pkgconfig"
|
||||
cp "${COOKBOOK_RECIPE}/pkgconfig" "${COOKBOOK_STAGE}/lib/pkgconfig/bzip2.pc"
|
||||
mkdir -p "${COOKBOOK_STAGE}/usr/lib/pkgconfig"
|
||||
cp "${COOKBOOK_RECIPE}/pkgconfig" "${COOKBOOK_STAGE}/usr/lib/pkgconfig/bzip2.pc"
|
||||
"""
|
||||
9
recipes/archives/libzip/recipe.toml
Normal file
9
recipes/archives/libzip/recipe.toml
Normal file
@ -0,0 +1,9 @@
|
||||
[source]
|
||||
tar = "https://libzip.org/download/libzip-1.11.4.tar.gz"
|
||||
blake3 = "844cf66c68f2dcf182f6626d5b72d55b75a100c0a93b3e6a45b447669ecf7088"
|
||||
patches = ["redox.patch"]
|
||||
[build]
|
||||
template = "cmake"
|
||||
dependencies = [
|
||||
"zlib",
|
||||
]
|
||||
11
recipes/archives/libzip/redox.patch
Normal file
11
recipes/archives/libzip/redox.patch
Normal file
@ -0,0 +1,11 @@
|
||||
diff -ruwN source/lib/zip_name_locate.c source-new/lib/zip_name_locate.c
|
||||
--- source/lib/zip_name_locate.c 2025-05-23 20:55:07.000000000 +0700
|
||||
+++ source-new/lib/zip_name_locate.c 2026-05-02 07:04:59.532882922 +0700
|
||||
@@ -31,6 +31,7 @@
|
||||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
+#include "config.h"
|
||||
|
||||
#include <string.h>
|
||||
#ifdef HAVE_STRINGS_H
|
||||
@ -1,15 +0,0 @@
|
||||
diff -ruwN source/programs/platform.h source-new/programs/platform.h
|
||||
--- source/programs/platform.h 2025-02-19 07:04:24.000000000 +0700
|
||||
+++ source-new/programs/platform.h 2025-07-21 22:52:07.716447723 +0700
|
||||
@@ -109,6 +109,11 @@
|
||||
#endif /* PLATFORM_POSIX_VERSION */
|
||||
|
||||
|
||||
+#if defined(__redox__)
|
||||
+/* TODO: AT_FDCWD && utimensat must be defined to conform _POSIX_VERSION */
|
||||
+# define PLATFORM_POSIX_VERSION 1
|
||||
+#endif
|
||||
+
|
||||
#if PLATFORM_POSIX_VERSION > 1
|
||||
/* glibc < 2.26 may not expose struct timespec def without this.
|
||||
* See issue #1920. */
|
||||
@ -1,17 +1,14 @@
|
||||
[source]
|
||||
tar = "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz"
|
||||
blake3 = "730dca31244abd219e995f03a55d95b2cfb4b3e16cda055a79fa6f30a4f0e1db"
|
||||
patches = [
|
||||
"01_redox.patch"
|
||||
]
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
DYNAMIC_STATIC_INIT
|
||||
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
|
||||
# TODO: fPIC is the default on linux but not on redox and
|
||||
# required by llvm21 as zstd statically linked there
|
||||
export CPPFLAGS="$CPPFLAGS -fPIC"
|
||||
${COOKBOOK_MAKE}
|
||||
${COOKBOOK_MAKE} install DESTDIR="${COOKBOOK_STAGE}" prefix="/usr"
|
||||
COOKBOOK_SOURCE="$COOKBOOK_SOURCE/build/cmake"
|
||||
cookbook_cmake
|
||||
"""
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
[source]
|
||||
git = "https://gitlab.redox-os.org/redox-os/dash.git"
|
||||
branch = "redox"
|
||||
script = """
|
||||
./autogen.sh
|
||||
"""
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
|
||||
./autogen.sh
|
||||
./configure \
|
||||
${COOKBOOK_CONFIGURE} \
|
||||
--host="${TARGET}" \
|
||||
--prefix="" \
|
||||
--enable-static \
|
||||
--prefix="/usr" \
|
||||
cross_compiling=yes
|
||||
# See https://stackoverflow.com/questions/4247068/sed-command-with-i-option-failing-on-mac-but-works-on-linux.
|
||||
sed -i'' -e 's|#define HAVE_GETRLIMIT 1|/* #undef HAVE_GETRLIMIT */|g' config.h
|
||||
sed -i -e 's|#define HAVE_GETRLIMIT 1|/* #undef HAVE_GETRLIMIT */|g' config.h
|
||||
# Skip configure
|
||||
COOKBOOK_CONFIGURE="true"
|
||||
COOKBOOK_CONFIGURE_FLAGS=()
|
||||
|
||||
@ -13,7 +13,7 @@ template = "custom"
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
# TODO: upstream changes, consider using feat_require_unix_core if relibc is ready?
|
||||
CARGO_PROFILE_RELEASE_LTO=thin cookbook_cargo --no-default-features --features feat_os_unix_redox,kill --bin coreutils
|
||||
CARGO_PROFILE_RELEASE_LTO=thin cookbook_cargo --no-default-features --features feat_os_unix_redox,kill,nice --bin coreutils
|
||||
|
||||
BINS=(
|
||||
'['
|
||||
@ -59,6 +59,7 @@ BINS=(
|
||||
more
|
||||
mv
|
||||
nl
|
||||
nice
|
||||
nproc
|
||||
numfmt
|
||||
od
|
||||
|
||||
@ -48,6 +48,66 @@ index fd1f30303..c508f6b9b 100644
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
// Note this useful idiom: importing names from outer (for mod tests) scope.
|
||||
diff --git a/src/uucore/src/lib/features/i18n/mod.rs b/src/uucore/src/lib/features/i18n/mod.rs
|
||||
index 282baf2e7..a38ccb30e 100644
|
||||
--- a/src/uucore/src/lib/features/i18n/mod.rs
|
||||
+++ b/src/uucore/src/lib/features/i18n/mod.rs
|
||||
@@ -45,8 +45,21 @@ pub fn get_locale_from_env(locale_name: &str) -> (Locale, UEncoding) {
|
||||
|
||||
if let Some(simple) = split.next() {
|
||||
// Handle explicit C and POSIX locales - these should always use byte comparison
|
||||
+ let encoding = split.next();
|
||||
+ let is_utf8 = encoding.is_some_and(|enc| {
|
||||
+ let lower = enc.to_lowercase();
|
||||
+ lower == "utf-8" || lower == "utf8"
|
||||
+ });
|
||||
+
|
||||
if simple == "C" || simple == "POSIX" {
|
||||
- return (DEFAULT_LOCALE, UEncoding::Ascii);
|
||||
+ return (
|
||||
+ DEFAULT_LOCALE,
|
||||
+ if is_utf8 {
|
||||
+ UEncoding::Utf8
|
||||
+ } else {
|
||||
+ UEncoding::Ascii
|
||||
+ },
|
||||
+ );
|
||||
}
|
||||
|
||||
// Naively convert the locale name to BCP47 tag format.
|
||||
@@ -55,14 +68,9 @@ pub fn get_locale_from_env(locale_name: &str) -> (Locale, UEncoding) {
|
||||
let bcp47 = simple.replace('_', "-");
|
||||
let locale = Locale::try_from_str(&bcp47).unwrap_or(DEFAULT_LOCALE);
|
||||
|
||||
- // If locale parsing failed, parse the encoding part of the
|
||||
- // locale. Treat the special case of the given locale being "C"
|
||||
- // which becomes the default locale.
|
||||
- let encoding = if (locale != DEFAULT_LOCALE || bcp47 == "C")
|
||||
- && split.next().is_some_and(|enc| {
|
||||
- let lower = enc.to_lowercase();
|
||||
- lower == "utf-8" || lower == "utf8"
|
||||
- }) {
|
||||
+ // If the locale name was parsed successfully, use the encoding suffix
|
||||
+ // to decide whether filenames should be treated as UTF-8.
|
||||
+ let encoding = if (locale != DEFAULT_LOCALE || bcp47 == "C") && is_utf8 {
|
||||
UEncoding::Utf8
|
||||
} else {
|
||||
UEncoding::Ascii
|
||||
@@ -70,8 +78,12 @@ pub fn get_locale_from_env(locale_name: &str) -> (Locale, UEncoding) {
|
||||
return (locale, encoding);
|
||||
}
|
||||
}
|
||||
- // Default POSIX locale representing LC_ALL=C
|
||||
- (DEFAULT_LOCALE, UEncoding::Ascii)
|
||||
+
|
||||
+ #[cfg(target_os = "redox")]
|
||||
+ return (DEFAULT_LOCALE, UEncoding::Utf8);
|
||||
+
|
||||
+ #[cfg(not(target_os = "redox"))]
|
||||
+ return (DEFAULT_LOCALE, UEncoding::Ascii);
|
||||
}
|
||||
|
||||
/// Get the collating locale from the environment
|
||||
diff --git a/src/uucore/src/lib/mods/locale.rs b/src/uucore/src/lib/mods/locale.rs
|
||||
index b670f8976..a4ff9f983 100644
|
||||
--- a/src/uucore/src/lib/mods/locale.rs
|
||||
|
||||
@ -2,16 +2,27 @@ name=COSMIC Text Editor
|
||||
binary=/bin/cosmic-edit
|
||||
icon=/ui/icons/apps/accessories-text-editor.png
|
||||
accept=*.asm
|
||||
accept=*.c
|
||||
accept=*.conf
|
||||
accept=*.cpp
|
||||
accept=*.css
|
||||
accept=*.h
|
||||
accept=*.html
|
||||
accept=*.ion
|
||||
accept=*.java
|
||||
accept=*.js
|
||||
accept=*.json
|
||||
accept=*.list
|
||||
accept=*.log
|
||||
accept=*.lua
|
||||
accept=*.md
|
||||
accept=*.pl
|
||||
accept=*.py
|
||||
accept=*.rc
|
||||
accept=*.rs
|
||||
accept=*.sh
|
||||
accept=*.toml
|
||||
accept=*.txt
|
||||
accept=*.xml
|
||||
author=Jeremy Soller
|
||||
description=COSMIC Text Editor
|
||||
@ -1,7 +1,5 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/cosmic-edit.git"
|
||||
rev = "epoch-1.0.8"
|
||||
patches = [ "redox.patch" ]
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
@ -12,6 +10,11 @@ dependencies = [
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr"
|
||||
if [ "${COOKBOOK_DYNAMIC}" != "1" ]
|
||||
then
|
||||
# Statically linked i586 and riscv64gc need libiconv manually linked
|
||||
export RUSTFLAGS="${RUSTFLAGS} -liconv"
|
||||
fi
|
||||
cookbook_cargo --no-default-features
|
||||
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps"
|
||||
@ -1,7 +1,5 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/cosmic-files.git"
|
||||
rev = "epoch-1.0.8"
|
||||
patches = [ "redox.patch" ]
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
@ -12,6 +10,11 @@ dependencies = [
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr"
|
||||
if [ "${COOKBOOK_DYNAMIC}" != "1" ]
|
||||
then
|
||||
# Statically linked i586 and riscv64gc need libiconv manually linked
|
||||
export RUSTFLAGS="${RUSTFLAGS} -liconv"
|
||||
fi
|
||||
cookbook_cargo --no-default-features
|
||||
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps/"
|
||||
28
recipes/cosmic/cosmic-monitor/recipe.toml
Normal file
28
recipes/cosmic/cosmic-monitor/recipe.toml
Normal file
@ -0,0 +1,28 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/cosmic-monitor.git"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = [
|
||||
"gettext",
|
||||
"libxkbcommon",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr"
|
||||
if [ "${COOKBOOK_DYNAMIC}" != "1" ]
|
||||
then
|
||||
# Statically linked i586 and riscv64gc need libiconv manually linked
|
||||
export RUSTFLAGS="${RUSTFLAGS} -liconv"
|
||||
fi
|
||||
cookbook_cargo --no-default-features
|
||||
|
||||
#TODO: install with just?
|
||||
APPID="com.system76.CosmicMonitor"
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/"
|
||||
cp -v "${COOKBOOK_SOURCE}/res/${APPID}.desktop" "${COOKBOOK_STAGE}/usr/share/applications/"
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/share/metainfo/"
|
||||
cp -v "${COOKBOOK_SOURCE}/res/${APPID}.metainfo.xml" "${COOKBOOK_STAGE}/usr/share/metainfo/"
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/"
|
||||
cp -rv "${COOKBOOK_SOURCE}/res/icons/hicolor/" "${COOKBOOK_STAGE}/usr/share/icons/"
|
||||
"""
|
||||
@ -2,5 +2,7 @@ name=COSMIC Reader
|
||||
binary=/bin/cosmic-reader
|
||||
icon=/ui/icons/apps/accessories-text-editor.png
|
||||
accept=*.pdf
|
||||
accept=*.epub
|
||||
accept=*.cbz
|
||||
author=Jeremy Soller
|
||||
description=COSMIC Reader
|
||||
@ -1,6 +1,5 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/cosmic-reader.git"
|
||||
rev = "epoch-1.0.8"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
@ -14,6 +13,8 @@ dependencies = [
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=${COOKBOOK_HOST_SYSROOT}/${GNU_TARGET} -I${COOKBOOK_HOST_SYSROOT}/${GNU_TARGET}/include"
|
||||
# Define endianness for mupdf
|
||||
export CFLAGS="${CFLAGS} -D__LITTLE_ENDIAN__"
|
||||
"${COOKBOOK_CARGO}" rustc \
|
||||
--manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \
|
||||
--release \
|
||||
@ -1,6 +1,5 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/cosmic-store.git"
|
||||
rev = "epoch-1.0.8"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
22
recipes/cosmic/cosmic-sync/recipe.toml
Normal file
22
recipes/cosmic/cosmic-sync/recipe.toml
Normal file
@ -0,0 +1,22 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/cosmic-sync.git"
|
||||
branch = "master"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = [
|
||||
#"gettext",
|
||||
#"libxkbcommon",
|
||||
"openssl3",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
#export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr"
|
||||
#export ZSTD_SYS_USE_PKG_CONFIG=1
|
||||
cookbook_cargo_packages cosmic-sync-daemon cosmic-sync-gui --no-default-features
|
||||
|
||||
#TODO: install with just?
|
||||
APPID="com.system76.CosmicSync"
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/"
|
||||
cp -v "${COOKBOOK_SOURCE}/res/${APPID}.desktop" "${COOKBOOK_STAGE}/usr/share/applications/"
|
||||
"""
|
||||
@ -1,7 +1,5 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/cosmic-term.git"
|
||||
rev = "epoch-1.0.8"
|
||||
patches = [ "redox.patch" ]
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
@ -12,6 +10,11 @@ dependencies = [
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr"
|
||||
if [ "${COOKBOOK_DYNAMIC}" != "1" ]
|
||||
then
|
||||
# Statically linked i586 and riscv64gc need libiconv manually linked
|
||||
export RUSTFLAGS="${RUSTFLAGS} -liconv"
|
||||
fi
|
||||
cookbook_cargo --no-default-features
|
||||
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps"
|
||||
18
recipes/data/terminfo/recipe.toml
Normal file
18
recipes/data/terminfo/recipe.toml
Normal file
@ -0,0 +1,18 @@
|
||||
[source]
|
||||
git = "https://github.com/sajattack/terminfo"
|
||||
branch = "master"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
# only copy common TERM envar
|
||||
mkdir -p ${COOKBOOK_STAGE}/usr/share/terminfo/{a,d,l,s,t,v,x}
|
||||
cp -r ${COOKBOOK_SOURCE}/tabset ${COOKBOOK_STAGE}/usr/share/
|
||||
cp ${COOKBOOK_SOURCE}/terminfo/a/ansi{,-*} ${COOKBOOK_STAGE}/usr/share/terminfo/a/
|
||||
cp ${COOKBOOK_SOURCE}/terminfo/d/dumb{,-*} ${COOKBOOK_STAGE}/usr/share/terminfo/d/
|
||||
cp ${COOKBOOK_SOURCE}/terminfo/l/linux{,-*} ${COOKBOOK_STAGE}/usr/share/terminfo/l/
|
||||
cp ${COOKBOOK_SOURCE}/terminfo/s/screen{,-*} ${COOKBOOK_STAGE}/usr/share/terminfo/s/
|
||||
cp ${COOKBOOK_SOURCE}/terminfo/t/tmux{,-*} ${COOKBOOK_STAGE}/usr/share/terminfo/t/
|
||||
cp ${COOKBOOK_SOURCE}/terminfo/v/vt100{,-*} ${COOKBOOK_STAGE}/usr/share/terminfo/v/
|
||||
cp ${COOKBOOK_SOURCE}/terminfo/x/xterm{,-*} ${COOKBOOK_STAGE}/usr/share/terminfo/x/
|
||||
"""
|
||||
@ -13,13 +13,12 @@ dependencies = [
|
||||
]
|
||||
template = "custom"
|
||||
script = """
|
||||
"${CXX}" \
|
||||
$("${PKG_CONFIG}" --cflags cairo) \
|
||||
DYNAMIC_INIT
|
||||
${CXX} ${CPPFLAGS} ${LDFLAGS} \
|
||||
"${COOKBOOK_RECIPE}/cairo-demo.c" \
|
||||
-o cairo-demo \
|
||||
-static \
|
||||
$("${PKG_CONFIG}" --libs cairo) \
|
||||
-lorbital
|
||||
mkdir -pv "${COOKBOOK_STAGE}/bin"
|
||||
cp -v "cairo-demo" "${COOKBOOK_STAGE}/bin/cairo-demo"
|
||||
-lorbital $("${PKG_CONFIG}" --libs cairo)
|
||||
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/bin"
|
||||
cp -v "cairo-demo" "${COOKBOOK_STAGE}/usr/bin/cairo-demo"
|
||||
"""
|
||||
|
||||
@ -5,24 +5,12 @@ upstream = "https://github.com/rust-windowing/glutin.git"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
cargopath = "glutin_examples"
|
||||
dependencies = [
|
||||
"mesa",
|
||||
"zlib"
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
EXAMPLES=(
|
||||
window
|
||||
)
|
||||
for example in "${EXAMPLES[@]}"
|
||||
do
|
||||
cargo rustc \
|
||||
--target "$TARGET" \
|
||||
--release \
|
||||
--manifest-path "${COOKBOOK_SOURCE}/glutin_examples/Cargo.toml" \
|
||||
--example "${example}" \
|
||||
-- -C link-args="$LDFLAGS $("${TARGET}-pkg-config" --libs osmesa) -lz -lstdc++ -lc -lgcc"
|
||||
mkdir -pv "${COOKBOOK_STAGE}/bin"
|
||||
cp -v "target/${TARGET}/release/examples/${example}" "${COOKBOOK_STAGE}/bin/glutin_${example}"
|
||||
done
|
||||
CARGOPATH="glutin_examples" cookbook_cargo_examples window
|
||||
"""
|
||||
|
||||
@ -6,8 +6,9 @@ template = "custom"
|
||||
script = """
|
||||
cookbook_cargo
|
||||
|
||||
mkdir -pv "${COOKBOOK_STAGE}/apps/pixelcannon"
|
||||
cp -Rv "${COOKBOOK_SOURCE}/assets" "${COOKBOOK_STAGE}/apps/pixelcannon"
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/games/pixelcannon"
|
||||
cp -Rv "${COOKBOOK_SOURCE}/assets" "${COOKBOOK_STAGE}/usr/games/pixelcannon"
|
||||
mv "${COOKBOOK_STAGE}/usr/bin/pixelcannon" "${COOKBOOK_STAGE}/usr/games/pixelcannon"
|
||||
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps"
|
||||
cp -v "${COOKBOOK_SOURCE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/pixelcannon"
|
||||
|
||||
@ -5,5 +5,7 @@ branch = "winit-0.29"
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
COOKBOOK_CARGO_FLAGS=() # remove --locked
|
||||
cookbook_cargo_examples cursor_grab drag_window window window_debug
|
||||
"""
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
[source]
|
||||
tar = "https://github.com/Kitware/CMake/releases/download/v4.0.3/cmake-4.0.3.tar.gz"
|
||||
tar = "https://github.com/Kitware/CMake/releases/download/v4.3.2/cmake-4.3.2.tar.gz"
|
||||
blake3 = "cbd0121189df1502f61e8f12f044b4a901b1ea16c74c016b85714e4661b8537f"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
template = "cmake"
|
||||
dependencies = [
|
||||
"bzip2",
|
||||
# "cppdap",
|
||||
"curl",
|
||||
"expat",
|
||||
@ -14,30 +14,17 @@ dependencies = [
|
||||
# "liblzma",
|
||||
# "librhash",
|
||||
"libuv",
|
||||
"nghttp2",
|
||||
"openssl3",
|
||||
"zlib",
|
||||
"zstd",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
COOKBOOK_CMAKE_FLAGS+=(
|
||||
-DBUILD_TESTING=Off
|
||||
-DCMAKE_USE_SYSTEM_BZIP2=On
|
||||
-DCMAKE_USE_SYSTEM_CURL=On
|
||||
-DCMAKE_USE_SYSTEM_EXPAT=On
|
||||
-DCMAKE_USE_SYSTEM_LIBARCHIVE=On
|
||||
-DCMAKE_USE_SYSTEM_LIBUV=On
|
||||
-DCMAKE_USE_SYSTEM_NGHTTP2=On
|
||||
-DCMAKE_USE_SYSTEM_ZLIB=On
|
||||
-DCMAKE_USE_SYSTEM_ZSTD=On
|
||||
)
|
||||
cookbook_cmake
|
||||
set -x
|
||||
mv -vT "${COOKBOOK_STAGE}"/usr/bin "${COOKBOOK_STAGE}/bin"
|
||||
mv -vT "${COOKBOOK_STAGE}"/usr/share "${COOKBOOK_STAGE}/share"
|
||||
rm -rf "${COOKBOOK_STAGE}"/usr/doc
|
||||
rmdir -v "${COOKBOOK_STAGE}"/usr
|
||||
set +x
|
||||
"""
|
||||
cmakeflags = [
|
||||
"-DBUILD_TESTING=Off",
|
||||
"-DCMAKE_USE_SYSTEM_BZIP2=On",
|
||||
"-DCMAKE_USE_SYSTEM_CURL=On",
|
||||
"-DCMAKE_USE_SYSTEM_EXPAT=On",
|
||||
"-DCMAKE_USE_SYSTEM_LIBARCHIVE=On",
|
||||
"-DCMAKE_USE_SYSTEM_LIBUV=On",
|
||||
"-DCMAKE_USE_SYSTEM_NGHTTP2=On",
|
||||
"-DCMAKE_USE_SYSTEM_ZLIB=On",
|
||||
"-DCMAKE_USE_SYSTEM_ZSTD=On",
|
||||
]
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
[source]
|
||||
git = "https://github.com/Byron/gitoxide.git"
|
||||
rev = "v0.54.0"
|
||||
shallow_clone = true
|
||||
patches = [
|
||||
"redox.patch"
|
||||
]
|
||||
|
||||
[build]
|
||||
dependencies = [
|
||||
"openssl3",
|
||||
]
|
||||
template = "custom"
|
||||
script = """
|
||||
export OPENSSL_DIR="${COOKBOOK_SYSROOT}"
|
||||
export OPENSSL_STATIC="true"
|
||||
cookbook_cargo
|
||||
"""
|
||||
|
||||
template = "cargo"
|
||||
|
||||
16
recipes/dev/gitoxide/redox.patch
Normal file
16
recipes/dev/gitoxide/redox.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 23147e56..520fbed3 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -206,11 +206,9 @@ zlib-rs = { opt-level = 3 }
|
||||
|
||||
[profile.release]
|
||||
overflow-checks = false
|
||||
-lto = "thin"
|
||||
# This bloats files but assures destructors are called, important for tempfiles. One day I hope we
|
||||
# can wire up the 'abrt' signal handler so tempfiles will be removed in case of panics.
|
||||
panic = "unwind"
|
||||
-incremental = false
|
||||
|
||||
# This profile is currently used in building releases for GitHub.
|
||||
# It may be removed at any time and should not otherwise be relied on.
|
||||
@ -13,5 +13,5 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./
|
||||
RANLIB="${RANLIB}" \
|
||||
SYSLDFLAGS="$LDFLAGS"
|
||||
|
||||
"${COOKBOOK_MAKE}" install INSTALL_TOP="${COOKBOOK_STAGE}"
|
||||
"${COOKBOOK_MAKE}" install INSTALL_TOP="${COOKBOOK_STAGE}/usr"
|
||||
"""
|
||||
|
||||
@ -16,7 +16,7 @@ case "${OS}" in
|
||||
esac
|
||||
|
||||
${COOKBOOK_MAKE} -j ${COOKBOOK_MAKE_JOBS} install \
|
||||
PREFIX="${COOKBOOK_STAGE}" \
|
||||
PREFIX="${COOKBOOK_STAGE}/usr" \
|
||||
TARGET_SYS="${SYS}" \
|
||||
CROSS="${GNU_TARGET}-"
|
||||
"""
|
||||
|
||||
@ -1,14 +1,16 @@
|
||||
[source]
|
||||
git = "https://github.com/luarocks/luarocks.git"
|
||||
shallow_clone = true
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = [
|
||||
"lua54"
|
||||
]
|
||||
script = """
|
||||
|
||||
DYNAMIC_INIT
|
||||
COOKBOOK_CONFIGURE_FLAGS=(
|
||||
--sysconfdir=$COOKBOOK_SYSROOT
|
||||
--prefix=/usr
|
||||
--sysconfdir=/etc
|
||||
--with-lua-include=$COOKBOOK_SYSROOT/include
|
||||
--with-lua-bin=$COOKBOOK_SYSROOT/bin
|
||||
--with-lua-lib=$COOKBOOK_SYSROOT/lib
|
||||
|
||||
@ -12,17 +12,4 @@ autoreconf
|
||||
"""
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/configure"
|
||||
COOKBOOK_CONFIGURE_FLAGS=(
|
||||
--host="${TARGET}"
|
||||
--prefix="/"
|
||||
--build="$(gcc -dumpmachine)"
|
||||
)
|
||||
|
||||
cookbook_configure
|
||||
|
||||
${TARGET}-strip "${COOKBOOK_STAGE}/bin/"*
|
||||
rm -rf "${COOKBOOK_STAGE}/share" "${COOKBOOK_STAGE}/lib"
|
||||
"""
|
||||
template = "configure"
|
||||
|
||||
36
recipes/dev/rust/config-cross-linux.toml
Normal file
36
recipes/dev/rust/config-cross-linux.toml
Normal file
@ -0,0 +1,36 @@
|
||||
[llvm]
|
||||
download-ci-llvm = false
|
||||
static-libstdcpp = false
|
||||
link-shared = true
|
||||
|
||||
[build]
|
||||
host = ["TARGET"]
|
||||
target = ["TARGET", "COOKBOOK_TARGET"]
|
||||
cargo-native-static = true
|
||||
submodules = false
|
||||
docs = false
|
||||
tools = ["cargo", "clippy", "rustdoc", "rustfmt", "src"]
|
||||
extended = true
|
||||
verbose = 1
|
||||
|
||||
[install]
|
||||
prefix = "install"
|
||||
sysconfdir = "etc"
|
||||
|
||||
[rust]
|
||||
backtrace = false
|
||||
codegen-tests = false
|
||||
|
||||
[target.COOKBOOK_TARGET]
|
||||
cc = "COOKBOOK_GNU_TARGET-gcc"
|
||||
cxx = "COOKBOOK_GNU_TARGET-g++"
|
||||
ar = "COOKBOOK_GNU_TARGET-ar"
|
||||
linker = "COOKBOOK_GNU_TARGET-gcc"
|
||||
crt-static = false
|
||||
llvm-config = "COOKBOOK_SYSROOT/bin/llvm-config"
|
||||
|
||||
[target.aarch64-unknown-linux-gnu]
|
||||
llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config"
|
||||
|
||||
[target.x86_64-unknown-linux-gnu]
|
||||
llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config"
|
||||
@ -1,6 +1,6 @@
|
||||
[source]
|
||||
git = "https://gitlab.redox-os.org/redox-os/rust.git"
|
||||
branch = "redox-2025-10-03"
|
||||
branch = "redox-2026-05-24"
|
||||
shallow_clone = true
|
||||
|
||||
[build]
|
||||
@ -20,9 +20,12 @@ dev-dependencies = [
|
||||
script = """
|
||||
if [ "${COOKBOOK_HOST_SYSROOT}" = "/usr" ]; then
|
||||
|
||||
cat ${COOKBOOK_RECIPE}/config-bootstrap.toml > config.toml
|
||||
sed -i "s|TARGET|${TARGET}|g" config.toml
|
||||
OS=$(echo "${TARGET}" | cut -d - -f3)
|
||||
cat ${COOKBOOK_RECIPE}/config-cross-$OS.toml > config.toml
|
||||
sed -i "s|COOKBOOK_TOOLCHAIN|${COOKBOOK_TOOLCHAIN}|g" config.toml
|
||||
sed -i "s|COOKBOOK_TARGET|${COOKBOOK_CROSS_TARGET}|g" config.toml
|
||||
sed -i "s|COOKBOOK_GNU_TARGET|${COOKBOOK_CROSS_GNU_TARGET}|g" config.toml
|
||||
sed -i "s|TARGET|${TARGET}|g" config.toml
|
||||
|
||||
else
|
||||
|
||||
|
||||
@ -16,15 +16,15 @@ template = "custom"
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
export BUILDTIME_RUSTPYTHONPATH=/lib/rustpython
|
||||
export BUILDTIME_RUSTPYTHONPATH=/usr/lib/rustpython
|
||||
export OPENSSL_DIR="${COOKBOOK_SYSROOT}"
|
||||
export ZLIB_STATIC=1
|
||||
cookbook_cargo --features ssl
|
||||
mkdir -p "${COOKBOOK_STAGE}/lib"
|
||||
mkdir -p "${COOKBOOK_STAGE}/usr/lib"
|
||||
rsync -aE \
|
||||
--exclude 'test/' \
|
||||
--exclude '__pycache__/' \
|
||||
--exclude '*.pyc' \
|
||||
--exclude '/README.md' \
|
||||
"${COOKBOOK_SOURCE}"/Lib/ "${COOKBOOK_STAGE}/lib/rustpython"
|
||||
"${COOKBOOK_SOURCE}"/Lib/ "${COOKBOOK_STAGE}/usr/lib/rustpython"
|
||||
"""
|
||||
|
||||
@ -1,59 +1,32 @@
|
||||
[source]
|
||||
git = "https://github.com/jackpot51/flycast.git"
|
||||
git = "https://github.com/flyinghead/flycast.git"
|
||||
rev = "v2.6"
|
||||
patches = ["redox.patch"]
|
||||
shallow_clone = true
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = [
|
||||
"curl",
|
||||
"libiconv",
|
||||
"liborbital",
|
||||
"mesa",
|
||||
"nghttp2",
|
||||
"openssl3",
|
||||
"libzip",
|
||||
"sdl2",
|
||||
]
|
||||
dev-dependencies = [
|
||||
"zlib",
|
||||
"zstd",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/usr/include/SDL2"
|
||||
export CXXFLAGS="${CXXFLAGS} -D_GLIBCXX_USE_C99_MATH_TR1=1 -I${COOKBOOK_SYSROOT}/usr/include/SDL2"
|
||||
#TODO: don't use this
|
||||
export SDL_LIBS="-lSDL2 -lorbital $("${TARGET}-pkg-config" --libs osmesa) -lstdc++"
|
||||
#TODO: don't add curl
|
||||
export SDL_LIBS="${SDL_LIBS} -lcurl -lnghttp2 -lssl -lcrypto"
|
||||
COOKBOOK_CONFIGURE="cmake"
|
||||
COOKBOOK_CONFIGURE_FLAGS=(
|
||||
-DCMAKE_VERBOSE_MAKEFILE=On
|
||||
-DCMAKE_CROSSCOMPILING=True
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
-DCMAKE_INSTALL_PREFIX="/usr"
|
||||
-DCMAKE_SYSTEM_NAME=Generic
|
||||
-DCMAKE_SYSTEM_PROCESSOR="$(echo "${TARGET}" | cut -d - -f1)"
|
||||
export CPPFLAGS+=" -D_GNU_SOURCE=1"
|
||||
COOKBOOK_CMAKE_FLAGS+=(
|
||||
-DREDOX=1
|
||||
-DUNIX=1
|
||||
-DUSE_HOST_LIBZIP=OFF
|
||||
-DUSE_OPENMP=OFF
|
||||
-DUSE_VULKAN=OFF
|
||||
-DZLIB_LIBRARY="-lz"
|
||||
|
||||
# Hacks for cmake errors
|
||||
-DHAVE___INT8_LIBZIP=False
|
||||
-DHAVE___INT16_LIBZIP=False
|
||||
-DHAVE___INT32_LIBZIP=False
|
||||
-DHAVE___INT64_LIBZIP=False
|
||||
-DHAVE_FICLONERANGE=False
|
||||
-DHAVE_NULLABLE=False
|
||||
|
||||
# Hack for Threads
|
||||
-DCMAKE_THREAD_LIBS_INIT="-lc"
|
||||
-DCMAKE_HAVE_THREADS_LIBRARY=1
|
||||
-DCMAKE_USE_WIN32_THREADS_INIT=0
|
||||
-DCMAKE_USE_PTHREADS_INIT=1
|
||||
-DTHREADS_PREFER_PTHREAD_FLAG=ON
|
||||
|
||||
"${COOKBOOK_SOURCE}"
|
||||
-DUSE_HOST_SDL=ON
|
||||
-DNOWIDE_INSTALL=ON
|
||||
-DWITH_SYSTEM_ZLIB=ON
|
||||
-DWITH_SYSTEM_ZSTD=ON
|
||||
)
|
||||
cookbook_configure
|
||||
# appstream generation broken
|
||||
rm -rf "${COOKBOOK_STAGE}/usr/share/metainfo"
|
||||
cookbook_cmake
|
||||
"""
|
||||
|
||||
150
recipes/emulators/flycast/redox.patch
Normal file
150
recipes/emulators/flycast/redox.patch
Normal file
@ -0,0 +1,150 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 8340288..589d4b4 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -466,7 +466,7 @@ if(NOT LIBRETRO)
|
||||
endif()
|
||||
|
||||
if(NOT ANDROID AND NOT IOS)
|
||||
- if (NOT NINTENDO_SWITCH)
|
||||
+ if (NOT NINTENDO_SWITCH AND NOT REDOX)
|
||||
# DreamLink enabled for non-mobile Linux, MacOS, and Windows
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_DREAMLINK_DEVICES=1)
|
||||
set(USE_DREAMLINK_DEVICES ON) # Must be set before adding core/sdl
|
||||
@@ -493,7 +493,7 @@ if(NOT LIBRETRO)
|
||||
endif()
|
||||
|
||||
if(USE_HOST_SDL)
|
||||
- find_package(SDL2 2.0.9)
|
||||
+ find_package(SDL2 REQUIRED)
|
||||
endif()
|
||||
if(NOT SDL2_FOUND)
|
||||
set(SDL_TEST_ENABLED_BY_DEFAULT OFF)
|
||||
@@ -691,11 +691,11 @@ target_sources(${PROJECT_NAME} PRIVATE
|
||||
core/deps/chdpsr/cdipsr.cpp
|
||||
core/deps/chdpsr/cdipsr.h)
|
||||
|
||||
-add_subdirectory(core/deps/nowide EXCLUDE_FROM_ALL)
|
||||
+add_subdirectory(core/deps/nowide)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE nowide::nowide)
|
||||
|
||||
if(NOT MINIUPNP_FOUND)
|
||||
- if(NINTENDO_SWITCH)
|
||||
+ if(NINTENDO_SWITCH OR REDOX)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE FEAT_NO_MINIUPNPC)
|
||||
else()
|
||||
option(UPNPC_BUILD_SHARED "Build shared library" OFF)
|
||||
Submodule core/deps/asio contains modified content
|
||||
diff --git a/core/deps/asio/asio/include/asio/detail/config.hpp b/core/deps/asio/asio/include/asio/detail/config.hpp
|
||||
index 61ee752..4b140b9 100644
|
||||
--- a/core/deps/asio/asio/include/asio/detail/config.hpp
|
||||
+++ b/core/deps/asio/asio/include/asio/detail/config.hpp
|
||||
@@ -828,6 +828,7 @@
|
||||
|| defined(__NetBSD__) \
|
||||
|| defined(__OpenBSD__) \
|
||||
|| defined(__linux__) \
|
||||
+ || defined(__redox__) \
|
||||
|| defined(__HAIKU__)
|
||||
# define ASIO_HAS_UNISTD_H 1
|
||||
# endif
|
||||
@@ -1093,7 +1094,6 @@
|
||||
# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS)
|
||||
# endif // !defined(ASIO_DISABLE_THREADS)
|
||||
#endif // !defined(ASIO_HAS_THREADS)
|
||||
-
|
||||
// POSIX threads.
|
||||
#if !defined(ASIO_HAS_PTHREADS)
|
||||
# if defined(ASIO_HAS_THREADS)
|
||||
diff --git a/core/hw/sh4/modules/serial.cpp b/core/hw/sh4/modules/serial.cpp
|
||||
index aca43a0..11991e9 100644
|
||||
--- a/core/hw/sh4/modules/serial.cpp
|
||||
+++ b/core/hw/sh4/modules/serial.cpp
|
||||
@@ -475,7 +475,7 @@ struct PTYPipe : public SerialPort::Pipe
|
||||
|
||||
void init()
|
||||
{
|
||||
-#if defined(__unix__) || defined(__APPLE__)
|
||||
+#if (defined(__unix__) || defined(__APPLE__)) && !defined(__redox__)
|
||||
if (config::SerialConsole && config::SerialPTY && tty == 1)
|
||||
{
|
||||
tty = open("/dev/ptmx", O_RDWR | O_NDELAY | O_NOCTTY | O_NONBLOCK);
|
||||
diff --git a/core/linux/context.cpp b/core/linux/context.cpp
|
||||
index 7ab2d8e..8a2bb2c 100644
|
||||
--- a/core/linux/context.cpp
|
||||
+++ b/core/linux/context.cpp
|
||||
@@ -8,11 +8,11 @@
|
||||
#define __USE_GNU 1
|
||||
#endif
|
||||
|
||||
- #if !defined(__OpenBSD__)
|
||||
+ #if !defined(__OpenBSD__) && !defined(__redox__)
|
||||
#include <ucontext.h>
|
||||
#endif
|
||||
|
||||
- #if defined(__OpenBSD__)
|
||||
+ #if defined(__OpenBSD__) || defined(__redox__)
|
||||
#include <signal.h>
|
||||
#endif
|
||||
|
||||
@@ -112,6 +112,11 @@ static void context_segfault(host_context_t* hostctx, void* segfault_ctx)
|
||||
bicopy<ToSegfault>(hostctx->rsp, MCTX(.__gregs[_REG_RSP]));
|
||||
bicopy<ToSegfault>(hostctx->r9, MCTX(.__gregs[_REG_R9]));
|
||||
bicopy<ToSegfault>(hostctx->rdi, MCTX(.__gregs[_REG_RDI]));
|
||||
+ #elif defined(__redox__)
|
||||
+ bicopy<ToSegfault>(hostctx->pc, MCTX(.rip));
|
||||
+ bicopy<ToSegfault>(hostctx->rsp, MCTX(.rsp));
|
||||
+ bicopy<ToSegfault>(hostctx->r9, MCTX(.r9));
|
||||
+ bicopy<ToSegfault>(hostctx->rdi, MCTX(.rdi));
|
||||
#elif defined(__unix__)
|
||||
bicopy<ToSegfault>(hostctx->pc, MCTX(.gregs[REG_RIP]));
|
||||
bicopy<ToSegfault>(hostctx->rsp, MCTX(.gregs[REG_RSP]));
|
||||
diff --git a/core/network/dns.cpp b/core/network/dns.cpp
|
||||
index 4d45c4a..96752ef 100644
|
||||
--- a/core/network/dns.cpp
|
||||
+++ b/core/network/dns.cpp
|
||||
@@ -153,7 +153,7 @@ pico_ip4 parseDnsResponsePacket(const void *buf, size_t len)
|
||||
return { ~0u };
|
||||
}
|
||||
|
||||
-#if !defined(_WIN32) && !defined(__SWITCH__)
|
||||
+#if !defined(_WIN32) && !defined(__SWITCH__) && !defined(__redox__)
|
||||
#include <ifaddrs.h>
|
||||
#include <net/if.h>
|
||||
#endif
|
||||
@@ -200,7 +200,7 @@ bool is_local_address(u32 addr)
|
||||
}
|
||||
closesocket(sd);
|
||||
|
||||
-#elif defined(__SWITCH__)
|
||||
+#elif defined(__SWITCH__) || defined(__redox__)
|
||||
// TODO
|
||||
#else // !_WIN32 && !__SWITCH__
|
||||
|
||||
diff --git a/core/network/net_platform.h b/core/network/net_platform.h
|
||||
index 8b5ea48..1a20e0b 100644
|
||||
--- a/core/network/net_platform.h
|
||||
+++ b/core/network/net_platform.h
|
||||
@@ -91,7 +91,7 @@ static inline void set_tcp_nodelay(sock_t fd)
|
||||
#if defined(_WIN32)
|
||||
struct protoent *tcp_proto = getprotobyname("TCP");
|
||||
setsockopt(fd, tcp_proto->p_proto, TCP_NODELAY, (const char *)&optval, optlen);
|
||||
-#elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
|
||||
+#elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__redox__)
|
||||
setsockopt(fd, SOL_TCP, TCP_NODELAY, (const void *)&optval, optlen);
|
||||
#else
|
||||
struct protoent *tcp_proto = getprotobyname("TCP");
|
||||
diff --git a/core/rend/TexCache.cpp b/core/rend/TexCache.cpp
|
||||
index 35b41b7..2782d5e 100644
|
||||
--- a/core/rend/TexCache.cpp
|
||||
+++ b/core/rend/TexCache.cpp
|
||||
@@ -670,7 +670,10 @@ bool BaseTextureCacheData::Update()
|
||||
mipmapped = false;
|
||||
}
|
||||
//lock the texture to detect changes in it
|
||||
+// TODO: No SIGSEGV handler on redox
|
||||
+#if !defined(__redox__)
|
||||
protectVRam();
|
||||
+#endif
|
||||
|
||||
UploadToGPU(upscaled_w, upscaled_h, (const u8 *)temp_tex_buffer, IsMipmapped(), mipmapped);
|
||||
if (config::DumpTextures)
|
||||
@ -1,5 +1,8 @@
|
||||
[source]
|
||||
git = "https://github.com/jackpot51/retroarch.git"
|
||||
script = """
|
||||
./fetch-submodules.sh
|
||||
"""
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
@ -12,10 +15,6 @@ dependencies = [
|
||||
"zlib",
|
||||
]
|
||||
script = """
|
||||
pushd "${COOKBOOK_SOURCE}"
|
||||
./fetch-submodules.sh
|
||||
popd
|
||||
|
||||
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
|
||||
|
||||
# For now, we will statically link with the snes9x libretro
|
||||
|
||||
@ -3,7 +3,7 @@ tar = "https://github.com/diasurgical/devilutionX/archive/refs/tags/1.5.4.tar.gz
|
||||
blake3 = "d4a61ff3a7c69d86a29158918aad48ab9c4866c6a22a3e8da5feadbb7d23b3ca"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
template = "cmake"
|
||||
dependencies = [
|
||||
"bzip2",
|
||||
"libiconv",
|
||||
@ -11,27 +11,10 @@ dependencies = [
|
||||
"sdl1",
|
||||
"zlib",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
COOKBOOK_CONFIGURE="cmake"
|
||||
COOKBOOK_CONFIGURE_FLAGS=(
|
||||
-DBUILD_TESTING=OFF
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DCMAKE_CROSSCOMPILING=ON
|
||||
-DCMAKE_CXX_COMPILER="${TARGET}-g++"
|
||||
-DCMAKE_C_COMPILER="${TARGET}-gcc"
|
||||
-DCMAKE_INSTALL_PREFIX="/"
|
||||
-DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}"
|
||||
-DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
-DDEVILUTIONX_SYSTEM_BZIP2=ON
|
||||
-DDEVILUTIONX_SYSTEM_ZLIB=ON
|
||||
-DNONET=ON
|
||||
-DSDL_LIBRARY="-lSDL -lorbital"
|
||||
-DUSE_SDL1=ON
|
||||
"${COOKBOOK_SOURCE}"
|
||||
)
|
||||
cookbook_configure
|
||||
mkdir -v "${COOKBOOK_STAGE}/bin"
|
||||
cp -v devilutionx "${COOKBOOK_STAGE}/bin"
|
||||
"""
|
||||
cmakeflags = [
|
||||
"-DDEVILUTIONX_SYSTEM_BZIP2=ON",
|
||||
"-DDEVILUTIONX_SYSTEM_ZLIB=ON",
|
||||
"-DNONET=ON",
|
||||
"-DSDL_LIBRARY=-lSDL -lorbital",
|
||||
"-DUSE_SDL1=ON",
|
||||
]
|
||||
|
||||
@ -4,12 +4,12 @@ git = "https://gitlab.redox-os.org/redox-os/freedoom.git"
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/games" "${COOKBOOK_STAGE}/share/games/doom" "${COOKBOOK_STAGE}/usr/share/ui/apps" "${COOKBOOK_STAGE}/usr/share/icons/apps"
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/games" "${COOKBOOK_STAGE}/usr/share/games/doom" "${COOKBOOK_STAGE}/usr/share/ui/apps" "${COOKBOOK_STAGE}/usr/share/icons/apps"
|
||||
for file in "${COOKBOOK_SOURCE}/"*.wad
|
||||
do
|
||||
game="$(basename "$file" .wad)"
|
||||
|
||||
wad="/share/games/doom/$game.wad"
|
||||
wad="/usr/share/games/doom/$game.wad"
|
||||
cp -v "$file" "${COOKBOOK_STAGE}$wad"
|
||||
|
||||
bin="/usr/games/$game"
|
||||
@ -20,7 +20,7 @@ do
|
||||
echo "name=$game" | sed 's/freedoom/FreeDOOM: Phase /' | sed 's/doom1/DOOM (Shareware)/' > "${COOKBOOK_STAGE}/usr/share/ui/apps/$game"
|
||||
echo "category=Games" >> "${COOKBOOK_STAGE}/usr/share/ui/apps/$game"
|
||||
echo "binary=/usr/games/$game" >> "${COOKBOOK_STAGE}/usr/share/ui/apps/$game"
|
||||
echo "icon=/ui/icons/apps/$game.png" >> "${COOKBOOK_STAGE}/usr/share/ui/apps/$game"
|
||||
echo "icon=/usr/share/ui/icons/apps/$game.png" >> "${COOKBOOK_STAGE}/usr/share/ui/apps/$game"
|
||||
|
||||
cp -v "${COOKBOOK_SOURCE}/$game.png" "${COOKBOOK_STAGE}/usr/share/icons/apps/$game.png"
|
||||
done
|
||||
|
||||
@ -14,36 +14,8 @@ dependencies = [
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL2"
|
||||
export CXXFLAGS="${CXXFLAGS} -I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL2"
|
||||
cat > redox.cmake <<EOF
|
||||
# the name of the target operating system
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR "${TARGET%%-*}")
|
||||
|
||||
# which compilers to use for C and C++
|
||||
set(CMAKE_C_COMPILER "${TARGET}-gcc")
|
||||
set(CMAKE_CXX_COMPILER "${TARGET}-g++")
|
||||
|
||||
# where is the target environment located
|
||||
set(CMAKE_FIND_ROOT_PATH "${COOKBOOK_SYSROOT}")
|
||||
|
||||
# adjust the default behavior of the FIND_XXX() commands:
|
||||
# search programs in the host environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
# search headers, libraries, and packages in the target environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
EOF
|
||||
COOKBOOK_CONFIGURE="cmake"
|
||||
COOKBOOK_CONFIGURE_FLAGS=(
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DCMAKE_INSTALL_PREFIX="/"
|
||||
-DCMAKE_TOOLCHAIN_FILE=redox.cmake
|
||||
-DCMAKE_VERBOSE_MAKEFILE=On
|
||||
export CPPFLAGS="${CPPFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL2"
|
||||
COOKBOOK_CMAKE_FLAGS+=(
|
||||
-DJPEG_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include"
|
||||
-DJPEG_LIBRARY="-ljpeg"
|
||||
-DPNG_PNG_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include"
|
||||
@ -51,10 +23,8 @@ COOKBOOK_CONFIGURE_FLAGS=(
|
||||
-DSDL2_LIBRARIES="-lSDL2 -lorbital $("${TARGET}-pkg-config" --libs osmesa)"
|
||||
-DZLIB_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include"
|
||||
-DZLIB_LIBRARY="-lz"
|
||||
"${COOKBOOK_SOURCE}"
|
||||
)
|
||||
"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}"
|
||||
"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" openjk_sp.x86_64
|
||||
mkdir -pv "${COOKBOOK_STAGE}/home/user/JediAcademy"
|
||||
cp -v openjk_sp.x86_64 "${COOKBOOK_STAGE}/home/user/JediAcademy"
|
||||
cookbook_cmake
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/games/JediAcademy"
|
||||
cp -v openjk_sp.x86_64 "${COOKBOOK_STAGE}/usr/games/JediAcademy"
|
||||
"""
|
||||
|
||||
@ -4,6 +4,6 @@ git = "https://gitlab.redox-os.org/redox-os/openttd-opengfx.git"
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
mkdir -pv "${COOKBOOK_STAGE}/share/games/openttd/baseset/opengfx"
|
||||
cp -Rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/share/games/openttd/baseset/opengfx"
|
||||
"""
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/share/games/openttd/baseset/opengfx"
|
||||
cp -Rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/usr/share/games/openttd/baseset/opengfx"
|
||||
"""
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
# XXX: Do not distribute https://github.com/sm64pc/sm64ex/issues/89
|
||||
[source]
|
||||
git = "https://github.com/jackpot51/sm64ex.git"
|
||||
|
||||
|
||||
@ -1,31 +1,30 @@
|
||||
[source]
|
||||
tar = "https://github.com/fragglet/sdl-sopwith/releases/download/sdl-sopwith-1.8.4/sopwith-1.8.4.tar.gz"
|
||||
blake3 = "44e1404a9c4bea257d7778d2a4b1512231603a74b0a7b18eac5d18f36730ed3e"
|
||||
tar = "https://github.com/fragglet/sdl-sopwith/releases/download/sdl-sopwith-2.9.0/sdl-sopwith-2.9.0.tar.gz"
|
||||
blake3 = "f06a6d0c826b42989c58074f85ed8e19fbfd5fe53a357ba356bc1109bcf91ef3"
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
autotools_recursive_regenerate
|
||||
"""
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = [
|
||||
"sdl1",
|
||||
"sdl2",
|
||||
"liborbital",
|
||||
"libiconv",
|
||||
]
|
||||
dev-dependencies = [
|
||||
"libstdcxx"
|
||||
]
|
||||
script = """
|
||||
export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL"
|
||||
export LIBS="-lSDL -lorbital" # TODO: Uses sdl-config instead of pkg-config
|
||||
DYNAMIC_INIT
|
||||
|
||||
# For some reason, cook_configure breaks spectacularly on this
|
||||
# We will just copy instead
|
||||
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
|
||||
|
||||
wget -O autotools/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false"
|
||||
|
||||
./configure \\
|
||||
--build="$(gcc -dumpmachine)" \\
|
||||
--host="${TARGET}" \\
|
||||
--prefix="" \\
|
||||
COOKBOOK_CONFIGURE="./configure"
|
||||
COOKBOOK_CONFIGURE_FLAGS+=(
|
||||
--with-sdl-prefix="${COOKBOOK_SYSROOT}"
|
||||
|
||||
make -j"$(nproc)"
|
||||
|
||||
make DESTDIR="${COOKBOOK_STAGE}" install
|
||||
"""
|
||||
)
|
||||
cookbook_configure
|
||||
"""
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
# XXX: Do not distribute https://github.com/k4zmu2a/SpaceCadetPinball/issues/1
|
||||
[source]
|
||||
git = "https://gitlab.redox-os.org/xTibor/SpaceCadetPinball.git"
|
||||
upstream = "https://github.com/k4zmu2a/SpaceCadetPinball.git"
|
||||
branch = "redox"
|
||||
git = "https://github.com/k4zmu2a/SpaceCadetPinball.git"
|
||||
rev = "f760f34e5eb49c69d584921c0f3e251a59c62078"
|
||||
patches = [ "redox.patch" ]
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
@ -16,11 +17,5 @@ dependencies = [
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
COOKBOOK_CONFIGURE_FLAGS=(
|
||||
-DSDL2_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include/SDL2"
|
||||
-DSDL2_LIBRARY="-lSDL2_mixer -lvorbisfile -lvorbis -logg -lSDL2 -lorbital $("${TARGET}-pkg-config" --libs osmesa)"
|
||||
-DSDL2_MIXER_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include/SDL2"
|
||||
-DSDL2_MIXER_LIBRARY="SDL2_mixer"
|
||||
)
|
||||
cookbook_cmake
|
||||
"""
|
||||
|
||||
13
recipes/games/spacecadetpinball/redox.patch
Normal file
13
recipes/games/spacecadetpinball/redox.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 3578112..3fe166d 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -205,7 +205,7 @@ target_link_libraries(SpaceCadetPinball ${SDL2_LIBRARY})
|
||||
# Workaround: CMake treats these SDL2_mixer link flags as build targets for some
|
||||
# reason I was not able to figure out why. I moved these mixer link flags to
|
||||
# the SDL2 linker flags as a workaround.
|
||||
-#target_link_libraries(SpaceCadetPinball ${SDL2_MIXER_LIBRARY})
|
||||
+target_link_libraries(SpaceCadetPinball ${SDL2_MIXER_LIBRARY})
|
||||
|
||||
# On Windows, copy DLL to output
|
||||
if(WIN32)
|
||||
@ -1,6 +1,5 @@
|
||||
#!/usr/bin/env ion
|
||||
export RUST_BACKTRACE=full
|
||||
cd /home/user/acid
|
||||
cargo test
|
||||
bash /root/relibc-tests/run.sh
|
||||
os-test-runner
|
||||
acid-runner
|
||||
relibc-tests-runner
|
||||
os-test-runner
|
||||
|
||||
8
recipes/groups/autotools/recipe.toml
Normal file
8
recipes/groups/autotools/recipe.toml
Normal file
@ -0,0 +1,8 @@
|
||||
[package]
|
||||
dependencies = [
|
||||
"autoconf",
|
||||
"automake",
|
||||
"libtool",
|
||||
"gettext",
|
||||
"gnu-make",
|
||||
]
|
||||
@ -7,6 +7,7 @@ dependencies = [
|
||||
"cosmic-icons",
|
||||
"cosmic-term",
|
||||
"dejavu",
|
||||
"file",
|
||||
"freefont",
|
||||
"hicolor-icon-theme",
|
||||
"installer-gui",
|
||||
|
||||
@ -1,16 +1,20 @@
|
||||
[package]
|
||||
dependencies = [
|
||||
"autoconf",
|
||||
"automake",
|
||||
"autotools",
|
||||
#"bison", #TODO: fix compilation error
|
||||
"cmake",
|
||||
#"debugedit", #TODO: compile and test
|
||||
"gcc13",
|
||||
"gcc13.cxx",
|
||||
"gnu-binutils",
|
||||
"gnu-make",
|
||||
"gnu-grep",
|
||||
"groff",
|
||||
"gawk",
|
||||
"file",
|
||||
"perl5",
|
||||
"python312",
|
||||
"ripgrep",
|
||||
"lua54",
|
||||
"m4",
|
||||
"nasm",
|
||||
"patch",
|
||||
"pkg-config",
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
[package]
|
||||
dependencies = [
|
||||
"caja",
|
||||
"dconf",
|
||||
"marco",
|
||||
"mate-control-center",
|
||||
"mate-icon-theme",
|
||||
@ -8,4 +9,5 @@ dependencies = [
|
||||
"mate-session-manager",
|
||||
"mate-settings-daemon",
|
||||
"mate-terminal",
|
||||
"mate-themes",
|
||||
]
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
[package]
|
||||
dependencies = [
|
||||
"base",
|
||||
"bootloader",
|
||||
"coreutils",
|
||||
"kernel",
|
||||
"relibc",
|
||||
"base",
|
||||
"coreutils",
|
||||
"base-initfs",
|
||||
]
|
||||
|
||||
12
recipes/groups/xfce4-common/recipe.toml
Normal file
12
recipes/groups/xfce4-common/recipe.toml
Normal file
@ -0,0 +1,12 @@
|
||||
[package]
|
||||
dependencies = [
|
||||
"thunar",
|
||||
"tumbler",
|
||||
"xfconf",
|
||||
"xfdesktop",
|
||||
"xfce4-appfinder",
|
||||
"xfce4-session",
|
||||
"xfce4-panel",
|
||||
"xfce4-settings",
|
||||
"xfwm4",
|
||||
]
|
||||
12
recipes/groups/xfce4-full/recipe.toml
Normal file
12
recipes/groups/xfce4-full/recipe.toml
Normal file
@ -0,0 +1,12 @@
|
||||
[package]
|
||||
dependencies = [
|
||||
"mousepad",
|
||||
"parole",
|
||||
"ristretto",
|
||||
"xfdashboard",
|
||||
"xfce4-screenshooter",
|
||||
"xfce4-notifyd",
|
||||
"xfce4-power-manager",
|
||||
"xfce4-terminal",
|
||||
"xfce4-common",
|
||||
]
|
||||
@ -6,5 +6,5 @@ shallow_clone = true
|
||||
template = "custom"
|
||||
script = """
|
||||
cd "${COOKBOOK_SOURCE}"
|
||||
just rootdir="${COOKBOOK_STAGE}" prefix="" install
|
||||
just rootdir="${COOKBOOK_STAGE}" prefix="/usr" install
|
||||
"""
|
||||
|
||||
@ -3,16 +3,11 @@ git = "https://github.com/pop-os/icon-theme.git"
|
||||
shallow_clone = true
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
meson setup -Dprefix=/ . "${COOKBOOK_SOURCE}"
|
||||
env DESTDIR="${COOKBOOK_STAGE}" meson install
|
||||
"""
|
||||
template = "meson"
|
||||
|
||||
[[optional-packages]]
|
||||
name = "cursors"
|
||||
files = [
|
||||
"share/icons/Pop/cursors**",
|
||||
"share/icons/Pop/cursor.theme",
|
||||
"usr/share/icons/Pop/cursors**",
|
||||
"usr/share/icons/Pop/cursor.theme",
|
||||
]
|
||||
|
||||
|
||||
@ -5,30 +5,24 @@ patches = ["redox.patch"]
|
||||
|
||||
[build]
|
||||
dependencies = [
|
||||
"expat",
|
||||
"freetype2",
|
||||
"fontconfig",
|
||||
"gettext",
|
||||
"fontconfig",
|
||||
"freetype2",
|
||||
"glib",
|
||||
"libffi",
|
||||
"libiconv",
|
||||
"libpng",
|
||||
"libpthread-stubs",
|
||||
"libpng",
|
||||
"libx11",
|
||||
"libxau",
|
||||
"libxcb",
|
||||
"libxext",
|
||||
"pcre2",
|
||||
"pixman",
|
||||
"x11proto",
|
||||
"zlib",
|
||||
"libxrender",
|
||||
"pixman",
|
||||
]
|
||||
dev-dependencies = [
|
||||
# xext and xrender is required by pkg-config, don't move them here
|
||||
]
|
||||
template = "custom"
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
#TODO: fix mutex implementation
|
||||
#TODO: why are math defines missing?
|
||||
CFLAGS="${CFLAGS} -DCAIRO_NO_MUTEX=1 -DM_SQRT2=1.41421356237309504880 -DM_LN2=0.69314718055994530942"
|
||||
CFLAGS="${CFLAGS} -DM_SQRT2=1.41421356237309504880 -DM_LN2=0.69314718055994530942"
|
||||
cookbook_meson \
|
||||
-Dxlib-xcb=enabled \
|
||||
-Dtests=disabled
|
||||
|
||||
@ -11,12 +11,17 @@ dependencies = [
|
||||
"gettext",
|
||||
"libffi",
|
||||
"libiconv",
|
||||
"libinotify-stub",
|
||||
"pcre2",
|
||||
"zlib",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
export CFLAGS="$CFLAGS -I$COOKBOOK_SYSROOT/include/inotify"
|
||||
export LDFLAGS="$LDFLAGS -linotify"
|
||||
cookbook_meson \
|
||||
-Ddefault_library=shared \
|
||||
-Dxattr=false
|
||||
-Dxattr=false \
|
||||
-Dtests=false \
|
||||
-Dfile_monitor_backend=inotify
|
||||
"""
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
[source]
|
||||
tar = "https://libarchive.org/downloads/libarchive-3.6.2.tar.xz"
|
||||
blake3 = "f98695fe81235a74fa3fc2c3ba0f0d4f13ea15f9be3850b83e304cf5d78be710"
|
||||
patches = [
|
||||
"redox.patch"
|
||||
]
|
||||
tar = "https://libarchive.org/downloads/libarchive-3.8.7.tar.xz"
|
||||
blake3 = "6b7f744132368a53ecf98a4586af09c255f81cebf37687edd857528a1bfd3bd3"
|
||||
|
||||
[build]
|
||||
template = "configure"
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
diff -ruwN source/configure source-new/configure
|
||||
--- source/configure 2022-12-09 20:38:47.000000000 +0700
|
||||
+++ source-new/configure 2025-09-14 17:17:50.138530195 +0700
|
||||
@@ -19039,7 +19039,8 @@
|
||||
ac_fn_c_check_func "$LINENO" "fstatat" "ac_cv_func_fstatat"
|
||||
if test "x$ac_cv_func_fstatat" = xyes
|
||||
then :
|
||||
- printf "%s\n" "#define HAVE_FSTATAT 1" >>confdefs.h
|
||||
+# When fstatat works, remove this patch
|
||||
+# printf "%s\n" "#define HAVE_FSTATAT 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_func "$LINENO" "fstatfs" "ac_cv_func_fstatfs"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user