diff --git a/.gitignore b/.gitignore index fa328e945..36963a53e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ .devcontainer/ # Cookbook /repo +/web /cookbook.toml source source.tmp diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b40e36ead..74f03157f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,12 +7,14 @@ stages: - lint - test -fmt: - image: "rust:trixie" - stage: lint +workflow: rules: - if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"' - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"' + +fmt: + image: "rust:trixie" + stage: lint script: - rustup component add rustfmt - cargo fmt -- --check @@ -20,44 +22,26 @@ fmt: cargo-test: image: "rust:trixie" stage: lint - rules: - - if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"' - - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"' script: - # TODO: we should omit fuse from cargo install chains - - apt update && apt install -y fuse3 libfuse3-dev - cargo test --locked img: - image: "ubuntu:24.04" + image: "redoxos/redox-base" stage: test - rules: - - if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"' - - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"' - before_script: - # Disable the wget progress bar - - echo 'show-progress = off' >> ~/.wgetrc - - | - export DEBIAN_FRONTEND=noninteractive - apt-get update -qq && - apt-get install -qq \ - bison \ - build-essential \ - curl \ - flex \ - fuse3 \ - git \ - libfuse-dev \ - nasm \ - pkg-config \ - texinfo \ - wget \ - help2man \ - autoconf \ - automake \ - zstd script: - | export PATH="$HOME/.cargo/bin:$PATH" && - bash podman/rustinstall.sh && - PODMAN_BUILD=0 REPO_BINARY=1 FSTOOLS_NO_MOUNT=1 COOKBOOK_VERBOSE=false make ci-img IMG_TAG=$CI_COMMIT_REF_NAME + (curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal ) && + cargo install cbindgen && + PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 REPO_BINARY=1 FSTOOLS_NO_MOUNT=1 COOKBOOK_VERBOSE=false make ci-img IMG_TAG=$CI_COMMIT_REF_NAME + +pkg: + image: "rust:trixie" + stage: test + script: + - | + export PATH="$HOME/.cargo/bin:$PATH" PODMAN_BUILD=0 && + make CONFIG_NAME=ci SKIP_CHECK_TOOLS=1 repo-tree ARCH=x86_64 && + make CONFIG_NAME=ci SKIP_CHECK_TOOLS=1 repo-tree ARCH=i586 && + make CONFIG_NAME=ci SKIP_CHECK_TOOLS=1 repo-tree ARCH=aarch64 && + make CONFIG_NAME=ci SKIP_CHECK_TOOLS=1 repo-tree ARCH=riscv64gc diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 70642dfa4..000000000 --- a/.gitmodules +++ /dev/null @@ -1,5 +0,0 @@ -[submodule "rust"] - path = rust - url = https://gitlab.redox-os.org/redox-os/rust.git - branch = redox-2025-10-03 - update = none diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5b1ac3088..9c537233c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,7 @@ This is similar to [Developer Certificate of Origin](https://developercertificat ## AI Policy -We do not accept contributions with code generated by LLMs ([Large Language Models](https://en.wikipedia.org/wiki/Large_language_model)) due to issues of provenance and copyright. Such contributions also place an unreasonable burden on reviewers. You may use code completion at the level provided by `rust-analyzer`. +Redox OS does not accept contributions generated by LLMs ([Large Language Models](https://en.wikipedia.org/wiki/Large_language_model)). This policy is not open to discussion, any content submitted that is clearly labelled as AI-generated (including issues, merge requests, and merge request descriptions) will be immediately closed, and any attempt to bypass this policy will result in a ban from the project. You may use code completion similar to what is provided by `rust-analyzer`. ## Chat @@ -77,6 +77,24 @@ By sending a message in the room, your MR will not be forgotten or accumulate co You can read the best practices and guidelines on the [Best practices and guidelines](https://doc.redox-os.org/book/best-practices.html) chapter. +## Development Recommendations and Tips + +- Read the entire [Build System Reference](https://doc.redox-os.org/book/build-system-reference.html) and [Developer FAQ](https://doc.redox-os.org/book/developer-faq.html) pages +- Make sure your build system is up-to-date, read the [Update The Build System](https://doc.redox-os.org/book/build-system-reference.html#update-the-build-system) section if in doubt. +- If you want to make local changes in recipe sources it's recommended to automatic recipe source update, read [this](https://doc.redox-os.org/book/configuration-settings.html#local-recipe-changes) section to learn how to this for one or multiple recipes and [this](https://doc.redox-os.org/book/configuration-settings.html#cookbook-offline-mode) section for all recipes. +- If you want to make changes to system components, drivers or RedoxFS you need to manually update initfs, read [this](https://doc.redox-os.org/book/coding-and-building.html#how-to-update-initfs) section to learn how to do that. +- If some program can't build or work, something can be missing/hiding on [relibc](https://gitlab.redox-os.org/redox-os/relibc), like a POSIX/Linux function or bug. +- If you have some error on QEMU remember to test different settings or verify your operating system (Pop_OS!, Ubuntu, Debian and Fedora are the recommend Linux distributions to do testing/development for Redox). +- Remember to log all errors, you can use this command as example: + +```sh +your-command 2>&1 | tee file-name.log +``` + +- If you have a problem that seems to not have a solution, think on simple/stupid things. Sometimes you are very confident on your method and forget obvious things (very common). +- If you want a quick review of your Merge Request, make it small. +- If your big Merge Request is taking too long to be reviewed and merged try to split it in small MRs. But make sure it don't break anything, if this method break your changes, don't shrink. + ## Style Guidelines ### Rust @@ -109,7 +127,7 @@ Please follow [our process](https://doc.redox-os.org/book/creating-proper-pull-r ## Important Places to Contribute -Before starting to contribute, we recommend reading the [Website FAQ](https://www.redox-os.org/faq/) and the [Redox Book](https://doc.redox-os.org/book/). +Before starting to contribute, we recommend reading the [General FAQ](https://www.redox-os.org/faq/) and the [Redox Book](https://doc.redox-os.org/book/). You can contribute to the Redox documentation and code on the following repositories (non-exhaustive, easiest-to-hardest order): @@ -118,7 +136,6 @@ You can contribute to the Redox documentation and code on the following reposito - [Build System Configuration](https://gitlab.redox-os.org/redox-os/redox) - Our main repository - [Orbital](https://gitlab.redox-os.org/redox-os/orbital) - Display Server and Window Manager - [pkgutils](https://gitlab.redox-os.org/redox-os/pkgutils) - Package Manager -- [resist](https://gitlab.redox-os.org/redox-os/resist) - Redox System Interface Specifications and Tests (also has POSIX tests) - [acid](https://gitlab.redox-os.org/redox-os/acid) - Redox Test Suite - [relibc](https://gitlab.redox-os.org/redox-os/relibc) - Redox C Library - [libredox](https://gitlab.redox-os.org/redox-os/libredox) - Redox System Library @@ -238,10 +255,6 @@ You can read the [Libraries and APIs](https://doc.redox-os.org/book/libraries-ap To learn how to configure your VS Code to do Redox development please read the information below the [Visual Studio Code Configuration](https://doc.redox-os.org/book/coding-and-building.html#visual-studio-code-configuration) section. -## Development Tips - -You can find important tips on the [Development Tips](https://doc.redox-os.org/book/coding-and-building.html#development-tips) section. - ## References We maintain a list of wikis, articles and videos to learn Rust, OS development and computer science on the [References](https://doc.redox-os.org/book/references.html) page. diff --git a/Cargo.lock b/Cargo.lock index 1a5b8c998..35c265ac5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -36,15 +36,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - [[package]] name = "anyhow" version = "1.0.100" @@ -57,35 +48,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.10.0" @@ -94,31 +62,17 @@ checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "blake3" -version = "0.3.8" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" +checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" dependencies = [ "arrayref", - "arrayvec 0.5.2", + "arrayvec", "cc", - "cfg-if 0.1.10", - "constant_time_eq 0.1.5", - "crypto-mac", - "digest 0.9.0", - "rayon", -] - -[[package]] -name = "blake3" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "cc", - "cfg-if 1.0.4", - "constant_time_eq 0.3.1", + "cfg-if", + "constant_time_eq", + "cpufeatures", + "rayon-core", ] [[package]] @@ -185,12 +139,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.4" @@ -203,7 +151,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cipher", "cpufeatures", ] @@ -219,21 +167,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "ansi_term", - "atty", - "bitflags 1.3.2", - "strsim 0.8.0", - "textwrap", - "unicode-width 0.1.14", - "vec_map", -] - [[package]] name = "compact_str" version = "0.8.1" @@ -241,7 +174,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" dependencies = [ "castaway", - "cfg-if 1.0.4", + "cfg-if", "itoa", "rustversion", "ryu", @@ -250,15 +183,9 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "cpufeatures" @@ -275,7 +202,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", ] [[package]] @@ -322,23 +249,13 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array", - "subtle", -] - [[package]] name = "curve25519-dalek" version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures", "curve25519-dalek-derive", "fiat-crypto", @@ -378,7 +295,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim 0.11.1", + "strsim", "syn", ] @@ -393,15 +310,6 @@ dependencies = [ "syn", ] -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - [[package]] name = "digest" version = "0.10.7" @@ -439,7 +347,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e73e0fee365832cd9b9a53ea62f944cc0d7a4c71f2b9c96a28fc74749517afa" dependencies = [ - "bitflags 2.10.0", + "bitflags", "chacha20", "curve25519-dalek", "generic-array", @@ -471,17 +379,6 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" -[[package]] -name = "filedescriptor" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" -dependencies = [ - "libc", - "thiserror 1.0.69", - "winapi", -] - [[package]] name = "find-msvc-tools" version = "0.1.5" @@ -490,9 +387,9 @@ checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" [[package]] name = "flate2" -version = "1.1.5" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", @@ -526,7 +423,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] @@ -537,7 +434,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "libc", "wasi 0.11.1+wasi-snapshot-preview1", ] @@ -578,15 +475,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - [[package]] name = "hex" version = "0.4.3" @@ -692,7 +580,7 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ - "bitflags 2.10.0", + "bitflags", "libc", "redox_syscall", ] @@ -712,6 +600,15 @@ dependencies = [ "hashbrown 0.15.5", ] +[[package]] +name = "lzma-rust2" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47bb1e988e6fb779cf720ad431242d3f03167c1b3f2b1aae7f1a94b2495b36ae" +dependencies = [ + "sha2", +] + [[package]] name = "memchr" version = "2.7.6" @@ -800,13 +697,12 @@ dependencies = [ [[package]] name = "pkgar" -version = "0.1.19" -source = "git+https://gitlab.redox-os.org/redox-os/pkgar.git#e265d32cc0bb149a9574d4500e5409cbb8b662d5" +version = "0.2.1" +source = "git+https://gitlab.redox-os.org/redox-os/pkgar.git#b544d6b6612b58524de2ea9d857c5a349f1c99e2" dependencies = [ - "anyhow", - "blake3 0.3.8", + "blake3", "bytemuck", - "clap", + "lzma-rust2", "pkgar-core", "pkgar-keys", "thiserror 2.0.17", @@ -814,22 +710,20 @@ dependencies = [ [[package]] name = "pkgar-core" -version = "0.1.19" -source = "git+https://gitlab.redox-os.org/redox-os/pkgar.git#e265d32cc0bb149a9574d4500e5409cbb8b662d5" +version = "0.2.1" +source = "git+https://gitlab.redox-os.org/redox-os/pkgar.git#b544d6b6612b58524de2ea9d857c5a349f1c99e2" dependencies = [ - "bitflags 1.3.2", - "blake3 0.3.8", + "bitflags", + "blake3", "bytemuck", "dryoc", ] [[package]] name = "pkgar-keys" -version = "0.1.19" -source = "git+https://gitlab.redox-os.org/redox-os/pkgar.git#e265d32cc0bb149a9574d4500e5409cbb8b662d5" +version = "0.2.1" +source = "git+https://gitlab.redox-os.org/redox-os/pkgar.git#b544d6b6612b58524de2ea9d857c5a349f1c99e2" dependencies = [ - "anyhow", - "clap", "dirs", "hex", "lazy_static", @@ -874,7 +768,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.10.0", + "bitflags", "cassowary", "compact_str", "indoc", @@ -889,16 +783,6 @@ dependencies = [ "unicode-width 0.2.0", ] -[[package]] -name = "rayon" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -dependencies = [ - "either", - "rayon-core", -] - [[package]] name = "rayon-core" version = "1.13.0" @@ -911,10 +795,10 @@ dependencies = [ [[package]] name = "redox-pkg" -version = "0.2.9" -source = "git+https://gitlab.redox-os.org/redox-os/pkgutils.git#cbf88111fab76b8bfd688f144f7cc000408b180e" +version = "0.3.0" +source = "git+https://gitlab.redox-os.org/redox-os/pkgutils.git#80e0196ef0ef940ca2b243d3c10ffecbd37f11cc" dependencies = [ - "anyhow", + "hex", "ignore", "serde", "serde_derive", @@ -928,8 +812,7 @@ version = "0.1.0" dependencies = [ "ansi-to-tui", "anyhow", - "blake3 1.5.3", - "filedescriptor", + "blake3", "globset", "ignore", "libc", @@ -969,7 +852,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.10.0", + "bitflags", ] [[package]] @@ -985,11 +868,12 @@ dependencies = [ [[package]] name = "redoxer" -version = "0.2.61" -source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#f2541efeae0396907fb6febc06f95e19479609a7" +version = "0.2.62" +source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#4a68a03d517015b2776284a99609d01d3373fa28" dependencies = [ "anyhow", "dirs", + "sha2", ] [[package]] @@ -1120,9 +1004,9 @@ version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -1164,12 +1048,6 @@ dependencies = [ "vte", ] -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - [[package]] name = "strsim" version = "0.11.1" @@ -1225,15 +1103,6 @@ dependencies = [ "numtoa", ] -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width 0.1.14", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -1321,7 +1190,7 @@ version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "static_assertions", ] @@ -1366,12 +1235,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - [[package]] name = "version_check" version = "0.9.5" diff --git a/Cargo.toml b/Cargo.toml index b68ea8fba..6ece893aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,12 +27,11 @@ doctest = false [features] #TODO: Actually make without tui feature works default = ["tui"] -tui = ["ratatui", "ansi-to-tui", "filedescriptor", "strip-ansi-escapes"] +tui = ["ratatui", "ansi-to-tui", "strip-ansi-escapes"] [dependencies] anyhow = "1" -# blake3 1.5.4 is incompatible with 0.3 dependency from pkgar -blake3 = "=1.5.3" +blake3 = "1" globset = "0.4" libc = "0.2" ignore = "0.4" @@ -49,7 +48,6 @@ serde = { version = "=1.0.197", features = ["derive"] } termion = "4" toml = "0.8" walkdir = "2.3.1" -filedescriptor = { version = "0.8.3", optional = true } ansi-to-tui = { version = "7.0.0", optional = true } strip-ansi-escapes = { version = "0.2.1", optional = true } diff --git a/HARDWARE.md b/HARDWARE.md index cee97a41d..7e3926b05 100644 --- a/HARDWARE.md +++ b/HARDWARE.md @@ -1,6 +1,6 @@ # Hardware Compatibility -This document tracks the current hardware compatibility of Redox. +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) @@ -25,22 +25,28 @@ These reports helps us to fix the problems above, your report may help to fix ma ## What if my computer is customized? -You can use the "Custom" word on the "Vendor" and "Model" categories, we also recommend to add your `pciutils` log on [this document link](https://gitlab.redox-os.org/redox-os/drivers/-/blob/master/COMMUNITY-HW.md?ref_type=heads) to help us with probable porting. +If your desktop is customized (common) you should use the "Custom" word on the "Vendor" category and insert the motherboard and CPU vendor/model in the "Model" category. + +A customized laptop should only be reported if you replaced the original CPU, report the CPU vendor and model in the "Model" category. + +We also recommend to add your `pciutils` log on [this](https://gitlab.redox-os.org/redox-os/base/-/blob/main/drivers/COMMUNITY-HW.md) document to help us with probable porting. ## Status -- **Recommended:** The system boots with all features working. -- **Booting:** The system boots with some issues. -- **Broken:** The system can't boot. +- **Recommended:** The operating system boots with video, sound, PS/2 or USB input, Ethernet, terminal and Orbital working. +- **Booting:** The operating system boots with some issues or lacking hardware support (write the issues and what supported hardware is not working in the "Report" section). +- **Broken:** The boot loader don't work or can't bootstrap the operating system. ## General -This section contain limitations to consider. +This section contain limitations that apply to any status. -- ACPI support is incomplete (some things are hardcoded on the kernel) -- Wi-Fi is not supported yet -- GPU drivers aren't supported yet (only VESA and UEFI GOP) -- Automatic operating system discovery on boot loader is not implemented (remember this before installing Redox) +- ACPI support is incomplete (some things are hardcoded on the kernel to work) +- Wi-Fi and Bluetooth aren't supported yet +- AMD, NVIDIA, ARM, and PowerVR GPUs aren't supported yet (only BIOS VESA and UEFI GOP) +- I2C devices aren't supported yet (PS/2 or USB devices should be used) +- USB support varies on each device model because some USB devices require specific drivers (use input devices with standardized controls for more compatibility) +- Automatic operating system discovery is not implemented in the boot loader yet (remember this before installing Redox) ## Contribute to this document diff --git a/Makefile b/Makefile index 3cdef5c2c..e9a4fb9e3 100644 --- a/Makefile +++ b/Makefile @@ -106,6 +106,12 @@ else bash endif +setenv: FORCE + @echo export ARCH='$(ARCH)' + @echo export BOARD='$(BOARD)' + @echo export CONFIG_NAME='$(CONFIG_NAME)' + @echo BUILD='$(BUILD)' + export RUST_GDB=gdb-multiarch # Necessary when debugging for another architecture than the host GDB_KERNEL_FILE=recipes/core/kernel/target/$(TARGET)/build/kernel.sym gdb: FORCE diff --git a/bin/aarch64-unknown-redox-llvm-config b/bin/aarch64-unknown-redox-llvm-config new file mode 120000 index 000000000..a118f6a90 --- /dev/null +++ b/bin/aarch64-unknown-redox-llvm-config @@ -0,0 +1 @@ +x86_64-unknown-redox-llvm-config \ No newline at end of file diff --git a/bin/x86_64-unknown-redox-llvm-config b/bin/x86_64-unknown-redox-llvm-config index a0f050e77..db740d80e 100755 --- a/bin/x86_64-unknown-redox-llvm-config +++ b/bin/x86_64-unknown-redox-llvm-config @@ -1,23 +1,56 @@ #!/usr/bin/env python3 # This script wraps llvm-config that intended for cross compiling to Redox. -# Because we can't run llvm-config compiled to Redox, we wrap it here. -# Any recipes that calls this script must have "host:llvm.runtime" available. +# Because we can't run llvm-config compiled to Redox, we wrap it here +# and filter out architectures that do not match the current $TARGET. import os import sys import subprocess -LLVM_CONFIG = "/usr/bin/llvm-config" +LLVM_CONFIG = "/bin/llvm-config" + +# name of (--targets-built, --components prefix, --libs prefix) +ARCH_MAP = { + "x86_64": ("X86", "x86", "X86"), + "i586": ("X86", "x86", "X86"), + "aarch64": ("AArch64", "aarch64", "AArch64"), + "riscv64gc": ("RISCV", "riscv", "RISCV"), +} + +ALL_ARCH_COMPS = ["x86", "aarch64", "riscv"] +ALL_ARCH_LIBS = ["X86", "AArch64", "RISCV"] + +def is_unwanted_arch(item, allowed_prefix, all_prefixes, is_lib=False): + matched_arch = None + for arch in all_prefixes: + # libraries e.g., -lLLVMX86CodeGen / libLLVMAArch64Desc.a + if is_lib and f"LLVM{arch}" in item: + matched_arch = arch + break + # components e.g., x86codegen, aarch64desc + elif not is_lib and item.startswith(arch): + matched_arch = arch + break + + if matched_arch and matched_arch != allowed_prefix: + return True + + return False def main(): - toolchain_path = os.environ.get("COOKBOOK_TOOLCHAIN") + toolchain_path = os.environ.get("COOKBOOK_HOST_SYSROOT") sysroot_path = os.environ.get("COOKBOOK_SYSROOT") + target_triple = os.environ.get("TARGET") - if not toolchain_path or not sysroot_path: - print(f"Error: COOKBOOK_TOOLCHAIN or COOKBOOK_SYSROOT not set", file=sys.stderr) + if not toolchain_path or not sysroot_path or not target_triple: + print("Error: COOKBOOK_HOST_SYSROOT or COOKBOOK_SYSROOT or TARGET not set", file=sys.stderr) sys.exit(1) + target_arch = target_triple.split('-')[0] if target_triple else "" + mapped_archs = ARCH_MAP.get(target_arch) + target_built_name, comp_prefix, lib_prefix = mapped_archs + cmd = [toolchain_path + LLVM_CONFIG] + sys.argv[1:] try: @@ -35,17 +68,36 @@ def main(): if result.returncode != 0: sys.exit(result.returncode) - output = result.stdout + output = result.stdout.strip() + + args_set = set(sys.argv[1:]) - if sys.argv[1] in ["--bindir"]: + if "--bindir" in args_set: output = toolchain_path + "/usr/bin" - else: #if sys.argv[1] in ["--cppflags", "--cxxflags", "--includedir", "--ldflags", "--libdir", "--libfiles"] + + elif "--targets-built" in args_set: + output = target_built_name + + elif "--components" in args_set: + components = output.split() + filtered = [c for c in components if not is_unwanted_arch(c, comp_prefix, ALL_ARCH_COMPS, is_lib=False)] + output = " ".join(filtered) + + elif "--libs" in args_set: + libs = output.split() + filtered = [l for l in libs if not is_unwanted_arch(l, lib_prefix, ALL_ARCH_LIBS, is_lib=True)] + output = " ".join(filtered) + + # if "--ldflags" in args_set: + src = toolchain_path.rstrip(os.sep) + dst = sysroot_path.rstrip(os.sep) + output = output.replace(src, dst) + else: src = toolchain_path.rstrip(os.sep) dst = sysroot_path.rstrip(os.sep) - output = output.replace(src, dst) - print(output, end='') + print(output + '\n', end='') if __name__ == "__main__": main() diff --git a/config/aarch64/acid.toml b/config/aarch64/acid.toml deleted file mode 100644 index ef2ba347f..000000000 --- a/config/aarch64/acid.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration to run the "acid" tests - -include = ["../acid.toml"] diff --git a/config/aarch64/ci.toml b/config/aarch64/ci.toml index bbe0b3376..1d184f31d 100644 --- a/config/aarch64/ci.toml +++ b/config/aarch64/ci.toml @@ -7,10 +7,27 @@ prompt = false # Package settings [packages] + +# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost +#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work + +# Meta-packages below + +# auto-test = {} +# dev-essential = {} +# dev-redox = {} +# redox-tests = {} +# x11-minimal = {} +# x11-full = {} + +# Normal packages below + acid = {} +acid-bins = {} base = {} base-initfs = {} bash = {} +bash-completion = {} bootloader = {} bottom = {} ca-certificates = {} @@ -30,10 +47,11 @@ extrautils = {} findutils = {} freefont = {} freetype2 = {} +gcc13 = {} gettext = {} git = {} -# gdbserver = {} # wrong libc type -# gnu-binutils = {} # bfd doesn't recognize redox +gnu-binutils = {} +gnu-make = {} hicolor-icon-theme = {} installer = {} installer-gui = {} @@ -51,9 +69,7 @@ libstdcxx = {} libvorbis = {} libxkbcommon = {} libxml2 = {} -# mesa = {} # libudev was not found -# mesa-glu = {} # depends on mesa -# mpc = {} # libmpfr not found +llvm21 = {} nano = {} nasm = {} ncurses = {} @@ -62,24 +78,22 @@ netsurf = {} netutils = {} nghttp2 = {} openssl1 = {} +openssl3 = {} orbdata = {} orbital = {} orbterm = {} orbutils = {} -orbutils-background = {} -orbutils-launcher = {} -orbutils-orblogin = {} patch = {} -pcre = {} patchelf = {} -pop-icon-theme = {} +pcre = {} pkgutils = {} +pls = {} +pop-icon-theme = {} redoxfs = {} relibc = {} -resist = {} ripgrep = {} +rust = {} rustpython = {} -# strace = {} # unknown syscall sdl1 = {} sed = {} shared-mime-info = {} @@ -87,6 +101,220 @@ smith = {} terminfo = {} userutils = {} uutils = {} -xz = {} vim = {} +xz = {} zlib = {} +zstd = {} +# #"gcc13.cxx" = {} +# #"llvm21.clang" = {} +# #"llvm21.clang-dev" = {} +# #"llvm21.dev" = {} +# #"llvm21.lld" = {} +# #"llvm21.lld-dev" = {} +# #"llvm21.runtime" = {} +# #"python312.dev" = {} +# #"rust.doc" = {} +# #atk = {} # depends on glib which does not build +# #benchmarks = {} +# #binutils-gdb = {} +# #book = {} +# #cairo-demo = {} # linking errors +# #classicube = {} +# #cmake = {} +# #cmatrix = {} # needs ncursesw now +# #cookbook = {} +# #cosmic-reader = {} +# #cosmic-settings = {} +# #cosmic-store = {} +# #devilutionx = {} +# #dynamic-example = {} +# #fal +# #fd = {} # ctrlc-3.1.1 +# #file = {} +# #flycast = {} +# #freeciv = {} +# #freeglut = {} +# #friar = {} # mio patch +# #game-2048 = {} # rustc-serialize +# #gawk = {} # langinfo.h +# #gigalomania = {} # old recipe format +# #gitoxide = {} +# #goaccess = {} +# #gstreamer = {} # conflict with thread local errno +# #harfbuzz = {} # depends on glib which does not build +# #helix = {} +# #hello-redox = {} +# #hematite = {} # needs crate patches for redox-unix +# #hf = {} +# #ibm-plex = {} +# #iced = {} +# #jansson = {} # needs config.sub update +# #jq = {} +# #libarchive = {} +# #libatomic = {} +# #libcosmic = {} +# #libflac = {} +# #libmodplug1 = {} +# #libmpfr = {} +# #libnettle = {} +# #libogg = {} +# #libpsl = {} +# #libssh2 = {} +# #libtool = {} +# #liburcu = {} +# #libuv = {} +# #lua-compat-53 = {} +# #luajit = {} +# #luarocks = {} +# #luv = {} +# #mdp = {} # gcc hangs +# #miniserve = {} # actix +# #mpc = {} +# #mupen64plus = {} +# #ncdu = {} # multiple definitions of symbols +# #newlib = {} # obsolete +# #newlibtest = {} # obsolete +# #noto-color-emoji = {} +# #nushell = {} # needs cargo update +# #openjk = {} +# #openposixtestsuite = {} +# #opentyrian = {} +# #orbcalculator = {} +# #ostest-bins = {} +# #pango = {} # undefined references to std::__throw_system_error(int) +# #pastel = {} # needs crate patches for redox-unix +# #pathfinder = {} # servo-fontconfig +# #pciids = {} +# #pcre2 = {} +# #pixman = {} # depends on glib which does not build +# #pkgar = {} # uses virtual Cargo.toml, needs recipe update +# #pls = {} +# #pop-wallpapers = {} +# #powerline = {} # dirs +# #qemu = {} # can be built, but not working +# #quakespasm = {} +# #redox-posix-tests = {} +# #redox-ssh = {} # does not compile +# #retroarch = {} # OS_TLSIndex not declared +# #rust-cairo = {} # linking errors +# #rust-cairo-demo = {} # linking errors +# #rvvm = {} +# #schismtracker = {} # uses system includes +# #sdl-player = {} # wctype_t +# #sdl2-gfx = {} +# #sm64ex = {} +# #spacecadetpinball = {} +# #twin-commander = {} +# #ubuntu-wallpapers = {} +# #unibilium = {} +# #utf8proc = {} +# #vice = {} # linker errors +# #vvvvvv = {} # did not compile +# #webrender = {} # unwind +# #website = {} +# #wesnoth = {} +# #wget = {} +# autoconf = {} +# automake = {} +# binutils = {} +# bzip2 = {} +# cairo = {} +# cleye = {} +# composer = {} +# cpal = {} +# dosbox = {} +# duktape = {} +# eduke32 = {} +# exampled = {} +# expat = {} +# extrautils = {} +# ffmpeg6 = {} +# fontconfig = {} +# freedoom = {} +# freepats = {} +# fribidi = {} +# gdbserver = {} # wrong libc type +# gdk-pixbuf = {} +# gears = {} +# generaluser-gs = {} +# glib = {} +# glutin = {} +# gnu-grep = {} +# htop = {} +# intel-one-mono = {} +# lci = {} +# libavif = {} +# libc-bench = {} +# libedit = {} +# libgmp = {} +# libicu = {} +# libonig = {} +# libsodium = {} +# libuuid = {} +# libwebp = {} +# lsd = {} +# lua54 = {} +# lz4 = {} +# mednafen = {} +# mesa = {} # libudev was not found +# mesa-glu = {} # depends on mesa +# mgba = {} +# mpc = {} # libmpfr not found +# ncursesw = {} +# neverball = {} +# nginx = {} +# onefetch = {} +# openjazz = {} +# openssh = {} +# openttd = {} +# openttd-opengfx = {} +# openttd-openmsx = {} +# openttd-opensfx = {} +# orbclient = {} +# osdemo = {} +# perg = {} +# periodictable = {} +# perl5 = {} +# php84 = {} +# pixelcannon = {} +# pkg-config = {} +# prboom = {} +# procedural-wallpapers-rs = {} +# python312 = {} +# readline = {} +# redox-fatfs = {} +# redox-games = {} +# relibc-tests = {} +# relibc-tests-bins = {} +# rodioplay = {} +# rs-nes = {} +# rsync = {} +# rust64 = {} +# rustual-boy = {} +# scummvm = {} +# sdl-gfx = {} +# sdl1-image = {} +# sdl1-mixer = {} +# sdl1-ttf = {} +# sdl2 = {} +# sdl2-gears = {} +# sdl2-image = {} +# sdl2-mixer = {} +# sdl2-ttf = {} +# servo = {} +# shellharden = {} +# shellstorm = {} +# simple-http-server = {} +# sodium = {} +# sopwith = {} +# sqlite3 = {} +# strace = {} # unknown syscall +# syobonaction = {} +# timidity = {} +# tokei = {} +# ttf-hack = {} +# vttest = {} +# webkitgtk3 = {} +# winit = {} +# xxhash = {} +# zoxide = {} # untested diff --git a/config/aarch64/demo.toml b/config/aarch64/demo.toml index 1f6e59b5e..21586070f 100644 --- a/config/aarch64/demo.toml +++ b/config/aarch64/demo.toml @@ -1,3 +1,3 @@ # Configuration for demonstration -include = ["desktop.toml"] +include = ["../desktop.toml"] diff --git a/config/aarch64/desktop-minimal.toml b/config/aarch64/desktop-minimal.toml deleted file mode 100644 index fb09c1d09..000000000 --- a/config/aarch64/desktop-minimal.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal desktop configuration - -include = ["../desktop-minimal.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/aarch64/desktop.toml b/config/aarch64/desktop.toml deleted file mode 100644 index e4e9fa6bc..000000000 --- a/config/aarch64/desktop.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Default build system configuration - -include = ["../desktop.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} diff --git a/config/aarch64/minimal-net.toml b/config/aarch64/minimal-net.toml deleted file mode 100644 index bcdb3af01..000000000 --- a/config/aarch64/minimal-net.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal network configuration - -include = ["../minimal-net.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/aarch64/minimal.toml b/config/aarch64/minimal.toml deleted file mode 100644 index 63c04fcea..000000000 --- a/config/aarch64/minimal.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal configuration - -include = ["../minimal.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/aarch64/redoxer.toml b/config/aarch64/redoxer.toml new file mode 100644 index 000000000..a17c50c9c --- /dev/null +++ b/config/aarch64/redoxer.toml @@ -0,0 +1,8 @@ +# Configuration used for building redoxer base image + +include = ["../redoxer.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 diff --git a/config/aarch64/resist.toml b/config/aarch64/resist.toml deleted file mode 100644 index 60ac1e55b..000000000 --- a/config/aarch64/resist.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration to run the "resist" tests - -include = ["../resist.toml"] diff --git a/config/aarch64/server.toml b/config/aarch64/server.toml deleted file mode 100644 index 978aa0d0f..000000000 --- a/config/aarch64/server.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Server configuration - -include = ["../server.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/aarch64/tests.toml b/config/aarch64/tests.toml deleted file mode 100644 index 9af06ab91..000000000 --- a/config/aarch64/tests.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for testing - -include = ["../tests.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 10000 - -# Package settings -[packages] -# example = {} diff --git a/config/acid.toml b/config/acid.toml index e2853d75e..5392934f3 100644 --- a/config/acid.toml +++ b/config/acid.toml @@ -1,11 +1,11 @@ -# Configuration to run the "acid" tests +# Configuration for "acid" testing include = ["base.toml"] # General settings [general] # Filesystem size in MiB -filesystem_size = 256 +filesystem_size = 1024 # Package settings [packages] @@ -16,11 +16,16 @@ ion = {} [[files]] path = "/usr/lib/init.d/10_acid" data = """ -export RUST_BACKTRACE full -acid -acid create_test -acid switch -acid tls -acid thread +requires_weak 00_drivers +ion /usr/lib/run_acid.ion +""" + +[[files]] +path = "/usr/lib/run_acid.ion" +data = """ +#!/usr/bin/env ion +export RUST_BACKTRACE=full +cd /home/user/acid +cargo test shutdown """ diff --git a/config/auto-test.toml b/config/auto-test.toml new file mode 100644 index 000000000..b6ff9786f --- /dev/null +++ b/config/auto-test.toml @@ -0,0 +1,32 @@ +# Configuration for automated testing of essential test suites +# Smaller test suites are executed first to catch possible bugs or regressions faster + +include = ["base.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 + +# Package settings +[packages] +auto-test = {} + +[[files]] +path = "/usr/lib/init.d/30_console" +data = """ +requires_weak 10_net +ion /usr/lib/run_tests.ion +""" + +[[files]] +path = "/usr/lib/run_tests.ion" +data = """ +#!/usr/bin/env ion +export RUST_BACKTRACE=full +cd /home/user/acid +cargo test +bash /root/relibc-tests/run.sh +os-test-runner +shutdown +""" diff --git a/config/base.toml b/config/base.toml index 6fec395c0..cdb134c16 100644 --- a/config/base.toml +++ b/config/base.toml @@ -15,6 +15,8 @@ bootloader = {} kernel = {} libgcc = {} libstdcxx = {} +netdb = {} +netutils = {} relibc = {} userutils = {} uutils = {} @@ -27,21 +29,100 @@ data = """ rm -rf /tmp mkdir -m a=rwxt /tmp -ipcd -ptyd +notify ipcd +notify ptyd nowait sudo --daemon """ [[files]] path = "/usr/lib/init.d/00_drivers" data = """ -pcid-spawner /etc/pcid.d/ +requires_weak 00_base +pcid-spawner +""" + +## Network init +[[files]] +path = "/usr/lib/init.d/10_net" +data = """ +requires_weak 00_drivers +notify smolnetd +nowait dhcpd +""" + +[[files]] +path = "/etc/login_schemes.toml" +data = """ +[user_schemes.root] +schemes = ["*"] +[user_schemes.user] +schemes = [ + # Kernel schemes + "debug", + "event", + "memory", + "pipe", + "serio", + "irq", + "time", + "sys", + # Base schemes + "rand", + "null", + "zero", + "log", + # Network schemes + "ip", + "icmp", + "tcp", + "udp", + # IPC schemes + "shm", + "chan", + "uds_stream", + "uds_dgram", + # File schemes + "file", + # Display schemes + "display.vesa", + "display*", + # Other schemes + "pty", + "sudo", + "audio", + "orbital", +] """ [[files]] path = "/etc/hostname" data = "redox" +## Default net configuration (optimized for QEMU) +[[files]] +path = "/etc/net/dns" +data = """ +9.9.9.9 +""" + +[[files]] +path = "/etc/net/ip" +data = """ +10.0.2.15 +""" + +[[files]] +path = "/etc/net/ip_router" +data = """ +10.0.2.2 +""" + +[[files]] +path = "/etc/net/ip_subnet" +data = """ +255.255.255.0 +""" + # https://www.freedesktop.org/software/systemd/man/latest/os-release.html [[files]] path = "/usr/lib/os-release" @@ -124,10 +205,21 @@ path = "/share" data = "usr/share" symlink = true +[[files]] +path = "/ui" +data = "usr/share/ui" +symlink = true + ## legacy orbital font directory [[files]] -path = "/usr/share/fonts" -data = "../../ui/fonts" +path = "/usr/share/ui/fonts" +data = "/usr/share/fonts" +symlink = true + +## legacy orbital icon directory +[[files]] +path = "/usr/share/ui/icons" +data = "/usr/share/icons" symlink = true ## /var @@ -219,8 +311,6 @@ symlink = true password = "password" uid = 0 gid = 0 -name = "root" -home = "/root" shell = "/usr/bin/ion" [users.user] diff --git a/config/desktop-minimal.toml b/config/desktop-minimal.toml index 9231975db..852dc837f 100644 --- a/config/desktop-minimal.toml +++ b/config/desktop-minimal.toml @@ -1,6 +1,6 @@ # Minimal desktop configuration -include = ["minimal-net.toml"] +include = ["minimal.toml"] # General settings [general] @@ -12,22 +12,21 @@ filesystem_size = 256 orbdata = {} orbital = {} orbterm = {} -orbutils-background = {} -orbutils-launcher = {} -orbutils-orblogin = {} +orbutils = {} [[files]] path = "/usr/lib/init.d/20_orbital" data = """ -export VT 3 -nowait orbital orblogin launcher -unset VT +requires_weak 10_net +notify audiod +nowait VT=3 orbital orblogin launcher """ # Override console config to not switch to VT 2 [[files]] path = "/usr/lib/init.d/30_console" data = """ +requires_weak 20_orbital nowait getty 2 nowait getty /scheme/debug/no-preserve -J """ diff --git a/config/desktop.toml b/config/desktop.toml index 3c7bd1411..5bce3323c 100644 --- a/config/desktop.toml +++ b/config/desktop.toml @@ -1,6 +1,6 @@ # Default build system configuration -include = ["server.toml"] +include = ["desktop-minimal.toml", "server.toml"] # General settings [general] @@ -18,29 +18,9 @@ freefont = {} hicolor-icon-theme = {} installer-gui = {} netsurf = {} -orbdata = {} -orbital = {} -orbutils = {} patchelf = {} pop-icon-theme = {} rustpython = {} shared-mime-info = {} - -[[files]] -path = "/usr/lib/init.d/20_orbital" -data = """ -audiod -export BROWSER /bin/netsurf-fb -export VT 3 -nowait orbital orblogin launcher -unset BROWSER -unset VT -""" - -# Override console config to not switch to VT 2 -[[files]] -path = "/usr/lib/init.d/30_console" -data = """ -nowait getty 2 -nowait getty /scheme/debug/no-preserve -J -""" +# orbterm from desktop-minimal should be ignored +orbterm = "ignore" diff --git a/config/i586/acid.toml b/config/i586/acid.toml deleted file mode 100644 index ef2ba347f..000000000 --- a/config/i586/acid.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration to run the "acid" tests - -include = ["../acid.toml"] diff --git a/config/i586/ci.toml b/config/i586/ci.toml index 1df1e25d3..3432fba0f 100644 --- a/config/i586/ci.toml +++ b/config/i586/ci.toml @@ -7,10 +7,27 @@ prompt = false # Package settings [packages] -acid = {} + +# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost +#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work + +# Meta-packages below + +# auto-test = {} +# dev-essential = {} +# dev-redox = {} +# redox-tests = {} +# x11-minimal = {} +# x11-full = {} + +# Normal packages below + +# acid = {} # rust require dynamic linking +acid-bins = {} base = {} base-initfs = {} bash = {} +bash-completion = {} bootloader = {} bottom = {} ca-certificates = {} @@ -32,6 +49,7 @@ freefont = {} freetype2 = {} gettext = {} git = {} +gnu-make = {} hicolor-icon-theme = {} installer = {} installer-gui = {} @@ -61,9 +79,6 @@ orbdata = {} orbital = {} orbterm = {} orbutils = {} -orbutils-background = {} -orbutils-launcher = {} -orbutils-orblogin = {} patch = {} pcre = {} patchelf = {} @@ -71,7 +86,6 @@ pop-icon-theme = {} pkgutils = {} redoxfs = {} relibc = {} -resist = {} ripgrep = {} rustpython = {} sdl1 = {} @@ -84,3 +98,220 @@ uutils = {} xz = {} #vim = {} # conflicting types zlib = {} + +# #"gcc13.cxx" = {} +# #"llvm21.clang" = {} +# #"llvm21.clang-dev" = {} +# #"llvm21.dev" = {} +# #"llvm21.lld" = {} +# #"llvm21.lld-dev" = {} +# #"llvm21.runtime" = {} +# #"python312.dev" = {} +# #"rust.doc" = {} +# #atk = {} # depends on glib which does not build +# #benchmarks = {} +# #binutils-gdb = {} +# #book = {} +# #cairo-demo = {} # linking errors +# #classicube = {} +# #cmake = {} +# #cmatrix = {} # needs ncursesw now +# #cookbook = {} +# #cosmic-reader = {} +# #cosmic-settings = {} +# #cosmic-store = {} +# #devilutionx = {} +# #dynamic-example = {} +# #fal +# #fd = {} # ctrlc-3.1.1 +# #file = {} +# #flycast = {} +# #freeciv = {} +# #freeglut = {} +# #friar = {} # mio patch +# #game-2048 = {} # rustc-serialize +# #gawk = {} # langinfo.h +# #gigalomania = {} # old recipe format +# #gitoxide = {} +# #goaccess = {} +# #gstreamer = {} # conflict with thread local errno +# #harfbuzz = {} # depends on glib which does not build +# #helix = {} +# #hello-redox = {} +# #hematite = {} # needs crate patches for redox-unix +# #hf = {} +# #ibm-plex = {} +# #iced = {} +# #jansson = {} # needs config.sub update +# #jq = {} +# #libarchive = {} +# #libatomic = {} +# #libcosmic = {} +# #libflac = {} +# #libmodplug1 = {} +# #libmpfr = {} +# #libnettle = {} +# #libogg = {} +# #libpsl = {} +# #libssh2 = {} +# #libtool = {} +# #liburcu = {} +# #libuv = {} +# #lua-compat-53 = {} +# #luajit = {} +# #luarocks = {} +# #luv = {} +# #mdp = {} # gcc hangs +# #miniserve = {} # actix +# #mpc = {} +# #mupen64plus = {} +# #ncdu = {} # multiple definitions of symbols +# #newlib = {} # obsolete +# #newlibtest = {} # obsolete +# #noto-color-emoji = {} +# #nushell = {} # needs cargo update +# #openjk = {} +# #openposixtestsuite = {} +# #opentyrian = {} +# #orbcalculator = {} +# #ostest-bins = {} +# #pango = {} # undefined references to std::__throw_system_error(int) +# #pastel = {} # needs crate patches for redox-unix +# #pathfinder = {} # servo-fontconfig +# #pciids = {} +# #pcre2 = {} +# #pixman = {} # depends on glib which does not build +# #pkgar = {} # uses virtual Cargo.toml, needs recipe update +# #pls = {} +# #pop-wallpapers = {} +# #powerline = {} # dirs +# #qemu = {} # can be built, but not working +# #quakespasm = {} +# #redox-posix-tests = {} +# #redox-ssh = {} # does not compile +# #retroarch = {} # OS_TLSIndex not declared +# #rust-cairo = {} # linking errors +# #rust-cairo-demo = {} # linking errors +# #rvvm = {} +# #schismtracker = {} # uses system includes +# #sdl-player = {} # wctype_t +# #sdl2-gfx = {} +# #sm64ex = {} +# #spacecadetpinball = {} +# #twin-commander = {} +# #ubuntu-wallpapers = {} +# #unibilium = {} +# #utf8proc = {} +# #vice = {} # linker errors +# #vvvvvv = {} # did not compile +# #webrender = {} # unwind +# #website = {} +# #wesnoth = {} +# #wget = {} +# autoconf = {} +# automake = {} +# binutils = {} +# bzip2 = {} +# cairo = {} +# cleye = {} +# composer = {} +# cpal = {} +# dosbox = {} +# duktape = {} +# eduke32 = {} +# exampled = {} +# ffmpeg6 = {} +# fontconfig = {} +# freedoom = {} +# freepats = {} +# fribidi = {} +# gcc13 = {} +# gdbserver = {} +# gdk-pixbuf = {} +# gears = {} +# generaluser-gs = {} +# glib = {} +# glutin = {} +# gnu-binutils = {} +# gnu-grep = {} +# htop = {} +# intel-one-mono = {} +# lci = {} +# libavif = {} +# libc-bench = {} +# libedit = {} +# libgmp = {} +# libicu = {} +# libonig = {} +# libsodium = {} +# libuuid = {} +# libwebp = {} +# llvm21 = {} +# lsd = {} +# lua54 = {} +# lz4 = {} +# mednafen = {} +# mesa = {} +# mesa-glu = {} +# mgba = {} +# ncursesw = {} +# neverball = {} +# nginx = {} +# onefetch = {} +# openjazz = {} +# openssh = {} +# openssl3 = {} +# openttd = {} +# openttd-opengfx = {} +# openttd-openmsx = {} +# openttd-opensfx = {} +# orbclient = {} +# osdemo = {} +# perg = {} +# periodictable = {} +# perl5 = {} +# php84 = {} +# pixelcannon = {} +# pkg-config = {} +# prboom = {} +# procedural-wallpapers-rs = {} +# python312 = {} +# readline = {} +# redox-fatfs = {} +# redox-games = {} +# relibc-tests = {} +# relibc-tests-bins = {} +# rodioplay = {} +# rs-nes = {} +# rsync = {} +# rust = {} +# rust64 = {} +# rustual-boy = {} +# scummvm = {} +# sdl-gfx = {} +# sdl1-image = {} +# sdl1-mixer = {} +# sdl1-ttf = {} +# sdl2 = {} +# sdl2-gears = {} +# sdl2-image = {} +# sdl2-mixer = {} +# sdl2-ttf = {} +# servo = {} +# shellharden = {} +# shellstorm = {} +# simple-http-server = {} +# sodium = {} +# sopwith = {} +# sqlite3 = {} +# strace = {} +# syobonaction = {} +# timidity = {} +# tokei = {} +# ttf-hack = {} +# vttest = {} +# webkitgtk3 = {} +# winit = {} +# xxhash = {} +# zoxide = {} # untested +# zstd = {} diff --git a/config/i586/desktop-minimal.toml b/config/i586/desktop-minimal.toml deleted file mode 100644 index fb09c1d09..000000000 --- a/config/i586/desktop-minimal.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal desktop configuration - -include = ["../desktop-minimal.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/i586/desktop.toml b/config/i586/desktop.toml deleted file mode 100644 index e4e9fa6bc..000000000 --- a/config/i586/desktop.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Default build system configuration - -include = ["../desktop.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} diff --git a/config/i586/minimal-net.toml b/config/i586/minimal-net.toml deleted file mode 100644 index bcdb3af01..000000000 --- a/config/i586/minimal-net.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal network configuration - -include = ["../minimal-net.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/i586/minimal.toml b/config/i586/minimal.toml deleted file mode 100644 index 63c04fcea..000000000 --- a/config/i586/minimal.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal configuration - -include = ["../minimal.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/i586/redoxer.toml b/config/i586/redoxer.toml new file mode 100644 index 000000000..a17c50c9c --- /dev/null +++ b/config/i586/redoxer.toml @@ -0,0 +1,8 @@ +# Configuration used for building redoxer base image + +include = ["../redoxer.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 diff --git a/config/i586/resist.toml b/config/i586/resist.toml deleted file mode 100644 index 1eecccf9e..000000000 --- a/config/i586/resist.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration to use the "resist" tests - -include = ["../resist.toml"] diff --git a/config/i586/server.toml b/config/i586/server.toml deleted file mode 100644 index 978aa0d0f..000000000 --- a/config/i586/server.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Server configuration - -include = ["../server.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/i586/tests.toml b/config/i586/tests.toml deleted file mode 100644 index 9af06ab91..000000000 --- a/config/i586/tests.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for testing - -include = ["../tests.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 10000 - -# Package settings -[packages] -# example = {} diff --git a/config/llvm.toml b/config/llvm.toml deleted file mode 100644 index 6a005c7bc..000000000 --- a/config/llvm.toml +++ /dev/null @@ -1,29 +0,0 @@ -# # Configuration to create "llvm-config" script - -include = ["base.toml"] - -[general] -filesystem_size = 2048 - -[packages] -bash = {} -llvm20 = {} - -[[files]] -path = "/usr/lib/init.d/99_gen_llvm-config-generate" -data = """ -bash /usr/bin/llvm-config-generate -""" - -[[files]] -path = "/usr/bin/llvm-config-generate" -data = """ -for flag in --version --bindir --cppflags --cxxflags --includedir --ldflags --libdir --system-libs --targets-built --has-rtti --shared-mode -do - echo -e "'$flag': '$(llvm-config $flag)'," -done -for component in $(llvm-config --components) -do - echo -e "'$component': '$(llvm-config --libs $component)'," -done -""" diff --git a/config/minimal-net.toml b/config/minimal-net.toml deleted file mode 100644 index 4c81b43cd..000000000 --- a/config/minimal-net.toml +++ /dev/null @@ -1,28 +0,0 @@ -# Minimal network configuration - -include = ["net.toml"] - -# General settings -[general] -# Filesystem size in MiB -filesystem_size = 256 - -# Package settings -[packages] -ca-certificates = {} -coreutils = {} -extrautils = {} -findutils = {} -ion = {} -netdb = {} -pkgutils = {} -kibi = {} - -[[files]] -path = "/usr/lib/init.d/30_console" -data = """ -inputd -A 2 -nowait getty 2 -nowait getty /scheme/debug -J -""" - diff --git a/config/minimal.toml b/config/minimal.toml index 571e36138..5f1107400 100644 --- a/config/minimal.toml +++ b/config/minimal.toml @@ -9,14 +9,17 @@ filesystem_size = 196 # Package settings [packages] +ca-certificates = {} coreutils = {} extrautils = {} ion = {} +pkgutils = {} kibi = {} [[files]] path = "/usr/lib/init.d/30_console" data = """ +requires_weak 10_net inputd -A 2 nowait getty 2 nowait getty /scheme/debug/no-preserve -J diff --git a/config/net.toml b/config/net.toml deleted file mode 100644 index 05f6f5a40..000000000 --- a/config/net.toml +++ /dev/null @@ -1,42 +0,0 @@ -# Network configuration: includes the base configuration and adds files required -# for networking - -include = ["base.toml"] - -# Package settings -[packages] -netdb = {} -netutils = {} - -## Network init -[[files]] -path = "/usr/lib/init.d/10_net" -data = """ -smolnetd -nowait dhcpd -""" - -## Default net configuration (optimized for QEMU) -[[files]] -path = "/etc/net/dns" -data = """ -9.9.9.9 -""" - -[[files]] -path = "/etc/net/ip" -data = """ -10.0.2.15 -""" - -[[files]] -path = "/etc/net/ip_router" -data = """ -10.0.2.2 -""" - -[[files]] -path = "/etc/net/ip_subnet" -data = """ -255.255.255.0 -""" diff --git a/config/os-test.toml b/config/os-test.toml new file mode 100644 index 000000000..58ed1b4b6 --- /dev/null +++ b/config/os-test.toml @@ -0,0 +1,22 @@ +# Configuration for "os-test" testing + +include = ["server.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 +# Do not prompt if settings are not defined +prompt = false + +# Package settings +[packages] +os-test-bins = {} # Provides source and cross-compiled binaries + +[[files]] +path = "/usr/lib/init.d/30_console" +data = """ +requires_weak 10_net +RUST_BACKTRACE=full os-test-runner +shutdown +""" diff --git a/config/redoxer-gui.toml b/config/redoxer-gui.toml index fd32620f2..c3e6149a1 100644 --- a/config/redoxer-gui.toml +++ b/config/redoxer-gui.toml @@ -11,9 +11,8 @@ orbital = {} [[files]] path = "/usr/lib/init.d/30_redoxer" data = """ +requires_weak 10_net echo -echo ## running redoxer in orbital ## -export VT 3 -nowait orbital redoxerd -unset VT +echo "## running redoxer in orbital ##" +nowait VT=3 orbital redoxerd """ diff --git a/config/redoxer.toml b/config/redoxer.toml index 8c50e37d5..6532300d3 100644 --- a/config/redoxer.toml +++ b/config/redoxer.toml @@ -1,6 +1,6 @@ # Configuration for the Redoxer image -include = ["net.toml"] +include = ["base.toml"] # Package settings [packages] @@ -9,38 +9,43 @@ ca-certificates = {} coreutils = {} extrautils = {} findutils = {} +gnu-make = {} ion = {} -netdb = {} pkgutils = {} relibc = {} +sed = {} # Override to not background dhcpd [[files]] path = "/usr/lib/init.d/10_net" data = """ -smolnetd +requires_weak 00_drivers +notify smolnetd dhcpd """ -[[files]] -path = "/usr/lib/init.d/20_env" -data = """ -echo -echo ## preparing environment ## -export GROUPS 0 -export HOME /root -export HOST redox -export SHELL /bin/sh -export UID 0 -export USER root -cd /root -env -""" - [[files]] path = "/usr/lib/init.d/30_redoxer" data = """ +requires_weak 10_net +ion /usr/lib/run_redoxer.ion +""" + +[[files]] +path = "/usr/lib/run_redoxer.ion" +data = """ +#!/usr/bin/env ion echo -echo ## running redoxer ## +echo "## preparing environment ##" +export GROUPS=0 +export HOME=/root +export HOST=redox +export SHELL=/bin/sh +export UID=0 +export USER=root +cd /root +env +echo +echo "## running redoxer ##" redoxerd """ diff --git a/config/resist.toml b/config/resist.toml deleted file mode 100644 index 521e7d55b..000000000 --- a/config/resist.toml +++ /dev/null @@ -1,39 +0,0 @@ -# Configuration to run the "resist" tests - -include = ["net.toml"] - -# General settings -[general] -# Filesystem size in MiB -filesystem_size = 256 - -# Package settings -[packages] -bash = {} -coreutils = {} -diffutils = {} -extrautils = {} -findutils = {} -gcc13 = {} -gnu-binutils = {} -gnu-make = {} -netdb = {} -resist = {} - -# Override to not background dhcpd -[[files]] -path = "/usr/lib/init.d/10_net" -data = """ -smolnetd -dhcpd -""" - -[[files]] -path = "/usr/lib/init.d/20_resist" -data = """ -export RUST_BACKTRACE full -resist /share/resist/redox/spec.toml -resist /share/resist/posix/base.toml -resist /share/resist/posix/shell.toml -shutdown -""" diff --git a/config/riscv64gc/ci.toml b/config/riscv64gc/ci.toml index 694fbafa4..382a421e0 100644 --- a/config/riscv64gc/ci.toml +++ b/config/riscv64gc/ci.toml @@ -7,10 +7,27 @@ prompt = false # Package settings [packages] -acid = {} + +# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost +#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work + +# Meta-packages below + +# auto-test = {} +# dev-essential = {} +# dev-redox = {} +# redox-tests = {} +# x11-minimal = {} +# x11-full = {} + +# Normal packages below + +# acid = {} # rust require dynamic linking +acid-bins = {} base = {} base-initfs = {} bash = {} +bash-completion = {} bootloader = {} bottom = {} ca-certificates = {} @@ -32,6 +49,7 @@ freefont = {} freetype2 = {} gettext = {} git = {} +gnu-make = {} hicolor-icon-theme = {} installer = {} #installer-gui = {} # redox_syscall 0.4 not working on riscv64gc? @@ -61,9 +79,6 @@ orbdata = {} orbital = {} orbterm = {} orbutils = {} -orbutils-background = {} -orbutils-launcher = {} -orbutils-orblogin = {} #patch = {} error configure machine `riscv64gc-unknown' not recognized pcre = {} patchelf = {} @@ -71,7 +86,6 @@ pop-icon-theme = {} pkgutils = {} redoxfs = {} relibc = {} -#resist = {} # Uses redox_syscall 0.2 which does not compile on riscv64gc ripgrep = {} rustpython = {} #sdl1 = {} # not tested yet, netsurf is commented out @@ -84,3 +98,221 @@ uutils = {} xz = {} #vim = {} # error compiling ncurses zlib = {} + +# #"gcc13.cxx" = {} +# #"llvm21.clang" = {} +# #"llvm21.clang-dev" = {} +# #"llvm21.dev" = {} +# #"llvm21.lld" = {} +# #"llvm21.lld-dev" = {} +# #"llvm21.runtime" = {} +# #"python312.dev" = {} +# #"rust.doc" = {} +# #atk = {} # depends on glib which does not build +# #benchmarks = {} +# #binutils-gdb = {} +# #book = {} +# #cairo-demo = {} # linking errors +# #classicube = {} +# #cmake = {} +# #cmatrix = {} # needs ncursesw now +# #cookbook = {} +# #cosmic-reader = {} +# #cosmic-settings = {} +# #cosmic-store = {} +# #devilutionx = {} +# #dynamic-example = {} +# #fal +# #fd = {} # ctrlc-3.1.1 +# #file = {} +# #flycast = {} +# #freeciv = {} +# #freeglut = {} +# #friar = {} # mio patch +# #game-2048 = {} # rustc-serialize +# #gawk = {} # langinfo.h +# #gigalomania = {} # old recipe format +# #gitoxide = {} +# #goaccess = {} +# #gstreamer = {} # conflict with thread local errno +# #harfbuzz = {} # depends on glib which does not build +# #helix = {} +# #hello-redox = {} +# #hematite = {} # needs crate patches for redox-unix +# #hf = {} +# #ibm-plex = {} +# #iced = {} +# #jansson = {} # needs config.sub update +# #jq = {} +# #libarchive = {} +# #libatomic = {} +# #libcosmic = {} +# #libflac = {} +# #libmodplug1 = {} +# #libmpfr = {} +# #libnettle = {} +# #libogg = {} +# #libpsl = {} +# #libssh2 = {} +# #libtool = {} +# #liburcu = {} +# #libuv = {} +# #lua-compat-53 = {} +# #luajit = {} +# #luarocks = {} +# #luv = {} +# #mdp = {} # gcc hangs +# #miniserve = {} # actix +# #mpc = {} +# #mupen64plus = {} +# #ncdu = {} # multiple definitions of symbols +# #newlib = {} # obsolete +# #newlibtest = {} # obsolete +# #noto-color-emoji = {} +# #nushell = {} # needs cargo update +# #openjk = {} +# #openposixtestsuite = {} +# #opentyrian = {} +# #orbcalculator = {} +# #ostest-bins = {} +# #pango = {} # undefined references to std::__throw_system_error(int) +# #pastel = {} # needs crate patches for redox-unix +# #pathfinder = {} # servo-fontconfig +# #pciids = {} +# #pcre2 = {} +# #pixman = {} # depends on glib which does not build +# #pkgar = {} # uses virtual Cargo.toml, needs recipe update +# #pls = {} +# #pop-wallpapers = {} +# #powerline = {} # dirs +# #qemu = {} # can be built, but not working +# #quakespasm = {} +# #redox-posix-tests = {} +# #redox-ssh = {} # does not compile +# #retroarch = {} # OS_TLSIndex not declared +# #rust-cairo = {} # linking errors +# #rust-cairo-demo = {} # linking errors +# #rvvm = {} +# #schismtracker = {} # uses system includes +# #sdl-player = {} # wctype_t +# #sdl2-gfx = {} +# #sm64ex = {} +# #spacecadetpinball = {} +# #twin-commander = {} +# #ubuntu-wallpapers = {} +# #unibilium = {} +# #utf8proc = {} +# #vice = {} # linker errors +# #vvvvvv = {} # did not compile +# #webrender = {} # unwind +# #website = {} +# #wesnoth = {} +# #wget = {} +# autoconf = {} +# automake = {} +# binutils = {} +# bzip2 = {} +# cairo = {} +# cleye = {} +# composer = {} +# cosmic-text = {} +# cpal = {} +# dosbox = {} +# duktape = {} +# eduke32 = {} +# exampled = {} +# ffmpeg6 = {} +# fontconfig = {} +# freedoom = {} +# freepats = {} +# fribidi = {} +# gcc13 = {} +# gdbserver = {} +# gdk-pixbuf = {} +# gears = {} +# generaluser-gs = {} +# glib = {} +# glutin = {} +# gnu-binutils = {} +# gnu-grep = {} +# htop = {} +# intel-one-mono = {} +# lci = {} +# libavif = {} +# libc-bench = {} +# libedit = {} +# libgmp = {} +# libicu = {} +# libonig = {} +# libsodium = {} +# libuuid = {} +# libwebp = {} +# llvm21 = {} +# lsd = {} +# lua54 = {} +# lz4 = {} +# mednafen = {} +# mesa = {} +# mesa-glu = {} +# mgba = {} +# ncursesw = {} +# neverball = {} +# nginx = {} +# onefetch = {} +# openjazz = {} +# openssh = {} +# openssl3 = {} +# openttd = {} +# openttd-opengfx = {} +# openttd-openmsx = {} +# openttd-opensfx = {} +# orbclient = {} +# osdemo = {} +# perg = {} +# periodictable = {} +# perl5 = {} +# php84 = {} +# pixelcannon = {} +# pkg-config = {} +# prboom = {} +# procedural-wallpapers-rs = {} +# python312 = {} +# readline = {} +# redox-fatfs = {} +# redox-games = {} +# relibc-tests = {} +# relibc-tests-bins = {} +# rodioplay = {} +# rs-nes = {} +# rsync = {} +# rust = {} +# rust64 = {} +# rustual-boy = {} +# scummvm = {} +# sdl-gfx = {} +# sdl1-image = {} +# sdl1-mixer = {} +# sdl1-ttf = {} +# sdl2 = {} +# sdl2-gears = {} +# sdl2-image = {} +# sdl2-mixer = {} +# sdl2-ttf = {} +# servo = {} +# shellharden = {} +# shellstorm = {} +# simple-http-server = {} +# sodium = {} +# sopwith = {} +# sqlite3 = {} +# strace = {} +# syobonaction = {} +# timidity = {} +# tokei = {} +# ttf-hack = {} +# vttest = {} +# webkitgtk3 = {} +# winit = {} +# xxhash = {} +# zoxide = {} # untested +# zstd = {} diff --git a/config/riscv64gc/desktop-minimal.toml b/config/riscv64gc/desktop-minimal.toml deleted file mode 100644 index d5872d0d6..000000000 --- a/config/riscv64gc/desktop-minimal.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal desktop configuration - -include = ["../desktop-minimal.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} diff --git a/config/riscv64gc/minimal-net.toml b/config/riscv64gc/minimal-net.toml deleted file mode 100644 index bcdb3af01..000000000 --- a/config/riscv64gc/minimal-net.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal network configuration - -include = ["../minimal-net.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/riscv64gc/minimal.toml b/config/riscv64gc/minimal.toml deleted file mode 100644 index f07d85fbc..000000000 --- a/config/riscv64gc/minimal.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal configuration - -include = ["../minimal.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} diff --git a/config/riscv64gc/server.toml b/config/riscv64gc/server.toml deleted file mode 100644 index 01f518228..000000000 --- a/config/riscv64gc/server.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Server configuration - -include = ["../server.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} diff --git a/config/riscv64gc/tests.toml b/config/riscv64gc/tests.toml deleted file mode 100644 index 9af06ab91..000000000 --- a/config/riscv64gc/tests.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for testing - -include = ["../tests.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 10000 - -# Package settings -[packages] -# example = {} diff --git a/config/server.toml b/config/server.toml index 5e985216e..70b98d6d9 100644 --- a/config/server.toml +++ b/config/server.toml @@ -1,6 +1,6 @@ # Server configuration -include = ["net.toml"] +include = ["minimal.toml"] # General settings [general] @@ -11,24 +11,11 @@ filesystem_size = 512 [packages] bash = {} bottom = {} -ca-certificates = {} #contain = {} # needs to update dependencies -coreutils = {} curl = {} diffutils = {} -extrautils = {} findutils = {} git = {} installer = {} -ion = {} kibi = {} -pkgutils = {} redoxfs = {} - -[[files]] -path = "/usr/lib/init.d/30_console" -data = """ -inputd -A 2 -nowait getty 2 -nowait getty /scheme/debug/no-preserve -J -""" diff --git a/config/tests.toml b/config/tests.toml index f47a0c72f..eafbcbf64 100644 --- a/config/tests.toml +++ b/config/tests.toml @@ -11,12 +11,5 @@ prompt = false # Package settings [packages] -acid = {} -resist = {} -relibc-tests = {} -os-test = {} -openposixtestsuite = {} -redox-posix-tests = {} -vttest = {} +redox-tests = {} benchmarks = {} -hello-redox = {} diff --git a/config/wayland.toml b/config/wayland.toml index f39d4c5ab..0e3c372f8 100644 --- a/config/wayland.toml +++ b/config/wayland.toml @@ -1,4 +1,4 @@ -# X11 configuration +# Wayland configuration include = ["desktop.toml"] @@ -13,35 +13,28 @@ filesystem_size = 2048 [packages] adwaita-icon-theme = {} bash = {} +cosmic-app-library = {} +cosmic-comp = {} gtk3 = {} +libcosmic-wayland = {} libxcursor = {} +iced-wayland = {} mesa = {} +"pop-icon-theme.cursors" = {} smallvil = {} softbuffer-wayland = {} wayland-rs = {} -webkitgtk3 = {} +#webkitgtk3 = {} winit-wayland = {} xkeyboard-config = {} -[[files]] -path = "/usr/lib/init.d/10_wayland_env" -data = """ -export XDG_RUNTIME_DIR /tmp/run/user/0 -mkdir -p $XDG_RUNTIME_DIR -export WAYLAND_DISPLAY wayland-1 -glib-compile-schemas /usr/share/glib-2.0/schemas/ -""" - -# Overridden to launch smallvil instead of orblogin +# Overridden to launch wayland compositor instead of orblogin [[files]] path = "/usr/lib/init.d/20_orbital" data = """ -audiod -export BROWSER /bin/netsurf-fb -export VT 3 -nowait orbital orbital-wayland -unset BROWSER -unset VT +requires_weak 10_net +notify audiod +nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-wayland """ [[files]] @@ -50,20 +43,60 @@ mode = 0o755 data = """ #!/usr/bin/env bash +set -ex + +# Prepare environment +unset DISPLAY +export COSMIC_BACKEND=winit +export HOME=/root export LD_DEBUG=all +export RUST_BACKTRACE=full export RUST_LOG=debug -smallvil_smallvil & -sleep 2 -env G_MAIN_POLL_DEBUG=1 G_MESSAGES_DEBUG=all LD_DEBUG=all WEBKIT_DEBUG=all MiniBrowser& -#softbuffer-wayland_animation & -#wayland-rs_simple_window & -#winit-wayland_window & +export XCURSOR_THEME=Pop +export XDG_RUNTIME_DIR=/tmp/run/user/0 + +# Create XDG runtime directory +#TODO: mkdir -p not working +mkdir -p /tmp/run +mkdir -p /tmp/run/user +mkdir -p /tmp/run/user/0 + +# Compile glib schemas +glib-compile-schemas /usr/share/glib-2.0/schemas/ + +# For cosmic-comp (more features) +cosmic-comp wayland-session + +# For smallvil (easier to debug) +#export WAYLAND_DISPLAY=wayland-1 +#smallvil & +#sleep 2 +#wayland-session +""" + +[[files]] +path = "/usr/bin/wayland-session" +mode = 0o755 +data = """ +#!/usr/bin/env bash + +set -ex + +#env G_MAIN_POLL_DEBUG=1 G_MESSAGES_DEBUG=all LD_DEBUG=all WEBKIT_DEBUG=all MiniBrowser& +printenv +#wayland-rs_simple_window +#winit-wayland_window +#softbuffer-wayland_animation +#iced-wayland_sctk_lazy +libcosmic-wayland_application +#gtk3-widget-factory +#cosmic-app-library run """ [[files]] path = "/etc/gtk-3.0/settings.ini" data = """ [Settings] -gtk-cursor-theme-name = "Adwaita" -gtk-icon-theme-name = "Adwaita" +gtk-cursor-theme-name = "Pop" +gtk-icon-theme-name = "Cosmic" """ diff --git a/config/x11.toml b/config/x11.toml index d2ff5cd2d..b74918c10 100644 --- a/config/x11.toml +++ b/config/x11.toml @@ -12,47 +12,42 @@ filesystem_size = 2048 # Package settings [packages] adwaita-icon-theme = {} -caja = {} dbus = {} gtk3 = {} -marco = {} -mate-control-center = {} -mate-icon-theme = {} -mate-panel = {} -mate-session-manager = {} -mate-settings-daemon = {} -mate-terminal = {} +mate-common = {} mesa-demos-x11 = {} -webkitgtk3 = {} -xev = {} -xeyes = {} +#webkitgtk3 = {} # not compiling #xfce4-panel = {} #xfwm4 = {} -xinit = {} -xkbcomp = {} -xkbutils = {} -xkeyboard-config = {} -xserver-xorg = {} -xserver-xorg-video-orbital = {} -xterm = {} +x11-full = {} zenity = {} [[files]] path = "/usr/lib/init.d/10_dbus" data = """ +requires_weak 10_net +bash /usr/bin/start-dbus.sh +""" + +[[files]] +path = "/usr/bin/start-dbus.sh" +mode = 0o755 +data = """ +#!/usr/bin/env bash export DBUS_DEBUG_OUTPUT=1 #export DBUS_VERBOSE=1 #export G_DBUS_DEBUG=all mkdir -p /var/lib/dbus dbus-uuidgen --ensure mkdir -p /run/dbus +rm -f /run/dbus/pid dbus-daemon --system """ [[files]] path = "/usr/lib/init.d/10_xenv" data = """ -export DISPLAY :0 +requires_weak 10_net glib-compile-schemas /usr/share/glib-2.0/schemas/ """ @@ -60,12 +55,9 @@ glib-compile-schemas /usr/share/glib-2.0/schemas/ [[files]] path = "/usr/lib/init.d/20_orbital" data = """ -audiod -export BROWSER /bin/netsurf-fb -export VT 3 -nowait orbital orbital-x11 -unset BROWSER -unset VT +requires_weak 10_dbus 10_xenv +notify audiod +nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-x11 """ [[files]] @@ -76,6 +68,10 @@ data = """ set -ex +# for ice authority and pixbuf +export HOME=/home/root +export XDG_DATA_DIRS=/usr/share + # Generate config file WIDTH="$((0x$(grep FRAMEBUFFER_WIDTH /scheme/sys/env | cut -d '=' -f 2)))" HEIGHT="$((0x$(grep FRAMEBUFFER_HEIGHT /scheme/sys/env | cut -d '=' -f 2)))" @@ -123,9 +119,22 @@ set -ex xterm& sleep 1 + +gdk-pixbuf-query-loaders --update-cache mate-session& """ + +# Override console config to set DISPLAY=:0 +[[files]] +path = "/usr/lib/init.d/30_console" +data = """ +requires_weak 20_orbital +nowait DISPLAY=:0 getty 2 +nowait DISPLAY=:0 getty /scheme/debug/no-preserve -J +""" + + [[files]] path = "/usr/bin/browser" mode = 0o755 diff --git a/config/x86_64/acid.toml b/config/x86_64/acid.toml deleted file mode 100644 index f89bdea88..000000000 --- a/config/x86_64/acid.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration to use the "acid" tests - -include = ["../acid.toml"] diff --git a/config/x86_64/ci.toml b/config/x86_64/ci.toml index be544cc7e..9efd63039 100644 --- a/config/x86_64/ci.toml +++ b/config/x86_64/ci.toml @@ -8,10 +8,16 @@ prompt = false # Package settings [packages] +# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost +#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work + # Meta-packages below +auto-test = {} dev-essential = {} dev-redox = {} +llvm21-common = {} +mate-common = {} redox-tests = {} x11-minimal = {} x11-full = {} @@ -19,23 +25,21 @@ x11-full = {} # Normal packages below acid = {} -#atk = {} # depends on glib which does not build +adwaita-icon-theme = {} autoconf = {} automake = {} base = {} base-initfs = {} bash = {} +bash-completion = {} binutils = {} bootloader = {} bottom = {} bzip2 = {} ca-certificates = {} cairo = {} -#cairodemo = {} # linking errors -#calculator = {} -cargo = {} +cbindgen = {} cleye = {} -#cmatrix = {} # needs ncursesw now composer = {} contain = {} coreutils = {} @@ -55,49 +59,38 @@ eduke32 = {} exampled = {} expat = {} extrautils = {} -#fal -#fd = {} # ctrlc-3.1.1 ffmpeg6 = {} findutils = {} +fish-shell = {} fontconfig = {} -#freeciv = {} freedoom = {} freefont = {} -#freeglut = {} freepats = {} freetype2 = {} -#friar = {} # mio patch fribidi = {} -#game-2048 = {} # rustc-serialize -#gawk = {} # langinfo.h gcc13 = {} gdbserver = {} gdk-pixbuf = {} gears = {} generaluser-gs = {} gettext = {} -#gigalomania = {} # old recipe format git = {} glib = {} glutin = {} gnu-binutils = {} gnu-grep = {} gnu-make = {} -#gstreamer = {} # conflict with thread local errno -#harfbuzz = {} # depends on glib which does not build -#hematite = {} # needs crate patches for redox-unix hicolor-icon-theme = {} htop = {} installer = {} installer-gui = {} intel-one-mono = {} ion = {} -#jansson = {} # needs config.sub update kernel = {} kibi = {} lci = {} -libc-bench = {} libavif = {} +libc-bench = {} libedit = {} libffi = {} libgcc = {} @@ -109,37 +102,36 @@ libogg = {} libonig = {} liborbital = {} libpng = {} -libstdcxx = {} libsodium = {} +libstdcxx = {} +libuuid = {} libvorbis = {} libwebp = {} libxkbcommon = {} -libuuid = {} +libxcursor = {} libxml2 = {} llvm21 = {} lsd = {} lua54 = {} lz4 = {} -#mdp = {} # gcc hangs mednafen = {} mesa = {} mesa-glu = {} +mesa-demos-x11 = {} mgba = {} -#miniserve = {} # actix nano = {} nasm = {} -#ncdu = {} # multiple definitions of symbols ncurses = {} ncursesw = {} +neovim = {} netdb = {} netsurf = {} netutils = {} neverball = {} -#newlib = {} # obsolete -#newlibtest = {} # obsolete nghttp2 = {} nginx = {} -#nushell = {} # needs cargo update +nodejs-21 = {} +nushell = {} onefetch = {} openjazz = {} openssh = {} @@ -154,55 +146,41 @@ orbdata = {} orbital = {} orbterm = {} orbutils = {} -orbutils-background = {} -orbutils-launcher = {} -orbutils-orblogin = {} +os-test-bins = {} osdemo = {} -#pango = {} # undefined references to std::__throw_system_error(int) -#pastel = {} # needs crate patches for redox-unix patch = {} patchelf = {} -#pathfinder = {} # servo-fontconfig -#pciids = {} pcre = {} perg = {} periodictable = {} -php84 = {} perl5 = {} +php84 = {} pixelcannon = {} -#pixman = {} # depends on glib which does not build -#pkgar = {} # uses virtual Cargo.toml, needs recipe update pkg-config = {} +pkgar = {} pkgutils = {} +pls = {} pop-icon-theme = {} -#powerline = {} # dirs prboom = {} procedural-wallpapers-rs = {} python312 = {} -#qemu = {} # can be built, but not working readline = {} redox-fatfs = {} -redoxfs = {} redox-games = {} -#redox-ssh = {} # does not compile +redoxfs = {} relibc = {} relibc-tests = {} -resist = {} -#retroarch = {} # OS_TLSIndex not declared +relibc-tests-bins = {} ripgrep = {} rodioplay = {} rs-nes = {} rsync = {} rust = {} rust64 = {} -#rust-cairo = {} # linking errors -#rust-cairo-demo = {} # linking errors rustpython = {} rustual-boy = {} -#schismtracker = {} # uses system includes scummvm = {} sdl-gfx = {} -#sdl-player = {} # wctype_t sdl1 = {} sdl1-image = {} sdl1-mixer = {} @@ -218,28 +196,131 @@ shared-mime-info = {} shellharden = {} shellstorm = {} simple-http-server = {} +smallvil = {} smith = {} sodium = {} +softbuffer-wayland = {} sopwith = {} sqlite3 = {} strace = {} syobonaction = {} terminfo = {} -#termplay = {} # backtrace cannot find link.h timidity = {} tokei = {} ttf-hack = {} userutils = {} uutils = {} -#vice = {} # linker errors vim = {} vttest = {} -#vvvvvv = {} # did not compile +wayland-rs = {} webkitgtk3 = {} -#webrender = {} # unwind -#wesnoth = {} winit = {} +winit-wayland = {} xxhash = {} xz = {} +zenity = {} +zoxide = {} +zsh = {} zlib = {} zstd = {} + +#"python312.dev" = {} +#"rust.doc" = {} +#atk = {} # depends on glib which does not build +#benchmarks = {} +#binutils-gdb = {} +#book = {} +#cairo-demo = {} # linking errors +#classicube = {} +#cmake = {} +#cmatrix = {} # needs ncursesw now +#cookbook = {} +#cosmic-reader = {} +#cosmic-settings = {} +#cosmic-store = {} +#devilutionx = {} +#dynamic-example = {} +#fal +#fd = {} # ctrlc-3.1.1 +#file = {} +#flycast = {} +#freeciv = {} +#freeglut = {} +#friar = {} # mio patch +#game-2048 = {} # rustc-serialize +#gawk = {} # langinfo.h +#gigalomania = {} # old recipe format +#gitoxide = {} +#goaccess = {} +#gstreamer = {} # conflict with thread local errno +#harfbuzz = {} # depends on glib which does not build +#helix = {} +#hello-redox = {} +#hematite = {} # needs crate patches for redox-unix +#hf = {} +#ibm-plex = {} +#iced = {} +#jansson = {} # needs config.sub update +#jq = {} +#libarchive = {} +#libatomic = {} +#libcosmic = {} +#libflac = {} +#libmodplug1 = {} +#libmpfr = {} +#libnettle = {} +#libogg = {} +#libpsl = {} +#libssh2 = {} +#libtool = {} +#liburcu = {} +#libuv = {} +#lua-compat-53 = {} +#luajit = {} +#luarocks = {} +#luv = {} +#mdp = {} # gcc hangs +#miniserve = {} # actix +#mpc = {} +#mupen64plus = {} +#ncdu = {} # multiple definitions of symbols +#newlib = {} # obsolete +#newlibtest = {} # obsolete +#noto-color-emoji = {} +#openjk = {} +#openposixtestsuite = {} +#opentyrian = {} +#orbcalculator = {} +#ostest-bins = {} +#pango = {} # undefined references to std::__throw_system_error(int) +#pastel = {} # needs crate patches for redox-unix +#pathfinder = {} # servo-fontconfig +#pciids = {} +#pcre2 = {} +#pixman = {} # depends on glib which does not build +#pls = {} +#pop-wallpapers = {} +#powerline = {} # dirs +#qemu = {} # can be built, but not working +#quakespasm = {} +#redox-posix-tests = {} +#redox-ssh = {} # does not compile +#retroarch = {} # OS_TLSIndex not declared +#rust-cairo = {} # linking errors +#rust-cairo-demo = {} # linking errors +#rvvm = {} +#schismtracker = {} # uses system includes +#sdl-player = {} # wctype_t +#sdl2-gfx = {} +#sm64ex = {} +#spacecadetpinball = {} +#twin-commander = {} +#ubuntu-wallpapers = {} +#unibilium = {} +#utf8proc = {} +#vice = {} # linker errors +#vvvvvv = {} # did not compile +#webrender = {} # unwind +#website = {} +#wesnoth = {} +#wget = {} diff --git a/config/x86_64/demo.toml b/config/x86_64/demo.toml index 80d222a9a..37a0eed4d 100644 --- a/config/x86_64/demo.toml +++ b/config/x86_64/demo.toml @@ -16,13 +16,9 @@ periodictable = {} intel-one-mono = {} # Shell Apps -bottom = {} -curl = {} -git = {} gnu-grep = {} htop = {} ripgrep = {} -sodium = {} terminfo = {} vim = {} @@ -33,15 +29,14 @@ neverball = {} prboom = {} redox-games = {} sopwith = {} -# syobonaction = {} # linking errors +syobonaction = {} # Demos -acid = {} -# nushell = {} +nushell = {} orbclient = {} pixelcannon = {} rodioplay = {} -# gears = {} # sccache issue +gears = {} # MIDI freepats = {} diff --git a/config/x86_64/desktop-contain.toml b/config/x86_64/desktop-contain.toml index 9aea34b7f..6fca0f180 100644 --- a/config/x86_64/desktop-contain.toml +++ b/config/x86_64/desktop-contain.toml @@ -17,16 +17,16 @@ include = ["../desktop.toml"] [[files]] path = "/usr/lib/init.d/20_orbital" data = """ -audiod -export VT 3 -nowait orbital contain_orblogin launcher -unset VT +requires_weak 10_net +notify audiod +nowait VT=3 orbital contain_orblogin launcher """ # Override console init to use contain [[files]] path = "/usr/lib/init.d/30_console" data = """ +requires_weak 20_orbital nowait getty --contain 2 nowait getty --contain /scheme/debug/no-preserve -J """ diff --git a/config/x86_64/desktop-minimal.toml b/config/x86_64/desktop-minimal.toml deleted file mode 100644 index fb09c1d09..000000000 --- a/config/x86_64/desktop-minimal.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal desktop configuration - -include = ["../desktop-minimal.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/x86_64/desktop.toml b/config/x86_64/desktop.toml deleted file mode 100644 index ab1670ba4..000000000 --- a/config/x86_64/desktop.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Default build system configuration - -include = ["../desktop.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/x86_64/dev.toml b/config/x86_64/dev.toml deleted file mode 100644 index ecd30849a..000000000 --- a/config/x86_64/dev.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for development - -include = ["../dev.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/x86_64/jeremy.toml b/config/x86_64/jeremy.toml index dc8eef32e..64a836e19 100644 --- a/config/x86_64/jeremy.toml +++ b/config/x86_64/jeremy.toml @@ -55,7 +55,6 @@ winit = {} # dev autoconf = {} automake = {} -cargo = {} cookbook = {} gcc13 = {} gnu-binutils = {} diff --git a/config/x86_64/llvm.toml b/config/x86_64/llvm.toml deleted file mode 100644 index 5aa7e94bc..000000000 --- a/config/x86_64/llvm.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration to create "llvm-config" script - -include = ["../llvm.toml"] diff --git a/config/x86_64/minimal-net.toml b/config/x86_64/minimal-net.toml deleted file mode 100644 index bcdb3af01..000000000 --- a/config/x86_64/minimal-net.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal network configuration - -include = ["../minimal-net.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/x86_64/minimal.toml b/config/x86_64/minimal.toml deleted file mode 100644 index 63c04fcea..000000000 --- a/config/x86_64/minimal.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Minimal configuration - -include = ["../minimal.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/x86_64/redoxer.toml b/config/x86_64/redoxer.toml new file mode 100644 index 000000000..a17c50c9c --- /dev/null +++ b/config/x86_64/redoxer.toml @@ -0,0 +1,8 @@ +# Configuration used for building redoxer base image + +include = ["../redoxer.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 diff --git a/config/x86_64/resist.toml b/config/x86_64/resist.toml deleted file mode 100644 index 60ac1e55b..000000000 --- a/config/x86_64/resist.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration to run the "resist" tests - -include = ["../resist.toml"] diff --git a/config/x86_64/server-demo.toml b/config/x86_64/server-demo.toml index 53c3d1773..32c5770ab 100644 --- a/config/x86_64/server-demo.toml +++ b/config/x86_64/server-demo.toml @@ -35,23 +35,19 @@ htop = {} website = {} -[[files]] -# Undocumented usage of rsdctl, pointing to notifications dir -path = "/usr/lib/init.d/19_rustyd" -data = """ -export RSDCTL_ADDR /var/run/rustysd/control.socket -""" - [[files]] path = "/usr/lib/init.d/98_keygen_sh" data = """ +requires_weak 10_net bash /root/keygen.sh """ [[files]] path = "/usr/lib/init.d/99_rustysd" data = """ -rustysd --conf /etc/rustysd +requires_weak 98_keygen_sh +# Undocumented usage of rsdctl, pointing to notifications dir +RSDCTL_ADDR=/var/run/rustysd/control.socket rustysd --conf /etc/rustysd """ [[files]] @@ -82,9 +78,8 @@ Description=The nginx HTTP and reverse proxy server After=network-online.target [Service] -Type=notify -ExecStart=/usr/bin/nginx -TimeoutStopSec=5 +Type=simple +ExecStart=/usr/bin/nginx -g "daemon off;" [Install] WantedBy=multi-user.target @@ -99,16 +94,34 @@ Description=OpenBSD Secure Shell server After=network-online.target [Service] -Type=notify -ExecStart=/usr/bin/sshd -TimeoutStopSec=5 +Type=simple +ExecStart=/usr/bin/sshd -D + +[Install] +WantedBy=multi-user.target +""" + + + +[[files]] +path = "/etc/rustysd/system/php.service" +data = """ +[Unit] +Description=OpenBSD Secure Shell server +After=network-online.target + +[Service] +Type=simple +# currently php-fpm not that quite work +ExecStart=env PWD=/var/www/html php -S localhost:9000 +# ExecStart=/usr/bin/php-fpm --fpm-config /etc/php/84/php-fpm.conf --nodaemonize [Install] WantedBy=multi-user.target """ [[files]] -path = "/home/user/public_html/index.php" +path = "/var/www/html/index.php" data = """ sudo bash server.sh -# -# A WIP port of rustysd is available, you can try start it manually +# There should be rustysd already running, if not, you can try start it manually # > sudo rustysd --conf /etc/rustysd # -# The server will start port 22 (ssh), 80 (static web) and 8080 (php) +# You can also try running all daemons manually +# > sudo bash server.sh +# +# The server will start port 22 (ssh), 80 (static web) and 8081 (php) +# If you use the Redox OS build system, starting QEMU with `net=redir` +# should expose those port to 8022, 8080 and 8081. +# Try logging in to console via SSH with `ssh user@localhost -p 8022` +# ############################################################################## """ diff --git a/config/x86_64/server.toml b/config/x86_64/server.toml deleted file mode 100644 index 978aa0d0f..000000000 --- a/config/x86_64/server.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Server configuration - -include = ["../server.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 1024 - -# Package settings -[packages] -# example = {} \ No newline at end of file diff --git a/config/x86_64/tests.toml b/config/x86_64/tests.toml deleted file mode 100644 index 9af06ab91..000000000 --- a/config/x86_64/tests.toml +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for testing - -include = ["../tests.toml"] - -# Override the default settings here - -# General settings -[general] -# Filesystem size in MiB -# filesystem_size = 10000 - -# Package settings -[packages] -# example = {} diff --git a/config/x86_64/wayland.toml b/config/x86_64/wayland.toml deleted file mode 100644 index f842b0936..000000000 --- a/config/x86_64/wayland.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Wayland configuration - -include = ["../wayland.toml"] diff --git a/config/x86_64/x11.toml b/config/x86_64/x11.toml deleted file mode 100644 index e17676a2b..000000000 --- a/config/x86_64/x11.toml +++ /dev/null @@ -1,3 +0,0 @@ -# X11 configuration - -include = ["../x11.toml"] diff --git a/mk/ci.mk b/mk/ci.mk index e1faf617f..4fb034921 100644 --- a/mk/ci.mk +++ b/mk/ci.mk @@ -3,6 +3,7 @@ IMG_TAG?=$(shell git describe --tags) IMG_SEPARATOR?=_ IMG_DIR?=build/img/$(ARCH) +OS_TEST_DIR?=build/os-test/$(ARCH) # CI image target - build standard images # To leave out the build tag, set both IMG_TAG and IMG_SEPARATOR to null @@ -19,7 +20,24 @@ server desktop demo: FORCE $(MAKE) CONFIG_NAME=$@ build/$(ARCH)/$@/harddrive.img build/$(ARCH)/$@/redox-live.iso mkdir -p $(IMG_DIR) cp "build/$(ARCH)/$@/harddrive.img" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_harddrive.img" - cp "build/$(ARCH)/$@/redox-live.iso" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_redox-live.iso" + cp "build/$(ARCH)/$@/redox-live.iso" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_livedisk.iso" + +ci-os-test: FORCE + make CONFIG_NAME=os-test unmount + rm -f "build/$(ARCH)/os-test/harddrive.img" + $(MAKE) CONFIG_NAME=os-test qemu gpu=no + rm -rf $(OS_TEST_DIR) + mkdir -p $(OS_TEST_DIR) + $(MAKE) CONFIG_NAME=os-test mount + cp -rv build/$(ARCH)/os-test/filesystem/usr/share/os-test/html $(OS_TEST_DIR) + cp -v build/$(ARCH)/os-test/filesystem/usr/share/os-test/os-test.json $(OS_TEST_DIR) + tar \ + --create \ + --gzip \ + --file "$(OS_TEST_DIR)/out.tar.gz" \ + --directory="build/$(ARCH)/os-test/filesystem/usr/share/os-test" \ + out + $(MAKE) CONFIG_NAME=os-test unmount # CI packaging target ci-pkg: prefix $(FSTOOLS_TAG) $(CONTAINER_TAG) FORCE @@ -27,8 +45,8 @@ ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else $(HOST_CARGO) build --manifest-path Cargo.toml --release - export CI=1 COOKBOOK_LOGS=true PATH="$(PREFIX_PATH):$$PATH" COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - ./target/release/repo cook --with-package-deps "--filesystem=config/$(ARCH)/ci.toml" + export CI=1 COOKBOOK_LOGS=true COOKBOOK_CLEAN_BUILD=true PATH="$(PREFIX_PATH):$$PATH" COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ + $(REPO_BIN) cook --with-package-deps "--filesystem=config/$(ARCH)/ci.toml" endif # CI toolchain @@ -39,11 +57,13 @@ else $(MAKE) PREFIX_BINARY=0 \ "prefix/$(TARGET)/gcc-install.tar.gz" \ "prefix/$(TARGET)/relibc-install.tar.gz" \ - "prefix/$(TARGET)/rust-install.tar.gz" + "prefix/$(TARGET)/rust-install.tar.gz" \ + "prefix/$(TARGET)/clang-install.tar.gz" rm -rf "build/toolchain/$(HOST_TARGET)/$(TARGET)" mkdir -p "build/toolchain/$(HOST_TARGET)/$(TARGET)" cp "prefix/$(TARGET)/gcc-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/gcc-install.tar.gz" cp "prefix/$(TARGET)/relibc-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/relibc-install.tar.gz" cp "prefix/$(TARGET)/rust-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/rust-install.tar.gz" + cp "prefix/$(TARGET)/clang-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/clang-install.tar.gz" cd "build/toolchain/$(HOST_TARGET)/$(TARGET)" && sha256sum -b * > SHA256SUM endif diff --git a/mk/config.mk b/mk/config.mk index 274e2ddf6..0d8484057 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -11,6 +11,9 @@ ARCH?=$(HOST_ARCH) BOARD?= ## Enable to use binary prefix (much faster) PREFIX_BINARY?=1 +## Enable to use up-to-date rust compiler (experimental, only available to Tier 2 targets) +## Even more experimental, add -Zbuild-std to cookbook.toml to allow compilation to Tier 3 targets +PREFIX_USE_UPSTREAM_RUST_COMPILER?=0 ## Enable to use binary packages (much faster) REPO_BINARY?=0 ## Name of the configuration to include in the image name e.g. desktop or server @@ -29,7 +32,11 @@ ifeq ($(ARCH),i686) endif ## Select filesystem config ifeq ($(BOARD),) +ifeq ($(wildcard config/$(ARCH)/$(CONFIG_NAME).toml),) +FILESYSTEM_CONFIG?=config/$(CONFIG_NAME).toml +else FILESYSTEM_CONFIG?=config/$(ARCH)/$(CONFIG_NAME).toml +endif else FILESYSTEM_CONFIG?=config/$(ARCH)/$(BOARD)/$(CONFIG_NAME).toml endif @@ -51,23 +58,28 @@ SCCACHE_BUILD?=$(shell [ -f /run/.containerenv ] && echo 1 || echo 0) CONTAINERFILE?=podman/redox-base-containerfile # Per host variables -export NPROC=nproc +NPROC=nproc +SED=sed +FIND=find +REPO_BIN=./target/release/repo ifneq ($(PODMAN_BUILD),1) FSTOOLS_IN_PODMAN=0 HOST_TARGET := $(shell env -u RUSTUP_TOOLCHAIN rustc -vV | grep host | cut -d: -f2 | tr -d " ") # x86_64 linux hosts have all toolchains -ifneq ($(HOST_TARGET),x86_64-unknown-linux-gnu) - ifeq ($(ARCH),aarch64) - # aarch64 linux hosts have aarch64 toolchain - ifneq ($(HOST_TARGET),aarch64-unknown-linux-gnu) - $(info The $(ARCH) binary prefix is only built for x86_64 and aarch64 Linux hosts) - PREFIX_BINARY=0 - endif - else +ifeq ($(PREFIX_BINARY),1) +ifeq ($(HOST_TARGET),aarch64-unknown-linux-gnu) + ifneq ($(ARCH),aarch64) + ifneq ($(ARCH),x86_64) $(info The $(ARCH) binary prefix is only built for x86_64 Linux hosts) PREFIX_BINARY=0 endif + endif +else ifeq ($(HOST_TARGET),x86_64-unknown-linux-gnu) +else + $(info The $(ARCH) binary prefix is only built for Linux hosts) + PREFIX_BINARY=0 +endif endif endif @@ -98,13 +110,23 @@ endif UNAME := $(shell uname) ifeq ($(UNAME),Darwin) FUMOUNT=umount - export NPROC=sysctl -n hw.ncpu + NPROC=sysctl -n hw.ncpu + SED=gsed + FIND=gfind VB_AUDIO=coreaudio VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage else ifeq ($(UNAME),FreeBSD) + FIND=gfind FUMOUNT=sudo umount VB_AUDIO=pulse # To check, will probably be OSS on most setups VBM=VBoxManage +else ifeq ($(UNAME),Redox) + PODMAN_BUILD=0 +# TODO: allow overriding to cross compiler toolchain when build server have one prebuilt + HOSTED_REDOX=1 +ifneq ($(shell which repo),) + REPO_BIN=repo +endif else # Detect which version of the fusermount binary is available. ifneq (, $(shell which fusermount3)) @@ -120,6 +142,7 @@ endif # Automatic variables ROOT=$(CURDIR) export RUST_COMPILER_RT_ROOT=$(ROOT)/rust/src/llvm-project/compiler-rt +export TESTBIN?= RUNNING_IN_PODMAN=$(shell [ -f /run/.containerenv ] && echo 1 || echo 0) ifeq ($(PODMAN_BUILD),1) ifeq ($(RUNNING_IN_PODMAN),1) @@ -149,6 +172,8 @@ INSTALLER=$(FSTOOLS)/bin/redox_installer REDOXFS=$(FSTOOLS)/bin/redoxfs REDOXFS_MKFS=$(FSTOOLS)/bin/redoxfs-mkfs INSTALLER_OPTS=--cookbook=. +INSTALLER_FEATURES= +REDOXFS_FEATURES= COOKBOOK_OPTS="--filesystem=$(FILESYSTEM_CONFIG)" ifeq ($(REPO_BINARY),1) INSTALLER_OPTS+=--repo-binary @@ -156,17 +181,23 @@ COOKBOOK_OPTS+=--repo-binary endif ifeq ($(FSTOOLS_NO_MOUNT),1) INSTALLER_OPTS+=--no-mount +INSTALLER_FEATURES=--no-default-features --features installer +REDOXFS_FEATURES= --no-default-features --features std,log endif REPO_TAG=$(BUILD)/repo.tag FSTOOLS_TAG=build/fstools.tag -export BOARD +export BOARD FIND ifeq ($(SCCACHE_BUILD),1) export CC_WRAPPER:=sccache export RUSTC_WRAPPER:=$(CC_WRAPPER) endif +ifeq ($(HOSTED_REDOX),1) +FSTOOLS_TAG= +endif + ## If Podman is being used, a container is required ifeq ($(PODMAN_BUILD),1) CONTAINER_TAG=build/container.tag diff --git a/mk/depends.mk b/mk/depends.mk index 3bc95d0ee..4d698c84c 100644 --- a/mk/depends.mk +++ b/mk/depends.mk @@ -1,32 +1,29 @@ # Configuration file for the build system dependencies -# Don't check for Rust/Cargo if you will be using Podman +# Don't check for dependencies if you will be using Podman ifneq ($(PODMAN_BUILD),1) +# Don't check for dependencies if you will be using Hosted Redox +ifneq ($(HOSTED_REDOX),1) -# don’t check for Rust and Cargo if building on a Nix system +# don't check for Rust and Cargo if building on a Nix system ifneq ($(NIX_SHELL_BUILD),1) - ifeq ($(shell which rustup),) $(error rustup not found, install from "https://rustup.rs/") endif - endif -# don’t check for compile tools, used internally when installing fstools on host +# don't check for compile tools, used internally when installing fstools on host ifneq ($(SKIP_CHECK_TOOLS),1) - ifeq ($(shell which cbindgen),) $(error cbindgen not found, install from crates.io or from your package manager) endif - ifeq ($(shell which nasm),) $(error nasm not found, install from your package manager) endif - ifeq ($(shell which just),) $(error 'just' not found, install from crates.io or from your package manager) endif - endif endif +endif diff --git a/mk/disk.mk b/mk/disk.mk index d84d8069b..9f64a1789 100644 --- a/mk/disk.mk +++ b/mk/disk.mk @@ -5,8 +5,9 @@ ifeq ($(FSTOOLS_IN_PODMAN),1) $(PODMAN_RUN) make $@ else mkdir -p $(BUILD) - rm -rf $@ $@.partial + -$(FUMOUNT) $(MOUNT_DIR) || true -$(FUMOUNT) /tmp/redox_installer || true + rm -rf $@ $@.partial $(MOUNT_DIR) FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \ if [ -z "$$FILESYSTEM_SIZE" ] ; then \ FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \ @@ -65,7 +66,7 @@ else @mkdir -p $(MOUNT_DIR) $(REDOXFS) $(BUILD)/harddrive.img $(MOUNT_DIR) @sleep 2 - @pgrep redoxfs + @echo "\033[1;36;49mharddrive.img mounted ($$(pgrep redoxfs))\033[0m" endif mount_extra: $(FSTOOLS) FORCE @@ -75,7 +76,7 @@ else @mkdir -p $(MOUNT_DIR) $(REDOXFS) $(BUILD)/extra.img $(MOUNT_DIR) @sleep 2 - @pgrep redoxfs + @echo "\033[1;36;49mextra.img mounted ($$(pgrep redoxfs))\033[0m" endif mount_live: $(FSTOOLS) FORCE @@ -85,7 +86,7 @@ else @mkdir -p $(MOUNT_DIR) $(REDOXFS) $(BUILD)/redox-live.iso $(MOUNT_DIR) @sleep 2 - @pgrep redoxfs + @echo "\033[1;36;49mredox-live.iso mounted ($$(pgrep redoxfs))\033[0m" endif unmount: FORCE @@ -96,4 +97,5 @@ else -$(FUMOUNT) $(MOUNT_DIR) @rm -rf $(MOUNT_DIR) @-$(FUMOUNT) /tmp/redox_installer 2>/dev/null || true + @echo "\033[1;36;49mFilesystem unmounted\033[0m" endif diff --git a/mk/fstools.mk b/mk/fstools.mk index 0a294b9c0..052368cd5 100644 --- a/mk/fstools.mk +++ b/mk/fstools.mk @@ -2,37 +2,50 @@ fstools: $(FSTOOLS_TAG) $(FSTOOLS) +GOING_TO_PODMAN_AGAIN?=0 + # These tools run inside Podman if it is used, or on the host if Podman is not used -$(FSTOOLS): $(CONTAINER_TAG) +$(FSTOOLS): | prefix $(CONTAINER_TAG) $(FSTOOLS_TAG) ifeq ($(PODMAN_BUILD),1) ifeq ($(FSTOOLS_IN_PODMAN),1) $(PODMAN_RUN) make $@ else - $(MAKE) $@ PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 + $(MAKE) $@ PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 GOING_TO_PODMAN_AGAIN=1 endif else rm -rf $@ $@.partial mkdir -p $@.partial - ln -sr recipes $@.partial/recipes + ln -s ../../recipes $@.partial/recipes + $(MAKE) fstools_fetch PODMAN_BUILD=$(GOING_TO_PODMAN_AGAIN) - # Install cookbook, installer, and redoxfs for host (may be outside of podman container) - #TODO: Build and install installer and redoxfs using cookbook? + # Compile installer and redoxfs for host (may be outside of podman container) cd $@.partial && \ export CARGO_TARGET_DIR=../$@-target && \ - $(HOST_CARGO) install --root . --path ../.. --locked && \ - env -u RUSTUP_TOOLCHAIN ./bin/repo fetch installer redoxfs && \ - $(HOST_CARGO) install --root . --path recipes/core/installer/source && \ - $(HOST_CARGO) install --root . --path recipes/core/redoxfs/source + $(HOST_CARGO) install --root . --path recipes/core/installer/source $(INSTALLER_FEATURES) && \ + $(HOST_CARGO) install --root . --path recipes/core/redoxfs/source $(REDOXFS_FEATURES) mv $@.partial $@ touch $@ endif -$(FSTOOLS_TAG): $(FSTOOLS) +fstools_fetch: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - $(HOST_CARGO) build --manifest-path Cargo.toml --release --locked + $(REPO_BIN) fetch installer redoxfs +endif + +CARGO_OFFLINE_FLAG= +ifeq ($(REPO_OFFLINE),1) +CARGO_OFFLINE_FLAG=--offline +endif + +$(FSTOOLS_TAG): $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + $(HOST_CARGO) build --manifest-path Cargo.toml --release --locked $(CARGO_OFFLINE_FLAG) + mkdir -p $(@D) touch $@ endif diff --git a/mk/podman.mk b/mk/podman.mk index 8f5223ee2..019224668 100644 --- a/mk/podman.mk +++ b/mk/podman.mk @@ -7,34 +7,46 @@ IMAGE_TAG?=redox-base CONTAINER_WORKDIR?=/mnt/redox ## Flag passed to the Podman volumes. :Z can be used only with SELinux -USE_SELINUX=1 +USE_SELINUX?=1 ifeq ($(USE_SELINUX),1) PODMAN_VOLUME_FLAG=:Z else PODMAN_VOLUME_FLAG= endif +# Cache layers to redox-os docker hub +PODMAN_CACHE= +PODMAN_CACHE_PATH=docker.io/redoxos/$(IMAGE_TAG) + +PODMAN_CACHE_PULL?=1 +ifeq ($(PODMAN_CACHE_PULL),1) +PODMAN_CACHE+=--cache-from=$(PODMAN_CACHE_PATH) +endif + +PODMAN_CACHE_PUSH?=0 +ifeq ($(PODMAN_CACHE_PUSH),1) +PODMAN_CACHE+=--cache-to=$(PODMAN_CACHE_PATH) +endif + ## Podman Home Directory -PODMAN_HOME?=$(ROOT)/build/podman +PODMAN_HOME=$(ROOT)/build/podman ## Podman command with its many arguments -PODMAN_VOLUMES?=--volume $(ROOT):$(CONTAINER_WORKDIR)$(PODMAN_VOLUME_FLAG) --volume $(PODMAN_HOME):/root$(PODMAN_VOLUME_FLAG) -PODMAN_ENV?=--env PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env PODMAN_BUILD=0 -PODMAN_CONFIG?=--env ARCH=$(ARCH) --env BOARD=$(BOARD) --env CONFIG_NAME=$(CONFIG_NAME) --env FILESYSTEM_CONFIG=$(FILESYSTEM_CONFIG) --env PREFIX_BINARY=$(PREFIX_BINARY) \ +PODMAN_VOLUMES=--volume $(ROOT):$(CONTAINER_WORKDIR)$(PODMAN_VOLUME_FLAG) --volume $(PODMAN_HOME):/root$(PODMAN_VOLUME_FLAG) +PODMAN_ENV=--env PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env PODMAN_BUILD=0 +PODMAN_CONFIG=--env ARCH=$(ARCH) --env BOARD=$(BOARD) --env CONFIG_NAME=$(CONFIG_NAME) --env FILESYSTEM_CONFIG=$(FILESYSTEM_CONFIG) --env PREFIX_BINARY=$(PREFIX_BINARY) \ --env CI=$(CI) --env COOKBOOK_MAKE_JOBS=$(COOKBOOK_MAKE_JOBS) --env COOKBOOK_LOGS=$(COOKBOOK_LOGS) --env COOKBOOK_VERBOSE=$(COOKBOOK_VERBOSE) \ - --env REPO_APPSTREAM=$(REPO_APPSTREAM) --env REPO_BINARY=$(REPO_BINARY) --env REPO_NONSTOP=$(REPO_NONSTOP) --env REPO_OFFLINE=$(REPO_OFFLINE) -PODMAN_OPTIONS?=--rm --workdir $(CONTAINER_WORKDIR) --interactive --tty --cap-add SYS_ADMIN --device /dev/fuse --network=host --env TERM=$(TERM) -PODMAN_RUN?=podman run $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG) + --env REPO_APPSTREAM=$(REPO_APPSTREAM) --env REPO_BINARY=$(REPO_BINARY) --env REPO_NONSTOP=$(REPO_NONSTOP) --env REPO_OFFLINE=$(REPO_OFFLINE) --env TESTBIN=$(TESTBIN) \ + --env HOSTED_REDOX=$(HOSTED_REDOX) --env PREFIX_USE_UPSTREAM_RUST_COMPILER=$(PREFIX_USE_UPSTREAM_RUST_COMPILER) +PODMAN_OPTIONS=--rm --workdir $(CONTAINER_WORKDIR) --interactive --tty --cap-add SYS_ADMIN --device /dev/fuse --network=host --env TERM=$(TERM) --pids-limit=-1 +PODMAN_RUN=podman run $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG) container_shell: build/container.tag ifeq ($(PODMAN_BUILD),1) - podman run $(PODMAN_VOLUMES) $(PODMAN_OPTIONS) $(PODMAN_ENV) $(IMAGE_TAG) bash + $(PODMAN_RUN) bash else @echo PODMAN_BUILD=$(PODMAN_BUILD), please set it to 1 in mk/config.mk endif -container_su: FORCE - podman run $(PODMAN_VOLUMES) $(PODMAN_OPTIONS) --user 0 $(PODMAN_ENV) $(IMAGE_TAG) bash - container_clean: FORCE rm -f build/container.tag @echo "If podman dir cannot be removed, remove with \"sudo rm\"." @@ -57,12 +69,11 @@ container_kill: FORCE ## Must match the value of CONTAINER_TAG in config.mk build/container.tag: $(CONTAINERFILE) ifeq ($(PODMAN_BUILD),1) - rm -f build/container.tag + rm -f $@ $(FSTOOLS_TAG) -podman image rm --force $(IMAGE_TAG) || true mkdir -p $(PODMAN_HOME) @echo "Building Podman image. This may take some time." - cat $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) --tag $(IMAGE_TAG) - @echo "Mapping Podman user space. Please wait." + cat $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) $(PODMAN_CACHE) --tag $(IMAGE_TAG) $(PODMAN_RUN) bash -e podman/rustinstall.sh mkdir -p build touch $@ @@ -71,6 +82,9 @@ else @echo PODMAN_BUILD=$(PODMAN_BUILD), container not required. endif +container_push: build/container.tag + podman push $(IMAGE_TAG) $(PODMAN_CACHE_PATH) + KERNEL_PATH := recipes/core/kernel KERNEL_PATH_SOURCE := $(ROOT)/$(KERNEL_PATH)/source KERNEL_PATH_TARGET := $(ROOT)/$(KERNEL_PATH)/target/$(TARGET) diff --git a/mk/prefix.mk b/mk/prefix.mk index 47fdd6bcd..8521b4333 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -4,69 +4,58 @@ PREFIX=prefix/$(TARGET) PREFIX_INSTALL=$(PREFIX)/sysroot/ PREFIX_PATH=$(ROOT)/$(PREFIX_INSTALL)/bin -RELIBC_SOURCE=recipes/core/relibc/source +BINUTILS_TARGET=recipes/dev/binutils-gdb/target/$(HOST_TARGET)/$(TARGET) +LIBTOOL_TARGET=recipes/dev/libtool/target/$(HOST_TARGET) +GCC_TARGET=recipes/dev/gcc13/target/$(HOST_TARGET)/$(TARGET) +LIBSTDCXX_TARGET=recipes/libs/libstdcxx-v3/target/$(TARGET)/$(HOST_TARGET) +RELIBC_FREESTANDING_TARGET=recipes/core/relibc/target/$(TARGET)/$(HOST_TARGET) +RELIBC_TARGET=recipes/core/relibc/target/$(TARGET) +LLVM_TARGET=recipes/dev/llvm21/target/$(HOST_TARGET)/$(TARGET) +RUST_TARGET=recipes/dev/rust/target/$(HOST_TARGET)/$(TARGET) +CLANG_TARGET=recipes/dev/clang21/target/$(HOST_TARGET)/$(TARGET) +LLD_TARGET=recipes/dev/lld21/target/$(HOST_TARGET)/$(TARGET) -BINUTILS_BRANCH=redox-2.43.1 -GCC_BRANCH=redox-13.2.0 -LIBTOOL_VERSION=2.5.4 +# official RISC-V support introduced in newer version +UPSTREAM_RUSTC_VERSION=2025-11-15 export PREFIX_RUSTFLAGS=-L $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/lib export RUSTUP_TOOLCHAIN=$(ROOT)/$(PREFIX_INSTALL) export REDOXER_TOOLCHAIN=$(RUSTUP_TOOLCHAIN) +PREFIX_CONFIG=CI=1 COOKBOOK_CLEAN_BUILD=true COOKBOOK_CLEAN_TARGET=false COOKBOOK_VERBOSE=true COOKBOOK_NONSTOP=false -export CC= -export CXX= - -ifeq ($(TARGET),riscv64gc-unknown-redox) - GCC_ARCH?=--with-arch=rv64gc --with-abi=lp64d -else - GCC_ARCH?= -endif - -# TODO(andypython): Upstream libtool patches to remove the need to locally build libtool. -# Cannot be CI built, i.e. be a part of relibc-install.tar.gz, as the prefix has to be correctly -# set while building. Otherwise aclocal will not be able to find libtool's files. Furthermore, doing -# so would break non-podman builds (not sure if they are still supported though). prefix: $(PREFIX)/sysroot -PREFIX_STRIP=\ - mkdir -p bin libexec "$(GCC_TARGET)/bin" && \ - find bin libexec "$(GCC_TARGET)/bin" "$(GCC_TARGET)/lib" \ - -type f \ - -exec strip --strip-unneeded {} ';' \ - 2> /dev/null +# Remove prefix builds and downloads +prefix_clean: + rm -rf $(PREFIX) -$(RELIBC_SOURCE): | $(FSTOOLS_TAG) +# Remove relibc in sysroot and all statically linked recipes +static_clean: | $(FSTOOLS_TAG) + $(MAKE) c.relibc + $(MAKE) c.base,base-initfs,extrautils,kernel,ion,pkgutils,redoxfs + $(MAKE) c.bash,luajit,gettext,openssl1,openssl3,pcre2,sdl1,zstd,zlib,bzip2,xz + $(MAKE) c.expat,freetype2,libffi,libiconv,libjpeg,liborbital,libpng,libxml2,ncurses,ncursesw + rm -rf $(REPO_TAG) + +$(PREFIX)/relibc-install: $(PREFIX)/clang-install $(PREFIX)/rust-install $(PREFIX)/gcc-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - ./target/release/repo fetch relibc - touch $(RELIBC_SOURCE) -endif - -$(PREFIX)/relibc: | $(RELIBC_SOURCE) - mkdir -p "$(@D)" + @echo "\033[1;36;49mBuilding relibc-install\033[0m" rm -rf "$@.partial" "$@" - cp -r "$(RELIBC_SOURCE)" "$@.partial" - touch "$@.partial" - mv "$@.partial" "$@" - -$(PREFIX)/relibc-install: $(PREFIX)/relibc | $(PREFIX)/rust-install $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - rm -rf "$@.partial" "$@" - cp -r "$(PREFIX)/rust-install" "$@.partial" - rm -rf "$@.partial/$(TARGET)/include/"* - cp -r "$(PREFIX)/rust-install/$(GNU_TARGET)/include/c++" "$@.partial/$(GNU_TARGET)/include/c++" - cp -r "$(PREFIX)/rust-install/lib/rustlib/$(HOST_TARGET)/lib/" "$@.partial/lib/rustlib/$(HOST_TARGET)/" - cd "$<" && \ + mkdir "$@.partial" + cp -r "$(PREFIX)/gcc-install/". "$@.partial" + cp -r "$(PREFIX)/rust-install/". "$@.partial" + cp -r "$(PREFIX)/clang-install/". "$@.partial" + rm -rf "$@.partial/$(GNU_TARGET)/include/"* + cp -r "$(PREFIX)/gcc-install/$(GNU_TARGET)/include/c++" "$@.partial/$(GNU_TARGET)/include/c++" export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \ - export CARGO="env -u CARGO cargo" && \ - $(MAKE) clean && \ - $(MAKE) -j `$(NPROC)` all && \ - $(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(GNU_TARGET)" - cd "$@.partial" && $(PREFIX_STRIP) + export CARGO="env -u CARGO cargo" $(PREFIX_CONFIG) && \ + $(REPO_BIN) cook relibc + cp -r "$(RELIBC_TARGET)/stage/usr/". "$@.partial/$(GNU_TARGET)" + mkdir -p "$@.partial/$(GNU_TARGET)/usr" + ln -s "../include" "$@.partial/$(GNU_TARGET)/usr/include" + ln -s "../lib" "$@.partial/$(GNU_TARGET)/usr/lib" touch "$@.partial" mv "$@.partial" "$@" endif @@ -79,76 +68,35 @@ $(PREFIX)/relibc-install.tar.gz: $(PREFIX)/relibc-install --directory="$<" \ . -$(PREFIX)/libtool: | $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - rm -rf "$@.partial" "$@" - mkdir -p "$@.partial" - git clone \ - --recurse-submodules \ - --shallow-submodules \ - "https://gitlab.redox-os.org/redox-os/libtool/" \ - --branch "v$(LIBTOOL_VERSION)-redox" \ - --depth 2 \ - "$@.partial" - - touch "$@.partial" - echo $(LIBTOOL_VERSION) > $@.partial/.tarball-version - mv "$@.partial" "$@" -endif - -$(PREFIX)/libtool-build: $(PREFIX)/libtool $(PREFIX)/rust-install $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - rm -rf "$@.partial" "$@" - mkdir -p "$@.partial" - PATH="$(ROOT)/$(PREFIX)/rust-install/bin:$$PATH" && \ - cd "$<" && \ - ./bootstrap \ - --skip-po \ - --force \ - --gnulib-srcdir=./gnulib - PATH="$(ROOT)/$(PREFIX)/rust-install/bin:$$PATH" && \ - cd "$@.partial" && \ - cp -r $(abspath $<)/. ./ && \ - "$(ROOT)/$ "$@/bin/libtoolize" + chmod 0755 "$@/bin/libtoolize" touch "$@" endif +# PREFIX_BINARY --------------------------------------------------- ifeq ($(PREFIX_BINARY),1) -$(PREFIX)/rust-install.tar.gz: | $(CONTAINER_TAG) +# PREFIX_BINARY FOR LINUX ----------------------------------------- +ifneq ($(HOSTED_REDOX),1) + +$(PREFIX)/%.tar.gz: | $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else mkdir -p "$(@D)" - #TODO: figure out why rust-install.tar.gz is missing /lib/rustlib/$(HOST_TARGET)/lib - wget -O $@.partial "https://static.redox-os.org/toolchain/$(HOST_TARGET)/$(TARGET)/relibc-install.tar.gz" + wget -O $@.partial "https://static.redox-os.org/toolchain/$(HOST_TARGET)/$(TARGET)/$(@F)" mv $@.partial $@ endif -$(PREFIX)/rust-install: $(PREFIX)/rust-install.tar.gz $(CONTAINER_TAG) +$(PREFIX)/gcc-install $(PREFIX)/rust-install $(PREFIX)/clang-install: %: %.tar.gz | $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -159,161 +107,72 @@ else mv "$@.partial" "$@" endif +# PREFIX_BINARY FOR REDOX ----------------------------------------- else -$(ROOT)/rust/configure: - git submodule sync --recursive - git submodule update --progress --init --recursive --checkout rust - -PREFIX_FREESTANDING_INSTALL=$(PREFIX)/gcc-freestanding-install -PREFIX_FREESTANDING_PATH=$(ROOT)/$(PREFIX_FREESTANDING_INSTALL)/bin - -$(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2: +$(PREFIX)/id_ed25519.pub.toml: | $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else mkdir -p "$(@D)" - rm -fv $(PREFIX)/binutils*.tar.bz2* - wget -O $@.partial "https://gitlab.redox-os.org/redox-os/binutils-gdb/-/archive/$(BINUTILS_BRANCH)/binutils-gdb-$(BINUTILS_BRANCH).tar.bz2" + wget -O $@.partial "https://static.redox-os.org/pkg/id_ed25519.pub.toml" mv $@.partial $@ +endif -$(PREFIX)/binutils: $(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2 +$(PREFIX)/%.pkgar: $(PREFIX)/id_ed25519.pub.toml | $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - rm -rf "$@.partial" "$@" - mkdir -p "$@.partial" - tar --extract --file "$<" --directory "$@.partial" --no-same-owner --strip-components=1 - touch "$@.partial" - mv "$@.partial" "$@" -endif - -$(PREFIX)/binutils-install: $(PREFIX)/binutils $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - rm -rf "$<-build" "$@.partial" "$@" - mkdir -p "$<-build" "$@.partial" - cd "$<-build" && \ - "$(ROOT)/$ "$@.partial/bin/libtoolize" + chmod 0755 "$@.partial/bin/libtoolize" touch "$@.partial" mv "$@.partial" "$@" endif -$(PREFIX)/rust-install.tar.gz: $(PREFIX)/rust-install - tar \ - --create \ - --gzip \ - --file "$@" \ - --directory="$<" \ - . +$(PREFIX)/binutils-install: | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @echo "\033[1;36;49mBuilding binutils-install\033[0m" + rm -rf "$@.partial" "$@" + mkdir -p "$@.partial" + export $(PREFIX_CONFIG) PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ + COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) && \ + $(REPO_BIN) cook host:binutils-gdb + cp -r "$(BINUTILS_TARGET)/stage/usr/". "$@.partial" + touch "$@.partial" + mv "$@.partial" "$@" +endif + +$(PREFIX)/gcc-freestanding-install: $(PREFIX)/binutils-install | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @echo "\033[1;36;49mBuilding gcc-freestanding-install\033[0m" + rm -rf "$@.partial" "$@" $(PREFIX)/relibc-freestanding-install $(PREFIX)/sysroot + mkdir -p "$@.partial" $(PREFIX)/relibc-freestanding-install/$(GNU_TARGET)/include + export $(PREFIX_CONFIG) PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$(ROOT)/$(PREFIX)/binutils-install/bin:$$PATH" \ + COOKBOOK_LIBTOOL_DIR=$(ROOT)/$(PREFIX)/libtool-install COOKBOOK_CROSS_TARGET=$(TARGET) COOKBOOK_CROSS_GNU_TARGET=$(GNU_TARGET) \ + COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_SYSROOT=$(ROOT)/$(PREFIX)/relibc-freestanding-install/$(GNU_TARGET) && \ + $(REPO_BIN) cook host:gcc13 + cp -r "$(GCC_TARGET)/stage/usr/". "$@.partial" + cp -r "$(GCC_TARGET)/stage.cxx/usr/". "$@.partial" + cp -r "$(PREFIX)/binutils-install/". "$@.partial" + rm -rf $(PREFIX)/relibc-freestanding-install + touch "$@.partial" + mv "$@.partial" "$@" +endif + +$(PREFIX)/relibc-freestanding-install: $(PREFIX)/gcc-freestanding-install | $(FSTOOLS_TAG) $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @echo "\033[1;36;49mBuilding relibc-freestanding-install\033[0m" + rm -rf "$@.partial" "$@" + mkdir -p "$@.partial" + export CARGO="env -u CARGO -u RUSTUP_TOOLCHAIN cargo" RUSTUP="env -u CARGO -u RUSTUP_TOOLCHAIN rustup" && \ + export PATH="$(ROOT)/$(PREFIX)/gcc-freestanding-install/bin:$$PATH" && \ + export CC_$(subst -,_,$(TARGET))="$(GNU_TARGET)-gcc -isystem $(ROOT)/$@.partial/$(GNU_TARGET)/include" LINKFLAGS="" && \ + export $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(HOST_TARGET) && \ + $(REPO_BIN) cook relibc + cp -r "$(RELIBC_FREESTANDING_TARGET)/stage/usr/". "$@.partial/$(GNU_TARGET)" + touch "$@.partial" + mv "$@.partial" "$@" +endif + +$(PREFIX)/gcc-install: $(PREFIX)/relibc-freestanding-install | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @echo "\033[1;36;49mBuilding gcc-install\033[0m" + rm -rf "$@.partial" "$@-build.partial" "$@" + if [ ! -d "$(ROOT)/$(GCC_TARGET)" ]; then \ + echo "\033[1;38;5;196m Incomplete build stages. Please re-run the build\033[0m"; \ + rm -rf "$(PREFIX)"/gcc-freestanding-install && "$(PREFIX)"/relibc-freestanding-install && \ + exit 1; fi + mkdir -p "$@.partial" "$@-build.partial" + cp -r "$(PREFIX)/gcc-freestanding-install/". "$@.partial" + cp -r "$(PREFIX)/relibc-freestanding-install/". "$@.partial" + cp -r "$(PREFIX)/libtool-install/". "$@.partial" + @#TODO: how to make this not conflict with libc? + rm -f "$@.partial/lib/gcc/$(GNU_TARGET)/13.2.0/include/limits.h" +# libgcc and freestanding libstdcxx + export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \ + $(MAKE) -C "$(ROOT)/$(GCC_TARGET)/build" all-target-libgcc all-target-libstdc++-v3 && \ + $(MAKE) -C "$(ROOT)/$(GCC_TARGET)/build" install-target-libgcc install-target-libstdc++-v3 DESTDIR="$(ROOT)/$@-build.partial/usr" + cp -r "$@-build.partial/usr/". "$@.partial" + @#TODO: in riscv64gc libgcc_s.so is a GNU ld script + rm -f "$@.partial"/$(GNU_TARGET)/lib/libgcc_s.so + ln -s libgcc_s.so.1 "$@.partial"/$(GNU_TARGET)/lib/libgcc_s.so + @#TODO: generates wrong lib path for libtool + rm -f "$@.partial"/$(GNU_TARGET)/lib/libstdc++.la + rm -f "$@.partial"/$(GNU_TARGET)/lib/libsupc++.la +# hosted libstdcxx + export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \ + export $(PREFIX_CONFIG) "COOKBOOK_HOST_SYSROOT=$(ROOT)/$@.partial" COOKBOOK_CROSS_TARGET=$(HOST_TARGET) && \ + rm -rf "$(LIBSTDCXX_TARGET)/stage" && $(REPO_BIN) cook libstdcxx-v3 + cp -r "$(LIBSTDCXX_TARGET)/stage/usr/". "$@.partial/$(GNU_TARGET)" + rm -rf "$@-build.partial" + touch "$@.partial" + mv "$@.partial" "$@" +# no longer needed, delete build files to save disk space + rm -rf $(BINUTILS_TARGET) $(LIBTOOL_TARGET) $(GCC_TARGET) $(LIBSTDCXX_TARGET) $(RELIBC_FREESTANDING_TARGET) +endif + +# RUST FROM UPSTREAM COMPILER --------------------------------------------------- +ifeq ($(PREFIX_USE_UPSTREAM_RUST_COMPILER),1) + +PREFIX_RUST_VERSION_TAG=$(PREFIX)/rustc-version-tag-$(UPSTREAM_RUSTC_VERSION) + +$(PREFIX_RUST_VERSION_TAG): + rm -f "$(PREFIX)"/rustc-version-tag-* + rm -f "$(PREFIX)"/rustc-install.tar.xz + rm -f "$(PREFIX)"/cargo-install.tar.xz + rm -f "$(PREFIX)"/rust-std-host-install.tar.xz + rm -f "$(PREFIX)"/rust-std-target-install.tar.xz + rm -f "$(PREFIX)"/rust-src-install.tar.xz: + mkdir -p "$(@D)" + touch $@ + +$(PREFIX)/rustc-install.tar.xz $(PREFIX)/cargo-install.tar.xz: $(PREFIX)/%-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + mkdir -p "$(@D)" + wget -O $@.partial "https://static.rust-lang.org/dist/$(UPSTREAM_RUSTC_VERSION)/$*-nightly-$(HOST_TARGET).tar.xz" + mv $@.partial $@ +endif + +$(PREFIX)/rust-std-host-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + mkdir -p "$(@D)" + wget -O $@.partial "https://static.rust-lang.org/dist/$(UPSTREAM_RUSTC_VERSION)/rust-std-nightly-$(HOST_TARGET).tar.xz" + mv $@.partial $@ +endif + +$(PREFIX)/rust-std-target-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + mkdir -p "$(@D)" +ifeq ($(TARGET),x86_64-unknown-redox) + wget -O $@.partial "https://static.rust-lang.org/dist/$(UPSTREAM_RUSTC_VERSION)/rust-std-nightly-$(TARGET).tar.xz" + mv $@.partial $@ +else + touch $@ +endif +endif + +$(PREFIX)/rust-src-install.tar.xz: | $(PREFIX_RUST_VERSION_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + mkdir -p "$(@D)" + wget -O $@.partial "https://static.rust-lang.org/dist/$(UPSTREAM_RUSTC_VERSION)/rust-src-nightly.tar.xz" + mv $@.partial $@ +endif + +$(PREFIX)/rust-install: $(PREFIX)/rustc-install.tar.xz $(PREFIX)/cargo-install.tar.xz $(PREFIX)/rust-std-host-install.tar.xz $(PREFIX)/rust-std-target-install.tar.xz $(PREFIX)/rust-src-install.tar.xz +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @echo "\033[1;36;49mBuilding rust-install\033[0m" + rm -rf "$@.partial" "$@" + mkdir -p "$@.partial" + tar --extract --file "$(PREFIX)/rustc-install.tar.xz" -C "$@.partial" rustc-nightly-$(HOST_TARGET)/rustc/ --strip-components=2 + tar --extract --file "$(PREFIX)/cargo-install.tar.xz" --directory "$@.partial" cargo-nightly-$(HOST_TARGET)/cargo/ --strip-components=2 + tar --extract --file "$(PREFIX)/rust-std-host-install.tar.xz" --directory "$@.partial" rust-std-nightly-$(HOST_TARGET)/rust-std-$(HOST_TARGET)/ --strip-components=2 + tar --extract --file "$(PREFIX)/rust-src-install.tar.xz" --directory "$@.partial" rust-src-nightly/rust-src/ --strip-components=2 +ifeq ($(TARGET),x86_64-unknown-redox) + tar --extract --file "$(PREFIX)/rust-std-target-install.tar.xz" --directory "$@.partial" rust-std-nightly-$(TARGET)/rust-std-$(TARGET)/ --strip-components=2 +endif + rm -f "$@.partial/manifest.in" + touch "$@.partial" + mv "$@.partial" "$@" +endif + +# BUILD RUST --------------------------------------------------- +else + +$(PREFIX)/rust-install: | $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @echo "\033[1;36;49mBuilding rust-install\033[0m" + rm -rf "$@.partial" "$@" + export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ + $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \ + $(REPO_BIN) cook host:llvm21 host:rust + cp -r "$(RUST_TARGET)/stage/usr/". "$@.partial" + cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial" + mv "$@.partial" "$@" +# TODO: Cache from RUST_TARGET is currently not cleared. +# TIP: If you're developing std for rust, remove COOKBOOK_CLEAN_BUILD=true +# at the top of this file so your next rust build reuses the build cache +endif + +endif + +# BUILD CLANG --------------------------------------------------- +$(PREFIX)/clang-install: | $(PREFIX)/rust-install $(PREFIX)/libtool-install $(FSTOOLS_TAG) $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @echo "\033[1;36;49mBuilding clang-install\033[0m" + rm -rf "$@.partial" "$@" + export PATH="$(ROOT)/$(PREFIX)/libtool-install/bin:$$PATH" \ + $(PREFIX_CONFIG) COOKBOOK_HOST_SYSROOT=/usr COOKBOOK_CROSS_TARGET=$(TARGET) && \ + $(REPO_BIN) cook host:llvm21 host:clang21 host:lld21 +# llvm libraries is already in rust if building +ifeq ($(PREFIX_USE_UPSTREAM_RUST_COMPILER),1) + cp -r "$(LLVM_TARGET)/stage/usr/". "$@.partial" +endif + cp -r "$(LLVM_TARGET)/stage.dev/usr/". "$@.partial" + cp -r "$(LLVM_TARGET)/stage.runtime/usr/". "$@.partial" + cp -r "$(CLANG_TARGET)/stage/usr/". "$@.partial" + cp -r "$(LLD_TARGET)/stage/usr/". "$@.partial" + mv "$@.partial" "$@" +# no longer needed, delete build files to save disk space + rm -rf $(LLVM_TARGET) $(CLANG_TARGET) $(LLD_TARGET) +endif + endif diff --git a/mk/qemu.mk b/mk/qemu.mk index 6d1ff6226..e9dc2376d 100644 --- a/mk/qemu.mk +++ b/mk/qemu.mk @@ -1,12 +1,14 @@ # Configuration file for QEMU -QEMU=SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-$(QEMU_ARCH) +QEMU=qemu-system-$(QEMU_ARCH) QEMUFLAGS=-d guest_errors -name "Redox OS $(ARCH)" netboot?=no +redoxer?=no VGA_SUPPORTED=no ifeq ($(ARCH),i586) audio?=ac97 + disk?=ata gpu?=vga uefi=no VGA_SUPPORTED=yes @@ -42,7 +44,7 @@ else ifeq ($(ARCH),x86_64) endif endif ifneq ($(usb),no) - QEMUFLAGS+=-device nec-usb-xhci,id=xhci + QEMUFLAGS+=-device qemu-xhci endif else ifeq ($(ARCH),aarch64) # Default to UEFI as U-Boot doesn't set up a framebuffer for us and we don't yet support @@ -58,6 +60,7 @@ else ifeq ($(ARCH),aarch64) ifeq ($(BOARD),raspi3bp) QEMU_KERNEL=$(BUILD)/raspi3bp_uboot.rom disk?=sdcard + gpu=none QEMU_MACHINE:=raspi3b QEMU_SMP:=4 QEMU_MEM:=1024 @@ -103,14 +106,15 @@ else ifeq ($(ARCH),riscv64gc) QEMU_SMP?=4 QEMU_MEM?=2048 QEMU_CPU=max - disk?=nvme PFLASH0=$(firstword \ $(wildcard /usr/share/qemu-efi-riscv64/RISCV_VIRT_CODE.fd) \ + $(wildcard /usr/share/edk2/riscv/RISCV_VIRT_CODE.fd) \ $(wildcard /usr/share/qemu/edk2-riscv-code.fd) \ $(wildcard /opt/homebrew/opt/qemu/share/qemu/edk2-riscv-code.fd) \ ) PFLASH1=$(firstword \ $(wildcard /usr/share/qemu-efi-riscv64/RISCV_VIRT_VARS.fd) \ + $(wildcard /usr/share/edk2/riscv/RISCV_VIRT_VARS.fd) \ $(wildcard /usr/share/qemu/edk2-riscv-vars.fd) \ $(wildcard /opt/homebrew/opt/qemu/share/qemu/edk2-riscv-vars.fd) \ ) @@ -162,6 +166,17 @@ else QEMUFLAGS+=-serial chardev:debug -mon chardev=debug endif +# redoxer exit code: 51 => success, 53 => failure +ifeq ($(redoxer),yes) +ifeq ($(ARCH),x86_64) + QEMUFLAGS+=-device isa-debug-exit +else ifeq ($(ARCH),i586) + QEMUFLAGS+=-device isa-debug-exit +else ifeq ($(ARCH),aarch64) + QEMUFLAGS+=-semihosting-config enable=on,target=native,userspace=on +endif +endif + ifeq ($(iommu),yes) QEMUFLAGS+=-machine $(QEMU_MACHINE),iommu=on else @@ -236,6 +251,12 @@ else ifeq ($(gpu),virtio) else QEMUFLAGS+=-vga none -device virtio-gpu endif +else ifeq ($(gpu),virtio-sdl) + ifeq ($(VGA_SUPPORTED),yes) + QEMUFLAGS+=-vga none -device virtio-vga -display sdl,show-cursor=on + else + QEMUFLAGS+=-vga none -device virtio-gpu -display sdl,show-cursor=on + endif else ifeq ($(gpu),virtio-gl) ifeq ($(VGA_SUPPORTED),yes) QEMUFLAGS+=-display gtk,gl=on -vga none -device virtio-vga-gl @@ -245,7 +266,7 @@ else ifeq ($(gpu),virtio-gl) endif EXTRA_DISK=$(BUILD)/extra.img -disk?=ata +disk?=nvme ifeq ($(disk),ata) # For i386, ata will use ided # For aarch64 and x86_64, ata will use ahcid @@ -351,18 +372,3 @@ $(BUILD)/qemu_uboot.rom: qemu: qemu-deps $(QEMU) $(QEMUFLAGS) - -# You probably want to use disk=no when using the *_extra targets -qemu_extra: qemu-deps - $(QEMU) $(QEMUFLAGS) \ - -drive file=$(EXTRA_DISK),format=raw - -qemu_nvme_extra: qemu-deps - $(QEMU) $(QEMUFLAGS) \ - -drive file=$(EXTRA_DISK),format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA - -#additional steps for $(DISK) are required!!! -qemu_raspi: qemu-deps - $(QEMU) -M raspi3b -smp 4,cores=1 \ - -kernel $(FIRMWARE) \ - -serial stdio -display none diff --git a/mk/repo.mk b/mk/repo.mk index cfe0424e7..a476f3fed 100644 --- a/mk/repo.mk +++ b/mk/repo.mk @@ -1,24 +1,40 @@ # Configuration file for recipe commands -$(REPO_TAG): prefix $(FILESYSTEM_CONFIG) | $(FSTOOLS_TAG) $(CONTAINER_TAG) +$(REPO_TAG): prefix $(FILESYSTEM_CONFIG) | $(FSTOOLS) $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - ./target/release/repo cook $(COOKBOOK_OPTS) --with-package-deps + $(REPO_BIN) cook $(COOKBOOK_OPTS) --with-package-deps mkdir -p $(BUILD) touch $@ endif comma := , -# List all recipes in a tree fashion specified by the filesystem config -tree: $(FSTOOLS_TAG) $(CONTAINER_TAG) +# List all recipes in a cook-tree fashion specified by the filesystem config +repo-tree: $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - @./target/release/repo tree $(COOKBOOK_OPTS) --with-package-deps + @$(REPO_BIN) cook-tree $(COOKBOOK_OPTS) --with-package-deps +endif + +# List all recipes in a push-tree fashion specified by the filesystem config +image-tree: $(FSTOOLS_TAG) $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @$(REPO_BIN) push-tree $(COOKBOOK_OPTS) --with-package-deps +endif + +# Clean specific target to all recipes, similar to repo_clean but more specific +repo_clean_target: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + $(REPO_BIN) clean-target --all endif # Fetch all recipes source or binary from filesystem config @@ -28,7 +44,15 @@ ifeq ($(PODMAN_BUILD),1) else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - ./target/release/repo fetch $(COOKBOOK_OPTS) --with-package-deps + $(REPO_BIN) fetch $(COOKBOOK_OPTS) --with-package-deps +endif + +# Fetch Cargo dependencies for the cookbook tool (needed for REPO_OFFLINE=1 builds) +cargo-fetch: FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + $(HOST_CARGO) fetch --manifest-path Cargo.toml --locked endif # Find recipe for one or more targets separated by comma @@ -36,7 +60,17 @@ find.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - @./target/release/repo find $(foreach f,$(subst $(comma), ,$*),$(f)) + @$(REPO_BIN) find $(foreach f,$(subst $(comma), ,$*),$(f)) +endif + +# Invoke clean for relibc in recipe and relibc in sysroot +c.relibc: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + $(REPO_BIN) clean relibc + rm -rf $(PREFIX)/relibc-install $(PREFIX)/sysroot + @echo "\033[1;36;49mSysroot cleaned\033[0m" endif # Invoke clean for one or more targets separated by comma @@ -44,7 +78,7 @@ c.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - ./target/release/repo clean $(foreach f,$(subst $(comma), ,$*),$(f)) + $(REPO_BIN) clean $(foreach f,$(subst $(comma), ,$*),$(f)) endif # Invoke fetch for one or more targets separated by comma @@ -54,17 +88,25 @@ ifeq ($(PODMAN_BUILD),1) else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - ./target/release/repo fetch $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS) + $(REPO_BIN) fetch $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS) endif -# Invoke repo.sh for one or more targets separated by comma -r.%: $(FSTOOLS_TAG) FORCE +# Invoke cook for one or more targets separated by comma +r.%: prefix $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - ./target/release/repo cook $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS) + $(REPO_BIN) cook $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS) +endif + +# Show what to cook +rt.%: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + $(REPO_BIN) cook-tree $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS) endif MOUNTED_TAG=$(MOUNT_DIR)~ @@ -82,12 +124,12 @@ endif ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ ALLOW_FSTOOLS=$(FSTOOLS_IN_PODMAN) else - ./target/release/repo push $(foreach f,$(subst $(comma), ,$*),$(f)) "--sysroot=$(MOUNT_DIR)" + $(REPO_BIN) push $(foreach f,$(subst $(comma), ,$*),$(f)) "--sysroot=$(MOUNT_DIR)" endif ifeq ($(ALLOW_FSTOOLS),1) @if [ -f $(MOUNTED_TAG) ]; then \ - $(MAKE) unmount && rm -f $(MOUNTED_TAG) && echo "Filesystem unmounted"; \ - else echo "Not unmounting by ourself, don't forget to do it"; \ + $(MAKE) unmount && rm -f $(MOUNTED_TAG); \ + else echo "\033[0;33;49mNot unmounting by ourself, don't forget to do it\033[0m"; \ fi endif @@ -95,6 +137,18 @@ endif pp.%: $(FSTOOLS_TAG) FORCE $(MAKE) p.$*,--with-package-deps +# Show what to push +pt.%: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + $(REPO_BIN) push-tree $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS) +endif + +# Show what to push (with deps) +ppt.%: prefix $(FSTOOLS_TAG) FORCE + $(MAKE) pt.$*,--with-package-deps + # Push all recipes specified by the filesystem config push: $(FSTOOLS_TAG) FORCE ifeq ($(ALLOW_FSTOOLS),1) @@ -107,12 +161,12 @@ endif ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ ALLOW_FSTOOLS=$(FSTOOLS_IN_PODMAN) else - ./target/release/repo push $(COOKBOOK_OPTS) --with-package-deps "--sysroot=$(MOUNT_DIR)" + $(REPO_BIN) push $(COOKBOOK_OPTS) --with-package-deps "--sysroot=$(MOUNT_DIR)" endif ifeq ($(ALLOW_FSTOOLS),1) @if [ -f $(MOUNTED_TAG) ]; then \ - $(MAKE) unmount && rm -f $(MOUNTED_TAG) && echo "Filesystem unmounted"; \ - else echo "Not unmounting by ourself, don't forget to do it"; \ + $(MAKE) unmount && rm -f $(MOUNTED_TAG); \ + else echo "\033[1;33;49mNot unmounting by ourself, don't forget to do it\033[0m"; \ fi endif @@ -121,7 +175,7 @@ u.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - ./target/release/repo unfetch $(foreach f,$(subst $(comma), ,$*),$(f)) + $(REPO_BIN) unfetch $(foreach f,$(subst $(comma), ,$*),$(f)) endif # Invoke clean, and repo.sh for one of more targets separated by comma diff --git a/native_bootstrap.sh b/native_bootstrap.sh index 3c89dc87b..b3fea5b6d 100755 --- a/native_bootstrap.sh +++ b/native_bootstrap.sh @@ -105,55 +105,49 @@ osx_macports() exit 1 fi - install_macports_pkg "coreutils" - install_macports_pkg "findutils" - install_macports_pkg "gcc14" - install_macports_pkg "nasm" - install_macports_pkg "pkgconfig" - install_macports_pkg "osxfuse" - install_macports_pkg "x86_64-elf-gcc" - install_macports_pkg "cmake" - install_macports_pkg "ninja" - install_macports_pkg "po4a" - install_macports_pkg "findutils" - install_macports_pkg "texinfo" install_macports_pkg "autoconf" - install_macports_pkg "openssl3" - install_macports_pkg "openssl11" + install_macports_pkg "automake" install_macports_pkg "bison" + install_macports_pkg "cmake" + install_macports_pkg "coreutils" install_macports_pkg "curl" - install_macports_pkg "wget" - install_macports_pkg "file" - install_macports_pkg "flex" - install_macports_pkg "gperf" + install_macports_pkg "doxygen" install_macports_pkg "expat" + install_macports_pkg "file" + install_macports_pkg "findutils" + install_macports_pkg "flex" + install_macports_pkg "gcc14" + install_macports_pkg "gdb +multiarch" + install_macports_pkg "gmake" install_macports_pkg "gmp" - install_macports_pkg "libpng" + install_macports_pkg "gpatch" install_macports_pkg "jpeg" + install_macports_pkg "libpng" install_macports_pkg "libsdl12" install_macports_pkg "libsdl2_ttf" install_macports_pkg "libtool" install_macports_pkg "m4" - install_macports_pkg "ninja" install_macports_pkg "meson" - install_macports_pkg "python311" + install_macports_pkg "nasm" + install_macports_pkg "ninja" + install_macports_pkg "openssl11" + install_macports_pkg "openssl3" + install_macports_pkg "osxfuse" + install_macports_pkg "p5-html-parser" + install_macports_pkg "patchelf" + install_macports_pkg "perl5.24" + install_macports_pkg "pkgconfig" + install_macports_pkg "po4a" + install_macports_pkg "protobuf-c" install_macports_pkg "py37-mako" + install_macports_pkg "python311" + install_macports_pkg "scons" + install_macports_pkg "texinfo" + install_macports_pkg "unzip" + install_macports_pkg "wget" + install_macports_pkg "x86_64-elf-gcc" install_macports_pkg "xdg-utils" install_macports_pkg "zip" - install_macports_pkg "unzip" - install_macports_pkg "llvm-18" - install_macports_pkg "clang-18" - install_macports_pkg "perl5.24" - install_macports_pkg "p5-html-parser" - install_macports_pkg "doxygen" - install_macports_pkg "gpatch" - install_macports_pkg "patchelf" - install_macports_pkg "automake" - install_macports_pkg "scons" - install_macports_pkg "gmake" - install_macports_pkg "lua" - install_macports_pkg "protobuf-c" - install_macports_pkg "gdb +multiarch" } ############################################################################ @@ -179,51 +173,46 @@ osx_homebrew() exit 1 fi + install_brew_pkg "ant" + install_brew_pkg "autoconf" install_brew_pkg "automake" install_brew_pkg "bison" - install_brew_pkg "gettext" - install_brew_pkg "libtool" - install_brew_pkg "make" - install_brew_pkg "nasm" - install_brew_pkg "gcc@14" - install_brew_pkg "pkg-config" install_brew_pkg "cmake" - install_brew_pkg "ninja" - install_brew_pkg "po4a" - install_brew_pkg "macfuse" + install_brew_pkg "curl" + install_brew_pkg "doxygen" + install_brew_pkg "expat" install_brew_pkg "findutils" - install_brew_pkg "texinfo" + install_brew_pkg "flex" + install_brew_pkg "gcc@14" + install_brew_pkg "gdb" + install_brew_pkg "gettext" + install_brew_pkg "gmp" + install_brew_pkg "gpatch" + install_brew_pkg "jpeg" + install_brew_pkg "libpng" + install_brew_pkg "libtool" + install_brew_pkg "llvm" + install_brew_pkg "m4" + install_brew_pkg "macfuse" + install_brew_pkg "make" + install_brew_pkg "meson" + install_brew_pkg "nasm" + install_brew_pkg "ninja" install_brew_pkg "openssl@1.1" install_brew_pkg "openssl@3.0" - install_brew_pkg "autoconf" - install_brew_pkg "curl" - install_brew_pkg "wget" - install_brew_pkg "flex" - install_brew_pkg "gperf" - install_brew_pkg "expat" - install_brew_pkg "gmp" - install_brew_pkg "libpng" - install_brew_pkg "jpeg" + install_brew_pkg "patchelf" + install_brew_pkg "perl" + install_brew_pkg "pkg-config" + install_brew_pkg "po4a" + install_brew_pkg "protobuf" + install_brew_pkg "python@3.11" + install_brew_pkg "scons" install_brew_pkg "sdl12-compat" install_brew_pkg "sdl2_ttf" - install_brew_pkg "perl" - install_brew_pkg "libtool" - install_brew_pkg "m4" - install_brew_pkg "ninja" - install_brew_pkg "meson" - install_brew_pkg "python@3.11" - install_brew_pkg "zip" + install_brew_pkg "texinfo" install_brew_pkg "unzip" - install_brew_pkg "llvm" - install_brew_pkg "doxygen" - install_brew_pkg "gpatch" - install_brew_pkg "patchelf" - install_brew_pkg "automake" - install_brew_pkg "scons" - install_brew_pkg "lua" - install_brew_pkg "ant" - install_brew_pkg "protobuf" - install_brew_pkg "gdb" + install_brew_pkg "wget" + install_brew_pkg "zip" install_brew_pkg "redox-os/gcc_cross_compilers/x86_64-elf-gcc" "x86_64-elf-gcc" } @@ -250,52 +239,48 @@ freebsd() exit 1 fi - install_freebsd_pkg "coreutils" - install_freebsd_pkg "findutils" - install_freebsd_pkg "gcc" - install_freebsd_pkg "nasm" - install_freebsd_pkg "pkgconf" - install_freebsd_pkg "fusefs-libs3" - install_freebsd_pkg "cmake" - install_freebsd_pkg "gmake" - install_freebsd_pkg "wget" - install_freebsd_pkg "openssl" - install_freebsd_pkg "texinfo" - install_freebsd_pkg "python" - install_freebsd_pkg "automake" - install_freebsd_pkg "gettext" - install_freebsd_pkg "bison" - install_freebsd_pkg "gperf" install_freebsd_pkg "autoconf" + install_freebsd_pkg "automake" + install_freebsd_pkg "bison" + install_freebsd_pkg "cmake" + install_freebsd_pkg "coreutils" install_freebsd_pkg "curl" - install_freebsd_pkg "file" - install_freebsd_pkg "flex" + install_freebsd_pkg "doxygen" install_freebsd_pkg "expat2" + install_freebsd_pkg "file" + install_freebsd_pkg "findutils" + install_freebsd_pkg "flex" + install_freebsd_pkg "fusefs-libs3" + install_freebsd_pkg "gcc" + install_freebsd_pkg "gdb" + install_freebsd_pkg "gettext" + install_freebsd_pkg "gmake" install_freebsd_pkg "gmp" - install_freebsd_pkg "png" install_freebsd_pkg "libjpeg-turbo" - install_freebsd_pkg "sdl12" - install_freebsd_pkg "sdl2_ttf" - install_freebsd_pkg "perl5.36" - install_freebsd_pkg "p5-HTML-Parser" install_freebsd_pkg "libtool" install_freebsd_pkg "m4" - install_freebsd_pkg "po4a" - install_freebsd_pkg "syslinux" - install_freebsd_pkg "ninja" install_freebsd_pkg "meson" - install_freebsd_pkg "xdg-utils" - install_freebsd_pkg "zip" - install_freebsd_pkg "unzip" - install_freebsd_pkg "llvm" - install_freebsd_pkg "doxygen" + install_freebsd_pkg "nasm" + install_freebsd_pkg "ninja" + install_freebsd_pkg "openssl" + install_freebsd_pkg "p5-HTML-Parser" install_freebsd_pkg "patch" install_freebsd_pkg "patchelf" - install_freebsd_pkg "automake" - install_freebsd_pkg "scons" - install_freebsd_pkg "lua54" + install_freebsd_pkg "perl5.36" + install_freebsd_pkg "pkgconf" + install_freebsd_pkg "png" + install_freebsd_pkg "po4a" install_freebsd_pkg "py-protobuf-compiler" - install_freebsd_pkg "gdb" + install_freebsd_pkg "python" + install_freebsd_pkg "scons" + install_freebsd_pkg "sdl12" + install_freebsd_pkg "sdl2_ttf" + install_freebsd_pkg "syslinux" + install_freebsd_pkg "texinfo" + install_freebsd_pkg "unzip" + install_freebsd_pkg "wget" + install_freebsd_pkg "xdg-utils" + install_freebsd_pkg "zip" set +x } @@ -315,51 +300,46 @@ archLinux() fi echo "Detected Arch Linux" - packages="cmake \ - fuse \ - git \ - gperf \ - perl-html-parser \ - nasm \ - wget \ - texinfo \ - bison \ - flex \ - po4a \ + packages="ant \ autoconf \ + automake \ + bison \ + cmake \ curl \ + doxygen \ + expat \ file \ + flex \ + fuse \ + gdb \ + git \ + gmp \ + libjpeg-turbo \ + libpng \ + libtool \ + m4 \ + make \ + meson \ + nasm \ patch \ patchelf \ - automake \ - scons \ - waf \ - expat \ - gmp \ - libtool \ - libpng \ - libjpeg-turbo \ - sdl12-compat \ - m4 \ + perl \ + perl-html-parser \ pkgconf \ po4a \ - syslinux \ - meson \ + protobuf \ python \ python-mako \ - make \ - xdg-utils \ - zip \ - unzip \ - llvm \ - clang \ - perl \ - doxygen \ - lua \ - ant \ - protobuf \ rsync \ - gdb" + scons \ + sdl12-compat \ + syslinux \ + texinfo \ + unzip \ + waf \ + wget \ + xdg-utils \ + zip" if [ "$1" == "qemu" ]; then packages="$packages qemu-system-x86 qemu-system-arm qemu-system-riscv" @@ -427,16 +407,14 @@ ubuntu() flex \ fuse3 \ g++ \ + gdb-multiarch \ genisoimage \ git \ git-lfs \ - gperf \ gtk-doc-tools \ help2man \ intltool \ libc6-dev-i386 \ - libexpat-dev \ - libfontconfig1-dev \ libfuse3-dev \ libgdk-pixbuf2.0-bin \ libglib2.0-dev-bin \ @@ -445,7 +423,6 @@ ubuntu() libjpeg-dev \ libmpfr-dev \ libparse-yapp-perl \ - libpng-dev \ libsdl1.2-dev \ libsdl2-ttf-dev \ llvm \ @@ -481,9 +458,7 @@ ubuntu() xutils-dev \ xxd \ zip \ - zlib1g-dev \ - zstd \ - gdb-multiarch" + zstd" # Not availible for at least ARM hosts case "$host_arch" in x86*|i?86) pkgs="$pkgs libc6-dev-i386 syslinux-utils";; @@ -564,63 +539,57 @@ fedora() # Use rpm -q to check if it's already installed PKGS=$(for pkg in @development-tools \ - file \ + ant \ autoconf \ - vim \ + automake \ bison \ - flex \ - genisoimage \ - gperf \ - glibc-devel.i686 \ + cmake \ + curl \ + doxygen \ expat \ expat-devel \ + file \ + flex \ fuse-devel \ fuse3-devel \ - gmp-devel \ - libpng-devel \ - perl \ - perl-HTML-Parser \ - libtool \ - libjpeg-turbo-devel \ - SDL2_ttf-devel \ - sdl12-compat-devel \ - m4 \ - nasm \ - po4a \ - syslinux \ - texinfo \ - ninja-build \ - meson \ - waf \ - python3-mako \ - make \ gcc \ gcc-c++ \ + gdb \ + genisoimage \ + gettext-devel \ + glibc-devel.i686 \ + gmp-devel \ + help2man \ + libjpeg-turbo-devel \ + libpng-devel \ + libtool \ + lzip \ + m4 \ + make \ + meson \ + nasm \ + ninja-build \ openssl \ patch \ patchelf \ - automake \ - perl-Pod-Html \ + perl \ perl-FindBin \ - gperf \ - curl \ - gettext-devel \ + perl-HTML-Parser \ + perl-Pod-Html \ perl-Pod-Xhtml \ pkgconf-pkg-config \ - cmake \ - llvm \ - zip \ - unzip \ - lua \ - luajit \ - make \ - clang \ - doxygen \ - ant \ + po4a \ protobuf-compiler \ - zstd \ - lzip \ - gdb ; do rpm -q $pkg > /dev/null || echo $pkg; done) + python3-mako \ + SDL2_ttf-devel \ + sdl12-compat-devel \ + syslinux \ + texinfo \ + unzip \ + vim \ + waf \ + zip \ + zstd ; do rpm -q $pkg > /dev/null || echo $pkg; done) # If the list of packages is not empty, install missing COUNT=$(echo $PKGS | wc -w) if [ $COUNT -ne 0 ]; then @@ -638,51 +607,46 @@ suse() echo "Detected SUSE Linux" packages=( + "ant" + "autoconf" + "automake" + "bison" + "cmake" + "curl" + "doxygen" + "file" + "flex" + "fuse-devel" "gcc" "gcc-c++" - "glibc-devel-32bit" - "nasm" - "make" - "fuse-devel" - "cmake" - "openssl" - "automake" + "gdb-multiarch" "gettext-tools" - "libtool" - "po4a" - "patch" - "flex" - "gperf" - "autoconf" - "bison" - "curl" - "wget" - "file" - "libexpat-devel" + "glibc-devel-32bit" "gmp-devel" - "libpng16-devel" + "libexpat-devel" "libjpeg8-devel" - "perl" - "perl-HTML-Parser" + "libpng16-devel" + "libtool" "m4" + "make" + "meson" + "nasm" + "ninja" + "openssl" "patch" "patchelf" - "scons" + "perl" + "perl-HTML-Parser" "pkgconf" - "syslinux-utils" - "ninja" - "meson" + "po4a" + "protobuf" "python-Mako" + "scons" + "syslinux-utils" + "unzip" + "wget" "xdg-utils" "zip" - "unzip" - "llvm" - "clang" - "doxygen" - "lua54" - "ant" - "protobuf" - "gdb-multiarch" ) if [ -z "$(which git)" ]; then @@ -843,33 +807,116 @@ solus() echo "Installing necessary build tools..." #if guards are not necessary with eopkg since it does nothing if latest version is already installed - sudo eopkg it fuse-devel \ - git \ - gcc \ - g++ \ - libgcc-32bit \ - libstdc++-32bit \ - nasm \ - make \ - cmake \ - binutils-gold \ - glibc-devel \ - pkg-config \ - fuse2-devel \ - linux-headers \ - rsync \ + sudo eopkg it autoconf \ automake \ - autoconf \ - m4 \ + binutils-gold \ + bison \ + cmake \ + flex \ + fuse-devel \ + fuse2-devel \ + g++ \ + gcc \ + glibc-devel \ + git \ + libgcc-32bit \ + libpng-devel \ + libstdc++-32bit \ libtool-devel \ - po4a \ + linux-headers \ + m4 \ + make \ + nasm \ patch \ patchelf \ - bison \ - flex \ - gperf \ - libpng-devel \ - perl-html-parser + perl-html-parser \ + pkg-config \ + po4a \ + rsync +} + +############################################################################### +# Helper function to detect if we're running on Redox OS +# This needs to be checked before FreeBSD since both use 'pkg' package manager +############################################################################### +is_os_redox() +{ + [ "$(uname -s)" = "Redox" ] +} + +############################################################################### +# This function takes care of installing all dependencies for building Redox on +# Redox OS itself (bootstrapping Redox on Redox) +# @params: $1 the emulator to install, "virtualbox" or "qemu" +############################################################################### +redox() +{ + echo "Detected Redox OS" + + # Check if git is installed + if [ -z "$(which git)" ]; then + echo "Installing git..." + sudo pkg install git + fi + + # Handle emulator selection + if [ "$1" == "qemu" ]; then + echo "QEMU is not available on Redox OS yet, but it is mandatory for running the built system." + echo "Please install QEMU manually on a compatible host or use another machine to run the emulator." + exit 1 + elif [ "$1" == "virtualbox" ]; then + echo "VirtualBox is not supported on Redox OS." + exit 1 + else + echo "Unknown emulator: $1" + exit 1 + fi + + echo "Installing necessary build tools..." + + # Core development packages that are available on x86_64 Redox + # This list is based on list of "cookbook" and "dev-essential" recipe + packages="autoconf \ + automake \ + cbindgen \ + expat \ + gcc13 \ + gcc13.cxx \ + git \ + gnu-grep \ + gnu-make \ + installer \ + libgmp \ + libjpeg \ + libpng \ + nasm \ + patch \ + pkgar \ + pkg-config \ + rust \ + rustpython \ + sdl1 \ + sdl2-ttf \ + vim" + + + # Try to install packages, but don't fail if some are unavailable + # since Redox package ecosystem is still developing + for pkg in $PKGS; do + if ! pkg list | grep -q "^${pkg}"; then + echo "Attempting to install ${pkg}..." + if ! sudo pkg install ${pkg} 2>/dev/null; then + echo "Warning: ${pkg} could not be installed. It may not be available yet." + fi + else + echo "${pkg} is already installed." + fi + done + + echo "" + echo "Note: Building Redox on Redox itself is experimental." + echo "Some dependencies may not be available yet in the Redox package repository." + echo "For the best build experience, consider using podman_bootstrap.sh on another system." } ###################################################################### @@ -906,6 +953,10 @@ usage() ############################################################# cargoInstall() { + if is_os_redox ; then + # in redox OS, cargo is not based on rustup. Packages are managed by pkg + return 0 + fi if [[ "`cargo +stable install --list`" != *"$1 v$2"* ]]; then cargo +stable install --force --version "$2" "$1" else @@ -921,6 +972,10 @@ cargoInstall() ############################################################################# rustInstall() { + if is_os_redox ; then + # in redox OS, rustup is not available. Packages are managed by pkg + return 0 + fi noninteractive=$1 # Check to see if multirust is installed, we don't want it messing with rustup # In the future we can probably remove this but I believe it's good to have for now @@ -1097,8 +1152,11 @@ if [ "Darwin" == "$(uname -s)" ]; then else # Here we will use package managers to determine which operating system the user is using. + # Redox OS + if is_os_redox; then + redox "$emulator" # SUSE and derivatives - if hash 2>/dev/null zypper; then + elif hash 2>/dev/null zypper; then suse "$emulator" # Debian or any derivative of it elif hash 2>/dev/null apt-get; then diff --git a/podman/redox-base-containerfile b/podman/redox-base-containerfile index 525d64e17..12af4f60f 100644 --- a/podman/redox-base-containerfile +++ b/podman/redox-base-containerfile @@ -4,7 +4,6 @@ FROM docker.io/library/debian:trixie RUN apt-get update \ && apt-get install -y --no-install-recommends \ - ant \ appstream \ appstream-compose \ autoconf \ @@ -27,29 +26,20 @@ RUN apt-get update \ git \ git-lfs \ gobject-introspection \ - gperf \ gtk-doc-tools \ gtk-update-icon-cache \ help2man \ + ipxe-qemu \ intltool \ - itstool \ libaudiofile-dev \ libdbus-glib-1-dev-bin \ - libexpat-dev \ - libfontconfig1-dev \ libfuse3-dev \ libgdk-pixbuf2.0-bin \ libglib2.0-dev-bin \ - libgmp-dev \ libhtml-parser-perl \ - libjpeg-dev \ - libmpfr-dev \ - libparse-yapp-perl \ - libpng-dev \ librsvg2-common \ libsdl1.2-dev \ libsdl2-ttf-dev \ - libxml2-utils \ lzip \ m4 \ make \ @@ -63,8 +53,12 @@ RUN apt-get update \ pkg-config \ po4a \ protobuf-compiler \ + qemu-system-x86 \ + qemu-system-arm \ + qemu-efi-aarch64 \ python3 \ python3-dev \ + python3-libxml2 \ python3-mako \ python3-venv \ rsync \ @@ -77,12 +71,10 @@ RUN apt-get update \ wget \ xdg-utils \ xfonts-utils \ - xorg-dev \ + xserver-xorg-dev \ xutils-dev \ xxd \ zip \ - zlib1g-dev \ - zstd \ && if [ "$(uname -m)" = "x86_64" ]; then \ apt-get install -y --no-install-recommends \ libc6-dev-i386 \ diff --git a/podman/rustinstall.sh b/podman/rustinstall.sh index 31bd594cf..78e475cb9 100755 --- a/podman/rustinstall.sh +++ b/podman/rustinstall.sh @@ -1,21 +1,20 @@ -#/usr/bin/env bash +#!/usr/bin/env bash +# This must be run outside podman build so the build/podman volume mount to /root contains all home folder changes +set -ex -# This script install the Rust toolchain and the build system dependencies -# in Podman after the image has been built +echo "Installing rust..." +curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal -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" +wget -qO- --show-progress "${SCCACHE_URL}" | tar -xz -C ~/.cargo/bin --strip-components=1 --wildcards '*/sccache' -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 -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" +wget -qO- --show-progress "${JUST_URL}" | tar -xz -C ~/.cargo/bin --wildcards 'just' -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 -wget -qO- --show-progress $JUST_URL | tar -xz -C ~/.cargo/bin --wildcards 'just' - -echo Downloading cbindgen... -CBINDGEN_NAME=$( [[ $(uname -m) = "x86_64" ]] && echo "ubuntu22.04" || echo "ubuntu22.04-aarch64" ) -CBINDGEN_URL=https://github.com/mozilla/cbindgen/releases/download/0.29.0/cbindgen-$CBINDGEN_NAME -wget -qO- --show-progress $CBINDGEN_URL > ~/.cargo/bin/cbindgen +echo "Downloading cbindgen..." +CBINDGEN_NAME="$( [ "$(uname -m)" = "x86_64" ] && echo "ubuntu22.04" || echo "ubuntu22.04-aarch64" )" +CBINDGEN_URL="https://github.com/mozilla/cbindgen/releases/download/0.29.0/cbindgen-${CBINDGEN_NAME}" +wget -qO- --show-progress "${CBINDGEN_URL}" > ~/.cargo/bin/cbindgen chmod +x ~/.cargo/bin/cbindgen diff --git a/recipes/archives/zstd/recipe.toml b/recipes/archives/zstd/recipe.toml index 906848506..10796f853 100644 --- a/recipes/archives/zstd/recipe.toml +++ b/recipes/archives/zstd/recipe.toml @@ -6,8 +6,11 @@ patches = [ [build] template = "custom" script = """ -DYNAMIC_INIT +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" """ diff --git a/recipes/core/base-initfs/recipe.toml b/recipes/core/base-initfs/recipe.toml index cc9e1bbf5..eb1353c48 100644 --- a/recipes/core/base-initfs/recipe.toml +++ b/recipes/core/base-initfs/recipe.toml @@ -66,18 +66,12 @@ case "${TARGET}" in esac rm -rf "${COOKBOOK_BUILD}/initfs" -mkdir -p "${COOKBOOK_BUILD}/initfs/etc" +mkdir -p "${COOKBOOK_BUILD}/initfs/lib/init.d" -cp "${COOKBOOK_SOURCE}/init.rc" "${COOKBOOK_BUILD}/initfs/etc/init.rc" -cp "${COOKBOOK_SOURCE}/init_drivers.rc" "${COOKBOOK_BUILD}/initfs/etc/init_drivers.rc" -if [ -e ${COOKBOOK_SOURCE}/${TARGET}/init_drivers.rc.${BOARD} ]; then - cp "${COOKBOOK_SOURCE}/${TARGET}/init_drivers.rc.${BOARD}" "${COOKBOOK_BUILD}/initfs/etc/init_drivers.rc" -elif [ -e ${COOKBOOK_SOURCE}/${TARGET}/init_drivers.rc ]; then - cp "${COOKBOOK_SOURCE}/${TARGET}/init_drivers.rc" "${COOKBOOK_BUILD}/initfs/etc/init_drivers.rc" -fi +cp "${COOKBOOK_SOURCE}/init.d"/* "${COOKBOOK_BUILD}/initfs/lib/init.d/" -mkdir -pv "${COOKBOOK_BUILD}/initfs/etc/pcid" -cp -v "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_BUILD}/initfs/etc/pcid/initfs.toml" +mkdir -pv "${COOKBOOK_BUILD}/initfs/lib/pcid.d" +cp -v "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_BUILD}/initfs/lib/pcid.d/initfs.toml" export CARGO_PROFILE_RELEASE_OPT_LEVEL=s export CARGO_PROFILE_RELEASE_PANIC=abort @@ -98,11 +92,6 @@ do esac done -# TODO: symlinks aren't supported by redox-initfs -#ln -sv zerod "${COOKBOOK_BUILD}/initfs/bin/nulld" - -cp "${COOKBOOK_BUILD}/initfs/bin/zerod" "${COOKBOOK_BUILD}/initfs/bin/nulld" - cp "${COOKBOOK_SYSROOT}/usr/bin/redoxfs" "${COOKBOOK_BUILD}/initfs/bin" ARCH="$(echo "${GNU_TARGET}" | cut -d - -f1)" @@ -120,8 +109,8 @@ RUSTFLAGS="$RUSTFLAGS -Ctarget-feature=+crt-static" cargo \ -z max-page-size=4096 \ "${COOKBOOK_BUILD}/${TARGET}/release/libbootstrap.a" -env -u CARGO cargo run --manifest-path "${COOKBOOK_SOURCE}/initfs/tools/Cargo.toml" --bin redox-initfs-ar -- "${COOKBOOK_BUILD}/initfs" "${COOKBOOK_BUILD}/bootstrap" -o "${COOKBOOK_BUILD}/initfs.img" +env -u CARGO -u RUSTFLAGS cargo run --manifest-path "${COOKBOOK_SOURCE}/initfs/tools/Cargo.toml" --bin redox-initfs-ar -- "${COOKBOOK_BUILD}/initfs" "${COOKBOOK_BUILD}/bootstrap" -o "${COOKBOOK_BUILD}/initfs.img" -mkdir -v "${COOKBOOK_STAGE}/boot" -cp "${COOKBOOK_BUILD}/initfs.img" "${COOKBOOK_STAGE}/boot/initfs" +mkdir -pv "${COOKBOOK_STAGE}/usr/lib/boot" +cp "${COOKBOOK_BUILD}/initfs.img" "${COOKBOOK_STAGE}/usr/lib/boot/initfs" """ diff --git a/recipes/core/base/recipe.toml b/recipes/core/base/recipe.toml index 2afacf3a0..da6805d97 100644 --- a/recipes/core/base/recipe.toml +++ b/recipes/core/base/recipe.toml @@ -23,7 +23,6 @@ cp -v \ # Drivers that are built on all architectures, and NOT in drivers-initfs BINS=( - alxd e1000d ihdad ihdgd @@ -68,13 +67,10 @@ do fi done -mkdir -pv "${COOKBOOK_STAGE}/etc/pcid" -cp -v "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_STAGE}/etc/pcid/initfs.toml" - -mkdir -pv "${COOKBOOK_STAGE}/etc/pcid.d" +mkdir -pv "${COOKBOOK_STAGE}/lib/pcid.d" ${FIND} "${COOKBOOK_SOURCE}/drivers" -maxdepth 3 -type f -name 'config.toml' | while read conf do driver="$(basename "$(dirname "$conf")")" - cp -v "$conf" "${COOKBOOK_STAGE}/etc/pcid.d/$driver.toml" + cp -v "$conf" "${COOKBOOK_STAGE}/lib/pcid.d/$driver.toml" done """ diff --git a/recipes/core/bootloader/recipe.toml b/recipes/core/bootloader/recipe.toml index 17f09add7..1343a30d7 100644 --- a/recipes/core/bootloader/recipe.toml +++ b/recipes/core/bootloader/recipe.toml @@ -5,14 +5,14 @@ git = "https://gitlab.redox-os.org/redox-os/bootloader.git" template = "custom" script = """ OUTDIR="${COOKBOOK_BUILD}" -mkdir -v "${COOKBOOK_STAGE}/boot" +mkdir -pv "${COOKBOOK_STAGE}/usr/lib/boot" function bootloader { export TARGET="$1" src="$2" dst="$3" "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" -f "${COOKBOOK_SOURCE}/Makefile" -C "${OUTDIR}" "${OUTDIR}/${src}" - cp -v "${OUTDIR}/${src}" "${COOKBOOK_STAGE}/boot/${dst}" + cp -v "${OUTDIR}/${src}" "${COOKBOOK_STAGE}/usr/lib/boot/${dst}" } ARCH="$(echo "${TARGET}" | cut -d - -f1)" diff --git a/recipes/core/findutils/recipe.toml b/recipes/core/findutils/recipe.toml index 5c8622536..6cdc88b7c 100644 --- a/recipes/core/findutils/recipe.toml +++ b/recipes/core/findutils/recipe.toml @@ -2,8 +2,7 @@ git = "https://gitlab.redox-os.org/redox-os/findutils.git" [build] -template = "custom" -script = """ -DYNAMIC_INIT -cookbook_cargo --bin find -""" +template = "cargo" +cargoflags = [ + "--bin find" +] diff --git a/recipes/core/kernel/recipe.toml b/recipes/core/kernel/recipe.toml index 38b66b43f..15cbc83b1 100644 --- a/recipes/core/kernel/recipe.toml +++ b/recipes/core/kernel/recipe.toml @@ -5,6 +5,6 @@ git = "https://gitlab.redox-os.org/redox-os/kernel.git" template = "custom" script = """ make -f ${COOKBOOK_SOURCE}/Makefile -mkdir -v "${COOKBOOK_STAGE}/boot" -cp -v kernel "${COOKBOOK_STAGE}/boot" +mkdir -pv "${COOKBOOK_STAGE}/usr/lib/boot" +cp -v kernel "${COOKBOOK_STAGE}/usr/lib/boot" """ diff --git a/recipes/core/pkgar/recipe.toml b/recipes/core/pkgar/recipe.toml index 4a2849504..1cedcdf26 100644 --- a/recipes/core/pkgar/recipe.toml +++ b/recipes/core/pkgar/recipe.toml @@ -3,4 +3,10 @@ git = "https://gitlab.redox-os.org/redox-os/pkgar.git" [build] template = "cargo" -package_path = "pkgar" +cargopackages = [ + "pkgar", + "pkgar-keys", +] +cargoflags = [ + "--features cli" +] diff --git a/recipes/core/pkgutils/recipe.toml b/recipes/core/pkgutils/recipe.toml index 0c500bd17..81dae2fe9 100644 --- a/recipes/core/pkgutils/recipe.toml +++ b/recipes/core/pkgutils/recipe.toml @@ -5,6 +5,6 @@ git = "https://gitlab.redox-os.org/redox-os/pkgutils.git" template = "custom" script = """ # Must be statically linked -PACKAGE_PATH=pkg-cli +COOKBOOK_CARGO_PATH=pkg-cli cookbook_cargo """ diff --git a/recipes/core/redoxerd/recipe.toml b/recipes/core/redoxerd/recipe.toml deleted file mode 100644 index 8a49ef48b..000000000 --- a/recipes/core/redoxerd/recipe.toml +++ /dev/null @@ -1,9 +0,0 @@ -[source] -git = "https://gitlab.redox-os.org/redox-os/redoxer.git" - -[build] -template = "custom" -script = """ -COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/daemon" -cookbook_cargo -""" diff --git a/recipes/core/relibc/recipe.toml b/recipes/core/relibc/recipe.toml index ccc26a5d0..11eeec21b 100644 --- a/recipes/core/relibc/recipe.toml +++ b/recipes/core/relibc/recipe.toml @@ -4,10 +4,22 @@ git = "https://gitlab.redox-os.org/redox-os/relibc.git" [build] template = "custom" script = """ +# obscure crash if jobs number is too much +COOKBOOK_MAKE_JOBS="$(( ${COOKBOOK_MAKE_JOBS} > 8 ? 8 : ${COOKBOOK_MAKE_JOBS} ))" + +# rustup workaround https://github.com/rust-lang/rustup/issues/988 +if [ "${COOKBOOK_HOST_SYSROOT}" = "/usr" ]; then +if command -v rustup >/dev/null 2>&1; then + pushd ${COOKBOOK_SOURCE} + ${RUSTUP:-rustup} install + popd +fi +fi + +export CARGO=${CARGO:-env -u CARGO cargo} "${COOKBOOK_MAKE}" \ -C "${COOKBOOK_SOURCE}" \ - -j"$($NPROC)" \ - CARGO="env -u CARGO cargo" \ - DESTDIR="${COOKBOOK_STAGE}" \ + -j"${COOKBOOK_MAKE_JOBS}" \ + DESTDIR="${COOKBOOK_STAGE}/usr" \ install """ diff --git a/recipes/core/uutils/recipe.toml b/recipes/core/uutils/recipe.toml index 5e32d87ae..3080a4cca 100644 --- a/recipes/core/uutils/recipe.toml +++ b/recipes/core/uutils/recipe.toml @@ -1,12 +1,19 @@ # TODO Fix coreutils i18n/l10n behavior on Redox +# TODO waiting for rustix bump before removing patches +# TODO Fix locale init bug on aarch64 before removing patches [source] git = "https://github.com/uutils/coreutils" +rev = "aa218a30aca43fd1805841357ff885afbd9090c3" +patches = [ + "redox.patch" +] [build] template = "custom" script = """ DYNAMIC_INIT -CARGO_PROFILE_RELEASE_LTO=thin cookbook_cargo --no-default-features --features feat_os_unix_redox --bin coreutils +# 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 BINS=( '[' @@ -42,6 +49,7 @@ BINS=( head join install + kill link ln ls @@ -51,6 +59,7 @@ BINS=( more mv nl + nproc numfmt od paste diff --git a/recipes/core/uutils/redox.patch b/recipes/core/uutils/redox.patch new file mode 100644 index 000000000..976e31d0f --- /dev/null +++ b/recipes/core/uutils/redox.patch @@ -0,0 +1,120 @@ +diff --git a/Cargo.lock b/Cargo.lock +index 49bf30262..37b5a89ec 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -2476,9 +2476,9 @@ dependencies = [ + + [[package]] + name = "rustix" +-version = "1.1.3" ++version = "1.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" ++checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" + dependencies = [ + "bitflags 2.10.0", + "errno", +@@ -2786,9 +2786,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + + [[package]] + name = "tempfile" +-version = "3.24.0" ++version = "3.23.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" ++checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" + dependencies = [ + "fastrand", + "getrandom 0.3.4", +diff --git a/Cargo.toml b/Cargo.toml +index 3c8fea771..b04ac85a3 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -265,6 +265,7 @@ feat_os_unix_redox = [ + "feat_common_core", + # + "chmod", ++ "nproc", + "stat", + "uname", + ] +diff --git a/src/uucore/src/lib/features/fs.rs b/src/uucore/src/lib/features/fs.rs +index a783d04ea..33967f5de 100644 +--- a/src/uucore/src/lib/features/fs.rs ++++ b/src/uucore/src/lib/features/fs.rs +@@ -839,23 +839,39 @@ pub fn make_fifo(path: &Path) -> std::io::Result<()> { + } + + // Redox's libc appears not to include the following utilities ++// TODO: Waiting for rustix release that includes https://github.com/rust-lang/libc/commit/76e737e + +-#[cfg(target_os = "redox")] ++#[cfg(all(target_os = "redox", target_pointer_width = "64"))] + pub fn major(dev: libc::dev_t) -> libc::c_uint { + (((dev >> 8) & 0xFFF) | ((dev >> 32) & 0xFFFFF000)) as _ + } + +-#[cfg(target_os = "redox")] ++#[cfg(all(target_os = "redox", target_pointer_width = "64"))] + pub fn minor(dev: libc::dev_t) -> libc::c_uint { + ((dev & 0xFF) | ((dev >> 12) & 0xFFFFF00)) as _ + } + +-#[cfg(target_os = "redox")] ++#[cfg(all(target_os = "redox", target_pointer_width = "64"))] + pub fn makedev(maj: libc::c_uint, min: libc::c_uint) -> libc::dev_t { + let [maj, min] = [maj as libc::dev_t, min as libc::dev_t]; + (min & 0xff) | ((maj & 0xfff) << 8) | ((min & !0xff) << 12) | ((maj & !0xfff) << 32) + } + ++#[cfg(all(target_os = "redox", target_pointer_width = "32"))] ++pub fn major(_: libc::dev_t) -> libc::c_uint { ++ 0 ++} ++ ++#[cfg(all(target_os = "redox", target_pointer_width = "32"))] ++pub fn minor(_: libc::dev_t) -> libc::c_uint { ++ 0 ++} ++ ++#[cfg(all(target_os = "redox", target_pointer_width = "32"))] ++pub fn makedev(_: libc::c_uint, _: libc::c_uint) -> libc::dev_t { ++ 0 ++} ++ + #[cfg(test)] + mod tests { + // Note this useful idiom: importing names from outer (for mod tests) scope. +diff --git a/src/uucore/src/lib/mods/locale.rs b/src/uucore/src/lib/mods/locale.rs +index ec9a78b43..2faccec5c 100644 +--- a/src/uucore/src/lib/mods/locale.rs ++++ b/src/uucore/src/lib/mods/locale.rs +@@ -195,10 +195,11 @@ fn init_localization( + } + }; + +- LOCALIZER.with(|lock| { ++ // TODO: In aarch64 redox OS, this lock (once cell) is already initialized out of nothing ++ let _ = LOCALIZER.with(|lock| { + lock.set(loc) + .map_err(|_| LocalizationError::Bundle("Localizer already initialized".into())) +- })?; ++ }); + Ok(()) + } + +@@ -400,10 +401,12 @@ pub fn setup_localization(p: &str) -> Result<(), LocalizationError> { + let english_bundle = create_english_bundle_from_embedded(&default_locale, p)?; + let localizer = Localizer::new(english_bundle); + +- LOCALIZER.with(|lock| { ++ // TODO: In aarch64 redox OS, this lock (once cell) is already initialized out of nothing ++ // TODO: When this code is used? Patching for keep sake ++ let _ = LOCALIZER.with(|lock| { + lock.set(localizer) + .map_err(|_| LocalizationError::Bundle("Localizer already initialized".into())) +- })?; ++ }); + Ok(()) + } + } diff --git a/recipes/demos/cairodemo/cairodemo.c b/recipes/demos/cairo-demo/cairo-demo.c old mode 100755 new mode 100644 similarity index 100% rename from recipes/demos/cairodemo/cairodemo.c rename to recipes/demos/cairo-demo/cairo-demo.c diff --git a/recipes/demos/cairodemo/recipe.toml b/recipes/demos/cairo-demo/recipe.toml old mode 100755 new mode 100644 similarity index 76% rename from recipes/demos/cairodemo/recipe.toml rename to recipes/demos/cairo-demo/recipe.toml index 6538f035d..41b171761 --- a/recipes/demos/cairodemo/recipe.toml +++ b/recipes/demos/cairo-demo/recipe.toml @@ -15,11 +15,11 @@ template = "custom" script = """ "${CXX}" \ $("${PKG_CONFIG}" --cflags cairo) \ - "${COOKBOOK_RECIPE}/cairodemo.c" \ - -o cairodemo \ + "${COOKBOOK_RECIPE}/cairo-demo.c" \ + -o cairo-demo \ -static \ $("${PKG_CONFIG}" --libs cairo) \ -lorbital mkdir -pv "${COOKBOOK_STAGE}/bin" -cp -v "cairodemo" "${COOKBOOK_STAGE}/bin/cairodemo" +cp -v "cairo-demo" "${COOKBOOK_STAGE}/bin/cairo-demo" """ diff --git a/recipes/demos/orbclient/recipe.toml b/recipes/demos/orbclient/recipe.toml index 27f07e47b..0e68ad023 100644 --- a/recipes/demos/orbclient/recipe.toml +++ b/recipes/demos/orbclient/recipe.toml @@ -2,7 +2,7 @@ git = "https://gitlab.redox-os.org/redox-os/orbclient.git" [build] -template = "custom" -script = """ -cookbook_cargo_examples simple -""" +template = "cargo" +cargoexamples = [ + "simple" +] diff --git a/recipes/demos/pixelcannon/recipe.toml b/recipes/demos/pixelcannon/recipe.toml index 709e3d977..be0f75b8d 100644 --- a/recipes/demos/pixelcannon/recipe.toml +++ b/recipes/demos/pixelcannon/recipe.toml @@ -9,8 +9,8 @@ cookbook_cargo mkdir -pv "${COOKBOOK_STAGE}/apps/pixelcannon" cp -Rv "${COOKBOOK_SOURCE}/assets" "${COOKBOOK_STAGE}/apps/pixelcannon" -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_SOURCE}/manifest" "${COOKBOOK_STAGE}/ui/apps/pixelcannon" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_SOURCE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/pixelcannon" """ [package] diff --git a/recipes/dev/binutils-gdb/recipe.toml b/recipes/dev/binutils-gdb/recipe.toml new file mode 100644 index 000000000..42522086f --- /dev/null +++ b/recipes/dev/binutils-gdb/recipe.toml @@ -0,0 +1,30 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/binutils-gdb" +branch = "redox-2.43.1" +shallow_clone = true + +[build] +template = "custom" +dependencies = [ + "libgmp", + "libmpfr", +# TODO: this zlib get linked when boostrapping binutils +# "zlib" +] +script = """ +DYNAMIC_INIT + +if [ "${COOKBOOK_HOST_SYSROOT}" = "/usr" ]; then +# not specifying --enable-shared as it will link shared deps +COOKBOOK_CONFIGURE_FLAGS=( --prefix=/usr --host="${GNU_TARGET}" --program-prefix="${COOKBOOK_CROSS_GNU_TARGET:-$GNU_TARGET}-" ) +fi + +COOKBOOK_CONFIGURE_FLAGS+=( + --target="${COOKBOOK_CROSS_GNU_TARGET:-$GNU_TARGET}" + --enable-default-hash-style=gnu + --disable-werror +# --with-system-zlib +) + +cookbook_configure +""" diff --git a/recipes/dev/cargo/recipe.toml b/recipes/dev/cargo/recipe.toml deleted file mode 100644 index e07489624..000000000 --- a/recipes/dev/cargo/recipe.toml +++ /dev/null @@ -1,33 +0,0 @@ -[source] -git = "https://github.com/rust-lang/cargo.git" -rev = "d73d2caf9e41a39daf2a8d6ce60ec80bf354d2a7" # 0.86 -patches = [ - "redox.patch" -] - -[build] -template = "custom" -dependencies = [ - "curl", - "libssh2", - "nghttp2", - "openssl1", - "zlib", -] -script = """ -DYNAMIC_INIT -export LIBSSH2_SYS_USE_PKG_CONFIG=1 -export LIBZ_SYS_STATIC=1 -export DEP_NGHTTP2_ROOT="${COOKBOOK_SYSROOT}" -export DEP_OPENSSL_ROOT="${COOKBOOK_SYSROOT}" -export DEP_Z_ROOT="${COOKBOOK_SYSROOT}" -"${COOKBOOK_CARGO}" rustc \ - --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ - --release \ - --bin cargo \ - -- \ - -L "${COOKBOOK_SYSROOT}/lib" \ - -C link-arg=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib -mkdir -pv "${COOKBOOK_STAGE}/usr/bin" -cp -v "target/${TARGET}/release/cargo" "${COOKBOOK_STAGE}/usr/bin/cargo" -""" diff --git a/recipes/dev/cargo/redox.patch b/recipes/dev/cargo/redox.patch deleted file mode 100644 index 4a32bfe05..000000000 --- a/recipes/dev/cargo/redox.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/crates/cargo-util/src/paths.rs b/crates/cargo-util/src/paths.rs -index 5d7e3c5a6..b7de5655f 100644 ---- a/crates/cargo-util/src/paths.rs -+++ b/crates/cargo-util/src/paths.rs -@@ -201,7 +201,7 @@ pub fn write_atomic, C: AsRef<[u8]>>(path: P, contents: C) -> Res - use std::os::unix::fs::PermissionsExt; - - // these constants are u16 on macOS -- let mask = u32::from(libc::S_IRWXU | libc::S_IRWXG | libc::S_IRWXO); -+ let mask = (libc::S_IRWXU | libc::S_IRWXG | libc::S_IRWXO) as u32; - let mode = meta.permissions().mode() & mask; - - std::fs::Permissions::from_mode(mode) -@@ -611,8 +611,6 @@ fn _link_or_copy(src: &Path, dst: &Path) -> Result<()> { - } - - let link_result = if src.is_dir() { -- #[cfg(target_os = "redox")] -- use std::os::redox::fs::symlink; - #[cfg(unix)] - use std::os::unix::fs::symlink; - #[cfg(windows)] -diff --git a/src/cargo/core/compiler/build_config.rs b/src/cargo/core/compiler/build_config.rs -index 80aa592dd..d40c2056b 100644 ---- a/src/cargo/core/compiler/build_config.rs -+++ b/src/cargo/core/compiler/build_config.rs -@@ -51,9 +51,7 @@ pub struct BuildConfig { - } - - fn default_parallelism() -> CargoResult { -- Ok(available_parallelism() -- .context("failed to determine the amount of parallelism available")? -- .get() as u32) -+ Ok(1) - } - - impl BuildConfig { diff --git a/recipes/dev/clang21/recipe.toml b/recipes/dev/clang21/recipe.toml new file mode 100644 index 000000000..c872eae58 --- /dev/null +++ b/recipes/dev/clang21/recipe.toml @@ -0,0 +1,90 @@ +[source] +same_as = "../llvm21" + +[build] +template = "custom" +dependencies = [ + "llvm21", +] +dev-dependencies = [ + "libstdcxx", # no idea + "llvm21.dev", + "llvm21.runtime", + "host:xz", + "host:libarchive", # workaround for cmake error +] +script = """ +DYNAMIC_INIT +ARCH="$(echo "${TARGET}" | cut -d - -f1)" + +generate_cookbook_cmake_file $COOKBOOK_HOST_TARGET "" "$COOKBOOK_TOOLCHAIN" native.cmake + +COOKBOOK_CMAKE_FLAGS+=( + -DLLVM_ROOT="${COOKBOOK_SYSROOT}" + -DCLANG_LINK_CLANG_DYLIB=ON + -DLIBCLANG_BUILD_STATIC=1 + -DLLVM_BUILD_UTILS=On + +# the shared options from llvm + -DCMAKE_CXX_FLAGS="--std=gnu++11" + -DBUILD_SHARED_LIBS=False + -DLLVM_BUILD_EXAMPLES=Off + -DLLVM_BUILD_TESTS=Off + -DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}" + -DLLVM_ENABLE_LTO=Off + -DLLVM_ENABLE_RTTI=On + -DLLVM_ENABLE_THREADS=On + -DLLVM_INCLUDE_EXAMPLES=Off + -DLLVM_INCLUDE_TESTS=Off + -DLLVM_OPTIMIZED_TABLEGEN=On + -DLLVM_TARGET_ARCH=$ARCH + -DLLVM_TOOLS_INSTALL_DIR=bin + -DLLVM_UTILS_INSTALL_DIR=bin + -DUNIX=1 +) + +COOKBOOK_SOURCE="$COOKBOOK_SOURCE/clang" + +if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then + + COOKBOOK_CMAKE_FLAGS+=( -DLLVM_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/llvm-tblgen ) + + "${COOKBOOK_CMAKE}" "${COOKBOOK_SOURCE}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_INCLUDEDIR=include \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_INSTALL_OLDINCLUDEDIR=/include \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_SBINDIR=bin \ + -DCMAKE_TOOLCHAIN_FILE=native.cmake \ + -GNinja \ + -Wno-dev \ + "${COOKBOOK_CMAKE_FLAGS[@]}" \ + "$@" + + # All distros use clever tricks to this problem. I have no idea how I came up with this + export PATH="$PATH:$COOKBOOK_STAGE/usr/bin" + DESTDIR="${COOKBOOK_STAGE}" "${COOKBOOK_NINJA}" install-clang-tblgen + "${COOKBOOK_NINJA}" -j"${COOKBOOK_MAKE_JOBS}" + DESTDIR="${COOKBOOK_STAGE}" "${COOKBOOK_NINJA}" install -j"${COOKBOOK_MAKE_JOBS}" + +else + + COOKBOOK_CMAKE_FLAGS+=( + -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath native.cmake)" + -DCLANG_TABLEGEN_EXE=${COOKBOOK_HOST_SYSROOT}/bin/clang-tblgen + -DLLVM_TABLEGEN_EXE=${COOKBOOK_HOST_SYSROOT}/bin/llvm-tblgen + ) + cookbook_cmake + +fi + +""" + +[[optional-packages]] +name = "dev" +files = [ + "usr/include/clang*/**", + "usr/lib/libclang*.a", + "usr/lib/cmake/clang/**", +] diff --git a/recipes/dev/fontconfig/recipe.toml b/recipes/dev/fontconfig/recipe.toml index 883ac026b..1726f3bc5 100644 --- a/recipes/dev/fontconfig/recipe.toml +++ b/recipes/dev/fontconfig/recipe.toml @@ -4,26 +4,17 @@ blake3 = "5c95d48f5b9150f4a06d8acac12c25edaac956007df95a3bf527df02a5908f0e" patches = [ "redox.patch" ] -script = """ -DYNAMIC_INIT -autotools_recursive_regenerate -""" - [build] -template = "custom" +template = "meson" dependencies = [ "expat", "freetype2", "libpng", "zlib", ] -script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE_FLAGS+=( - --disable-docs \ - ac_cv_func_XML_SetDoctypeDeclHandler=yes -) -export V=1 -export LIBS="-lpng -lz" -cookbook_configure -""" +dev-dependencies = [ + "host:gperf" +] +mesonflags = [ + "-Ddoc=disabled" +] diff --git a/recipes/dev/gcc13/recipe.toml b/recipes/dev/gcc13/recipe.toml index 73e581776..d3fba2838 100644 --- a/recipes/dev/gcc13/recipe.toml +++ b/recipes/dev/gcc13/recipe.toml @@ -1,9 +1,12 @@ [source] -tar = "https://gitlab.redox-os.org/redox-os/gcc/-/archive/redox-13.2.0/gcc-redox-13.2.0.tar.gz" +git = "https://gitlab.redox-os.org/redox-os/gcc" +branch = "redox-13.2.0" +shallow_clone = true script = """ DYNAMIC_INIT COOKBOOK_AUTORECONF=autoreconf2.69 autotools_recursive_regenerate -I"$(realpath ./config)" -cp -fpv "${COOKBOOK_HOST_SYSROOT}"/share/libtool/build-aux/{config.sub,config.guess,install-sh} libiberty/ +LIBTOOL_BUILD_AUX="${COOKBOOK_LIBTOOL_DIR:-$COOKBOOK_HOST_SYSROOT}"/share/libtool/build-aux +cp -fpv "$LIBTOOL_BUILD_AUX"/{config.sub,config.guess,install-sh} libiberty/ """ [build] @@ -12,33 +15,79 @@ dependencies = [ "libgmp", "libmpfr", "mpc", - "zlib" +# TODO: this zlib get linked when boostrapping gcc +# "zlib" ] script = """ -DYNAMIC_INIT +DYNAMIC_STATIC_INIT +CROSS_GNU_TARGET=${COOKBOOK_CROSS_GNU_TARGET:-$GNU_TARGET} -mkdir -p "${COOKBOOK_SYSROOT}/usr" -ln -sf "${COOKBOOK_SYSROOT}/include" "${COOKBOOK_SYSROOT}/usr/include" -ln -sf "${COOKBOOK_SYSROOT}/lib" "${COOKBOOK_SYSROOT}/usr/lib" +if [ "${COOKBOOK_HOST_SYSROOT}" = "/usr" ]; then +# not specifying --enable-shared as it will link shared deps +COOKBOOK_STAGE+="/usr" +COOKBOOK_CONFIGURE_FLAGS=( + --prefix="" + --host="${GNU_TARGET}" + --program-prefix="${CROSS_GNU_TARGET}-" + --with-native-system-header-dir="/include" + --disable-hosted-libstdcxx + --with-sysroot + --with-build-sysroot="${COOKBOOK_CROSS_SYSROOT:-$COOKBOOK_SYSROOT}" + --disable-bootstrap +) +else +export CFLAGS_FOR_TARGET="${CPPFLAGS}" CXXFLAGS_FOR_TARGET="${CPPFLAGS}" LDFLAGS_FOR_TARGET="${LDFLAGS}" +export CC_FOR_BUILD="$CC_WRAPPER gcc" CXX_FOR_BUILD="$CC_WRAPPER g++" +unset CFLAGS CPPFLAGS LDFLAGS +COOKBOOK_CONFIGURE_FLAGS+=( + --with-sysroot=/ + --with-gmp="${COOKBOOK_SYSROOT}/usr" + --with-mpfr="${COOKBOOK_SYSROOT}/usr" + --with-mpc="${COOKBOOK_SYSROOT}/usr" +) +fi + +if [ "${CROSS_GNU_TARGET}" = "riscv64gc-unknown-redox" ]; then +COOKBOOK_CONFIGURE_FLAGS+=( + --with-arch=rv64gc + --with-abi=lp64d +) +fi + +if [ "${CROSS_GNU_TARGET}" != "i586-unknown-redox" ]; then +COOKBOOK_CONFIGURE_FLAGS+=( + --enable-frame-pointer +) +fi COOKBOOK_CONFIGURE_FLAGS+=( - --target="${GNU_TARGET}" - --with-sysroot=/ - --with-build-sysroot="${COOKBOOK_SYSROOT}" + --target="${CROSS_GNU_TARGET}" + --with-linker-hash-style=gnu --enable-languages=c,c++,lto --enable-initfini-array + --disable-nls --disable-multilib - --with-system-zlib +# --with-system-zlib --enable-host-shared + --enable-threads=posix + --enable-libstdcxx-threads --with-bugurl="https://gitlab.redox-os.org/redox-os/gcc/-/issues" ) "${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" -"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" all-gcc all-target-libgcc all-target-libstdc++-v3 -"${COOKBOOK_MAKE}" install-gcc install-target-libgcc install-target-libstdc++-v3 DESTDIR="${COOKBOOK_STAGE}" +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" all-gcc +"${COOKBOOK_MAKE}" install-gcc DESTDIR="${COOKBOOK_STAGE}" + +# requires relibc which is not available on bootstrapping +if [ "${COOKBOOK_HOST_SYSROOT}" != "/usr" ]; then + +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" all-target-libgcc all-target-libstdc++-v3 +"${COOKBOOK_MAKE}" install-target-libgcc install-target-libstdc++-v3 DESTDIR="${COOKBOOK_STAGE}" ln -s "gcc" "${COOKBOOK_STAGE}/usr/bin/cc" # Avoid conflict with libgcc & libstdcxx rm -f "${COOKBOOK_STAGE}"/usr/lib/libgcc_s.so* "${COOKBOOK_STAGE}"/usr/lib/libstdc++.so* + +fi """ [package] diff --git a/recipes/dev/gdk-pixbuf/recipe.toml b/recipes/dev/gdk-pixbuf/recipe.toml index 0828868bc..3a5aaafe1 100644 --- a/recipes/dev/gdk-pixbuf/recipe.toml +++ b/recipes/dev/gdk-pixbuf/recipe.toml @@ -1,7 +1,6 @@ [source] tar = "https://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.44/gdk-pixbuf-2.44.4.tar.xz" blake3 = "94db7bebffbd6be84a1b58a05771e411e9f7c16b06d73fcedaf0e6c0e552be9c" -patches = ["redox.patch"] [build] dependencies = [ @@ -20,4 +19,5 @@ mesonflags = [ "-Dbuiltin_loaders=all", "-Dinstalled_tests=false", "-Dman=false", + "-Dtests=false", ] diff --git a/recipes/dev/gdk-pixbuf/redox.patch b/recipes/dev/gdk-pixbuf/redox.patch deleted file mode 100644 index ecedea689..000000000 --- a/recipes/dev/gdk-pixbuf/redox.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -ruwN gdk-pixbuf-2.38.1/gdk-pixbuf/meson.build source/gdk-pixbuf/meson.build ---- gdk-pixbuf-2.38.1/gdk-pixbuf/meson.build 2019-02-28 09:22:57.000000000 -0700 -+++ source/gdk-pixbuf/meson.build 2025-05-01 12:23:46.853375624 -0600 -@@ -290,9 +290,10 @@ - endif - - gdkpixbuf_bin = [ -- [ 'gdk-pixbuf-csource' ], -- [ 'gdk-pixbuf-pixdata' ], -- [ 'gdk-pixbuf-query-loaders', [ 'queryloaders.c' ] ], -+# Broken compilation on Redox -+# [ 'gdk-pixbuf-csource' ], -+# [ 'gdk-pixbuf-pixdata' ], -+# [ 'gdk-pixbuf-query-loaders', [ 'queryloaders.c' ] ], - ] - - foreach bin: gdkpixbuf_bin diff --git a/recipes/dev/git/recipe.toml b/recipes/dev/git/recipe.toml index 52d5b70cf..043f88f4a 100644 --- a/recipes/dev/git/recipe.toml +++ b/recipes/dev/git/recipe.toml @@ -8,7 +8,7 @@ dependencies=[ "curl", "expat", "nghttp2", - "openssl1", + "openssl3", "zlib" ] template = "custom" diff --git a/recipes/dev/gnu-make/recipe.toml b/recipes/dev/gnu-make/recipe.toml index 7199d8059..36e1b9f39 100644 --- a/recipes/dev/gnu-make/recipe.toml +++ b/recipes/dev/gnu-make/recipe.toml @@ -5,7 +5,6 @@ patches = [ "redox.patch" ] script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ @@ -13,6 +12,9 @@ autotools_recursive_regenerate template = "custom" script = """ DYNAMIC_INIT -rsync -av --delete "$COOKBOOK_SOURCE/." ./ +COOKBOOK_CONFIGURE_FLAGS+=( +# TODO: https://gitlab.redox-os.org/redox-os/redox/-/issues/1753 + 'ac_cv_func_mkfifo=no' +) cookbook_configure """ diff --git a/recipes/dev/gnu-make/redox.patch b/recipes/dev/gnu-make/redox.patch index 1dba02da6..d73563858 100644 --- a/recipes/dev/gnu-make/redox.patch +++ b/recipes/dev/gnu-make/redox.patch @@ -10,3 +10,31 @@ diff -ruwN make-4.4/src/arscan.c source/src/arscan.c # include # else /* These platforms don't have but have archives in the same format +diff -ruwN make-4.4/src/getopt1.c source/src/getopt1.c +--- make-4.4/src/getopt1.c 2022-10-23 21:52:32.000000000 +0700 ++++ source/src/getopt1.c 2026-01-24 23:28:34.306706884 +0700 +@@ -48,6 +48,10 @@ + #endif + #endif + ++#ifdef __redox__ ++#define ELIDE_CODE ++#endif ++ + #ifndef ELIDE_CODE + + +diff -ruwN make-4.4/src/getopt.c source/src/getopt.c +--- make-4.4/src/getopt.c 2022-10-23 21:52:32.000000000 +0700 ++++ source/src/getopt.c 2026-01-24 23:21:09.488487860 +0700 +@@ -56,6 +56,10 @@ + # endif + #endif + ++#ifdef __redox__ ++#define ELIDE_CODE ++#endif ++ + #ifndef ELIDE_CODE + + diff --git a/recipes/dev/hello-world-examples/recipe.toml b/recipes/dev/hello-world-examples/recipe.toml index b3fd95679..ad2d9f702 100644 --- a/recipes/dev/hello-world-examples/recipe.toml +++ b/recipes/dev/hello-world-examples/recipe.toml @@ -1,8 +1,9 @@ [source] git = "https://github.com/leachim6/hello-world" +shallow_clone = true [build] template = "custom" script = """ -mkdir -pv "${COOKBOOK_STAGE}"/usr/share/hello-world-examples -cp -rv "${COOKBOOK_SOURCE}"/[#,a-z] "${COOKBOOK_STAGE}"/usr/share/hello-world-examples +mkdir -pv "${COOKBOOK_STAGE}"/home/user/hello-world-examples +cp -rv "${COOKBOOK_SOURCE}"/[#,a-z] "${COOKBOOK_STAGE}"/home/user/hello-world-examples """ diff --git a/recipes/dev/jq/recipe.toml b/recipes/dev/jq/recipe.toml new file mode 100644 index 000000000..d51e130f9 --- /dev/null +++ b/recipes/dev/jq/recipe.toml @@ -0,0 +1,5 @@ +#TODO undefined reference +[source] +tar = "https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-1.8.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/lang/gawk/recipe.toml b/recipes/dev/lang/gawk/recipe.toml similarity index 82% rename from recipes/wip/dev/lang/gawk/recipe.toml rename to recipes/dev/lang/gawk/recipe.toml index 098055aea..3a0e6e2cf 100644 --- a/recipes/wip/dev/lang/gawk/recipe.toml +++ b/recipes/dev/lang/gawk/recipe.toml @@ -1,12 +1,15 @@ -#TODO: langinfo.h [source] git = "https://gitlab.redox-os.org/redox-os/gawk.git" upstream = "https://git.savannah.gnu.org/git/gawk.git" branch = "redox" +script = """ +autotools_recursive_regenerate +""" [build] template = "custom" script = """ +DYNAMIC_INIT COOKBOOK_CONFIGURE_FLAGS+=( ac_cv_func_gethostbyname=no ac_cv_func_connect=no diff --git a/recipes/wip/libs/other/libtool/recipe.toml b/recipes/dev/libtool/recipe.toml similarity index 74% rename from recipes/wip/libs/other/libtool/recipe.toml rename to recipes/dev/libtool/recipe.toml index 9ce69151a..b62946be9 100644 --- a/recipes/wip/libs/other/libtool/recipe.toml +++ b/recipes/dev/libtool/recipe.toml @@ -8,7 +8,11 @@ shallow_clone = true template = "custom" script = """ DYNAMIC_INIT -rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +# libtool saves absolute path to sysroot which contains nothing +unset CFLAGS + +cp -r "${COOKBOOK_SOURCE}"/. ./ ./bootstrap \ --skip-po \ --force \ diff --git a/recipes/dev/lld21/recipe.toml b/recipes/dev/lld21/recipe.toml new file mode 100644 index 000000000..bce4c6635 --- /dev/null +++ b/recipes/dev/lld21/recipe.toml @@ -0,0 +1,61 @@ +[source] +same_as = "../llvm21" + +[build] +template = "custom" +dependencies = [ + "llvm21", + "zstd", +] +dev-dependencies = [ + "llvm21.dev", + "llvm21.runtime", +] +script = """ +DYNAMIC_INIT +ARCH="$(echo "${TARGET}" | cut -d - -f1)" + +generate_cookbook_cmake_file $COOKBOOK_HOST_TARGET "" "$COOKBOOK_TOOLCHAIN" native.cmake + +if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then +COOKBOOK_CMAKE_FLAGS+=( -DLLVM_TABLEGEN_EXE=${COOKBOOK_TOOLCHAIN}/bin/llvm-tblgen ) +else +COOKBOOK_CMAKE_FLAGS+=( -DLLVM_TABLEGEN_EXE=${COOKBOOK_HOST_SYSROOT}/bin/llvm-tblgen ) +fi + +COOKBOOK_CMAKE_FLAGS+=( + -DLLVM_ROOT="${COOKBOOK_SYSROOT}" + -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath native.cmake)" + -DLLVM_USE_STATIC_ZSTD=On + +# the shared options from llvm + -DCMAKE_CXX_FLAGS="--std=gnu++11" + -DBUILD_SHARED_LIBS=False + -DLLVM_BUILD_EXAMPLES=Off + -DLLVM_BUILD_TESTS=Off + -DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}" + -DLLVM_ENABLE_LTO=Off + -DLLVM_ENABLE_RTTI=On + -DLLVM_ENABLE_THREADS=On + -DLLVM_INCLUDE_EXAMPLES=Off + -DLLVM_INCLUDE_TESTS=Off + -DLLVM_OPTIMIZED_TABLEGEN=On + -DLLVM_TARGET_ARCH=$ARCH + -DLLVM_TOOLS_INSTALL_DIR=bin + -DLLVM_UTILS_INSTALL_DIR=bin + -DUNIX=1 +) + +COOKBOOK_SOURCE="$COOKBOOK_SOURCE/lld" + +cookbook_cmake +""" + +[[optional-packages]] +name = "dev" +dependencies = [] +files = [ + "usr/include/lld*/**", + "usr/lib/liblld*.a", + "usr/lib/cmake/lld/**", +] diff --git a/recipes/dev/llvm21/recipe.toml b/recipes/dev/llvm21/recipe.toml index ddd1b793a..a2b11e115 100644 --- a/recipes/dev/llvm21/recipe.toml +++ b/recipes/dev/llvm21/recipe.toml @@ -7,75 +7,60 @@ shallow_clone = true [build] template = "custom" dependencies = [ - "zlib", - "libxml2", -] -dev-dependencies = [ - "libstdcxx", - "host:xz", - "host:libarchive", # workaround for cmake error + "zstd", ] script = """ DYNAMIC_INIT +ARCH="$(echo "${TARGET}" | cut -d - -f1)" + +case "${ARCH}" in + x86 | x86_64) LLVM_TARGETS_TO_BUILD="X86";; + aarch64) LLVM_TARGETS_TO_BUILD="AArch64";; + riscv64gc) LLVM_TARGETS_TO_BUILD="RISCV";; +esac + +if [ "${COOKBOOK_HOST_SYSROOT}" = "/usr" ]; then + LLVM_TARGETS_TO_BUILD="X86;AArch64;RISCV" +fi + +# This just build the LLVM library and tools just enough for Rust, to build the rest of LLVM see +# https://github.com/llvm/llvm-zorg/blob/main/zorg/buildbot/builders/annotated/standalone-build.sh COOKBOOK_CMAKE_FLAGS+=( + -DLLVM_BUILD_LLVM_DYLIB=On + -DLLVM_LINK_LLVM_DYLIB=On + -DLLVM_INCLUDE_UTILS=On + -DLLVM_INSTALL_UTILS=On + -DLLVM_TOOL_LLVM_COV_BUILD=On + -DLLVM_TOOL_LLVM_PROFDATA_BUILD=On + -DLLVM_TARGETS_TO_BUILD="$LLVM_TARGETS_TO_BUILD" + -DLLVM_ENABLE_ZLIB=Off + -DLLVM_USE_STATIC_ZSTD=On + -DLLVM_ENABLE_LIBXML2=Off + +# the rest of options that shared to clang + -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")" -DCMAKE_CXX_FLAGS="--std=gnu++11" -DBUILD_SHARED_LIBS=False - -DLLVM_LINK_LLVM_DYLIB=On - -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")" -DLLVM_BUILD_EXAMPLES=Off -DLLVM_BUILD_TESTS=Off - -DLLVM_BUILD_UTILS=On -DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}" -DLLVM_ENABLE_LTO=Off -DLLVM_ENABLE_RTTI=On -DLLVM_ENABLE_THREADS=On -DLLVM_INCLUDE_EXAMPLES=Off -DLLVM_INCLUDE_TESTS=Off - -DLLVM_INSTALL_UTILS=On -DLLVM_OPTIMIZED_TABLEGEN=On - -DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)" - -DLLVM_TARGETS_TO_BUILD="X86;AArch64" - -DLLVM_TOOL_LLVM_COV_BUILD=On - -DLLVM_TOOL_LLVM_PROFDATA_BUILD=On + -DLLVM_TARGET_ARCH=$ARCH -DLLVM_TOOLS_INSTALL_DIR=bin -DLLVM_UTILS_INSTALL_DIR=bin - -DLIBCLANG_BUILD_STATIC=On -DUNIX=1 - -DLLVM_ENABLE_PROJECTS="llvm;clang;clang-tools-extra;lld" ) -# Native tablegen build fails with too many jobs, limit to 16 -COOKBOOK_MAKE_JOBS="$(( ${COOKBOOK_MAKE_JOBS} > 16 ? 16 : ${COOKBOOK_MAKE_JOBS} ))" COOKBOOK_SOURCE="$COOKBOOK_SOURCE/llvm" cookbook_cmake """ -# clang library and runtime -[[optional-packages]] -name = "clang" -dependencies = [ ".runtime" ] -files = [ - "usr/bin/clang*", - "usr/libexec/**", - "usr/lib/libclang-cpp.so*", - "usr/lib/libclang.so*", - "usr/lib/clang/**", - "usr/lib/libear/**", - "usr/lib/libscanbuild/**", - "usr/share/clang*/**", -] - -# lld runtime (no library) -[[optional-packages]] -name = "lld" -dependencies = [ ".runtime" ] -files = [ - "usr/bin/*.lld", - "usr/bin/*-ld", - "usr/bin/lld*", -] - # llvm runtime [[optional-packages]] name = "runtime" @@ -83,24 +68,6 @@ files = [ "usr/bin/**", ] -[[optional-packages]] -name = "clang-dev" -dependencies = [ ".clang" ] -files = [ - "usr/include/clang*/**", - "usr/lib/libclang*.a", - "usr/lib/cmake/clang/**", -] - -[[optional-packages]] -name = "lld-dev" -dependencies = [ ".lld" ] -files = [ - "usr/include/lld*/**", - "usr/lib/liblld*.a", - "usr/lib/cmake/lld/**", -] - [[optional-packages]] name = "dev" dependencies = [ ".runtime" ] diff --git a/recipes/dev/php84/recipe.toml b/recipes/dev/php84/recipe.toml index 1e109c25d..a8defe885 100644 --- a/recipes/dev/php84/recipe.toml +++ b/recipes/dev/php84/recipe.toml @@ -1,5 +1,6 @@ [source] -tar = "https://www.php.net/distributions/php-8.4.12.tar.xz" +tar = "https://www.php.net/distributions/php-8.4.17.tar.xz" +blake3 = "a8478dddd948d4b26e51c5727ac0895440da76e8ad9be947098a4284ca0b7f2a" patches = [ "redox.patch" ] diff --git a/recipes/dev/php84/redox.patch b/recipes/dev/php84/redox.patch index 25308e146..c1d6ef25e 100644 --- a/recipes/dev/php84/redox.patch +++ b/recipes/dev/php84/redox.patch @@ -1,7 +1,7 @@ diff -ruwN source/configure source-new/configure ---- source/configure 2025-08-26 20:36:28.000000000 +0700 -+++ source-new/configure 2025-09-26 16:31:28.871157195 +0700 -@@ -25863,7 +25863,7 @@ +--- source/configure 2026-01-14 00:17:10.000000000 +0700 ++++ source-new/configure 2026-01-16 15:56:01.944755811 +0700 +@@ -26007,7 +26007,7 @@ then : ac_cv_lib_curl_curl_easy_perform=yes else case e in #( @@ -10,7 +10,7 @@ diff -ruwN source/configure source-new/configure esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ -@@ -37356,7 +37356,7 @@ +@@ -37728,7 +37728,7 @@ then : php_cv_lib_gd_works=yes else case e in #( @@ -19,7 +19,7 @@ diff -ruwN source/configure source-new/configure esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ -@@ -40056,7 +40056,7 @@ +@@ -40464,7 +40464,7 @@ LIBS_SAVED=$LIBS CFLAGS="$CFLAGS $GMP_CFLAGS" LIBS="$LIBS $GMP_LIBS" @@ -29,8 +29,8 @@ diff -ruwN source/configure source-new/configure if test "x$ac_cv_header_gmp_h" = xyes then : diff -ruwN source/ext/phar/Makefile.frag source-new/ext/phar/Makefile.frag ---- source/ext/phar/Makefile.frag 2025-08-26 20:36:28.000000000 +0700 -+++ source-new/ext/phar/Makefile.frag 2025-09-26 16:31:29.029526842 +0700 +--- source/ext/phar/Makefile.frag 2026-01-14 00:17:10.000000000 +0700 ++++ source-new/ext/phar/Makefile.frag 2026-01-16 15:56:01.946130660 +0700 @@ -30,7 +30,7 @@ -@test -f $(builddir)/phar/phar.inc || cp $(srcdir)/phar/phar.inc $(builddir)/phar/phar.inc @@ -41,8 +41,8 @@ diff -ruwN source/ext/phar/Makefile.frag source-new/ext/phar/Makefile.frag $(builddir)/phar.php: $(srcdir)/build_precommand.php $(srcdir)/phar/*.inc $(srcdir)/phar/*.php $(SAPI_CLI_PATH) -@(echo "Generating phar.php"; \ diff -ruwN source/ext/posix/posix.c source-new/ext/posix/posix.c ---- source/ext/posix/posix.c 2025-08-26 20:36:28.000000000 +0700 -+++ source-new/ext/posix/posix.c 2025-09-26 16:31:29.085983450 +0700 +--- source/ext/posix/posix.c 2026-01-14 00:17:10.000000000 +0700 ++++ source-new/ext/posix/posix.c 2026-01-16 15:56:01.946290813 +0700 @@ -375,7 +375,7 @@ ZEND_PARSE_PARAMETERS_NONE(); @@ -53,25 +53,27 @@ diff -ruwN source/ext/posix/posix.c source-new/ext/posix/posix.c RETURN_FALSE; } diff -ruwN source/sapi/fpm/fpm/fpm_status.c source-new/sapi/fpm/fpm/fpm_status.c ---- source/sapi/fpm/fpm/fpm_status.c 2025-08-26 20:36:28.000000000 +0700 -+++ source-new/sapi/fpm/fpm/fpm_status.c 2025-09-27 01:07:38.657514932 +0700 -@@ -104,11 +104,15 @@ +--- source/sapi/fpm/fpm/fpm_status.c 2026-01-14 00:17:10.000000000 +0700 ++++ source-new/sapi/fpm/fpm/fpm_status.c 2026-01-16 15:57:37.781307156 +0700 +@@ -84,6 +84,7 @@ + continue; } - proc_p = &procs[i]; /* prevent NaN */ +#ifdef HAVE_TIMES - if (procs[i].cpu_duration.tv_sec == 0 && procs[i].cpu_duration.tv_usec == 0) { + if (proc_p->cpu_duration.tv_sec == 0 && proc_p->cpu_duration.tv_usec == 0) { cpu = 0.; } else { - cpu = (procs[i].last_request_cpu.tms_utime + procs[i].last_request_cpu.tms_stime + procs[i].last_request_cpu.tms_cutime + procs[i].last_request_cpu.tms_cstime) / fpm_scoreboard_get_tick() / (procs[i].cpu_duration.tv_sec + procs[i].cpu_duration.tv_usec / 1000000.) * 100.; +@@ -91,6 +92,9 @@ + proc_p->last_request_cpu.tms_cstime) / fpm_scoreboard_get_tick() / + (proc_p->cpu_duration.tv_sec + proc_p->cpu_duration.tv_usec / 1000000.) * 100.; } +#else + cpu = 0.; +#endif array_init(&fpm_proc_stat); - add_assoc_long(&fpm_proc_stat, "pid", procs[i].pid); -@@ -590,11 +594,15 @@ + add_assoc_long(&fpm_proc_stat, "pid", proc_p->pid); +@@ -573,11 +577,15 @@ } /* prevent NaN */ diff --git a/recipes/dev/redoxer/recipe.toml b/recipes/dev/redoxer/recipe.toml new file mode 100644 index 000000000..5f5c20485 --- /dev/null +++ b/recipes/dev/redoxer/recipe.toml @@ -0,0 +1,6 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/redoxer" +branch = "master" + +[build] +template = "cargo" diff --git a/recipes/dev/rust/config-bootstrap.toml b/recipes/dev/rust/config-bootstrap.toml new file mode 100644 index 000000000..c467336fa --- /dev/null +++ b/recipes/dev/rust/config-bootstrap.toml @@ -0,0 +1,28 @@ +[llvm] +download-ci-llvm = false +static-libstdcpp = false +link-shared = true + +[build] +host = ["TARGET"] +target = ["TARGET", "i586-unknown-redox", "x86_64-unknown-redox", "aarch64-unknown-redox", "riscv64gc-unknown-redox"] +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.aarch64-unknown-linux-gnu] +llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config" + +[target.x86_64-unknown-linux-gnu] +llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config" diff --git a/recipes/dev/rust/config.toml b/recipes/dev/rust/config.toml index 9674da00f..b2356b81c 100644 --- a/recipes/dev/rust/config.toml +++ b/recipes/dev/rust/config.toml @@ -1,16 +1,15 @@ -#TODO: use sed to replace hardcoded paths into env [llvm] download-ci-llvm = false static-libstdcpp = false -targets = "X86" -experimental-targets = "" +link-shared = true [build] -host = ["x86_64-unknown-redox"] -target = ["x86_64-unknown-redox"] -docs = false +host = ["COOKBOOK_TARGET"] +target = ["COOKBOOK_TARGET"] submodules = false -tools = ["src"] +docs = false +tools = ["cargo", "clippy", "rustdoc", "rustfmt", "src"] +extended = true verbose = 1 [install] @@ -21,17 +20,17 @@ sysconfdir = "etc" backtrace = false codegen-tests = false -[target.x86_64-unknown-redox] -cc = "x86_64-unknown-redox-gcc" -cxx = "x86_64-unknown-redox-g++" -ar = "x86_64-unknown-redox-ar" -linker = "x86_64-unknown-redox-gcc" +[target.COOKBOOK_TARGET] +cc = "COOKBOOK_GNU_TARGET-gcc" +cxx = "COOKBOOK_GNU_TARGET-g++" +ar = "COOKBOOK_GNU_TARGET-ar" +linker = "COOKBOOK_GNU_TARGET-gcc" rpath = false crt-static = false -llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/sysroot/bin/llvm-config" +llvm-config = "COOKBOOK_SYSROOT/bin/llvm-config" [target.aarch64-unknown-linux-gnu] -llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/toolchain/bin/llvm-config" +llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config" [target.x86_64-unknown-linux-gnu] -llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/toolchain/bin/llvm-config" +llvm-config = "COOKBOOK_TOOLCHAIN/bin/llvm-config" diff --git a/recipes/dev/rust/recipe.toml b/recipes/dev/rust/recipe.toml index fdf501862..93e5b6c18 100644 --- a/recipes/dev/rust/recipe.toml +++ b/recipes/dev/rust/recipe.toml @@ -8,48 +8,73 @@ template = "custom" dependencies = [ "llvm21", "zlib", + "curl", + "openssl3", ] dev-dependencies = [ "llvm21.dev", "llvm21.runtime", - "host:llvm21", - "host:llvm21.dev", - "host:llvm21.runtime", + "lld21", ] script = """ +if [ "${COOKBOOK_HOST_SYSROOT}" = "/usr" ]; then + +cat ${COOKBOOK_RECIPE}/config-bootstrap.toml > config.toml +sed -i "s|TARGET|${TARGET}|g" config.toml +sed -i "s|COOKBOOK_TOOLCHAIN|${COOKBOOK_TOOLCHAIN}|g" config.toml + +else + DYNAMIC_INIT # Linker flags for stage2 compiler (host -> target) -export LDFLAGS_x86_64_unknown_redox="${LDFLAGS}" # LLVM -export CARGO_TARGET_X86_64_UNKNOWN_REDOX_RUSTFLAGS="\ --Clink-args=-L${COOKBOOK_SYSROOT}/lib \ --Clink-args=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib \ --Clink-args=-lz" +ARCH="${TARGET%%-*}" +export CARGO_TARGET_${ARCH^^}_UNKNOWN_REDOX_RUSTFLAGS="${RUSTFLAGS}" # Rust # Hack for Rust errorneusly running `llvm-config --version` on cross compiled llvm-config -cat "${COOKBOOK_ROOT}/bin/x86_64-unknown-redox-llvm-config" > "${COOKBOOK_SYSROOT}/bin/llvm-config" +cat "${COOKBOOK_ROOT}/bin/${TARGET}-llvm-config" > "${COOKBOOK_SYSROOT}/bin/llvm-config" +# Hack for Rust stage1 being dynamically linked with LLVM in prefix toolchain +export LD_LIBRARY_PATH="${COOKBOOK_HOST_SYSROOT}/lib:${LD_LIBRARY_PATH}" # Linker flags for stage1 compiler (host -> host) export RUSTFLAGS_BOOTSTRAP="\ --Clink-args=-L${COOKBOOK_TOOLCHAIN}/lib \ --Clink-args=-Wl,-rpath-link,${COOKBOOK_TOOLCHAIN}/lib" +-Clink-args=-L${COOKBOOK_HOST_SYSROOT}/lib \ +-Clink-args=-Wl,-rpath-link,${COOKBOOK_HOST_SYSROOT}/lib" export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}" export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}" +cat ${COOKBOOK_RECIPE}/config.toml > config.toml +sed -i "s|COOKBOOK_SYSROOT|${COOKBOOK_SYSROOT}|g" config.toml +sed -i "s|COOKBOOK_TOOLCHAIN|${COOKBOOK_HOST_SYSROOT}|g" config.toml +sed -i "s|COOKBOOK_TARGET|${TARGET}|g" config.toml +sed -i "s|COOKBOOK_GNU_TARGET|${GNU_TARGET}|g" config.toml + +fi + # Don't poison the stage1 compiler (host -> host) -unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP +unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS CARGO_ENCODED_RUSTFLAGS STRIP + python3 "${COOKBOOK_SOURCE}/x.py" install \ - --config "${COOKBOOK_RECIPE}/config.toml" \ - --jobs $(nproc) + --config config.toml \ + --jobs ${COOKBOOK_MAKE_JOBS} mkdir -p "${COOKBOOK_STAGE}"/usr rsync -av --delete "${COOKBOOK_BUILD}"/install/* "${COOKBOOK_STAGE}"/usr/ -# TODO: rustdoc +rm -rf "${COOKBOOK_STAGE}"/usr/lib/rustlib/*.log + +# workaround for rust.lld, needed by e.g. compiling bootloader +# https://github.com/rust-lang/rust/issues/143076#issuecomment-3011710678 +LLD_DIR="${COOKBOOK_STAGE}/usr/lib/rustlib/$TARGET/bin" +mkdir -p $LLD_DIR/gcc-ld +cp ${COOKBOOK_SYSROOT}/usr/bin/lld $LLD_DIR/rust-lld +ln -s rust-lld $LLD_DIR/wasm-component-ld +ln -s ../rust-lld $LLD_DIR/gcc-ld/ld.lld +ln -s ../rust-lld $LLD_DIR/gcc-ld/ld64.lld +ln -s ../rust-lld $LLD_DIR/gcc-ld/lld-link +ln -s ../rust-lld $LLD_DIR/gcc-ld/wasm-ld +ln -s ../../../libLLVM.so.21.1 $LLD_DIR/../lib/libLLVM.so.21.1 """ -[package] -dependencies = [ - "cargo" +[[optional-packages]] +name = "doc" +files = [ + "usr/share/doc/**", ] -# TODO: Not implemented -# version_script = """ -# printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" -# """ diff --git a/recipes/dev/rustpython/recipe.toml b/recipes/dev/rustpython/recipe.toml index d283fe2f4..267313109 100644 --- a/recipes/dev/rustpython/recipe.toml +++ b/recipes/dev/rustpython/recipe.toml @@ -9,7 +9,7 @@ patches = [ [build] dependencies = [ - "openssl1", + "openssl3", "zlib", ] template = "custom" diff --git a/recipes/emulators/dosbox/recipe.toml b/recipes/emulators/dosbox/recipe.toml index 61e31fc94..02801a6fd 100644 --- a/recipes/emulators/dosbox/recipe.toml +++ b/recipes/emulators/dosbox/recipe.toml @@ -25,9 +25,9 @@ COOKBOOK_CONFIGURE_FLAGS+=( ) cookbook_configure -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/dosbox" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/dosbox" -mkdir -pv "${COOKBOOK_STAGE}/ui/icons/apps" -cp -v "${COOKBOOK_RECIPE}/icon.png" "${COOKBOOK_STAGE}/ui/icons/apps/dosbox.png" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/apps" +cp -v "${COOKBOOK_RECIPE}/icon.png" "${COOKBOOK_STAGE}/usr/share/icons/apps/dosbox.png" """ diff --git a/recipes/wip/files/hf/recipe.toml b/recipes/files/hf/recipe.toml similarity index 72% rename from recipes/wip/files/hf/recipe.toml rename to recipes/files/hf/recipe.toml index 6943199a7..a70567971 100644 --- a/recipes/wip/files/hf/recipe.toml +++ b/recipes/files/hf/recipe.toml @@ -1,4 +1,3 @@ -#TODO not compiled or tested [source] git = "https://github.com/sorairolake/hf" [build] diff --git a/recipes/fonts/dejavu/recipe.toml b/recipes/fonts/dejavu/recipe.toml index c97c6db17..f482a1f8e 100644 --- a/recipes/fonts/dejavu/recipe.toml +++ b/recipes/fonts/dejavu/recipe.toml @@ -8,7 +8,7 @@ script = """ #TODO: Mono style included in Sans directory for style in Sans Serif do - DEST="${COOKBOOK_STAGE}/ui/fonts/${style}/DejaVu" + DEST="${COOKBOOK_STAGE}/usr/share/fonts/${style}/DejaVu" mkdir -pv "${DEST}" cp -v "${COOKBOOK_SOURCE}/ttf/DejaVu${style}"*".ttf" "${DEST}" done diff --git a/recipes/fonts/freefont/recipe.toml b/recipes/fonts/freefont/recipe.toml index a9a67d20d..6d56fe8cf 100644 --- a/recipes/fonts/freefont/recipe.toml +++ b/recipes/fonts/freefont/recipe.toml @@ -7,7 +7,7 @@ template = "custom" script = """ for style in Mono Sans Serif do - DEST="${COOKBOOK_STAGE}/ui/fonts/${style}/FreeFont" + DEST="${COOKBOOK_STAGE}/usr/share/fonts/${style}/FreeFont" mkdir -pv "${DEST}" cp -v "${COOKBOOK_SOURCE}/Free${style}"*".otf" "${DEST}" done diff --git a/recipes/fonts/ibm-plex/recipe.toml b/recipes/fonts/ibm-plex/recipe.toml index 5f68ac6f4..6fa60f79f 100644 --- a/recipes/fonts/ibm-plex/recipe.toml +++ b/recipes/fonts/ibm-plex/recipe.toml @@ -7,7 +7,7 @@ template = "custom" script = """ for style in Mono Sans Serif do - DEST="${COOKBOOK_STAGE}/ui/fonts/${style}/IBM-Plex" + DEST="${COOKBOOK_STAGE}/usr/share/fonts/${style}/IBM-Plex" mkdir -pv "${DEST}" cp -v "${COOKBOOK_SOURCE}/IBM-Plex-${style}/fonts/complete/ttf/"*".ttf" "${DEST}" done diff --git a/recipes/fonts/intel-one-mono/recipe.toml b/recipes/fonts/intel-one-mono/recipe.toml index a6dab3aeb..8f216f7db 100644 --- a/recipes/fonts/intel-one-mono/recipe.toml +++ b/recipes/fonts/intel-one-mono/recipe.toml @@ -5,7 +5,7 @@ blake3="9caff71b0a9fe8627253c55889964612ea4ae144584a283cd2fe88b7a14a4140" [build] template = "custom" script = """ -DEST="${COOKBOOK_STAGE}/ui/fonts/Mono/Intel-One" +DEST="${COOKBOOK_STAGE}/usr/share/fonts/Mono/Intel-One" mkdir -pv "${DEST}" cp -v "${COOKBOOK_SOURCE}/fonts/ttf/"*".ttf" "${DEST}" """ diff --git a/recipes/fonts/noto-color-emoji/recipe.toml b/recipes/fonts/noto-color-emoji/recipe.toml index 7076bb1d4..66b3c3757 100644 --- a/recipes/fonts/noto-color-emoji/recipe.toml +++ b/recipes/fonts/noto-color-emoji/recipe.toml @@ -4,7 +4,7 @@ rev = "e8073ab740292f8d5f19b5de144087ac58044d06" [build] template = "custom" script = """ -DEST="${COOKBOOK_STAGE}/ui/fonts/Emoji/Noto" +DEST="${COOKBOOK_STAGE}/usr/share/fonts/Emoji/Noto" mkdir -pv "${DEST}" cp -v "${COOKBOOK_SOURCE}/fonts/NotoColorEmoji.ttf" "${DEST}" """ diff --git a/recipes/fonts/ttf-hack/recipe.toml b/recipes/fonts/ttf-hack/recipe.toml index 428dabd70..11b7e74c2 100644 --- a/recipes/fonts/ttf-hack/recipe.toml +++ b/recipes/fonts/ttf-hack/recipe.toml @@ -6,6 +6,6 @@ blake3 = "acd40f61f6f512b0808d4bf530ab4aeb5a8ec3aa1f65bf5a1d08964d1bc3d044" template = "custom" script = """ for file in "${COOKBOOK_SOURCE}"/*.ttf; do - install -D -m 644 "$file" "${COOKBOOK_STAGE}/ui/fonts/Mono/Hack/$(basename "$file")" + install -D -m 644 "$file" "${COOKBOOK_STAGE}/usr/share/fonts/Mono/Hack/$(basename "$file")" done """ \ No newline at end of file diff --git a/recipes/games/classicube/recipe.toml b/recipes/games/classicube/recipe.toml index 083f334be..f2153f12f 100644 --- a/recipes/games/classicube/recipe.toml +++ b/recipes/games/classicube/recipe.toml @@ -17,9 +17,9 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./ mkdir -pv "${COOKBOOK_STAGE}/usr/games/classicube" cp -v "src/ClassiCube" "${COOKBOOK_STAGE}/usr/games/classicube" -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/classicube" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/classicube" -mkdir -pv "${COOKBOOK_STAGE}/ui/icons/apps" -cp -v "${COOKBOOK_SOURCE}/misc/CCicon.png" "${COOKBOOK_STAGE}/ui/icons/apps/classicube.png" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/apps" +cp -v "${COOKBOOK_SOURCE}/misc/CCicon.png" "${COOKBOOK_STAGE}/usr/share/icons/apps/classicube.png" """ diff --git a/recipes/games/eduke32/recipe.toml b/recipes/games/eduke32/recipe.toml index 2cc38c167..93f962bf2 100644 --- a/recipes/games/eduke32/recipe.toml +++ b/recipes/games/eduke32/recipe.toml @@ -19,18 +19,18 @@ DYNAMIC_INIT # Copy source to build directory rsync -av --delete "${COOKBOOK_SOURCE}/" ./ -export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL" export SDLCONFIG="${COOKBOOK_SYSROOT}/bin/sdl-config --prefix=${COOKBOOK_SYSROOT}" -PLATFORM=REDOX "${COOKBOOK_MAKE}" -j"$($NPROC)" +PLATFORM=REDOX "${COOKBOOK_MAKE}" -j"$COOKBOOK_MAKE_JOBS" mkdir -pv "${COOKBOOK_STAGE}/usr/games" cp -v ./eduke32 "${COOKBOOK_STAGE}/usr/games/eduke32" cp -v ./mapster32 "${COOKBOOK_STAGE}/usr/games/mapster32" -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/eduke32" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/eduke32" -mkdir -pv "${COOKBOOK_STAGE}/ui/icons/apps" -cp -v "${COOKBOOK_RECIPE}/icon.png" "${COOKBOOK_STAGE}/ui/icons/apps/eduke32.png" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/apps" +cp -v "${COOKBOOK_RECIPE}/icon.png" "${COOKBOOK_STAGE}/usr/share/icons/apps/eduke32.png" """ diff --git a/recipes/games/freedoom/recipe.toml b/recipes/games/freedoom/recipe.toml index fdba3bed0..af59f6f67 100644 --- a/recipes/games/freedoom/recipe.toml +++ b/recipes/games/freedoom/recipe.toml @@ -4,7 +4,7 @@ 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}/ui/apps" "${COOKBOOK_STAGE}/ui/icons/apps" +mkdir -pv "${COOKBOOK_STAGE}/usr/games" "${COOKBOOK_STAGE}/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)" @@ -17,12 +17,12 @@ do echo "/usr/games/prboom -geom 800x600 -vidmode 32 -iwad $wad" >> "${COOKBOOK_STAGE}$bin" chmod +x "${COOKBOOK_STAGE}$bin" - echo "name=$game" | sed 's/freedoom/FreeDOOM: Phase /' | sed 's/doom1/DOOM (Shareware)/' > "${COOKBOOK_STAGE}/ui/apps/$game" - echo "category=Games" >> "${COOKBOOK_STAGE}/ui/apps/$game" - echo "binary=/usr/games/$game" >> "${COOKBOOK_STAGE}/ui/apps/$game" - echo "icon=/ui/icons/apps/$game.png" >> "${COOKBOOK_STAGE}/ui/apps/$game" + 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" - cp -v "${COOKBOOK_SOURCE}/$game.png" "${COOKBOOK_STAGE}/ui/icons/apps/$game.png" + cp -v "${COOKBOOK_SOURCE}/$game.png" "${COOKBOOK_STAGE}/usr/share/icons/apps/$game.png" done """ diff --git a/recipes/games/gigalomania/recipe.toml b/recipes/games/gigalomania/recipe.toml index 5a000cba2..591d7a4ab 100644 --- a/recipes/games/gigalomania/recipe.toml +++ b/recipes/games/gigalomania/recipe.toml @@ -22,15 +22,15 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./ export CPPHOST="${TARGET}-g++" -"${REDOX_MAKE}" all -j"$(${NPROC})" +"${COOKBOOK_MAKE}" all -j"${COOKBOOK_MAKE_JOBS}" -"${REDOX_MAKE}" VERBOSE=1 DESTDIR="${COOKBOOK_STAGE}/usr" install +"${COOKBOOK_MAKE}" VERBOSE=1 DESTDIR="${COOKBOOK_STAGE}/usr" install rm -rf "${COOKBOOK_STAGE}/bundle" -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/gigalomania" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/gigalomania" -mkdir -pv "${COOKBOOK_STAGE}/ui/icons/apps" -cp -v "gigalomania64.png" "${COOKBOOK_STAGE}/ui/icons/apps/gigalomania.png" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/apps" +cp -v "gigalomania64.png" "${COOKBOOK_STAGE}/usr/share/icons/apps/gigalomania.png" """ \ No newline at end of file diff --git a/recipes/games/neverball-sols/recipe.toml b/recipes/games/neverball-sols/recipe.toml new file mode 100644 index 000000000..2d90e04d3 --- /dev/null +++ b/recipes/games/neverball-sols/recipe.toml @@ -0,0 +1,20 @@ +[source] +same_as = "../neverball" + +[build] +dependencies = [ + "libjpeg", + "libogg", +] +template = "custom" +script = """ +DYNAMIC_INIT + +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" ENABLE_FS=stdio PKG_CONFIG="pkg-config" CC="cc" mapc sols + +# Copy assets +mkdir -p "${COOKBOOK_STAGE}/usr/games/neverball" +cp -rv data "${COOKBOOK_STAGE}/usr/games/neverball" +""" diff --git a/recipes/games/neverball/recipe.toml b/recipes/games/neverball/recipe.toml index 7a525e40a..1d7e33338 100644 --- a/recipes/games/neverball/recipe.toml +++ b/recipes/games/neverball/recipe.toml @@ -5,18 +5,14 @@ patches = ["redox.patch"] [build] dependencies = [ - "expat", "freetype2", - "libdrm", "libjpeg", - "libogg", - "liborbital", - "libpng", "libvorbis", - "mesa", "sdl2", "sdl2-ttf", - "zlib", +] +dev-dependencies = [ + "host:neverball-sols" ] template = "custom" script = """ @@ -24,20 +20,13 @@ DYNAMIC_INIT rsync -av --delete "${COOKBOOK_SOURCE}/" ./ -env -i \ - LDFLAGS="-ljpeg -lpng16 -lz -lstdc++" \ - PATH="/usr/bin:/bin" \ - PKG_CONFIG="pkg-config" \ -"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" ENABLE_FS=stdio mapc sols - -"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" ENABLE_FS=stdio ENABLE_NLS=0 clean-src "${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" ENABLE_FS=stdio ENABLE_NLS=0 neverball neverputt # Create install directories -mkdir -pv "${COOKBOOK_STAGE}/usr/games/neverball" "${COOKBOOK_STAGE}/ui/apps" "${COOKBOOK_STAGE}/ui/icons/apps" +mkdir -pv "${COOKBOOK_STAGE}/usr/games/neverball" "${COOKBOOK_STAGE}/usr/share/ui/apps" "${COOKBOOK_STAGE}/usr/share/icons/apps" # Copy assets -cp -rv data "${COOKBOOK_STAGE}/usr/games/neverball" +cp -rv ${COOKBOOK_TOOLCHAIN}/usr/games/neverball/data "${COOKBOOK_STAGE}/usr/games/neverball" # For each game for bin in neverball neverputt @@ -46,9 +35,9 @@ do "${STRIP}" -v "${bin}" -o "${COOKBOOK_STAGE}/usr/games/neverball/${bin}" # Install manifest - cp -v "${COOKBOOK_RECIPE}/manifest-${bin}" "${COOKBOOK_STAGE}/ui/apps/${bin}" + cp -v "${COOKBOOK_RECIPE}/manifest-${bin}" "${COOKBOOK_STAGE}/usr/share/ui/apps/${bin}" # Install icon - cp -v "dist/${bin}_64.png" "${COOKBOOK_STAGE}/ui/icons/apps/${bin}.png" + cp -v "dist/${bin}_64.png" "${COOKBOOK_STAGE}/usr/share/icons/apps/${bin}.png" done """ diff --git a/recipes/games/openjazz/recipe.toml b/recipes/games/openjazz/recipe.toml index 676b85c69..85d2b4950 100644 --- a/recipes/games/openjazz/recipe.toml +++ b/recipes/games/openjazz/recipe.toml @@ -33,7 +33,7 @@ cookbook_configure ASSETS_DIR="${COOKBOOK_STAGE}${DATAPATH}" INSTALL_DIR="${COOKBOOK_STAGE}/usr/games" -ICON_DIR="${COOKBOOK_STAGE}/ui/icons/apps" +ICON_DIR="${COOKBOOK_STAGE}/usr/share/icons/apps" MAN_ROOT="${COOKBOOK_STAGE}/usr/share/man" mkdir -p "${ASSETS_DIR}" "${INSTALL_DIR}" "${ICON_DIR}" "${MAN_ROOT}" diff --git a/recipes/games/openttd/recipe.toml b/recipes/games/openttd/recipe.toml index e419e5495..a3b352457 100644 --- a/recipes/games/openttd/recipe.toml +++ b/recipes/games/openttd/recipe.toml @@ -1,6 +1,7 @@ [source] git = "https://github.com/OpenTTD/OpenTTD.git" -branch = "release/1.8" +#TODO: fix issues with this: branch = "release/1.8" +rev = "231402fb4bea0a0d6a16cef90764d9e7aa699c53" shallow_clone = true patches = ["redox.patch"] @@ -41,4 +42,4 @@ if [ -d "${COOKBOOK_STAGE}/usr/bin" ] then find "${COOKBOOK_STAGE}/usr/bin" -type f -exec "${TARGET}-strip" -v {} ';' fi -""" \ No newline at end of file +""" diff --git a/recipes/games/opentyrian/recipe.toml b/recipes/games/opentyrian/recipe.toml index 84fc86159..3f9fbfb5e 100644 --- a/recipes/games/opentyrian/recipe.toml +++ b/recipes/games/opentyrian/recipe.toml @@ -34,7 +34,7 @@ export WITH_NETWORK=false export REDOX_OVERRIDE=true export prefix="/usr" export bindir="${prefix}/games" -export icondir="/ui/icons/apps" +export icondir="/usr/share/icons/apps" export gamesdir="${prefix}/share/games" if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then diff --git a/recipes/games/prboom/recipe.toml b/recipes/games/prboom/recipe.toml index efdb13149..9999174a8 100644 --- a/recipes/games/prboom/recipe.toml +++ b/recipes/games/prboom/recipe.toml @@ -2,7 +2,6 @@ tar = "https://downloads.sourceforge.net/project/prboom/prboom%20stable/2.5.0/prboom-2.5.0.tar.gz" blake3 = "24c1b9b5aa15fd73e59162055f2c6d8faa82759b76ddfca9828cd2a5c8dc6b2a" script = """ -DYNAMIC_INIT autotools_recursive_regenerate wget -O autotools/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" """ diff --git a/recipes/games/quakespasm/redox.patch b/recipes/games/quakespasm/redox.patch index c3ff6a46e..754776dc9 100644 --- a/recipes/games/quakespasm/redox.patch +++ b/recipes/games/quakespasm/redox.patch @@ -9,7 +9,7 @@ diff '--color=auto' -rupwN source/Makefile source-new/Makefile +DESTDIR ?= "/" +INSTALLDIR = "${DESTDIR}/usr/games/" +DATADIR = "${DESTDIR}/usr/share/games/quake1/id1/" -+ICODIR = "${DESTDIR}/ui/icons/apps/" ++ICODIR = "${DESTDIR}/usr/share/icons/apps/" + # Enable/Disable user directories support -DO_USERDIRS=0 diff --git a/recipes/games/sm64ex/recipe.toml b/recipes/games/sm64ex/recipe.toml index 10992c486..1a1f46fcd 100644 --- a/recipes/games/sm64ex/recipe.toml +++ b/recipes/games/sm64ex/recipe.toml @@ -19,7 +19,7 @@ cp -v "${COOKBOOK_RECIPE}/baserom.us.z64" baserom.us.z64 #TODO: do this in cook instead unset AR AS CC CXX LD NM OBJCOPY OBJDUMP RANLIB READELF STRIP -export REDOX_CFLAGS="${CFLAGS}" +export REDOX_CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include" export REDOX_LDFLAGS="${LDFLAGS}" unset CFLAGS LDFLAGS @@ -28,9 +28,9 @@ export CROSS="${TARGET}-" mkdir -p "${COOKBOOK_STAGE}/bin" cp -v build/us_pc/sm64.us.f3dex2e "${COOKBOOK_STAGE}/bin/sm64" -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/sm64ex" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/sm64ex" -mkdir -pv "${COOKBOOK_STAGE}/ui/icons/apps" -wget -O "${COOKBOOK_STAGE}/ui/icons/apps/sm64ex.png" https://evilgames.eu/texture-packs/thumb/sm64-reloaded.png +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/apps" +wget -O "${COOKBOOK_STAGE}/usr/share/icons/apps/sm64ex.png" https://evilgames.eu/texture-packs/thumb/sm64-reloaded.png """ diff --git a/recipes/graphics/procedural-wallpapers-rs/recipe.toml b/recipes/graphics/procedural-wallpapers-rs/recipe.toml index 1b9cccac4..a3d3536f5 100644 --- a/recipes/graphics/procedural-wallpapers-rs/recipe.toml +++ b/recipes/graphics/procedural-wallpapers-rs/recipe.toml @@ -3,4 +3,4 @@ git = "https://github.com/lukas-kirschner/procedural-wallpapers-rs.git" [build] template = "cargo" -package_path = "procedural_wallpapers" +cargopath = "procedural_wallpapers" diff --git a/recipes/groups/auto-test/auto-test.ion b/recipes/groups/auto-test/auto-test.ion new file mode 100644 index 000000000..58fb4e09b --- /dev/null +++ b/recipes/groups/auto-test/auto-test.ion @@ -0,0 +1,6 @@ +#!/usr/bin/env ion +export RUST_BACKTRACE=full +cd /home/user/acid +cargo test +bash /root/relibc-tests/run.sh +os-test-runner \ No newline at end of file diff --git a/recipes/groups/auto-test/recipe.toml b/recipes/groups/auto-test/recipe.toml new file mode 100644 index 000000000..8c1ab2e75 --- /dev/null +++ b/recipes/groups/auto-test/recipe.toml @@ -0,0 +1,17 @@ +# Meta-package for automated testing of essential test suites +# Smaller test suites are executed first to catch possible bugs or regressions faster +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +cp -rv "${COOKBOOK_RECIPE}/auto-test.ion" "${COOKBOOK_STAGE}/usr/bin/auto-test" +chmod a+x "${COOKBOOK_STAGE}/usr/bin/auto-test" +""" +[package] +dependencies = [ + "acid", + "coreutils", + "ion", + "os-test-bins", + "relibc-tests-bins", +] diff --git a/recipes/groups/demo/recipe.toml b/recipes/groups/demo/recipe.toml new file mode 100644 index 000000000..36be3c7dc --- /dev/null +++ b/recipes/groups/demo/recipe.toml @@ -0,0 +1,22 @@ +# demo variant meta-package +[package] +dependencies = [ + "desktop", + "periodictable", + "intel-one-mono", + "gnu-grep", + "htop", + "ripgrep", + "terminfo", + "vim", + "dosbox", + "freedoom", + "neverball", + "prboom", + "redox-games", + "sopwith", + "orbclient", + "pixelcannon", + "rodioplay", + "freepats", +] diff --git a/recipes/groups/desktop/recipe.toml b/recipes/groups/desktop/recipe.toml new file mode 100644 index 000000000..36544a83a --- /dev/null +++ b/recipes/groups/desktop/recipe.toml @@ -0,0 +1,21 @@ +# desktop variant meta-package +[package] +dependencies = [ + "server", + "cosmic-edit", + "cosmic-files", + "cosmic-icons", + "cosmic-term", + "dejavu", + "freefont", + "hicolor-icon-theme", + "installer-gui", + "netsurf", + "orbdata", + "orbital", + "orbutils", + "patchelf", + "pop-icon-theme", + "rustpython", + "shared-mime-info", +] diff --git a/recipes/groups/dev-essential/recipe.toml b/recipes/groups/dev-essential/recipe.toml index efe81319b..31fc40b80 100644 --- a/recipes/groups/dev-essential/recipe.toml +++ b/recipes/groups/dev-essential/recipe.toml @@ -2,15 +2,12 @@ dependencies = [ "autoconf", "automake", - "cargo", "gcc13", "gcc13.cxx", - "llvm21", "gnu-binutils", "gnu-make", "gnu-grep", "ripgrep", - "libffi", "rustpython", "lua54", "nasm", diff --git a/recipes/groups/llvm21-common/recipe.toml b/recipes/groups/llvm21-common/recipe.toml new file mode 100644 index 000000000..0a56afd54 --- /dev/null +++ b/recipes/groups/llvm21-common/recipe.toml @@ -0,0 +1,7 @@ +[package] +dependencies = [ + "clang21", + "llvm21", + "llvm21.runtime", + "lld21", +] diff --git a/recipes/groups/mate-common/recipe.toml b/recipes/groups/mate-common/recipe.toml new file mode 100644 index 000000000..5861faef9 --- /dev/null +++ b/recipes/groups/mate-common/recipe.toml @@ -0,0 +1,11 @@ +[package] +dependencies = [ + "caja", + "marco", + "mate-control-center", + "mate-icon-theme", + "mate-panel", + "mate-session-manager", + "mate-settings-daemon", + "mate-terminal", +] diff --git a/recipes/groups/redox-tests/recipe.toml b/recipes/groups/redox-tests/recipe.toml index eb8ef05db..1fb2a8c2c 100644 --- a/recipes/groups/redox-tests/recipe.toml +++ b/recipes/groups/redox-tests/recipe.toml @@ -1,6 +1,14 @@ [package] dependencies = [ "acid", - "resist", + "acid-bins", + "auto-test", + "hello-redox", + "os-test", + "os-test-bins", + "openposixtestsuite", + "redox-posix-tests", "relibc-tests", + "relibc-tests-bins", + "vttest", ] diff --git a/recipes/groups/server/recipe.toml b/recipes/groups/server/recipe.toml new file mode 100644 index 000000000..7a6441a63 --- /dev/null +++ b/recipes/groups/server/recipe.toml @@ -0,0 +1,17 @@ +# server variant meta-package +[package] +dependencies = [ + "bash", + "bottom", + "ca-certificates", + #"contain", + "coreutils", + "curl", + "diffutils", + "extrautils", + "findutils", + "git", + "installer", + "ion", + "kibi", +] diff --git a/recipes/groups/sys-gui/recipe.toml b/recipes/groups/sys-gui/recipe.toml new file mode 100644 index 000000000..f58cf047d --- /dev/null +++ b/recipes/groups/sys-gui/recipe.toml @@ -0,0 +1,6 @@ +[package] +dependencies = [ + "orbital", + "orbdata", + "orbutils", +] diff --git a/recipes/groups/sys/recipe.toml b/recipes/groups/sys/recipe.toml new file mode 100644 index 000000000..f04d92c27 --- /dev/null +++ b/recipes/groups/sys/recipe.toml @@ -0,0 +1,9 @@ +[package] +dependencies = [ + "bootloader", + "kernel", + "relibc", + "base", + "coreutils", + "base-initfs", +] diff --git a/recipes/gui/installer-gui/recipe.toml b/recipes/gui/installer-gui/recipe.toml index 4f95b53d6..a825566d8 100644 --- a/recipes/gui/installer-gui/recipe.toml +++ b/recipes/gui/installer-gui/recipe.toml @@ -7,6 +7,6 @@ script = """ DYNAMIC_INIT cookbook_cargo -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/redox-installer-gui" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/redox-installer-gui" """ diff --git a/recipes/gui/orbterm/recipe.toml b/recipes/gui/orbterm/recipe.toml index e67f2a1c6..76b2055a0 100644 --- a/recipes/gui/orbterm/recipe.toml +++ b/recipes/gui/orbterm/recipe.toml @@ -5,15 +5,10 @@ git = "https://gitlab.redox-os.org/redox-os/orbterm.git" template = "custom" script = """ DYNAMIC_INIT -mkdir -pv "${COOKBOOK_STAGE}/ui" -cp -rv "${COOKBOOK_SOURCE}/apps" "${COOKBOOK_STAGE}/ui/apps" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui" +cp -rv "${COOKBOOK_SOURCE}/apps" "${COOKBOOK_STAGE}/usr/share/ui/apps" -"${COOKBOOK_CARGO}" install \ - --path "${COOKBOOK_SOURCE}" \ - --root "${COOKBOOK_STAGE}/usr" \ - --locked \ - --no-track \ - ${install_flags} +cookbook_cargo """ [package] diff --git a/recipes/gui/orbutils-background/recipe.toml b/recipes/gui/orbutils-background/recipe.toml index 9b13e8168..aa301dbba 100644 --- a/recipes/gui/orbutils-background/recipe.toml +++ b/recipes/gui/orbutils-background/recipe.toml @@ -1,10 +1,12 @@ [source] -git = "https://gitlab.redox-os.org/redox-os/orbutils.git" +same_as = "../orbutils" [build] template = "cargo" -package_path = "orbutils" -cargoflags = "--bin background" +cargopath = "orbutils" +cargoflags = [ + "--bin background" +] [package] dependencies = [ diff --git a/recipes/gui/orbutils-launcher/recipe.toml b/recipes/gui/orbutils-launcher/recipe.toml deleted file mode 100644 index 78125ba93..000000000 --- a/recipes/gui/orbutils-launcher/recipe.toml +++ /dev/null @@ -1,11 +0,0 @@ -[source] -git = "https://gitlab.redox-os.org/redox-os/orbutils.git" - -[build] -template = "cargo" -package_path = "launcher" - -[package] -dependencies = [ - "orbital" -] diff --git a/recipes/gui/orbutils-orblogin/recipe.toml b/recipes/gui/orbutils-orblogin/recipe.toml deleted file mode 100644 index 6871a92e6..000000000 --- a/recipes/gui/orbutils-orblogin/recipe.toml +++ /dev/null @@ -1,12 +0,0 @@ -[source] -git = "https://gitlab.redox-os.org/redox-os/orbutils.git" - -[build] -template = "cargo" -package_path = "orbutils" -cargoflags = "--bin orblogin" - -[package] -dependencies = [ - "orbital" -] diff --git a/recipes/gui/orbutils/recipe.toml b/recipes/gui/orbutils/recipe.toml index bc506edfe..470660630 100644 --- a/recipes/gui/orbutils/recipe.toml +++ b/recipes/gui/orbutils/recipe.toml @@ -5,16 +5,9 @@ git = "https://gitlab.redox-os.org/redox-os/orbutils.git" template = "custom" script = """ DYNAMIC_INIT -mkdir -pv "${COOKBOOK_STAGE}/ui" -cp -rv "${COOKBOOK_SOURCE}/apps" "${COOKBOOK_STAGE}/ui/apps" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui" +cp -rv "${COOKBOOK_SOURCE}/apps" "${COOKBOOK_STAGE}/usr/share/ui/apps" -for project in orbutils calculator launcher -do - "${COOKBOOK_CARGO}" install \ - --path "${COOKBOOK_SOURCE}/${project}" \ - --root "${COOKBOOK_STAGE}/usr" \ - --locked \ - --no-track \ - ${install_flags} -done +COOKBOOK_CARGO_PATH="orbutils" cookbook_cargo +COOKBOOK_CARGO_PATH="launcher" cookbook_cargo """ diff --git a/recipes/icons/pop-icon-theme/recipe.toml b/recipes/icons/pop-icon-theme/recipe.toml index 44daacee9..8578a8a26 100644 --- a/recipes/icons/pop-icon-theme/recipe.toml +++ b/recipes/icons/pop-icon-theme/recipe.toml @@ -1,12 +1,18 @@ [source] 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 -#TODO: reduce cursors folder size: https://github.com/pop-os/icon-theme/issues/136 -rm -rf "${COOKBOOK_STAGE}/share/icons/Pop/cursors" -rm -rf "${COOKBOOK_STAGE}/share/icons/Pop/cursor.theme" """ + +[[optional-packages]] +name = "cursors" +files = [ + "share/icons/Pop/cursors**", + "share/icons/Pop/cursor.theme", +] + diff --git a/recipes/libs/duktape/recipe.toml b/recipes/libs/duktape/recipe.toml index 13b3f1781..e00eb2343 100644 --- a/recipes/libs/duktape/recipe.toml +++ b/recipes/libs/duktape/recipe.toml @@ -9,7 +9,7 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./ sed -i "s/= gcc/= ${TARGET}-gcc/g" Makefile.cmdline -"${COOKBOOK_MAKE}" -f Makefile.cmdline -j"$($NPROC)" +"${COOKBOOK_MAKE}" -f Makefile.cmdline -j"$COOKBOOK_MAKE_JOBS" mkdir -pv "${COOKBOOK_STAGE}/usr/bin" cp ./duk "${COOKBOOK_STAGE}/usr/bin/duk" diff --git a/recipes/libs/expat/recipe.toml b/recipes/libs/expat/recipe.toml index 37f15adb0..ae118114d 100644 --- a/recipes/libs/expat/recipe.toml +++ b/recipes/libs/expat/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/libexpat/libexpat/releases/download/R_2_5_0/expat-2.5.0.tar.xz" blake3 = "ea89dd9a5a2e48d5e44fed38554b36a8f2e365a5091a99d08e30bfb1c15dda5e" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/ffmpeg6/recipe.toml b/recipes/libs/ffmpeg6/recipe.toml index 8f15ca3a4..09f828343 100644 --- a/recipes/libs/ffmpeg6/recipe.toml +++ b/recipes/libs/ffmpeg6/recipe.toml @@ -35,6 +35,6 @@ COOKBOOK_CONFIGURE_FLAGS=( --enable-decoder=png ) cookbook_configure -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/ffplay" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/ffplay" """ diff --git a/recipes/libs/glib/redox.patch b/recipes/libs/glib/redox.patch index 47f8a2fe7..e22f72353 100644 --- a/recipes/libs/glib/redox.patch +++ b/recipes/libs/glib/redox.patch @@ -1,6 +1,6 @@ -diff -ruwN source-old/fuzzing/fuzz_resolver.c source/fuzzing/fuzz_resolver.c ---- source-old/fuzzing/fuzz_resolver.c 2025-11-03 05:42:10.000000000 -0700 -+++ source/fuzzing/fuzz_resolver.c 2025-11-10 12:32:57.663974728 -0700 +diff -ruwN glib-2.87.0/fuzzing/fuzz_resolver.c source/fuzzing/fuzz_resolver.c +--- glib-2.87.0/fuzzing/fuzz_resolver.c 2025-11-03 19:42:10.000000000 +0700 ++++ source/fuzzing/fuzz_resolver.c 2026-02-19 13:53:45.717898735 +0700 @@ -29,7 +29,7 @@ gint rrtype) { @@ -10,9 +10,9 @@ diff -ruwN source-old/fuzzing/fuzz_resolver.c source/fuzzing/fuzz_resolver.c GList *record_list = NULL; /* Data too long? */ -diff -ruwN source-old/gio/gcredentialsprivate.h source/gio/gcredentialsprivate.h ---- source-old/gio/gcredentialsprivate.h 2025-11-03 05:42:10.000000000 -0700 -+++ source/gio/gcredentialsprivate.h 2025-11-10 12:35:09.114747806 -0700 +diff -ruwN glib-2.87.0/gio/gcredentialsprivate.h source/gio/gcredentialsprivate.h +--- glib-2.87.0/gio/gcredentialsprivate.h 2025-11-03 19:42:10.000000000 +0700 ++++ source/gio/gcredentialsprivate.h 2026-02-19 13:53:45.717995965 +0700 @@ -104,7 +104,7 @@ */ #undef G_CREDENTIALS_HAS_PID @@ -22,9 +22,9 @@ diff -ruwN source-old/gio/gcredentialsprivate.h source/gio/gcredentialsprivate.h #define G_CREDENTIALS_SUPPORTED 1 #define G_CREDENTIALS_USE_LINUX_UCRED 1 #define G_CREDENTIALS_NATIVE_TYPE G_CREDENTIALS_TYPE_LINUX_UCRED -diff -ruwN source-old/gio/glocalfile.c source/gio/glocalfile.c ---- source-old/gio/glocalfile.c 2025-11-03 05:42:10.000000000 -0700 -+++ source/gio/glocalfile.c 2025-11-10 12:32:57.664235788 -0700 +diff -ruwN glib-2.87.0/gio/glocalfile.c source/gio/glocalfile.c +--- glib-2.87.0/gio/glocalfile.c 2025-11-03 19:42:10.000000000 +0700 ++++ source/gio/glocalfile.c 2026-02-19 13:53:45.718204283 +0700 @@ -47,6 +47,10 @@ #include #endif @@ -36,9 +36,9 @@ diff -ruwN source-old/gio/glocalfile.c source/gio/glocalfile.c #ifndef O_BINARY #define O_BINARY 0 #endif -diff -ruwN source-old/gio/gnetworking.h.in source/gio/gnetworking.h.in ---- source-old/gio/gnetworking.h.in 2025-11-03 05:42:10.000000000 -0700 -+++ source/gio/gnetworking.h.in 2025-11-10 12:32:57.664602707 -0700 +diff -ruwN glib-2.87.0/gio/gnetworking.h.in source/gio/gnetworking.h.in +--- glib-2.87.0/gio/gnetworking.h.in 2025-11-03 19:42:10.000000000 +0700 ++++ source/gio/gnetworking.h.in 2026-02-19 13:53:45.718380100 +0700 @@ -40,13 +40,17 @@ #include #include @@ -57,9 +57,22 @@ diff -ruwN source-old/gio/gnetworking.h.in source/gio/gnetworking.h.in @NAMESER_COMPAT_INCLUDE@ #ifndef __GI_SCANNER__ -diff -ruwN source-old/gio/gthreadedresolver.c source/gio/gthreadedresolver.c ---- source-old/gio/gthreadedresolver.c 2025-11-03 05:42:10.000000000 -0700 -+++ source/gio/gthreadedresolver.c 2025-11-10 12:32:57.664870630 -0700 +diff -ruwN glib-2.87.0/gio/gsocket.c source/gio/gsocket.c +--- glib-2.87.0/gio/gsocket.c 2025-11-03 19:42:10.000000000 +0700 ++++ source/gio/gsocket.c 2026-03-05 11:29:00.807439664 +0700 +@@ -3133,7 +3133,8 @@ + { + int errsv = get_socket_errno (); + +- if (errsv == EINTR) ++ // TODO: uds connect() in redox is blocking ++ if (errsv == EINTR || errsv == EAGAIN) + continue; + + #ifndef G_OS_WIN32 +diff -ruwN glib-2.87.0/gio/gthreadedresolver.c source/gio/gthreadedresolver.c +--- glib-2.87.0/gio/gthreadedresolver.c 2025-11-03 05:42:10.000000000 -0700 ++++ source/gio/gthreadedresolver.c 2026-01-15 18:35:07.059664185 -0700 @@ -698,7 +698,7 @@ } @@ -82,9 +95,9 @@ diff -ruwN source-old/gio/gthreadedresolver.c source/gio/gthreadedresolver.c gint len = 512; gint herr; GByteArray *answer; -diff -ruwN source-old/gio/gunixconnection.c source/gio/gunixconnection.c ---- source-old/gio/gunixconnection.c 2025-11-03 05:42:10.000000000 -0700 -+++ source/gio/gunixconnection.c 2025-11-10 12:36:14.017908505 -0700 +diff -ruwN glib-2.87.0/gio/gunixconnection.c source/gio/gunixconnection.c +--- glib-2.87.0/gio/gunixconnection.c 2025-11-03 05:42:10.000000000 -0700 ++++ source/gio/gunixconnection.c 2026-01-15 18:35:07.059895298 -0700 @@ -496,7 +496,7 @@ GSocket *socket; gint n; @@ -112,9 +125,9 @@ diff -ruwN source-old/gio/gunixconnection.c source/gio/gunixconnection.c if (turn_off_so_passcreds) { if (!g_socket_set_option (socket, -diff -ruwN source-old/gio/gunixmounts.c source/gio/gunixmounts.c ---- source-old/gio/gunixmounts.c 2025-11-03 05:42:10.000000000 -0700 -+++ source/gio/gunixmounts.c 2025-11-10 12:32:57.665218112 -0700 +diff -ruwN glib-2.87.0/gio/gunixmounts.c source/gio/gunixmounts.c +--- glib-2.87.0/gio/gunixmounts.c 2025-11-03 05:42:10.000000000 -0700 ++++ source/gio/gunixmounts.c 2026-01-15 18:35:07.060167680 -0700 @@ -1114,7 +1114,7 @@ } @@ -153,9 +166,9 @@ diff -ruwN source-old/gio/gunixmounts.c source/gio/gunixmounts.c /* Common code {{{2 */ #else #error No g_get_mount_table() implementation for system -diff -ruwN source-old/gio/meson.build source/gio/meson.build ---- source-old/gio/meson.build 2025-11-03 05:42:10.000000000 -0700 -+++ source/gio/meson.build 2025-11-10 12:32:57.665641216 -0700 +diff -ruwN glib-2.87.0/gio/meson.build source/gio/meson.build +--- glib-2.87.0/gio/meson.build 2025-11-03 19:42:10.000000000 +0700 ++++ source/gio/meson.build 2026-02-19 13:53:45.718994535 +0700 @@ -18,7 +18,7 @@ gnetworking_h_nameser_compat_include = '' @@ -174,9 +187,9 @@ diff -ruwN source-old/gio/meson.build source/gio/meson.build # res_query() res_query_test = '''#include int main (int argc, char ** argv) { -diff -ruwN source-old/gio/tests/gdbus-server-auth.c source/gio/tests/gdbus-server-auth.c ---- source-old/gio/tests/gdbus-server-auth.c 2025-11-03 05:42:10.000000000 -0700 -+++ source/gio/tests/gdbus-server-auth.c 2025-11-10 12:36:39.750972219 -0700 +diff -ruwN glib-2.87.0/gio/tests/gdbus-server-auth.c source/gio/tests/gdbus-server-auth.c +--- glib-2.87.0/gio/tests/gdbus-server-auth.c 2025-11-03 19:42:10.000000000 +0700 ++++ source/gio/tests/gdbus-server-auth.c 2026-02-19 13:53:45.719091042 +0700 @@ -243,7 +243,7 @@ } else /* We should prefer EXTERNAL whenever it is allowed. */ @@ -186,9 +199,9 @@ diff -ruwN source-old/gio/tests/gdbus-server-auth.c source/gio/tests/gdbus-serve /* We know that both GDBus and libdbus support full credentials-passing * on Linux. */ g_assert_cmpint (uid, ==, getuid ()); -diff -ruwN source-old/glib/glib-unix.c source/glib/glib-unix.c ---- source-old/glib/glib-unix.c 2025-11-03 05:42:10.000000000 -0700 -+++ source/glib/glib-unix.c 2025-11-10 12:32:57.665846181 -0700 +diff -ruwN glib-2.87.0/glib/glib-unix.c source/glib/glib-unix.c +--- glib-2.87.0/glib/glib-unix.c 2025-11-03 19:42:10.000000000 +0700 ++++ source/glib/glib-unix.c 2026-02-19 13:53:45.719219012 +0700 @@ -74,6 +74,10 @@ #include #endif /* defined (__FreeBSD__ )*/ @@ -221,3 +234,42 @@ diff -ruwN source-old/glib/glib-unix.c source/glib/glib-unix.c #else #error "g_unix_fd_query_path() not supported on this platform" #endif +diff -ruwN glib-2.87.0/glib/gstrfuncs.c source/glib/gstrfuncs.c +--- glib-2.87.0/glib/gstrfuncs.c 2025-11-03 19:42:10.000000000 +0700 ++++ source/glib/gstrfuncs.c 2026-02-19 13:53:45.719384853 +0700 +@@ -707,7 +707,7 @@ + + gchar *fail_pos; + gdouble val; +-#ifndef __BIONIC__ ++#if !defined(__BIONIC__) && !defined(__redox__) + struct lconv *locale_data; + #endif + const char *decimal_point; +@@ -720,7 +720,7 @@ + + fail_pos = NULL; + +-#ifndef __BIONIC__ ++#if !defined(__BIONIC__) && !defined(__redox__) + locale_data = localeconv (); + decimal_point = locale_data->decimal_point; + decimal_point_len = strlen (decimal_point); +@@ -931,7 +931,7 @@ + + return buffer; + #else +-#ifndef __BIONIC__ ++#if !defined(__BIONIC__) && !defined(__redox__) + struct lconv *locale_data; + #endif + const char *decimal_point; +@@ -964,7 +964,7 @@ + + _g_snprintf (buffer, buf_len, format, d); + +-#ifndef __BIONIC__ ++#if !defined(__BIONIC__) && !defined(__redox__) + locale_data = localeconv (); + decimal_point = locale_data->decimal_point; + decimal_point_len = strlen (decimal_point); diff --git a/recipes/libs/gstreamer/redox.patch b/recipes/libs/gstreamer/redox.patch index 5818879f5..4dc880968 100644 --- a/recipes/libs/gstreamer/redox.patch +++ b/recipes/libs/gstreamer/redox.patch @@ -1,7 +1,21 @@ -diff -ruwN gstreamer-1.20.7/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build ---- gstreamer-1.20.7/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2023-07-26 09:18:38.000000000 -0600 -+++ source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2025-04-10 17:19:26.509676357 -0600 -@@ -135,10 +135,10 @@ +diff -ruw gstreamer-1.24.12/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c source/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c +--- gstreamer-1.24.12/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c 2025-01-29 13:12:29.000000000 -0700 ++++ source/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c 2026-02-10 19:13:12.530288659 -0700 +@@ -49,6 +49,10 @@ + #include + #endif + ++#if defined(__redox__) ++#include // For struct timeval ++#endif ++ + GST_DEBUG_CATEGORY_STATIC (gst_dtls_connection_debug); + #define GST_CAT_DEFAULT gst_dtls_connection_debug + +diff -ruw gstreamer-1.24.12/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build +--- gstreamer-1.24.12/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2025-01-29 13:12:29.000000000 -0700 ++++ source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2026-02-10 19:09:53.259120404 -0700 +@@ -136,10 +136,10 @@ install: false) endif @@ -17,3 +31,4 @@ diff -ruwN gstreamer-1.20.7/subprojects/gst-plugins-base/gst-libs/gst/tag/meson. +# install : false) gst_tag_dir = meson.current_source_dir() +Only in source/subprojects/gst-plugins-base/gst-libs/gst/tag: meson.build.orig diff --git a/recipes/libs/jansson/recipe.toml b/recipes/libs/jansson/recipe.toml index 2e2538d9f..7b9d8aa9e 100644 --- a/recipes/libs/jansson/recipe.toml +++ b/recipes/libs/jansson/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/akheron/jansson/releases/download/v2.10/jansson-2.10.tar.gz" blake3 = "3c74f374a6c7ac5e323f72d87e49e5309ca922ca26cfe4992873b31f28776624" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/libflac/recipe.toml b/recipes/libs/libflac/recipe.toml index fbf20faa5..7fb8962c0 100644 --- a/recipes/libs/libflac/recipe.toml +++ b/recipes/libs/libflac/recipe.toml @@ -1,8 +1,19 @@ [source] -tar = "https://github.com/xiph/flac/releases/download/1.4.2/flac-1.4.2.tar.xz" -blake3 = "d165b9a18eb83b6f6e9993cc2074547566df706fc61464eb17ff088fd0c88104" +tar = "https://github.com/xiph/flac/releases/download/1.5.0/flac-1.5.0.tar.xz" +blake3 = "2adca3cd8da4b577ebb9c12e73c91cf6f6a7feb7485b3f003853b82710bada84" +script = """ +autotools_recursive_regenerate +""" + [build] -template = "configure" +template = "custom" dependencies = [ "libogg", ] +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --with-ogg="${COOKBOOK_SYSROOT}" +) +cookbook_configure +""" diff --git a/recipes/libs/libgmp/recipe.toml b/recipes/libs/libgmp/recipe.toml index d43a6ab9f..d68f1c477 100644 --- a/recipes/libs/libgmp/recipe.toml +++ b/recipes/libs/libgmp/recipe.toml @@ -5,14 +5,22 @@ [source] tar = "https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz" blake3 = "fffe4996713928ae19331c8ef39129e46d3bf5b7182820656fd4639435cd83a4" -script = """ -DYNAMIC_INIT -autotools_recursive_regenerate -""" [build] template = "custom" script = """ -DYNAMIC_INIT +# libgmp fails to regenerate autotools when building for host toolchain +# To workaround this, the source is copied to the build dir and autotools is +# only regenerated when not building for the host +rsync -a --delete "${COOKBOOK_SOURCE}/" ./ +COOKBOOK_SOURCE="${COOKBOOK_BUILD}" +if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then + autotools_recursive_regenerate + # need to invoke configure in specific way to make shared libs work + ./configure --host="${GNU_TARGET}" --prefix="/usr" + COOKBOOK_CONFIGURE=true +fi + +DYNAMIC_STATIC_INIT cookbook_configure -""" \ No newline at end of file +""" diff --git a/recipes/libs/libmodplug1/recipe.toml b/recipes/libs/libmodplug1/recipe.toml index 3e3420c02..772a29287 100644 --- a/recipes/libs/libmodplug1/recipe.toml +++ b/recipes/libs/libmodplug1/recipe.toml @@ -2,7 +2,6 @@ tar = "https://pilotfiber.dl.sourceforge.net/project/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz" blake3 = "01d71f7fe4e1abeb848db02b74c70ab2fd51e824f5ea7e9e18631571a76c3592" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/libmpfr/recipe.toml b/recipes/libs/libmpfr/recipe.toml index ab5477a93..879e2e791 100644 --- a/recipes/libs/libmpfr/recipe.toml +++ b/recipes/libs/libmpfr/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.mpfr.org/mpfr-current/mpfr-4.2.2.tar.xz" blake3 = "11d59d061ef8db588650bc7dc5172594a6e5aad013994801c6f63011a62b191d" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ @@ -12,6 +11,6 @@ dependencies = [ "libgmp", ] script = """ -DYNAMIC_INIT +DYNAMIC_STATIC_INIT cookbook_configure """ \ No newline at end of file diff --git a/recipes/libs/libnettle/recipe.toml b/recipes/libs/libnettle/recipe.toml index b5dd3ce43..7f1ba1128 100644 --- a/recipes/libs/libnettle/recipe.toml +++ b/recipes/libs/libnettle/recipe.toml @@ -2,7 +2,6 @@ tar = "https://ftp.gnu.org/gnu/nettle/nettle-3.9.1.tar.gz" blake3 = "e4bfbda32f4fdf5ed96c152efe3a3867193b690faa5378d02a2a6fd052ee3393" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/libogg/recipe.toml b/recipes/libs/libogg/recipe.toml index 9e219c87c..3b7e3858a 100644 --- a/recipes/libs/libogg/recipe.toml +++ b/recipes/libs/libogg/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/xiph/ogg/releases/download/v1.3.4/libogg-1.3.4.tar.xz" blake3 = "1cffbe7c498555ddfdb1390d7a38179c4bead6129ea37b1b1d54f3a76b816304" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/libopus/recipe.toml b/recipes/libs/libopus/recipe.toml new file mode 100644 index 000000000..7733465f0 --- /dev/null +++ b/recipes/libs/libopus/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://downloads.xiph.org/releases/opus/opus-1.6.1.tar.gz" +blake3 = "874bd7d28e24f10d88105c7d846a2e5bf085284af91a0ee36b05674a8f78e759" +script = """ +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +# Redox does not support any of the aarch64 run-time cpu capability detection +# APIs supported by libopus +case "${TARGET}" in + aarch64-*-redox) COOKBOOK_CONFIGURE_FLAGS+=(--disable-rtcd);; +esac +cookbook_configure +""" diff --git a/recipes/libs/libpsl/recipe.toml b/recipes/libs/libpsl/recipe.toml index cbc487885..668dd7923 100644 --- a/recipes/libs/libpsl/recipe.toml +++ b/recipes/libs/libpsl/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/rockdaboot/libpsl/releases/download/0.21.5/libpsl-0.21.5.tar.lz" blake3 = "91318b7b876b12ff4649b7a0d6f6ed4ab1ab44f48a49508c8978ab7b4ccf3298" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/libsodium/recipe.toml b/recipes/libs/libsodium/recipe.toml index 8f6a2db3e..3fa8d8ded 100644 --- a/recipes/libs/libsodium/recipe.toml +++ b/recipes/libs/libsodium/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/jedisct1/libsodium/archive/1.0.16.tar.gz" blake3 = "2482633f872c173f9a42e6badb44c3efb042e783e664fdf8b1046babfa2405e7" script = """ -DYNAMIC_INIT autotools_recursive_regenerate wget -O build-aux/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" """ diff --git a/recipes/libs/libssh2/recipe.toml b/recipes/libs/libssh2/recipe.toml index 1b33f11ab..af3af42c8 100644 --- a/recipes/libs/libssh2/recipe.toml +++ b/recipes/libs/libssh2/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.libssh2.org/download/libssh2-1.10.0.tar.gz" blake3 = "2447216ce82c1d22301456bb02f60dfb6688f1461417b90f900c099a87f1292f" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/libstdcxx-v3/recipe.toml b/recipes/libs/libstdcxx-v3/recipe.toml index be917ca27..c89158af4 100644 --- a/recipes/libs/libstdcxx-v3/recipe.toml +++ b/recipes/libs/libstdcxx-v3/recipe.toml @@ -3,14 +3,19 @@ same_as = "../../dev/gcc13" [build] template = "custom" -dependencies = [ - "libgmp", - "libmpfr", - "mpc", - "zlib" -] script = """ -DYNAMIC_INIT +DYNAMIC_STATIC_INIT + +COOKBOOK_CONFIGURE_FLAGS+=( + --enable-threads=posix + --enable-libstdcxx-threads +) + +# TODO: Investigate why mutex is not available in riscv64 +if [ "${TARGET}" = "riscv64gc-unknown-redox" ]; then +COOKBOOK_CONFIGURE_FLAGS+=( --without-libstdcxx-zoneinfo ) +fi + CPPINCLUDE="${COOKBOOK_HOST_SYSROOT}/$TARGET/include/c++/13.2.0" export CPPFLAGS+=" -I${CPPINCLUDE} -I${CPPINCLUDE}/$TARGET/bits" COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/libstdc++-v3/configure" diff --git a/recipes/libs/libuv/redox.patch b/recipes/libs/libuv/redox.patch index a99c1c54e..3446e77f6 100644 --- a/recipes/libs/libuv/redox.patch +++ b/recipes/libs/libuv/redox.patch @@ -148,7 +148,7 @@ diff -ruwN source/src/unix/proctitle.c source-new/src/unix/proctitle.c diff -ruwN source/src/unix/redox.c source-new/src/unix/redox.c --- source/src/unix/redox.c 1970-01-01 07:00:00.000000000 +0700 +++ source-new/src/unix/redox.c 2025-10-10 11:18:29.028345924 +0700 -@@ -0,0 +1,102 @@ +@@ -0,0 +1,104 @@ +/* Copyright libuv contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy @@ -210,6 +210,7 @@ diff -ruwN source/src/unix/redox.c source-new/src/unix/redox.c +} + +int uv_interface_addresses(uv_interface_address_t** addresses, int* count) { ++ *count = 0; + return 0; +} + @@ -245,6 +246,7 @@ diff -ruwN source/src/unix/redox.c source-new/src/unix/redox.c + + +int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { ++ *count = 0; + return 0; +} + diff --git a/recipes/libs/libxml2/recipe.toml b/recipes/libs/libxml2/recipe.toml index f37f42966..75ef0e17a 100644 --- a/recipes/libs/libxml2/recipe.toml +++ b/recipes/libs/libxml2/recipe.toml @@ -2,7 +2,6 @@ tar = "https://download.gnome.org/sources/libxml2/2.11/libxml2-2.11.3.tar.xz" blake3 = "0653d3750576299c4cb88740942165671b576ff93019f3d669b3f37136225ab7" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/mesa/recipe.toml b/recipes/libs/mesa/recipe.toml index 232145af5..6d23ee120 100644 --- a/recipes/libs/mesa/recipe.toml +++ b/recipes/libs/mesa/recipe.toml @@ -14,8 +14,6 @@ dependencies = [ ] dev-dependencies = [ "llvm21.dev", - "host:llvm21.dev", - "host:llvm21.runtime", ] script = """ DYNAMIC_INIT @@ -38,7 +36,8 @@ cookbook_meson \ -Dllvm=enabled \ -Dosmesa=true \ -Dplatforms=redox \ - -Dshader-cache=disabled + -Dshader-cache=disabled \ + -Dvulkan-drivers=swrast # Hack to add LLVM libs, the list can be seen from meson log and check for matches $("${LLVM_CONFIG}" --libs) LLVMLIBS="-lLLVMBitReader -lLLVMCore -lLLVMExecutionEngine -lLLVMInstCombine -lLLVMMCDisassembler" diff --git a/recipes/libs/mpc/recipe.toml b/recipes/libs/mpc/recipe.toml index a3d31b915..70818e503 100644 --- a/recipes/libs/mpc/recipe.toml +++ b/recipes/libs/mpc/recipe.toml @@ -4,7 +4,6 @@ [source] tar = "https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ @@ -15,6 +14,6 @@ dependencies = [ "libmpfr", ] script = """ -DYNAMIC_INIT +DYNAMIC_STATIC_INIT cookbook_configure """ \ No newline at end of file diff --git a/recipes/libs/ncurses/redox.patch b/recipes/libs/ncurses/redox.patch index b446db168..5d059649d 100644 --- a/recipes/libs/ncurses/redox.patch +++ b/recipes/libs/ncurses/redox.patch @@ -1,7 +1,16 @@ diff -ruwN source/configure source-new/configure --- source/configure 2022-11-06 04:13:26.000000000 +0700 -+++ source-new/configure 2025-09-17 21:14:28.163192730 +0700 -@@ -6386,7 +6386,7 @@ ++++ source-new/configure 2026-02-17 13:42:38.449890407 +0700 +@@ -3480,8 +3480,6 @@ + echo $ECHO_N "checking if $CXX works... $ECHO_C" >&6 + + save_CPPFLAGS="$CPPFLAGS" +- eval cf_includedir=${includedir} +- CPPFLAGS="$CPPFLAGS -I${cf_includedir}" + + cat >"conftest.$ac_ext" <<_ACEOF + #line 3487 "configure" +@@ -6386,7 +6384,7 @@ fi cf_cv_rm_so_locs=yes ;; diff --git a/recipes/libs/nghttp2/recipe.toml b/recipes/libs/nghttp2/recipe.toml index 41bea400a..39efe6c70 100644 --- a/recipes/libs/nghttp2/recipe.toml +++ b/recipes/libs/nghttp2/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/nghttp2/nghttp2/releases/download/v1.64.0/nghttp2-1.64.0.tar.xz" blake3 = "1bbc08de4816769d800c42f501a00c1ba3f5efa1b76e1f65d2e5bdf3aa30354d" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/opusfile/recipe.toml b/recipes/libs/opusfile/recipe.toml new file mode 100644 index 000000000..e27a0d490 --- /dev/null +++ b/recipes/libs/opusfile/recipe.toml @@ -0,0 +1,19 @@ +[source] +tar = "https://downloads.xiph.org/releases/opus/opusfile-0.12.tar.gz" +blake3 = "1b6a5c371a0ea2ae8e37ab2e921388dfef9252dbf7f60045192dabbdd898f2bf" +script = """ +autotools_recursive_regenerate +""" + +[build] +template = "configure" +dependencies = [ + "openssl3", + "libogg", + "libopus", +] + +[package] +dependencies = [ + "ca-certificates" +] diff --git a/recipes/libs/pcre/recipe.toml b/recipes/libs/pcre/recipe.toml index 773c8f48c..05b24fec7 100644 --- a/recipes/libs/pcre/recipe.toml +++ b/recipes/libs/pcre/recipe.toml @@ -2,7 +2,6 @@ tar = "https://mirrors.gigenet.com/OSDN//sfnet/p/pc/pcre/pcre/8.42/pcre-8.42.tar.gz" blake3 = "12d515ba12a816994def6b1e7196b5783fd2cfe495733a9167fa4d71dbe10248" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ patches = [ diff --git a/recipes/libs/pcre2/recipe.toml b/recipes/libs/pcre2/recipe.toml index 09c4d86b0..f34ce5aef 100644 --- a/recipes/libs/pcre2/recipe.toml +++ b/recipes/libs/pcre2/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.45/pcre2-10.45.tar.bz2" blake3 = "aea544846f9a03c1ec62c9f8d1c9a4187cc3cce557e53e6876eb6a58c7cdd9fe" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/unibilium/recipe.toml b/recipes/libs/unibilium/recipe.toml index 5252c1d3c..9ce4c46cd 100644 --- a/recipes/libs/unibilium/recipe.toml +++ b/recipes/libs/unibilium/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/neovim/unibilium/archive/refs/tags/v2.1.2.tar.gz" blake3 = "856a7593a412942f4716bb55bfdd225f3ce92cb013b9d4a44693255f0570b1c7" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/libs/utf8proc/recipe.toml b/recipes/libs/utf8proc/recipe.toml index c34c12f19..417c53cdc 100644 --- a/recipes/libs/utf8proc/recipe.toml +++ b/recipes/libs/utf8proc/recipe.toml @@ -3,21 +3,4 @@ tar = "https://github.com/JuliaStrings/utf8proc/archive/refs/tags/v2.10.0.tar.gz blake3 = "6f675db5d1ae55ad0825351ba9c58a5b5c24c862f559cc7bfed1cb63c1185594" [build] -template = "custom" -script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE="cmake" -COOKBOOK_CONFIGURE_FLAGS=( - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_CROSSCOMPILING=True - -DCMAKE_CXX_COMPILER="${TARGET}-g++" - -DCMAKE_C_COMPILER="${TARGET}-gcc" - -DCMAKE_INSTALL_PREFIX="/" - -DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}" - -DCMAKE_SYSTEM_NAME=Generic - -DCMAKE_SYSTEM_PROCESSOR="$(echo "${TARGET}" | cut -d - -f1)" - -DCMAKE_VERBOSE_MAKEFILE=On -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" +template = "cmake" diff --git a/recipes/math/calculator/recipe.toml b/recipes/math/orbcalculator/recipe.toml similarity index 100% rename from recipes/math/calculator/recipe.toml rename to recipes/math/orbcalculator/recipe.toml diff --git a/recipes/net/curl/recipe.toml b/recipes/net/curl/recipe.toml deleted file mode 100644 index 68436ab3d..000000000 --- a/recipes/net/curl/recipe.toml +++ /dev/null @@ -1,39 +0,0 @@ -[source] -git = "https://gitlab.redox-os.org/redox-os/curl.git" -branch = "redox-8.6" -upstream = "https://github.com/curl/curl.git" - -[build] -template = "custom" -dependencies = [ - #TODO: git fails to build when this is a dependency: "libpsl", - "nghttp2", - "openssl1", - "zlib" -] -script = """ -DYNAMIC_INIT -rsync -av --delete "${COOKBOOK_SOURCE}/" ./ -GNU_CONFIG_GET config.sub -DYNAMIC_INIT -autotools_recursive_regenerate -COOKBOOK_CONFIGURE="./configure" -COOKBOOK_CONFIGURE_FLAGS+=( - --disable-ftp - --disable-ipv6 - --disable-ntlm-wb - --disable-tftp - --disable-threaded-resolver - --with-ca-path=/etc/ssl/certs - --with-nghttp2 - --with-ssl - --with-zlib - --without-libpsl -) -cookbook_configure -""" - -[package] -dependencies = [ - "ca-certificates" -] diff --git a/recipes/net/download/curl/recipe.toml b/recipes/net/download/curl/recipe.toml new file mode 100644 index 000000000..46d939486 --- /dev/null +++ b/recipes/net/download/curl/recipe.toml @@ -0,0 +1,30 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/curl.git" +branch = "redox-8.6" +upstream = "https://github.com/curl/curl.git" + +[build] +template = "cmake" +dependencies = [ + #TODO: git fails to build when this is a dependency: "libpsl", + "nghttp2", + "openssl3", + "zlib", +] +cmakeflags = [ + "-DCURL_DISABLE_FTP=On", + "-DCURL_DISABLE_TFTP=On", + "-DENABLE_IPV6=Off", + "-DCURL_DISABLE_NTLM=On", + "-DENABLE_THREADED_RESOLVER=Off", + "-DCURL_CA_PATH=/etc/ssl/certs", + "-DUSE_NGHTTP2=On", + "-DCURL_USE_OPENSSL=On", + "-DUSE_ZLIB=On", + "-DCURL_USE_LIBPSL=Off", +] + +[package] +dependencies = [ + "ca-certificates" +] diff --git a/recipes/net/download/wget/recipe.toml b/recipes/net/download/wget/recipe.toml index fb2d6ab4b..06c00e4c1 100644 --- a/recipes/net/download/wget/recipe.toml +++ b/recipes/net/download/wget/recipe.toml @@ -2,7 +2,7 @@ tar = "https://ftp.gnu.org/gnu/wget/wget-1.21.4.tar.gz" [build] dependencies = [ - "openssl1", + "openssl3", ] template = "configure" configureflags = [ diff --git a/recipes/net/nginx/recipe.toml b/recipes/net/nginx/recipe.toml index b74f659cb..defe60154 100644 --- a/recipes/net/nginx/recipe.toml +++ b/recipes/net/nginx/recipe.toml @@ -9,7 +9,7 @@ patches = [ template = "custom" dependencies = [ "pcre", - "openssl1", + "openssl3", "zlib", ] script = """ @@ -19,7 +19,7 @@ ARCH="${TARGET%%-*}" COOKBOOK_CONFIGURE_FLAGS=( --crossbuild=Redox:$ARCH --with-cc="$CC" - --with-cc-opt="$CFLAGS" + --with-cc-opt="$CFLAGS $CPPFLAGS" --with-ld-opt="$LDFLAGS" --sbin-path=/usr/bin/nginx --modules-path=/usr/lib/nginx/modules @@ -46,6 +46,7 @@ COOKBOOK_CONFIGURE_FLAGS=( --with-threads --with-http_ssl_module --with-http_v2_module + --with-http_v3_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module diff --git a/recipes/net/nginx/redox.patch b/recipes/net/nginx/redox.patch index bc5eee54b..f05e0c839 100644 --- a/recipes/net/nginx/redox.patch +++ b/recipes/net/nginx/redox.patch @@ -1,3 +1,29 @@ +diff -ruwN source/auto/cc/clang source-new/auto/cc/clang +--- source/auto/cc/clang 2025-04-23 18:48:54.000000000 +0700 ++++ source-new/auto/cc/clang 2026-02-24 07:55:59.340299231 +0700 +@@ -88,9 +88,6 @@ + CFLAGS="$CFLAGS -Wno-deprecated-declarations" + fi + +-# stop on warning +-CFLAGS="$CFLAGS -Werror" +- + # debug + CFLAGS="$CFLAGS -g" + +diff -ruwN source/auto/cc/gcc source-new/auto/cc/gcc +--- source/auto/cc/gcc 2025-04-23 18:48:54.000000000 +0700 ++++ source-new/auto/cc/gcc 2026-02-24 07:56:03.156908192 +0700 +@@ -165,9 +165,6 @@ + esac + + +-# stop on warning +-CFLAGS="$CFLAGS -Werror" +- + # debug + CFLAGS="$CFLAGS -g" + diff -ruwN source/auto/feature source-new/auto/feature --- source/auto/feature 2025-04-23 18:48:54.000000000 +0700 +++ source-new/auto/feature 2025-09-16 02:44:58.617532926 +0700 diff --git a/recipes/net/openssh/recipe.toml b/recipes/net/openssh/recipe.toml index b1b643580..a348a732a 100644 --- a/recipes/net/openssh/recipe.toml +++ b/recipes/net/openssh/recipe.toml @@ -18,6 +18,7 @@ COOKBOOK_CONFIGURE_FLAGS+=( --disable-strip --sysconfdir=/etc/ssh ) +export CFLAGS+=" -DSYSTEMD_NOTIFY=1" cookbook_configure mv "${COOKBOOK_STAGE}"/usr/sbin/sshd "${COOKBOOK_STAGE}"/usr/bin/sshd rmdir "${COOKBOOK_STAGE}"/usr/sbin diff --git a/recipes/other/cookbook/recipe.toml b/recipes/other/cookbook/recipe.toml index a367acbb2..44dfa7cf6 100644 --- a/recipes/other/cookbook/recipe.toml +++ b/recipes/other/cookbook/recipe.toml @@ -11,19 +11,21 @@ cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/cookbook" """ [package] +# Dependencies below does not include Rust / GCC +# because it will be downloaded as prefix binary. dependencies = [ - # TODO: When rust working, use this - # "dev-essential", "autoconf", "automake", - "gcc13", - "gcc13.cxx", "git", + "cbindgen", + "gnu-binutils", + "gnu-grep", "gnu-make", - "libtool", - "patch", + "installer", + "nasm", "pkg-config", "pkgar", + "rustpython", "sed", "wget", ] diff --git a/recipes/shells/bash/etc/bash.bashrc b/recipes/shells/bash/etc/bash.bashrc new file mode 100644 index 000000000..0f84bea4d --- /dev/null +++ b/recipes/shells/bash/etc/bash.bashrc @@ -0,0 +1,39 @@ +# System-wide .bashrc file for interactive bash(1) shells. + +# To enable the settings / commands in this file for login shells as well, +# this file has to be sourced in /etc/profile. + +# If not running interactively, don't do anything +[ -z "$PS1" ] && return + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# TODO: redox_chroot +if [ -z "${redox_chroot:-}" ] && [ -r /etc/redox_chroot ]; then + redox_chroot=$(cat /etc/redox_chroot) +fi + +# set a fancy prompt (non-color, overwrite the one in /etc/profile) +# but only if not SUDOing and have SUDO_PS1 set; then assume smart user. +if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then + PS1='${redox_chroot:+($redox_chroot)}\u@\h:\w\$ ' +fi + +# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default. +# If this is an xterm set the title to user@host:dir +#case "$TERM" in +#xterm*|rxvt*) +# PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"' +# ;; +#*) +# ;; +#esac + +# enable bash completion in interactive shells +#if ! shopt -oq posix; then +# if [ -f /etc/bash_completion ]; then +# . /etc/bash_completion +# fi +#fi diff --git a/recipes/shells/bash/etc/profile b/recipes/shells/bash/etc/profile new file mode 100644 index 000000000..7f85066c6 --- /dev/null +++ b/recipes/shells/bash/etc/profile @@ -0,0 +1,27 @@ +# /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) +# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). + +if [ "${PS1-}" ]; then + if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then + # The file bash.bashrc already sets the default PS1. + # PS1='\h:\w\$ ' + if [ -f /etc/bash.bashrc ]; then + . /etc/bash.bashrc + fi + else + if [ "$(id -u)" -eq 0 ]; then + PS1='# ' + else + PS1='$ ' + fi + fi +fi + +if [ -d /etc/profile.d ]; then + for i in /etc/profile.d/*.sh; do + if [ -r $i ]; then + . $i + fi + done + unset i +fi diff --git a/recipes/shells/bash/etc/skel/.bashrc b/recipes/shells/bash/etc/skel/.bashrc new file mode 100644 index 000000000..437837411 --- /dev/null +++ b/recipes/shells/bash/etc/skel/.bashrc @@ -0,0 +1,99 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${redox_chroot:+($redox_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${redox_chroot:+($redox_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# TODO +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +# alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi diff --git a/recipes/shells/bash/etc/skel/.profile b/recipes/shells/bash/etc/skel/.profile new file mode 100644 index 000000000..04df37bda --- /dev/null +++ b/recipes/shells/bash/etc/skel/.profile @@ -0,0 +1,25 @@ +# ~/.profile: executed by the command interpreter for login shells. +# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login +# exists. + +# the default umask is set in /etc/profile; for setting the umask +# for ssh logins, install and configure the libpam-umask package. +#umask 022 + +# if running bash +if [ -n "$BASH_VERSION" ]; then + # include .bashrc if it exists + if [ -f "$HOME/.bashrc" ]; then + . "$HOME/.bashrc" + fi +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/bin" ] ; then + PATH="$HOME/bin:$PATH" +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/.local/bin" ] ; then + PATH="$HOME/.local/bin:$PATH" +fi diff --git a/recipes/shells/bash/recipe.toml b/recipes/shells/bash/recipe.toml index 3f6e8b1c0..3bb164d2f 100644 --- a/recipes/shells/bash/recipe.toml +++ b/recipes/shells/bash/recipe.toml @@ -12,7 +12,7 @@ dependencies = [ "readline", ] script = """ -DYNAMIC_INIT +# compiled statically COOKBOOK_CONFIGURE_FLAGS+=( ac_cv_func_wcwidth=no # TODO: add more wc functions and remove this bash_cv_func_sigsetjmp=no @@ -23,4 +23,5 @@ COOKBOOK_CONFIGURE_FLAGS+=( COOKBOOK_MAKE_JOBS=1 # workaround for parallel make bugs cookbook_configure ln -s "bash" "${COOKBOOK_STAGE}/usr/bin/sh" +cp -r "${COOKBOOK_RECIPE}/etc" "${COOKBOOK_STAGE}/etc" """ diff --git a/recipes/shells/bash/redox.patch b/recipes/shells/bash/redox.patch index bc238aea7..125cb1f29 100644 --- a/recipes/shells/bash/redox.patch +++ b/recipes/shells/bash/redox.patch @@ -111,6 +111,22 @@ diff -ruwN source/include/posixwait.h source-new/include/posixwait.h # if !defined (WSTOPSIG) # define WSTOPSIG(s) ((s) >> 8) +diff --color -ruwN source/jobs.c source-new/jobs.c +--- source/jobs.c 2022-12-14 00:09:02.000000000 +0700 ++++ source-new/jobs.c 2026-02-09 23:29:28.811403291 +0700 +@@ -4417,9 +4417,11 @@ + { + shell_pgrp = getpid (); + setpgid (0, shell_pgrp); ++ } ++ ++ // shell pgrep is not set automatically on Redox + if (shell_tty != -1) + tcsetpgrp (shell_tty, shell_pgrp); +- } + + tty_sigs = 0; + while ((terminal_pgrp = tcgetpgrp (shell_tty)) != -1) diff -ruwN source/lib/readline/input.c source-new/lib/readline/input.c --- source/lib/readline/input.c 2022-04-09 02:43:24.000000000 +0700 +++ source-new/lib/readline/input.c 2025-09-01 04:36:35.276926707 +0700 diff --git a/recipes/shells/nushell/recipe.toml b/recipes/shells/nushell/recipe.toml index e2559c668..db22b6c4b 100644 --- a/recipes/shells/nushell/recipe.toml +++ b/recipes/shells/nushell/recipe.toml @@ -1,11 +1,8 @@ -#TODO: build fails to link, we need the following in relibc -# - getgrgid_r -# - getgrouplist -# Additionally, openssl fails to link fprintf and sscanf - +#TODO: Reduce crate patches [source] -git = "https://github.com/jackpot51/nushell.git" -branch = "redox" +git = "https://github.com/nushell/nushell" +rev = "172a070a4bbeff15a289813bc73d4628a3032210" +patches = ["redox.patch"] [build] dependencies = [ @@ -13,8 +10,7 @@ dependencies = [ ] template = "custom" script = """ +DYNAMIC_INIT export OPENSSL_DIR="${COOKBOOK_SYSROOT}" -export OPENSSL_STATIC="true" cookbook_cargo """ - diff --git a/recipes/shells/nushell/redox.patch b/recipes/shells/nushell/redox.patch new file mode 100644 index 000000000..5e33b030f --- /dev/null +++ b/recipes/shells/nushell/redox.patch @@ -0,0 +1,707 @@ +diff --git a/Cargo.lock b/Cargo.lock +index 96aeafeae..01486a61d 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -180,14 +180,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "df099ccb16cd014ff054ac1bf392c67feeef57164b05c42f037cd40f5d4357f4" + dependencies = [ + "clipboard-win", +- "core-graphics", +- "image", + "log", +- "objc2 0.5.2", ++ "objc2", + "objc2-app-kit", + "objc2-foundation", + "parking_lot", +- "windows-sys 0.48.0", + "wl-clipboard-rs", + "x11rb", + ] +@@ -884,16 +881,7 @@ version = "0.5.1" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" + dependencies = [ +- "objc2 0.5.2", +-] +- +-[[package]] +-name = "block2" +-version = "0.6.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +-dependencies = [ +- "objc2 0.6.3", ++ "objc2", + ] + + [[package]] +@@ -987,12 +975,6 @@ version = "1.5.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +-[[package]] +-name = "byteorder-lite" +-version = "0.1.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" +- + [[package]] + name = "bytes" + version = "1.11.1" +@@ -1438,30 +1420,6 @@ version = "0.8.7" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +-[[package]] +-name = "core-graphics" +-version = "0.23.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +-dependencies = [ +- "bitflags 1.3.2", +- "core-foundation 0.9.4", +- "core-graphics-types", +- "foreign-types 0.5.0", +- "libc", +-] +- +-[[package]] +-name = "core-graphics-types" +-version = "0.1.3" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +-dependencies = [ +- "bitflags 1.3.2", +- "core-foundation 0.9.4", +- "libc", +-] +- + [[package]] + name = "cpufeatures" + version = "0.2.17" +@@ -1639,17 +1597,6 @@ dependencies = [ + "memchr", + ] + +-[[package]] +-name = "ctrlc" +-version = "3.5.1" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" +-dependencies = [ +- "dispatch2", +- "nix 0.30.1", +- "windows-sys 0.61.0", +-] +- + [[package]] + name = "curl" + version = "0.4.47" +@@ -1881,18 +1828,6 @@ dependencies = [ + "windows-sys 0.61.0", + ] + +-[[package]] +-name = "dispatch2" +-version = "0.3.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +-dependencies = [ +- "bitflags 2.10.0", +- "block2 0.6.2", +- "libc", +- "objc2 0.6.3", +-] +- + [[package]] + name = "displaydoc" + version = "0.2.5" +@@ -2016,7 +1951,6 @@ version = "0.11.1" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "e49905ece098e793ca21a019598e9efc9a66459ad1d76bd7619e771a42dae2fc" + dependencies = [ +- "arboard", + "crossterm 0.29.0", + "edit", + "edtui-jagged", +@@ -2228,26 +2162,6 @@ version = "2.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +-[[package]] +-name = "fax" +-version = "0.2.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" +-dependencies = [ +- "fax_derive", +-] +- +-[[package]] +-name = "fax_derive" +-version = "0.2.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" +-dependencies = [ +- "proc-macro2", +- "quote", +- "syn 2.0.114", +-] +- + [[package]] + name = "fd-lock" + version = "4.0.2" +@@ -2259,15 +2173,6 @@ dependencies = [ + "windows-sys 0.52.0", + ] + +-[[package]] +-name = "fdeflate" +-version = "0.3.7" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +-dependencies = [ +- "simd-adler32", +-] +- + [[package]] + name = "file-id" + version = "0.2.2" +@@ -2408,28 +2313,7 @@ version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" + dependencies = [ +- "foreign-types-shared 0.1.1", +-] +- +-[[package]] +-name = "foreign-types" +-version = "0.5.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +-dependencies = [ +- "foreign-types-macros", +- "foreign-types-shared 0.3.1", +-] +- +-[[package]] +-name = "foreign-types-macros" +-version = "0.2.3" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +-dependencies = [ +- "proc-macro2", +- "quote", +- "syn 2.0.114", ++ "foreign-types-shared", + ] + + [[package]] +@@ -2438,12 +2322,6 @@ version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +-[[package]] +-name = "foreign-types-shared" +-version = "0.3.1" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" +- + [[package]] + name = "form_urlencoded" + version = "1.2.2" +@@ -2711,17 +2589,6 @@ dependencies = [ + "tracing", + ] + +-[[package]] +-name = "half" +-version = "2.7.1" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +-dependencies = [ +- "cfg-if", +- "crunchy", +- "zerocopy 0.8.34", +-] +- + [[package]] + name = "halfbrown" + version = "0.4.0" +@@ -3154,20 +3021,6 @@ dependencies = [ + "icu_properties", + ] + +-[[package]] +-name = "image" +-version = "0.25.9" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a" +-dependencies = [ +- "bytemuck", +- "byteorder-lite", +- "moxcms", +- "num-traits", +- "png", +- "tiff", +-] +- + [[package]] + name = "indexmap" + version = "2.13.0" +@@ -3932,7 +3785,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" + dependencies = [ + "adler2", +- "simd-adler32", + ] + + [[package]] +@@ -3982,16 +3834,6 @@ dependencies = [ + "tokio", + ] + +-[[package]] +-name = "moxcms" +-version = "0.7.11" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97" +-dependencies = [ +- "num-traits", +- "pxfm", +-] +- + [[package]] + name = "multipart-rs" + version = "0.1.13" +@@ -4119,7 +3961,6 @@ version = "0.110.1" + dependencies = [ + "assert_cmd", + "crossterm 0.29.0", +- "ctrlc", + "dirs", + "fancy-regex", + "lexopt", +@@ -5043,15 +4884,6 @@ dependencies = [ + "objc2-encode", + ] + +-[[package]] +-name = "objc2" +-version = "0.6.3" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +-dependencies = [ +- "objc2-encode", +-] +- + [[package]] + name = "objc2-app-kit" + version = "0.2.2" +@@ -5059,9 +4891,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" + dependencies = [ + "bitflags 2.10.0", +- "block2 0.5.1", ++ "block2", + "libc", +- "objc2 0.5.2", ++ "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", +@@ -5075,8 +4907,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" + dependencies = [ + "bitflags 2.10.0", +- "block2 0.5.1", +- "objc2 0.5.2", ++ "block2", ++ "objc2", + "objc2-foundation", + ] + +@@ -5095,8 +4927,8 @@ version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" + dependencies = [ +- "block2 0.5.1", +- "objc2 0.5.2", ++ "block2", ++ "objc2", + "objc2-foundation", + "objc2-metal", + ] +@@ -5114,9 +4946,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" + dependencies = [ + "bitflags 2.10.0", +- "block2 0.5.1", ++ "block2", + "libc", +- "objc2 0.5.2", ++ "objc2", + ] + + [[package]] +@@ -5136,8 +4968,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" + dependencies = [ + "bitflags 2.10.0", +- "block2 0.5.1", +- "objc2 0.5.2", ++ "block2", ++ "objc2", + "objc2-foundation", + ] + +@@ -5148,8 +4980,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" + dependencies = [ + "bitflags 2.10.0", +- "block2 0.5.1", +- "objc2 0.5.2", ++ "block2", ++ "objc2", + "objc2-foundation", + "objc2-metal", + ] +@@ -5241,7 +5073,7 @@ checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" + dependencies = [ + "bitflags 2.10.0", + "cfg-if", +- "foreign-types 0.3.2", ++ "foreign-types", + "libc", + "once_cell", + "openssl-macros", +@@ -5638,19 +5470,6 @@ dependencies = [ + "time", + ] + +-[[package]] +-name = "png" +-version = "0.18.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" +-dependencies = [ +- "bitflags 2.10.0", +- "crc32fast", +- "fdeflate", +- "flate2", +- "miniz_oxide", +-] +- + [[package]] + name = "polars" + version = "0.52.0" +@@ -6392,27 +6211,12 @@ dependencies = [ + "thiserror 1.0.69", + ] + +-[[package]] +-name = "pxfm" +-version = "0.1.27" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8" +-dependencies = [ +- "num-traits", +-] +- + [[package]] + name = "quick-error" + version = "1.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +-[[package]] +-name = "quick-error" +-version = "2.0.1" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" +- + [[package]] + name = "quick-xml" + version = "0.36.2" +@@ -7948,7 +7752,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "36e39da5d30887b5690e29de4c5ebb8ddff64ebd9933f98a01daaa4fd11b36ea" + dependencies = [ + "peresil", +- "quick-error 1.2.3", ++ "quick-error", + "sxd-document", + ] + +@@ -8169,20 +7973,6 @@ dependencies = [ + "once_cell", + ] + +-[[package]] +-name = "tiff" +-version = "0.10.3" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f" +-dependencies = [ +- "fax", +- "flate2", +- "half", +- "quick-error 2.0.1", +- "weezl", +- "zune-jpeg", +-] +- + [[package]] + name = "time" + version = "0.3.47" +@@ -8510,7 +8300,7 @@ dependencies = [ + "chrono", + "libc", + "log", +- "objc2 0.5.2", ++ "objc2", + "objc2-foundation", + "once_cell", + "percent-encoding", +@@ -9353,12 +9143,6 @@ dependencies = [ + "rustls-pki-types", + ] + +-[[package]] +-name = "weezl" +-version = "0.1.12" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +- + [[package]] + name = "which" + version = "4.4.2" +@@ -10242,18 +10026,3 @@ dependencies = [ + "cc", + "pkg-config", + ] +- +-[[package]] +-name = "zune-core" +-version = "0.4.12" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" +- +-[[package]] +-name = "zune-jpeg" +-version = "0.4.21" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" +-dependencies = [ +- "zune-core", +-] +diff --git a/Cargo.toml b/Cargo.toml +index 1ec173b6d..4c9293791 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -89,7 +89,6 @@ chrono-tz = "0.10" + crossbeam-channel = "0.5.15" + crossterm = "0.29.0" + csv = "1.4" +-ctrlc = "3.5" + devicons = "0.6.12" + dialoguer = { default-features = false, version = "0.12" } + digest = { default-features = false, version = "0.10" } +@@ -248,7 +247,6 @@ nu-mcp = { path = "./crates/nu-mcp", version = "0.110.1", optional = true } + reedline = { workspace = true, features = ["bashisms"] } + + crossterm = { workspace = true } +-ctrlc = { workspace = true } + dirs = { workspace = true } + log = { workspace = true } + lexopt = { workspace = true } +diff --git a/crates/nu-command/src/default_context.rs b/crates/nu-command/src/default_context.rs +index fcc7fa3f9..a80237429 100644 +--- a/crates/nu-command/src/default_context.rs ++++ b/crates/nu-command/src/default_context.rs +@@ -271,9 +271,6 @@ pub fn add_shell_command_context(mut engine_state: EngineState) -> EngineState { + Whoami, + }; + +- #[cfg(all(unix, feature = "os"))] +- bind_command! { ULimit }; +- + #[cfg(all(unix, feature = "os"))] + bind_command! { UMask }; + +diff --git a/crates/nu-command/src/filesystem/ls.rs b/crates/nu-command/src/filesystem/ls.rs +index 554ec0fd9..7aae4bdc3 100644 +--- a/crates/nu-command/src/filesystem/ls.rs ++++ b/crates/nu-command/src/filesystem/ls.rs +@@ -773,20 +773,12 @@ pub(crate) fn dir_entry_dict( + + record.push( + "user", +- if let Some(user) = users::get_user_by_uid(md.uid().into()) { +- Value::string(user.name, span) +- } else { +- Value::int(md.uid().into(), span) +- }, ++ Value::int(md.uid().into(), span) + ); + + record.push( + "group", +- if let Some(group) = users::get_group_by_gid(md.gid().into()) { +- Value::string(group.name, span) +- } else { +- Value::int(md.gid().into(), span) +- }, ++ Value::int(md.gid().into(), span) + ); + } + } +diff --git a/crates/nu-command/src/filesystem/ucp.rs b/crates/nu-command/src/filesystem/ucp.rs +index 2198911e6..b193dab2c 100644 +--- a/crates/nu-command/src/filesystem/ucp.rs ++++ b/crates/nu-command/src/filesystem/ucp.rs +@@ -320,7 +320,8 @@ fn make_attributes(preserve: Option) -> Result) -> Result) -> PermissionResult { + + #[cfg(unix)] + pub mod users { +- use nix::unistd::{Gid, Group, Uid, User}; +- +- pub fn get_user_by_uid(uid: Uid) -> Option { +- User::from_uid(uid).ok().flatten() +- } +- +- pub fn get_group_by_gid(gid: Gid) -> Option { +- Group::from_gid(gid).ok().flatten() +- } ++ use nix::unistd::{Gid, Uid}; + + pub fn get_current_uid() -> Uid { + Uid::current() +@@ -60,7 +52,7 @@ pub mod users { + + #[cfg(not(any(target_os = "linux", target_os = "freebsd", target_os = "android")))] + pub fn get_current_username() -> Option { +- get_user_by_uid(get_current_uid()).map(|user| user.name) ++ None + } + + #[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "android"))] +@@ -127,22 +119,7 @@ pub mod users { + nix::libc::getgrouplist(name.as_ptr(), gid.as_raw(), buff.as_mut_ptr(), &mut count) + }; + +- if res < 0 { +- None +- } else { +- buff.truncate(count as usize); +- buff.sort_unstable(); +- buff.dedup(); +- // allow trivial cast: on macos i is i32, on linux it's already gid_t +- #[allow(trivial_numeric_casts)] +- Some( +- buff.into_iter() +- .map(|id| Gid::from_raw(id as gid_t)) +- .filter_map(get_group_by_gid) +- .map(|group| group.gid) +- .collect(), +- ) +- } ++ None + } + } + +diff --git a/rust-toolchain.toml b/rust-toolchain.toml +deleted file mode 100644 +index 37ca9dfd1..000000000 +--- a/rust-toolchain.toml ++++ /dev/null +@@ -1,17 +0,0 @@ +-# So, you want to update the Rust toolchain... +-# The key is making sure all our dependencies support the version of Rust we're using, +-# and that nushell compiles on all the platforms tested in our CI. +- +-# Here's some documentation on how to use this file: +-# https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file +- +-[toolchain] +-# The default profile includes rustc, rust-std, cargo, rust-docs, rustfmt and clippy. +-# https://rust-lang.github.io/rustup/concepts/profiles.html +-profile = "default" +-# The current plan is to be 2 releases behind the latest stable release. So, if the +-# latest stable release is 1.72.0, the channel should be 1.70.0. We want to do this +-# so that we give repo maintainers and package managers a chance to update to a more +-# recent version of rust. However, if there is a "cool new feature" that we want to +-# use in nushell, we may opt to use the bleeding edge stable version of rust. +-channel = "1.91.1" +diff --git a/src/signals.rs b/src/signals.rs +index c3a4b8379..d5be1009c 100644 +--- a/src/signals.rs ++++ b/src/signals.rs +@@ -25,10 +25,4 @@ pub(crate) fn ctrlc_protection(engine_state: &mut EngineState) { + .expect("Failed to register interrupt signal handler"); + + engine_state.signal_handlers = Some(signal_handlers.clone()); +- +- ctrlc::set_handler(move || { +- interrupt.store(true, Ordering::Relaxed); +- signal_handlers.run(SignalAction::Interrupt); +- }) +- .expect("Error setting Ctrl-C handler"); + } diff --git a/recipes/terminal/bash-completion/recipe.toml b/recipes/terminal/bash-completion/recipe.toml new file mode 100644 index 000000000..c9a481ed6 --- /dev/null +++ b/recipes/terminal/bash-completion/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://github.com/scop/bash-completion/releases/download/2.17.0/bash-completion-2.17.0.tar.xz" +b3sum = "5d6725f3baea16467f9a360dde24fb1b9ed1cd3c4e9eb7a3b959d94864a98429" + +[build] +template = "configure" +configureflags = [ + "--prefix=/", +] + +[package] +dependencies = [ + "sed", +] diff --git a/recipes/wip/terminal/pls/recipe.toml b/recipes/terminal/pls/recipe.toml similarity index 71% rename from recipes/wip/terminal/pls/recipe.toml rename to recipes/terminal/pls/recipe.toml index db04dd571..62ce57d05 100644 --- a/recipes/wip/terminal/pls/recipe.toml +++ b/recipes/terminal/pls/recipe.toml @@ -1,4 +1,3 @@ -#TODO not compiled or tested [source] git = "https://github.com/pls-rs/pls" [build] diff --git a/recipes/wip/shells/zoxide/recipe.toml b/recipes/terminal/zoxide/recipe.toml similarity index 73% rename from recipes/wip/shells/zoxide/recipe.toml rename to recipes/terminal/zoxide/recipe.toml index 3b3f03333..994d19496 100644 --- a/recipes/wip/shells/zoxide/recipe.toml +++ b/recipes/terminal/zoxide/recipe.toml @@ -1,5 +1,5 @@ -#TODO compiled but not tested [source] git = "https://github.com/ajeetdsouza/zoxide" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/tests/acid-bins/recipe.toml b/recipes/tests/acid-bins/recipe.toml new file mode 100644 index 000000000..42190ca8b --- /dev/null +++ b/recipes/tests/acid-bins/recipe.toml @@ -0,0 +1,4 @@ +[source] +same_as = "../acid" +[build] +template = "cargo" diff --git a/recipes/tests/acid/recipe.toml b/recipes/tests/acid/recipe.toml index 1f1262905..831335255 100644 --- a/recipes/tests/acid/recipe.toml +++ b/recipes/tests/acid/recipe.toml @@ -1,5 +1,13 @@ +# Due to necessary write permission for compilation the filesystem path of source code installation is an exception +# where the package manager can't switch between system-wide and user paths [source] git = "https://gitlab.redox-os.org/redox-os/acid.git" - +shallow_clone = true [build] -template = "cargo" +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/home/user/acid" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/acid" +""" +[package] +dependencies = ["rust"] diff --git a/recipes/tests/benchmarks/recipe.toml b/recipes/tests/benchmarks/recipe.toml index 17e613527..6bd59dbab 100644 --- a/recipes/tests/benchmarks/recipe.toml +++ b/recipes/tests/benchmarks/recipe.toml @@ -7,3 +7,8 @@ script = """ mkdir -pv "${COOKBOOK_STAGE}"/usr/share/benchmarks cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/benchmarks """ + +[package] +dependencies = [ + "iperf3" +] diff --git a/recipes/tests/hello-redox/recipe.toml b/recipes/tests/hello-redox/recipe.toml index 6801e8339..2a526f917 100644 --- a/recipes/tests/hello-redox/recipe.toml +++ b/recipes/tests/hello-redox/recipe.toml @@ -1,3 +1,5 @@ +# Due to necessary write permission for compilation the filesystem path of source code installation is an exception +# where the package manager can't switch between system-wide and user paths [build] template = "custom" script = """ diff --git a/recipes/tests/iperf3/recipe.toml b/recipes/tests/iperf3/recipe.toml new file mode 100644 index 000000000..d126ce350 --- /dev/null +++ b/recipes/tests/iperf3/recipe.toml @@ -0,0 +1,5 @@ +[source] +tar = "https://downloads.es.net/pub/iperf/iperf-3.20.tar.gz" + +[build] +template = "configure" diff --git a/recipes/tests/openposixtestsuite/recipe.toml b/recipes/tests/openposixtestsuite/recipe.toml index 3ff2cb7e7..e4c3df4a6 100644 --- a/recipes/tests/openposixtestsuite/recipe.toml +++ b/recipes/tests/openposixtestsuite/recipe.toml @@ -1,3 +1,5 @@ +# Due to necessary write permission for compilation the filesystem path of source code installation is an exception +# where the package manager can't switch between system-wide and user paths [source] git = "https://gitlab.redox-os.org/redox-os/openposixtestsuite.git" branch = "redox" @@ -5,8 +7,8 @@ branch = "redox" [build] template = "custom" script = """ -mkdir -pv "${COOKBOOK_STAGE}/share/openposixtestsuite" -cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/share/openposixtestsuite" +mkdir -pv "${COOKBOOK_STAGE}/home/user/openposixtestsuite" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/openposixtestsuite" """ [package] diff --git a/recipes/tests/os-test-bins/recipe.toml b/recipes/tests/os-test-bins/recipe.toml new file mode 100644 index 000000000..e0a770916 --- /dev/null +++ b/recipes/tests/os-test-bins/recipe.toml @@ -0,0 +1,89 @@ +[source] +same_as = "../os-test" + +[build] +dependencies = [ + "gettext", + "libarchive", + "libiconv", +] +template = "custom" +script = """ +DYNAMIC_INIT + +# Copy source to /usr/share/os-test +mkdir -p "${COOKBOOK_STAGE}/usr/share/os-test" +cd "${COOKBOOK_STAGE}/usr/share/os-test" +rsync -a "${COOKBOOK_SOURCE}/" "./" + +# Pre-compile tests for Redox +make OS=Redox \ + CC="${CC_WRAPPER} ${GNU_TARGET}-gcc" \ + CFLAGS="-I${COOKBOOK_SYSROOT}/include" \ + CPPFLAGS="-I${COOKBOOK_SYSROOT}/include" \ + LDFLAGS="-L${COOKBOOK_SYSROOT}/lib" \ + EXTRA_LDFLAGS= \ + CC_FOR_BUILD="${CC_WRAPPER} cc" \ + CFLAGS_FOR_BUILD= \ + CPPFLAGS_FOR_BUILD= \ + LDFLAGS_FOR_BUILD= \ + -j "${COOKBOOK_MAKE_JOBS}" \ + all + +skips=( + # These tests hang + basic/poll/poll + basic/pthread/pthread_barrierattr_setpshared + basic/pthread/pthread_cancel + basic/pthread/pthread_cleanup_pop + basic/pthread/pthread_cleanup_push + basic/pthread/pthread_condattr_setpshared + basic/pthread/pthread_mutex_consistent + basic/pthread/pthread_rwlock_timedrdlock + basic/pthread/pthread_rwlock_timedwrlock + basic/pthread/pthread_setcanceltype + basic/pthread/pthread_testcancel + basic/sys_select/select + basic/sys_time/select + basic/sys_wait/waitpid + signal/ppoll-block-sleep-raise-write + signal/ppoll-block-sleep-write-raise +) + +for skip in "${skips[@]}" +do + mkdir -p out.known/redox/"$(dirname "${skip}")" + echo "skipped" > out.known/redox/"${skip}.out" +done + +cp -t out -R out.known/redox + +# Create runner script +mkdir -p "${COOKBOOK_STAGE}/usr/bin" +cat > "${COOKBOOK_STAGE}/usr/bin/os-test-runner" < out.known/${os}/"${skip}.out" +done + +cp -t out -R out.known/${os} + +postinstall () { +make OS=${OS} CC_FOR_BUILD="${CC_WRAPPER} cc" \ + CFLAGS_FOR_BUILD= CPPFLAGS_FOR_BUILD= \ + LDFLAGS_FOR_BUILD= html json jsonl + + mkdir -p ${COOKBOOK_STAGE}/share/os-test + cp -a out ${COOKBOOK_STAGE}/share/os-test/out + cp -a html ${COOKBOOK_STAGE}/share/os-test/html + cp -a os-test.json ${COOKBOOK_STAGE}/share/os-test/os-test.json + cp -a os-test.jsonl ${COOKBOOK_STAGE}/share/os-test/os-test.jsonl +} + +if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then + make test + postinstall +else + # bash: gnu-make crashes randomly but can continue + # issues with multi-core and make jobs + # https://gitlab.redox-os.org/redox-os/relibc/-/issues/240 + # https://gitlab.redox-os.org/redox-os/redox/-/issues/1753 + export REDOXER_QEMU_ARGS="-smp 1" + # make: jobs doesn't work yet + redoxer exec --folder . --folder "${COOKBOOK_SYSROOT}/usr/:/usr" --artifact out:/root/out \ + bash -c "until make test; do echo retrying; done" + postinstall +fi +""" diff --git a/recipes/tests/os-test/recipe.toml b/recipes/tests/os-test/recipe.toml index 9b0d02354..f1de7947c 100644 --- a/recipes/tests/os-test/recipe.toml +++ b/recipes/tests/os-test/recipe.toml @@ -1,3 +1,5 @@ +# Due to necessary write permission for compilation the filesystem path of source code installation is an exception +# where the package manager can't switch between system-wide and user paths # TODO remove gnu-grep when extrautils grep supports grep -E [source] git = "https://gitlab.com/sortix/os-test" @@ -5,8 +7,8 @@ git = "https://gitlab.com/sortix/os-test" [build] template = "custom" script = """ -mkdir -pv "${COOKBOOK_STAGE}/share/os-test" -cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/share/os-test" +mkdir -pv "${COOKBOOK_STAGE}/home/user/os-test" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/os-test" """ [package] diff --git a/recipes/tests/redox-posix-tests/recipe.toml b/recipes/tests/redox-posix-tests/recipe.toml index dae4b48cc..74f2e46f0 100644 --- a/recipes/tests/redox-posix-tests/recipe.toml +++ b/recipes/tests/redox-posix-tests/recipe.toml @@ -5,8 +5,8 @@ git = "https://gitlab.redox-os.org/redox-os/redox-posix-tests.git" [build] template = "custom" script = """ -mkdir -pv "${COOKBOOK_STAGE}/share/redox-posix-tests" -cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/share/redox-posix-tests" +mkdir -pv "${COOKBOOK_STAGE}/home/user/redox-posix-tests" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/redox-posix-tests" """ [package] diff --git a/recipes/tests/relibc-tests-bins/recipe.toml b/recipes/tests/relibc-tests-bins/recipe.toml new file mode 100644 index 000000000..1d3d80bf2 --- /dev/null +++ b/recipes/tests/relibc-tests-bins/recipe.toml @@ -0,0 +1,45 @@ +[source] +same_as = "../../core/relibc" + +[build] +template = "custom" +script = """ +PACKAGE_PATH="tests" cookbook_cargo + +DYNAMIC_INIT +SRC=${COOKBOOK_SOURCE}/tests +EXPECTSRC=${SRC}/expected/bins_dynamic +DST=${COOKBOOK_STAGE}/root/relibc-tests +CFLAGS+=" -I${SRC}" +LDFLAGS+=" -Wl,-rpath=\\$ORIGIN" +pushd ${SRC} +if [ -z "$TESTBIN" ]; then +for file in **/*.c; do + filename="${file%.*}" + mkdir -p $(dirname $DST/$filename) + # adding "true" because compilation can fail + ${CC} ${CFLAGS} ${LDFLAGS} "$SRC/$file" -o "$DST/$filename" -Wall || true + if [[ -f "${EXPECTSRC}/$filename.stdout" ]]; then + echo "relibc-tests ./$filename" >> $DST/run.sh + else + echo "relibc-tests -s./$filename" >> $DST/run.sh + fi +done +rsync -a ${EXPECTSRC} ${DST}/expected +popd +else + mkdir -p $(dirname $DST/$TESTBIN) $(dirname $DST/expected/$TESTBIN) + ${CC} ${CFLAGS} ${LDFLAGS} "$SRC/$TESTBIN.c" -o "$DST/$TESTBIN" -Wall + if [[ -f "${EXPECTSRC}/$TESTBIN.stdout" ]]; then + cp ${EXPECTSRC}/$TESTBIN.{stdout,stderr} $(dirname $DST/expected/$TESTBIN) + fi +fi + +if [ -n "$TESTBIN" ]; then +if [[ -f "${EXPECTSRC}/$TESTBIN.stdout" ]]; then +"${COOKBOOK_REDOXER}" write-exec sh -c "cd /root/relibc-tests; relibc-tests ./$TESTBIN" +else +"${COOKBOOK_REDOXER}" write-exec sh -c "cd /root/relibc-tests; relibc-tests -s./$TESTBIN" +fi +fi +""" diff --git a/recipes/tests/relibc-tests/recipe.toml b/recipes/tests/relibc-tests/recipe.toml index fa0acf928..99531ee1a 100644 --- a/recipes/tests/relibc-tests/recipe.toml +++ b/recipes/tests/relibc-tests/recipe.toml @@ -1,15 +1,14 @@ +# Due to necessary write permission for compilation the filesystem path of source code installation is an exception +# where the package manager can't switch between system-wide and user paths [source] same_as = "../../core/relibc" [build] template = "custom" script = """ -rsync -av --delete "${COOKBOOK_SOURCE}/" ./ -pushd tests -export CARGO_TEST="${COOKBOOK_CARGO}" -export NATIVE_RELIBC=1 # to link against prefix -"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" all bins_verify/relibc-tests -popd -mkdir -pv "${COOKBOOK_STAGE}/share/relibc" -cp -rv "tests" "${COOKBOOK_STAGE}/share/relibc/tests" +mkdir -pv "${COOKBOOK_STAGE}/home/user/relibc-tests" +cp -rv "${COOKBOOK_SOURCE}/tests" "${COOKBOOK_STAGE}/home/user/relibc-tests" """ + +[package] +dependencies = ["gcc13"] diff --git a/recipes/tests/resist/recipe.toml b/recipes/tests/resist/recipe.toml deleted file mode 100644 index 7f0ecb237..000000000 --- a/recipes/tests/resist/recipe.toml +++ /dev/null @@ -1,10 +0,0 @@ -[source] -git = "https://gitlab.redox-os.org/redox-os/resist.git" - -[build] -template = "custom" -script = """ -cookbook_cargo -mkdir -pv "${COOKBOOK_STAGE}/share/resist" -cp -rv "${COOKBOOK_SOURCE}/"{posix,redox} "${COOKBOOK_STAGE}/share/resist" -""" diff --git a/recipes/tests/schedrs/recipe.toml b/recipes/tests/schedrs/recipe.toml new file mode 100644 index 000000000..d32d30da0 --- /dev/null +++ b/recipes/tests/schedrs/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/akshitgaur2005/schedrs.git" + +[build] +template = "cargo" diff --git a/recipes/tests/sysbench/recipe.toml b/recipes/tests/sysbench/recipe.toml new file mode 100644 index 000000000..3586df795 --- /dev/null +++ b/recipes/tests/sysbench/recipe.toml @@ -0,0 +1,24 @@ +[source] +git = "https://github.com/akopytov/sysbench.git" +patches = ["redox.patch"] +script = """ +DYNAMIC_INIT +autoreconf -fvi -I${COOKBOOK_HOST_SYSROOT}/share/aclocal +""" + +[build] +template = "custom" +dependencies = ["luajit"] + +script = """ +DYNAMIC_INIT +export CFLAGS+=" -I${COOKBOOK_SYSROOT}/include/luajit-2.1" +COOKBOOK_CONFIGURE_FLAGS+=( + --without-mysql + --with-system-luajit +) +cookbook_configure +""" + +[package] +dependencies = ["luajit"] diff --git a/recipes/tests/sysbench/redox.patch b/recipes/tests/sysbench/redox.patch new file mode 100644 index 000000000..40f0ce475 --- /dev/null +++ b/recipes/tests/sysbench/redox.patch @@ -0,0 +1,11 @@ +--- a/src/lua/internal/Makefile.am ++++ b/src/lua/internal/Makefile.am +@@ -26,7 +26,7 @@ SUFFIXES = .lua .lua.h + + .lua.lua.h: + @echo "Creating $@ from $<" +- @var=$$(echo $< | sed 's/\./_/g') && \ ++ @var=$$(basename $< | sed 's/\./_/g') && \ + ( echo "unsigned char $${var}[] =" && \ + sed -e 's/\\/\\\\/g' \ + -e 's/"/\\"/g' \ diff --git a/recipes/tools/cosmic-edit/recipe.toml b/recipes/tools/cosmic-edit/recipe.toml index bd7c4482f..bb8133289 100644 --- a/recipes/tools/cosmic-edit/recipe.toml +++ b/recipes/tools/cosmic-edit/recipe.toml @@ -4,10 +4,17 @@ branch = "master" [build] template = "custom" +dependencies = [ + "gettext", + "libxkbcommon", +] script = """ +DYNAMIC_INIT +export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr" cookbook_cargo --no-default-features -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/30_cosmic-edit" + +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/30_cosmic-edit" #TODO: install with just? APPID="com.system76.CosmicEdit" mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" diff --git a/recipes/tools/cosmic-files/recipe.toml b/recipes/tools/cosmic-files/recipe.toml index f62a4eac3..7804f4213 100644 --- a/recipes/tools/cosmic-files/recipe.toml +++ b/recipes/tools/cosmic-files/recipe.toml @@ -10,21 +10,13 @@ dependencies = [ ] script = """ DYNAMIC_INIT -export GETTEXT_DIR="${COOKBOOK_SYSROOT}" -# Hack to link libiconv, which gettext-sys does not link -"${COOKBOOK_CARGO}" rustc \ - --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ - --release \ - --bin cosmic-files \ - --no-default-features \ - --features desktop \ - -- \ - -L "${COOKBOOK_SYSROOT}/lib" \ - -C link-arg="-liconv" +export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr" +cookbook_cargo --no-default-features + mkdir -pv "${COOKBOOK_STAGE}/usr/bin/" cp -v "target/${TARGET}/release/cosmic-files" "${COOKBOOK_STAGE}/usr/bin/" -mkdir -pv "${COOKBOOK_STAGE}/ui/apps/" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/20_cosmic-files" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps/" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/20_cosmic-files" #TODO: install with just? APPID="com.system76.CosmicFiles" mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" @@ -33,4 +25,4 @@ 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/" -""" \ No newline at end of file +""" diff --git a/recipes/tools/cosmic-reader/recipe.toml b/recipes/tools/cosmic-reader/recipe.toml index 01619a800..34e39227e 100644 --- a/recipes/tools/cosmic-reader/recipe.toml +++ b/recipes/tools/cosmic-reader/recipe.toml @@ -24,8 +24,8 @@ export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=${COOKBOOK_HOST_SYSROOT}/${GNU_TARGET -C link-args="-lpng -lexpat" mkdir -pv "${COOKBOOK_STAGE}/usr/bin/" cp -v "target/${TARGET}/release/cosmic-reader" "${COOKBOOK_STAGE}/usr/bin/" -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/40_cosmic-reader" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/40_cosmic-reader" #TODO: install with just? APPID="com.system76.CosmicReader" mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" diff --git a/recipes/tools/cosmic-settings/recipe.toml b/recipes/tools/cosmic-settings/recipe.toml index f2a3f372d..031d06bb9 100644 --- a/recipes/tools/cosmic-settings/recipe.toml +++ b/recipes/tools/cosmic-settings/recipe.toml @@ -6,30 +6,25 @@ branch = "master" template = "custom" dependencies = [ "gettext", - "libiconv", + "libxkbcommon", ] script = """ DYNAMIC_INIT -export GETTEXT_DIR="${COOKBOOK_SYSROOT}" -# Hack to link libiconv, which gettext-sys does not link -"${COOKBOOK_CARGO}" rustc \ - --manifest-path "${COOKBOOK_SOURCE}/cosmic-settings/Cargo.toml" \ - --release \ - --bin cosmic-settings \ - --no-default-features \ - -- \ - -L "${COOKBOOK_SYSROOT}/lib" \ - -C link-arg="-liconv" +export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr" +(COOKBOOK_SOURCE+="/cosmic-settings" cookbook_cargo --no-default-features \ + --config 'patch.crates-io.rustix.git = "https://github.com/bytecodealliance/rustix"' \ + --config 'patch.crates-io.rustix.rev = "8bf15a0"') + mkdir -pv "${COOKBOOK_STAGE}/usr/bin/" cp -v "target/${TARGET}/release/cosmic-settings" "${COOKBOOK_STAGE}/usr/bin/" #TODO: install with just? APPID="com.system76.CosmicSettings" mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" -sed 's/Categories=COSMIC/Categories=Settings/' "${COOKBOOK_SOURCE}/resources/${APPID}.desktop" > "${COOKBOOK_STAGE}/usr/share/applications/${APPID}.desktop" +sed 's/Categories=COSMIC/Categories=Settings/' "${COOKBOOK_SOURCE}/resources/applications/${APPID}.desktop" > "${COOKBOOK_STAGE}/usr/share/applications/${APPID}.desktop" mkdir -pv "${COOKBOOK_STAGE}/usr/share/metainfo/" cp -v "${COOKBOOK_SOURCE}/resources/${APPID}.metainfo.xml" "${COOKBOOK_STAGE}/usr/share/metainfo/" mkdir -pv "${COOKBOOK_STAGE}/usr/share/" cp -rv "${COOKBOOK_SOURCE}/resources/default_schema/" "${COOKBOOK_STAGE}/usr/share/cosmic/" mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/" cp -rv "${COOKBOOK_SOURCE}/resources/icons/" "${COOKBOOK_STAGE}/usr/share/icons/hicolor/" -""" \ No newline at end of file +""" diff --git a/recipes/tools/cosmic-store/recipe.toml b/recipes/tools/cosmic-store/recipe.toml index 1eb1406f1..3c57d1ef2 100644 --- a/recipes/tools/cosmic-store/recipe.toml +++ b/recipes/tools/cosmic-store/recipe.toml @@ -7,13 +7,14 @@ template = "custom" dependencies = [ "gettext", "libxkbcommon", - "openssl1", + "openssl3", ] script = """ DYNAMIC_INIT -export GETTEXT_DIR="${COOKBOOK_SYSROOT}" -export GETTEXT_STATIC=1 +export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr" +export ZSTD_SYS_USE_PKG_CONFIG=1 cookbook_cargo --no-default-features --features desktop,pkgar + #TODO: install with just? APPID="com.system76.CosmicStore" mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" diff --git a/recipes/tools/cosmic-term/recipe.toml b/recipes/tools/cosmic-term/recipe.toml index f1232c534..21bf0884f 100644 --- a/recipes/tools/cosmic-term/recipe.toml +++ b/recipes/tools/cosmic-term/recipe.toml @@ -4,11 +4,17 @@ branch = "master" [build] template = "custom" +dependencies = [ + "gettext", + "libxkbcommon", +] script = """ DYNAMIC_INIT +export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr" cookbook_cargo --no-default-features -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/10_cosmic-term" + +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/10_cosmic-term" #TODO: install with just? APPID="com.system76.CosmicTerm" mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" @@ -17,4 +23,4 @@ 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/" -""" \ No newline at end of file +""" diff --git a/recipes/tools/cosmic-text/recipe.toml b/recipes/tools/cosmic-text/recipe.toml index 353feb358..37a8d0aff 100644 --- a/recipes/tools/cosmic-text/recipe.toml +++ b/recipes/tools/cosmic-text/recipe.toml @@ -5,5 +5,7 @@ branch = "main" [build] template = "custom" script = """ -cookbook_cargo_packages editor +DYNAMIC_INIT +COOKBOOK_CARGO_FLAGS=() # remove --locked +COOKBOOK_CARGO_PATH=examples/editor cookbook_cargo_build """ diff --git a/recipes/wip/tools/file/recipe.toml b/recipes/tools/file/recipe.toml similarity index 54% rename from recipes/wip/tools/file/recipe.toml rename to recipes/tools/file/recipe.toml index b8bc7572f..8d17d7549 100644 --- a/recipes/wip/tools/file/recipe.toml +++ b/recipes/tools/file/recipe.toml @@ -1,5 +1,5 @@ #TODO compilation error [source] -tar = "https://astron.com/pub/file/file-5.45.tar.gz" +tar = "https://astron.com/pub/file/file-5.46.tar.gz" [build] template = "configure" diff --git a/recipes/tools/helix/recipe.toml b/recipes/tools/helix/recipe.toml index a4a50cc3c..788d58e98 100644 --- a/recipes/tools/helix/recipe.toml +++ b/recipes/tools/helix/recipe.toml @@ -1,17 +1,30 @@ #TODO signal handling is disabled, it should be re-enabled when Redox is ready -#TODO language files are not built, only the "hx" editor is built -#TODO Consider adding `export RUSTFLAGS+="-C target-feature=-crt-static"` when adding language support +#TODO language files are not built for fennel and crstalline langauges #TODO configuration - https://docs.helix-editor.com/install.html#configuring-helixs-runtime-files [source] -git = "https://gitlab.redox-os.org/redox-os/helix.git" -branch = "redox" +git = "https://github.com/greyshaman/helix.git" +rev = "34b91f42d9e9b04ba39cb6cc0f7c044d8ca4261d" [build] template = "custom" script = """ -export HELIX_DISABLE_AUTO_GRAMMAR_BUILD=1 -COOKBOOK_SOURCE+="/helix-term" -cookbook_cargo +DYNAMIC_INIT +export CFLAGS="$CFLAGS -D__redox__" +COOKBOOK_CARGO_PATH="helix-term" cookbook_cargo mv "${COOKBOOK_STAGE}/usr/bin/hx" "${COOKBOOK_STAGE}/usr/bin/helix" +mkdir -p "${COOKBOOK_STAGE}/usr/lib/helix/runtime/grammars" +mkdir -p "${COOKBOOK_STAGE}/usr/lib/helix/runtime/queries" +mkdir -p "${COOKBOOK_STAGE}/usr/lib/helix/runtime/themes" +echo "show runtime grammars dir content" +cp ${COOKBOOK_SOURCE}/runtime/grammars/*.so ${COOKBOOK_STAGE}/usr/lib/helix/runtime/grammars/ +cp -r ${COOKBOOK_SOURCE}/runtime/queries/* ${COOKBOOK_STAGE}/usr/lib/helix/runtime/queries/ +cp -r ${COOKBOOK_SOURCE}/runtime/themes/* ${COOKBOOK_STAGE}/usr/lib/helix/runtime/themes/ +cp "${COOKBOOK_SOURCE}/runtime/tutor" ${COOKBOOK_STAGE}/usr/lib/helix/runtime/ + +echo '#!/usr/bin/env bash' > "${COOKBOOK_STAGE}/usr/bin/hx" +echo 'export HELIX_RUNTIME=/usr/lib/helix/runtime' >> "${COOKBOOK_STAGE}/usr/bin/hx" +echo '/usr/bin/helix $@' >> "${COOKBOOK_STAGE}/usr/bin/hx" + +chmod +x ${COOKBOOK_STAGE}/usr/bin/hx """ diff --git a/recipes/tools/patchelf/recipe.toml b/recipes/tools/patchelf/recipe.toml index 1399164ce..01c6a2b89 100644 --- a/recipes/tools/patchelf/recipe.toml +++ b/recipes/tools/patchelf/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0.tar.bz2" blake3 = "f843b32bdf3ee8a1f465e92d3fef34f30c48ccef9c112fdb793e2e7f2ae7283a" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/tools/periodictable/recipe.toml b/recipes/tools/periodictable/recipe.toml index 109b3d42c..89183b0b2 100644 --- a/recipes/tools/periodictable/recipe.toml +++ b/recipes/tools/periodictable/recipe.toml @@ -6,10 +6,10 @@ template = "custom" script = """ DYNAMIC_INIT cookbook_cargo -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v "${COOKBOOK_SOURCE}/pkg/manifest" "${COOKBOOK_STAGE}/ui/apps/periodictable" -mkdir -pv "${COOKBOOK_STAGE}/ui/icons" -cp -v "${COOKBOOK_SOURCE}/pkg/icon.png" "${COOKBOOK_STAGE}/ui/icons/periodictable.png" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v "${COOKBOOK_SOURCE}/pkg/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/periodictable" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons" +cp -v "${COOKBOOK_SOURCE}/pkg/icon.png" "${COOKBOOK_STAGE}/usr/share/icons/periodictable.png" """ [package] diff --git a/recipes/tools/powerline/recipe.toml b/recipes/tools/powerline/recipe.toml index e8f2b616f..6a7edbdfc 100644 --- a/recipes/tools/powerline/recipe.toml +++ b/recipes/tools/powerline/recipe.toml @@ -8,9 +8,8 @@ export CARGOFLAGS="--no-default-features --features chrono" # --locked uses a reallyyyy old redox_syscall and libc which fails ${COOKBOOK_CARGO} install \ - --path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}" \ + --path "${COOKBOOK_SOURCE}/${COOKBOOK_CARGO_PATH}" \ --root "${COOKBOOK_STAGE}/usr" \ - --no-track \ --no-default-features \ --features chrono \ ${install_flags} diff --git a/recipes/tools/sodium/recipe.toml b/recipes/tools/sodium/recipe.toml index 66fe407fb..09f5aee40 100644 --- a/recipes/tools/sodium/recipe.toml +++ b/recipes/tools/sodium/recipe.toml @@ -9,11 +9,11 @@ DYNAMIC_INIT --path "${COOKBOOK_SOURCE}" \ --root "${COOKBOOK_STAGE}/usr" \ --locked \ - --no-track \ + ${install_flags} \ --features orbital -mkdir -pv "${COOKBOOK_STAGE}/ui/apps" -cp -v ${COOKBOOK_SOURCE}/manifest "${COOKBOOK_STAGE}/ui/apps/sodium" -mkdir -pv "${COOKBOOK_STAGE}/ui/icons" -cp -v ${COOKBOOK_SOURCE}/icon.png "${COOKBOOK_STAGE}/ui/icons/sodium.png" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps" +cp -v ${COOKBOOK_SOURCE}/manifest "${COOKBOOK_STAGE}/usr/share/ui/apps/sodium" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons" +cp -v ${COOKBOOK_SOURCE}/icon.png "${COOKBOOK_STAGE}/usr/share/icons/sodium.png" """ diff --git a/recipes/tools/xz/recipe.toml b/recipes/tools/xz/recipe.toml index 51ca7e47b..b3d25b672 100644 --- a/recipes/tools/xz/recipe.toml +++ b/recipes/tools/xz/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/tukaani-project/xz/releases/download/v5.2.13/xz-5.2.13.tar.gz" blake3 = "edc6350542e8cb7188a878135e5b9bd592d687e5b47451ca1c89d51cc4bc6b53" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/tui/mdp/recipe.toml b/recipes/tui/mdp/recipe.toml index ca3be43af..07cbe1a12 100644 --- a/recipes/tui/mdp/recipe.toml +++ b/recipes/tui/mdp/recipe.toml @@ -12,8 +12,8 @@ rsync -av --delete --exclude='.git' "${COOKBOOK_SOURCE}/" ./ export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/ncursesw" -"${COOKBOOK_MAKE}" -j"$(${NPROC})" +"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" # Install -"${REDOX_MAKE}" DESTDIR="${COOKBOOK_STAGE}" PREFIX="" install +"${COOKBOOK_MAKE}" DESTDIR="${COOKBOOK_STAGE}" PREFIX="" install """ \ No newline at end of file diff --git a/recipes/web/netsurf/01_redox.patch b/recipes/web/netsurf/01_redox.patch index 9330b42e7..2f72f8932 100644 --- a/recipes/web/netsurf/01_redox.patch +++ b/recipes/web/netsurf/01_redox.patch @@ -84,7 +84,7 @@ diff -ruwN source/netsurf/Makefile.config source-new/netsurf/Makefile.config +override NETSURF_USE_VIDEO := NO + +override NETSURF_FB_FONTLIB := freetype -+override NETSURF_FB_FONTPATH := /ui/fonts/ ++override NETSURF_FB_FONTPATH := /usr/share/fonts/ +override NETSURF_FB_FONT_SANS_SERIF := Sans/Fira/Regular.ttf +override NETSURF_FB_FONT_SANS_SERIF_BOLD := Sans/Fira/Bold.ttf +override NETSURF_FB_FONT_SANS_SERIF_ITALIC := Sans/Fira/Regular.ttf diff --git a/recipes/web/netsurf/recipe.toml b/recipes/web/netsurf/recipe.toml index fabdc0321..595f6132c 100644 --- a/recipes/web/netsurf/recipe.toml +++ b/recipes/web/netsurf/recipe.toml @@ -13,27 +13,35 @@ dependencies = [ "libjpeg", "libpng", "nghttp2", - "openssl1", + "openssl3", "sdl1", "zlib", "freetype2", "liborbital", "libiconv" ] +dev-dependencies = [ + "host:gperf" +] script = """ DYNAMIC_INIT # Netsurf does not currently support out-of-tree builds :( rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +# obscure crash from sccache if jobs number is too much +COOKBOOK_MAKE_JOBS="$(( ${COOKBOOK_MAKE_JOBS} > 8 ? 8 : ${COOKBOOK_MAKE_JOBS} ))" + export TARGET="framebuffer" -export CFLAGS="${CFLAGS} -I${PWD}/inst-${TARGET}/include" +export CFLAGS="-I${PWD}/inst-${TARGET}/include" export LDFLAGS="${LDFLAGS} -L${COOKBOOK_SYSROOT}/lib -L${PWD}/inst-${TARGET}/lib -Wl,--allow-multiple-definition -Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib" # nghttp2 is not linked for some reason export LDFLAGS="${LDFLAGS} -lcurl -lnghttp2" +# netsurf mixes up CFLAGS for host and build +export CC="${CC} ${CPPFLAGS}" -"$COOKBOOK_MAKE" PREFIX=/usr V=1 -j"$($NPROC)" -"$COOKBOOK_MAKE" DESTDIR="$COOKBOOK_STAGE" PREFIX=/usr install -j"$($NPROC)" +"$COOKBOOK_MAKE" PREFIX=/usr V=1 -j"$COOKBOOK_MAKE_JOBS" +"$COOKBOOK_MAKE" DESTDIR="$COOKBOOK_STAGE" PREFIX=/usr install -j"$COOKBOOK_MAKE_JOBS" mkdir -pv "$COOKBOOK_STAGE/ui/apps" cp -v "${COOKBOOK_RECIPE}/manifest" "$COOKBOOK_STAGE/ui/apps/00_netsurf" """ diff --git a/recipes/wip/a11y/espeak-ng/recipe.toml b/recipes/wip/a11y/espeak-ng/recipe.toml new file mode 100644 index 000000000..3fc524c34 --- /dev/null +++ b/recipes/wip/a11y/espeak-ng/recipe.toml @@ -0,0 +1,16 @@ +# compiles, but only wavefile generation is supported +#TODO waiting for a custom libpcaudio0 backend for real-time output (bpisch is working on it) + +[source] +git = "https://gitlab.redox-os.org/bpisch/espeak-ng.git" +branch = "redox" + +[build] +template = "custom" +dependencies = ["libstdcxx"] +script = """ +DYNAMIC_INIT +cp -R "${COOKBOOK_SOURCE}/espeak-ng-data" . +cookbook_cmake +cp -R "${COOKBOOK_SOURCE}/espeak-ng-data" "${COOKBOOK_STAGE}/usr/share/espeak-ng-data" +""" diff --git a/recipes/wip/a11y/orca/recipe.toml b/recipes/wip/a11y/orca/recipe.toml index 4048dc4af..27663df42 100644 --- a/recipes/wip/a11y/orca/recipe.toml +++ b/recipes/wip/a11y/orca/recipe.toml @@ -3,13 +3,9 @@ [source] tar = "https://download.gnome.org/sources/orca/48/orca-48.6.tar.xz" [build] -template = "custom" +template = "meson" dependencies = [ "atk", "at-spi2-core", "gtk3", ] -script = """ -DYNAMIC_INIT -cookbook_meson -""" diff --git a/recipes/wip/ai/nnx/recipe.toml b/recipes/wip/ai/nnx/recipe.toml index ca9318b4d..0136434ce 100644 --- a/recipes/wip/ai/nnx/recipe.toml +++ b/recipes/wip/ai/nnx/recipe.toml @@ -1,11 +1,13 @@ #TODO fs2 crate error [source] git = "https://github.com/webonnx/wonnx" +shallow_clone = true [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", ] script = """ +DYNAMIC_INIT cookbook_cargo_packages wonnx-cli """ diff --git a/recipes/wip/ai/rustgpt/recipe.toml b/recipes/wip/ai/rustgpt/recipe.toml index 5f3f5588a..365df971e 100644 --- a/recipes/wip/ai/rustgpt/recipe.toml +++ b/recipes/wip/ai/rustgpt/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/tekaratzas/RustGPT" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/ai/tgs/recipe.toml b/recipes/wip/ai/tgs/recipe.toml index 4a05776a9..04771275f 100644 --- a/recipes/wip/ai/tgs/recipe.toml +++ b/recipes/wip/ai/tgs/recipe.toml @@ -1,6 +1,7 @@ #TODO make libtorch work [source] git = "https://github.com/warpy-ai/tgs" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/analysis/binsider/recipe.toml b/recipes/wip/analysis/binsider/recipe.toml index b7f70805f..5ae452ec2 100644 --- a/recipes/wip/analysis/binsider/recipe.toml +++ b/recipes/wip/analysis/binsider/recipe.toml @@ -1,5 +1,6 @@ #TODO async-io and rustix crates error [source] git = "https://github.com/orhun/binsider" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/analysis/cutter/recipe.toml b/recipes/wip/analysis/cutter/recipe.toml index 33fc1fcf9..e90cf181f 100644 --- a/recipes/wip/analysis/cutter/recipe.toml +++ b/recipes/wip/analysis/cutter/recipe.toml @@ -1,12 +1,13 @@ #TODO not compiled or tested +#TODO determine minimum dependencies from cmake log # build instructions: https://cutter.re/docs/building.html [source] -tar = "https://github.com/rizinorg/cutter/releases/download/v2.3.4/Cutter-v2.3.4-src.tar.gz" +tar = "https://github.com/rizinorg/cutter/releases/download/v2.4.1/Cutter-v2.4.1-src.tar.gz" [build] template = "cmake" -dependencies = [ - "libzip", - "zlib", - "qt5-base", - "qt5-svg", -] +#dependencies = [ +# "libzip", +# "zlib", +# "qt6-base", +# "qt6-svg", +#] diff --git a/recipes/wip/analysis/email-sleuth/recipe.toml b/recipes/wip/analysis/email-sleuth/recipe.toml index 36bdabc62..e06b0ab8a 100644 --- a/recipes/wip/analysis/email-sleuth/recipe.toml +++ b/recipes/wip/analysis/email-sleuth/recipe.toml @@ -1,5 +1,6 @@ #TODO openssl-sys crate error [source] git = "https://github.com/tokenizer-decode/email-sleuth" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/analysis/flowgger/recipe.toml b/recipes/wip/analysis/flowgger/recipe.toml index efcaed09d..6580d5b2b 100644 --- a/recipes/wip/analysis/flowgger/recipe.toml +++ b/recipes/wip/analysis/flowgger/recipe.toml @@ -2,5 +2,6 @@ # build instructions: https://github.com/awslabs/flowgger/wiki/Installation [source] git = "https://github.com/awslabs/flowgger" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/analysis/graphs/recipe.toml b/recipes/wip/analysis/graphs/recipe.toml new file mode 100644 index 000000000..0a5714120 --- /dev/null +++ b/recipes/wip/analysis/graphs/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/World/Graphs" +rev = "v1.8.7" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "libgee", + "sqlite3", +] diff --git a/recipes/wip/analysis/netdata/recipe.toml b/recipes/wip/analysis/netdata/recipe.toml index fc4f14ddb..632558adb 100644 --- a/recipes/wip/analysis/netdata/recipe.toml +++ b/recipes/wip/analysis/netdata/recipe.toml @@ -1,11 +1,14 @@ #TODO not compiled or tested # build instructions: https://learn.netdata.cloud/docs/developer-and-contributor-corner/build-the-netdata-agent-yourself/compile-from-source-code#building-netdata [source] -tar = "https://github.com/netdata/netdata/releases/download/v1.46.1/netdata-v1.46.1.tar.gz" +tar = "https://github.com/netdata/netdata/releases/download/v2.8.5/netdata-v2.8.5.tar.gz" [build] template = "cmake" -dependencies = [ - "zlib", - "libuv", - "libuuid", +cmakeflags = [ + "-DDEFAULT_FEATURE_STATE=False", ] +#dependencies = [ +# "zlib", +# "libuv", +# "libuuid", +#] diff --git a/recipes/wip/analysis/rizin/recipe.toml b/recipes/wip/analysis/rizin/recipe.toml index 385be03bd..f19402467 100644 --- a/recipes/wip/analysis/rizin/recipe.toml +++ b/recipes/wip/analysis/rizin/recipe.toml @@ -1,6 +1,10 @@ #TODO not compiled or tested # build instructions: https://github.com/rizinorg/rizin/blob/dev/BUILDING.md [source] -tar = "https://github.com/rizinorg/rizin/releases/download/v0.7.3/rizin-src-v0.7.3.tar.xz" +tar = "https://github.com/rizinorg/rizin/releases/download/v0.8.1/rizin-src-v0.8.1.tar.xz" [build] template = "meson" +mesonflags = [ + "-Denable_tests=false", + "-Denable_rz_test=false", +] diff --git a/recipes/wip/analysis/tmmpr/recipe.toml b/recipes/wip/analysis/tmmpr/recipe.toml new file mode 100644 index 000000000..21974edfd --- /dev/null +++ b/recipes/wip/analysis/tmmpr/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tanciaku/tmmpr" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/archives/7-zip/recipe.toml b/recipes/wip/archives/7-zip/recipe.toml index 4930f7e03..773f48ae5 100644 --- a/recipes/wip/archives/7-zip/recipe.toml +++ b/recipes/wip/archives/7-zip/recipe.toml @@ -1,4 +1,4 @@ -#TODO missing script for "make", see https://github.com/mcmilk/7-Zip/tree/master/DOC#readme +#TODO missing script for gnu make: https://github.com/mcmilk/7-Zip/tree/master/DOC#readme [source] tar = "https://7-zip.org/a/7z2301-src.tar.xz" [build] diff --git a/recipes/wip/archives/mlar/recipe.toml b/recipes/wip/archives/mlar/recipe.toml index 5fd0cc565..2a9bcd001 100644 --- a/recipes/wip/archives/mlar/recipe.toml +++ b/recipes/wip/archives/mlar/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/ANSSI-FR/MLA" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages mlar """ diff --git a/recipes/wip/archives/orz/recipe.toml b/recipes/wip/archives/orz/recipe.toml index 758d96655..cf82b62ae 100644 --- a/recipes/wip/archives/orz/recipe.toml +++ b/recipes/wip/archives/orz/recipe.toml @@ -1,5 +1,6 @@ #TODO don't run [source] git = "https://github.com/richox/orz" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/archives/ouch/recipe.toml b/recipes/wip/archives/ouch/recipe.toml index 851597f28..9bc40883a 100644 --- a/recipes/wip/archives/ouch/recipe.toml +++ b/recipes/wip/archives/ouch/recipe.toml @@ -1,6 +1,7 @@ #TODO compilation error [source] git = "https://github.com/ouch-org/ouch" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/archives/unzrip/recipe.toml b/recipes/wip/archives/unzrip/recipe.toml index e31e1140d..61d5cc2ea 100644 --- a/recipes/wip/archives/unzrip/recipe.toml +++ b/recipes/wip/archives/unzrip/recipe.toml @@ -1,6 +1,7 @@ #TODO make zstd work (after cargo update) [source] git = "https://github.com/quininer/unzrip" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/backup/borg/recipe.toml b/recipes/wip/backup/borg/recipe.toml index 6df0b093c..40efef0b4 100644 --- a/recipes/wip/backup/borg/recipe.toml +++ b/recipes/wip/backup/borg/recipe.toml @@ -1,11 +1,11 @@ #TODO missing script for pip -# build instructions - https://borgbackup.readthedocs.io/en/stable/installation.html#source-install +# build instructions: https://borgbackup.readthedocs.io/en/stable/installation.html#source-install [source] tar = "https://github.com/borgbackup/borg/releases/download/1.4.1/borgbackup-1.4.1.tar.gz" [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", "libacl", "libattr", "xxhash", diff --git a/recipes/wip/backup/partclone/recipe.toml b/recipes/wip/backup/partclone/recipe.toml new file mode 100644 index 000000000..aec371f45 --- /dev/null +++ b/recipes/wip/backup/partclone/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Thomas-Tsai/partclone" +rev = "0.3.40" +shallow_clone = true +script = """ +autotools_recursive_regenerate +""" +[build] +template = "configure" +configureflags = [ + "--enable-ncursesw", +] +dependencies = [ + "ncursesw", +] diff --git a/recipes/wip/backup/pika-backup/recipe.toml b/recipes/wip/backup/pika-backup/recipe.toml new file mode 100644 index 000000000..d9d7d62e0 --- /dev/null +++ b/recipes/wip/backup/pika-backup/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/World/pika-backup" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/backup/vorta/recipe.toml b/recipes/wip/backup/vorta/recipe.toml index 830541fed..ebda5b6ff 100644 --- a/recipes/wip/backup/vorta/recipe.toml +++ b/recipes/wip/backup/vorta/recipe.toml @@ -1,7 +1,8 @@ #TODO missing script for pip -# build instructions - https://vorta.borgbase.com/install/linux/#install-from-source +# build instructions: https://vorta.borgbase.com/install/linux/#install-from-source [source] git = "https://github.com/borgbase/vorta" -rev = "f2b42742f9a56f15a46f2b287825122032fcdb90" +rev = "v0.11.3" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/benchmarks/cargo/cargo-benchcmp/recipe.toml b/recipes/wip/bench/cargo/cargo-benchcmp/recipe.toml similarity index 85% rename from recipes/wip/benchmarks/cargo/cargo-benchcmp/recipe.toml rename to recipes/wip/bench/cargo/cargo-benchcmp/recipe.toml index a9fbc1c1f..f6e377622 100644 --- a/recipes/wip/benchmarks/cargo/cargo-benchcmp/recipe.toml +++ b/recipes/wip/bench/cargo/cargo-benchcmp/recipe.toml @@ -1,5 +1,6 @@ #TODO compiled but not tested [source] git = "https://github.com/BurntSushi/cargo-benchcmp" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/benchmarks/cargo/cargo-criterion/recipe.toml b/recipes/wip/bench/cargo/cargo-criterion/recipe.toml similarity index 86% rename from recipes/wip/benchmarks/cargo/cargo-criterion/recipe.toml rename to recipes/wip/bench/cargo/cargo-criterion/recipe.toml index 6ba7cb273..ed9af8804 100644 --- a/recipes/wip/benchmarks/cargo/cargo-criterion/recipe.toml +++ b/recipes/wip/bench/cargo/cargo-criterion/recipe.toml @@ -1,5 +1,6 @@ #TODO compiled but not tested (after cargo update) [source] git = "https://github.com/bheisler/cargo-criterion" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/benchmarks/dacapo-benchmarks/recipe.toml b/recipes/wip/bench/dacapo-benchmarks/recipe.toml similarity index 52% rename from recipes/wip/benchmarks/dacapo-benchmarks/recipe.toml rename to recipes/wip/bench/dacapo-benchmarks/recipe.toml index 0fc1315ba..4e3d04216 100644 --- a/recipes/wip/benchmarks/dacapo-benchmarks/recipe.toml +++ b/recipes/wip/bench/dacapo-benchmarks/recipe.toml @@ -1,5 +1,5 @@ #TODO missing data type to download the Java bytecode -# download link - https://download.dacapobench.org/chopin/dacapo-23.11-chopin.zip +# download link: https://download.dacapobench.org/chopin/dacapo-23.11-chopin.zip [source] [build] diff --git a/recipes/wip/bench/hpc/hpcc/recipe.toml b/recipes/wip/bench/hpc/hpcc/recipe.toml new file mode 100644 index 000000000..cb211c794 --- /dev/null +++ b/recipes/wip/bench/hpc/hpcc/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for gnu make or python script: https://github.com/icl-utk-edu/hpcc#compiling +[source] +git = "https://github.com/icl-utk-edu/hpcc" +rev = "1.5.0" +shallow_clone = true +[build] +template = "custom" diff --git a/recipes/wip/bench/hpc/hpcg/recipe.toml b/recipes/wip/bench/hpc/hpcg/recipe.toml new file mode 100644 index 000000000..ce49a0c58 --- /dev/null +++ b/recipes/wip/bench/hpc/hpcg/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/hpcg-benchmark/hpcg" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/bench/hpc/minibude/recipe.toml b/recipes/wip/bench/hpc/minibude/recipe.toml new file mode 100644 index 000000000..b63b712dc --- /dev/null +++ b/recipes/wip/bench/hpc/minibude/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for gnu make: https://github.com/UoB-HPC/miniBUDE#building +[source] +git = "https://github.com/UoB-HPC/miniBUDE" +shallow_clone = true +[build] +template = "custom" diff --git a/recipes/wip/benchmarks/hyperfine/recipe.toml b/recipes/wip/bench/hyperfine/recipe.toml similarity index 83% rename from recipes/wip/benchmarks/hyperfine/recipe.toml rename to recipes/wip/bench/hyperfine/recipe.toml index a51d22b58..4b963663f 100644 --- a/recipes/wip/benchmarks/hyperfine/recipe.toml +++ b/recipes/wip/bench/hyperfine/recipe.toml @@ -1,5 +1,6 @@ #TODO libc::RUSAGE_CHILDREN [source] git = "https://github.com/sharkdp/hyperfine" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/bench/io/blogbench/recipe.toml b/recipes/wip/bench/io/blogbench/recipe.toml new file mode 100644 index 000000000..836166900 --- /dev/null +++ b/recipes/wip/bench/io/blogbench/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://github.com/jedisct1/Blogbench/blob/master/README#L18 +[source] +tar = "https://github.com/jedisct1/Blogbench/releases/download/1.2/blogbench-1.2.tar.bz2" +script = """ +autotools_recursive_regenerate +""" +[build] +template = "configure" diff --git a/recipes/wip/benchmarks/io/fio/recipe.toml b/recipes/wip/bench/io/fio/recipe.toml similarity index 68% rename from recipes/wip/benchmarks/io/fio/recipe.toml rename to recipes/wip/bench/io/fio/recipe.toml index 80c3bd768..eb41050c4 100644 --- a/recipes/wip/benchmarks/io/fio/recipe.toml +++ b/recipes/wip/bench/io/fio/recipe.toml @@ -1,6 +1,7 @@ #TODO configuration problem [source] git = "https://github.com/axboe/fio" -rev = "624e263f6acb1563471a83601ce19dfb77ac5694" +rev = "fio-3.41" +shallow_clone = true [build] template = "configure" diff --git a/recipes/wip/benchmarks/io/simple-disk-benchmark/recipe.toml b/recipes/wip/bench/io/simple-disk-benchmark/recipe.toml similarity index 84% rename from recipes/wip/benchmarks/io/simple-disk-benchmark/recipe.toml rename to recipes/wip/bench/io/simple-disk-benchmark/recipe.toml index 64101a1eb..4fe40d717 100644 --- a/recipes/wip/benchmarks/io/simple-disk-benchmark/recipe.toml +++ b/recipes/wip/bench/io/simple-disk-benchmark/recipe.toml @@ -1,5 +1,6 @@ #TODO source code error [source] git = "https://github.com/schwa/simple-disk-benchmark-rs" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/bench/jasonisnthappy/recipe.toml b/recipes/wip/bench/jasonisnthappy/recipe.toml new file mode 100644 index 000000000..0015dc9c2 --- /dev/null +++ b/recipes/wip/bench/jasonisnthappy/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sohzm/jasonisnthappy" +shallow_clone = true +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo_examples bench_all +""" diff --git a/recipes/wip/bench/rodinia/recipe.toml b/recipes/wip/bench/rodinia/recipe.toml new file mode 100644 index 000000000..460e2dfd2 --- /dev/null +++ b/recipes/wip/bench/rodinia/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for gnu make, build the openmp (cpu backend?) or opencl implementation +[source] +tar = "http://www.cs.virginia.edu/~skadron/lava/rodinia/Packages/rodinia_3.1.tar.bz2" +[build] +template = "custom" diff --git a/recipes/wip/benchmarks/rpc-perf/recipe.toml b/recipes/wip/bench/rpc-perf/recipe.toml similarity index 69% rename from recipes/wip/benchmarks/rpc-perf/recipe.toml rename to recipes/wip/bench/rpc-perf/recipe.toml index be0a4045b..85678820c 100644 --- a/recipes/wip/benchmarks/rpc-perf/recipe.toml +++ b/recipes/wip/bench/rpc-perf/recipe.toml @@ -1,6 +1,7 @@ -#TODO make zstd work +#TODO not compiled or tested [source] git = "https://github.com/iopsystems/rpc-perf" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/bench/stress-ng/recipe.toml b/recipes/wip/bench/stress-ng/recipe.toml new file mode 100644 index 000000000..eba47cd9c --- /dev/null +++ b/recipes/wip/bench/stress-ng/recipe.toml @@ -0,0 +1,21 @@ +#TODO missing script for gnu make: https://github.com/ColinIanKing/stress-ng#building-stress-ng +#TODO determine minimum dependencies +[source] +git = "https://github.com/ColinIanKing/stress-ng" +rev = "V0.20.00" +shallow_clone = true +[build] +template = "custom" +#dependencies = [ +# "libbsd", +# "libaio", +# "libcap", +# "libcap", +# "libgcrypt", +# "libjpeg", +# "libmd", +# "libmpfr", +# "xxhash", +# "zlib", +# "mesa", +#] diff --git a/recipes/wip/bench/suite/pts/recipe.toml b/recipes/wip/bench/suite/pts/recipe.toml new file mode 100644 index 000000000..854a2e92b --- /dev/null +++ b/recipes/wip/bench/suite/pts/recipe.toml @@ -0,0 +1,12 @@ +#TODO figure out the installation script - https://github.com/phoronix-test-suite/phoronix-test-suite +[source] +git = "https://github.com/phoronix-test-suite/phoronix-test-suite" +shallow_clone = true +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/home/user/pts" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/pts" +""" +[package] +dependencies = ["php84"] diff --git a/recipes/wip/benchmarks/hpc/hpcc/recipe.toml b/recipes/wip/benchmarks/hpc/hpcc/recipe.toml deleted file mode 100644 index 6cc31de23..000000000 --- a/recipes/wip/benchmarks/hpc/hpcc/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO missing script for building, check the tarball -[source] -tar = "https://hpcchallenge.org/projectsfiles/hpcc/download/hpcc-1.5.0.tar.gz" -[build] -template = "custom" diff --git a/recipes/wip/benchmarks/hpc/hpcg/recipe.toml b/recipes/wip/benchmarks/hpc/hpcg/recipe.toml deleted file mode 100644 index fe63ce86e..000000000 --- a/recipes/wip/benchmarks/hpc/hpcg/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO missing script for building, see https://github.com/hpcg-benchmark/hpcg/blob/master/INSTALL -[source] -git = "https://github.com/hpcg-benchmark/hpcg" -[build] -template = "custom" diff --git a/recipes/wip/benchmarks/hpc/minibude/recipe.toml b/recipes/wip/benchmarks/hpc/minibude/recipe.toml deleted file mode 100644 index b641cd416..000000000 --- a/recipes/wip/benchmarks/hpc/minibude/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO missing script for "make", see https://github.com/UoB-HPC/miniBUDE#building -[source] -git = "https://github.com/UoB-HPC/miniBUDE" -[build] -template = "custom" diff --git a/recipes/wip/benchmarks/io/blogbench/recipe.toml b/recipes/wip/benchmarks/io/blogbench/recipe.toml deleted file mode 100644 index b6c2aff2f..000000000 --- a/recipes/wip/benchmarks/io/blogbench/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO missing script for building, see https://github.com/jedisct1/Blogbench#readme -[source] -tar = "https://github.com/jedisct1/Blogbench/releases/download/1.2/blogbench-1.2.tar.bz2" -[build] -template = "custom" diff --git a/recipes/wip/benchmarks/rodinia/recipe.toml b/recipes/wip/benchmarks/rodinia/recipe.toml deleted file mode 100644 index ae1b0752d..000000000 --- a/recipes/wip/benchmarks/rodinia/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO missing script for building, lacking build instructions -[source] -tar = "http://www.cs.virginia.edu/~skadron/lava/Rodinia/Packages/rodinia_3.1.tar.bz2" -[build] -template = "custom" diff --git a/recipes/wip/benchmarks/stress-ng/recipe.toml b/recipes/wip/benchmarks/stress-ng/recipe.toml deleted file mode 100644 index 18e673540..000000000 --- a/recipes/wip/benchmarks/stress-ng/recipe.toml +++ /dev/null @@ -1,20 +0,0 @@ -#TODO missing script for "make", see https://github.com/ColinIanKing/stress-ng#building-stress-ng -#TODO missing dependencies -[source] -git = "https://github.com/ColinIanKing/stress-ng" -rev = "8c39f5a2d9b199189456f414afd9e536dae69d1b" -[build] -template = "custom" -dependencies = [ - "libbsd", - "libaio", - "libcap", - "libcap", - "libgcrypt", - "libjpeg", - "libmd", - "libmpfr", - "xxhash", - "zlib", - "mesa", -] diff --git a/recipes/wip/benchmarks/suite/phoronix-test-suite/recipe.toml b/recipes/wip/benchmarks/suite/phoronix-test-suite/recipe.toml deleted file mode 100644 index 19495073d..000000000 --- a/recipes/wip/benchmarks/suite/phoronix-test-suite/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO figure out the installation script - https://github.com/phoronix-test-suite/phoronix-test-suite -[source] -tar = "https://phoronix-test-suite.com/releases/phoronix-test-suite-10.8.4.tar.gz" -[build] -template = "custom" diff --git a/recipes/wip/codecs/dav1d/recipe.toml b/recipes/wip/codecs/dav1d/recipe.toml index 2384fba7b..0d8cdf87c 100644 --- a/recipes/wip/codecs/dav1d/recipe.toml +++ b/recipes/wip/codecs/dav1d/recipe.toml @@ -1,7 +1,10 @@ #TODO not compiled or tested # build instructions: https://code.videolan.org/videolan/dav1d#compile [source] -git = "https://code.videolan.org/videolan/dav1d" -rev = "48035599cdd4e4415732e408c407e0c1cd1c7444" +tar = "https://downloads.videolan.org/videolan/dav1d/1.5.3/dav1d-1.5.3.tar.xz" +shallow_clone = true [build] template = "meson" +mesonflags = [ + "-Denable_tests=false", +] \ No newline at end of file diff --git a/recipes/wip/codecs/faad2/recipe.toml b/recipes/wip/codecs/faad2/recipe.toml index 1fcb64152..c0f485d96 100644 --- a/recipes/wip/codecs/faad2/recipe.toml +++ b/recipes/wip/codecs/faad2/recipe.toml @@ -1,7 +1,7 @@ #TODO not compiled or tested -# lacking build instructions [source] git = "https://github.com/knik0/faad2" rev = "2.11.2" +shallow_clone = true [build] template = "cmake" diff --git a/recipes/wip/codecs/rav1e/recipe.toml b/recipes/wip/codecs/rav1e/recipe.toml index 3ee7f5376..54b874985 100644 --- a/recipes/wip/codecs/rav1e/recipe.toml +++ b/recipes/wip/codecs/rav1e/recipe.toml @@ -1,5 +1,6 @@ #TODO "malloc(): invalid size (unsorted)" error [source] git = "https://github.com/xiph/rav1e" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/codecs/svt-av1/recipe.toml b/recipes/wip/codecs/svt-av1/recipe.toml index 8d0875f99..feef47d06 100644 --- a/recipes/wip/codecs/svt-av1/recipe.toml +++ b/recipes/wip/codecs/svt-av1/recipe.toml @@ -1,6 +1,8 @@ -#TODO missing script for building, see https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/Build-Guide.md#linux-operating-systems-64-bit +#TODO not compiled or tested +# build instructions: https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/Build-Guide.md#linux-operating-systems-64-bit [source] git = "https://gitlab.com/AOMediaCodec/SVT-AV1" -rev = "59645eea34e2815b627b8293aa3af254eddd0d69" +rev = "v4.0.1" +shallow_clone = true [build] -template = "custom" +template = "cmake" diff --git a/recipes/wip/codecs/svt-hevc/recipe.toml b/recipes/wip/codecs/svt-hevc/recipe.toml index 78c54ef7c..ab3b0118e 100644 --- a/recipes/wip/codecs/svt-hevc/recipe.toml +++ b/recipes/wip/codecs/svt-hevc/recipe.toml @@ -2,6 +2,6 @@ # build instructions: https://github.com/OpenVisualCloud/SVT-HEVC#linux-operating-systems-64-bit [source] git = "https://github.com/OpenVisualCloud/SVT-HEVC" -rev = "b65eba07e6dee37407631cc441561960838b0333" +shallow_clone = true [build] template = "cmake" diff --git a/recipes/wip/codecs/svt-vp9/recipe.toml b/recipes/wip/codecs/svt-vp9/recipe.toml index 47574a5fd..cb9a98d43 100644 --- a/recipes/wip/codecs/svt-vp9/recipe.toml +++ b/recipes/wip/codecs/svt-vp9/recipe.toml @@ -2,5 +2,7 @@ # build instructions: https://github.com/OpenVisualCloud/SVT-VP9#linux-operating-systems-64-bit [source] git = "https://github.com/OpenVisualCloud/SVT-VP9" +rev = "v0.3.1" +shallow_clone = true [build] template = "cmake" diff --git a/recipes/wip/codecs/uvg266/recipe.toml b/recipes/wip/codecs/uvg266/recipe.toml index 4005e380b..13ff22f0a 100644 --- a/recipes/wip/codecs/uvg266/recipe.toml +++ b/recipes/wip/codecs/uvg266/recipe.toml @@ -2,6 +2,10 @@ # build instructions: https://github.com/ultravideo/uvg266#compiling-uvg266 [source] git = "https://github.com/ultravideo/uvg266" -rev = "9add13b7053a6ba3f6b22bf82728e01fc437a447" +rev = "v0.8.1" +shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DBUILD_TESTS=OFF" +] \ No newline at end of file diff --git a/recipes/wip/codecs/vvenc/recipe.toml b/recipes/wip/codecs/vvenc/recipe.toml index 0a2eb4172..4543bbd96 100644 --- a/recipes/wip/codecs/vvenc/recipe.toml +++ b/recipes/wip/codecs/vvenc/recipe.toml @@ -2,6 +2,7 @@ # build instructions: https://github.com/fraunhoferhhi/vvenc/wiki/Build#build-using-plain-cmake [source] git = "https://github.com/fraunhoferhhi/vvenc" -rev = "eea6fce28c8e822a0ece7a343a10fd5d6dd0e7bb" +rev = "v1.14.0" +shallow_clone = true [build] template = "cmake" diff --git a/recipes/wip/codecs/wavpack/recipe.toml b/recipes/wip/codecs/wavpack/recipe.toml index 3f4a28a84..865767897 100644 --- a/recipes/wip/codecs/wavpack/recipe.toml +++ b/recipes/wip/codecs/wavpack/recipe.toml @@ -1,6 +1,6 @@ -#TODO compilation error - missing header +#TODO compilation error: missing header [source] -tar = "https://github.com/dbry/WavPack/releases/download/5.7.0/wavpack-5.7.0.tar.xz" +tar = "https://github.com/dbry/WavPack/releases/download/5.9.0/wavpack-5.9.0.tar.xz" [build] template = "configure" dependencies = [ diff --git a/recipes/wip/codecs/x264/recipe.toml b/recipes/wip/codecs/x264/recipe.toml index 2bf5be8b0..84f19bb0e 100644 --- a/recipes/wip/codecs/x264/recipe.toml +++ b/recipes/wip/codecs/x264/recipe.toml @@ -1,5 +1,7 @@ #TODO the redox target is not supported on the configure script [source] git = "https://code.videolan.org/videolan/x264" +branch = "stable" +shallow_clone = true [build] template = "configure" diff --git a/recipes/wip/codecs/x265/recipe.toml b/recipes/wip/codecs/x265/recipe.toml index ce61981df..d2e8cd054 100644 --- a/recipes/wip/codecs/x265/recipe.toml +++ b/recipes/wip/codecs/x265/recipe.toml @@ -1,6 +1,11 @@ #TODO not compiled or tested # build instructions: https://bitbucket.org/multicoreware/x265_git/src/master/build/README.txt#lines-68 [source] -tar = "https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.5.tar.gz" +tar = "https://bitbucket.org/multicoreware/x265_git/downloads/x265_4.1.tar.gz" [build] -template = "cmake" +template = "custom" +script = """ +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/source" +DYNAMIC_INIT +cookbook_cmake +""" diff --git a/recipes/wip/crypto/decoder/recipe.toml b/recipes/wip/crypto/decoder/recipe.toml new file mode 100644 index 000000000..8a5d04c1f --- /dev/null +++ b/recipes/wip/crypto/decoder/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/World/decoder" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "gstreamer", +] diff --git a/recipes/wip/data-recovery/ddrescue/recipe.toml b/recipes/wip/data-recovery/ddrescue/recipe.toml new file mode 100644 index 000000000..73ef99cca --- /dev/null +++ b/recipes/wip/data-recovery/ddrescue/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://ftp.gnu.org/gnu/ddrescue/ddrescue-1.30.tar.lz" +[build] +template = "configure" diff --git a/recipes/wip/db/bobby/recipe.toml b/recipes/wip/db/bobby/recipe.toml new file mode 100644 index 000000000..493412b2c --- /dev/null +++ b/recipes/wip/db/bobby/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/hbons/Bobby" +[build] +template = "meson" +dependencies = [ + "libadwaita", + "glib", + "gtk4", +] diff --git a/recipes/wip/db/cockroachdb/recipe.toml b/recipes/wip/db/cockroachdb/recipe.toml index 6d548c7d3..1e81fe2bb 100644 --- a/recipes/wip/db/cockroachdb/recipe.toml +++ b/recipes/wip/db/cockroachdb/recipe.toml @@ -1,6 +1,8 @@ -#TODO missing script for Bazel, see https://cockroachlabs.atlassian.net/wiki/spaces/CRDB/pages/181338446/Getting+and+building+CockroachDB+from+source +#TODO missing script for Bazel +# build instructions: https://cockroachlabs.atlassian.net/wiki/spaces/CRDB/pages/181338446/Getting+and+building+CockroachDB+from+source [source] git = "https://github.com/cockroachdb/cockroach" -rev = "0ad77cfcc5a81b96dd2f27ed608536388b680537" +branch = "release-25.4" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/db/gobang/recipe.toml b/recipes/wip/db/gobang/recipe.toml index 275810a14..1d46a7c4e 100644 --- a/recipes/wip/db/gobang/recipe.toml +++ b/recipes/wip/db/gobang/recipe.toml @@ -1,5 +1,6 @@ #TODO update mio to 0.8 (after cargo update and patch on ring) [source] git = "https://github.com/TaKO8Ki/gobang" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/db/influxdb/recipe.toml b/recipes/wip/db/influxdb/recipe.toml index faad6d63e..cf43f1b70 100644 --- a/recipes/wip/db/influxdb/recipe.toml +++ b/recipes/wip/db/influxdb/recipe.toml @@ -2,5 +2,6 @@ #TODO configure the CLI and service [source] git = "https://github.com/influxdata/influxdb" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/db/iotdb/recipe.toml b/recipes/wip/db/iotdb/recipe.toml index 7a8a21482..0ab03bc4b 100644 --- a/recipes/wip/db/iotdb/recipe.toml +++ b/recipes/wip/db/iotdb/recipe.toml @@ -1,6 +1,8 @@ -#TODO missing script for Maven, see https://github.com/apache/iotdb#build-iotdb-from-source +#TODO missing script for Maven, +# build instructions: https://github.com/apache/iotdb#build-iotdb-from-source [source] git = "https://github.com/apache/iotdb" -rev = "5d0bfb0c25082b61cb8830aa04ec34a13edccd31" +rev = "v2.0.5" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/db/limbo/recipe.toml b/recipes/wip/db/limbo/recipe.toml index ac1a00d86..8412bb00a 100644 --- a/recipes/wip/db/limbo/recipe.toml +++ b/recipes/wip/db/limbo/recipe.toml @@ -1,6 +1,7 @@ #TODO compilation error on the sqlite3 parser [source] git = "https://github.com/tursodatabase/limbo" +shallow_clone = true [build] template = "custom" script = """ diff --git a/recipes/wip/db/mongodb6/recipe.toml b/recipes/wip/db/mongodb6/recipe.toml index aed11b08e..b1d8bec8f 100644 --- a/recipes/wip/db/mongodb6/recipe.toml +++ b/recipes/wip/db/mongodb6/recipe.toml @@ -1,7 +1,9 @@ -#TODO missing script for SCons, see https://github.com/mongodb/mongo/blob/master/docs/building.md +#TODO missing script for SCons +# build instructions: https://github.com/mongodb/mongo/blob/master/docs/building.md [source] git = "https://github.com/mongodb/mongo" branch = "v6.0" +shallow_clone = true [build] template = "custom" dependencies = [ diff --git a/recipes/wip/db/mongodb7/recipe.toml b/recipes/wip/db/mongodb7/recipe.toml index 69d167b51..a2dab0024 100644 --- a/recipes/wip/db/mongodb7/recipe.toml +++ b/recipes/wip/db/mongodb7/recipe.toml @@ -1,7 +1,9 @@ -#TODO missing script for SCons, see https://github.com/mongodb/mongo/blob/master/docs/building.md +#TODO missing script for SCons +# build instructions: https://github.com/mongodb/mongo/blob/master/docs/building.md [source] git = "https://github.com/mongodb/mongo" branch = "v7.2" +shallow_clone = true [build] template = "custom" dependencies = [ diff --git a/recipes/wip/db/postgresql16/recipe.toml b/recipes/wip/db/postgresql16/recipe.toml index e247d0b6b..bfe0a9e20 100644 --- a/recipes/wip/db/postgresql16/recipe.toml +++ b/recipes/wip/db/postgresql16/recipe.toml @@ -12,6 +12,5 @@ configureflags = [ "--with-template=redox", ] dependencies = [ - "readline", "zlib", ] diff --git a/recipes/wip/db/rainfrog/recipe.toml b/recipes/wip/db/rainfrog/recipe.toml index b28e5e1a2..096e60f38 100644 --- a/recipes/wip/db/rainfrog/recipe.toml +++ b/recipes/wip/db/rainfrog/recipe.toml @@ -1,6 +1,7 @@ #TODO not compiled or tested [source] git = "https://github.com/achristmascarl/rainfrog" +shallow_clone = true [build] template = "cargo" [package] diff --git a/recipes/wip/db/rocksdb/recipe.toml b/recipes/wip/db/rocksdb/recipe.toml index 94e5507e7..fdbdfe014 100644 --- a/recipes/wip/db/rocksdb/recipe.toml +++ b/recipes/wip/db/rocksdb/recipe.toml @@ -1,4 +1,5 @@ -#TODO missing script for gnu make: https://github.com/facebook/rocksdb/blob/main/INSTALL.md +#TODO missing script for gnu make +# build instructions: https://github.com/facebook/rocksdb/blob/main/INSTALL.md [source] git = "https://github.com/facebook/rocksdb" rev = "v10.7.5" diff --git a/recipes/wip/db/skytable/recipe.toml b/recipes/wip/db/skytable/recipe.toml index 0bf74a609..02ce69669 100644 --- a/recipes/wip/db/skytable/recipe.toml +++ b/recipes/wip/db/skytable/recipe.toml @@ -1,11 +1,13 @@ #TODO libsky crate error [source] git = "https://github.com/skytable/skytable" +shallow_clone = true [build] template = "custom" dependencies = [ "openssl1", ] script = """ +DYNAMIC_INIT cookbook_cargo_packages skysh skyd """ diff --git a/recipes/wip/db/sqlite3/recipe.toml b/recipes/wip/db/sqlite3/recipe.toml index 5bc410b9c..716a577d1 100644 --- a/recipes/wip/db/sqlite3/recipe.toml +++ b/recipes/wip/db/sqlite3/recipe.toml @@ -8,7 +8,6 @@ tar = "https://sqlite.org/2025/sqlite-autoconf-3490200.tar.gz" blake3 = "96e071dc4f964311882334e927f017d8383915b1b140adcf308957dff213aa8c" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ [build] diff --git a/recipes/wip/db/sqllogictest/recipe.toml b/recipes/wip/db/sqllogictest/recipe.toml index 1e47a39c5..072d38c43 100644 --- a/recipes/wip/db/sqllogictest/recipe.toml +++ b/recipes/wip/db/sqllogictest/recipe.toml @@ -1,9 +1,8 @@ #TODO Works, but not reliably -#TODO Raises the following warnings. -#setsockopt(16, 6, 1, 0x7fffffff4adc, 4) - unknown option -#setsockopt(16, 1, 9, 0x7fffffff4ad0, 4) - unknown option -#setsockopt(16, 6, 1, 0x7fffffff4ad4, 4) - unknown option - +#TODO Raises the following warnings: +# setsockopt(16, 6, 1, 0x7fffffff4adc, 4) - unknown option +# setsockopt(16, 1, 9, 0x7fffffff4ad0, 4) - unknown option +# setsockopt(16, 6, 1, 0x7fffffff4ad4, 4) - unknown option [source] git = "https://github.com/risinglightdb/sqllogictest-rs.git" diff --git a/recipes/wip/db/stoolap/recipe.toml b/recipes/wip/db/stoolap/recipe.toml new file mode 100644 index 000000000..e03d9277b --- /dev/null +++ b/recipes/wip/db/stoolap/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/stoolap/stoolap" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/db/tidb-server/recipe.toml b/recipes/wip/db/tidb-server/recipe.toml index 088b3fe4e..68b4ce8ff 100644 --- a/recipes/wip/db/tidb-server/recipe.toml +++ b/recipes/wip/db/tidb-server/recipe.toml @@ -1,6 +1,8 @@ -#TODO missing script for "make", see https://pingcap.github.io/tidb-dev-guide/get-started/build-tidb-from-source.html#build +#TODO missing script for gnu make +# build instructions: https://pingcap.github.io/tidb-dev-guide/get-started/build-tidb-from-source.html#build [source] git = "https://github.com/pingcap/tidb" -rev = "8445821f105477d5e31de9d8451b7fbf35a02cd1" +rev = "v8.5.4" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/db/tsql/recipe.toml b/recipes/wip/db/tsql/recipe.toml new file mode 100644 index 000000000..cd964706f --- /dev/null +++ b/recipes/wip/db/tsql/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/fcoury/tsql" +[build] +template = "custom" +script = """ +cookbook_cargo_packages tsql +""" +[package] +dependencies = ["postgresql16"] diff --git a/recipes/wip/demos/albedo/recipe.toml b/recipes/wip/demos/albedo/recipe.toml index 2b11feef0..f62a3782f 100644 --- a/recipes/wip/demos/albedo/recipe.toml +++ b/recipes/wip/demos/albedo/recipe.toml @@ -1,8 +1,10 @@ #TODO nanorand crate error [source] git = "https://github.com/albedo-engine/albedo" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples gpu_picking """ diff --git a/recipes/wip/demos/appcui/recipe.toml b/recipes/wip/demos/appcui/recipe.toml index 53a0a4243..dda3c9275 100644 --- a/recipes/wip/demos/appcui/recipe.toml +++ b/recipes/wip/demos/appcui/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/gdt050579/AppCUI-rs" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages examples """ diff --git a/recipes/wip/demos/avian/recipe.toml b/recipes/wip/demos/avian/recipe.toml index 7343d2b6d..b9d1755e4 100644 --- a/recipes/wip/demos/avian/recipe.toml +++ b/recipes/wip/demos/avian/recipe.toml @@ -1,8 +1,10 @@ -#TODO requires rustc 1.82.0 +#TODO not compiled or tested [source] git = "https://github.com/Jondolf/avian" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples chain_2d many_shapes ray_caster chain_3d cubes """ diff --git a/recipes/wip/demos/avt/recipe.toml b/recipes/wip/demos/avt/recipe.toml index 39e7f7163..1472d3e8f 100644 --- a/recipes/wip/demos/avt/recipe.toml +++ b/recipes/wip/demos/avt/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/asciinema/avt" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples text """ diff --git a/recipes/wip/demos/bevy/recipe.toml b/recipes/wip/demos/bevy/recipe.toml index a314e0725..d1107a6a3 100644 --- a/recipes/wip/demos/bevy/recipe.toml +++ b/recipes/wip/demos/bevy/recipe.toml @@ -1,8 +1,10 @@ #TODO async-io crate error [source] git = "https://github.com/bevyengine/bevy" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples hello_world """ diff --git a/recipes/wip/demos/blade/recipe.toml b/recipes/wip/demos/blade/recipe.toml index 15c6c1f42..87da1575d 100644 --- a/recipes/wip/demos/blade/recipe.toml +++ b/recipes/wip/demos/blade/recipe.toml @@ -1,8 +1,10 @@ #TODO x11rb and rustix crates error [source] git = "https://github.com/kvark/blade" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples bunnymark particle ray-query scene """ diff --git a/recipes/wip/demos/blitz/recipe.toml b/recipes/wip/demos/blitz/recipe.toml index a11aeeb65..a5cd21d19 100644 --- a/recipes/wip/demos/blitz/recipe.toml +++ b/recipes/wip/demos/blitz/recipe.toml @@ -1,11 +1,13 @@ #TODO fontique crate error [source] git = "https://github.com/DioxusLabs/blitz" +shallow_clone = true [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", ] script = """ +DYNAMIC_INIT cookbook_cargo_examples url markdown """ diff --git a/recipes/wip/demos/blockish/recipe.toml b/recipes/wip/demos/blockish/recipe.toml index 30fdd578a..0c9322d7f 100644 --- a/recipes/wip/demos/blockish/recipe.toml +++ b/recipes/wip/demos/blockish/recipe.toml @@ -1,8 +1,10 @@ #TODO glutin crate error [source] git = "https://github.com/yazgoo/blockish" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples euc gif tiny-skia """ diff --git a/recipes/wip/demos/blockishfire/recipe.toml b/recipes/wip/demos/blockishfire/recipe.toml index 120cabefe..2239621a4 100644 --- a/recipes/wip/demos/blockishfire/recipe.toml +++ b/recipes/wip/demos/blockishfire/recipe.toml @@ -1,5 +1,6 @@ #TODO outdated redox_syscall crate (cargo update don't fix it) [source] git = "https://github.com/yazgoo/blockishfire" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/demos/blue-engine/recipe.toml b/recipes/wip/demos/blue-engine/recipe.toml index 477d74702..3661719e6 100644 --- a/recipes/wip/demos/blue-engine/recipe.toml +++ b/recipes/wip/demos/blue-engine/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/AryanpurTech/BlueEngine" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples triangle square cube rotate_around wireframe """ diff --git a/recipes/wip/demos/bones/recipe.toml b/recipes/wip/demos/bones/recipe.toml index cf348e622..f49400ea6 100644 --- a/recipes/wip/demos/bones/recipe.toml +++ b/recipes/wip/demos/bones/recipe.toml @@ -1,8 +1,10 @@ #TODO iroh-quinn-udp crate error [source] git = "https://github.com/fishfolk/bones" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages demo_hello_world """ diff --git a/recipes/wip/demos/colored/recipe.toml b/recipes/wip/demos/colored/recipe.toml index 73cc848f3..a2ab90029 100644 --- a/recipes/wip/demos/colored/recipe.toml +++ b/recipes/wip/demos/colored/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/colored-rs/colored" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples control custom_colors dynamic_colors most_simple nested_colors """ diff --git a/recipes/wip/demos/comfy/recipe.toml b/recipes/wip/demos/comfy/recipe.toml index 23b165575..347d93f4b 100644 --- a/recipes/wip/demos/comfy/recipe.toml +++ b/recipes/wip/demos/comfy/recipe.toml @@ -1,8 +1,12 @@ #TODO compiled but not tested [source] git = "https://github.com/darthdeus/comfy" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples animated_shapes animated_sprites animated_text bloom circle colors egui fragment-shader lighting music shapes single_particle sprite text +DYNAMIC_INIT +cookbook_cargo_examples animated_shapes animated_sprites animated_text \ +bloom circle colors egui fragment-shader lighting music shapes \ +single_particle sprite text """ diff --git a/recipes/wip/demos/console-rs/recipe.toml b/recipes/wip/demos/console-rs/recipe.toml index 874259927..cc9a0ea6b 100644 --- a/recipes/wip/demos/console-rs/recipe.toml +++ b/recipes/wip/demos/console-rs/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/console-rs/console" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples colors colors256 cursor_at keyboard term """ diff --git a/recipes/wip/demos/contrast-renderer/recipe.toml b/recipes/wip/demos/contrast-renderer/recipe.toml index a2b8426e6..d5284c63c 100644 --- a/recipes/wip/demos/contrast-renderer/recipe.toml +++ b/recipes/wip/demos/contrast-renderer/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/Lichtso/contrast_renderer" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples showcase """ diff --git a/recipes/wip/demos/cubecl/recipe.toml b/recipes/wip/demos/cubecl/recipe.toml index 94699865e..1b6ae9368 100644 --- a/recipes/wip/demos/cubecl/recipe.toml +++ b/recipes/wip/demos/cubecl/recipe.toml @@ -1,9 +1,11 @@ #TODO cubecl-macros crate error [source] git = "https://github.com/tracel-ai/cubecl" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT package=gelu "${COOKBOOK_CARGO}" build \ --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ diff --git a/recipes/wip/demos/dioxus-examples/recipe.toml b/recipes/wip/demos/dioxus-examples/recipe.toml index ec46366b9..be45275c3 100644 --- a/recipes/wip/demos/dioxus-examples/recipe.toml +++ b/recipes/wip/demos/dioxus-examples/recipe.toml @@ -1,9 +1,11 @@ #TODO wry crate error [source] git = "https://github.com/DioxusLabs/dioxus" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples calculator clock counters \ file_explorer hello_world multiwindow popup window_event \ window_zoom diff --git a/recipes/wip/demos/doomfire/recipe.toml b/recipes/wip/demos/doomfire/recipe.toml index ab79f6a30..c18473b17 100644 --- a/recipes/wip/demos/doomfire/recipe.toml +++ b/recipes/wip/demos/doomfire/recipe.toml @@ -1,8 +1,10 @@ #TODO discover how to build the "doomfire-minifb" example [source] git = "https://github.com/r-marques/doomfire" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples doomfire-minifb """ diff --git a/recipes/wip/demos/egui/recipe.toml b/recipes/wip/demos/egui/recipe.toml index d4a6089b0..27c386766 100644 --- a/recipes/wip/demos/egui/recipe.toml +++ b/recipes/wip/demos/egui/recipe.toml @@ -1,8 +1,10 @@ #TODO glutin crate error [source] git = "https://github.com/emilk/egui" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages hello_world """ diff --git a/recipes/wip/demos/euc/recipe.toml b/recipes/wip/demos/euc/recipe.toml index da60f8a54..8b33f83d5 100644 --- a/recipes/wip/demos/euc/recipe.toml +++ b/recipes/wip/demos/euc/recipe.toml @@ -1,8 +1,11 @@ #TODO minifb crate error [source] git = "https://github.com/zesterer/euc" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples spinning_cube teapot texture_mapping triangle wireframes +DYNAMIC_INIT +cookbook_cargo_examples spinning_cube teapot texture_mapping \ +triangle wireframes """ diff --git a/recipes/wip/demos/feoxdb/recipe.toml b/recipes/wip/demos/feoxdb/recipe.toml index 84b8e46c4..9cb46103c 100644 --- a/recipes/wip/demos/feoxdb/recipe.toml +++ b/recipes/wip/demos/feoxdb/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/mehrantsi/FeOxDB" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples basic_usage deterministic_test """ diff --git a/recipes/wip/demos/ferris-says/recipe.toml b/recipes/wip/demos/ferris-says/recipe.toml index 4bf90364e..ca071e4e1 100644 --- a/recipes/wip/demos/ferris-says/recipe.toml +++ b/recipes/wip/demos/ferris-says/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/rust-lang/ferris-says" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages fsays """ diff --git a/recipes/wip/demos/firewheel/recipe.toml b/recipes/wip/demos/firewheel/recipe.toml index e79a248ad..f97d8079c 100644 --- a/recipes/wip/demos/firewheel/recipe.toml +++ b/recipes/wip/demos/firewheel/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/BillyDM/firewheel" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples beep_test play_sample """ diff --git a/recipes/wip/demos/firework-rs/recipe.toml b/recipes/wip/demos/firework-rs/recipe.toml index f1bd17a6b..605134a92 100644 --- a/recipes/wip/demos/firework-rs/recipe.toml +++ b/recipes/wip/demos/firework-rs/recipe.toml @@ -1,17 +1,11 @@ #TODO fix the script [source] git = "https://github.com/Wayoung7/firework-rs" +shallow_clone = true [build] template = "custom" script = """ -package=firework-rs -"${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ - --package "${package}" \ - --release - mkdir -pv "${COOKBOOK_STAGE}/usr/bin" - cp -v \ - "target/${TARGET}/release/${package}" \ - "${COOKBOOK_STAGE}/usr/bin/${package}" +DYNAMIC_INIT +cookbook_cargo_packages firework-rs cookbook_cargo_examples fountain heart vortex """ diff --git a/recipes/wip/demos/fonterator/recipe.toml b/recipes/wip/demos/fonterator/recipe.toml index ae463a62e..f9b931a13 100644 --- a/recipes/wip/demos/fonterator/recipe.toml +++ b/recipes/wip/demos/fonterator/recipe.toml @@ -1,18 +1,20 @@ -#TODO write a script that can use multiple examples and the "monospace-font" flag +#TODO not compiled or tested [source] git = "https://github.com/ardaku/fonterator" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT recipe="$(basename "${COOKBOOK_RECIPE}")" examples="main directions image raster" for example in "${examples}" do "${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ + --manifest-path "${COOKBOOK_SOURCE}/${COOKBOOK_CARGO_PATH}/Cargo.toml" \ --example "${example}" \ --release \ - --features "monospace-font" + --features "monospace-font" mkdir -pv "${COOKBOOK_STAGE}/usr/bin" cp -v \ "target/${TARGET}/${build_type}/examples/${example}" \ diff --git a/recipes/wip/demos/fractal-rs/recipe.toml b/recipes/wip/demos/fractal-rs/recipe.toml index f31f377d3..8d829247f 100644 --- a/recipes/wip/demos/fractal-rs/recipe.toml +++ b/recipes/wip/demos/fractal-rs/recipe.toml @@ -1,8 +1,10 @@ #TODO glutin crate error [source] git = "https://github.com/aetherknight/fractal-rs" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages fractal-piston """ diff --git a/recipes/wip/demos/freya/recipe.toml b/recipes/wip/demos/freya/recipe.toml index b6dbaf889..43bc47694 100644 --- a/recipes/wip/demos/freya/recipe.toml +++ b/recipes/wip/demos/freya/recipe.toml @@ -1,13 +1,15 @@ #TODO not compiled or tested [source] git = "https://github.com/marc2332/freya" +shallow_clone = true [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", "gtk3", ] script = """ +DYNAMIC_INIT cookbook_cargo_examples animated_position animated_tabs animation \ button camera checkbox clock counter drag drag_drop dynamic_theme \ file_explorer frameless_window gradient graph highlight image image_viewer \ diff --git a/recipes/wip/demos/fundsp/recipe.toml b/recipes/wip/demos/fundsp/recipe.toml index 3ddd0d97a..d6deeecb0 100644 --- a/recipes/wip/demos/fundsp/recipe.toml +++ b/recipes/wip/demos/fundsp/recipe.toml @@ -1,11 +1,14 @@ -#TODO can't find the fontconfig files +#TODO not compiled or tested [source] git = "https://github.com/SamiPerttu/fundsp" +shallow_clone = true [build] template = "custom" dependencies = [ "fontconfig", ] script = """ -cookbook_cargo_examples beep file grain grain2 keys network optimize peek plot sequence type +DYNAMIC_INIT +cookbook_cargo_examples beep file grain grain2 keys network \ +optimize peek plot sequence type """ diff --git a/recipes/wip/demos/funutd/recipe.toml b/recipes/wip/demos/funutd/recipe.toml index cafac2540..af17040ba 100644 --- a/recipes/wip/demos/funutd/recipe.toml +++ b/recipes/wip/demos/funutd/recipe.toml @@ -1,8 +1,10 @@ #TODO rfd crate error [source] git = "https://github.com/SamiPerttu/funutd" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples editor """ diff --git a/recipes/wip/demos/fyrox/recipe.toml b/recipes/wip/demos/fyrox/recipe.toml index ba3c1057b..11c643f4c 100644 --- a/recipes/wip/demos/fyrox/recipe.toml +++ b/recipes/wip/demos/fyrox/recipe.toml @@ -1,9 +1,11 @@ #TODO glutin crate error [source] git = "https://github.com/FyroxEngine/Fyrox-demo-projects" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/ui" cookbook_cargo_packages executor """ diff --git a/recipes/wip/demos/genpdf-rs/recipe.toml b/recipes/wip/demos/genpdf-rs/recipe.toml index 20fc1c827..4032da865 100644 --- a/recipes/wip/demos/genpdf-rs/recipe.toml +++ b/recipes/wip/demos/genpdf-rs/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://git.sr.ht/~ireas/genpdf-rs" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples demo """ diff --git a/recipes/wip/demos/gfx-shader-watch/recipe.toml b/recipes/wip/demos/gfx-shader-watch/recipe.toml index 22564a197..f6bb1f474 100644 --- a/recipes/wip/demos/gfx-shader-watch/recipe.toml +++ b/recipes/wip/demos/gfx-shader-watch/recipe.toml @@ -1,8 +1,10 @@ #TODO glutin crate error [source] git = "https://github.com/alexheretic/gfx-shader-watch" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples watch-shaders """ diff --git a/recipes/wip/demos/ggez/recipe.toml b/recipes/wip/demos/ggez/recipe.toml index 542ad8e5a..546e1b329 100644 --- a/recipes/wip/demos/ggez/recipe.toml +++ b/recipes/wip/demos/ggez/recipe.toml @@ -1,8 +1,11 @@ -#TODO require rustc 1.81 +#TODO not compiled or tested [source] git = "https://github.com/ggez/ggez" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples 02_hello_world 04_snake cube hello_canvas input_test shader shadows sounds text vertex_shader +DYNAMIC_INIT +cookbook_cargo_examples 02_hello_world 04_snake cube \ +hello_canvas input_test shader shadows sounds text vertex_shader """ diff --git a/recipes/wip/demos/globe-rs/recipe.toml b/recipes/wip/demos/globe-rs/recipe.toml index 624312f71..cc14a04fa 100644 --- a/recipes/wip/demos/globe-rs/recipe.toml +++ b/recipes/wip/demos/globe-rs/recipe.toml @@ -1,9 +1,11 @@ #TODO update the mio crate version (after cargo update) [source] git = "https://github.com/adamsky/globe" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages globe-cli mv "${COOKBOOK_STAGE}/usr/bin/globe" "${COOKBOOK_STAGE}/usr/bin/globe-rs" """ diff --git a/recipes/wip/demos/hotline/recipe.toml b/recipes/wip/demos/hotline/recipe.toml index d6cae2876..6b2ca40e4 100644 --- a/recipes/wip/demos/hotline/recipe.toml +++ b/recipes/wip/demos/hotline/recipe.toml @@ -1,8 +1,10 @@ #TODO hot-lib-reloader crate error [source] git = "https://github.com/polymonster/hotline" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples triangle """ diff --git a/recipes/wip/demos/iced-7guis/recipe.toml b/recipes/wip/demos/iced-7guis/recipe.toml index 655cea56d..40d0ad9be 100644 --- a/recipes/wip/demos/iced-7guis/recipe.toml +++ b/recipes/wip/demos/iced-7guis/recipe.toml @@ -1,5 +1,6 @@ -#TODO require rustc 1.80.1 +#TODO not compiled or tested [source] git = "https://github.com/dcampbell24/iced_7guis" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/demos/if-watch/recipe.toml b/recipes/wip/demos/if-watch/recipe.toml index be84f4aa8..3e507a6a6 100644 --- a/recipes/wip/demos/if-watch/recipe.toml +++ b/recipes/wip/demos/if-watch/recipe.toml @@ -1,8 +1,10 @@ #TODO require the "smol" feature flag [source] git = "https://github.com/mxinden/if-watch" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples if_watch +DYNAMIC_INIT +cookbook_cargo --example if_watch -F smol """ diff --git a/recipes/wip/demos/imgui-examples/recipe.toml b/recipes/wip/demos/imgui-examples/recipe.toml index 560d8ce65..ace76bd38 100644 --- a/recipes/wip/demos/imgui-examples/recipe.toml +++ b/recipes/wip/demos/imgui-examples/recipe.toml @@ -1,6 +1,10 @@ -#TODO build sdl2 opengl examples, see: https://github.com/ocornut/imgui/pull/3027 +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +# pull request: https://github.com/ocornut/imgui/pull/3027 [source] git = "https://github.com/Qix-/imgui" branch = "cmake" +shallow_clone = true [build] template = "cmake" +#dependencies = ["sdl2"] diff --git a/recipes/wip/demos/iocraft/recipe.toml b/recipes/wip/demos/iocraft/recipe.toml index 18ad8f48f..e60170b92 100644 --- a/recipes/wip/demos/iocraft/recipe.toml +++ b/recipes/wip/demos/iocraft/recipe.toml @@ -1,9 +1,11 @@ #TODO not compiled or tested [source] git = "https://github.com/ccbrown/iocraft" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples borders calculator counter \ fullscreen hello_world overlap progress_bar scrolling \ table use_input use_output weather diff --git a/recipes/wip/demos/kira/recipe.toml b/recipes/wip/demos/kira/recipe.toml index 0d5a8bc98..cf0c4f756 100644 --- a/recipes/wip/demos/kira/recipe.toml +++ b/recipes/wip/demos/kira/recipe.toml @@ -1,8 +1,11 @@ #TODO ahash crate error [source] git = "https://github.com/tesselode/kira-examples" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_packages dynamic-music ghost-noise metronome score-counter spatial-audio simple-sound-playback +DYNAMIC_INIT +cookbook_cargo_packages dynamic-music ghost-noise metronome \ +score-counter spatial-audio simple-sound-playback """ diff --git a/recipes/wip/demos/kiss3d/recipe.toml b/recipes/wip/demos/kiss3d/recipe.toml index 8d9578590..f38e21921 100644 --- a/recipes/wip/demos/kiss3d/recipe.toml +++ b/recipes/wip/demos/kiss3d/recipe.toml @@ -1,8 +1,12 @@ #TODO winit crate error (even after cargo update) [source] git = "https://github.com/sebcrozet/kiss3d" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples camera cube lines multi_windows planar_lines points post_processing primitives primitives2d procedural rectangle screenshot stereo text texturing ui window +DYNAMIC_INIT +cookbook_cargo_examples camera cube lines multi_windows planar_lines \ +points post_processing primitives primitives2d procedural rectangle \ +screenshot stereo text texturing ui window """ diff --git a/recipes/wip/demos/lenia/recipe.toml b/recipes/wip/demos/lenia/recipe.toml index fa5768ac2..92d4fcd38 100644 --- a/recipes/wip/demos/lenia/recipe.toml +++ b/recipes/wip/demos/lenia/recipe.toml @@ -1,5 +1,6 @@ #TODO winit crate error (after cargo update) [source] git = "https://github.com/BirdbrainEngineer/lenia" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/demos/macroquad/recipe.toml b/recipes/wip/demos/macroquad/recipe.toml index d7d56592b..1459f6c2b 100644 --- a/recipes/wip/demos/macroquad/recipe.toml +++ b/recipes/wip/demos/macroquad/recipe.toml @@ -1,8 +1,11 @@ #TODO compiled but not tested [source] git = "https://github.com/not-fl3/macroquad" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples 3d basic_shapes camera first_person particles_example platformer shadertoy snake text ui +DYNAMIC_INIT +cookbook_cargo_examples 3d basic_shapes camera first_person \ +particles_example platformer shadertoy snake text ui """ diff --git a/recipes/wip/demos/mage/recipe.toml b/recipes/wip/demos/mage/recipe.toml index 9a14f3e90..412bbc6a1 100644 --- a/recipes/wip/demos/mage/recipe.toml +++ b/recipes/wip/demos/mage/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/baad-c0de/mage-core" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples basic hello """ diff --git a/recipes/wip/demos/mousefood/recipe.toml b/recipes/wip/demos/mousefood/recipe.toml index b2214ef9b..761707ad5 100644 --- a/recipes/wip/demos/mousefood/recipe.toml +++ b/recipes/wip/demos/mousefood/recipe.toml @@ -2,17 +2,19 @@ #TODO maybe need a patch to use the sdl2 dependency from redox [source] git = "https://github.com/j-g00da/mousefood" +shallow_clone = true [build] template = "custom" dependencies = [ "sdl2", ] script = """ +DYNAMIC_INIT recipe="$(basename "${COOKBOOK_RECIPE}")" for example in simulator do "${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ + --manifest-path "${COOKBOOK_SOURCE}/${COOKBOOK_CARGO_PATH}/Cargo.toml" \ --example "${example}" \ --release \ --features=simulator diff --git a/recipes/wip/demos/nibble/recipe.toml b/recipes/wip/demos/nibble/recipe.toml new file mode 100644 index 000000000..7198424ab --- /dev/null +++ b/recipes/wip/demos/nibble/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Vaishnav-Sabari-Girish/nibble" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/demos/notan/recipe.toml b/recipes/wip/demos/notan/recipe.toml index 6a73d3757..9c0fbeaa8 100644 --- a/recipes/wip/demos/notan/recipe.toml +++ b/recipes/wip/demos/notan/recipe.toml @@ -1,9 +1,11 @@ #TODO environment leak on CMake [source] git = "https://github.com/Nazariglez/notan" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples renderer_cube draw_path_flower \ game_pong game_of_life """ diff --git a/recipes/wip/demos/pingora/recipe.toml b/recipes/wip/demos/pingora/recipe.toml index 27ff75613..11672a217 100644 --- a/recipes/wip/demos/pingora/recipe.toml +++ b/recipes/wip/demos/pingora/recipe.toml @@ -1,8 +1,10 @@ #TODO jemalloc-sys crate error [source] git = "https://github.com/cloudflare/pingora" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples server client """ diff --git a/recipes/wip/demos/pipes-rs/recipe.toml b/recipes/wip/demos/pipes-rs/recipe.toml index 9759825ee..8611a49cc 100644 --- a/recipes/wip/demos/pipes-rs/recipe.toml +++ b/recipes/wip/demos/pipes-rs/recipe.toml @@ -1,8 +1,10 @@ #TODO libmalloc-sys crate error [source] git = "https://github.com/lhvy/pipes-rs" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages pipes-rs """ diff --git a/recipes/wip/demos/piston/recipe.toml b/recipes/wip/demos/piston/recipe.toml index d8816796f..d17e3c807 100644 --- a/recipes/wip/demos/piston/recipe.toml +++ b/recipes/wip/demos/piston/recipe.toml @@ -1,8 +1,11 @@ #TODO glutin crate error [source] git = "https://github.com/pistondevelopers/piston-examples" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples cube hello_world image multi_window shapes snake sprite +DYNAMIC_INIT +cookbook_cargo_examples cube hello_world image multi_window \ +shapes snake sprite """ diff --git a/recipes/wip/demos/pix-engine/recipe.toml b/recipes/wip/demos/pix-engine/recipe.toml index 481118943..d5aaf0f0c 100644 --- a/recipes/wip/demos/pix-engine/recipe.toml +++ b/recipes/wip/demos/pix-engine/recipe.toml @@ -1,6 +1,7 @@ #TODO not compiled or tested [source] git = "https://github.com/lukexor/pix-engine" +shallow_clone = true [build] template = "custom" dependencies = [ @@ -11,5 +12,8 @@ dependencies = [ "sdl-gfx", ] script = """ -cookbook_cargo_examples maze 2d_raycasting 3d_raycasting asteroids colors fluid_simulation gui hello_world image light matrix shapes textures tree windows +DYNAMIC_INIT +cookbook_cargo_examples maze 2d_raycasting 3d_raycasting \ +asteroids colors fluid_simulation gui hello_world image \ +light matrix shapes textures tree windows """ diff --git a/recipes/wip/demos/pixels/recipe.toml b/recipes/wip/demos/pixels/recipe.toml index c6ca5a0df..ec637e695 100644 --- a/recipes/wip/demos/pixels/recipe.toml +++ b/recipes/wip/demos/pixels/recipe.toml @@ -1,8 +1,11 @@ #TODO webbrowser crate error [source] git = "https://github.com/parasyte/pixels" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_packages conway invaders minimal-egui minimal-winit tiny-skia-winit +DYNAMIC_INIT +cookbook_cargo_packages conway invaders minimal-egui \ +minimal-winit tiny-skia-winit """ diff --git a/recipes/wip/demos/rain/recipe.toml b/recipes/wip/demos/rain/recipe.toml index f9b7e0be3..2ec43f257 100644 --- a/recipes/wip/demos/rain/recipe.toml +++ b/recipes/wip/demos/rain/recipe.toml @@ -1,8 +1,10 @@ #TODO compilation error [source] git = "https://github.com/saschagrunert/rain" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples demo """ diff --git a/recipes/wip/demos/rapier/recipe.toml b/recipes/wip/demos/rapier/recipe.toml index 6dbe10772..cae50ae1c 100644 --- a/recipes/wip/demos/rapier/recipe.toml +++ b/recipes/wip/demos/rapier/recipe.toml @@ -1,9 +1,11 @@ #TODO x11rb, rustix and webbrowser crates error [source] git = "https://github.com/dimforge/rapier" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages rapier-examples-2d rapier-examples-3d \ rapier-examples-3d-f64 """ diff --git a/recipes/wip/demos/ratzilla/recipe.toml b/recipes/wip/demos/ratzilla/recipe.toml index 80dd86b19..7da26483d 100644 --- a/recipes/wip/demos/ratzilla/recipe.toml +++ b/recipes/wip/demos/ratzilla/recipe.toml @@ -1,31 +1,22 @@ #TODO compiled but not tested [source] git = "https://github.com/orhun/ratzilla" +shallow_clone = true [build] template = "custom" script = """ -recipe="$(basename "${COOKBOOK_RECIPE}")" -function build_from_dir { - prog_name=$1 - dir_name=$2 - "${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/examples/${dir_name}/Cargo.toml" \ - ${build_flags} - mkdir -pv "${COOKBOOK_STAGE}/usr/bin" - cp -v \ - "target/${TARGET}/${build_type}/${prog_name}" \ - "${COOKBOOK_STAGE}/usr/bin/${recipe}_${prog_name}" -} -build_from_dir animations animations -build_from_dir canvas-stress-test canvas_stress_test -build_from_dir canvas-waves canvas_waves -build_from_dir color-rgb colors_rgb -build_from_dir demo demo -build_from_dir demo2 demo2 -build_from_dir minimal minimal -build_from_dir pong pong -build_from_dir text_area text_area -build_from_dir user-input user_input -build_from_dir website website -build_from_dir world-map world_map +DYNAMIC_INIT +COOKBOOK_CARGO_FLAGS=() # remove --locked +COOKBOOK_CARGO_PATH="examples/animations" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/canvas_stress_test" bin_name="canvas-stress-test" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/canvas_waves" bin_name="canvas-waves" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/colors_rgb" bin_name="color-rgb" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/demo" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/demo2" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/minimal" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/pong" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/text_area" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/user_input" bin_name="user-input" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/website" cookbook_cargo_build +COOKBOOK_CARGO_PATH="examples/world_map" bin_name="world-map" cookbook_cargo_build """ diff --git a/recipes/wip/demos/rend3/recipe.toml b/recipes/wip/demos/rend3/recipe.toml index 87b59d639..17a06ea9e 100644 --- a/recipes/wip/demos/rend3/recipe.toml +++ b/recipes/wip/demos/rend3/recipe.toml @@ -1,8 +1,10 @@ #TODO webbrowser crate error [source] git = "https://github.com/BVE-Reborn/rend3" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages rend3-examples-package """ diff --git a/recipes/wip/demos/renderling/recipe.toml b/recipes/wip/demos/renderling/recipe.toml index d8c9aeeaf..178c6516d 100644 --- a/recipes/wip/demos/renderling/recipe.toml +++ b/recipes/wip/demos/renderling/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/schell/renderling" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages example """ diff --git a/recipes/wip/demos/reticulum-rs/recipe.toml b/recipes/wip/demos/reticulum-rs/recipe.toml index f4064148a..97f0cf818 100644 --- a/recipes/wip/demos/reticulum-rs/recipe.toml +++ b/recipes/wip/demos/reticulum-rs/recipe.toml @@ -1,9 +1,11 @@ #TODO not compiled or tested -# the protobuf compiler needs to be installed +# require protobuf [source] git = "https://github.com/BeechatNetworkSystemsLtd/Reticulum-rs" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples tcp_client kaonic_client """ diff --git a/recipes/wip/demos/rootvg/recipe.toml b/recipes/wip/demos/rootvg/recipe.toml index 611dcd550..f2ef09e8f 100644 --- a/recipes/wip/demos/rootvg/recipe.toml +++ b/recipes/wip/demos/rootvg/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/MeadowlarkDAW/rootvg" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples demo """ diff --git a/recipes/wip/demos/rpt/recipe.toml b/recipes/wip/demos/rpt/recipe.toml index 91658f4a4..09d72696d 100644 --- a/recipes/wip/demos/rpt/recipe.toml +++ b/recipes/wip/demos/rpt/recipe.toml @@ -1,8 +1,12 @@ #TODO compiled but not tested [source] git = "https://github.com/ekzhang/rpt" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples basic cylinder fractal_spheres fractal_teapots glass marbles metal rustacean sphere spheres teapot +DYNAMIC_INIT +cookbook_cargo_examples basic cylinder fractal_spheres \ +fractal_teapots glass marbles metal rustacean sphere \ +spheres teapot """ diff --git a/recipes/wip/demos/rsille/recipe.toml b/recipes/wip/demos/rsille/recipe.toml index f2cd28e89..cdeb85f12 100644 --- a/recipes/wip/demos/rsille/recipe.toml +++ b/recipes/wip/demos/rsille/recipe.toml @@ -1,15 +1,17 @@ #TODO compiled but not tested [source] git = "https://github.com/nidhoggfgg/rsille" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples anime-mix obj-mix cube cube-colorful recipe="$(basename "${COOKBOOK_RECIPE}")" for example in imgille do "${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ + --manifest-path "${COOKBOOK_SOURCE}/${COOKBOOK_CARGO_PATH}/Cargo.toml" \ --example "${example}" \ --release \ --features=img diff --git a/recipes/wip/demos/rui/recipe.toml b/recipes/wip/demos/rui/recipe.toml index 00c861daf..67d5fba9c 100644 --- a/recipes/wip/demos/rui/recipe.toml +++ b/recipes/wip/demos/rui/recipe.toml @@ -1,9 +1,13 @@ #TODO compiled but not tested [source] git = "https://github.com/audulus/rui" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages calculator synth -cookbook_cargo_examples action background basic canvas counter counter2 font_size gallery list menu shapes slider text_editor toggle +cookbook_cargo_examples action background basic canvas \ +counter counter2 font_size gallery list menu shapes slider \ +text_editor toggle """ diff --git a/recipes/wip/demos/ruscii/recipe.toml b/recipes/wip/demos/ruscii/recipe.toml index e47657cab..400e6012d 100644 --- a/recipes/wip/demos/ruscii/recipe.toml +++ b/recipes/wip/demos/ruscii/recipe.toml @@ -1,8 +1,10 @@ #TODO device_query crate error [source] git = "https://github.com/lemunozm/ruscii" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples pong space_invaders """ diff --git a/recipes/wip/demos/rustubble/recipe.toml b/recipes/wip/demos/rustubble/recipe.toml index 022603b18..259672c2b 100644 --- a/recipes/wip/demos/rustubble/recipe.toml +++ b/recipes/wip/demos/rustubble/recipe.toml @@ -1,8 +1,13 @@ #TODO compiled but not tested [source] git = "https://github.com/warpy-ai/rustubble" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples list_example menu_list_example progress_bar_example spinner_example stopwatch_example table_example text_area_example text_input_example timer_example viewport_example +DYNAMIC_INIT +cookbook_cargo_examples list_example menu_list_example \ +progress_bar_example spinner_example stopwatch_example \ +table_example text_area_example text_input_example \ +timer_example viewport_example """ diff --git a/recipes/wip/demos/rustui/recipe.toml b/recipes/wip/demos/rustui/recipe.toml index cda858c7b..a5b0deeae 100644 --- a/recipes/wip/demos/rustui/recipe.toml +++ b/recipes/wip/demos/rustui/recipe.toml @@ -1,9 +1,11 @@ #TODO not compiled or tested [source] git = "https://github.com/broccolingual/rustui" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples hello_world colors inputs file_reader cookbook_cargo_packages tetris """ diff --git a/recipes/wip/demos/rusty-rain/recipe.toml b/recipes/wip/demos/rusty-rain/recipe.toml index e1e799b2e..d8a47e542 100644 --- a/recipes/wip/demos/rusty-rain/recipe.toml +++ b/recipes/wip/demos/rusty-rain/recipe.toml @@ -1,5 +1,6 @@ -#TODO working but don't exit and hang the orbterm window +#TODO compiled but not tested for a long time [source] git = "https://github.com/cowboy8625/rusty-rain" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/demos/servo-gtk/recipe.toml b/recipes/wip/demos/servo-gtk/recipe.toml index c512b5467..1a32ba039 100644 --- a/recipes/wip/demos/servo-gtk/recipe.toml +++ b/recipes/wip/demos/servo-gtk/recipe.toml @@ -1,11 +1,13 @@ #TODO not compiled or tested [source] git = "https://github.com/nacho/servo-gtk" +shallow_clone = true [build] template = "custom" dependencies = [ "gtk4" ] script = """ +DYNAMIC_INIT cookbook_cargo_examples browser """ diff --git a/recipes/wip/demos/simdjson-rs/recipe.toml b/recipes/wip/demos/simdjson-rs/recipe.toml index 464baef0e..385d27fa1 100644 --- a/recipes/wip/demos/simdjson-rs/recipe.toml +++ b/recipes/wip/demos/simdjson-rs/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/simd-lite/simd-json" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples perf """ diff --git a/recipes/wip/demos/slint/recipe.toml b/recipes/wip/demos/slint/recipe.toml index ccdff83c1..8a3708720 100644 --- a/recipes/wip/demos/slint/recipe.toml +++ b/recipes/wip/demos/slint/recipe.toml @@ -1,12 +1,11 @@ -#TODO make libwayland work +#TODO not compiled or tested [source] git = "https://github.com/slint-ui/slint" +shallow_clone = true [build] template = "custom" -dependencies = [ - "libwayland", -] script = """ +DYNAMIC_INIT cookbook_cargo_packages gallery energy-monitor carousel \ memory imagefilter plotter opengl_underlay opengl_texture \ maps virtual_keyboard 7guis diff --git a/recipes/wip/demos/soft-ratatui/recipe.toml b/recipes/wip/demos/soft-ratatui/recipe.toml index 581486de3..2fee98520 100644 --- a/recipes/wip/demos/soft-ratatui/recipe.toml +++ b/recipes/wip/demos/soft-ratatui/recipe.toml @@ -1,6 +1,10 @@ #TODO glutin crate error [source] git = "https://github.com/gold-silver-copper/soft_ratatui" +shallow_clone = true [build] -template = "cargo" -package_path = "egui_colors_example" +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo_packages egui_colors_example +""" diff --git a/recipes/wip/demos/speedy2d/recipe.toml b/recipes/wip/demos/speedy2d/recipe.toml index 5a84ea166..42de4fa7d 100644 --- a/recipes/wip/demos/speedy2d/recipe.toml +++ b/recipes/wip/demos/speedy2d/recipe.toml @@ -1,8 +1,10 @@ #TODO glutin crate error [source] git = "https://github.com/QuantumBadger/Speedy2D" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples animation hello_world moving_text """ diff --git a/recipes/wip/demos/spinners/recipe.toml b/recipes/wip/demos/spinners/recipe.toml index 42bd81e8c..d99ca635f 100644 --- a/recipes/wip/demos/spinners/recipe.toml +++ b/recipes/wip/demos/spinners/recipe.toml @@ -1,8 +1,11 @@ #TODO compiled but not tested [source] git = "https://github.com/FGRibreau/spinners" +shallow_clone = true [build] template = "custom" script = """ -cookbook_cargo_examples cycle simple stop_persist stop_symbol timer +DYNAMIC_INIT +cookbook_cargo_examples cycle simple stop_persist \ +stop_symbol timer """ diff --git a/recipes/wip/demos/spinoff/recipe.toml b/recipes/wip/demos/spinoff/recipe.toml index c531d028d..6b06f8ea1 100644 --- a/recipes/wip/demos/spinoff/recipe.toml +++ b/recipes/wip/demos/spinoff/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/ad4mx/spinoff" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples simple stop_and_persist stream """ diff --git a/recipes/wip/demos/tachyonfx/recipe.toml b/recipes/wip/demos/tachyonfx/recipe.toml index 840d1d58c..716935e96 100644 --- a/recipes/wip/demos/tachyonfx/recipe.toml +++ b/recipes/wip/demos/tachyonfx/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/junkdog/tachyonfx" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples basic-effects open-window tweens """ diff --git a/recipes/wip/demos/taffy/recipe.toml b/recipes/wip/demos/taffy/recipe.toml index 0be378225..9b28c45c4 100644 --- a/recipes/wip/demos/taffy/recipe.toml +++ b/recipes/wip/demos/taffy/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/DioxusLabs/taffy" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples basic """ diff --git a/recipes/wip/demos/tenki/recipe.toml b/recipes/wip/demos/tenki/recipe.toml index cd4343c87..a30667fb5 100644 --- a/recipes/wip/demos/tenki/recipe.toml +++ b/recipes/wip/demos/tenki/recipe.toml @@ -1,5 +1,6 @@ #TODO compiled but not tested [source] git = "https://github.com/ckaznable/tenki" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/demos/termtree/recipe.toml b/recipes/wip/demos/termtree/recipe.toml index d23b074fe..dd6c6203a 100644 --- a/recipes/wip/demos/termtree/recipe.toml +++ b/recipes/wip/demos/termtree/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/rust-cli/termtree" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples tree """ diff --git a/recipes/wip/demos/ternimal/recipe.toml b/recipes/wip/demos/ternimal/recipe.toml index 9132d89ff..f638d40ba 100644 --- a/recipes/wip/demos/ternimal/recipe.toml +++ b/recipes/wip/demos/ternimal/recipe.toml @@ -1,8 +1,15 @@ -#TODO probably wrong script, see https://github.com/p-e-w/ternimal#building +#TODO not compiled or tested +#TODO add condition script for multiarch compilation +# build instructions: https://github.com/p-e-w/ternimal#building [source] git = "https://github.com/p-e-w/ternimal" +shallow_clone = true [build] template = "custom" script = """ -rustc -O "${COOKBOOK_SOURCE}"/ternimal.rs +DYNAMIC_INIT +cp -v "${COOKBOOK_SOURCE}"/ternimal.rs "${COOKBOOK_BUILD}" +rustc -O "${COOKBOOK_BUILD}"/ternimal.rs --target x86_64-unknown-redox +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +cp -v "${COOKBOOK_BUILD}"/ternimal "${COOKBOOK_STAGE}/usr/bin" """ diff --git a/recipes/wip/demos/terra/recipe.toml b/recipes/wip/demos/terra/recipe.toml index 098123fe5..496c9d20c 100644 --- a/recipes/wip/demos/terra/recipe.toml +++ b/recipes/wip/demos/terra/recipe.toml @@ -1,9 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/fintelia/terra" +shallow_clone = true [build] template = "cargo" dependencies = [ - "openssl1", + "openssl3", "mesa", ] diff --git a/recipes/wip/demos/three-d/recipe.toml b/recipes/wip/demos/three-d/recipe.toml index 1bc0882b0..9b2f62225 100644 --- a/recipes/wip/demos/three-d/recipe.toml +++ b/recipes/wip/demos/three-d/recipe.toml @@ -1,11 +1,16 @@ #TODO glutin crate error [source] git = "https://github.com/asny/three-d" +shallow_clone = true [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", ] script = """ -cookbook_cargo_examples animation environment fireworks fog forest image instanced_shapes lighting lights logo mandelbrot multiwindow pbr shapes shapes2d sprites statues terrain texture triangle +DYNAMIC_INIT +cookbook_cargo_examples animation environment fireworks \ +fog forest image instanced_shapes lighting lights logo \ +mandelbrot multiwindow pbr shapes shapes2d sprites statues \ +terrain texture triangle """ diff --git a/recipes/wip/demos/tquic/recipe.toml b/recipes/wip/demos/tquic/recipe.toml index 18850514b..f4bab83b5 100644 --- a/recipes/wip/demos/tquic/recipe.toml +++ b/recipes/wip/demos/tquic/recipe.toml @@ -1,9 +1,11 @@ #TODO tikv-jemalloc-sys crate error [source] git = "https://github.com/Tencent/tquic" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages tquic_tools mv "${COOKBOOK_STAGE}/usr/bin/tquic_server" "${COOKBOOK_STAGE}/usr/bin/tquic-server" mv "${COOKBOOK_STAGE}/usr/bin/tquic_client" "${COOKBOOK_STAGE}/usr/bin/tquic-client" diff --git a/recipes/wip/demos/uniocr/recipe.toml b/recipes/wip/demos/uniocr/recipe.toml index c46f893fd..d52658f39 100644 --- a/recipes/wip/demos/uniocr/recipe.toml +++ b/recipes/wip/demos/uniocr/recipe.toml @@ -1,11 +1,13 @@ #TODO xcap crate error [source] git = "https://github.com/mediar-ai/uniOCR" +shallow_clone = true [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", ] script = """ +DYNAMIC_INIT cookbook_cargo_examples basic batch_processing """ diff --git a/recipes/wip/demos/usfx/recipe.toml b/recipes/wip/demos/usfx/recipe.toml index 4d7eca8d8..5280d1279 100644 --- a/recipes/wip/demos/usfx/recipe.toml +++ b/recipes/wip/demos/usfx/recipe.toml @@ -1,6 +1,7 @@ #TODO not compiled or tested [source] git = "https://github.com/tversteeg/usfx" +shallow_clone = true [build] template = "custom" dependencies = [ @@ -8,5 +9,6 @@ dependencies = [ "sdl2", ] script = """ +DYNAMIC_INIT cookbook_cargo_examples cpal music sdl2 """ diff --git a/recipes/wip/demos/vizia/recipe.toml b/recipes/wip/demos/vizia/recipe.toml index 661efd38b..e7de869a6 100644 --- a/recipes/wip/demos/vizia/recipe.toml +++ b/recipes/wip/demos/vizia/recipe.toml @@ -1,11 +1,13 @@ -#TODO make libwayland work +#TODO not compiled or tested [source] git = "https://github.com/vizia/vizia" +shallow_clone = true [build] template = "custom" -dependencies = [ - "libwayland", -] +#dependencies = [ +# "libwayland", +#] script = """ +DYNAMIC_INIT cookbook_cargo_examples animation dragdrop number input timers """ diff --git a/recipes/wip/demos/wavy/recipe.toml b/recipes/wip/demos/wavy/recipe.toml index 8dc2e261f..5b5bcc30b 100644 --- a/recipes/wip/demos/wavy/recipe.toml +++ b/recipes/wip/demos/wavy/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested [source] git = "https://github.com/ardaku/wavy" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples monitor play query record """ diff --git a/recipes/wip/demos/wgpu-sky-rendering/recipe.toml b/recipes/wip/demos/wgpu-sky-rendering/recipe.toml index b46016b45..a05e809ec 100644 --- a/recipes/wip/demos/wgpu-sky-rendering/recipe.toml +++ b/recipes/wip/demos/wgpu-sky-rendering/recipe.toml @@ -1,5 +1,6 @@ #TODO compiled but not tested [source] git = "https://github.com/bmatthieu3/wgpu-sky-rendering" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/demos/xaos/recipe.toml b/recipes/wip/demos/xaos/recipe.toml index a13d2112a..82ff73f53 100644 --- a/recipes/wip/demos/xaos/recipe.toml +++ b/recipes/wip/demos/xaos/recipe.toml @@ -1,10 +1,13 @@ -#TODO missing script for QMake, see https://github.com/xaos-project/XaoS/wiki/Developer's-Guide#build-instructions-for-version-43 +#TODO not compiled or tested +#TODO determine minimum dependencies from cmake log +# build instructions: https://github.com/xaos-project/XaoS/wiki/Developer's-Guide#build-instructions-for-version-433 [source] git = "https://github.com/xaos-project/XaoS" -rev = "7f36177f32a23eea88911afb90878046912d7e2d" +rev = "release-4.3.4" +shallow_clone = true [build] -template = "custom" -dependencies = [ - "qt6-base", - "mesa", -] +template = "cmake" +#dependencies = [ +# "qt6-base", +# "mesa", +#] diff --git a/recipes/wip/demos/xilem/recipe.toml b/recipes/wip/demos/xilem/recipe.toml index 75f76028a..08ac1a8a0 100644 --- a/recipes/wip/demos/xilem/recipe.toml +++ b/recipes/wip/demos/xilem/recipe.toml @@ -1,8 +1,10 @@ #TODO xilem_core crate error [source] git = "https://github.com/linebender/xilem" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples components """ diff --git a/recipes/wip/dev/analysis/binocle/recipe.toml b/recipes/wip/dev/analysis/binocle/recipe.toml index 3bdd8bae9..32b158686 100644 --- a/recipes/wip/dev/analysis/binocle/recipe.toml +++ b/recipes/wip/dev/analysis/binocle/recipe.toml @@ -1,5 +1,6 @@ #TODO "No suitable wgpu::Adapter found" error on execution [source] git = "https://github.com/sharkdp/binocle" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/binwalk/recipe.toml b/recipes/wip/dev/analysis/binwalk/recipe.toml index 8ee40ae95..62044bed0 100644 --- a/recipes/wip/dev/analysis/binwalk/recipe.toml +++ b/recipes/wip/dev/analysis/binwalk/recipe.toml @@ -1,6 +1,7 @@ #TODO not compiled or tested [source] git = "https://github.com/ReFirmLabs/binwalk" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/dev/analysis/code-minimap/recipe.toml b/recipes/wip/dev/analysis/code-minimap/recipe.toml index c0a18e39b..2f991c2ed 100644 --- a/recipes/wip/dev/analysis/code-minimap/recipe.toml +++ b/recipes/wip/dev/analysis/code-minimap/recipe.toml @@ -1,5 +1,6 @@ #TODO compiled but not tested [source] git = "https://github.com/wfxr/code-minimap" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/codevis/recipe.toml b/recipes/wip/dev/analysis/codevis/recipe.toml index 809a63564..9c3cedb12 100644 --- a/recipes/wip/dev/analysis/codevis/recipe.toml +++ b/recipes/wip/dev/analysis/codevis/recipe.toml @@ -1,5 +1,6 @@ #TODO open crate error (after cargo update) [source] git = "https://github.com/sloganking/codevis" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/debtmap/recipe.toml b/recipes/wip/dev/analysis/debtmap/recipe.toml index 11a61f1ea..82095b2ce 100644 --- a/recipes/wip/dev/analysis/debtmap/recipe.toml +++ b/recipes/wip/dev/analysis/debtmap/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/iepathos/debtmap" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/feluda/recipe.toml b/recipes/wip/dev/analysis/feluda/recipe.toml index 75902a3f1..977c3b46c 100644 --- a/recipes/wip/dev/analysis/feluda/recipe.toml +++ b/recipes/wip/dev/analysis/feluda/recipe.toml @@ -1,8 +1,9 @@ #TODO camino crate error [source] git = "https://github.com/anistark/feluda" +shallow_clone = true [build] template = "cargo" dependencies = [ - "openssl1", + "openssl3", ] diff --git a/recipes/wip/dev/analysis/hex/recipe.toml b/recipes/wip/dev/analysis/hex/recipe.toml index 1a2f38dcb..6737d807c 100644 --- a/recipes/wip/dev/analysis/hex/recipe.toml +++ b/recipes/wip/dev/analysis/hex/recipe.toml @@ -1,5 +1,6 @@ #TODO compiled but not tested [source] git = "https://github.com/sitkevij/hex" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/hgrep/recipe.toml b/recipes/wip/dev/analysis/hgrep/recipe.toml index 634ca89fc..6a71dbc64 100644 --- a/recipes/wip/dev/analysis/hgrep/recipe.toml +++ b/recipes/wip/dev/analysis/hgrep/recipe.toml @@ -1,5 +1,6 @@ #TODO compilation error, missing mimalloc sys/syscall.h [source] git = "https://github.com/rhysd/hgrep" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/hl/recipe.toml b/recipes/wip/dev/analysis/hl/recipe.toml index b6a227d5e..b6c52a475 100644 --- a/recipes/wip/dev/analysis/hl/recipe.toml +++ b/recipes/wip/dev/analysis/hl/recipe.toml @@ -1,5 +1,6 @@ #TODO compiled but not tested [source] git = "https://github.com/pamburus/hl" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/honggfuzz-rs/recipe.toml b/recipes/wip/dev/analysis/honggfuzz-rs/recipe.toml index de6a688dc..1ebd91a9a 100644 --- a/recipes/wip/dev/analysis/honggfuzz-rs/recipe.toml +++ b/recipes/wip/dev/analysis/honggfuzz-rs/recipe.toml @@ -1,6 +1,7 @@ #TODO not compiled or tested [source] git = "https://github.com/rust-fuzz/honggfuzz-rs" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/dev/analysis/hx/recipe.toml b/recipes/wip/dev/analysis/hx/recipe.toml index 46f32c475..15983c0f2 100644 --- a/recipes/wip/dev/analysis/hx/recipe.toml +++ b/recipes/wip/dev/analysis/hx/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing script for "make", see https://github.com/krpors/hx#compiling-and-running +#TODO missing script for gnu make: https://github.com/krpors/hx#compiling-and-running [source] git = "https://github.com/krpors/hx" -rev = "c124b40586f701e47b35628fde286d20bf9988ca" +rev = "v1.0.15" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/dev/analysis/pratdiff/recipe.toml b/recipes/wip/dev/analysis/pratdiff/recipe.toml index 05bfd0b92..90a842d33 100644 --- a/recipes/wip/dev/analysis/pratdiff/recipe.toml +++ b/recipes/wip/dev/analysis/pratdiff/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/fowles/pratdiff" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/rust-ontologist/recipe.toml b/recipes/wip/dev/analysis/rust-ontologist/recipe.toml deleted file mode 100644 index 8a2422e9d..000000000 --- a/recipes/wip/dev/analysis/rust-ontologist/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO the multipipe crate was removed from crates.io, wait this PR to be merged: https://github.com/lava-xyz/rust-ontologist/pull/7 -[source] -git = "https://github.com/lava-xyz/rust-ontologist" -[build] -template = "cargo" diff --git a/recipes/wip/dev/analysis/statui/recipe.toml b/recipes/wip/dev/analysis/statui/recipe.toml index 2fc9fdf9a..03ff1b084 100644 --- a/recipes/wip/dev/analysis/statui/recipe.toml +++ b/recipes/wip/dev/analysis/statui/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/Mohamed-Badry/statui" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/tinywatcher/recipe.toml b/recipes/wip/dev/analysis/tinywatcher/recipe.toml index cf09d2e52..6bbd38fff 100644 --- a/recipes/wip/dev/analysis/tinywatcher/recipe.toml +++ b/recipes/wip/dev/analysis/tinywatcher/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/tinywatcher/tinywatcher" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/analysis/zizmor/recipe.toml b/recipes/wip/dev/analysis/zizmor/recipe.toml index 7355c743b..b6ef326fb 100644 --- a/recipes/wip/dev/analysis/zizmor/recipe.toml +++ b/recipes/wip/dev/analysis/zizmor/recipe.toml @@ -1,8 +1,10 @@ #TODO camino crate error [source] git = "https://github.com/woodruffw/zizmor" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages zizmor """ diff --git a/recipes/wip/dev/blockchain/foundry/recipe.toml b/recipes/wip/dev/blockchain/foundry/recipe.toml new file mode 100644 index 000000000..fc6670c8a --- /dev/null +++ b/recipes/wip/dev/blockchain/foundry/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/foundry-rs/foundry" +shallow_clone = true +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo_packages anvil cast chisel forge +""" diff --git a/recipes/wip/dev/blockchain/geth/recipe.toml b/recipes/wip/dev/blockchain/geth/recipe.toml new file mode 100644 index 000000000..dec097fb2 --- /dev/null +++ b/recipes/wip/dev/blockchain/geth/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for gnu make: https://geth.ethereum.org/docs/getting-started/installing-geth#build-from-source +[source] +git = "https://github.com/ethereum/go-ethereum" +branch = "release/1.16" +shallow_clone = true +[build] +template = "custom" diff --git a/recipes/wip/dev/blockchain/solidity/recipe.toml b/recipes/wip/dev/blockchain/solidity/recipe.toml new file mode 100644 index 000000000..340b72d91 --- /dev/null +++ b/recipes/wip/dev/blockchain/solidity/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://docs.soliditylang.org/en/v0.8.33/installing-solidity.html#building-from-source +[source] +tar = "https://github.com/argotorg/solidity/releases/download/v0.8.33/solidity_0.8.33.tar.gz" +[build] +template = "cmake" +cmakeflags = [ + "-DPEDANTIC=OFF", +] +dependencies = [ + "boost", +] diff --git a/recipes/wip/dev/blockchain/surfpool/recipe.toml b/recipes/wip/dev/blockchain/surfpool/recipe.toml new file mode 100644 index 000000000..f43e77d83 --- /dev/null +++ b/recipes/wip/dev/blockchain/surfpool/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/txtx/surfpool" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "openssl3", +] +script = """ +DYNAMIC_INIT +cookbook_cargo_packages surfpool-cli +""" diff --git a/recipes/wip/dev/build-system/ant/recipe.toml b/recipes/wip/dev/build-system/ant/recipe.toml index 3c04f05e1..b2b1b7cf7 100644 --- a/recipes/wip/dev/build-system/ant/recipe.toml +++ b/recipes/wip/dev/build-system/ant/recipe.toml @@ -1,5 +1,13 @@ -#TODO missing script for building: https://ant.apache.org/manual/install.html#buildingant +#TODO not tested [source] -tar = "https://downloads.apache.org/ant/source/apache-ant-1.10.14-src.tar.xz" +tar = "https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.15-bin.tar.xz" [build] template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/usr/bin/ant-dir" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/usr/bin/ant-dir" +echo "/usr/bin/ant-dir/bin/ant" > "${COOKBOOK_STAGE}"/usr/bin/ant +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/ant +""" +[package] +dependencies = ["openjdk21",] diff --git a/recipes/wip/dev/build-system/sbt/recipe.toml b/recipes/wip/dev/build-system/sbt/recipe.toml new file mode 100644 index 000000000..3c4d5d1f5 --- /dev/null +++ b/recipes/wip/dev/build-system/sbt/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for building, discover how to build +[source] +git = "https://github.com/sbt/sbt" +branch = "1.12.x" +shallow_clone = true +[build] +template = "custom" diff --git a/recipes/wip/dev/build-system/scala-cli/recipe.toml b/recipes/wip/dev/build-system/scala-cli/recipe.toml new file mode 100644 index 000000000..f2943064e --- /dev/null +++ b/recipes/wip/dev/build-system/scala-cli/recipe.toml @@ -0,0 +1,11 @@ +#TODO not tested yet +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +wget https://github.com/VirtusLab/scala-cli/releases/download/v1.12.1/scala-cli.jar "${COOKBOOK_STAGE}"/usr/bin +echo "#!/usr/bin/env sh \n java -jar scala-cli.jar" > "${COOKBOOK_STAGE}"/usr/bin/scala-cli +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/scala-cli +""" +[package] +dependencies = ["openjdk21"] diff --git a/recipes/wip/dev/cargo-tools/cargo-cache/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-cache/recipe.toml index 8bdb0ca01..614151d7a 100644 --- a/recipes/wip/dev/cargo-tools/cargo-cache/recipe.toml +++ b/recipes/wip/dev/cargo-tools/cargo-cache/recipe.toml @@ -1,4 +1,5 @@ -#TODO camino crate error +# TODO compile errors from fs_at 0.1.4, libc 0.2.140, proc-macro2 1.0.53 +# tested 29th January 2026 [source] git = "https://github.com/matthiaskrgr/cargo-cache" [build] diff --git a/recipes/wip/dev/cargo-tools/cargo-tarpaulin/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-tarpaulin/recipe.toml index 85ed8020f..3e7528a7c 100644 --- a/recipes/wip/dev/cargo-tools/cargo-tarpaulin/recipe.toml +++ b/recipes/wip/dev/cargo-tools/cargo-tarpaulin/recipe.toml @@ -1,4 +1,5 @@ -#TODO camino crate error +# TODO compiles and works. Need cargo disk I/O errors fixed before it can be used. +# tested 29th January 2026 [source] git = "https://github.com/xd009642/tarpaulin" [build] diff --git a/recipes/wip/dev/git-tools/keifu/recipe.toml b/recipes/wip/dev/git-tools/keifu/recipe.toml new file mode 100644 index 000000000..08898a9d9 --- /dev/null +++ b/recipes/wip/dev/git-tools/keifu/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/trasta298/keifu" +[build] +template = "cargo" +[package] +dependencies = [ + "git", +] diff --git a/recipes/wip/dev/git-tools/oyo/recipe.toml b/recipes/wip/dev/git-tools/oyo/recipe.toml new file mode 100644 index 000000000..7ca99f5b7 --- /dev/null +++ b/recipes/wip/dev/git-tools/oyo/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ahkohd/oyo" +[build] +template = "custom" +script = """ +cookbook_cargo_packages oyo +""" diff --git a/recipes/wip/dev/git-tools/shackle-shell/recipe.toml b/recipes/wip/dev/git-tools/shackle-shell/recipe.toml new file mode 100644 index 000000000..960e2e274 --- /dev/null +++ b/recipes/wip/dev/git-tools/shackle-shell/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://codeberg.org/worthe-it/shackle-shell" +[build] +template = "cargo" diff --git a/recipes/wip/dev/hw/design/recipe.toml b/recipes/wip/dev/hw/design/recipe.toml new file mode 100644 index 000000000..63eaa9c58 --- /dev/null +++ b/recipes/wip/dev/hw/design/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +[source] +git = "https://github.com/dubstar-04/Design" +rev = "e6906bc36217306b07d23fa5a4332778db8bca78" +shallow_clone = true +[build] +template = "meson" diff --git a/recipes/wip/dev/hw/uefitool/recipe.toml b/recipes/wip/dev/hw/uefitool/recipe.toml new file mode 100644 index 000000000..29d26ea47 --- /dev/null +++ b/recipes/wip/dev/hw/uefitool/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for compilation: https://github.com/LongSoft/UEFITool#installation +[source] +git = "https://github.com/LongSoft/UEFITool" +rev = "A73" +shallow_clone = true +[build] +template = "custom" diff --git a/recipes/wip/dev/lang/artichoke/recipe.toml b/recipes/wip/dev/lang/artichoke/recipe.toml index 0bf2fc0c1..7619a04e9 100644 --- a/recipes/wip/dev/lang/artichoke/recipe.toml +++ b/recipes/wip/dev/lang/artichoke/recipe.toml @@ -1,5 +1,6 @@ #TODO iana-time-zone crate error [source] git = "https://github.com/artichoke/artichoke" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/lang/blueprint/recipe.toml b/recipes/wip/dev/lang/blueprint/recipe.toml new file mode 100644 index 000000000..747d6a5de --- /dev/null +++ b/recipes/wip/dev/lang/blueprint/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/blueprint-compiler/0.19/blueprint-compiler-0.19.0.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/dev/lang/brimstone/recipe.toml b/recipes/wip/dev/lang/brimstone/recipe.toml index 4a1ab8da5..cbee54c1d 100644 --- a/recipes/wip/dev/lang/brimstone/recipe.toml +++ b/recipes/wip/dev/lang/brimstone/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/Hans-Halverson/brimstone" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/lang/cjit/recipe.toml b/recipes/wip/dev/lang/cjit/recipe.toml index 7c3020f12..a21c67dff 100644 --- a/recipes/wip/dev/lang/cjit/recipe.toml +++ b/recipes/wip/dev/lang/cjit/recipe.toml @@ -1,6 +1,7 @@ -#TODO write a gnu make target for redox, see: https://github.com/dyne/cjit#build-from-source +#TODO write a gnu make target for redox: https://github.com/dyne/cjit#build-from-source [source] git = "https://github.com/dyne/cjit" -rev = "9a4321e64ea1af10e9e3c63de45af80b36846cda" +rev = "v0.18.2" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/dev/lang/dotnet8/recipe.toml b/recipes/wip/dev/lang/dotnet8/recipe.toml new file mode 100644 index 000000000..60f24e3b6 --- /dev/null +++ b/recipes/wip/dev/lang/dotnet8/recipe.toml @@ -0,0 +1,17 @@ +#TODO missing script for building: https://github.com/dotnet/dotnet/tree/release/8.0.1xx#building +# linux requirements: https://github.com/dotnet/runtime/blob/release/8.0/docs/workflow/requirements/linux-requirements.md +# freebsd requirements: https://github.com/dotnet/runtime/blob/release/8.0/docs/workflow/requirements/freebsd-requirements.md#linux-environment +# bootstraping: https://github.com/dotnet/source-build/blob/main/Documentation/bootstrapping-guidelines.md#building-for-new-os-using-a-rid-unknown-to-net +[source] +git = "https://github.com/dotnet/dotnet" +branch = "release/8.0.1xx" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "libicu", + "lttng-ust", + "openssl3", + "kerberos5", + "zlib", +] diff --git a/recipes/wip/dev/lang/elixir/recipe.toml b/recipes/wip/dev/lang/elixir/recipe.toml index 33906690c..2bcb83d35 100644 --- a/recipes/wip/dev/lang/elixir/recipe.toml +++ b/recipes/wip/dev/lang/elixir/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing script for "make", see https://github.com/elixir-lang/elixir#compiling-from-source +#TODO missing script for gnu make: https://github.com/elixir-lang/elixir#compiling-from-source [source] git = "https://github.com/elixir-lang/elixir" -rev = "927b10df80ee1c1c7396e68efe00d06bc3e80420" +branch = "v1.19" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/dev/lang/elm/recipe.toml b/recipes/wip/dev/lang/elm/recipe.toml index b379c2b65..343c18269 100644 --- a/recipes/wip/dev/lang/elm/recipe.toml +++ b/recipes/wip/dev/lang/elm/recipe.toml @@ -1,6 +1,7 @@ #TODO missing script for building, lacking build instructions [source] git = "https://github.com/elm/compiler" -rev = "c9aefb6230f5e0bda03205ab0499f6e4af924495" +rev = "0.19.1" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/dev/lang/erlang/recipe.toml b/recipes/wip/dev/lang/erlang/recipe.toml index 02c55a5df..d6aab8b6b 100644 --- a/recipes/wip/dev/lang/erlang/recipe.toml +++ b/recipes/wip/dev/lang/erlang/recipe.toml @@ -1,12 +1,14 @@ -#TODO probably wrong script, see https://www.erlang.org/doc/installation_guide/install +#TODO discover current status +# build instructions: https://www.erlang.org/doc/installation_guide/install [source] -tar = "https://github.com/erlang/otp/releases/download/OTP-26.1.1/otp_src_26.1.1.tar.gz" +tar = "https://github.com/erlang/otp/releases/download/OTP-28.3.1/otp_src_28.3.1.tar.gz" [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", ] script = """ +DYNAMIC_INIT export ERL_TOP="${COOKBOOK_SOURCE}" COOKBOOK_CONFIGURE_FLAGS+=( --without-termcap diff --git a/recipes/wip/dev/lang/ghc/recipe.toml b/recipes/wip/dev/lang/ghc/recipe.toml index 9ab877b51..6a3824b1c 100644 --- a/recipes/wip/dev/lang/ghc/recipe.toml +++ b/recipes/wip/dev/lang/ghc/recipe.toml @@ -1,5 +1,5 @@ -#TODO missing script for Hadrian, see https://gitlab.haskell.org/ghc/ghc/-/wikis/building/hadrian +#TODO missing script for hadrian: https://gitlab.haskell.org/ghc/ghc/-/wikis/building/hadrian [source] -tar = "https://downloads.haskell.org/~ghc/9.8.1/ghc-9.8.1-src.tar.xz" +tar = "https://downloads.haskell.org/~ghc/9.14.1/ghc-9.14.1-src.tar.xz" [build] template = "custom" diff --git a/recipes/wip/dev/lang/ghostscript/recipe.toml b/recipes/wip/dev/lang/ghostscript/recipe.toml index feced6dbd..e12f0f0d1 100644 --- a/recipes/wip/dev/lang/ghostscript/recipe.toml +++ b/recipes/wip/dev/lang/ghostscript/recipe.toml @@ -1,6 +1,6 @@ -#TODO error on the libtiff configure script -#TODO customization - https://ghostscript.readthedocs.io/en/latest/Make.html +#TODO libtiff configure script error +# customization: https://ghostscript.readthedocs.io/en/latest/Make.html [source] -tar = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10021/ghostscript-10.02.1.tar.gz" +tar = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10060/ghostscript-10.06.0.tar.xz" [build] template = "configure" diff --git a/recipes/wip/dev/lang/goiaba/recipe.toml b/recipes/wip/dev/lang/goiaba/recipe.toml index 9bbecea18..234c137cb 100644 --- a/recipes/wip/dev/lang/goiaba/recipe.toml +++ b/recipes/wip/dev/lang/goiaba/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/raphamorim/goiaba" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/lang/kotlin/recipe.toml b/recipes/wip/dev/lang/kotlin/recipe.toml new file mode 100644 index 000000000..b908c1732 --- /dev/null +++ b/recipes/wip/dev/lang/kotlin/recipe.toml @@ -0,0 +1,13 @@ +#TODO not tested yet +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/usr/bin/kotlin-dir" +wget https://github.com/JetBrains/kotlin/releases/download/v2.3.0/kotlin-compiler-2.3.0.zip "${COOKBOOK_BUILD}" +unzip "${COOKBOOK_BUILD}"/kotlin-compiler-2.3.0.zip -d "${COOKBOOK_BUILD}" +mv "${COOKBOOK_BUILD}"/kotlinc/* "${COOKBOOK_STAGE}/usr/bin/kotlin-dir" +echo "/usr/bin/kotlin-dir/bin/kotlinc" > "${COOKBOOK_STAGE}"/usr/bin/kotlinc +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/kotlinc +""" +[package] +dependencies = ["openjdk21"] diff --git a/recipes/wip/dev/lang/llvm-mingw/recipe.toml b/recipes/wip/dev/lang/llvm-mingw/recipe.toml index 93bef5ac7..de74f3ecc 100644 --- a/recipes/wip/dev/lang/llvm-mingw/recipe.toml +++ b/recipes/wip/dev/lang/llvm-mingw/recipe.toml @@ -1,8 +1,9 @@ -#TODO missing script, read the llvm18 recipe for reference +#TODO missing script, read the llvm21 recipe for reference # build instructions: https://github.com/mstorsjo/llvm-mingw#building-from-source [source] git = "https://github.com/mstorsjo/llvm-mingw" -rev = "40ccfd163eee35468c0cc5f356649d13029aec8b" +rev = "20251216" +shallow_clone = true [build] template = "custom" dependencies = [ diff --git a/recipes/wip/dev/lang/nodejs-21/recipe.toml b/recipes/wip/dev/lang/nodejs-21/recipe.toml index e7cbeaff6..1d08638e2 100644 --- a/recipes/wip/dev/lang/nodejs-21/recipe.toml +++ b/recipes/wip/dev/lang/nodejs-21/recipe.toml @@ -1,4 +1,4 @@ -#TODO page fault +#TODO node is working but ld.so crashing with npm [source] tar = "https://nodejs.org/dist/v21.7.3/node-v21.7.3.tar.xz" blake3 = "95a56db4f9729b2f8384ab58ccb2ec0c41da05991f7400ef97bd76748d77870b" @@ -58,10 +58,7 @@ COOKBOOK_CONFIGURE_FLAGS=( --shared-nghttp3 --shared-openssl --shared-zlib - --disable-shared-readonly-heap - --without-node-snapshot - --without-node-code-cache - --v8-lite-mode + --without-inspector # TODO: Find a way to separate host and target flags instead? # --shared-zlib-includes="${COOKBOOK_TOOLCHAIN}/include" --shared-openssl-includes="${COOKBOOK_SYSROOT}/include" diff --git a/recipes/wip/dev/lang/nodejs-21/redox.patch b/recipes/wip/dev/lang/nodejs-21/redox.patch index 82f99e0ae..f5acaaa43 100644 --- a/recipes/wip/dev/lang/nodejs-21/redox.patch +++ b/recipes/wip/dev/lang/nodejs-21/redox.patch @@ -203,6 +203,23 @@ diff -ruwN source/deps/v8/src/base/platform/platform-posix.cc source-new/deps/v8 flags |= MAP_NORESERVE; #endif // !V8_OS_AIX && !V8_OS_FREEBSD && !V8_OS_QNX #if V8_OS_QNX +@@ -565,14 +569,8 @@ + // MADV_FREE_REUSABLE sometimes fails, so fall back to MADV_DONTNEED. + ret = madvise(address, size, MADV_DONTNEED); + } +-#elif defined(_AIX) || defined(V8_OS_SOLARIS) +- int ret = madvise(reinterpret_cast(address), size, MADV_FREE); +- if (ret != 0 && errno == ENOSYS) { +- return true; // madvise is not available on all systems. +- } +- if (ret != 0 && errno == EINVAL) { +- ret = madvise(reinterpret_cast(address), size, MADV_DONTNEED); +- } ++#elif defined(_AIX) || defined(V8_OS_SOLARIS) || defined(V8_OS_REDOX) ++ int ret = 0; // madvise is not available on all systems. + #else + int ret = madvise(address, size, MADV_DONTNEED); + #endif diff -ruwN source/deps/v8/src/base/platform/platform-redox.cc source-new/deps/v8/src/base/platform/platform-redox.cc --- source/deps/v8/src/base/platform/platform-redox.cc 1970-01-01 07:00:00.000000000 +0700 +++ source-new/deps/v8/src/base/platform/platform-redox.cc 2025-10-10 15:23:18.233737033 +0700 diff --git a/recipes/wip/dev/lang/nodejs-24/recipe.toml b/recipes/wip/dev/lang/nodejs-24/recipe.toml index cfd29f13d..cea227197 100644 --- a/recipes/wip/dev/lang/nodejs-24/recipe.toml +++ b/recipes/wip/dev/lang/nodejs-24/recipe.toml @@ -1,6 +1,6 @@ #TODO requires stdc++20 [source] -tar = "https://nodejs.org/dist/v24.5.0/node-v24.9.0.tar.xz" +tar = "https://nodejs.org/dist/v24.9.0/node-v24.9.0.tar.xz" blake3 = "c710713c9144dc2dfadaef1d180b295d85edd9945513017fc700af68eb08a251" patches = ["01_redox.patch"] diff --git a/recipes/wip/dev/lang/perl5/recipe.toml b/recipes/wip/dev/lang/perl5/recipe.toml index 9c2f8568e..bd73f7c60 100644 --- a/recipes/wip/dev/lang/perl5/recipe.toml +++ b/recipes/wip/dev/lang/perl5/recipe.toml @@ -1,6 +1,6 @@ -#TODO compiles, works in a basic way, but needs figuring out why -ldl is ignored +#TODO compiles, works in a basic way but needs figuring out why -ldl is ignored #TODO also until new signal implementation gets to be the default, remove siginfo struct from relibc's include/bits/signal.h -# and modify relibc/src/header/signal/mod.rs sigtimedwait second parameter's type from siginfo_t to siginfo (cbindgen needs a reference) +# and modify relibc/src/header/signal/mod.rs sigtimedwait second parameter's type from siginfo_t to siginfo (cbindgen needs a reference) #TODO needs further testing [source] tar = "https://www.cpan.org/src/5.0/perl-5.40.0.tar.gz" diff --git a/recipes/wip/dev/lang/rilua/recipe.toml b/recipes/wip/dev/lang/rilua/recipe.toml new file mode 100644 index 000000000..7695aadf7 --- /dev/null +++ b/recipes/wip/dev/lang/rilua/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/wowemulation-dev/rilua" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/dev/lang/ristretto/recipe.toml b/recipes/wip/dev/lang/ristretto/recipe.toml index 5210a054f..2884ef797 100644 --- a/recipes/wip/dev/lang/ristretto/recipe.toml +++ b/recipes/wip/dev/lang/ristretto/recipe.toml @@ -1,8 +1,10 @@ -#TODO require rustc 1.87 or newer +#TODO discover current status [source] git = "https://github.com/theseus-rs/ristretto" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages ristretto_cli """ diff --git a/recipes/wip/dev/lang/ruby/recipe.toml b/recipes/wip/dev/lang/ruby/recipe.toml index ec3667183..dab053048 100644 --- a/recipes/wip/dev/lang/ruby/recipe.toml +++ b/recipes/wip/dev/lang/ruby/recipe.toml @@ -1,10 +1,10 @@ #TODO compilation error [source] -tar = "https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0.tar.gz" +tar = "https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.8.tar.gz" [build] template = "configure" dependencies = [ - "openssl1", + "openssl3", "zlib", "libyaml", "libffi", diff --git a/recipes/wip/dev/lang/scala/recipe.toml b/recipes/wip/dev/lang/scala/recipe.toml new file mode 100644 index 000000000..4ac552ca0 --- /dev/null +++ b/recipes/wip/dev/lang/scala/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for sbt +# probable build instructions: https://github.com/scala/scala3#building-a-local-distribution +[source] +tar = "https://github.com/scala/scala3/releases/download/3.3.7/scala3-3.3.7.tar.gz" +[build] +template = "custom" +dev-dependencies = ["host:sbt"] diff --git a/recipes/wip/dev/lang/tsuki/recipe.toml b/recipes/wip/dev/lang/tsuki/recipe.toml index 9aabdb16b..6bc68d737 100644 --- a/recipes/wip/dev/lang/tsuki/recipe.toml +++ b/recipes/wip/dev/lang/tsuki/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/ultimaweapon/tsuki" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/lang/tur/recipe.toml b/recipes/wip/dev/lang/tur/recipe.toml index 13ffc9d4c..9371088e6 100644 --- a/recipes/wip/dev/lang/tur/recipe.toml +++ b/recipes/wip/dev/lang/tur/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/rezigned/tur" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages tur-cli tur-tui """ diff --git a/recipes/wip/dev/lang/vala/recipe.toml b/recipes/wip/dev/lang/vala/recipe.toml index b6cc898d8..e4201edd1 100644 --- a/recipes/wip/dev/lang/vala/recipe.toml +++ b/recipes/wip/dev/lang/vala/recipe.toml @@ -1,8 +1,14 @@ -#TODO missing script for building, see https://gitlab.gnome.org/GNOME/vala#building-vala +#TODO not compiled or tested +#TODO require bootstraping from another vala compiler +# build instructions: https://gitlab.gnome.org/GNOME/vala#building-vala [source] -tar = "https://download.gnome.org/sources/vala/0.56/vala-0.56.14.tar.xz" +tar = "https://download.gnome.org/sources/vala/0.56/vala-0.56.18.tar.xz" [build] template = "custom" dependencies = [ "glib", ] +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/dev/lang/wrecc/recipe.toml b/recipes/wip/dev/lang/wrecc/recipe.toml index d1ac6f534..a3606b1be 100644 --- a/recipes/wip/dev/lang/wrecc/recipe.toml +++ b/recipes/wip/dev/lang/wrecc/recipe.toml @@ -1,5 +1,6 @@ #TODO compiled but not tested [source] git = "https://github.com/PhilippRados/wrecc" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/dev/lang/xylo/recipe.toml b/recipes/wip/dev/lang/xylo/recipe.toml index 750f07dd5..bc7896d22 100644 --- a/recipes/wip/dev/lang/xylo/recipe.toml +++ b/recipes/wip/dev/lang/xylo/recipe.toml @@ -1,9 +1,11 @@ #TODO compiled but not tested [source] git = "https://github.com/giraffekey/xylo" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo mkdir -pv "${COOKBOOK_STAGE}/usr/share/xylo" cp -rv "${COOKBOOK_SOURCE}/example.xylo" "${COOKBOOK_STAGE}/usr/share/xylo" diff --git a/recipes/wip/dev/lang/zig/recipe.toml b/recipes/wip/dev/lang/zig/recipe.toml index 5c9d26f7e..b66de489d 100644 --- a/recipes/wip/dev/lang/zig/recipe.toml +++ b/recipes/wip/dev/lang/zig/recipe.toml @@ -1,22 +1,59 @@ #TODO compiling, not tested further [source] git = "https://github.com/willnode/zig" -branch = "zig-0.15-redox" +branch = "zig-0.15.2-redox" [build] template = "custom" +dependencies = [ + "llvm21", + "zstd" +] + +dev-dependencies = [ + "llvm21.dev", + "llvm21.runtime", + "clang21", + "clang21.dev", + "lld21.dev", + "lld21", + "host:libarchive", + "host:zig", +] + script = """ DYNAMIC_INIT -rsync -av --delete "${COOKBOOK_SOURCE}"/* ./ +export PATH="${COOKBOOK_BUILD}:${PATH}" -export ZIG_HOST_TARGET_CFLAGS="$CFLAGS" -export ZIG_HOST_TARGET_LDFLAGS="$LDFLAGS" -export ZIG_HOST_TARGET_CC="${TARGET}-gcc" -export ZIG_HOST_TARGET_TRIPLE="${TARGET%%-*}-redox" -unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP -cc bootstrap.c -o ./bootstrap -./bootstrap +mkdir -p "${COOKBOOK_STAGE}"/usr/lib/zig "${COOKBOOK_STAGE}"/usr/bin +ln -s "../lib/zig/bin/zig" "${COOKBOOK_STAGE}"/usr/bin/zig -mkdir -p "${COOKBOOK_STAGE}"/usr/bin -cp ./zig2 "${COOKBOOK_STAGE}"/usr/bin/zig +if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then + +ARCH="${GNU_TARGET%%-*}" +OS=$(echo "${TARGET}" | cut -d - -f3-4) +rsync -a "${COOKBOOK_SOURCE}"/* ./ + +zig build \ + --prefix "${COOKBOOK_STAGE}/usr/lib/zig" \ + --search-prefix "${COOKBOOK_SYSROOT}/usr" \ + -Dflat \ + -Dstatic-llvm \ + -Doptimize=ReleaseFast \ + -Dstrip \ + -Dforce-link-libc \ + -Dtarget="$ARCH-$OS" \ + -Dcpu="baseline" \ + -Dversion-string="0.15.2" \ + -Duse-zig-libcxx \ + -Dno-langref \ + -Dno-test + +else + +COOKBOOK_SOURCE="${COOKBOOK_BUILD}" +COOKBOOK_STAGE="${COOKBOOK_STAGE}/usr/lib/zig" +cookbook_cmake -DCMAKE_INSTALL_PREFIX=/ -DZIG_NO_TEST=On + +fi """ diff --git a/recipes/wip/dev/other/argp-standalone/recipe.toml b/recipes/wip/dev/other/argp-standalone/recipe.toml new file mode 100644 index 000000000..999abe808 --- /dev/null +++ b/recipes/wip/dev/other/argp-standalone/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://github.com/argp-standalone/argp-standalone" + +[build] +template = "meson" diff --git a/recipes/wip/dev/other/elfutils/recipe.toml b/recipes/wip/dev/other/elfutils/recipe.toml index dcc701ab7..f080a3b7d 100644 --- a/recipes/wip/dev/other/elfutils/recipe.toml +++ b/recipes/wip/dev/other/elfutils/recipe.toml @@ -1,5 +1,17 @@ -#TODO compilation error +# Compiled, not tested [source] tar = "https://sourceware.org/elfutils/ftp/0.190/elfutils-0.190.tar.bz2" + [build] template = "configure" +dependencies = [ + "zlib", + "argp-standalone", + "musl-fts", + "musl-obstack", + # "gettext", +] +configureflags = [ + "--disable-libdebuginfod", + "--disable-debuginfod", +] \ No newline at end of file diff --git a/recipes/wip/dev/other/gperf/recipe.toml b/recipes/wip/dev/other/gperf/recipe.toml index d15f30a48..6ee5c00b0 100644 --- a/recipes/wip/dev/other/gperf/recipe.toml +++ b/recipes/wip/dev/other/gperf/recipe.toml @@ -1,4 +1,4 @@ -#TODO compiled but not fully tested +#TODO Promote [source] tar = "https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz" [build] diff --git a/recipes/wip/dev/other/jq/recipe.toml b/recipes/wip/dev/other/jq/recipe.toml deleted file mode 100644 index 26932f402..000000000 --- a/recipes/wip/dev/other/jq/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO undefined reference -[source] -tar = "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-1.7.1.tar.gz" -[build] -template = "configure" diff --git a/recipes/wip/dev/other/musl-fts/recipe.toml b/recipes/wip/dev/other/musl-fts/recipe.toml new file mode 100644 index 000000000..fb6a24839 --- /dev/null +++ b/recipes/wip/dev/other/musl-fts/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://github.com/void-linux/musl-fts" +script = """ +./bootstrap.sh +""" + +[build] +template = "configure" diff --git a/recipes/wip/dev/other/musl-obstack/recipe.toml b/recipes/wip/dev/other/musl-obstack/recipe.toml new file mode 100644 index 000000000..c678cb94a --- /dev/null +++ b/recipes/wip/dev/other/musl-obstack/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://github.com/void-linux/musl-obstack" +script = """ +./bootstrap.sh +""" + +[build] +template = "configure" diff --git a/recipes/wip/dev/other/putzen/recipe.toml b/recipes/wip/dev/other/putzen/recipe.toml new file mode 100644 index 000000000..e372dd606 --- /dev/null +++ b/recipes/wip/dev/other/putzen/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sassman/putzen-rs" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/dev/performance/flamelens/recipe.toml b/recipes/wip/dev/perf/flamelens/recipe.toml similarity index 100% rename from recipes/wip/dev/performance/flamelens/recipe.toml rename to recipes/wip/dev/perf/flamelens/recipe.toml diff --git a/recipes/wip/dev/performance/samply/recipe.toml b/recipes/wip/dev/perf/samply/recipe.toml similarity index 100% rename from recipes/wip/dev/performance/samply/recipe.toml rename to recipes/wip/dev/perf/samply/recipe.toml diff --git a/recipes/wip/dev/performance/tracy/recipe.toml b/recipes/wip/dev/perf/tracy/recipe.toml similarity index 100% rename from recipes/wip/dev/performance/tracy/recipe.toml rename to recipes/wip/dev/perf/tracy/recipe.toml diff --git a/recipes/wip/dev/performance/vkpeak/recipe.toml b/recipes/wip/dev/perf/vkpeak/recipe.toml similarity index 100% rename from recipes/wip/dev/performance/vkpeak/recipe.toml rename to recipes/wip/dev/perf/vkpeak/recipe.toml diff --git a/recipes/wip/dev/proofs/cvc5/recipe.toml b/recipes/wip/dev/proofs/cvc5/recipe.toml new file mode 100644 index 000000000..c806232af --- /dev/null +++ b/recipes/wip/dev/proofs/cvc5/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +#TODO run configure.sh or cmake directly? +# build instructions: https://github.com/cvc5/cvc5/blob/main/INSTALL.rst +[source] +git = "https://github.com/cvc5/cvc5" +rev = "cvc5-1.3.2" +shallow_clone = true +[build] +template = "cmake" +cmakeflags = [ + "-DENABLE_AUTO_DOWNLOAD=ON", +] +dependencies = [ + "libgmp", +] diff --git a/recipes/wip/dev/proofs/eldarica/recipe.toml b/recipes/wip/dev/proofs/eldarica/recipe.toml new file mode 100644 index 000000000..11400702c --- /dev/null +++ b/recipes/wip/dev/proofs/eldarica/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for sbt +# build instructions: https://github.com/uuverifiers/eldarica#documentation +[source] +git = "https://github.com/uuverifiers/eldarica" +rev = "v2.2.1" +shallow_clone = true +[build] +template = "custom" diff --git a/recipes/wip/dev/proofs/z3/recipe.toml b/recipes/wip/dev/proofs/z3/recipe.toml new file mode 100644 index 000000000..cf5a57613 --- /dev/null +++ b/recipes/wip/dev/proofs/z3/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Z3Prover/z3/blob/master/README-CMake.md +[source] +git = "https://github.com/Z3Prover/z3" +rev = "z3-4.15.4" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/dev/wasm/binaryen/recipe.toml b/recipes/wip/dev/wasm/binaryen/recipe.toml new file mode 100644 index 000000000..ebf83a034 --- /dev/null +++ b/recipes/wip/dev/wasm/binaryen/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://github.com/WebAssembly/binaryen#building +[source] +git = "https://github.com/WebAssembly/binaryen" +rev = "version_125" +shallow_clone = true +[build] +template = "cmake" +cmakeflags = [ + "-DBUILD_TESTS=OFF", + "-DBYN_ENABLE_ASSERTIONS=OFF", +] diff --git a/recipes/wip/dev/wasm/wabt/recipe.toml b/recipes/wip/dev/wasm/wabt/recipe.toml new file mode 100644 index 000000000..57310d5de --- /dev/null +++ b/recipes/wip/dev/wasm/wabt/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://github.com/WebAssembly/wabt#building-using-cmake-directly-linux-and-macos +[source] +tar = "https://github.com/WebAssembly/wabt/releases/download/1.0.39/wabt-1.0.39.tar.xz" +[build] +template = "cmake" +cmakeflags = [ + "-DBUILD_TESTS=OFF", +] diff --git a/recipes/wip/dev/web/emscripten/recipe.toml b/recipes/wip/dev/web/emscripten/recipe.toml new file mode 100644 index 000000000..b4a3aec4c --- /dev/null +++ b/recipes/wip/dev/web/emscripten/recipe.toml @@ -0,0 +1,15 @@ +#TODO missing script for building: https://emscripten.org/docs/building_from_source/index.html +[source] +git = "https://github.com/emscripten-core/emscripten" +rev = "5.0.0" +shallow_clone = true +[build] +template = "custom" +dev-dependencies = [ + "host:nodejs24", +] +[package] +dependencies = [ + "llvm21-common", + "binaryen", +] diff --git a/recipes/wip/doc/brief/recipe.toml b/recipes/wip/doc/brief/recipe.toml new file mode 100644 index 000000000..8c8bc247f --- /dev/null +++ b/recipes/wip/doc/brief/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +[source] +git = "https://github.com/shonebinu/Brief" +rev = "v0.3.0" +[build] +template = "meson" diff --git a/recipes/wip/doc/gtk-doc/recipe.toml b/recipes/wip/doc/gtk-doc/recipe.toml index 853dfd10a..208e7fed2 100644 --- a/recipes/wip/doc/gtk-doc/recipe.toml +++ b/recipes/wip/doc/gtk-doc/recipe.toml @@ -1,5 +1,12 @@ -#TODO not compiled or tested +#TODO compiling, not tested [source] tar = "https://download.gnome.org/sources/gtk-doc/1.33/gtk-doc-1.33.2.tar.xz" [build] template = "meson" +mesonflags = [ + "-Dtests=false", + "-Dyelp_manual=false", +] +dev-dependencies = [ + "host:libxslt", +] diff --git a/recipes/wip/emulators/cpu/6502-emulator/recipe.toml b/recipes/wip/emu/cpu/6502-emulator/recipe.toml similarity index 100% rename from recipes/wip/emulators/cpu/6502-emulator/recipe.toml rename to recipes/wip/emu/cpu/6502-emulator/recipe.toml diff --git a/recipes/wip/emulators/cpu/8086-emulator/recipe.toml b/recipes/wip/emu/cpu/8086-emulator/recipe.toml similarity index 100% rename from recipes/wip/emulators/cpu/8086-emulator/recipe.toml rename to recipes/wip/emu/cpu/8086-emulator/recipe.toml diff --git a/recipes/wip/emulators/cpu/mipsy/recipe.toml b/recipes/wip/emu/cpu/mipsy/recipe.toml similarity index 100% rename from recipes/wip/emulators/cpu/mipsy/recipe.toml rename to recipes/wip/emu/cpu/mipsy/recipe.toml diff --git a/recipes/wip/emulators/cpu/rustzx/recipe.toml b/recipes/wip/emu/cpu/rustzx/recipe.toml similarity index 100% rename from recipes/wip/emulators/cpu/rustzx/recipe.toml rename to recipes/wip/emu/cpu/rustzx/recipe.toml diff --git a/recipes/wip/emulators/cpu/rvemu/recipe.toml b/recipes/wip/emu/cpu/rvemu/recipe.toml similarity index 100% rename from recipes/wip/emulators/cpu/rvemu/recipe.toml rename to recipes/wip/emu/cpu/rvemu/recipe.toml diff --git a/recipes/wip/emulators/cpu/scemu/recipe.toml b/recipes/wip/emu/cpu/scemu/recipe.toml similarity index 100% rename from recipes/wip/emulators/cpu/scemu/recipe.toml rename to recipes/wip/emu/cpu/scemu/recipe.toml diff --git a/recipes/wip/emulators/cpu/unicorn/recipe.toml b/recipes/wip/emu/cpu/unicorn/recipe.toml similarity index 100% rename from recipes/wip/emulators/cpu/unicorn/recipe.toml rename to recipes/wip/emu/cpu/unicorn/recipe.toml diff --git a/recipes/wip/emulators/game-console/azahar/recipe.toml b/recipes/wip/emu/game-console/azahar/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/azahar/recipe.toml rename to recipes/wip/emu/game-console/azahar/recipe.toml diff --git a/recipes/wip/emulators/game-console/clementine/recipe.toml b/recipes/wip/emu/game-console/clementine/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/clementine/recipe.toml rename to recipes/wip/emu/game-console/clementine/recipe.toml diff --git a/recipes/wip/emulators/game-console/dolphin-emu/recipe.toml b/recipes/wip/emu/game-console/dolphin-emu/recipe.toml similarity index 55% rename from recipes/wip/emulators/game-console/dolphin-emu/recipe.toml rename to recipes/wip/emu/game-console/dolphin-emu/recipe.toml index 0cc024f5a..f47d2eec3 100644 --- a/recipes/wip/emulators/game-console/dolphin-emu/recipe.toml +++ b/recipes/wip/emu/game-console/dolphin-emu/recipe.toml @@ -7,6 +7,22 @@ rev = "71e15c2875f36458c8f29ee160f01606967bcd13" shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DENABLE_LTO=ON", + "-DUSE_UPNP=OFF", + "-DENABLE_ALSA=OFF", + "-DENABLE_PULSEAUDIO=OFF", + "-DENABLE_CUBEB=OFF", + "-DENABLE_TESTS=OFF", + "-DENABLE_VULKAN=OFF", + "-DUSE_DISCORD_PRESENCE=OFF", + "-DUSE_MGBA=OFF", + "-DENABLE_AUTOUPDATE=OFF", + "-DUSE_RETRO_ACHIEVEMENTS=OFF", + "=DENABLE_ANALYTICS=OFF", + "-DENCODE_FRAMEDUMPS=OFF", + "-DENABLE_LLVM=OFF", +] dependencies = [ #"ffmpeg6", #"libevdev", diff --git a/recipes/wip/emulators/game-console/finalburn-neo/recipe.toml b/recipes/wip/emu/game-console/finalburn-neo/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/finalburn-neo/recipe.toml rename to recipes/wip/emu/game-console/finalburn-neo/recipe.toml diff --git a/recipes/wip/emulators/game-console/gameboy/boytacean/recipe.toml b/recipes/wip/emu/game-console/gameboy/boytacean/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/gameboy/boytacean/recipe.toml rename to recipes/wip/emu/game-console/gameboy/boytacean/recipe.toml diff --git a/recipes/wip/emulators/game-console/gameboy/gameroy/recipe.toml b/recipes/wip/emu/game-console/gameboy/gameroy/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/gameboy/gameroy/recipe.toml rename to recipes/wip/emu/game-console/gameboy/gameroy/recipe.toml diff --git a/recipes/wip/emulators/game-console/gameboy/mimic/recipe.toml b/recipes/wip/emu/game-console/gameboy/mimic/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/gameboy/mimic/recipe.toml rename to recipes/wip/emu/game-console/gameboy/mimic/recipe.toml diff --git a/recipes/wip/emulators/game-console/gopher64/recipe.toml b/recipes/wip/emu/game-console/gopher64/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/gopher64/recipe.toml rename to recipes/wip/emu/game-console/gopher64/recipe.toml diff --git a/recipes/wip/emulators/game-console/jgenesis/recipe.toml b/recipes/wip/emu/game-console/jgenesis/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/jgenesis/recipe.toml rename to recipes/wip/emu/game-console/jgenesis/recipe.toml diff --git a/recipes/wip/emulators/game-console/mame/recipe.toml b/recipes/wip/emu/game-console/mame/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/mame/recipe.toml rename to recipes/wip/emu/game-console/mame/recipe.toml diff --git a/recipes/wip/emulators/game-console/melonds/recipe.toml b/recipes/wip/emu/game-console/melonds/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/melonds/recipe.toml rename to recipes/wip/emu/game-console/melonds/recipe.toml diff --git a/recipes/wip/emulators/game-console/meru/recipe.toml b/recipes/wip/emu/game-console/meru/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/meru/recipe.toml rename to recipes/wip/emu/game-console/meru/recipe.toml diff --git a/recipes/emulators/mupen64plus/recipe.toml b/recipes/wip/emu/game-console/mupen64plus/recipe.toml similarity index 85% rename from recipes/emulators/mupen64plus/recipe.toml rename to recipes/wip/emu/game-console/mupen64plus/recipe.toml index f1538f56f..c5a98cf09 100644 --- a/recipes/emulators/mupen64plus/recipe.toml +++ b/recipes/wip/emu/game-console/mupen64plus/recipe.toml @@ -1,7 +1,6 @@ +#TODO not compiled or tested [source] -tar = "https://github.com/mupen64plus/mupen64plus-core/releases/download/2.6.0/mupen64plus-core-src-2.6.0.tar.gz" -blake3 = "faef6f557b32165adf5ad7f12a22f1dfda98893f59cbf910b697a86e610652a9" - +tar = "https://github.com/mupen64plus/mupen64plus-core/releases/download/2.6.0/mupen64plus-bundle-src-2.6.0.tar.gz" [build] template = "custom" dependencies = [ diff --git a/recipes/wip/emulators/game-console/obliteration/recipe.toml b/recipes/wip/emu/game-console/obliteration/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/obliteration/recipe.toml rename to recipes/wip/emu/game-console/obliteration/recipe.toml diff --git a/recipes/wip/emulators/game-console/pcsx2/recipe.toml b/recipes/wip/emu/game-console/pcsx2/recipe.toml similarity index 74% rename from recipes/wip/emulators/game-console/pcsx2/recipe.toml rename to recipes/wip/emu/game-console/pcsx2/recipe.toml index c8161ae28..7eb2c3952 100644 --- a/recipes/wip/emulators/game-console/pcsx2/recipe.toml +++ b/recipes/wip/emu/game-console/pcsx2/recipe.toml @@ -1,4 +1,5 @@ #TODO not compiled or tested +#TODO need to be built with clang for best performance # build instructions: https://pcsx2.net/docs/advanced/building#building-on-linux [source] git = "https://github.com/PCSX2/pcsx2" @@ -9,6 +10,12 @@ template = "cmake" cmakeflags = [ "-DCMAKE_CXX_COMPILER_LAUNCHER=ccache", "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON", + "-DENABLE_TESTS=OFF", + "-DLTO_PCSX2_CORE=ON", + "-DPACKAGE_MODE=ON", + "-DUSE_VULKAN=OFF", + "-DWAYLAND_API=OFF", + "-DUSE_BACKTRACE=OFF", ] # dependencies = [ # "sdl2", diff --git a/recipes/wip/emulators/game-console/picodrive/recipe.toml b/recipes/wip/emu/game-console/picodrive/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/picodrive/recipe.toml rename to recipes/wip/emu/game-console/picodrive/recipe.toml diff --git a/recipes/wip/emulators/game-console/play/recipe.toml b/recipes/wip/emu/game-console/play/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/play/recipe.toml rename to recipes/wip/emu/game-console/play/recipe.toml diff --git a/recipes/wip/emulators/game-console/ppsspp/recipe.toml b/recipes/wip/emu/game-console/ppsspp/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/ppsspp/recipe.toml rename to recipes/wip/emu/game-console/ppsspp/recipe.toml diff --git a/recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml b/recipes/wip/emu/game-console/ps1/duckstation/recipe.toml similarity index 58% rename from recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml rename to recipes/wip/emu/game-console/ps1/duckstation/recipe.toml index 09240d794..e48f39f54 100644 --- a/recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml +++ b/recipes/wip/emu/game-console/ps1/duckstation/recipe.toml @@ -6,9 +6,16 @@ rev = "16e56d7824e15657be26e30030394d0668493635" shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DENABLE_OPENGL=OFF", + "-DENABLE_VULKAN=OFF", + "-DENABLE_WAYLAND=OFF", + "-DBUILD_QT_FRONTEND=OFF", + "-DBUILD_MINI_FRONTEND=ON", +] dependencies = [ - "sdl2", - "qt6-base", - "qt6-svg", + #"sdl2", + #"qt6-base", + #"qt6-svg", #"qt6-tools", ] diff --git a/recipes/wip/emulators/game-console/ps1/pcsx-rearmed/recipe.toml b/recipes/wip/emu/game-console/ps1/pcsx-rearmed/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/ps1/pcsx-rearmed/recipe.toml rename to recipes/wip/emu/game-console/ps1/pcsx-rearmed/recipe.toml diff --git a/recipes/wip/emulators/game-console/ps1/rpsx/recipe.toml b/recipes/wip/emu/game-console/ps1/rpsx/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/ps1/rpsx/recipe.toml rename to recipes/wip/emu/game-console/ps1/rpsx/recipe.toml diff --git a/recipes/wip/emulators/game-console/ps1/trapezoid/recipe.toml b/recipes/wip/emu/game-console/ps1/trapezoid/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/ps1/trapezoid/recipe.toml rename to recipes/wip/emu/game-console/ps1/trapezoid/recipe.toml diff --git a/recipes/wip/emulators/game-console/rpcs3/recipe.toml b/recipes/wip/emu/game-console/rpcs3/recipe.toml similarity index 84% rename from recipes/wip/emulators/game-console/rpcs3/recipe.toml rename to recipes/wip/emu/game-console/rpcs3/recipe.toml index a1796e901..29a04d5ae 100644 --- a/recipes/wip/emulators/game-console/rpcs3/recipe.toml +++ b/recipes/wip/emu/game-console/rpcs3/recipe.toml @@ -14,10 +14,12 @@ cmakeflags = [ "-DUSE_ALSA=OFF", "-DUSE_PULSE=OFF", "-DUSE_LIBEVDEV=OFF", - "-DUSE_DISCORD_RPC=OFF", "-DBUILD_LLVM_SUBMODULE=OFF", "-DUSE_SYSTEM_FFMPEG=ON", "-DUSE_VULKAN=OFF", + "-DUSE_FAUDIO=OFF", + "-DUSE_SYSTEM_OPENAL=ON", + "-DUSE_SYSTEM_ZSTD=ON", ] dependencies = [ #"mesa-x11", @@ -25,11 +27,14 @@ dependencies = [ "qt6-multimedia", "qt6-svg", "qt6-declarative", - #"sdl2", + "curl", + "opencv4", + "sdl2", #"eudev", #"glew", - #"openal", - #"zlib", + "openal", + "zlib", + "zstd", #"libpng", #"libevdev", #"libedit", diff --git a/recipes/wip/emulators/game-console/shadps4/recipe.toml b/recipes/wip/emu/game-console/shadps4/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/shadps4/recipe.toml rename to recipes/wip/emu/game-console/shadps4/recipe.toml diff --git a/recipes/wip/emulators/game-console/snes9x/recipe.toml b/recipes/wip/emu/game-console/snes9x/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/snes9x/recipe.toml rename to recipes/wip/emu/game-console/snes9x/recipe.toml diff --git a/recipes/wip/emulators/game-console/tetanes/recipe.toml b/recipes/wip/emu/game-console/tetanes/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/tetanes/recipe.toml rename to recipes/wip/emu/game-console/tetanes/recipe.toml diff --git a/recipes/wip/emulators/game-console/uoyabause/recipe.toml b/recipes/wip/emu/game-console/uoyabause/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/uoyabause/recipe.toml rename to recipes/wip/emu/game-console/uoyabause/recipe.toml diff --git a/recipes/wip/emulators/game-console/vita3k/recipe.toml b/recipes/wip/emu/game-console/vita3k/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/vita3k/recipe.toml rename to recipes/wip/emu/game-console/vita3k/recipe.toml diff --git a/recipes/wip/emulators/game-console/xemu/recipe.toml b/recipes/wip/emu/game-console/xemu/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/xemu/recipe.toml rename to recipes/wip/emu/game-console/xemu/recipe.toml diff --git a/recipes/wip/emulators/game-console/xenia-canary/recipe.toml b/recipes/wip/emu/game-console/xenia-canary/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/xenia-canary/recipe.toml rename to recipes/wip/emu/game-console/xenia-canary/recipe.toml diff --git a/recipes/wip/emulators/game-console/zsnes/recipe.toml b/recipes/wip/emu/game-console/zsnes/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/zsnes/recipe.toml rename to recipes/wip/emu/game-console/zsnes/recipe.toml diff --git a/recipes/wip/emulators/mobile/touchhle/recipe.toml b/recipes/wip/emu/mobile/touchhle/recipe.toml similarity index 100% rename from recipes/wip/emulators/mobile/touchhle/recipe.toml rename to recipes/wip/emu/mobile/touchhle/recipe.toml diff --git a/recipes/wip/emulators/mobile/wie/recipe.toml b/recipes/wip/emu/mobile/wie/recipe.toml similarity index 100% rename from recipes/wip/emulators/mobile/wie/recipe.toml rename to recipes/wip/emu/mobile/wie/recipe.toml diff --git a/recipes/wip/emulators/pc/darling/recipe.toml b/recipes/wip/emu/pc/darling/recipe.toml similarity index 100% rename from recipes/wip/emulators/pc/darling/recipe.toml rename to recipes/wip/emu/pc/darling/recipe.toml diff --git a/recipes/wip/emulators/pc/martypc/recipe.toml b/recipes/wip/emu/pc/martypc/recipe.toml similarity index 100% rename from recipes/wip/emulators/pc/martypc/recipe.toml rename to recipes/wip/emu/pc/martypc/recipe.toml diff --git a/recipes/wip/emulators/pc/opengmk/recipe.toml b/recipes/wip/emu/pc/opengmk/recipe.toml similarity index 100% rename from recipes/wip/emulators/pc/opengmk/recipe.toml rename to recipes/wip/emu/pc/opengmk/recipe.toml diff --git a/recipes/wip/emulators/pc/ruffle/recipe.toml b/recipes/wip/emu/pc/ruffle/recipe.toml similarity index 100% rename from recipes/wip/emulators/pc/ruffle/recipe.toml rename to recipes/wip/emu/pc/ruffle/recipe.toml diff --git a/recipes/wip/emulators/security/rust-u2f/recipe.toml b/recipes/wip/emu/security/rust-u2f/recipe.toml similarity index 100% rename from recipes/wip/emulators/security/rust-u2f/recipe.toml rename to recipes/wip/emu/security/rust-u2f/recipe.toml diff --git a/recipes/wip/emulators/windows/boxedwine/recipe.toml b/recipes/wip/emu/win/boxedwine/recipe.toml similarity index 100% rename from recipes/wip/emulators/windows/boxedwine/recipe.toml rename to recipes/wip/emu/win/boxedwine/recipe.toml diff --git a/recipes/wip/emulators/windows/hangover/recipe.toml b/recipes/wip/emu/win/hangover/recipe.toml similarity index 96% rename from recipes/wip/emulators/windows/hangover/recipe.toml rename to recipes/wip/emu/win/hangover/recipe.toml index 0d60487a1..9e6432244 100644 --- a/recipes/wip/emulators/windows/hangover/recipe.toml +++ b/recipes/wip/emu/win/hangover/recipe.toml @@ -2,8 +2,11 @@ # build instructions: https://github.com/AndreRH/hangover/blob/master/docs/COMPILE.md [source] git = "https://github.com/AndreRH/hangover" -rev = "hangover-10.18" +rev = "hangover-11.0" shallow_clone = true +script = """ +autotools_recursive_regenerate +""" [build] template = "custom" dependencies = [ diff --git a/recipes/wip/emulators/windows/retrowin32/recipe.toml b/recipes/wip/emu/win/retrowin32/recipe.toml similarity index 100% rename from recipes/wip/emulators/windows/retrowin32/recipe.toml rename to recipes/wip/emu/win/retrowin32/recipe.toml diff --git a/recipes/wip/emulators/windows/wine-stable/recipe.toml b/recipes/wip/emu/win/wine-stable/recipe.toml similarity index 92% rename from recipes/wip/emulators/windows/wine-stable/recipe.toml rename to recipes/wip/emu/win/wine-stable/recipe.toml index 1034be31b..7fa9ceff5 100644 --- a/recipes/wip/emulators/windows/wine-stable/recipe.toml +++ b/recipes/wip/emu/win/wine-stable/recipe.toml @@ -1,10 +1,10 @@ #TODO port to redox #build instructions: https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine [source] -tar = "http://dl.winehq.org/wine/source/10.x/wine-10.18.tar.xz" -blake3 = "0517c4200935456fbc22b152a19c5fd0d027d2b06c511968a5533101e1274f54" +git = "https://gitlab.winehq.org/wine/wine" +branch = "stable" +shallow_clone = true script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/emulators/game-console/mupen64plus-core/recipe.toml b/recipes/wip/emulators/game-console/mupen64plus-core/recipe.toml deleted file mode 100644 index 9eefea697..000000000 --- a/recipes/wip/emulators/game-console/mupen64plus-core/recipe.toml +++ /dev/null @@ -1,11 +0,0 @@ -#TODO missing script for "make": https://github.com/mupen64plus/mupen64plus-core#2-building-from-source -[source] -tar = "https://github.com/mupen64plus/mupen64plus-core/releases/download/2.6.0/mupen64plus-bundle-src-2.6.0.tar.gz" -[build] -template = "custom" -dependencies = [ - "sdl2", - "libpng", - "freetype2", - "zlib", -] diff --git a/recipes/wip/finance/bitcoin/btc-vanity/recipe.toml b/recipes/wip/finance/crypto/bitcoin/btc-vanity/recipe.toml similarity index 100% rename from recipes/wip/finance/bitcoin/btc-vanity/recipe.toml rename to recipes/wip/finance/crypto/bitcoin/btc-vanity/recipe.toml diff --git a/recipes/wip/finance/crypto/bitcoin/btcpay-server/recipe.toml b/recipes/wip/finance/crypto/bitcoin/btcpay-server/recipe.toml new file mode 100644 index 000000000..9d8bb1d38 --- /dev/null +++ b/recipes/wip/finance/crypto/bitcoin/btcpay-server/recipe.toml @@ -0,0 +1,13 @@ +#TODO missing script for building: https://github.com/btcpayserver/btcpayserver#how-to-build +#TODO determine minimum dependencies +# dependencies and docker container setup: https://github.com/btcpayserver/btcpayserver/blob/master/BTCPayServer.Tests/docker-compose.yml +# configuration: https://docs.btcpayserver.org/Development/LocalDevelopment/ +[source] +git = "https://github.com/btcpayserver/btcpayserver" +rev = "v2.3.4" +shallow_clone = true +[build] +template = "custom" +dev-dependencies = [ + "host:dotnet8", +] diff --git a/recipes/wip/finance/bitcoin/electrum/recipe.toml b/recipes/wip/finance/crypto/bitcoin/electrum/recipe.toml similarity index 100% rename from recipes/wip/finance/bitcoin/electrum/recipe.toml rename to recipes/wip/finance/crypto/bitcoin/electrum/recipe.toml diff --git a/recipes/wip/finance/bitcoin/liana/recipe.toml b/recipes/wip/finance/crypto/bitcoin/liana/recipe.toml similarity index 100% rename from recipes/wip/finance/bitcoin/liana/recipe.toml rename to recipes/wip/finance/crypto/bitcoin/liana/recipe.toml diff --git a/recipes/wip/finance/bitcoin/nakamoto-wallet/recipe.toml b/recipes/wip/finance/crypto/bitcoin/nakamoto-wallet/recipe.toml similarity index 100% rename from recipes/wip/finance/bitcoin/nakamoto-wallet/recipe.toml rename to recipes/wip/finance/crypto/bitcoin/nakamoto-wallet/recipe.toml diff --git a/recipes/wip/finance/bitcoin/nakatoshi/recipe.toml b/recipes/wip/finance/crypto/bitcoin/nakatoshi/recipe.toml similarity index 100% rename from recipes/wip/finance/bitcoin/nakatoshi/recipe.toml rename to recipes/wip/finance/crypto/bitcoin/nakatoshi/recipe.toml diff --git a/recipes/wip/finance/bitcoin/ord/recipe.toml b/recipes/wip/finance/crypto/bitcoin/ord/recipe.toml similarity index 100% rename from recipes/wip/finance/bitcoin/ord/recipe.toml rename to recipes/wip/finance/crypto/bitcoin/ord/recipe.toml diff --git a/recipes/wip/finance/bitcoin/pushtx/recipe.toml b/recipes/wip/finance/crypto/bitcoin/pushtx/recipe.toml similarity index 100% rename from recipes/wip/finance/bitcoin/pushtx/recipe.toml rename to recipes/wip/finance/crypto/bitcoin/pushtx/recipe.toml diff --git a/recipes/wip/finance/bitcoin/rusty-blockparser/recipe.toml b/recipes/wip/finance/crypto/bitcoin/rusty-blockparser/recipe.toml similarity index 100% rename from recipes/wip/finance/bitcoin/rusty-blockparser/recipe.toml rename to recipes/wip/finance/crypto/bitcoin/rusty-blockparser/recipe.toml diff --git a/recipes/wip/finance/crypto/eth/lighthouse/recipe.toml b/recipes/wip/finance/crypto/eth/lighthouse/recipe.toml new file mode 100644 index 000000000..c1edb145a --- /dev/null +++ b/recipes/wip/finance/crypto/eth/lighthouse/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://lighthouse-book.sigmaprime.io/installation_source.html +[source] +git = "https://github.com/sigp/lighthouse" +branch = "stable" +shallow_clone = true +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo_packages lighthouse +""" diff --git a/recipes/wip/finance/crypto/eth/reth/recipe.toml b/recipes/wip/finance/crypto/eth/reth/recipe.toml new file mode 100644 index 000000000..67af0f971 --- /dev/null +++ b/recipes/wip/finance/crypto/eth/reth/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://reth.rs/installation/source +[source] +git = "https://github.com/paradigmxyz/reth +shallow_clone = true +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo_packages reth +""" diff --git a/recipes/wip/finance/monero/gupax/recipe.toml b/recipes/wip/finance/crypto/monero/gupax/recipe.toml similarity index 100% rename from recipes/wip/finance/monero/gupax/recipe.toml rename to recipes/wip/finance/crypto/monero/gupax/recipe.toml diff --git a/recipes/wip/finance/monero/xmrig/recipe.toml b/recipes/wip/finance/crypto/monero/xmrig/recipe.toml similarity index 100% rename from recipes/wip/finance/monero/xmrig/recipe.toml rename to recipes/wip/finance/crypto/monero/xmrig/recipe.toml diff --git a/recipes/wip/fonts/nerd-fonts/recipe.toml b/recipes/wip/fonts/nerd-fonts/recipe.toml index bf4e07383..d61c59073 100644 --- a/recipes/wip/fonts/nerd-fonts/recipe.toml +++ b/recipes/wip/fonts/nerd-fonts/recipe.toml @@ -1,10 +1,11 @@ -#TODO probably wrong script +#TODO not tested [source] git = "https://github.com/ryanoasis/nerd-fonts" -rev = "7b41c66a1ef0c4ac5884a4203cb53c0901217e32" +rev = "v3.4.0" +shallow_clone = true [build] template = "custom" script = """ -mkdir -pv "${COOKBOOK_STAGE}"/ui/fonts -cp -rv "${COOKBOOK_SOURCE}"/patched-fonts/* "${COOKBOOK_STAGE}"/ui/fonts +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/fonts/Nerd +cp -rv "${COOKBOOK_SOURCE}"/patched-fonts/* "${COOKBOOK_STAGE}"/usr/share/fonts/Nerd """ diff --git a/recipes/wip/fonts/noto-sans-cjk/recipe.toml b/recipes/wip/fonts/noto-sans-cjk/recipe.toml new file mode 100644 index 000000000..d780a22f6 --- /dev/null +++ b/recipes/wip/fonts/noto-sans-cjk/recipe.toml @@ -0,0 +1,8 @@ +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_BUILD}"/fonts "${COOKBOOK_STAGE}/usr/share/fonts/Noto-Sans-CJK" +wget https://github.com/notofonts/noto-cjk/releases/download/Sans2.004/02_NotoSansCJK-TTF-VF.zip +unzip "${COOKBOOK_BUILD}"/02_NotoSansCJK-TTF-VF.zip -d "${COOKBOOK_BUILD}"/fonts +cp -rv "${COOKBOOK_BUILD}"/fonts/Variable/TTF/* "${COOKBOOK_STAGE}/usr/share/fonts/Noto-Sans-CJK" +""" diff --git a/recipes/wip/fonts/noto-serif-cjk/recipe.toml b/recipes/wip/fonts/noto-serif-cjk/recipe.toml new file mode 100644 index 000000000..c9e5a13f7 --- /dev/null +++ b/recipes/wip/fonts/noto-serif-cjk/recipe.toml @@ -0,0 +1,8 @@ +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_BUILD}"/fonts "${COOKBOOK_STAGE}/usr/share/fonts/Noto-Serif-CJK" +wget https://github.com/notofonts/noto-cjk/releases/download/Serif2.003/03_NotoSerifCJK-TTF-VF.zip +unzip "${COOKBOOK_BUILD}"/03_NotoSerifCJK-TTF-VF.zip -d "${COOKBOOK_BUILD}"/fonts +cp -rv "${COOKBOOK_BUILD}"/fonts/Variable/TTF/* "${COOKBOOK_STAGE}/usr/share/fonts/Noto-Serif-CJK" +""" diff --git a/recipes/wip/fonts/noto/recipe.toml b/recipes/wip/fonts/noto/recipe.toml new file mode 100644 index 000000000..c33429709 --- /dev/null +++ b/recipes/wip/fonts/noto/recipe.toml @@ -0,0 +1,12 @@ +[source] +git = "https://github.com/notofonts/notofonts.github.io" +rev = "noto-monthly-release-2026.02.01" +shallow_clone = true +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/fonts/Noto +for f in "${COOKBOOK_SOURCE}"/fonts/*; do +echo cp -rv "${f}/full/ttf/* "${COOKBOOK_STAGE}/usr/share/fonts/Noto/$(basename ${f})/" +done +""" diff --git a/recipes/wip/fonts/sitra/recipe.toml b/recipes/wip/fonts/sitra/recipe.toml new file mode 100644 index 000000000..c530371ac --- /dev/null +++ b/recipes/wip/fonts/sitra/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +[source] +git = "https://github.com/sitraorg/sitra" +rev = "af4cfcca680653aba93c44a384c134093e124e7c" +shallow_clone = true +[build] +template = "meson" diff --git a/recipes/wip/games/data/luanti-data/recipe.toml b/recipes/wip/games/data/luanti-data/recipe.toml new file mode 100644 index 000000000..4a141d393 --- /dev/null +++ b/recipes/wip/games/data/luanti-data/recipe.toml @@ -0,0 +1,10 @@ +#TODO not tested +[source] +git = "https://github.com/luanti-org/minetest_game" +shallow_clone = true +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/luanti/games/minetest_game +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/luanti/games/minetest_game +""" diff --git a/recipes/wip/games/data/minetest-data/recipe.toml b/recipes/wip/games/data/minetest-data/recipe.toml deleted file mode 100644 index eebc00114..000000000 --- a/recipes/wip/games/data/minetest-data/recipe.toml +++ /dev/null @@ -1,10 +0,0 @@ -#TODO Not tested -[source] -git = "https://github.com/minetest/minetest_game" -rev = "b9c089474cc343b37f90cb8cefc4b5553af2e9ea" -[build] -template = "custom" -script = """ -mkdir -pv "${COOKBOOK_STAGE}"/usr/share/minetest/games/minetest_game -cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/minetest/games/minetest_game -""" diff --git a/recipes/wip/games/data/openjazz-shareware-data/recipe.toml b/recipes/wip/games/data/openjazz-shareware-data/recipe.toml index 3fca5d816..3e7fe3fd8 100644 --- a/recipes/wip/games/data/openjazz-shareware-data/recipe.toml +++ b/recipes/wip/games/data/openjazz-shareware-data/recipe.toml @@ -4,7 +4,7 @@ template = "custom" script = """ ASSETS_DIR="${COOKBOOK_STAGE}/usr/share/games/openjazz/" -APP_DIR="${COOKBOOK_STAGE}/ui/apps" +APP_DIR="${COOKBOOK_STAGE}/usr/share/ui/apps" curl -vJL https://archive.org/download/jazz-jackrabbit/Jazz%20Jackrabbit.rar -o jazzdemo.rar sha256sum -c "${COOKBOOK_RECIPE}/jazzdemo.rar.sha" diff --git a/recipes/wip/games/fps/quake1-shareware/manifest b/recipes/wip/games/data/quake1-shareware/manifest similarity index 100% rename from recipes/wip/games/fps/quake1-shareware/manifest rename to recipes/wip/games/data/quake1-shareware/manifest diff --git a/recipes/wip/games/fps/quake1-shareware/pak0.pak.sha b/recipes/wip/games/data/quake1-shareware/pak0.pak.sha similarity index 100% rename from recipes/wip/games/fps/quake1-shareware/pak0.pak.sha rename to recipes/wip/games/data/quake1-shareware/pak0.pak.sha diff --git a/recipes/wip/games/fps/quake1-shareware/quake106.zip.sha b/recipes/wip/games/data/quake1-shareware/quake106.zip.sha similarity index 100% rename from recipes/wip/games/fps/quake1-shareware/quake106.zip.sha rename to recipes/wip/games/data/quake1-shareware/quake106.zip.sha diff --git a/recipes/wip/games/fps/quake1-shareware/recipe.toml b/recipes/wip/games/data/quake1-shareware/recipe.toml similarity index 86% rename from recipes/wip/games/fps/quake1-shareware/recipe.toml rename to recipes/wip/games/data/quake1-shareware/recipe.toml index f721529c1..2fdf0d80c 100644 --- a/recipes/wip/games/fps/quake1-shareware/recipe.toml +++ b/recipes/wip/games/data/quake1-shareware/recipe.toml @@ -1,9 +1,12 @@ -# TODO: -# * Requires unarchivers +# TODO: not tested [build] template = "custom" -dependencies = ["lhasa", "unzrip"] +dev-dependencies = [ + "host:lhasa", + "host:unzrip", + "host:7-zip", +] script = """ curl -O "https://github.com/Jason2Brownlee/QuakeOfficialArchive/raw/refs/heads/main/bin/quake106.zip" sha256sum -c quake106.zip.sha diff --git a/recipes/wip/games/fps/chocolate-doom/recipe.toml b/recipes/wip/games/engines/chocolate-doom/recipe.toml similarity index 74% rename from recipes/wip/games/fps/chocolate-doom/recipe.toml rename to recipes/wip/games/engines/chocolate-doom/recipe.toml index 6821d4c4d..3dd25cc55 100644 --- a/recipes/wip/games/fps/chocolate-doom/recipe.toml +++ b/recipes/wip/games/engines/chocolate-doom/recipe.toml @@ -2,13 +2,9 @@ [source] tar = "https://www.chocolate-doom.org/downloads/3.0.1/chocolate-doom-3.0.1.tar.gz" [build] -template = "custom" +template = "configure" dependencies = [ "sdl2", "sdl2-mixer", "sdl2-net", ] -script = """ -DYNAMIC_INIT -cookbook_configure -""" diff --git a/recipes/wip/games/fps/crispy-doom/recipe.toml b/recipes/wip/games/engines/crispy-doom/recipe.toml similarity index 58% rename from recipes/wip/games/fps/crispy-doom/recipe.toml rename to recipes/wip/games/engines/crispy-doom/recipe.toml index 354bb2603..f416d906f 100644 --- a/recipes/wip/games/fps/crispy-doom/recipe.toml +++ b/recipes/wip/games/engines/crispy-doom/recipe.toml @@ -1,15 +1,11 @@ #TODO Not compiled/tested yet [source] git = "https://github.com/fabiangreffrath/crispy-doom" -rev = "593f5b97023ed39b7640073160c06895bbfc3d26" +rev = "crispy-doom-7.1" [build] -template = "custom" +template = "configure" dependencies = [ "sdl2", "sdl2-mixer", "sdl2-net", ] -script = """ -DYNAMIC_INIT -cookbook_configure -""" diff --git a/recipes/wip/games/fps/ioquake3/recipe.toml b/recipes/wip/games/engines/ioquake3/recipe.toml similarity index 100% rename from recipes/wip/games/fps/ioquake3/recipe.toml rename to recipes/wip/games/engines/ioquake3/recipe.toml diff --git a/recipes/wip/games/other/love/recipe.toml b/recipes/wip/games/engines/love/recipe.toml similarity index 100% rename from recipes/wip/games/other/love/recipe.toml rename to recipes/wip/games/engines/love/recipe.toml diff --git a/recipes/wip/games/other/love/redox.patch b/recipes/wip/games/engines/love/redox.patch similarity index 100% rename from recipes/wip/games/other/love/redox.patch rename to recipes/wip/games/engines/love/redox.patch diff --git a/recipes/wip/games/open-world/luanti/recipe.toml b/recipes/wip/games/engines/luanti/recipe.toml similarity index 100% rename from recipes/wip/games/open-world/luanti/recipe.toml rename to recipes/wip/games/engines/luanti/recipe.toml diff --git a/recipes/wip/games/open-world/luanti/redox.patch b/recipes/wip/games/engines/luanti/redox.patch similarity index 100% rename from recipes/wip/games/open-world/luanti/redox.patch rename to recipes/wip/games/engines/luanti/redox.patch diff --git a/recipes/wip/games/action/openlara/assets/README.md b/recipes/wip/games/engines/openlara/assets/README.md similarity index 100% rename from recipes/wip/games/action/openlara/assets/README.md rename to recipes/wip/games/engines/openlara/assets/README.md diff --git a/recipes/wip/games/action/openlara/recipe.toml b/recipes/wip/games/engines/openlara/recipe.toml similarity index 100% rename from recipes/wip/games/action/openlara/recipe.toml rename to recipes/wip/games/engines/openlara/recipe.toml diff --git a/recipes/wip/games/action/opentomb/recipe.toml b/recipes/wip/games/engines/opentomb/recipe.toml similarity index 100% rename from recipes/wip/games/action/opentomb/recipe.toml rename to recipes/wip/games/engines/opentomb/recipe.toml diff --git a/recipes/wip/games/fps/rbdoom3-bfg/recipe.toml b/recipes/wip/games/engines/rbdoom3-bfg/recipe.toml similarity index 100% rename from recipes/wip/games/fps/rbdoom3-bfg/recipe.toml rename to recipes/wip/games/engines/rbdoom3-bfg/recipe.toml diff --git a/recipes/wip/games/fps/room4doom/recipe.toml b/recipes/wip/games/engines/room4doom/recipe.toml similarity index 100% rename from recipes/wip/games/fps/room4doom/recipe.toml rename to recipes/wip/games/engines/room4doom/recipe.toml diff --git a/recipes/wip/games/fps/rust-doom/recipe.toml b/recipes/wip/games/engines/rust-doom/recipe.toml similarity index 100% rename from recipes/wip/games/fps/rust-doom/recipe.toml rename to recipes/wip/games/engines/rust-doom/recipe.toml diff --git a/recipes/wip/games/other/shockolate/recipe.toml b/recipes/wip/games/engines/shockolate/recipe.toml similarity index 100% rename from recipes/wip/games/other/shockolate/recipe.toml rename to recipes/wip/games/engines/shockolate/recipe.toml diff --git a/recipes/wip/games/engines/uzdoom/recipe.toml b/recipes/wip/games/engines/uzdoom/recipe.toml new file mode 100644 index 000000000..7d5119edb --- /dev/null +++ b/recipes/wip/games/engines/uzdoom/recipe.toml @@ -0,0 +1,24 @@ +#TODO not compiled or tested +#TODO determine minumum dependencies from cmake log +# build instructions: https://github.com/UZDoom/UZDoom/wiki/Compilation#linux +[source] +git = "https://github.com/UZDoom/UZDoom" +branch = "4.14.3" +shallow_clone = true +[build] +template = "cmake" +cmakeflags = [ + "-DHAVE_VULKAN=OFF", + "-DHAVE_GLES2=OFF", +] +dependencies = [ + "sdl2", + #"mesa", + #"mesa-glu", + "openal", + "bzip2", + "openmp", + #"libvpx", + #"libwebp", + #"zmusic", +] diff --git a/recipes/wip/games/fps/vkquake/recipe.toml b/recipes/wip/games/engines/vkquake/recipe.toml similarity index 100% rename from recipes/wip/games/fps/vkquake/recipe.toml rename to recipes/wip/games/engines/vkquake/recipe.toml diff --git a/recipes/wip/games/fps/vkquake2/recipe.toml b/recipes/wip/games/engines/vkquake2/recipe.toml similarity index 100% rename from recipes/wip/games/fps/vkquake2/recipe.toml rename to recipes/wip/games/engines/vkquake2/recipe.toml diff --git a/recipes/wip/games/fps/xash3d-fwgs/recipe.toml b/recipes/wip/games/engines/xash3d-fwgs/recipe.toml similarity index 100% rename from recipes/wip/games/fps/xash3d-fwgs/recipe.toml rename to recipes/wip/games/engines/xash3d-fwgs/recipe.toml diff --git a/recipes/wip/games/fps/yquake2/recipe.toml b/recipes/wip/games/engines/yquake2/recipe.toml similarity index 100% rename from recipes/wip/games/fps/yquake2/recipe.toml rename to recipes/wip/games/engines/yquake2/recipe.toml diff --git a/recipes/wip/games/fps/assaultcube/recipe.toml b/recipes/wip/games/fps/assaultcube/recipe.toml index b1c804916..1d3ecbc04 100644 --- a/recipes/wip/games/fps/assaultcube/recipe.toml +++ b/recipes/wip/games/fps/assaultcube/recipe.toml @@ -1,7 +1,8 @@ -#TODO missing script for "make", see https://wiki.cubers.net/action/view/Linux_Support#Compiling_AssaultCube +#TODO missing script for gnu make +# build instructions: https://wiki.cubers.net/action/view/Linux_Support#Compiling_AssaultCube [source] git = "https://github.com/assaultcube/AC" -rev = "1ece5af7533983bb8f827616381d282470793d90" +rev = "v1.3.0.2" [build] template = "configure" dependencies = [ diff --git a/recipes/wip/games/fps/et-legacy/recipe.toml b/recipes/wip/games/fps/et-legacy/recipe.toml index bff1a0201..ec979ba57 100644 --- a/recipes/wip/games/fps/et-legacy/recipe.toml +++ b/recipes/wip/games/fps/et-legacy/recipe.toml @@ -2,7 +2,8 @@ # build instructions: https://github.com/etlegacy/etlegacy#compile-and-install [source] git = "https://github.com/etlegacy/etlegacy" -rev = "956269f4c13ebe31ba2a0f0b805588383209bd5b" +rev = "v2.83.2" +shallow_clone = true [build] template = "cmake" dependencies = [ diff --git a/recipes/wip/games/fps/gzdoom/recipe.toml b/recipes/wip/games/fps/gzdoom/recipe.toml deleted file mode 100644 index bbb08c2b3..000000000 --- a/recipes/wip/games/fps/gzdoom/recipe.toml +++ /dev/null @@ -1,13 +0,0 @@ -#TODO maybe incomplete script, see https://zdoom.org/wiki/Compile_GZDoom_on_Linux -[source] -git = "https://github.com/ZDoom/gzdoom" -rev = "6ce809efe2902e43ceaa7031b875225d3a0367de" -[build] -template = "cmake" -dependencies = [ - "sdl2", - "mesa", - "mesa-glu", - "openal", - "zmusic", -] diff --git a/recipes/wip/games/fps/openspades-free/recipe.toml b/recipes/wip/games/fps/openspades-free/recipe.toml index 2c85ccf5a..8ea894c8f 100644 --- a/recipes/wip/games/fps/openspades-free/recipe.toml +++ b/recipes/wip/games/fps/openspades-free/recipe.toml @@ -2,6 +2,7 @@ # build instructions: https://github.com/yvt/openspades#on-unixes-from-source [source] git = "https://github.com/yvt/openspades" +shallow_clone = true [build] template = "custom" dependencies = [ diff --git a/recipes/wip/games/math/tuxmath/recipe.toml b/recipes/wip/games/math/tuxmath/recipe.toml index 17b231262..e67e18734 100644 --- a/recipes/wip/games/math/tuxmath/recipe.toml +++ b/recipes/wip/games/math/tuxmath/recipe.toml @@ -1,8 +1,14 @@ -#TODO missing script for building, see https://github.com/tux4kids/tuxmath/blob/master/doc/INSTALL +#TODO not compiled or tested +# build instructions: https://github.com/tux4kids/tuxmath/blob/master/doc/INSTALL [source] git = "https://github.com/tux4kids/tuxmath" +shallow_clone = true +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" [build] -template = "custom" +template = "configure" dependencies = [ "t4kcommon", "sdl1", diff --git a/recipes/wip/games/other/rustorio/recipe.toml b/recipes/wip/games/other/rustorio/recipe.toml new file mode 100644 index 000000000..e7207ed9d --- /dev/null +++ b/recipes/wip/games/other/rustorio/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/albertsgarde/rustorio" +shallow_clone = true +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo_packages rustorio +""" diff --git a/recipes/wip/games/other/vvvvvv/recipe.toml b/recipes/wip/games/other/vvvvvv/recipe.toml index a15bc5eb4..872ace7d9 100644 --- a/recipes/wip/games/other/vvvvvv/recipe.toml +++ b/recipes/wip/games/other/vvvvvv/recipe.toml @@ -5,11 +5,6 @@ upstream = "https://github.com/TerryCavanagh/VVVVVV" branch = "redox" script = "COOKBOOK_SOURCE=${COOKBOOK_SOURCE}/desktop_version" [build] -template = "cmake" -cmakeflags = [ - "-DSDL2_INCLUDE_DIRS=${COOKBOOK_SYSROOT}/include/SDL2", - "-DSDL2_LIBRARIES="-lSDL2main -lSDL2_mixer -lSDL2 $(${TARGET}-pkg-config --libs glu) -lorbital -lz -lvorbisfile -lvorbis -logg" .", -] dependencies = [ "sdl2-image", "sdl2-mixer", @@ -21,3 +16,10 @@ dependencies = [ "libogg", "libvorbis", ] +template = "custom" +script = """ +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/desktop_version" +cookbook_cmake \ + -DSDL2_INCLUDE_DIRS="${COOKBOOK_SYSROOT}/include/SDL2" \ + -DSDL2_LIBRARIES="-lSDL2main -lSDL2_mixer -lSDL2 $(${TARGET}-pkg-config --libs glu) -lorbital -lz -lvorbisfile -lvorbis -logg" +""" \ No newline at end of file diff --git a/recipes/wip/games/platform/supertux/recipe.toml b/recipes/wip/games/platform/supertux/recipe.toml new file mode 100644 index 000000000..bbd1bd7fd --- /dev/null +++ b/recipes/wip/games/platform/supertux/recipe.toml @@ -0,0 +1,24 @@ +#TODO not compiled or tested +# build instructions: https://github.com/SuperTux/supertux/blob/master/INSTALL.md#compiling +[source] +tar = "https://github.com/SuperTux/supertux/releases/download/v0.7.0-beta.1/SuperTux-v0.7.0-beta.1-Source.tar.gz" +[build] +template = "cmake" +cmakeflags = [ + "-DENABLE_OPENGL=OFF", + "-DUSE_SYSTEM_SDL2_TTF=ON", +] +dependencies = [ + "sdl2", + "sdl2-image", + "sdl2-ttf", + "zlib", + "libpng", + "freetype2", + "libfmt", + "libcurl", + "openal", + "libogg", + "libvorbis", + "physicsfs", +] diff --git a/recipes/wip/games/puzzle/setrixtui/recipe.toml b/recipes/wip/games/puzzle/setrixtui/recipe.toml new file mode 100644 index 000000000..f559534a5 --- /dev/null +++ b/recipes/wip/games/puzzle/setrixtui/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Mjoyufull/Setrixtui" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/games/racing/supertuxkart/recipe.toml b/recipes/wip/games/racing/supertuxkart/recipe.toml index 5ee6ff3c3..d136a5e5e 100644 --- a/recipes/wip/games/racing/supertuxkart/recipe.toml +++ b/recipes/wip/games/racing/supertuxkart/recipe.toml @@ -2,6 +2,7 @@ # build instructions: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md#compiling [source] tar = "https://github.com/supertuxkart/stk-code/releases/download/1.5/SuperTuxKart-1.5-src.tar.gz" +patches = ["redox.patch"] [build] template = "cmake" cmakeflags = [ @@ -18,7 +19,7 @@ dependencies = [ "freetype2", "harfbuzz", "curl", - "openssl1", + "openssl3", "libpng", "zlib", "libjpeg", diff --git a/recipes/wip/games/rpg/dcss/recipe.toml b/recipes/wip/games/rpg/dcss/recipe.toml index 29895a7de..32744f339 100644 --- a/recipes/wip/games/rpg/dcss/recipe.toml +++ b/recipes/wip/games/rpg/dcss/recipe.toml @@ -1,7 +1,6 @@ -#TODO missing script for "make", see https://github.com/crawl/crawl/blob/master/crawl-ref/INSTALL.md#compiling -#TODO require DejaVu fonts +#TODO missing script for gnu make: https://github.com/crawl/crawl/blob/master/crawl-ref/INSTALL.md#compiling [source] -tar = "https://github.com/crawl/crawl/releases/download/0.30.0/stone_soup-0.30.0.tar.xz" +tar = "https://github.com/crawl/crawl/releases/download/0.33.1/stone_soup-0.33.1.tar.xz" [build] template = "custom" dependencies = [ @@ -14,5 +13,7 @@ dependencies = [ "libpng", ] script = """ -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +DYNAMIC_INIT """ +[package] +dependencies = ["dejavu"] diff --git a/recipes/wip/games/rts/mindustry-beta/recipe.toml b/recipes/wip/games/rts/mindustry-beta/recipe.toml new file mode 100644 index 000000000..1a54756e2 --- /dev/null +++ b/recipes/wip/games/rts/mindustry-beta/recipe.toml @@ -0,0 +1,11 @@ +#TODO waiting openjdk x11 feature creation +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +wget https://github.com/Anuken/Mindustry/releases/download/v154.3/Mindustry.jar "${COOKBOOK_STAGE}/usr/bin" +echo "#!/usr/bin/env sh \n java -jar /usr/bin/Mindustry.jar" > "${COOKBOOK_STAGE}"/usr/bin/mindustry +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/mindustry +""" +[package] +dependencies = ["openjdk17.x11"] diff --git a/recipes/wip/games/rts/mindustry/recipe.toml b/recipes/wip/games/rts/mindustry/recipe.toml index aaf90c745..ea7dc882a 100644 --- a/recipes/wip/games/rts/mindustry/recipe.toml +++ b/recipes/wip/games/rts/mindustry/recipe.toml @@ -1,12 +1,11 @@ -#TODO make openjdk work +#TODO waiting openjdk x11 feature creation [build] template = "custom" script = """ -mkdir -pv "${COOKBOOK_SOURCE}" -wget https://github.com/Anuken/Mindustry/releases/download/v146/Mindustry.jar -mkdir -pv "${COOKBOOK_STAGE}"/usr/share/mindustry -mkdir -pv "${COOKBOOK_STAGE}"/usr/bin -cp -rv "${COOKBOOK_SOURCE}"/Mindustry.jar "${COOKBOOK_STAGE}"/usr/share/mindustry -echo "#!/usr/bin/env sh \n java -jar /usr/share/mindustry/Mindustry.jar" > "${COOKBOOK_STAGE}"/usr/bin/mindustry +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +wget https://github.com/Anuken/Mindustry/releases/download/v146/Mindustry.jar "${COOKBOOK_STAGE}/usr/bin" +echo "#!/usr/bin/env sh \n java -jar /usr/bin/Mindustry.jar" > "${COOKBOOK_STAGE}"/usr/bin/mindustry chmod a+x "${COOKBOOK_STAGE}"/usr/bin/mindustry """ +[package] +dependencies = ["openjdk17.x11"] diff --git a/recipes/wip/games/strategy/draughts/recipe.toml b/recipes/wip/games/strategy/draughts/recipe.toml new file mode 100644 index 000000000..5b5951845 --- /dev/null +++ b/recipes/wip/games/strategy/draughts/recipe.toml @@ -0,0 +1,19 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tobagin/Draughts" +rev = "v2.2.0" +shallow_clone = true +[build] +template = "meson" +mesonflags = [ + "-Dtests=false", +] +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "libgee", + "libsoup", + "json-glib", +] +dev-dependencies = ["host:blueprint"] diff --git a/recipes/wip/games/strategy/hnefatafl-copenhagen/recipe.toml b/recipes/wip/games/strategy/hnefatafl-copenhagen/recipe.toml index 50b08f452..5ff6fc05b 100644 --- a/recipes/wip/games/strategy/hnefatafl-copenhagen/recipe.toml +++ b/recipes/wip/games/strategy/hnefatafl-copenhagen/recipe.toml @@ -2,8 +2,7 @@ # 1. The CJK and runes fonts don't load. # 2. On a button press two characters are read in instead of one. # 3. Backspace does not work. -# 4. The command line prompt prints 'deprecated: legacy path "time:4" used by /usr/games/hnefatafl-client'. -# 5. TcpStream.shutdown(): shutdown call failed: Os { code: 38, kind: Unsupported, message: "Function not implemented" } +# 4. TcpStream.shutdown() is not implemented. [source] git = "https://github.com/dcampbell24/hnefatafl" @@ -12,26 +11,29 @@ git = "https://github.com/dcampbell24/hnefatafl" template = "custom" script = """ "${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ - --bin hnefatafl-client \ + --manifest-path "${COOKBOOK_SOURCE}/${COOKBOOK_CARGO_PATH}/Cargo.toml" \ --features client \ --release \ --no-default-features mkdir -pv "${COOKBOOK_STAGE}/usr/bin" -cp -v \ - "target/${TARGET}/release/hnefatafl-client" \ - "${COOKBOOK_STAGE}/usr/bin/hnefatafl-client" + +cp -v "target/${TARGET}/release/hnefatafl-ai" "${COOKBOOK_STAGE}/usr/bin/hnefatafl-ai" +cp -v "target/${TARGET}/release/hnefatafl-client" "${COOKBOOK_STAGE}/usr/bin/hnefatafl-client" +cp -v "target/${TARGET}/release/hnefatafl-server" "${COOKBOOK_STAGE}/usr/bin/hnefatafl-server" +cp -v "target/${TARGET}/release/hnefatafl-text-protocol" "${COOKBOOK_STAGE}/usr/bin/hnefatafl-text-protocol" mkdir -pv "${COOKBOOK_STAGE}"/usr/games -mkdir -pv "${COOKBOOK_STAGE}"/ui/apps -mkdir -pv "${COOKBOOK_STAGE}"/ui/icons/apps -cp -rv "${COOKBOOK_SOURCE}"/icons/king_256x256.png "${COOKBOOK_STAGE}"/ui/icons/apps/hnefatafl-king_256x256.png -cp -rv "${COOKBOOK_SOURCE}"/packages/redox/manifest "${COOKBOOK_STAGE}"/ui/apps/hnefatafl-client +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/ui/apps +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/icons/apps +cp -rv "${COOKBOOK_SOURCE}"/src/bin/hnefatafl-client/helmet.png "${COOKBOOK_STAGE}"/usr/share/icons/apps/helmet.png +cp -rv "${COOKBOOK_SOURCE}"/packages/redox/manifest "${COOKBOOK_STAGE}"/usr/share/ui/apps/hnefatafl-client mv "${COOKBOOK_STAGE}"/usr/bin/hnefatafl-client "${COOKBOOK_STAGE}"/usr/games/hnefatafl-client """ [package] dependencies = [ + "dejavu", + "freefont", "noto-color-emoji", ] diff --git a/recipes/wip/gnome/geary/recipe.toml b/recipes/wip/gnome/geary/recipe.toml new file mode 100644 index 000000000..826ecf3c2 --- /dev/null +++ b/recipes/wip/gnome/geary/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +#TODO require pts3 and pts5 support in sqlite: https://gitlab.gnome.org/GNOME/geary/-/blob/main/BUILDING.md#dependencies +[source] +tar = "https://download.gnome.org/sources/geary/46/geary-46.0.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dprofile=release", + "-Dlibunwind=disabled", + "-Dtnef=disabled", + "-Dvaladoc=disabled", +] +dependencies = [ + "gtk3", + "webkitgtk3", + "sqlite3", +] +dev-dependencies = ["vala"] diff --git a/recipes/wip/gnome/gnome-boxes/recipe.toml b/recipes/wip/gnome/gnome-boxes/recipe.toml new file mode 100644 index 000000000..c76b93eab --- /dev/null +++ b/recipes/wip/gnome/gnome-boxes/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +[source] +tar = "https://download.gnome.org/sources/gnome-boxes/49/gnome-boxes-49.1.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/gnome/gnome-connections/recipe.toml b/recipes/wip/gnome/gnome-connections/recipe.toml new file mode 100644 index 000000000..3c7ee88c9 --- /dev/null +++ b/recipes/wip/gnome/gnome-connections/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from meson log +[source] +tar = "https://download.gnome.org/sources/gnome-connections/49/gnome-connections-49.0.tar.xz" +[build] +template = "meson" +#dependencies = [ +# "libsecret", +# "libhandy", +# "libxml2", +# "gtk-vnc", +# "freerdp", +# "cairo", +# "gtk3", +# "glib", +# "gdk-pixbuf", +#] diff --git a/recipes/wip/gnome/gnome-keyring/recipe.toml b/recipes/wip/gnome/gnome-keyring/recipe.toml new file mode 100644 index 000000000..65e38bfa1 --- /dev/null +++ b/recipes/wip/gnome/gnome-keyring/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/gnome-keyring/48/gnome-keyring-48.0.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dsystemd=disabled", + "-Dpam=false", + "-Ddebug-mode=false", + "-Dmanpage=false", +] diff --git a/recipes/wip/gnome/gnome-web/recipe.toml b/recipes/wip/gnome/gnome-web/recipe.toml index b106ca738..1f2f7be35 100644 --- a/recipes/wip/gnome/gnome-web/recipe.toml +++ b/recipes/wip/gnome/gnome-web/recipe.toml @@ -1,9 +1,13 @@ # TODO: Need to port more libs # newer version requires c_std=gnu23 [source] -tar = "https://github.com/GNOME/epiphany/archive/refs/tags/46.4.tar.gz" - +tar = "https://download.gnome.org/sources/epiphany/46/epiphany-46.5.tar.xz" [build] +template = "meson" +mesonflags = [ + "-Dunit_tests=disabled", + "-Dman-pages=disabled", +] dependencies = [ "cairo", # "gck2", @@ -31,10 +35,3 @@ dependencies = [ # "webkitgtk6", # "webkitgtk-web-process-extension6" ] - -template = "custom" -script = """ -DYNAMIC_INIT - -cookbook_meson -""" diff --git a/recipes/wip/video/editors/pitivi/recipe.toml b/recipes/wip/gnome/pitivi/recipe.toml similarity index 82% rename from recipes/wip/video/editors/pitivi/recipe.toml rename to recipes/wip/gnome/pitivi/recipe.toml index e4acd1ee3..10e4f9cba 100644 --- a/recipes/wip/video/editors/pitivi/recipe.toml +++ b/recipes/wip/gnome/pitivi/recipe.toml @@ -1,8 +1,8 @@ #TODO not compiled or tested #TODO determine minimum dependencies from meson log # lacking build instructions +# the tarball lacks an important recent fix [source] -#tar = "https://download.gnome.org/sources/pitivi/2023/pitivi-2023.03.tar.xz" git = "https://gitlab.gnome.org/GNOME/pitivi" rev = "b9864c4aca6d88dae38fde5609047d0ebd7b0506" shallow_clone = true diff --git a/recipes/wip/graphics/editors/blender-lts/recipe.toml b/recipes/wip/graphics/editors/blender-lts/recipe.toml index 6c0414383..8b578bdb3 100644 --- a/recipes/wip/graphics/editors/blender-lts/recipe.toml +++ b/recipes/wip/graphics/editors/blender-lts/recipe.toml @@ -4,8 +4,14 @@ [source] git = "https://projects.blender.org/blender/blender" branch = "blender-v4.5-release" +shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DWITH_GHOST_SDL=ON", + "-DWITH_SDL=ON", + "-DWITH_EXPERIMENTAL_FEATURES=OFF", +] # dependencies = [ # "dbus", # "libdecor", diff --git a/recipes/wip/graphics/editors/blender/recipe.toml b/recipes/wip/graphics/editors/blender/recipe.toml index 1f47792b7..ba9fab550 100644 --- a/recipes/wip/graphics/editors/blender/recipe.toml +++ b/recipes/wip/graphics/editors/blender/recipe.toml @@ -2,9 +2,14 @@ #TODO determine the minimum dependencies from cmake log # build instructions: https://developer.blender.org/docs/handbook/building_blender/ [source] -tar = "https://download.blender.org/source/blender-5.0.0.tar.xz" +tar = "https://download.blender.org/source/blender-5.0.1.tar.xz" [build] template = "cmake" +cmakeflags = [ + "-DWITH_GHOST_SDL=ON", + "-DWITH_SDL=ON", + "-DWITH_EXPERIMENTAL_FEATURES=OFF", +] # dependencies = [ # "dbus", # "libdecor", diff --git a/recipes/wip/graphics/editors/eyedropper/recipe.toml b/recipes/wip/graphics/editors/eyedropper/recipe.toml new file mode 100644 index 000000000..861ac535e --- /dev/null +++ b/recipes/wip/graphics/editors/eyedropper/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/FineFindus/eyedropper" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/demos/lyon/recipe.toml b/recipes/wip/graphics/other/lyon/recipe.toml similarity index 75% rename from recipes/wip/demos/lyon/recipe.toml rename to recipes/wip/graphics/other/lyon/recipe.toml index 78479f9e8..6986d8896 100644 --- a/recipes/wip/demos/lyon/recipe.toml +++ b/recipes/wip/graphics/other/lyon/recipe.toml @@ -1,10 +1,10 @@ #TODO compiled but not tested -#TODO fix the packaging -#TODO move to the "graphics" category [source] git = "https://github.com/nical/lyon" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages lyon_cli wgpu-example svg-rendering-example """ diff --git a/recipes/wip/health/blanket/recipe.toml b/recipes/wip/health/blanket/recipe.toml new file mode 100644 index 000000000..a0d427d75 --- /dev/null +++ b/recipes/wip/health/blanket/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rafaelmardojai/blanket" +rev = "0.8.0" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "gstreamer", + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/health/dosage/recipe.toml b/recipes/wip/health/dosage/recipe.toml new file mode 100644 index 000000000..456ffa024 --- /dev/null +++ b/recipes/wip/health/dosage/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +[source] +git = "https://github.com/diegopvlk/Dosage" +rev = "v2.1.2" +shallow_clone = true +[build] +template = "meson" diff --git a/recipes/wip/hw/piper/recipe.toml b/recipes/wip/hw/piper/recipe.toml new file mode 100644 index 000000000..8582e6177 --- /dev/null +++ b/recipes/wip/hw/piper/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/libratbag/piper" +rev = "0.8" +shallow_clone = true +[build] +template = "meson" +mesonflags = [ + "-Druntime-dependency-checks=false", +] +dependencies = [ + "libratbag", + "gtk3", + "cairo", + "libevdev", +] diff --git a/recipes/wip/image/editors/drawing/recipe.toml b/recipes/wip/image/editors/drawing/recipe.toml index 77a0e5c4e..dc8bf3716 100644 --- a/recipes/wip/image/editors/drawing/recipe.toml +++ b/recipes/wip/image/editors/drawing/recipe.toml @@ -4,9 +4,13 @@ # dependencies: https://github.com/maoschanz/drawing/blob/master/CONTRIBUTING.md#dependencies [source] git = "https://github.com/maoschanz/drawing" -rev = "1.0.2" +branch = "1.0.x-stable" +shallow_clone = true [build] template = "meson" +mesonflags = [ + "-Denable-translations-and-appdata=false" +] #dependencies = [ # "gtk3", # "cairo", diff --git a/recipes/wip/image/editors/inkscape/recipe.toml b/recipes/wip/image/editors/inkscape/recipe.toml index 49dd872a7..f75218320 100644 --- a/recipes/wip/image/editors/inkscape/recipe.toml +++ b/recipes/wip/image/editors/inkscape/recipe.toml @@ -1,8 +1,9 @@ #TODO not compiled or tested #TODO discover minimum dependencies from cmake log # build instructions: https://inkscape.org/develop/getting-started/#compile +# build options: https://gitlab.com/inkscape/inkscape/-/blob/master/CMakeLists.txt?ref_type=heads#L87 [source] -tar = "https://inkscape.org/gallery/item/56344/inkscape-1.4.2.tar.xz" +tar = "https://inkscape.org/gallery/item/58914/inkscape-1.4.3.tar.xz" [build] template = "cmake" # dependencies = [ diff --git a/recipes/wip/image/other/graphicsmagick/recipe.toml b/recipes/wip/image/other/graphicsmagick/recipe.toml index 9711bca14..aa24af391 100644 --- a/recipes/wip/image/other/graphicsmagick/recipe.toml +++ b/recipes/wip/image/other/graphicsmagick/recipe.toml @@ -1,6 +1,5 @@ -#TODO compilation error - missing sys/poll.h -#TODO fix libwebp -#TODO more features - http://www.graphicsmagick.org/README.html#add-on-libraries-programs +#TODO compilation error: missing sys/poll.h +#TODO more features: http://www.graphicsmagick.org/README.html#add-on-libraries-programs [source] tar = "https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.42/GraphicsMagick-1.3.42.tar.xz/download" [build] diff --git a/recipes/wip/image/upscaling/upscaler/recipe.toml b/recipes/wip/image/upscaling/upscaler/recipe.toml index 6d6b73cfa..c7eae8da0 100644 --- a/recipes/wip/image/upscaling/upscaler/recipe.toml +++ b/recipes/wip/image/upscaling/upscaler/recipe.toml @@ -2,9 +2,16 @@ # build instructions: https://gitlab.gnome.org/World/Upscaler#meson [source] git = "https://gitlab.gnome.org/World/Upscaler" -rev = "30c2a8411fac281ed548189a9fea45dc9efe5b68" +rev = "1.6.3" +shallow_clone = true [build] template = "meson" +mesonflags = [ + "-Dnetwork_tests=false", +] +dev-dependencies = [ + "host:blueprint" # add script for linux compilation +] dependencies = [ "gtk4", "libadwaita", diff --git a/recipes/wip/image/upscaling/upscayl-ncnn/recipe.toml b/recipes/wip/image/upscaling/upscayl-ncnn/recipe.toml index de2f4f7b8..1955bff3d 100644 --- a/recipes/wip/image/upscaling/upscayl-ncnn/recipe.toml +++ b/recipes/wip/image/upscaling/upscayl-ncnn/recipe.toml @@ -1,7 +1,16 @@ #TODO not compiled or tested -# build instructions: https://github.com/upscayl/upscayl-ncnn/blob/master/README.md [source] git = "https://github.com/upscayl/upscayl-ncnn" -rev = "22774bc42e2bc3c785b5b585d213d960b1348ad5" +rev = "d02fa88e078e7109fd689932453362430144014d" +shallow_clone = true [build] -template = "cmake" +template = "custom" +dependencies = [ + "libvulkan", + "openmp", +] +script = """ +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/src" +DYNAMIC_INIT +cookbook_cmake +""" diff --git a/recipes/wip/kde/ark/recipe.toml b/recipes/wip/kde/ark/recipe.toml index d5078e8ca..e0d18d4b7 100644 --- a/recipes/wip/kde/ark/recipe.toml +++ b/recipes/wip/kde/ark/recipe.toml @@ -2,7 +2,7 @@ #TODO discover minimum dependencies from cmake log [source] git = "https://invent.kde.org/utilities/ark" -branch = "release/25.08" +branch = "release/25.12" shallow_clone = true [build] template = "cmake" diff --git a/recipes/wip/kde/discover/recipe.toml b/recipes/wip/kde/discover/recipe.toml index 32828d4da..ddfda1b31 100644 --- a/recipes/wip/kde/discover/recipe.toml +++ b/recipes/wip/kde/discover/recipe.toml @@ -2,7 +2,7 @@ #TODO determine minimum dependencies from cmake log [source] git = "https://invent.kde.org/plasma/discover" -branch = "Plasma/6.5" +branch = "Plasma/6.6" shallow_clone = true [build] template = "cmake" diff --git a/recipes/wip/kde/k3b/recipe.toml b/recipes/wip/kde/k3b/recipe.toml index f9a01119c..9177fe46a 100644 --- a/recipes/wip/kde/k3b/recipe.toml +++ b/recipes/wip/kde/k3b/recipe.toml @@ -3,10 +3,22 @@ # build instructions: https://invent.kde.org/multimedia/k3b/-/blob/master/INSTALL.txt?ref_type=heads [source] git = "https://invent.kde.org/multimedia/k3b" -branch = "release/25.08" +branch = "release/25.12" shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DK3B_DOC=OFF", + "-DK3B_ENABLE_TAGLIB=OFF", + "-DK3B_ENABLE_DVD_RIPPING=OFF", + "-DK3B_BUILD_MUSE_DECODER_PLUGIN=OFF", + "-DK3B_BUILD_FLAC_DECODER_PLUGIN=OFF", + "-DK3B_BUILD_SNDFILE_DECODER_PLUGIN=OFF", + "-DK3B_BUILD_LAME_ENCODER_PLUGIN=OFF", + "-DK3B_BUILD_SOX_ENCODER_PLUGIN=OFF", + "-DK3B_BUILD_EXTERNAL_ENCODER_PLUGIN=OFF", + "-DK3B_BUILD_WAVE_DECODER_PLUGIN=OFF", +] dependencies = [ "libcdio-paranoia", ] diff --git a/recipes/wip/kde/kamoso/recipe.toml b/recipes/wip/kde/kamoso/recipe.toml index ced03c4e5..e0ae99f65 100644 --- a/recipes/wip/kde/kamoso/recipe.toml +++ b/recipes/wip/kde/kamoso/recipe.toml @@ -2,9 +2,12 @@ #TODO missing dependencies: https://invent.kde.org/multimedia/kamoso/-/blob/master/CMakeLists.txt?ref_type=heads#L29 [source] git = "https://invent.kde.org/multimedia/kamoso" -branch = "release/25.08" +branch = "release/25.12" [build] template = "cmake" +cmakeflags = [ + "-DBUILD_DOC=OFF", +] dependencies = [ "qt6-base", ] diff --git a/recipes/wip/kde/kde-dolphin/recipe.toml b/recipes/wip/kde/kde-dolphin/recipe.toml index e562f033d..6298a3800 100644 --- a/recipes/wip/kde/kde-dolphin/recipe.toml +++ b/recipes/wip/kde/kde-dolphin/recipe.toml @@ -2,7 +2,7 @@ #TODO discover minimum dependencies from cmake log [source] git = "https://invent.kde.org/system/dolphin" -branch = "release/25.08" +branch = "release/25.12" shallow_clone = true [build] template = "cmake" diff --git a/recipes/wip/kde/kdenlive/recipe.toml b/recipes/wip/kde/kdenlive/recipe.toml index 95447b59f..917b0ca92 100644 --- a/recipes/wip/kde/kdenlive/recipe.toml +++ b/recipes/wip/kde/kdenlive/recipe.toml @@ -3,10 +3,14 @@ # build instructions: https://invent.kde.org/multimedia/kdenlive/-/blob/master/dev-docs/build.md#build-and-install-the-projects [source] git = "https://invent.kde.org/multimedia/kdenlive" -branch = "release/25.08" +branch = "release/25.12" shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DBUILD_TESTING=OFF", + "-DUSE_DBUS=OFF", +] # dependencies = [ # "mlt", # "ffmpeg6", diff --git a/recipes/wip/kde/kdevelop/recipe.toml b/recipes/wip/kde/kdevelop/recipe.toml index f1e1cb5db..fa11c57bc 100644 --- a/recipes/wip/kde/kdevelop/recipe.toml +++ b/recipes/wip/kde/kdevelop/recipe.toml @@ -1,12 +1,14 @@ #TODO not compiled or tested -#TODO probably missing dependencies, see https://packages.debian.org/source/trixie/kdevelop -# build instructions: https://kdevelop.org/build-it/ +#TODO discover minimum dependencies from cmake log [source] git = "https://invent.kde.org/kdevelop/kdevelop" -branch = "release/25.08" +branch = "release/25.12" shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DBUILD_DOC=OFF", +] # dependencies = [ # "apr", # "apr-util", diff --git a/recipes/wip/kde/kpatience/recipe.toml b/recipes/wip/kde/kpatience/recipe.toml index 7702e707b..2a2fe9697 100644 --- a/recipes/wip/kde/kpatience/recipe.toml +++ b/recipes/wip/kde/kpatience/recipe.toml @@ -2,7 +2,10 @@ #TODO discover minimum dependencies from cmake log [source] git = "https://invent.kde.org/games/kpat" -branch = "release/25.08" +branch = "release/25.12" shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DBUILD_DOC=OFF", +] diff --git a/recipes/wip/kde/krita/recipe.toml b/recipes/wip/kde/krita/recipe.toml index 746db5b78..c166860fc 100644 --- a/recipes/wip/kde/krita/recipe.toml +++ b/recipes/wip/kde/krita/recipe.toml @@ -3,10 +3,14 @@ # build instructions: https://docs.krita.org/en/untranslatable_pages/building_krita.html#building-on-linux [source] git = "https://invent.kde.org/graphics/krita" -rev = "v5.2.13" +branch = "release/5.2.14" shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DLIMIT_LONG_TESTS=OFF", + "-DENABLE_UPDATERS=OFF", +] # dependencies = [ # "gexiv2", # "ffmpeg6", diff --git a/recipes/wip/kde/ktorrent/recipe.toml b/recipes/wip/kde/ktorrent/recipe.toml new file mode 100644 index 000000000..fd1a768a7 --- /dev/null +++ b/recipes/wip/kde/ktorrent/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +[source] +git = "https://invent.kde.org/network/ktorrent" +branch = "release/25.12" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/kde/kwave/recipe.toml b/recipes/wip/kde/kwave/recipe.toml index cf7dbe575..cab1f7291 100644 --- a/recipes/wip/kde/kwave/recipe.toml +++ b/recipes/wip/kde/kwave/recipe.toml @@ -1,10 +1,16 @@ #TODO not compiled or tested [source] git = "https://invent.kde.org/multimedia/kwave" -rev = "release/25.08" +rev = "release/25.12" shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "--preset=release", + "-DWITH_DOC=OFF", + "-DWITH_FLAC=OFF", + "-DWITH_OSS=OFF", +] dependencies = [ "libpulse", "libmad", diff --git a/recipes/wip/kde/marble/recipe.toml b/recipes/wip/kde/marble/recipe.toml new file mode 100644 index 000000000..2549c7f5d --- /dev/null +++ b/recipes/wip/kde/marble/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from cmake log +[source] +git = "https://invent.kde.org/education/marble" +branch = "release/25.12" +shallow_clone = true +[build] +template = "cmake" +cmakeflags = [ + "-DBUILD_WITH_DBUS=OFF", +] diff --git a/recipes/wip/tools/okteta/recipe.toml b/recipes/wip/kde/okteta/recipe.toml similarity index 100% rename from recipes/wip/tools/okteta/recipe.toml rename to recipes/wip/kde/okteta/recipe.toml diff --git a/recipes/wip/kde/skanpage/recipe.toml b/recipes/wip/kde/skanpage/recipe.toml index 398fb80f5..091785aae 100644 --- a/recipes/wip/kde/skanpage/recipe.toml +++ b/recipes/wip/kde/skanpage/recipe.toml @@ -2,10 +2,11 @@ #TODO discover minimum dependencies from cmake log [source] git = "https://invent.kde.org/utilities/skanpage" -branch = "release/25.08" +branch = "release/25.12" shallow_clone = true [build] template = "cmake" +cmakeflags = ["--preset=release"] dependencies = [ "sane-backends", ] diff --git a/recipes/wip/lang/kana/recipe.toml b/recipes/wip/lang/kana/recipe.toml new file mode 100644 index 000000000..ecc39e6bb --- /dev/null +++ b/recipes/wip/lang/kana/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from meson log +[source] +git = "https://gitlab.gnome.org/fkinoshita/kana" +shallow_clone = true +[build] +template = "meson" diff --git a/recipes/wip/libs/audio/libcanberra/recipe.toml b/recipes/wip/libs/audio/libcanberra/recipe.toml index 2de6513c3..760596d02 100644 --- a/recipes/wip/libs/audio/libcanberra/recipe.toml +++ b/recipes/wip/libs/audio/libcanberra/recipe.toml @@ -3,7 +3,6 @@ tar = "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz" blake3 = "ea02f4b5a00bfffce1d29ce73e1cf5351027208cbeb58bf9954e84ad120e6daa" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/audio/libopus/recipe.toml b/recipes/wip/libs/audio/libopus/recipe.toml deleted file mode 100644 index 0f63e4635..000000000 --- a/recipes/wip/libs/audio/libopus/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO compiled but not tested -[source] -tar = "https://downloads.xiph.org/releases/opus/opus-1.5.1.tar.gz" -[build] -template = "configure" diff --git a/recipes/wip/libs/audio/mpg123/recipe.toml b/recipes/wip/libs/audio/mpg123/recipe.toml index f88873ab4..c71eb8d30 100644 --- a/recipes/wip/libs/audio/mpg123/recipe.toml +++ b/recipes/wip/libs/audio/mpg123/recipe.toml @@ -3,7 +3,6 @@ tar = "https://mpg123.de/download/mpg123-1.33.2.tar.bz2" blake3 = "1e604dc14160a8852ef6b880643e3534f44e410af1fd5ba29a80ff960a54e834" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/audio/opusfile/recipe.toml b/recipes/wip/libs/audio/opusfile/recipe.toml deleted file mode 100644 index 47d9e2198..000000000 --- a/recipes/wip/libs/audio/opusfile/recipe.toml +++ /dev/null @@ -1,10 +0,0 @@ -#TODO compiled but not tested -[source] -tar = "https://downloads.xiph.org/releases/opus/opusfile-0.12.tar.gz" -[build] -template = "configure" -dependencies = [ - "openssl1", - "libogg", - "opus", -] diff --git a/recipes/wip/libs/fs/physicsfs/recipe.toml b/recipes/wip/libs/fs/physicsfs/recipe.toml new file mode 100644 index 000000000..31b92617b --- /dev/null +++ b/recipes/wip/libs/fs/physicsfs/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/icculus/physfs/blob/main/docs/INSTALL.txt +[source] +git = "https://github.com/icculus/physfs" +branch = "stable-3.2" +[build] +template = "cmake" +cmakeflags = [ + "-DPHYSFS_BUILD_DOCS=OFF", +] diff --git a/recipes/wip/libs/a11y/at-spi2-core/recipe.toml b/recipes/wip/libs/gnome/at-spi2-core/recipe.toml similarity index 100% rename from recipes/wip/libs/a11y/at-spi2-core/recipe.toml rename to recipes/wip/libs/gnome/at-spi2-core/recipe.toml diff --git a/recipes/wip/libs/other/atkmm/recipe.toml b/recipes/wip/libs/gnome/atkmm/recipe.toml similarity index 100% rename from recipes/wip/libs/other/atkmm/recipe.toml rename to recipes/wip/libs/gnome/atkmm/recipe.toml diff --git a/recipes/wip/libs/gui/clutter-gst/recipe.toml b/recipes/wip/libs/gnome/clutter-gst/recipe.toml similarity index 100% rename from recipes/wip/libs/gui/clutter-gst/recipe.toml rename to recipes/wip/libs/gnome/clutter-gst/recipe.toml diff --git a/recipes/wip/libs/gui/clutter-gtk/recipe.toml b/recipes/wip/libs/gnome/clutter-gtk/recipe.toml similarity index 100% rename from recipes/wip/libs/gui/clutter-gtk/recipe.toml rename to recipes/wip/libs/gnome/clutter-gtk/recipe.toml diff --git a/recipes/wip/libs/gui/clutter/recipe.toml b/recipes/wip/libs/gnome/clutter/recipe.toml similarity index 100% rename from recipes/wip/libs/gui/clutter/recipe.toml rename to recipes/wip/libs/gnome/clutter/recipe.toml diff --git a/recipes/wip/libs/gui/cogl/recipe.toml b/recipes/wip/libs/gnome/cogl/recipe.toml similarity index 100% rename from recipes/wip/libs/gui/cogl/recipe.toml rename to recipes/wip/libs/gnome/cogl/recipe.toml diff --git a/recipes/wip/libs/gtk/dconf/recipe.toml b/recipes/wip/libs/gnome/dconf/recipe.toml similarity index 94% rename from recipes/wip/libs/gtk/dconf/recipe.toml rename to recipes/wip/libs/gnome/dconf/recipe.toml index 40fcd4697..44a9fb773 100644 --- a/recipes/wip/libs/gtk/dconf/recipe.toml +++ b/recipes/wip/libs/gnome/dconf/recipe.toml @@ -11,6 +11,7 @@ dependencies = [ template = "meson" mesonflags = [ "-Dbash_completion=false", + "-Dman=false", "-Dvapi=false", "--force-fallback-for=gvdb", ] diff --git a/recipes/wip/libs/gtk/dconf/redox.patch b/recipes/wip/libs/gnome/dconf/redox.patch similarity index 100% rename from recipes/wip/libs/gtk/dconf/redox.patch rename to recipes/wip/libs/gnome/dconf/redox.patch diff --git a/recipes/wip/libs/other/dspy/recipe.toml b/recipes/wip/libs/gnome/dspy/recipe.toml similarity index 100% rename from recipes/wip/libs/other/dspy/recipe.toml rename to recipes/wip/libs/gnome/dspy/recipe.toml diff --git a/recipes/wip/dev/other/gegl/recipe.toml b/recipes/wip/libs/gnome/gegl/recipe.toml similarity index 100% rename from recipes/wip/dev/other/gegl/recipe.toml rename to recipes/wip/libs/gnome/gegl/recipe.toml diff --git a/recipes/wip/dev/other/gexiv2/recipe.toml b/recipes/wip/libs/gnome/gexiv2/recipe.toml similarity index 100% rename from recipes/wip/dev/other/gexiv2/recipe.toml rename to recipes/wip/libs/gnome/gexiv2/recipe.toml diff --git a/recipes/wip/libs/net/glib-networking/recipe.toml b/recipes/wip/libs/gnome/glib-networking/recipe.toml similarity index 100% rename from recipes/wip/libs/net/glib-networking/recipe.toml rename to recipes/wip/libs/gnome/glib-networking/recipe.toml diff --git a/recipes/wip/libs/net/glib-networking/redox.patch b/recipes/wip/libs/gnome/glib-networking/redox.patch similarity index 100% rename from recipes/wip/libs/net/glib-networking/redox.patch rename to recipes/wip/libs/gnome/glib-networking/redox.patch diff --git a/recipes/wip/dev/other/glibmm/recipe.toml b/recipes/wip/libs/gnome/glibmm/recipe.toml similarity index 100% rename from recipes/wip/dev/other/glibmm/recipe.toml rename to recipes/wip/libs/gnome/glibmm/recipe.toml diff --git a/recipes/wip/libs/other/gnome2-common/recipe.toml b/recipes/wip/libs/gnome/gnome2-common/recipe.toml similarity index 100% rename from recipes/wip/libs/other/gnome2-common/recipe.toml rename to recipes/wip/libs/gnome/gnome2-common/recipe.toml diff --git a/recipes/wip/libs/other/gnome3-common/recipe.toml b/recipes/wip/libs/gnome/gnome3-common/recipe.toml similarity index 100% rename from recipes/wip/libs/other/gnome3-common/recipe.toml rename to recipes/wip/libs/gnome/gnome3-common/recipe.toml diff --git a/recipes/wip/libs/other/gobject-introspection/recipe.toml b/recipes/wip/libs/gnome/gobject-introspection/recipe.toml similarity index 100% rename from recipes/wip/libs/other/gobject-introspection/recipe.toml rename to recipes/wip/libs/gnome/gobject-introspection/recipe.toml diff --git a/recipes/wip/dev/other/graphene/recipe.toml b/recipes/wip/libs/gnome/graphene/recipe.toml similarity index 76% rename from recipes/wip/dev/other/graphene/recipe.toml rename to recipes/wip/libs/gnome/graphene/recipe.toml index 40d77cfe4..c96d54794 100644 --- a/recipes/wip/dev/other/graphene/recipe.toml +++ b/recipes/wip/libs/gnome/graphene/recipe.toml @@ -4,3 +4,7 @@ tar = "https://download.gnome.org/sources/graphene/1.10/graphene-1.10.8.tar.xz" [build] template = "meson" +mesonflags = [ + "-Dtests=false", + "-Dintrospection=false", +] diff --git a/recipes/wip/libs/gtk/gtk-engines/recipe.toml b/recipes/wip/libs/gnome/gtk-engines/recipe.toml similarity index 100% rename from recipes/wip/libs/gtk/gtk-engines/recipe.toml rename to recipes/wip/libs/gnome/gtk-engines/recipe.toml diff --git a/recipes/wip/libs/gnome/gtk-vnc/recipe.toml b/recipes/wip/libs/gnome/gtk-vnc/recipe.toml new file mode 100644 index 000000000..8d1085ec1 --- /dev/null +++ b/recipes/wip/libs/gnome/gtk-vnc/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/gtk-vnc/1.5/gtk-vnc-1.5.0.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/gtk/gtk2/recipe.toml b/recipes/wip/libs/gnome/gtk2/recipe.toml similarity index 96% rename from recipes/wip/libs/gtk/gtk2/recipe.toml rename to recipes/wip/libs/gnome/gtk2/recipe.toml index 306a084df..3b7650b87 100644 --- a/recipes/wip/libs/gtk/gtk2/recipe.toml +++ b/recipes/wip/libs/gnome/gtk2/recipe.toml @@ -9,7 +9,6 @@ dependencies = [ "glib", "pango", "gdk-pixbuf", - "atk", "cairo", "gobject-introspection", ] diff --git a/recipes/wip/libs/gtk/gtk2mm/recipe.toml b/recipes/wip/libs/gnome/gtk2mm/recipe.toml similarity index 100% rename from recipes/wip/libs/gtk/gtk2mm/recipe.toml rename to recipes/wip/libs/gnome/gtk2mm/recipe.toml diff --git a/recipes/wip/libs/gtk/gtk3/recipe.toml b/recipes/wip/libs/gnome/gtk3/recipe.toml similarity index 100% rename from recipes/wip/libs/gtk/gtk3/recipe.toml rename to recipes/wip/libs/gnome/gtk3/recipe.toml diff --git a/recipes/wip/libs/gtk/gtk3/redox.patch b/recipes/wip/libs/gnome/gtk3/redox.patch similarity index 100% rename from recipes/wip/libs/gtk/gtk3/redox.patch rename to recipes/wip/libs/gnome/gtk3/redox.patch diff --git a/recipes/wip/libs/gtk/gtk3mm/recipe.toml b/recipes/wip/libs/gnome/gtk3mm/recipe.toml similarity index 83% rename from recipes/wip/libs/gtk/gtk3mm/recipe.toml rename to recipes/wip/libs/gnome/gtk3mm/recipe.toml index 3f47f818a..f40a830dd 100644 --- a/recipes/wip/libs/gtk/gtk3mm/recipe.toml +++ b/recipes/wip/libs/gnome/gtk3mm/recipe.toml @@ -1,11 +1,12 @@ #TODO not compiled or tested # build instructions: https://gnome.pages.gitlab.gnome.org/gtkmm-documentation/sec-install-unix-and-linux.html [source] -tar = "https://download.gnome.org/sources/gtkmm/3.24/gtkmm-3.24.8.tar.xz" +tar = "https://download.gnome.org/sources/gtkmm/3.24/gtkmm-3.24.10.tar.xz" [build] template = "meson" +mesonflags = ["-Dbuild-tests=false"] dependencies = [ - "libsigc++", + "libsigcpp", "gtk3", "glibmm", "cairomm10+", diff --git a/recipes/wip/libs/gtk/gtk4/recipe.toml b/recipes/wip/libs/gnome/gtk4/recipe.toml similarity index 58% rename from recipes/wip/libs/gtk/gtk4/recipe.toml rename to recipes/wip/libs/gnome/gtk4/recipe.toml index 67799892d..b405384be 100644 --- a/recipes/wip/libs/gtk/gtk4/recipe.toml +++ b/recipes/wip/libs/gnome/gtk4/recipe.toml @@ -1,9 +1,16 @@ #TODO not compiled or tested # build instructions: https://docs.gtk.org/gtk4/building.html [source] -tar = "https://download.gnome.org/sources/gtk/4.11/gtk-4.11.2.tar.xz" +tar = "https://download.gnome.org/sources/gtk/4.20/gtk-4.20.3.tar.xz" [build] template = "meson" +mesonflags = [ + "-Dwayland-backend=false", + "-Dintrospection=false", + "-Dprofile=default", + "-Dbuild-testsuite=false", + "-Dbuild-tests=false", +] dependencies = [ "glib", "gdk-pixbuf", @@ -11,7 +18,6 @@ dependencies = [ "cairo", "libepoxy", "atk", - "gobject-introspection", "shared-mime-info", "graphene", "libxkbcommon", diff --git a/recipes/wip/libs/gtk/gtk4mm/recipe.toml b/recipes/wip/libs/gnome/gtk4mm/recipe.toml similarity index 66% rename from recipes/wip/libs/gtk/gtk4mm/recipe.toml rename to recipes/wip/libs/gnome/gtk4mm/recipe.toml index e2b22bc85..d2212c5cb 100644 --- a/recipes/wip/libs/gtk/gtk4mm/recipe.toml +++ b/recipes/wip/libs/gnome/gtk4mm/recipe.toml @@ -1,11 +1,12 @@ #TODO not compiled or tested # build instructions: https://gnome.pages.gitlab.gnome.org/gtkmm-documentation/sec-install-unix-and-linux.html [source] -tar = "https://download.gnome.org/sources/gtkmm/4.13/gtkmm-4.13.2.tar.xz" +tar = "https://download.gnome.org/sources/gtkmm/4.21/gtkmm-4.21.3.tar.xz" [build] template = "meson" +mesonflags = ["-Dbuild-tests=false"] dependencies = [ - "libsigc++", + "libsigcpp", "gtk4", "glibmm", "cairomm116+", diff --git a/recipes/wip/libs/gtk/gtkglext/recipe.toml b/recipes/wip/libs/gnome/gtkglext/recipe.toml similarity index 100% rename from recipes/wip/libs/gtk/gtkglext/recipe.toml rename to recipes/wip/libs/gnome/gtkglext/recipe.toml diff --git a/recipes/wip/libs/gtk/gtksourceview/recipe.toml b/recipes/wip/libs/gnome/gtksourceview/recipe.toml similarity index 100% rename from recipes/wip/libs/gtk/gtksourceview/recipe.toml rename to recipes/wip/libs/gnome/gtksourceview/recipe.toml diff --git a/recipes/wip/libs/other/json-glib/recipe.toml b/recipes/wip/libs/gnome/json-glib/recipe.toml similarity index 100% rename from recipes/wip/libs/other/json-glib/recipe.toml rename to recipes/wip/libs/gnome/json-glib/recipe.toml diff --git a/recipes/wip/libs/other/jsonrpc-glib/recipe.toml b/recipes/wip/libs/gnome/jsonrpc-glib/recipe.toml similarity index 100% rename from recipes/wip/libs/other/jsonrpc-glib/recipe.toml rename to recipes/wip/libs/gnome/jsonrpc-glib/recipe.toml diff --git a/recipes/wip/libs/other/libadwaita/recipe.toml b/recipes/wip/libs/gnome/libadwaita/recipe.toml similarity index 54% rename from recipes/wip/libs/other/libadwaita/recipe.toml rename to recipes/wip/libs/gnome/libadwaita/recipe.toml index b48885f6e..530896d5c 100644 --- a/recipes/wip/libs/other/libadwaita/recipe.toml +++ b/recipes/wip/libs/gnome/libadwaita/recipe.toml @@ -1,6 +1,7 @@ #TODO not compiled or tested # build instructions: https://gitlab.gnome.org/GNOME/libadwaita#building [source] -tar = "https://download.gnome.org/sources/libadwaita/1.4/libadwaita-1.4.0.tar.xz" +tar = "https://download.gnome.org/sources/libadwaita/1.8/libadwaita-1.8.4.tar.xz" [build] template = "meson" +mesonflags = ["-Dtests=false"] diff --git a/recipes/wip/libs/other/libart/recipe.toml b/recipes/wip/libs/gnome/libart/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libart/recipe.toml rename to recipes/wip/libs/gnome/libart/recipe.toml diff --git a/recipes/wip/libs/gtk/libayatana-appindicator-glib/recipe.toml b/recipes/wip/libs/gnome/libayatana-appindicator-glib/recipe.toml similarity index 100% rename from recipes/wip/libs/gtk/libayatana-appindicator-glib/recipe.toml rename to recipes/wip/libs/gnome/libayatana-appindicator-glib/recipe.toml diff --git a/recipes/wip/libs/gtk/libayatana-appindicator-glib/redox.patch b/recipes/wip/libs/gnome/libayatana-appindicator-glib/redox.patch similarity index 100% rename from recipes/wip/libs/gtk/libayatana-appindicator-glib/redox.patch rename to recipes/wip/libs/gnome/libayatana-appindicator-glib/redox.patch diff --git a/recipes/wip/libs/other/libdex/recipe.toml b/recipes/wip/libs/gnome/libdex/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libdex/recipe.toml rename to recipes/wip/libs/gnome/libdex/recipe.toml diff --git a/recipes/wip/libs/other/libepoxy/recipe.toml b/recipes/wip/libs/gnome/libepoxy/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libepoxy/recipe.toml rename to recipes/wip/libs/gnome/libepoxy/recipe.toml diff --git a/recipes/wip/libs/other/libepoxy/redox.patch b/recipes/wip/libs/gnome/libepoxy/redox.patch similarity index 100% rename from recipes/wip/libs/other/libepoxy/redox.patch rename to recipes/wip/libs/gnome/libepoxy/redox.patch diff --git a/recipes/wip/libs/gnome/libgee/recipe.toml b/recipes/wip/libs/gnome/libgee/recipe.toml new file mode 100644 index 000000000..34dcd83c8 --- /dev/null +++ b/recipes/wip/libs/gnome/libgee/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/libgee/0.20/libgee-0.20.8.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libgspell-gtk3/recipe.toml b/recipes/wip/libs/gnome/libgspell-gtk3/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libgspell-gtk3/recipe.toml rename to recipes/wip/libs/gnome/libgspell-gtk3/recipe.toml diff --git a/recipes/wip/libs/other/libgspell-gtk4/recipe.toml b/recipes/wip/libs/gnome/libgspell-gtk4/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libgspell-gtk4/recipe.toml rename to recipes/wip/libs/gnome/libgspell-gtk4/recipe.toml diff --git a/recipes/wip/libs/gtk/libhandy/recipe.toml b/recipes/wip/libs/gnome/libhandy/recipe.toml similarity index 58% rename from recipes/wip/libs/gtk/libhandy/recipe.toml rename to recipes/wip/libs/gnome/libhandy/recipe.toml index 84ca2d7e3..c599ad4c9 100644 --- a/recipes/wip/libs/gtk/libhandy/recipe.toml +++ b/recipes/wip/libs/gnome/libhandy/recipe.toml @@ -1,11 +1,12 @@ #TODO not compiled or tested # build instructions: https://gitlab.gnome.org/GNOME/libhandy#building -#TODO determine dependencies [source] -git = "https://gitlab.gnome.org/GNOME/libhandy" -rev = "9b0071408ce86a3ef843806fddd723a85f6f2416" +tar = "https://download.gnome.org/sources/libhandy/1.8/libhandy-1.8.3.tar.xz" [build] template = "meson" +mesonflags = [ + "-Dtests=false" +] dependencies = [ "glib", "gtk3", diff --git a/recipes/wip/libs/other/libnotify/recipe.toml b/recipes/wip/libs/gnome/libnotify/recipe.toml similarity index 88% rename from recipes/wip/libs/other/libnotify/recipe.toml rename to recipes/wip/libs/gnome/libnotify/recipe.toml index 6efb5c3f1..5a8c1daba 100644 --- a/recipes/wip/libs/other/libnotify/recipe.toml +++ b/recipes/wip/libs/gnome/libnotify/recipe.toml @@ -10,6 +10,8 @@ dependencies = [ template = "meson" mesonflags = [ "-Dgtk_doc=false", + "-Dman=false", + "-Dtests=false", "-Dintrospection=disabled", ] diff --git a/recipes/wip/libs/other/libpanel/recipe.toml b/recipes/wip/libs/gnome/libpanel/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libpanel/recipe.toml rename to recipes/wip/libs/gnome/libpanel/recipe.toml diff --git a/recipes/wip/libs/other/libpeas/recipe.toml b/recipes/wip/libs/gnome/libpeas/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libpeas/recipe.toml rename to recipes/wip/libs/gnome/libpeas/recipe.toml diff --git a/recipes/wip/libs/image/librsvg/recipe.toml b/recipes/wip/libs/gnome/librsvg/recipe.toml similarity index 84% rename from recipes/wip/libs/image/librsvg/recipe.toml rename to recipes/wip/libs/gnome/librsvg/recipe.toml index 14e44666b..74a4db9d0 100644 --- a/recipes/wip/libs/image/librsvg/recipe.toml +++ b/recipes/wip/libs/gnome/librsvg/recipe.toml @@ -3,7 +3,6 @@ tar = "https://download.gnome.org/sources/librsvg/2.58/librsvg-2.58.5.tar.xz" blake3 = "15ccac6309992ced51128825e9c3ebeb041705aeb8371507ffc4cebb6a1e4ce5" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ @@ -23,4 +22,5 @@ script = """ DYNAMIC_INIT export GDK_PIXBUF_QUERYLOADERS="/usr/lib/$(cc -dumpmachine)/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" cookbook_configure --disable-introspection -""" \ No newline at end of file +mv ${COOKBOOK_STAGE}/${COOKBOOK_SYSROOT}/usr/lib/gdk-pixbuf-2.0 ${COOKBOOK_STAGE}/usr/lib/gdk-pixbuf-2.0 +""" diff --git a/recipes/wip/libs/gnome/libsecret/recipe.toml b/recipes/wip/libs/gnome/libsecret/recipe.toml new file mode 100644 index 000000000..a8ca32338 --- /dev/null +++ b/recipes/wip/libs/gnome/libsecret/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/libsecret/0.21/libsecret-0.21.7.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dmanpage=false", + "-Dgtk_doc=false", + "-Dintrospection=false", +] +dependencies = [ + "libgcrypt", +] diff --git a/recipes/wip/libs/gnome/libsigcpp/recipe.toml b/recipes/wip/libs/gnome/libsigcpp/recipe.toml new file mode 100644 index 000000000..e3ea18bd3 --- /dev/null +++ b/recipes/wip/libs/gnome/libsigcpp/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/libsigcplusplus/libsigcplusplus#building-from-a-release-tarball +[source] +tar = "https://github.com/libsigcplusplus/libsigcplusplus/releases/download/3.8.0/libsigc++-3.8.0.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dbuild-manual=false", + "-Dbuild-tests=false", +] diff --git a/recipes/wip/libs/other/libsoup/recipe.toml b/recipes/wip/libs/gnome/libsoup/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libsoup/recipe.toml rename to recipes/wip/libs/gnome/libsoup/recipe.toml diff --git a/recipes/wip/libs/text/libspelling/recipe.toml b/recipes/wip/libs/gnome/libspelling/recipe.toml similarity index 100% rename from recipes/wip/libs/text/libspelling/recipe.toml rename to recipes/wip/libs/gnome/libspelling/recipe.toml diff --git a/recipes/wip/libs/gtk/libwnck3/recipe.toml b/recipes/wip/libs/gnome/libwnck3/recipe.toml similarity index 100% rename from recipes/wip/libs/gtk/libwnck3/recipe.toml rename to recipes/wip/libs/gnome/libwnck3/recipe.toml diff --git a/recipes/wip/libs/other/libxslt/recipe.toml b/recipes/wip/libs/gnome/libxslt/recipe.toml similarity index 96% rename from recipes/wip/libs/other/libxslt/recipe.toml rename to recipes/wip/libs/gnome/libxslt/recipe.toml index b8458e0d1..46baf8f3b 100644 --- a/recipes/wip/libs/other/libxslt/recipe.toml +++ b/recipes/wip/libs/gnome/libxslt/recipe.toml @@ -2,7 +2,6 @@ tar = "https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.43.tar.xz" blake3 = "6c529acc02344fe48377810debadaee8eb0511a5553a8b7bea685d5282ab00cb" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/pangomm/recipe.toml b/recipes/wip/libs/gnome/pangomm/recipe.toml similarity index 100% rename from recipes/wip/libs/other/pangomm/recipe.toml rename to recipes/wip/libs/gnome/pangomm/recipe.toml diff --git a/recipes/wip/libs/other/totem-pl-parser/recipe.toml b/recipes/wip/libs/gnome/totem-pl-parser/recipe.toml similarity index 100% rename from recipes/wip/libs/other/totem-pl-parser/recipe.toml rename to recipes/wip/libs/gnome/totem-pl-parser/recipe.toml diff --git a/recipes/wip/libs/gtk/vte/recipe.toml b/recipes/wip/libs/gnome/vte/recipe.toml similarity index 100% rename from recipes/wip/libs/gtk/vte/recipe.toml rename to recipes/wip/libs/gnome/vte/recipe.toml diff --git a/recipes/wip/libs/gtk/vte/redox.patch b/recipes/wip/libs/gnome/vte/redox.patch similarity index 100% rename from recipes/wip/libs/gtk/vte/redox.patch rename to recipes/wip/libs/gnome/vte/redox.patch diff --git a/recipes/wip/libs/gtk/xdg-user-dirs-gtk/recipe.toml b/recipes/wip/libs/gnome/xdg-user-dirs-gtk/recipe.toml similarity index 100% rename from recipes/wip/libs/gtk/xdg-user-dirs-gtk/recipe.toml rename to recipes/wip/libs/gnome/xdg-user-dirs-gtk/recipe.toml diff --git a/recipes/wip/libs/gtk/zenity/recipe.toml b/recipes/wip/libs/gnome/zenity/recipe.toml similarity index 83% rename from recipes/wip/libs/gtk/zenity/recipe.toml rename to recipes/wip/libs/gnome/zenity/recipe.toml index bc9f40acd..39a9ed04c 100644 --- a/recipes/wip/libs/gtk/zenity/recipe.toml +++ b/recipes/wip/libs/gnome/zenity/recipe.toml @@ -6,4 +6,7 @@ blake3 = "de4c662bd33107e9247c23d248e4b1b51a68994b01ecefda77422e1007b11c1e" dependencies = [ "gtk3", ] +dev-dependencies = [ + "host:itstool" +] template = "meson" diff --git a/recipes/wip/libs/other/libvulkan/recipe.toml b/recipes/wip/libs/graphics/libvulkan/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libvulkan/recipe.toml rename to recipes/wip/libs/graphics/libvulkan/recipe.toml diff --git a/recipes/wip/libs/graphics/vulkan-headers/recipe.toml b/recipes/wip/libs/graphics/vulkan-headers/recipe.toml new file mode 100644 index 000000000..9f0f83d2a --- /dev/null +++ b/recipes/wip/libs/graphics/vulkan-headers/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/KhronosGroup/Vulkan-Headers" +rev = "vulkan-sdk-1.4.341.0" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/libs/gui/libappindicator/recipe.toml b/recipes/wip/libs/gui/libappindicator/recipe.toml new file mode 100644 index 000000000..c68dec48f --- /dev/null +++ b/recipes/wip/libs/gui/libappindicator/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://old-releases.ubuntu.com/ubuntu/pool/universe/liba/libappindicator/libappindicator_12.10.1+20.10.20200706.1.orig.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/hw/libratbag/recipe.toml b/recipes/wip/libs/hw/libratbag/recipe.toml new file mode 100644 index 000000000..2e0d06b65 --- /dev/null +++ b/recipes/wip/libs/hw/libratbag/recipe.toml @@ -0,0 +1,20 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/libratbag/libratbag" +rev = "v0.18" +shallow_clone = true +[build] +template = "meson" +mesonflags = [ + "-Dtests=false", + "-Dlogind-provider=elogind", + "-Dsystemd=false", +] +dependencies = [ + "elogind", + "eudev", + "libevdev", + "libunistring", + "json-glib", + "glib", +] diff --git a/recipes/wip/libs/image/libwebp/recipe.toml b/recipes/wip/libs/image/libwebp/recipe.toml index 5578ebc9f..7e98a7b3b 100644 --- a/recipes/wip/libs/image/libwebp/recipe.toml +++ b/recipes/wip/libs/image/libwebp/recipe.toml @@ -2,7 +2,6 @@ tar = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.5.0.tar.gz" blake3 = "8272270920a317b854b059e86c320dbdb5a2032937072bbfd5f3304d601a92cb" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/kf5/kf5-activities-stats/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-activities-stats/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-activities-stats/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-activities-stats/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-activities/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-activities/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-activities/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-activities/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-apidox/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-apidox/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-apidox/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-apidox/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-archive/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-archive/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-archive/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-archive/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-attica/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-attica/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-attica/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-attica/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-auth/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-auth/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-auth/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-auth/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-baloo/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-baloo/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-baloo/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-baloo/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-bookmarks/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-bookmarks/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-bookmarks/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-bookmarks/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-calendarcore/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-calendarcore/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-calendarcore/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-calendarcore/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-cmake-modules/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-cmake-modules/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-cmake-modules/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-cmake-modules/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-cmutils/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-cmutils/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-cmutils/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-cmutils/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-codecs/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-codecs/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-codecs/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-codecs/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-completion/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-completion/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-completion/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-completion/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-config/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-config/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-config/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-config/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-configwidgets/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-configwidgets/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-configwidgets/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-configwidgets/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-contacts/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-contacts/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-contacts/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-contacts/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-coreaddons/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-coreaddons/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-coreaddons/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-coreaddons/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-crash/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-crash/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-crash/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-crash/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-dav/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-dav/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-dav/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-dav/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-dbusaddons/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-dbusaddons/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-dbusaddons/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-dbusaddons/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-declarative/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-declarative/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-declarative/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-declarative/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-dnssd/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-dnssd/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-dnssd/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-dnssd/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-doctools/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-doctools/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-doctools/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-doctools/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-emoticons/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-emoticons/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-emoticons/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-emoticons/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-filemetadata/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-filemetadata/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-filemetadata/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-filemetadata/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-frameworkintegration/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-frameworkintegration/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-frameworkintegration/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-frameworkintegration/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-globalaccel/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-globalaccel/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-globalaccel/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-globalaccel/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-guiaddons/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-guiaddons/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-guiaddons/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-guiaddons/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-holidays/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-holidays/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-holidays/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-holidays/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-i18n/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-i18n/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-i18n/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-i18n/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-iconthemes/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-iconthemes/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-iconthemes/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-iconthemes/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-idletime/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-idletime/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-idletime/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-idletime/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-init/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-init/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-init/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-init/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-io/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-io/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-io/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-io/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-itemmodels/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-itemmodels/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-itemmodels/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-itemmodels/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-itemviews/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-itemviews/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-itemviews/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-itemviews/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-jobwidgets/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-jobwidgets/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-jobwidgets/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-jobwidgets/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-kded/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-kded/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-kded/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-kded/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-kdesu/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-kdesu/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-kdesu/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-kdesu/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-kirigami/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-kirigami/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-kirigami/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-kirigami/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-modem-manager/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-modem-manager/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-modem-manager/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-modem-manager/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-networkmanager/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-networkmanager/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-networkmanager/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-networkmanager/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-newstuff/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-newstuff/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-newstuff/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-newstuff/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-notifications/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-notifications/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-notifications/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-notifications/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-notifyconfig/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-notifyconfig/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-notifyconfig/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-notifyconfig/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-package/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-package/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-package/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-package/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-parts/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-parts/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-parts/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-parts/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-people/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-people/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-people/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-people/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-plasma-framework/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-plasma-framework/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-plasma-framework/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-plasma-framework/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-plotting/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-plotting/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-plotting/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-plotting/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-prison/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-prison/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-prison/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-prison/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-pty/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-pty/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-pty/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-pty/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-purpose/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-purpose/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-purpose/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-purpose/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-qqc2-desktop-style/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-qqc2-desktop-style/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-qqc2-desktop-style/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-qqc2-desktop-style/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-quickcharts/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-quickcharts/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-quickcharts/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-quickcharts/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-runner/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-runner/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-runner/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-runner/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-service/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-service/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-service/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-service/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-solid/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-solid/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-solid/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-solid/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-sonnet/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-sonnet/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-sonnet/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-sonnet/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-syndication/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-syndication/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-syndication/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-syndication/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-syntax-highlighting/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-syntax-highlighting/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-syntax-highlighting/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-syntax-highlighting/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-sysguard/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-sysguard/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-sysguard/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-sysguard/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-texteditor/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-texteditor/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-texteditor/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-texteditor/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-textwidgets/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-textwidgets/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-textwidgets/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-textwidgets/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-threadweaver/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-threadweaver/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-threadweaver/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-threadweaver/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-unitconversion/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-unitconversion/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-unitconversion/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-unitconversion/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-wayland/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-wayland/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-wayland/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-wayland/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-widgetaddons/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-widgetaddons/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-widgetaddons/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-widgetaddons/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-windowsystem/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-windowsystem/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-windowsystem/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-windowsystem/recipe.toml diff --git a/recipes/wip/libs/kf5/kf5-xmlgui/recipe.toml b/recipes/wip/libs/kde/kf5/kf5-xmlgui/recipe.toml similarity index 100% rename from recipes/wip/libs/kf5/kf5-xmlgui/recipe.toml rename to recipes/wip/libs/kde/kf5/kf5-xmlgui/recipe.toml diff --git a/recipes/wip/libs/kf6/kcodecs6/recipe.toml b/recipes/wip/libs/kde/kf6/kcodecs6/recipe.toml similarity index 100% rename from recipes/wip/libs/kf6/kcodecs6/recipe.toml rename to recipes/wip/libs/kde/kf6/kcodecs6/recipe.toml diff --git a/recipes/wip/libs/kf6/ktexteditor6/recipe.toml b/recipes/wip/libs/kde/kf6/ktexteditor6/recipe.toml similarity index 100% rename from recipes/wip/libs/kf6/ktexteditor6/recipe.toml rename to recipes/wip/libs/kde/kf6/ktexteditor6/recipe.toml diff --git a/recipes/wip/libs/other/libkdcraw/recipe.toml b/recipes/wip/libs/kde/libkdcraw/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libkdcraw/recipe.toml rename to recipes/wip/libs/kde/libkdcraw/recipe.toml diff --git a/recipes/wip/libs/other/libkomparediff2/recipe.toml b/recipes/wip/libs/kde/libkomparediff2/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libkomparediff2/recipe.toml rename to recipes/wip/libs/kde/libkomparediff2/recipe.toml diff --git a/recipes/wip/libs/other/libseexpr-kde/recipe.toml b/recipes/wip/libs/kde/libseexpr-kde/recipe.toml similarity index 100% rename from recipes/wip/libs/other/libseexpr-kde/recipe.toml rename to recipes/wip/libs/kde/libseexpr-kde/recipe.toml diff --git a/recipes/wip/libs/lua/lpeg/recipe.toml b/recipes/wip/libs/lua/lpeg/recipe.toml index 484e5b3a5..ef1ad9a32 100644 --- a/recipes/wip/libs/lua/lpeg/recipe.toml +++ b/recipes/wip/libs/lua/lpeg/recipe.toml @@ -1,5 +1,6 @@ [source] tar = "https://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.1.0.tar.gz" +blake3 = "69fc6eaa1a1749937b7216e3d655cf47a7802ffe407f8f857664e999a7b7377b" [build] template = "custom" diff --git a/recipes/wip/libs/net/libtirpc/recipe.toml b/recipes/wip/libs/net/libtirpc/recipe.toml index 470889936..992396b78 100644 --- a/recipes/wip/libs/net/libtirpc/recipe.toml +++ b/recipes/wip/libs/net/libtirpc/recipe.toml @@ -3,7 +3,6 @@ tar = "https://downloads.sourceforge.net/libtirpc/libtirpc-1.3.6.tar.bz2" blake3 = "3ca1feefee3a216bb82bba35dfb455cac8524b8d8404767b01772f3b8fd00eea" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/grpc/recipe.toml b/recipes/wip/libs/other/grpc/recipe.toml new file mode 100644 index 000000000..c06250b64 --- /dev/null +++ b/recipes/wip/libs/other/grpc/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +# build instructions: https://github.com/grpc/grpc/blob/v1.76.x/BUILDING.md +[source] +git = "https://github.com/grpc/grpc" +branch = "v1.76.x" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/imlib2/recipe.toml b/recipes/wip/libs/other/imlib2/recipe.toml index 9c54f870d..0b10b4f2b 100644 --- a/recipes/wip/libs/other/imlib2/recipe.toml +++ b/recipes/wip/libs/other/imlib2/recipe.toml @@ -4,7 +4,6 @@ tar = "https://downloads.sourceforge.net/project/enlightenment/imlib2-src/1.12.5 blake3 = "535b6a986538295af5194e81281a11a1d7e79ae518959ca434f1e53bfa67e86d" patches = ["redox.patch"] script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libass/recipe.toml b/recipes/wip/libs/other/libass/recipe.toml index b4e8f9a39..bec43da49 100644 --- a/recipes/wip/libs/other/libass/recipe.toml +++ b/recipes/wip/libs/other/libass/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/libass/libass/releases/download/0.17.3/libass-0.17.3.tar.xz" blake3 = "bfbcc2a97193eb5c2a6c54d07c508d42ff62387a8a9d8b3959d15b6115bca8b6" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libev/recipe.toml b/recipes/wip/libs/other/libev/recipe.toml index bb0268117..a3f544fb0 100644 --- a/recipes/wip/libs/other/libev/recipe.toml +++ b/recipes/wip/libs/other/libev/recipe.toml @@ -2,7 +2,6 @@ tar = "https://dist.schmorp.de/libev/libev-4.33.tar.gz" blake3 = "d56e7f06baa52d5068b6184a307cf27c32f71b60e13d98ee6d4d9c1786393424" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libgcrypt/recipe.toml b/recipes/wip/libs/other/libgcrypt/recipe.toml index c02dd88d9..40a72d6c8 100644 --- a/recipes/wip/libs/other/libgcrypt/recipe.toml +++ b/recipes/wip/libs/other/libgcrypt/recipe.toml @@ -3,7 +3,6 @@ tar = "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.1.tar.bz2" blake3 = "68844e12b92960d66c4ce85a4c3db1df8377b232980f1218b4c5d904e9c02511" patches = ["redox.patch"] script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libgpg-error/recipe.toml b/recipes/wip/libs/other/libgpg-error/recipe.toml index 58898a938..41b7f48ec 100644 --- a/recipes/wip/libs/other/libgpg-error/recipe.toml +++ b/recipes/wip/libs/other/libgpg-error/recipe.toml @@ -2,7 +2,6 @@ tar = "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.55.tar.bz2" blake3 = "6c363dd8c6bcf2601dd5ff3b11fa2f699baa2aae40de2acd92461af0fd8178f0" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libonig/recipe.toml b/recipes/wip/libs/other/libonig/recipe.toml index 894e8b0a8..81693ea21 100644 --- a/recipes/wip/libs/other/libonig/recipe.toml +++ b/recipes/wip/libs/other/libonig/recipe.toml @@ -2,7 +2,6 @@ git = "https://github.com/kkos/oniguruma" rev = "f95747b462de672b6f8dbdeb478245ddf061ca53" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libpoppler/recipe.toml b/recipes/wip/libs/other/libpoppler/recipe.toml index 482952ca0..6c5f33f52 100644 --- a/recipes/wip/libs/other/libpoppler/recipe.toml +++ b/recipes/wip/libs/other/libpoppler/recipe.toml @@ -3,7 +3,6 @@ tar = "https://poppler.freedesktop.org/poppler-25.08.0.tar.xz" blake3 = "0732ef20594d084ae3c24cb75079a2be347df78acac80fdcbd6149b8dce197d4" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libsigc++/recipe.toml b/recipes/wip/libs/other/libsigc++/recipe.toml deleted file mode 100644 index 250a61fc8..000000000 --- a/recipes/wip/libs/other/libsigc++/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO missing script for building, see https://github.com/libsigcplusplus/libsigcplusplus#building-from-a-release-tarball -[source] -tar = "https://download.gnome.org/sources/libsigc++/3.6/libsigc%2B%2B-3.6.0.tar.xz" -[build] -template = "custom" diff --git a/recipes/wip/libs/other/libsndfile/recipe.toml b/recipes/wip/libs/other/libsndfile/recipe.toml index e6f335150..804a00318 100644 --- a/recipes/wip/libs/other/libsndfile/recipe.toml +++ b/recipes/wip/libs/other/libsndfile/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/libsndfile/libsndfile/releases/download/1.2.0/libsndfile-1.2.0.tar.xz" blake3 = "7ec1be7cc47fdffc38cf0cbf02857e6a34a13df22d19f541f04215929e1d7684" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libtasn1/recipe.toml b/recipes/wip/libs/other/libtasn1/recipe.toml index 2dad5224d..ac350cbbf 100644 --- a/recipes/wip/libs/other/libtasn1/recipe.toml +++ b/recipes/wip/libs/other/libtasn1/recipe.toml @@ -2,7 +2,6 @@ tar = "https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.20.0.tar.gz" blake3 = "374103da2b2ac47e18b57cb5d1d41f7e42f3725c269cf35fba8e4717f0c392b5" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libtheora/recipe.toml b/recipes/wip/libs/other/libtheora/recipe.toml index 12f2579bb..2a44b49d4 100644 --- a/recipes/wip/libs/other/libtheora/recipe.toml +++ b/recipes/wip/libs/other/libtheora/recipe.toml @@ -2,7 +2,6 @@ tar = "http://downloads.xiph.org/releases/theora/libtheora-1.2.0.tar.gz" blake3 = "b2413d6a29669063c30679eb46e09bd55b47d51e1516282bd1f5a752a8ecae91" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/libvte/recipe.toml b/recipes/wip/libs/other/libvte/recipe.toml deleted file mode 100644 index b45dbdc7a..000000000 --- a/recipes/wip/libs/other/libvte/recipe.toml +++ /dev/null @@ -1,6 +0,0 @@ -#TODO not compiled or tested -# build instructions: https://gitlab.gnome.org/GNOME/vte/#installation -[source] -tar = "https://download.gnome.org/sources/vte/0.74/vte-0.74.1.tar.xz" -[build] -template = "meson" diff --git a/recipes/wip/libs/other/libxcursor/recipe.toml b/recipes/wip/libs/other/libxcursor/recipe.toml index b0e44dff6..72d4f5f01 100644 --- a/recipes/wip/libs/other/libxcursor/recipe.toml +++ b/recipes/wip/libs/other/libxcursor/recipe.toml @@ -2,7 +2,6 @@ [source] tar = "https://www.x.org/releases/individual/lib/libXcursor-1.2.1.tar.xz" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/other/opencv4/recipe.toml b/recipes/wip/libs/other/opencv4/recipe.toml index c2c16eac4..38f30f7a5 100644 --- a/recipes/wip/libs/other/opencv4/recipe.toml +++ b/recipes/wip/libs/other/opencv4/recipe.toml @@ -2,7 +2,10 @@ # lacking build instructions [source] git = "https://github.com/opencv/opencv" -rev = "49486f61fb25722cbcf586b7f4320921d46fb38e" - +branch = "4.x" +shallow_clone = true [build] template = "cmake" +cmakeflags = [ + "-DOPENCV_FORCE_3RDPARTY_BUILD=ON", +] diff --git a/recipes/wip/libs/other/sdl2-pango/recipe.toml b/recipes/wip/libs/other/sdl2-pango/recipe.toml index 3e9cb3c7b..dc7f3bc68 100644 --- a/recipes/wip/libs/other/sdl2-pango/recipe.toml +++ b/recipes/wip/libs/other/sdl2-pango/recipe.toml @@ -1,7 +1,8 @@ #TODO Not compiled or tested [source] git = "https://github.com/markuskimius/SDL2_Pango" -rev = "3afd884fddf8d81dbe2c140135deea0c79de31c1" +rev = "v2.1.5" +shallow_clone = true [build] template = "configure" dependencies = [ diff --git a/recipes/wip/libs/other/sdl3/recipe.toml b/recipes/wip/libs/other/sdl3/recipe.toml index 4171f7199..be9c68bc6 100644 --- a/recipes/wip/libs/other/sdl3/recipe.toml +++ b/recipes/wip/libs/other/sdl3/recipe.toml @@ -3,16 +3,23 @@ # build instructions: https://github.com/libsdl-org/SDL/blob/main/docs/README-cmake.md # dependencies: https://github.com/libsdl-org/SDL/blob/main/docs/README-linux.md [source] -tar = "https://github.com/libsdl-org/SDL/releases/download/release-3.2.26/SDL3-3.2.26.tar.gz" +tar = "https://github.com/libsdl-org/SDL/releases/download/release-3.4.0/SDL3-3.4.0.tar.gz" [build] template = "cmake" cmakeflags = [ "-DSDL_SHARED=ON", "-DSDL_STATIC=OFF", - "-DSDL_TESTS=OFF", + "-DSDL_TEST_LIBRARY=OFF", "-DSDL_DISABLE_INSTALL_DOCS=ON", + "-DSDL_DBUS=OFF", + "-DSDL_LIBURING=OFF", + "-DSDL_IBUS=OFF", + "-DSDL_OPENGL=OFF", + "-DSDL_OPENGLES=OFF", + "-DSDL_LIBUDEV=OFF", + "-DSDL_AUDIO=OFF", ] dependencies = [ - "liborbital", + #"liborbital", "mesa", ] diff --git a/recipes/wip/libs/other/tree-sitter/recipe.toml b/recipes/wip/libs/other/tree-sitter/recipe.toml index e5507e3e9..95209bdab 100644 --- a/recipes/wip/libs/other/tree-sitter/recipe.toml +++ b/recipes/wip/libs/other/tree-sitter/recipe.toml @@ -1,5 +1,6 @@ [source] tar = "https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.25.8.tar.gz" +blake3 = "a9bce1e3c610441dc9d7dcc3d7d38e6a74e0b06d6b7d40e22982d927006dbfc4" patches = [ "redox.patch" ] @@ -8,6 +9,8 @@ patches = [ template = "custom" script = """ DYNAMIC_INIT -PACKAGE_PATH=cli cookbook_cargo +COOKBOOK_CARGO_PATH=cli cookbook_cargo \ + --config 'patch.crates-io.rustix.git = "https://github.com/bytecodealliance/rustix"' \ + --config 'patch.crates-io.rustix.rev = "8bf15a0"' cookbook_cmake "${COOKBOOK_SOURCE}"/lib """ diff --git a/recipes/wip/libs/other/webkitgtk3/recipe.toml b/recipes/wip/libs/other/webkitgtk3/recipe.toml index 7287e8e64..62002806e 100644 --- a/recipes/wip/libs/other/webkitgtk3/recipe.toml +++ b/recipes/wip/libs/other/webkitgtk3/recipe.toml @@ -16,6 +16,9 @@ dependencies = [ "libwebp", "sqlite3", ] +dev-dependencies = [ + "host:gperf" +] script = """ DYNAMIC_INIT export WEBKIT_USE_SCCACHE=1 diff --git a/recipes/wip/libs/perf/openmp/recipe.toml b/recipes/wip/libs/perf/openmp/recipe.toml new file mode 100644 index 000000000..5daee9c0c --- /dev/null +++ b/recipes/wip/libs/perf/openmp/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://github.com/llvm/llvm-project/blob/main/openmp/README.rst +[source] +tar = "https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/openmp-21.1.6.src.tar.xz" +[build] +template = "cmake" +dependencies = [ + "llvm21", +] diff --git a/recipes/wip/libs/qt4/recipe.toml b/recipes/wip/libs/qt/qt4/recipe.toml similarity index 100% rename from recipes/wip/libs/qt4/recipe.toml rename to recipes/wip/libs/qt/qt4/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-3d/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-3d/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-3d/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-3d/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-activeqt/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-activeqt/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-activeqt/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-activeqt/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-base/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-base/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-base/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-base/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-charts/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-charts/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-charts/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-charts/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-coap/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-coap/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-coap/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-coap/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-connectivity/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-connectivity/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-connectivity/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-connectivity/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-datavis3d/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-datavis3d/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-datavis3d/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-datavis3d/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-declarative/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-declarative/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-declarative/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-declarative/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-doc/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-doc/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-doc/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-doc/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-full/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-full/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-full/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-full/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-gamepad/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-gamepad/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-gamepad/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-gamepad/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-graphical-effects/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-graphical-effects/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-graphical-effects/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-graphical-effects/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-imageformats/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-imageformats/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-imageformats/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-imageformats/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-knx/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-knx/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-knx/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-knx/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-location/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-location/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-location/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-location/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-lottie/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-lottie/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-lottie/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-lottie/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-mqtt/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-mqtt/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-mqtt/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-mqtt/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-multimedia/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-multimedia/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-multimedia/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-multimedia/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-networkauth/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-networkauth/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-networkauth/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-networkauth/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-opcua/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-opcua/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-opcua/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-opcua/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-purchasing/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-purchasing/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-purchasing/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-purchasing/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-quick3d/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-quick3d/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-quick3d/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-quick3d/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-quickcontrols/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-quickcontrols/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-quickcontrols/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-quickcontrols/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-quickcontrols2/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-quickcontrols2/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-quickcontrols2/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-quickcontrols2/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-quicktimeline/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-quicktimeline/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-quicktimeline/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-quicktimeline/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-remoteobjects/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-remoteobjects/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-remoteobjects/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-remoteobjects/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-script/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-script/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-script/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-script/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-scxml/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-scxml/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-scxml/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-scxml/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-sensors/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-sensors/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-sensors/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-sensors/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-serialbus/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-serialbus/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-serialbus/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-serialbus/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-serialport/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-serialport/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-serialport/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-serialport/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-speech/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-speech/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-speech/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-speech/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-svg/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-svg/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-svg/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-svg/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-tools/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-tools/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-tools/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-tools/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-tqtc/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-tqtc/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-tqtc/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-tqtc/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-translations/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-translations/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-translations/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-translations/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-virtualkeyboard/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-virtualkeyboard/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-virtualkeyboard/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-virtualkeyboard/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-wayland/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-wayland/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-wayland/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-wayland/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-webchannel/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-webchannel/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-webchannel/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-webchannel/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-webengine/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-webengine/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-webengine/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-webengine/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-webglplugin/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-webglplugin/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-webglplugin/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-webglplugin/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-webkit/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-webkit/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-webkit/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-webkit/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-websockets/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-websockets/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-websockets/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-websockets/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-webview/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-webview/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-webview/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-webview/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-x11extras/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-x11extras/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-x11extras/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-x11extras/recipe.toml diff --git a/recipes/wip/libs/qt5/qt5-xmlpatterns/recipe.toml b/recipes/wip/libs/qt/qt5/qt5-xmlpatterns/recipe.toml similarity index 100% rename from recipes/wip/libs/qt5/qt5-xmlpatterns/recipe.toml rename to recipes/wip/libs/qt/qt5/qt5-xmlpatterns/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-3d/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-3d/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-3d/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-3d/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-activeqt/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-activeqt/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-activeqt/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-activeqt/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-base/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-base/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-base/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-base/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-charts/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-charts/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-charts/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-charts/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-connectivity/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-connectivity/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-connectivity/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-connectivity/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-datavis3d/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-datavis3d/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-datavis3d/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-datavis3d/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-declarative/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-declarative/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-declarative/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-declarative/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-doc/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-doc/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-doc/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-doc/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-full/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-full/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-full/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-full/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-graphs/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-graphs/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-graphs/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-graphs/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-grpc/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-grpc/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-grpc/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-grpc/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-httpserver/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-httpserver/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-httpserver/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-httpserver/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-imageformats/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-imageformats/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-imageformats/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-imageformats/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-languageserver/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-languageserver/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-languageserver/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-languageserver/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-location/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-location/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-location/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-location/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-lottie/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-lottie/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-lottie/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-lottie/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-multimedia/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-multimedia/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-multimedia/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-multimedia/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-networkauth/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-networkauth/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-networkauth/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-networkauth/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-positioning/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-positioning/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-positioning/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-positioning/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-qt5compat/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-qt5compat/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-qt5compat/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-qt5compat/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-quick3d/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-quick3d/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-quick3d/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-quick3d/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-quick3dphysics/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-quick3dphysics/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-quick3dphysics/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-quick3dphysics/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-quickeffectmaker/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-quickeffectmaker/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-quickeffectmaker/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-quickeffectmaker/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-quicktimeline/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-quicktimeline/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-quicktimeline/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-quicktimeline/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-remoteobjects/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-remoteobjects/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-remoteobjects/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-remoteobjects/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-scxml/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-scxml/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-scxml/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-scxml/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-sensors/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-sensors/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-sensors/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-sensors/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-serialbus/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-serialbus/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-serialbus/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-serialbus/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-serialport/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-serialport/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-serialport/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-serialport/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-shadertools/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-shadertools/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-shadertools/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-shadertools/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-speech/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-speech/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-speech/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-speech/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-svg/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-svg/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-svg/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-svg/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-tools/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-tools/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-tools/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-tools/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-translations/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-translations/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-translations/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-translations/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-virtualkeyboard/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-virtualkeyboard/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-virtualkeyboard/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-virtualkeyboard/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-wayland/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-wayland/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-wayland/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-wayland/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-webchannel/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-webchannel/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-webchannel/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-webchannel/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-webengine/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-webengine/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-webengine/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-webengine/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-websockets/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-websockets/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-websockets/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-websockets/recipe.toml diff --git a/recipes/wip/libs/qt6/qt6-webview/recipe.toml b/recipes/wip/libs/qt/qt6/qt6-webview/recipe.toml similarity index 100% rename from recipes/wip/libs/qt6/qt6-webview/recipe.toml rename to recipes/wip/libs/qt/qt6/qt6-webview/recipe.toml diff --git a/recipes/wip/libs/tls/gnutls3/recipe.toml b/recipes/wip/libs/tls/gnutls3/recipe.toml index f94d1261b..de4cf7b27 100644 --- a/recipes/wip/libs/tls/gnutls3/recipe.toml +++ b/recipes/wip/libs/tls/gnutls3/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.10.tar.xz" blake3 = "edcd8a505867226722ae50e0e9bb2bf57a1f38b5674a3028e26f69d2d61957e6" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/libs/tls/openssl3/recipe.toml b/recipes/wip/libs/tls/openssl3/recipe.toml index 7b4acf98c..d01137bff 100644 --- a/recipes/wip/libs/tls/openssl3/recipe.toml +++ b/recipes/wip/libs/tls/openssl3/recipe.toml @@ -21,16 +21,16 @@ COOKBOOK_CONFIGURE_FLAGS=( enable-zstd "${OS}-${ARCH}" --prefix="/usr" + --openssldir="/etc/ssl" ) if [ "${COOKBOOK_DYNAMIC}" = "1" ]; then COOKBOOK_CONFIGURE_FLAGS+=(shared) else - COOKBOOK_CONFIGURE_FLAGS+=(no-shared) + COOKBOOK_CONFIGURE_FLAGS+=(no-shared no-dso) fi "${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" "${COOKBOOK_MAKE}" -j1 # bug in make/ar "${COOKBOOK_MAKE}" install_sw install_ssldirs DESTDIR="${COOKBOOK_STAGE}" -rm -rfv "${COOKBOOK_STAGE}/"{share,ssl} """ diff --git a/recipes/wip/libs/tls/openssl3/redox.patch b/recipes/wip/libs/tls/openssl3/redox.patch index e2038c926..b11ccc48e 100644 --- a/recipes/wip/libs/tls/openssl3/redox.patch +++ b/recipes/wip/libs/tls/openssl3/redox.patch @@ -36,7 +36,7 @@ diff -ruwN source/Configurations/10-main.conf source-new/Configurations/10-main. + inherit_from => [ "redox-generic64" ], + perlasm_scheme => "linux64", + }, -+ "redox-i686" => { ++ "redox-i586" => { + inherit_from => [ "redox-common" ], + bn_ops => "BN_LLONG", + perlasm_scheme => "elf", diff --git a/recipes/wip/media/effy/recipe.toml b/recipes/wip/media/effy/recipe.toml new file mode 100644 index 000000000..4e94b0944 --- /dev/null +++ b/recipes/wip/media/effy/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/aNNiMON/effy" +[build] +template = "cargo" +[package] +dependencies = [ + "ffmpeg6", +] diff --git a/recipes/wip/mobile/android-tools/recipe.toml b/recipes/wip/mobile/android-tools/recipe.toml new file mode 100644 index 000000000..35dc59eda --- /dev/null +++ b/recipes/wip/mobile/android-tools/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/nmeum/android-tools/releases/download/35.0.2/android-tools-35.0.2.tar.xz" +[build] +template = "cmake" +dependencies = [ + "libusb", + "pcre", + "protobuf", + "libbrotli", + "zstd", + "lz4", +] +dev-dependencies = ["host:go"] diff --git a/recipes/wip/monitors/htop/recipe.toml b/recipes/wip/monitors/htop/recipe.toml index f4e554be4..172592367 100644 --- a/recipes/wip/monitors/htop/recipe.toml +++ b/recipes/wip/monitors/htop/recipe.toml @@ -3,7 +3,6 @@ git = "https://github.com/willnode/htop" branch = "redox" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/monitors/xtop/recipe.toml b/recipes/wip/monitors/xtop/recipe.toml new file mode 100644 index 000000000..ea2823276 --- /dev/null +++ b/recipes/wip/monitors/xtop/recipe.toml @@ -0,0 +1,7 @@ +# TODO compiles but fails to run +# ratatui-widgets-0.3.0 src/guage.rs 313:9 Ratio should be between 0 and 1 inclusively +[source] +git = "https://github.com/mabognar/xtop" + +[build] +template = "cargo" diff --git a/recipes/wip/net/admin/webmin/recipe.toml b/recipes/wip/net/admin/webmin/recipe.toml index 654297457..2567c60c9 100644 --- a/recipes/wip/net/admin/webmin/recipe.toml +++ b/recipes/wip/net/admin/webmin/recipe.toml @@ -1,4 +1,4 @@ -#TODO not compiled or tested +#TODO not tested # how to setup: https://webmin.com/download/#freebsd-and-any-other-linux-installation-from-source [source] tar = "https://github.com/webmin/webmin/releases/download/2.600/webmin-2.600-minimal.tar.gz" @@ -8,3 +8,5 @@ script = """ mkdir -pv "${COOKBOOK_STAGE}/home/user/webmin" cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/webmin" """ +[package] +dependencies = ["perl5"] diff --git a/recipes/wip/net/analysis/angryether-rs/recipe.toml b/recipes/wip/net/analysis/angryether-rs/recipe.toml index e780647da..2c6a9c25b 100644 --- a/recipes/wip/net/analysis/angryether-rs/recipe.toml +++ b/recipes/wip/net/analysis/angryether-rs/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/pg3uk/AngryEtherRust" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/analysis/echo/recipe.toml b/recipes/wip/net/analysis/echo/recipe.toml new file mode 100644 index 000000000..2b916a6ff --- /dev/null +++ b/recipes/wip/net/analysis/echo/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/lo2dev/Echo" +rev = "2.0" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/net/analysis/pepe/recipe.toml b/recipes/wip/net/analysis/pepe/recipe.toml index 8ee7e350b..79cc3dd59 100644 --- a/recipes/wip/net/analysis/pepe/recipe.toml +++ b/recipes/wip/net/analysis/pepe/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/omarmhaimdat/pepe" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/analysis/rkik/recipe.toml b/recipes/wip/net/analysis/rkik/recipe.toml index c571577a1..bf869c88b 100644 --- a/recipes/wip/net/analysis/rkik/recipe.toml +++ b/recipes/wip/net/analysis/rkik/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/aguacero7/rkik" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/analysis/ttl/recipe.toml b/recipes/wip/net/analysis/ttl/recipe.toml new file mode 100644 index 000000000..38b6492e5 --- /dev/null +++ b/recipes/wip/net/analysis/ttl/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/lance0/ttl" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/net/bittorrent/aquatic-udp/recipe.toml b/recipes/wip/net/bittorrent/aquatic-udp/recipe.toml index 9d2b9ee2a..b45881d41 100644 --- a/recipes/wip/net/bittorrent/aquatic-udp/recipe.toml +++ b/recipes/wip/net/bittorrent/aquatic-udp/recipe.toml @@ -1,9 +1,11 @@ #TODO not compiled or tested [source] git = "https://github.com/greatest-ape/aquatic" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages aquatic_udp mv "${COOKBOOK_STAGE}/usr/bin/aquatic_udp" "${COOKBOOK_STAGE}/usr/bin/aquatic-udp" """ diff --git a/recipes/wip/net/bittorrent/attractorr/recipe.toml b/recipes/wip/net/bittorrent/attractorr/recipe.toml index 892015455..475e408b7 100644 --- a/recipes/wip/net/bittorrent/attractorr/recipe.toml +++ b/recipes/wip/net/bittorrent/attractorr/recipe.toml @@ -1,8 +1,9 @@ #TODO compiled but not tested [source] git = "https://github.com/rnestler/attractorr" +shallow_clone = true [build] template = "cargo" dependencies = [ - "openssl1", + "openssl3", ] diff --git a/recipes/wip/net/bittorrent/btpd/recipe.toml b/recipes/wip/net/bittorrent/btpd/recipe.toml index a37033a61..96c733075 100644 --- a/recipes/wip/net/bittorrent/btpd/recipe.toml +++ b/recipes/wip/net/bittorrent/btpd/recipe.toml @@ -3,6 +3,7 @@ [source] git = "https://github.com/btpd/btpd" rev = "a3a10dfe1ece4a726530353a7b208c0cb4ff7e0d" +shallow_clone = true [build] template = "configure" dependencies = [ diff --git a/recipes/wip/net/bittorrent/superseedr/recipe.toml b/recipes/wip/net/bittorrent/superseedr/recipe.toml index c8d85fcec..4292327e2 100644 --- a/recipes/wip/net/bittorrent/superseedr/recipe.toml +++ b/recipes/wip/net/bittorrent/superseedr/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/Jagalite/superseedr" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/bittorrent/synapse-bt/recipe.toml b/recipes/wip/net/bittorrent/synapse-bt/recipe.toml index 53ef1be26..8234dbb8c 100644 --- a/recipes/wip/net/bittorrent/synapse-bt/recipe.toml +++ b/recipes/wip/net/bittorrent/synapse-bt/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/Luminarys/synapse" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/bittorrent/transg-tui/recipe.toml b/recipes/wip/net/bittorrent/transg-tui/recipe.toml index 36cad9696..f6b152df9 100644 --- a/recipes/wip/net/bittorrent/transg-tui/recipe.toml +++ b/recipes/wip/net/bittorrent/transg-tui/recipe.toml @@ -1,8 +1,9 @@ #TODO not compiled or tested [source] git = "https://github.com/PanAeon/transg-tui" +shallow_clone = true [build] template = "cargo" dependencies = [ - "openssl1", + "openssl3", ] diff --git a/recipes/wip/net/bittorrent/transmission-cli/recipe.toml b/recipes/wip/net/bittorrent/transmission-cli/recipe.toml new file mode 100644 index 000000000..ca10c7665 --- /dev/null +++ b/recipes/wip/net/bittorrent/transmission-cli/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +# build instructions: https://github.com/transmission/transmission/blob/4.0.x/docs/Building-Transmission.md#on-unix +# build options: https://github.com/transmission/transmission/blob/4.0.x/CMakeLists.txt#L45 +[source] +tar = "https://github.com/transmission/transmission/releases/download/4.0.6/transmission-4.0.6.tar.xz" +[build] +template = "cmake" +cmakeflags = [ + "-DENABLE_CLI=ON", + "-DINSTALL_WEB=OFF", + "-DENABLE_TESTS=OFF", + "-DINSTALL_DOC=OFF", +] +#dependencies = [ + #"openssl3", + #"curl", +#] diff --git a/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml b/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml index 867a34f86..8c547af18 100644 --- a/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml +++ b/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml @@ -1,10 +1,18 @@ #TODO not compiled or tested -# build instructions: https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#on-unix +#TODO discover minimum dependencies from cmake log +# build instructions: https://github.com/transmission/transmission/blob/4.0.x/docs/Building-Transmission.md#on-unix +# build options: https://github.com/transmission/transmission/blob/4.0.x/CMakeLists.txt#L45 [source] tar = "https://github.com/transmission/transmission/releases/download/4.0.6/transmission-4.0.6.tar.xz" [build] template = "cmake" -dependencies = [ - "openssl1", - "curl", +cmakeflags = [ + "-DINSTALL_WEB=OFF", + "-DENABLE_UTILS=OFF", + "-DENABLE_TESTS=OFF", + "-DINSTALL_DOC=OFF", ] +#dependencies = [ +# "openssl3", +# "curl", +#] diff --git a/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml b/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml index d4646b4ea..4df0e5ac6 100644 --- a/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml +++ b/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml @@ -1,11 +1,18 @@ #TODO not compiled or tested -# build instructions: https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#on-unix +#TODO discover minimum dependencies from cmake log +# build instructions: https://github.com/transmission/transmission/blob/4.0.x/docs/Building-Transmission.md#on-unix +# build options: https://github.com/transmission/transmission/blob/4.0.x/CMakeLists.txt#L45 [source] tar = "https://github.com/transmission/transmission/releases/download/4.0.6/transmission-4.0.6.tar.xz" [build] template = "cmake" +cmakeflags = [ + "-DINSTALL_WEB=OFF", + "-DENABLE_TESTS=OFF", + "-DINSTALL_DOC=OFF", +] dependencies = [ - "openssl1", - "curl", + #"openssl3", + #"curl", "gtk3mm", ] diff --git a/recipes/wip/net/bittorrent/webtorrent-cli/recipe.toml b/recipes/wip/net/bittorrent/webtorrent-cli/recipe.toml index d0eaa70ec..b8b513e3e 100644 --- a/recipes/wip/net/bittorrent/webtorrent-cli/recipe.toml +++ b/recipes/wip/net/bittorrent/webtorrent-cli/recipe.toml @@ -2,13 +2,14 @@ [source] git = "https://github.com/webtorrent/webtorrent-cli" rev = "v5.1.3" +shallow_clone = true [build] template = "custom" script = """ -mkdir -pv "${COOKBOOK_STAGE}"/usr/bin/webtorrent-cli-dir -cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/bin/webtorrent-cli-dir -echo "#!/usr/bin/env sh \n cd /usr/bin/webtorrent-cli-dir/webtorrent-cli \n npx webtorrent-cli" > "${COOKBOOK_STAGE}"/usr/bin/webtorrent-cli -chmod a+x "${COOKBOOK_STAGE}"/usr/bin/webtorrent-cli +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin/webtorrent-dir +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/bin/webtorrent-dir +echo "#!/usr/bin/env sh \n cd /usr/bin/webtorrent-dir \n npx webtorrent-cli" > "${COOKBOOK_STAGE}"/usr/bin/webtorrent +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/webtorrent """ [package] dependencies = ["nodejs24"] diff --git a/recipes/wip/net/chat/bitchat-tui/recipe.toml b/recipes/wip/net/chat/bitchat-tui/recipe.toml index 01c5de945..80cd89eab 100644 --- a/recipes/wip/net/chat/bitchat-tui/recipe.toml +++ b/recipes/wip/net/chat/bitchat-tui/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/vaibhav-mattoo/bitchat-tui" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/chat/halloy/recipe.toml b/recipes/wip/net/chat/halloy/recipe.toml index a25cebc55..e2867ccd9 100644 --- a/recipes/wip/net/chat/halloy/recipe.toml +++ b/recipes/wip/net/chat/halloy/recipe.toml @@ -1,8 +1,9 @@ #TODO xdg-home crate error (after cargo update) [source] git = "https://github.com/squidowl/halloy" +shallow_clone = true [build] template = "cargo" dependencies = [ - "openssl1", + "openssl3", ] diff --git a/recipes/wip/net/chat/iamb/recipe.toml b/recipes/wip/net/chat/iamb/recipe.toml index 35120e3c4..debc32690 100644 --- a/recipes/wip/net/chat/iamb/recipe.toml +++ b/recipes/wip/net/chat/iamb/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/ulyssa/iamb" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/chat/jami/recipe.toml b/recipes/wip/net/chat/jami/recipe.toml index f3f66a3b6..8cdcb4871 100644 --- a/recipes/wip/net/chat/jami/recipe.toml +++ b/recipes/wip/net/chat/jami/recipe.toml @@ -1,39 +1,13 @@ -#TODO missing cross-compilation variables -# build instructions - https://git.jami.net/savoirfairelinux/jami-client-qt/-/blob/master/INSTALL.md -# dependencies - https://docs.jami.net/en_US/build/dependencies.html +#TODO missing cross-compilation variables in build.py script +#TODO build with libwrap instead of dbus +#TODO discover minimum dependencies +# build instructions: https://docs.jami.net/en_US/build/index.html [source] git = "https://git.jami.net/savoirfairelinux/jami-client-qt" -rev = "91475c3a3f316b1b674a8fbe453f9d0dd7ef444e" +branch = "stable/20260216.0" +shallow_clone = true [build] template = "custom" -dependencies = [ - "ffmpeg6", - "boost", - "expat", - "gnutls3", - "libopus", - "pcre", - "pulseaudio", - "openssl1", - "speex", - "speexdsp", - "libuuid", - "libfmt", - "libarchive", - "libgit2", - "libnettle", - "zlib", - "libnotify", - "libqrencode", - "qt6-base", - "qt6-declarative", - "qt6-graphicaleffects", - "qt6-multimedia", - "qt6-networkauth", - "qt6-svg", - "qt6-tools", - "qt6-webengine", -] script = """ ./build.py --install """ diff --git a/recipes/wip/net/chat/pidgin/recipe.toml b/recipes/wip/net/chat/pidgin/recipe.toml index 8ac647168..2069350ed 100644 --- a/recipes/wip/net/chat/pidgin/recipe.toml +++ b/recipes/wip/net/chat/pidgin/recipe.toml @@ -1,4 +1,5 @@ -#TODO missing dependencies +#TODO not compiled or tested +#TODO discover minimum dependencies from gnu autotools log [source] tar = "https://sourceforge.net/projects/pidgin/files/Pidgin/2.14.12/pidgin-2.14.12.tar.bz2" [build] diff --git a/recipes/wip/net/chat/telegram-desktop/recipe.toml b/recipes/wip/net/chat/telegram-desktop/recipe.toml index e8da71226..e80874bdb 100644 --- a/recipes/wip/net/chat/telegram-desktop/recipe.toml +++ b/recipes/wip/net/chat/telegram-desktop/recipe.toml @@ -1,23 +1,26 @@ #TODO not compiled or tested -# lacking build instructions +#TODO discover minimum dependencies from cmake log [source] -tar = "https://github.com/telegramdesktop/tdesktop/releases/download/v6.2.3/tdesktop-6.2.3-full.tar.gz" +tar = "https://github.com/telegramdesktop/tdesktop/releases/download/v6.5.1/tdesktop-6.5.1-full.tar.gz" [build] template = "cmake" -dependencies = [ - "qt6-svg", - "qt6-imageformats", - "fontconfig", - "freetype2", - "gobject-introspection", - "glib", - "expat", - "libuuid", - "libpng", - "zlib", - "libffi", - "libpcre", - "libbsd", - "libmd", - "libbrotli", +cmakeflags = [ + "-DDESKTOP_APP_DISABLE_AUTOUPDATE=1", + #"-DDESKTOP_APP_ENABLE_LTO=ON", ] +# dependencies = [ +# "qt6-svg", +# "qt6-imageformats", +# "fontconfig", +# "freetype2", +# "glib", +# "expat", +# "libuuid", +# "libpng", +# "zlib", +# "libffi", +# "libpcre", +# "libbsd", +# "libmd", +# "libbrotli", +# ] diff --git a/recipes/wip/net/chat/termchat/recipe.toml b/recipes/wip/net/chat/termchat/recipe.toml index 9e5675c9a..56a4cba07 100644 --- a/recipes/wip/net/chat/termchat/recipe.toml +++ b/recipes/wip/net/chat/termchat/recipe.toml @@ -1,8 +1,7 @@ #TODO update the mio crate to 0.8.x [source] git = "https://github.com/lemunozm/termchat" +shallow_clone = true [build] -template = "custom" -script = """ -cookbook_cargo --all-features -""" +template = "cargo" +cargoflags = ["--all-features"] diff --git a/recipes/wip/net/chat/tiny/recipe.toml b/recipes/wip/net/chat/tiny/recipe.toml index e262610b6..955339a29 100644 --- a/recipes/wip/net/chat/tiny/recipe.toml +++ b/recipes/wip/net/chat/tiny/recipe.toml @@ -1,8 +1,10 @@ #TODO compiled but not tested (after cargo update and a patch on ring) [source] git = "https://github.com/osa1/tiny" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages tiny """ diff --git a/recipes/wip/net/download/aim/recipe.toml b/recipes/wip/net/download/aim/recipe.toml index e6300a9a1..cdab4f5c8 100644 --- a/recipes/wip/net/download/aim/recipe.toml +++ b/recipes/wip/net/download/aim/recipe.toml @@ -1,13 +1,9 @@ -#TODO openssl-sys crate compilation error +#TODO not compiled or tested [source] git = "https://github.com/mihaigalos/aim" +shallow_clone = true [build] dependencies = [ - "openssl1", + "openssl3", ] -template = "custom" -script = """ -export OPENSSL_DIR="${COOKBOOK_SYSROOT}" -export OPENSSL_STATIC="true" -cookbook_cargo -""" +template = "cargo" diff --git a/recipes/wip/net/download/anime-downloader/recipe.toml b/recipes/wip/net/download/anime-downloader/recipe.toml index 72ac5ab94..dc2d345bd 100644 --- a/recipes/wip/net/download/anime-downloader/recipe.toml +++ b/recipes/wip/net/download/anime-downloader/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/B0SEmc/Anime-Downloader" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/download/apkeep/recipe.toml b/recipes/wip/net/download/apkeep/recipe.toml index 97f907f98..449c7f28d 100644 --- a/recipes/wip/net/download/apkeep/recipe.toml +++ b/recipes/wip/net/download/apkeep/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/EFForg/apkeep" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/download/aria2/recipe.toml b/recipes/wip/net/download/aria2/recipe.toml index 165ff9111..ac27a0025 100644 --- a/recipes/wip/net/download/aria2/recipe.toml +++ b/recipes/wip/net/download/aria2/recipe.toml @@ -1,10 +1,10 @@ -#TODO make dependencies work +#TODO not compiled or tested [source] tar = "https://github.com/aria2/aria2/releases/download/release-1.37.0/aria2-1.37.0.tar.xz" [build] template = "configure" dependencies = [ - "openssl1", + "openssl3", "zlib", "libxml2", "libgcrypt", diff --git a/recipes/wip/net/download/curlio/recipe.toml b/recipes/wip/net/download/curlio/recipe.toml index b80fc8c60..f62031e22 100644 --- a/recipes/wip/net/download/curlio/recipe.toml +++ b/recipes/wip/net/download/curlio/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/Kei-K23/curlio" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/download/kelpsget/recipe.toml b/recipes/wip/net/download/kelpsget/recipe.toml deleted file mode 100644 index c02bd15b8..000000000 --- a/recipes/wip/net/download/kelpsget/recipe.toml +++ /dev/null @@ -1,9 +0,0 @@ -#TODO not compiled or tested -#TODO require transmission-daemon -[source] -git = "https://github.com/davimf721/KelpsGet" -[build] -template = "cargo" -dependencies = [ - "openssl1", -] diff --git a/recipes/wip/net/download/kget/recipe.toml b/recipes/wip/net/download/kget/recipe.toml new file mode 100644 index 000000000..2f26a6501 --- /dev/null +++ b/recipes/wip/net/download/kget/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/davimf721/KGet" +shallow_clone = true +[build] +template = "cargo" +#dependencies = [ +# "openssl3", +#] diff --git a/recipes/wip/net/download/kitget/recipe.toml b/recipes/wip/net/download/kitget/recipe.toml index 66d63e41f..66e23e85e 100644 --- a/recipes/wip/net/download/kitget/recipe.toml +++ b/recipes/wip/net/download/kitget/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/adamperkowski/kitget" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/download/parabolic/recipe.toml b/recipes/wip/net/download/parabolic/recipe.toml index 4c3104fa4..1f9bf9386 100644 --- a/recipes/wip/net/download/parabolic/recipe.toml +++ b/recipes/wip/net/download/parabolic/recipe.toml @@ -1,7 +1,16 @@ -#TODO not compiled or tested -#TODO it uses vcpkg for dependency management, see: https://github.com/NickvisionApps/parabolic#building-manually +#TODO missing script for .net: https://github.com/NickvisionApps/Parabolic#-building +#TODO requires .net 10 [source] git = "https://github.com/NickvisionApps/Parabolic" -rev = "7309661a25948c56f25383c464a1b284bdeb00e7" +rev = "2026.2.4" +shallow_clone = true [build] -template = "cmake" +template = "custom" +dependencies = [ + "gtk4", + "libadwaita", +] +dev-dependencies = [ + "host:blueprint", + "host:dotnet10", +] diff --git a/recipes/wip/net/download/rusty-psn-cli/recipe.toml b/recipes/wip/net/download/rusty-psn-cli/recipe.toml index 587821f83..2fb14ef82 100644 --- a/recipes/wip/net/download/rusty-psn-cli/recipe.toml +++ b/recipes/wip/net/download/rusty-psn-cli/recipe.toml @@ -1,11 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/RainbowCookie32/rusty-psn" +shallow_clone = true [build] -template = "custom" +template = "cargo" +cargoflags = ["--features cli"] dependencies = [ - "openssl1", + "openssl3", ] -script = """ -cookbook_cargo --features cli -""" diff --git a/recipes/wip/net/download/rusty-psn-gui/recipe.toml b/recipes/wip/net/download/rusty-psn-gui/recipe.toml index b4c260868..a464788ca 100644 --- a/recipes/wip/net/download/rusty-psn-gui/recipe.toml +++ b/recipes/wip/net/download/rusty-psn-gui/recipe.toml @@ -1,8 +1,9 @@ #TODO not compiled or tested [source] git = "https://github.com/RainbowCookie32/rusty-psn" +shallow_clone = true [build] template = "cargo" dependencies = [ - "openssl1", + "openssl3", ] diff --git a/recipes/wip/net/download/uget/recipe.toml b/recipes/wip/net/download/uget/recipe.toml deleted file mode 100644 index bf9dcce90..000000000 --- a/recipes/wip/net/download/uget/recipe.toml +++ /dev/null @@ -1,9 +0,0 @@ -#TODO make gtk3 work -[source] -tar = "https://sourceforge.net/projects/urlget/files/uget%20%28stable%29/2.2.3/uget-2.2.3-1.tar.gz/download" -[build] -template = "configure" -dependencies = [ - "gtk3", - "curl", -] diff --git a/recipes/wip/net/download/wget2/recipe.toml b/recipes/wip/net/download/wget2/recipe.toml index 74c362eca..c77f16683 100644 --- a/recipes/wip/net/download/wget2/recipe.toml +++ b/recipes/wip/net/download/wget2/recipe.toml @@ -1,15 +1,17 @@ -#TODO make dependencies work +#TODO not compiled or tested +#TODO discover minimum dependencies from gnu autotools log +# build instructions: https://gitlab.com/gnuwget/wget2#build-requirements [source] -tar = "https://ftp.gnu.org/gnu/wget/wget2-2.0.1.tar.gz" +tar = "https://ftp.gnu.org/gnu/wget/wget2-2.2.1.tar.gz" [build] template = "configure" -dependencies = [ - "gettext", - "libiconv", - "zlib", - "pcre", - "gnutls", - "bzip2", - "xz", - "zstd", -] +# dependencies = [ +# "gettext", +# "libiconv", +# "zlib", +# "pcre", +# "gnutls3", +# "bzip2", +# "xz", +# "zstd", +# ] diff --git a/recipes/wip/net/download/yaydl/recipe.toml b/recipes/wip/net/download/yaydl/recipe.toml index df880e5ff..d227a0926 100644 --- a/recipes/wip/net/download/yaydl/recipe.toml +++ b/recipes/wip/net/download/yaydl/recipe.toml @@ -1,8 +1,9 @@ #TODO compilation error (after cargo update) [source] git = "https://github.com/dertuxmalwieder/yaydl" +shallow_clone = true [build] template = "cargo" dependencies = [ - "openssl1", + "openssl3", ] diff --git a/recipes/wip/net/download/youtube-tui/recipe.toml b/recipes/wip/net/download/youtube-tui/recipe.toml index 5306f25dc..a9fa4e22c 100644 --- a/recipes/wip/net/download/youtube-tui/recipe.toml +++ b/recipes/wip/net/download/youtube-tui/recipe.toml @@ -1,9 +1,10 @@ -#TODO openssl error +#TODO not compiled or tested [source] git = "https://github.com/Siriusmart/youtube-tui" +shallow_clone = true [build] template = "cargo" -cargoflags = "--no-default-features" +cargoflags = ["--no-default-features"] dependencies = [ - "openssl1", + "openssl3", ] diff --git a/recipes/wip/net/download/yt-dlp/recipe.toml b/recipes/wip/net/download/yt-dlp/recipe.toml index fcf7cba36..9e5b7ac42 100644 --- a/recipes/wip/net/download/yt-dlp/recipe.toml +++ b/recipes/wip/net/download/yt-dlp/recipe.toml @@ -5,8 +5,7 @@ tar = "https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.tar.gz" template = "custom" script = """ mkdir -pv "${COOKBOOK_STAGE}"/usr/bin/yt-dlp-dir -cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/yt-dlp -echo "#!/usr/bin/env sh \n /usr/bin/yt-dlp-dir/yt-dlp.sh" > "${COOKBOOK_STAGE}"/usr/bin/yt-dlp -chmod a+x "${COOKBOOK_STAGE}"/usr/bin/yt-dlp-dir/yt-dlp.sh -chmod a+x "${COOKBOOK_STAGE}"/usr/bin/yt-dlp +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/bin/yt-dlp-dir +echo "/usr/bin/yt-dlp-dir/yt-dlp.sh" > "${COOKBOOK_STAGE}"/usr/bin/yt-dlp +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/yt-dlp-dir/yt-dlp.sh "${COOKBOOK_STAGE}"/usr/bin/yt-dlp """ diff --git a/recipes/wip/net/email/neverest/recipe.toml b/recipes/wip/net/email/neverest/recipe.toml index 7562958c8..6286c6151 100644 --- a/recipes/wip/net/email/neverest/recipe.toml +++ b/recipes/wip/net/email/neverest/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/pimalaya/neverest" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/email/thunderbird/recipe.toml b/recipes/wip/net/email/thunderbird/recipe.toml index bfb6dde04..a2b8ea3c2 100644 --- a/recipes/wip/net/email/thunderbird/recipe.toml +++ b/recipes/wip/net/email/thunderbird/recipe.toml @@ -1,14 +1,12 @@ #TODO missing cross-compilation variables and a command to move the executable to the package +#TODO determine minimum dependencies from mach log # build instructions - https://developer.thunderbird.net/thunderbird-development/building-thunderbird [source] -tar = "https://archive.mozilla.org/pub/thunderbird/releases/128.0.1esr/source/thunderbird-128.0.1esr.source.tar.xz" +tar = "https://archive.mozilla.org/pub/thunderbird/releases/140.7.0esr/source/thunderbird-140.7.0esr.source.tar.xz" [build] template = "custom" -dependencies = [ - "library1", -] script = """ -mkdir -pv "${COOKBOOK_STAGE}"/usr +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin export MOZCONFIG="{COOKBOOK_RECIPE}/mozconfig" ./mach build """ diff --git a/recipes/wip/net/ftp/filezilla-client/recipe.toml b/recipes/wip/net/ftp/filezilla-client/recipe.toml index 34454405c..5543aabee 100644 --- a/recipes/wip/net/ftp/filezilla-client/recipe.toml +++ b/recipes/wip/net/ftp/filezilla-client/recipe.toml @@ -1,5 +1,5 @@ #TODO not compiled or tested -# build intructions - https://wiki.filezilla-project.org/Client_Compile +# build intructions: https://wiki.filezilla-project.org/Client_Compile [source] tar = "https://dl3.cdn.filezilla-project.org/client/FileZilla_3.67.1_src.tar.xz?h=HG1-LUZAqtxJaEQhlQ9oNg&x=1722821782" [build] diff --git a/recipes/wip/net/ftp/filezilla-server/recipe.toml b/recipes/wip/net/ftp/filezilla-server/recipe.toml index f2f7920be..a4c13097e 100644 --- a/recipes/wip/net/ftp/filezilla-server/recipe.toml +++ b/recipes/wip/net/ftp/filezilla-server/recipe.toml @@ -1,5 +1,5 @@ #TODO not compiled or tested -# build intructions - https://wiki.filezilla-project.org/Client_Compile +# build intructions: https://wiki.filezilla-project.org/Client_Compile [source] tar = "https://dl2.cdn.filezilla-project.org/server/FileZilla_Server_1.8.2_src.tar.xz?h=05HQOZtMOkV85GW9u3rrsg&x=1722821856" [build] diff --git a/recipes/wip/net/ftp/unftp/recipe.toml b/recipes/wip/net/ftp/unftp/recipe.toml index b7c4fcf2b..5fd51394c 100644 --- a/recipes/wip/net/ftp/unftp/recipe.toml +++ b/recipes/wip/net/ftp/unftp/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/bolcom/unFTP" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/gemini/lagrange/recipe.toml b/recipes/wip/net/gemini/lagrange/recipe.toml index db5f9d199..f20d12200 100644 --- a/recipes/wip/net/gemini/lagrange/recipe.toml +++ b/recipes/wip/net/gemini/lagrange/recipe.toml @@ -1,16 +1,17 @@ #TODO not compiled or tested # build instructions: https://github.com/skyjake/lagrange#how-to-compile -#TODO mpg123 dependency broken [source] -tar = "https://git.skyjake.fi/gemini/lagrange/releases/download/v1.19.3/lagrange-1.19.3.tar.gz" +tar = "https://git.skyjake.fi/gemini/lagrange/releases/download/v1.19.4/lagrange-1.19.4.tar.gz" [build] template = "cmake" cmakeflags = [ + "-DENABLE_GAMEPAD=OFF", + "-DENABLE_POPUP_MENUS=OFF", "-DENABLE_MPG123=OFF" ] dependencies = [ "sdl2", - "openssl1", + "openssl3", "zlib", "harfbuzz", "pcre", diff --git a/recipes/wip/net/http/apache-httpd/recipe.toml b/recipes/wip/net/http/apache-httpd/recipe.toml index f75c1f022..49ede8b7f 100644 --- a/recipes/wip/net/http/apache-httpd/recipe.toml +++ b/recipes/wip/net/http/apache-httpd/recipe.toml @@ -1,6 +1,6 @@ #TODO compiles but requires setgroups syscall at startup [source] -tar= "https://dlcdn.apache.org/httpd/httpd-2.4.61.tar.bz2" +tar= "https://archive.apache.org/dist/httpd/httpd-2.4.61.tar.bz2" patches = [ "redox.patch", ] @@ -14,7 +14,7 @@ dependencies = [ "libuuid", "libxcrypt", "libxml2", - "openssl1", + "openssl3", "pcre", "zlib", ] @@ -23,6 +23,7 @@ template = "custom" script = """ # cookbook_configure +DYNAMIC_INIT export COOKBOOK_MAKE_JOBS=1 export CPPFLAGS="$CPPFLAGS -I${COOKBOOK_SYSROOT}/include/apr-1 -DDEBUG=1" export LTFLAGS="$LTFLAGS -Wall" @@ -31,9 +32,9 @@ COOKBOOK_CONFIGURE_FLAGS=( --host=${TARGET} --with-apr=$COOKBOOK_SYSROOT --with-apr-util=$COOKBOOK_SYSROOT - --enable-unixd=static - --enable-authz_core=static - --enable-authz_host=static + --enable-unixd=shared + --enable-authz_core=shared + --enable-authz_host=shared ac_cv_prog_PCRE_CONFIG=$COOKBOOK_SYSROOT/bin/pcre-config ap_cv_void_ptr_lt_long=no ) diff --git a/recipes/wip/net/http/easyp/recipe.toml b/recipes/wip/net/http/easyp/recipe.toml index 12dfb7669..02d41cc2d 100644 --- a/recipes/wip/net/http/easyp/recipe.toml +++ b/recipes/wip/net/http/easyp/recipe.toml @@ -2,8 +2,6 @@ #TODO determine how to configure this part of the deployment script: https://github.com/gmatht/easyp/blob/main/deploy.sh#L39 [source] git = "https://github.com/gmatht/easyp-crate" +shallow_clone = true [build] -template = "custom" -script = """ -cookbook_cargo -""" +template = "cargo" diff --git a/recipes/wip/net/http/ferron/recipe.toml b/recipes/wip/net/http/ferron/recipe.toml index 143aae515..a0595f529 100644 --- a/recipes/wip/net/http/ferron/recipe.toml +++ b/recipes/wip/net/http/ferron/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/ferronweb/ferron" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages ferron """ diff --git a/recipes/wip/net/http/http-server-rs/recipe.toml b/recipes/wip/net/http/http-server-rs/recipe.toml index c537e0c56..ada10a453 100644 --- a/recipes/wip/net/http/http-server-rs/recipe.toml +++ b/recipes/wip/net/http/http-server-rs/recipe.toml @@ -1,25 +1,22 @@ #TODO camino crate error +# broken since https://github.com/http-server-rs/http-server/pull/461 +# because it needs https://trunkrs.dev to work [source] git = "https://github.com/http-server-rs/http-server" -# Broken since https://github.com/http-server-rs/http-server/pull/461 -# because it needs https://trunkrs.dev to work -rev = "9ffa604de326e013330bced8e36dd7a6945ecb9f" shallow_clone = true [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", ] script = """ DYNAMIC_INIT -export OPENSSL_DIR="${COOKBOOK_SYSROOT}" -export OPENSSL_STATIC="true" "${COOKBOOK_CARGO}" build \ --manifest-path "${COOKBOOK_SOURCE}/crates/file-explorer-plugin/Cargo.toml" \ --locked ${build_flags} --lib cp -v \ "target/${TARGET}/${build_type}/libfile_explorer_plugin.dylib" \ "${COOKBOOK_SOURCE}"/lib/http-server/inline/file_explorer.plugin.httprs -PACKAGE_PATH=crates/http-server cookbook_cargo --bin http-server +COOKBOOK_CARGO_PATH=crates/http-server cookbook_cargo --bin http-server """ diff --git a/recipes/wip/net/http/miniserve/recipe.toml b/recipes/wip/net/http/miniserve/recipe.toml index f5d958043..403578c4b 100644 --- a/recipes/wip/net/http/miniserve/recipe.toml +++ b/recipes/wip/net/http/miniserve/recipe.toml @@ -1,12 +1,10 @@ #TODO missing libc:: socket-related imports - [source] git = "https://github.com/svenstaro/miniserve" - +shallow_clone = true [build] +template = "cargo" dependencies = [ - "openssl1", + "openssl3", "zlib" ] -template = "cargo" - diff --git a/recipes/wip/net/http/quark/recipe.toml b/recipes/wip/net/http/quark/recipe.toml index cbc312aaa..cfd936f6b 100644 --- a/recipes/wip/net/http/quark/recipe.toml +++ b/recipes/wip/net/http/quark/recipe.toml @@ -1,6 +1,7 @@ #TODO missing script for gnu make [source] git = "https://git.suckless.org/quark" -rev = "5ad0df91757fbc577ffceeca633725e962da345d.html" +rev = "5ad0df91757fbc577ffceeca633725e962da345d" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/net/http/sozu/recipe.toml b/recipes/wip/net/http/sozu/recipe.toml index bad5b1033..a7f0b5870 100644 --- a/recipes/wip/net/http/sozu/recipe.toml +++ b/recipes/wip/net/http/sozu/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/sozu-proxy/sozu" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages sozu """ diff --git a/recipes/wip/net/http/sws/recipe.toml b/recipes/wip/net/http/sws/recipe.toml index 4530f9e4f..044bb691b 100644 --- a/recipes/wip/net/http/sws/recipe.toml +++ b/recipes/wip/net/http/sws/recipe.toml @@ -1,5 +1,6 @@ #TODO signal-hook crate error [source] git = "https://github.com/static-web-server/static-web-server" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/lan/lantun/recipe.toml b/recipes/wip/net/lan/lantun/recipe.toml index 91dab8418..b87dd8f1b 100644 --- a/recipes/wip/net/lan/lantun/recipe.toml +++ b/recipes/wip/net/lan/lantun/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/maxomatic458/lantun" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages lantun-cli """ diff --git a/recipes/wip/net/lan/malai/recipe.toml b/recipes/wip/net/lan/malai/recipe.toml index 237c72592..8f5b4c857 100644 --- a/recipes/wip/net/lan/malai/recipe.toml +++ b/recipes/wip/net/lan/malai/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/fastn-stack/kulfi" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages malai """ diff --git a/recipes/wip/net/lan/zerotier/recipe.toml b/recipes/wip/net/lan/zerotier/recipe.toml index cbaaa9aee..f86ea058b 100644 --- a/recipes/wip/net/lan/zerotier/recipe.toml +++ b/recipes/wip/net/lan/zerotier/recipe.toml @@ -1,9 +1,11 @@ -#TODO missing script for "make", see https://github.com/zerotier/ZeroTierOne#build-and-platform-notes +#TODO missing script for gnu make: https://github.com/zerotier/ZeroTierOne/blob/dev/build.md +#TODO discover minimum dependencies [source] git = "https://github.com/zerotier/ZeroTierOne" -rev = "327eb9013b39809835a912c9117a0b9669f4661f" +rev = "1.16.0" +shallow_clone = true [build] template = "custom" -dependencies = [ - "openssl1", -] +#dependencies = [ +# "openssl3", +#] diff --git a/recipes/wip/net/lan/ztui/recipe.toml b/recipes/wip/net/lan/ztui/recipe.toml index dbb916c60..d0d0edc58 100644 --- a/recipes/wip/net/lan/ztui/recipe.toml +++ b/recipes/wip/net/lan/ztui/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/erikh/ztui" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/monitor/network-monitor-rs/recipe.toml b/recipes/wip/net/monitor/network-monitor-rs/recipe.toml index fc3527ed2..055f933f6 100644 --- a/recipes/wip/net/monitor/network-monitor-rs/recipe.toml +++ b/recipes/wip/net/monitor/network-monitor-rs/recipe.toml @@ -1,6 +1,7 @@ #TODO not compiled or tested [source] git = "https://github.com/grigio/network-monitor" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/net/monitor/rustnet/recipe.toml b/recipes/wip/net/monitor/rustnet/recipe.toml index 6ab852ff7..f1050c91b 100644 --- a/recipes/wip/net/monitor/rustnet/recipe.toml +++ b/recipes/wip/net/monitor/rustnet/recipe.toml @@ -1,6 +1,7 @@ #TODO not compiled or tested [source] git = "https://github.com/domcyrus/rustnet" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/net/monitor/somo/recipe.toml b/recipes/wip/net/monitor/somo/recipe.toml index 51bb05c67..731638705 100644 --- a/recipes/wip/net/monitor/somo/recipe.toml +++ b/recipes/wip/net/monitor/somo/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/theopfr/somo" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/onion-routing/arti/recipe.toml b/recipes/wip/net/onion-routing/arti/recipe.toml index b36e3191e..16f1c8813 100644 --- a/recipes/wip/net/onion-routing/arti/recipe.toml +++ b/recipes/wip/net/onion-routing/arti/recipe.toml @@ -1,11 +1,13 @@ #TODO pwd-grp crate error [source] git = "https://gitlab.torproject.org/tpo/core/arti" +shallow_clone = true [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", ] script = """ +DYNAMIC_INIT cookbook_cargo_packages arti """ diff --git a/recipes/wip/net/onion-routing/i2pd/recipe.toml b/recipes/wip/net/onion-routing/i2pd/recipe.toml index 6056125cc..a36851fb5 100644 --- a/recipes/wip/net/onion-routing/i2pd/recipe.toml +++ b/recipes/wip/net/onion-routing/i2pd/recipe.toml @@ -2,11 +2,12 @@ # build instructions: https://i2pd.readthedocs.io/en/latest/devs/building/unix/ [source] git = "https://github.com/PurpleI2P/i2pd" -rev = "beffdb9fe175a93164bd88ee0fafe1a22595ed15" +rev = "2.59.0" +shallow_clone = true [build] template = "cmake" dependencies = [ "boost", - "openssl1", + "openssl3", "zlib", ] diff --git a/recipes/wip/net/onion-routing/lokinet/recipe.toml b/recipes/wip/net/onion-routing/lokinet/recipe.toml deleted file mode 100644 index 0061eb0b7..000000000 --- a/recipes/wip/net/onion-routing/lokinet/recipe.toml +++ /dev/null @@ -1,17 +0,0 @@ -#TODO not compiled or tested -# build instructions: https://github.com/oxen-io/lokinet/blob/dev/docs/install.md#building -[source] -tar = "https://github.com/oxen-io/lokinet/releases/download/v0.9.11/lokinet-v0.9.11.tar.xz" -[build] -template = "cmake" -dependencies = [ - "libcap", - "libuv", - "libsodium", - "curl", - "libevent", - "libnettle", - "openssl1", - "unbound", - "nlohmann-json", -] diff --git a/recipes/wip/net/onion-routing/tor-browser/mozconfig b/recipes/wip/net/onion-routing/tor-browser/mozconfig new file mode 100644 index 000000000..d5e1c48da --- /dev/null +++ b/recipes/wip/net/onion-routing/tor-browser/mozconfig @@ -0,0 +1,24 @@ +mk_add_options MOZ_OBJDIR=COOKBOOK_BUILD +ac_add_options --target=TARGET +ac_add_options --disable-debug +ac_add_options --disable-tests +ac_add_options --disable-audio-backends +ac_add_options --disable-crashreporter +ac_add_options --disable-updater +ac_add_options --disable-dbus +ac_add_options --disable-gecko-profiler +ac_add_options --disable-profiling +ac_add_options --disable-dmd # dark matter detector +ac_add_options --without-wasm-sandboxed-libraries # need clang wasi + +# TODO: cairo-gtk3-x11-wayland or separate cairo-gtk3-wayland-only +ac_add_options --enable-default-toolkit=cairo-gtk3-x11-only +ac_add_options --enable-bootstrap=-clang # only use our clang +ac_add_options --enable-optimize +ac_add_options --with-system-nspr +ac_add_options --with-gl-provider=EGL + +export MOZ_REQUIRE_SIGNING= +export MOZ_TELEMETRY_REPORTING= +export CC="TARGET_CC" +export CXX="TARGET_CXX" diff --git a/recipes/wip/net/onion-routing/tor-browser/recipe.toml b/recipes/wip/net/onion-routing/tor-browser/recipe.toml index 219acd693..59e2e024b 100644 --- a/recipes/wip/net/onion-routing/tor-browser/recipe.toml +++ b/recipes/wip/net/onion-routing/tor-browser/recipe.toml @@ -1,23 +1,63 @@ -#TODO probably wrong template, see see https://firefox-source-docs.mozilla.org/setup/linux_build.html#build +#TODO patches for quinn-udp crate, switch into git fork +# mach: https://firefox-source-docs.mozilla.org/setup/linux_build.html [source] -tar = "https://dist.torproject.org/torbrowser/13.0.1/src-firefox-tor-browser-115.4.0esr-13.0-1-build2.tar.xz" +tar = "https://dist.torproject.org/torbrowser/15.0.6/src-firefox-tor-browser-140.7.1esr-15.0-1-build1.tar.xz" [build] -template = "configure" +template = "custom" dependencies = [ - "fontconfig", - "atk", - "cairo", + # "fontconfig", + # "atk", + # "cairo", "dbus", - "libffi", - "freetype2", - "gdk-pixbuf", - "glib", + # "libffi", + # "freetype2", + # "gdk-pixbuf", + # "glib", "gtk3", "pango", - "sqlite3", - "nss-nspr", - "startup-notification", - "zlib", - "libvpx", - "ffmpeg6", + "libxkbcommon-x11", + "libice", + "mesa-x11", + "x11proto-kb", + "xcb-proto", + "xextproto", + "nspr", + "libxrandr", + "libsm", +# TODO: Should separate clang library and runtime + "clang21" + # "sqlite3", + # "nss-nspr", + # "startup-notification", + # "zlib", + # "ffmpeg6", + # "expat", + # "libepoxy", + # "pipewire", ] +script = """ +DYNAMIC_INIT + +cat ${COOKBOOK_RECIPE}/mozconfig > mozconfig +sed -i "s|COOKBOOK_BUILD|${COOKBOOK_BUILD}|g" mozconfig +sed -i "s|TARGET_CC|${CC}|g" mozconfig +sed -i "s|TARGET_CXX|${CXX}|g" mozconfig +sed -i "s|TARGET|${TARGET}|g" mozconfig +export MOZCONFIG="${COOKBOOK_BUILD}/mozconfig" +export PYTHONDONTWRITEBYTECODE=1 +unset CC_WRAPPER +if [[ -z "$CI" ]]; then export MACH_NO_TERMINAL_FOOTER=1; fi; + +# clang-sys specifics +PREFIX_INCLUDE="$COOKBOOK_HOST_SYSROOT/$TARGET/include" +export CLANGFLAGS="-I $PREFIX_INCLUDE/c++/13.2.0 -I $PREFIX_INCLUDE/c++/13.2.0/$TARGET -I $PREFIX_INCLUDE/c++/13.2.0/backward" +export CLANGFLAGS="$CLANGFLAGS -I $PREFIX_INCLUDE -I $COOKBOOK_SYSROOT/lib/clang/21/include -D__redox__" +export BINDGEN_EXTRA_CLANG_ARGS_x86_64_unknown_redox="-target x86_64-unknown-redox -nostdinc $CLANGFLAGS" +export LLVM_CONFIG_PATH="$COOKBOOK_TOOLCHAIN/bin/llvm-config" + +# Don't poison the stage1 compiler (host -> host) +unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP + +(cd ${COOKBOOK_SOURCE} && ./mach build) +rsync -a ./dist ${COOKBOOK_STAGE} +""" diff --git a/recipes/wip/net/onion-routing/tor/recipe.toml b/recipes/wip/net/onion-routing/tor/recipe.toml index fb69580bc..d4cb0e5ab 100644 --- a/recipes/wip/net/onion-routing/tor/recipe.toml +++ b/recipes/wip/net/onion-routing/tor/recipe.toml @@ -1,10 +1,10 @@ -#TODO Make the libevent works +#TODO not compiled or tested [source] tar = "https://dist.torproject.org/tor-0.4.8.9.tar.gz" [build] template = "configure" dependencies = [ "libevent", - "openssl1", + "openssl3", "zlib", ] diff --git a/recipes/wip/net/other/nspr/recipe.toml b/recipes/wip/net/other/nspr/recipe.toml index 1d29eda4e..361c6c939 100644 --- a/recipes/wip/net/other/nspr/recipe.toml +++ b/recipes/wip/net/other/nspr/recipe.toml @@ -1,5 +1,25 @@ -#TODO missing script for building +# TODO: Using patched mozjs from servo, maybe move patcehs into to upstream patches? [source] -tar = "https://ftp.mozilla.org/pub/nspr/releases/v4.9.6/src/nspr-4.9.6.tar.gz" +# tar = "https://ftp.mozilla.org/pub/nspr/releases/v4.9.6/src/nspr-4.9.6.tar.gz" +git = "https://github.com/willnode/mozjs" +branch = "redox" +shallow_clone = true [build] template = "custom" +script = """ +export HOST_CC="cc" +export CC="$GNU_TARGET-gcc" +export CXX="$GNU_TARGET-g++" +export LDFLAGS="-shared" +export CFLAGS="-fPIC" +COOKBOOK_CONFIGURE_FLAGS+=( + --enable-optimize + --disable-debug + --enable-64bit + --with-pthreads + ac_cv_path_LD="$LD" +) +COOKBOOK_MAKE_JOBS=1 +COOKBOOK_CONFIGURE="$COOKBOOK_SOURCE/mozjs-sys/mozjs/nsprpub/configure" +cookbook_configure +""" diff --git a/recipes/wip/net/p2p/dumbpipe/recipe.toml b/recipes/wip/net/p2p/dumbpipe/recipe.toml index 4ae3400fc..ab2c57989 100644 --- a/recipes/wip/net/p2p/dumbpipe/recipe.toml +++ b/recipes/wip/net/p2p/dumbpipe/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/n0-computer/dumbpipe" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/p2p/easytier/recipe.toml b/recipes/wip/net/p2p/easytier/recipe.toml index 9f4a94387..1c05b5499 100644 --- a/recipes/wip/net/p2p/easytier/recipe.toml +++ b/recipes/wip/net/p2p/easytier/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/EasyTier/EasyTier" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages easytier """ diff --git a/recipes/wip/net/p2p/oku/recipe.toml b/recipes/wip/net/p2p/oku/recipe.toml index 7de458152..fa01d77e8 100644 --- a/recipes/wip/net/p2p/oku/recipe.toml +++ b/recipes/wip/net/p2p/oku/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/OkuBrowser/oku" +shallow_clone = true +script = "./prebuild.sh" [build] -template = "custom" +template = "cargo" dependencies = [ "gtk4", "glib", @@ -10,7 +12,3 @@ dependencies = [ "webkitgtk4", "libfuse3", ] -script = """ -./prebuild.sh -cookbook_cargo -""" diff --git a/recipes/wip/net/remote/bayesian-ssh/recipe.toml b/recipes/wip/net/remote/bayesian-ssh/recipe.toml index 2b0c18fcf..1c72be8c3 100644 --- a/recipes/wip/net/remote/bayesian-ssh/recipe.toml +++ b/recipes/wip/net/remote/bayesian-ssh/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/abdoufermat5/bayesian-ssh" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/remote/do-ssh/recipe.toml b/recipes/wip/net/remote/do-ssh/recipe.toml index 41632fc5e..4c5484491 100644 --- a/recipes/wip/net/remote/do-ssh/recipe.toml +++ b/recipes/wip/net/remote/do-ssh/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/doEggi/do-ssh" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/remote/ethersync/recipe.toml b/recipes/wip/net/remote/ethersync/recipe.toml index c24a3c049..2c566aa4b 100644 --- a/recipes/wip/net/remote/ethersync/recipe.toml +++ b/recipes/wip/net/remote/ethersync/recipe.toml @@ -1,9 +1,11 @@ #TODO not compiled or tested [source] git = "https://github.com/ethersync/ethersync" +shallow_clone = true [build] template = "custom" script = """ COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/daemon" +DYNAMIC_INIT cookbook_cargo """ diff --git a/recipes/wip/net/remote/iroh-ssh/recipe.toml b/recipes/wip/net/remote/iroh-ssh/recipe.toml index 3af3dc0f1..ffb715fd9 100644 --- a/recipes/wip/net/remote/iroh-ssh/recipe.toml +++ b/recipes/wip/net/remote/iroh-ssh/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/rustonbsd/iroh-ssh" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/remote/jupii/recipe.toml b/recipes/wip/net/remote/jupii/recipe.toml index c93e3437e..17a342539 100644 --- a/recipes/wip/net/remote/jupii/recipe.toml +++ b/recipes/wip/net/remote/jupii/recipe.toml @@ -3,6 +3,7 @@ [source] git = "https://github.com/mkiol/Jupii" rev = "ed80ca0ea29081a2bff038faf4884e3acabb14b7" +shallow_clone = true [build] template = "cmake" cmakeflags = [ diff --git a/recipes/wip/net/remote/remmina/recipe.toml b/recipes/wip/net/remote/remmina/recipe.toml index 14605bd7d..41e2adeee 100644 --- a/recipes/wip/net/remote/remmina/recipe.toml +++ b/recipes/wip/net/remote/remmina/recipe.toml @@ -4,10 +4,11 @@ [source] git = "https://gitlab.com/Remmina/Remmina" rev = "2a455eadd6462457d08c2d066c5c245e0dee3bf9" +shallow_clone = true [build] template = "cmake" dependencies = [ - "openssl1", + "openssl3", "libxml2", "gstreamer", "ffmpeg6", diff --git a/recipes/wip/net/remote/rustconn/recipe.toml b/recipes/wip/net/remote/rustconn/recipe.toml new file mode 100644 index 000000000..da16738a5 --- /dev/null +++ b/recipes/wip/net/remote/rustconn/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/totoshko88/RustConn" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "gtk4", + "libadwaita", + "vte", +] +script = """ +DYNAMIC_INIT +cookbook_cargo_packages rustconn +""" diff --git a/recipes/wip/net/remote/sanzu/recipe.toml b/recipes/wip/net/remote/sanzu/recipe.toml index 6c7dd71b9..cc8b1df1a 100644 --- a/recipes/wip/net/remote/sanzu/recipe.toml +++ b/recipes/wip/net/remote/sanzu/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/cea-sec/sanzu" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages sanzu """ diff --git a/recipes/wip/net/remote/shared/recipe.toml b/recipes/wip/net/remote/shared/recipe.toml index ed93e9f47..79cd1f2c0 100644 --- a/recipes/wip/net/remote/shared/recipe.toml +++ b/recipes/wip/net/remote/shared/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/mateolafalce/shared" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/remote/ssh-portfolio/recipe.toml b/recipes/wip/net/remote/ssh-portfolio/recipe.toml index 5babdd7c3..a5f0f5d10 100644 --- a/recipes/wip/net/remote/ssh-portfolio/recipe.toml +++ b/recipes/wip/net/remote/ssh-portfolio/recipe.toml @@ -2,5 +2,8 @@ # require nerdfonts [source] git = "https://github.com/CompeyDev/ssh-portfolio" +shallow_clone = true [build] template = "cargo" +[package] +dependencies = ["nerd-fonts"] diff --git a/recipes/wip/net/remote/tigervnc/recipe.toml b/recipes/wip/net/remote/tigervnc/recipe.toml new file mode 100644 index 000000000..514e15374 --- /dev/null +++ b/recipes/wip/net/remote/tigervnc/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +# build instructions: https://github.com/TigerVNC/tigervnc/blob/1.16-branch/BUILDING.txt +[source] +git = "https://github.com/TigerVNC/tigervnc" +branch = "1.16-branch" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "zlib", + "pixman", + "fltk14", + "libjpeg", + #"gnutls3", + #"libnettle", +] diff --git a/recipes/wip/net/remote/zeco/recipe.toml b/recipes/wip/net/remote/zeco/recipe.toml index 8a4e04275..f1fde6559 100644 --- a/recipes/wip/net/remote/zeco/recipe.toml +++ b/recipes/wip/net/remote/zeco/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/julianbuettner/zeco" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/scan/netpeek/recipe.toml b/recipes/wip/net/scan/netpeek/recipe.toml index fc2334e38..e527bf45b 100644 --- a/recipes/wip/net/scan/netpeek/recipe.toml +++ b/recipes/wip/net/scan/netpeek/recipe.toml @@ -3,5 +3,6 @@ [source] git = "https://github.com/ZingyTomato/NetPeek" rev = "v0.2.4" +shallow_clone = true [build] template = "meson" diff --git a/recipes/wip/net/security/yadb/recipe.toml b/recipes/wip/net/security/yadb/recipe.toml index d8b9c989c..9e47c0a9b 100644 --- a/recipes/wip/net/security/yadb/recipe.toml +++ b/recipes/wip/net/security/yadb/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/izya4ka/yadb" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/sharing/gday/recipe.toml b/recipes/wip/net/sharing/gday/recipe.toml index 8d3a6b20f..7889e2775 100644 --- a/recipes/wip/net/sharing/gday/recipe.toml +++ b/recipes/wip/net/sharing/gday/recipe.toml @@ -1,8 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/manforowicz/gday" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages gday gday_server """ diff --git a/recipes/wip/net/sharing/hakanai/recipe.toml b/recipes/wip/net/sharing/hakanai/recipe.toml index ca4fdbab9..decad5f1c 100644 --- a/recipes/wip/net/sharing/hakanai/recipe.toml +++ b/recipes/wip/net/sharing/hakanai/recipe.toml @@ -1,11 +1,13 @@ #TODO not compiled or tested [source] git = "https://github.com/czerwonk/hakanai" +shallow_clone = true [build] template = "custom" dependencies = [ "openssl3" ] script = """ +DYNAMIC_INIT cookbook_cargo_packages hakanai hakanai-server """ diff --git a/recipes/wip/net/sharing/lan-mouse/recipe.toml b/recipes/wip/net/sharing/lan-mouse/recipe.toml index 10f922d3a..498c844de 100644 --- a/recipes/wip/net/sharing/lan-mouse/recipe.toml +++ b/recipes/wip/net/sharing/lan-mouse/recipe.toml @@ -1,6 +1,7 @@ -#TODO make GTK4 work +#TODO not compiled or tested [source] git = "https://github.com/feschber/lan-mouse" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/net/sharing/magic-wormhole-rs/recipe.toml b/recipes/wip/net/sharing/magic-wormhole-rs/recipe.toml index c79ab6288..20dd96316 100644 --- a/recipes/wip/net/sharing/magic-wormhole-rs/recipe.toml +++ b/recipes/wip/net/sharing/magic-wormhole-rs/recipe.toml @@ -1,8 +1,10 @@ #TODO async-tar and rustix crates error [source] git = "https://github.com/magic-wormhole/magic-wormhole.rs" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages magic-wormhole """ diff --git a/recipes/wip/net/sharing/microbin/recipe.toml b/recipes/wip/net/sharing/microbin/recipe.toml index 94ea7b122..5c383508b 100644 --- a/recipes/wip/net/sharing/microbin/recipe.toml +++ b/recipes/wip/net/sharing/microbin/recipe.toml @@ -1,5 +1,7 @@ #TODO not compiled or tested [source] git = "https://github.com/szabodanika/microbin" +shallow_clone = true [build] +DYNAMIC_INIT template = "cargo" diff --git a/recipes/wip/net/sharing/qft/recipe.toml b/recipes/wip/net/sharing/qft/recipe.toml index 6aeb4bab3..5e4bdde5e 100644 --- a/recipes/wip/net/sharing/qft/recipe.toml +++ b/recipes/wip/net/sharing/qft/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/CramBL/quick-file-transfer" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/sharing/sendme/recipe.toml b/recipes/wip/net/sharing/sendme/recipe.toml index e4162119a..a6e52d2d9 100644 --- a/recipes/wip/net/sharing/sendme/recipe.toml +++ b/recipes/wip/net/sharing/sendme/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/n0-computer/sendme" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/sharing/warp/recipe.toml b/recipes/wip/net/sharing/warp/recipe.toml index 797f8b4df..c3793f468 100644 --- a/recipes/wip/net/sharing/warp/recipe.toml +++ b/recipes/wip/net/sharing/warp/recipe.toml @@ -2,6 +2,11 @@ # build instructions: https://gitlab.gnome.org/World/warp#meson [source] git = "https://gitlab.gnome.org/World/warp" -rev = "1daa60691aa1a697acaff55450dcccb085023fc7" +shallow_clone = true [build] template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/net/social/nostui/recipe.toml b/recipes/wip/net/social/nostui/recipe.toml index f4677875c..aecb15efe 100644 --- a/recipes/wip/net/social/nostui/recipe.toml +++ b/recipes/wip/net/social/nostui/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/akiomik/nostui" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/social/reddix/recipe.toml b/recipes/wip/net/social/reddix/recipe.toml index 59406eee1..2ff1e267e 100644 --- a/recipes/wip/net/social/reddix/recipe.toml +++ b/recipes/wip/net/social/reddix/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/ck-zhang/reddix" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/social/tuba/recipe.toml b/recipes/wip/net/social/tuba/recipe.toml new file mode 100644 index 000000000..cdd2b94c4 --- /dev/null +++ b/recipes/wip/net/social/tuba/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +# build instructions: https://github.com/GeopJr/Tuba#from-source +[source] +git = "https://github.com/GeopJr/Tuba" +rev = "v0.10.3" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "json-glib", + "libxml2", + "libgee", + "libsoup", + "libadwaita", + "libsecret", + "gtksourceview", +] +dev-dependencies = ["vala"] diff --git a/recipes/wip/net/ssh/dropbear/recipe.toml b/recipes/wip/net/ssh/dropbear/recipe.toml index fdffc6bd0..a1e68ecd2 100644 --- a/recipes/wip/net/ssh/dropbear/recipe.toml +++ b/recipes/wip/net/ssh/dropbear/recipe.toml @@ -2,6 +2,7 @@ [source] git = "https://gitlab.redox-os.org/tfinnegan937/dropbear.git" rev = "4c6828d39f988712cf4d2a64c7acf15d76f24aa9" +shallow_clone = true [build] template = "configure" configureflags = [ @@ -14,6 +15,6 @@ configureflags = [ "--disable-wtmpx", ] dependencies = [ - "openssl1", + "openssl3", "zlib" ] diff --git a/recipes/wip/net/ssh/fastssh/recipe.toml b/recipes/wip/net/ssh/fastssh/recipe.toml index 88b911591..9560db75d 100644 --- a/recipes/wip/net/ssh/fastssh/recipe.toml +++ b/recipes/wip/net/ssh/fastssh/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/Julien-R44/fast-ssh" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/ssh/filessh/recipe.toml b/recipes/wip/net/ssh/filessh/recipe.toml index 0e6ec4b4f..fe594e08a 100644 --- a/recipes/wip/net/ssh/filessh/recipe.toml +++ b/recipes/wip/net/ssh/filessh/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/JayanAXHF/filessh" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/ssh/mosh/recipe.toml b/recipes/wip/net/ssh/mosh/recipe.toml index f5dcad4ff..901a204c9 100644 --- a/recipes/wip/net/ssh/mosh/recipe.toml +++ b/recipes/wip/net/ssh/mosh/recipe.toml @@ -2,13 +2,9 @@ [source] tar = "https://github.com/mobile-shell/mosh/releases/download/mosh-1.4.0/mosh-1.4.0.tar.gz" [build] -template = "custom" +template = "configure" dependencies = [ - "openssl1", + "openssl3", "ncurses", "zlib", ] -script = """ -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" -cookbook_configure -""" diff --git a/recipes/wip/net/ssh/russh/recipe.toml b/recipes/wip/net/ssh/russh/recipe.toml index 828f74717..d8f724678 100644 --- a/recipes/wip/net/ssh/russh/recipe.toml +++ b/recipes/wip/net/ssh/russh/recipe.toml @@ -1,8 +1,9 @@ [source] git = "https://github.com/jackpot51/russh" - +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_examples client_exec_simple client_exec_interactive sftp_client sftp_server """ diff --git a/recipes/wip/net/ssh/ssh-pilot/recipe.toml b/recipes/wip/net/ssh/ssh-pilot/recipe.toml index 39bb4f0e3..ea9e5f401 100644 --- a/recipes/wip/net/ssh/ssh-pilot/recipe.toml +++ b/recipes/wip/net/ssh/ssh-pilot/recipe.toml @@ -2,12 +2,13 @@ [source] git = "https://github.com/mfat/sshpilot" rev = "v4.3.8" +shallow_clone = true [build] template = "custom" script = """ mkdir -pv "${COOKBOOK_STAGE}"/usr/bin/ssh-pilot-dir cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/usr/bin/ssh-pilot-dir" -echo "#!/usr/bin/env sh \n python3 /usr/bin/ssh-pilot-dir/run.py" > "${COOKBOOK_STAGE}"/usr/bin/ssh-pilot +echo "python3 /usr/bin/ssh-pilot-dir/run.py" > "${COOKBOOK_STAGE}"/usr/bin/ssh-pilot chmod a+x "${COOKBOOK_STAGE}"/usr/bin/ssh-pilot """ [package] diff --git a/recipes/wip/net/ssh/sshs/recipe.toml b/recipes/wip/net/ssh/sshs/recipe.toml index 4fa346343..09dea8c25 100644 --- a/recipes/wip/net/ssh/sshs/recipe.toml +++ b/recipes/wip/net/ssh/sshs/recipe.toml @@ -1,5 +1,6 @@ #TODO compiled but not tested [source] git = "https://github.com/quantumsheep/sshs" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/net/ssh/sshx/recipe.toml b/recipes/wip/net/ssh/sshx/recipe.toml index 4a752c857..2c1327c1b 100644 --- a/recipes/wip/net/ssh/sshx/recipe.toml +++ b/recipes/wip/net/ssh/sshx/recipe.toml @@ -2,8 +2,10 @@ #TODO require NodeJS and NPM [source] git = "https://github.com/ekzhang/sshx" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages sshx """ diff --git a/recipes/wip/net/ssh/termirs/recipe.toml b/recipes/wip/net/ssh/termirs/recipe.toml index 0ebb4402a..6867fc293 100644 --- a/recipes/wip/net/ssh/termirs/recipe.toml +++ b/recipes/wip/net/ssh/termirs/recipe.toml @@ -1,5 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/caelansar/termirs" +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/news/newsflash/recipe.toml b/recipes/wip/news/newsflash/recipe.toml new file mode 100644 index 000000000..a92ab6d11 --- /dev/null +++ b/recipes/wip/news/newsflash/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.com/news-flash/news_flash_gtk" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", + "webkitgtk4", + "sqlite3", + "gettext", + "openssl3", + "clapper", +] +dev-dependencies = ["blueprint"] diff --git a/recipes/wip/nonfree/games/openspades/recipe.toml b/recipes/wip/nonfree/games/openspades/recipe.toml deleted file mode 100644 index e7d60a0dd..000000000 --- a/recipes/wip/nonfree/games/openspades/recipe.toml +++ /dev/null @@ -1,18 +0,0 @@ -#TODO not compiled or tested -# build instructions: https://github.com/yvt/openspades#on-unixes-from-source -[source] -git = "https://github.com/yvt/openspades" -[build] -template = "cmake" -dependencies = [ - "glew", - "openssl1", - "sdl2", - "sdl2-image", - "freealut", - "freetype2", - "opus", - "opusfile", - "libjpeg", - "openal", -] diff --git a/recipes/wip/nonfree/games/zerospades/recipe.toml b/recipes/wip/nonfree/games/zerospades/recipe.toml deleted file mode 100644 index 369eedf8c..000000000 --- a/recipes/wip/nonfree/games/zerospades/recipe.toml +++ /dev/null @@ -1,18 +0,0 @@ -#TODO not compiled or tested -# build instructions: https://github.com/yvt/openspades#on-unixes-from-source -[source] -git = "https://github.com/siecvi/zerospades" -[build] -template = "cmake" -dependencies = [ - "glew", - "openssl1", - "sdl2", - "sdl2-image", - "freealut", - "freetype2", - "opus", - "opusfile", - "libjpeg", - "openal", -] diff --git a/recipes/wip/office/letters/recipe.toml b/recipes/wip/office/letters/recipe.toml new file mode 100644 index 000000000..4bd7b8220 --- /dev/null +++ b/recipes/wip/office/letters/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies +[source] +tar = "https://codeberg.org/eyekay/letters/archive/0.2.0.tar.gz" +[build] +template = "meson" diff --git a/recipes/wip/other/termplay/recipe.sh b/recipes/wip/other/termplay/recipe.sh deleted file mode 100644 index e52a05f01..000000000 --- a/recipes/wip/other/termplay/recipe.sh +++ /dev/null @@ -1,2 +0,0 @@ -GIT=https://github.com/jD91mZM2/termplay.git -CARGOFLAGS="--no-default-features --features bin,termion" diff --git a/recipes/wip/players/clapper/recipe.toml b/recipes/wip/players/clapper/recipe.toml new file mode 100644 index 000000000..cd55fd658 --- /dev/null +++ b/recipes/wip/players/clapper/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Rafostar/clapper" +rev = "0.10.0" +shallow_clone = true +[build] +template = "meson" +mesonflags = [ + "-Dclapper=enabled", + "-Dclapper-gtk=enabled", + "-Dclapper-app=disabled", + "-Dintrospection=disabled", + "-Denhancers-loader=disabled", +] \ No newline at end of file diff --git a/recipes/wip/players/cosmic-player/recipe.toml b/recipes/wip/players/cosmic-player/recipe.toml index c876bf143..db1b55046 100644 --- a/recipes/wip/players/cosmic-player/recipe.toml +++ b/recipes/wip/players/cosmic-player/recipe.toml @@ -25,8 +25,8 @@ DYNAMIC_INIT -C link-args="-lgmodule-2.0 -lffi -liconv -lpcre2-8 -lz" mkdir -pv "${COOKBOOK_STAGE}/usr/bin/" cp -v "target/${TARGET}/release/cosmic-player" "${COOKBOOK_STAGE}/usr/bin/" -mkdir -pv "${COOKBOOK_STAGE}/ui/apps/" -cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/cosmic-player" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/ui/apps/" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/usr/share/ui/apps/cosmic-player" #TODO: install with just? APPID="com.system76.CosmicPlayer" mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" diff --git a/recipes/wip/players/podcasts/recipe.toml b/recipes/wip/players/podcasts/recipe.toml new file mode 100644 index 000000000..fdc60a2bc --- /dev/null +++ b/recipes/wip/players/podcasts/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/World/podcasts" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "gtk4", + "gstreamer", + "libadwaita", +] diff --git a/recipes/wip/recorders/obs-studio/recipe.toml b/recipes/wip/recorders/obs-studio/recipe.toml index 9a2e6556c..0cef38d5d 100644 --- a/recipes/wip/recorders/obs-studio/recipe.toml +++ b/recipes/wip/recorders/obs-studio/recipe.toml @@ -2,9 +2,14 @@ #TODO discover minimum dependencies from cmake log # build instructions: https://github.com/obsproject/obs-studio/wiki/Building-OBS-Studio [source] -tar = "https://github.com/obsproject/obs-studio/releases/download/32.0.2/OBS-Studio-32.0.2-Sources.tar.gz" +tar = "https://github.com/obsproject/obs-studio/releases/download/32.0.4/OBS-Studio-32.0.4-Sources.tar.gz" [build] template = "cmake" +cmakeflags = [ + "-DENABLE_UI=OFF", + "-DENABLE_SCRIPTING=OFF", + "-DENABLE_HEVC=OFF", +] # dependencies = [ # "boost", # "librsvg", diff --git a/recipes/wip/search/fzf/recipe.toml b/recipes/wip/search/fzf/recipe.toml new file mode 100644 index 000000000..9340f1f1b --- /dev/null +++ b/recipes/wip/search/fzf/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for gnu make: https://github.com/junegunn/fzf/blob/master/BUILD.md +[source] +git = "https://github.com/junegunn/fzf" +rev = "v0.67.0" +shallow_clone = true +[build] +template = "custom" +dev-dependencies = ["host:go"] diff --git a/recipes/wip/security/authenticator/recipe.toml b/recipes/wip/security/authenticator/recipe.toml new file mode 100644 index 000000000..78dd7f912 --- /dev/null +++ b/recipes/wip/security/authenticator/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/World/Authenticator" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "gstreamer", + "gobject-introspection", +] diff --git a/recipes/wip/services/busd/recipe.toml b/recipes/wip/services/busd/recipe.toml index 4976b0e8a..29c15e627 100644 --- a/recipes/wip/services/busd/recipe.toml +++ b/recipes/wip/services/busd/recipe.toml @@ -1,6 +1,6 @@ #TODO not compiled or tested [source] git = "https://github.com/jackpot51/busd" - +shallow_clone = true [build] template = "cargo" diff --git a/recipes/wip/services/coppwr/recipe.toml b/recipes/wip/services/coppwr/recipe.toml index ba04da96e..c6cd038b6 100644 --- a/recipes/wip/services/coppwr/recipe.toml +++ b/recipes/wip/services/coppwr/recipe.toml @@ -1,6 +1,7 @@ -#TODO make pipewire work +#TODO not compiled or tested [source] git = "https://github.com/dimtpap/coppwr" +shallow_clone = true [build] template = "cargo" dependencies = [ diff --git a/recipes/wip/services/elogind/recipe.toml b/recipes/wip/services/elogind/recipe.toml new file mode 100644 index 000000000..b8f714b22 --- /dev/null +++ b/recipes/wip/services/elogind/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/elogind/elogind" +rev = "V255.22" +shallow_clone = true +[build] +template = "meson" +mesonflags = [ + "-Dmode=release", + "-Dtranslations=false", + "-Dtests=false", +] +dependencies = [ + "libeudev", + "libcap", +] diff --git a/recipes/wip/services/eudev/recipe.toml b/recipes/wip/services/eudev/recipe.toml index bdc920c78..f52a1d9ce 100644 --- a/recipes/wip/services/eudev/recipe.toml +++ b/recipes/wip/services/eudev/recipe.toml @@ -1,4 +1,4 @@ -#TODO compilation error - POSIX header not found +#TODO compilation error: POSIX header not found [source] tar = "https://github.com/eudev-project/eudev/releases/download/v3.2.14/eudev-3.2.14.tar.gz" [build] diff --git a/recipes/wip/services/hickory-dns/recipe.toml b/recipes/wip/services/hickory-dns/recipe.toml index b7ab38fd5..90d6b11bb 100644 --- a/recipes/wip/services/hickory-dns/recipe.toml +++ b/recipes/wip/services/hickory-dns/recipe.toml @@ -1,12 +1,14 @@ #TODO compiled but not tested [source] git = "https://github.com/hickory-dns/hickory-dns" +shallow_clone = true [build] template = "custom" dependencies = [ - "openssl1", + "openssl3", ] script = """ +DYNAMIC_INIT binary=hickory-dns "${COOKBOOK_CARGO}" build \ --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ diff --git a/recipes/wip/services/jack/recipe.toml b/recipes/wip/services/jack/recipe.toml index 1e5dccd8a..2ddc233d9 100644 --- a/recipes/wip/services/jack/recipe.toml +++ b/recipes/wip/services/jack/recipe.toml @@ -1,8 +1,8 @@ -#TODO missing script for waf -#TODO discover how to build -#TODO discover if it has external dependencies +#TODO missing cross-compilation script for waf +#TODO determine minimum dependencies [source] git = "https://github.com/jackaudio/jack2" -rev = "4f58969432339a250ce87fe855fb962c67d00ddb" +rev = "v1.9.22" +shallow_clone = true [build] template = "custom" diff --git a/recipes/wip/services/lemurs/recipe.toml b/recipes/wip/services/lemurs/recipe.toml index ca1aa08c2..cd16956de 100644 --- a/recipes/wip/services/lemurs/recipe.toml +++ b/recipes/wip/services/lemurs/recipe.toml @@ -1,6 +1,15 @@ -#TODO missing script for configuration, see https://github.com/coastalwhite/lemurs#compiling-from-source +#TODO not compiled or tested [source] git = "https://github.com/coastalwhite/lemurs" -rev = "37963b8ff6945ae8bdbabee658e5e36d0f67b84a" [build] template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo +mkdir -pv "${COOKBOOK_STAGE}/etc/lemurs" +mkdir -pv "${COOKBOOK_STAGE}/etc/rustysd/system" +mkdir -pv "${COOKBOOK_STAGE}/etc/pam.d" +cp -rv "${COOKBOOK_SOURCE}"/extra/{config.toml,xsetup.sh} "${COOKBOOK_STAGE}/etc/lemurs" +cp -rv "${COOKBOOK_SOURCE}"/extra/lemurs.service "${COOKBOOK_STAGE}/etc/rustysd/system" +cp -rv "${COOKBOOK_SOURCE}"/extra/lemurs.pam "${COOKBOOK_STAGE}/etc/pam.d/lemurs" +""" diff --git a/recipes/wip/services/limine/recipe.toml b/recipes/wip/services/limine/recipe.toml index e1c428612..ca4084b24 100644 --- a/recipes/wip/services/limine/recipe.toml +++ b/recipes/wip/services/limine/recipe.toml @@ -1,4 +1,5 @@ -#TODO maybe wrong template, see https://github.com/limine-bootloader/limine#building-the-bootloader +#TODO not compiled or tested +# build instructions: https://github.com/limine-bootloader/limine#building-the-bootloader [source] tar = "https://github.com/limine-bootloader/limine/releases/download/v7.2.0/limine-7.2.0.tar.xz" [build] diff --git a/recipes/wip/services/ntpd-rs/recipe.toml b/recipes/wip/services/ntpd-rs/recipe.toml index 888a9392e..1ca8496ed 100644 --- a/recipes/wip/services/ntpd-rs/recipe.toml +++ b/recipes/wip/services/ntpd-rs/recipe.toml @@ -1,9 +1,13 @@ -#TODO program source code error -#TODO configure the service +#TODO not compiled or tested +#TODO configure the service: https://docs.ntpd-rs.pendulum-project.org/guide/installation/#running-as-a-system-service [source] git = "https://github.com/pendulum-project/ntpd-rs" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages ntpd +mkdir -pv "${COOKBOOK_STAGE}/etc/ntpd-rs" +cp -rv "${COOKBOOK_SOURCE}"/docs/examples/conf/ntp.toml.default "${COOKBOOK_STAGE}/etc/ntpd-rs/ntp.toml" """ diff --git a/recipes/wip/services/pipewire/recipe.toml b/recipes/wip/services/pipewire/recipe.toml index 9e42dc400..ea85fd534 100644 --- a/recipes/wip/services/pipewire/recipe.toml +++ b/recipes/wip/services/pipewire/recipe.toml @@ -2,6 +2,19 @@ # build instructions: https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/INSTALL.md [source] git = "https://gitlab.freedesktop.org/pipewire/pipewire" -rev = "4debdcd40b055b3eaa83a8f4443aa990ea566bfe" +branch = "1.4" +shallow_clone = true [build] template = "meson" +mesonflags = [ + "-Dtests=disabled", + "-Dpipewire-jack=disabled", + "-Dpipewire-v4l2=disabled", + "-Dspa-plugins=disabled", + "-Ddbus=disabled", + "-Dflatpak=disabled", +] +dependencies = [ + "libpulse", + "sdl2", +] diff --git a/recipes/wip/services/qpwgraph/recipe.toml b/recipes/wip/services/qpwgraph/recipe.toml index 99df5ae37..b1dd08c4e 100644 --- a/recipes/wip/services/qpwgraph/recipe.toml +++ b/recipes/wip/services/qpwgraph/recipe.toml @@ -1,11 +1,16 @@ #TODO not compiled or tested +#TODO determine minimum dependencies from cmake log # build instructions: https://gitlab.freedesktop.org/rncbc/qpwgraph#building [source] git = "https://gitlab.freedesktop.org/rncbc/qpwgraph" -rev = "9fead6eff8c5831d66f618b2e8e195c94d5c22e6" +rev = "v0.9.8" [build] template = "cmake" -dependencies = [ - "qt6-base", - "pipewire", +cmakeflags = [ + "-DCONFIG_ALSA_MIDI=0", + "-DCONFIG_SYSTEM_TRAY=0", ] +#dependencies = [ +# "qt6-base", +# "pipewire", +#] diff --git a/recipes/wip/services/runst/recipe.toml b/recipes/wip/services/runst/recipe.toml index f57603ae5..82fcee951 100644 --- a/recipes/wip/services/runst/recipe.toml +++ b/recipes/wip/services/runst/recipe.toml @@ -1,13 +1,10 @@ #TODO not compiled or tested [source] git = "https://github.com/orhun/runst" +shallow_clone = true [build] -template = "custom" +template = "cargo" dependencies = [ "glib", "pango", ] -script = """ -DYNAMIC_INIT -cookbook_cargo -""" diff --git a/recipes/wip/services/seatd/recipe.toml b/recipes/wip/services/seatd/recipe.toml index 65b6f5cd0..6bca5f047 100644 --- a/recipes/wip/services/seatd/recipe.toml +++ b/recipes/wip/services/seatd/recipe.toml @@ -1,7 +1,10 @@ #TODO not compiled or tested -# lacking build instructions [source] -git = "https://git.sr.ht/~kennylevinsen/seatd" -rev = "3e9ef69f14f630a719dd464f3c90a7932f1c8296" +git = "https://github.com/jackpot51/seatd" +branch = "redox" + [build] template = "meson" +mesonflags = [ + "-Dman-pages=disabled", +] diff --git a/recipes/wip/services/wireplumber/recipe.toml b/recipes/wip/services/wireplumber/recipe.toml index cbac08ad7..80a9c0a4c 100644 --- a/recipes/wip/services/wireplumber/recipe.toml +++ b/recipes/wip/services/wireplumber/recipe.toml @@ -1,12 +1,12 @@ #TODO not compiled or tested -# build instructions: https://pipewire.pages.freedesktop.org/wireplumber/installing-wireplumber.html +#TODO discover minimum dependencies from cmake log [source] git = "https://gitlab.freedesktop.org/pipewire/wireplumber" -rev = "d3eb77b292655cef333a8f4cab4e861415bc37c2" +rev = "0.5.13" +shallow_clone = true [build] template = "meson" -dependencies = [ - "pipewire", - "glib", - "lua54", +mesonflags = [ + "-Dtests=false", + "-Ddbus-tests=false", ] diff --git a/recipes/wip/shells/fish-shell/recipe.toml b/recipes/wip/shells/fish-shell/recipe.toml index 4ef60fe76..1327a0519 100644 --- a/recipes/wip/shells/fish-shell/recipe.toml +++ b/recipes/wip/shells/fish-shell/recipe.toml @@ -1,5 +1,4 @@ -# WIP: Builds, runs, but hangs on waitpid - +#TODO: Install share/completion files [source] git = "https://github.com/fish-shell/fish-shell" rev = "54e8ad7e90a8213c01ba58de0640223bee6846d6" diff --git a/recipes/wip/shells/zsh/recipe.toml b/recipes/wip/shells/zsh/recipe.toml index 572f979a4..f8a67cd57 100644 --- a/recipes/wip/shells/zsh/recipe.toml +++ b/recipes/wip/shells/zsh/recipe.toml @@ -1,4 +1,4 @@ -#TODO: Buggy, can't return after running commands +#TODO: spammy getrusage() warning, or need times() support [source] tar = "https://github.com/zsh-users/zsh/archive/refs/tags/zsh-5.9.tar.gz" blake3 = "a15b94fae03e87aba6fc6a27df3c98e610b85b0c7c0fc90248f07fdcb8816860" diff --git a/recipes/wip/sound/ardour/recipe.toml b/recipes/wip/sound/ardour/recipe.toml deleted file mode 100644 index d6872830e..000000000 --- a/recipes/wip/sound/ardour/recipe.toml +++ /dev/null @@ -1,77 +0,0 @@ -#TODO make the dependencies work -#TODO missing script for the waf build system, see https://ardour.org/building_linux.html -[source] -tar = "https://community.ardour.org/download?architecture=x86_64&type=source" -[build] -template = "custom" -dependencies = [ - "atk", - "aubio", - "boost", - "fftw", - "freetype2", - "gdk-pixbuf", - "glib", - "gnome2-common", - "gobject-introspection", - "gtk-engines", - "gtk2", - "gtkmm", - "harfbuzz", - "itstool", - "libarchive", - "libiconv", - "libogg", - "libsamplerate", - "libsndfile", - "libusb", - "libwebsockets", - "libxslt", - "lrdf", - "nss-pem", - "pango", - "pcre", - "libraptor2", - "rdflib", - "redland", - "serd", - "sratom", - "taglib", - "termcap", - "util-linux", - "vamp-plugin-sdk", - "zlib", - "atkmm", - "cairo", - "cppunit", - "expat", - "libflac", - "fontconfig", - "fribidi", - "gettext", - "glibmm", - "gnome-doc-utils", - "gtk-doc", - "intltool", - "libjpeg", - "libffi", - "liblo", - "libpng", - "libsigc++", - "libtool", - "libvorbis", - "libxml2", - "lilv", - "lv2", - "nss-nspr", - "opus", - "pangomm", - "pixman", - "librasqal", - "readline", - "rubberband", - "sord", - "suil", - "libtiff", - "xz", -] diff --git a/recipes/wip/sound/audacity/recipe.toml b/recipes/wip/sound/audacity/recipe.toml index 22ed13cfa..bceea2740 100644 --- a/recipes/wip/sound/audacity/recipe.toml +++ b/recipes/wip/sound/audacity/recipe.toml @@ -1,11 +1,17 @@ #TODO not compiled or tested +#TODO determine minimum dependencies from cmake log # build instructions: https://github.com/audacity/audacity/blob/master/BUILDING.md -# use the GTK2 or wxWidgets frontend? [source] -tar = "https://github.com/audacity/audacity/releases/download/Audacity-3.7.5/audacity-sources-3.7.5.tar.gz" +tar = "https://github.com/audacity/audacity/releases/download/Audacity-3.7.7/audacity-sources-3.7.7.tar.gz" [build] template = "cmake" -dependencies = [ - "gtk2", - "libuuid", +cmakeflags = [ + "-Daudacity_conan_enabled=Off", + "-Daudacity_has_tests=Off", + "-Daudacity_has_updates_check=Off", + "-Daudacity_has_vst3=Off", + "-Daudacity_has_crashreports=Off", ] +#dependencies = [ +# "libuuid", +#] diff --git a/recipes/wip/sound/cava/recipe.toml b/recipes/wip/sound/cava/recipe.toml deleted file mode 100644 index 8dbe726f0..000000000 --- a/recipes/wip/sound/cava/recipe.toml +++ /dev/null @@ -1,14 +0,0 @@ -#TODO make the fftw dependency work -[source] -git = "https://github.com/karlstav/cava" -rev = "81211e9e16302312ee4322a99840c110bce0e13d" -[build] -template = "custom" -dependencies = [ - "ncurses", - "fftw", -] -script = """ -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" -cookbook_configure -""" diff --git a/recipes/wip/sound/daw/ardour/recipe.toml b/recipes/wip/sound/daw/ardour/recipe.toml new file mode 100644 index 000000000..0f3e6b1fb --- /dev/null +++ b/recipes/wip/sound/daw/ardour/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for waf: https://ardour.org/building_linux.html +#TODO discover minimum dependencies from waf log +[source] +git = "https://git.ardour.org/ardour/ardour" +rev = "9.0" +shallow_clone = true +[build] +template = "custom" diff --git a/recipes/wip/sound/daw/lmms/recipe.toml b/recipes/wip/sound/daw/lmms/recipe.toml new file mode 100644 index 000000000..5542c5e2a --- /dev/null +++ b/recipes/wip/sound/daw/lmms/recipe.toml @@ -0,0 +1,40 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from cmake log +# build instructions: https://github.com/LMMS/lmms/wiki/Compiling#build-environment +[source] +git = "https://github.com/LMMS/lmms" +shallow_clone = true +[build] +template = "cmake" +cmakeflags = [ + "-DWANT_ALSA=OFF", + "-DWANT_OSS=OFF", + "-DWANT_CALF=OFF", + "-DWANT_CAPS=OFF", + "-DWANT_CARLA=OFF", + "-DWANT_CMT=OFF", + "-DWANT_JACK=OFF", + "-DWANT_LV2=OFF", + "-DWANT_SUIL=OFF", + "-DWANT_PULSEAUDIO=OFF", + "-DWANT_PORTAUDIO=OFF", + "-DWANT_SNDIO=OFF", + "-DWANT_SOUNDIO=OFF", + "-DWANT_SF2=OFF", + "-DWANT_GIG=OFF", + "-DWANT_SID=OFF", + "-DWANT_STK=OFF", + "-DWANT_SWH=OFF", + "-DWANT_TAP=OFF", + "-DWANT_VST=OFF", +] +#dependencies = [ +# "qt5-base", +# "libsamplerate", +# "libvorbis", +# "libogg", +# "sdl2", +# "fftw", +# "libstk", +# "fltk", +#] diff --git a/recipes/wip/sound/tek/recipe.toml b/recipes/wip/sound/daw/tek/recipe.toml similarity index 100% rename from recipes/wip/sound/tek/recipe.toml rename to recipes/wip/sound/daw/tek/recipe.toml diff --git a/recipes/wip/sound/easy-effects/recipe.toml b/recipes/wip/sound/easy-effects/recipe.toml index adc0d59d7..9526a4451 100644 --- a/recipes/wip/sound/easy-effects/recipe.toml +++ b/recipes/wip/sound/easy-effects/recipe.toml @@ -1,15 +1,18 @@ -#TODO missing dependencies - https://github.com/wwmm/easyeffects#effects-available -#TODO build instructions - https://github.com/wwmm/easyeffects/wiki/Installation-from-Source +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +# dependencies: https://github.com/wwmm/easyeffects#effects-available +# build instructions: https://github.com/wwmm/easyeffects/wiki/Installation-from-Source [source] git = "https://github.com/wwmm/easyeffects" -rev = "4c35ba8c385723fdefc81ad8fcb816eb965fe1d8" +rev = "v8.1.2" +shallow_clone = true [build] -template = "custom" -dependencies = [ - "libsamplerate", - "libsndfile", - "fftw", - "speexdsp", - "nohnmann-json", - "tbb", -] +template = "cmake" +#dependencies = [ +# "libsamplerate", +# "libsndfile", +# "fftw", +# "speexdsp", +# "nohnmann-json", +# "tbb", +#] diff --git a/recipes/wip/sound/chuck/recipe.toml b/recipes/wip/sound/lang/chuck/recipe.toml similarity index 61% rename from recipes/wip/sound/chuck/recipe.toml rename to recipes/wip/sound/lang/chuck/recipe.toml index 630ae1d66..948ed2d5f 100644 --- a/recipes/wip/sound/chuck/recipe.toml +++ b/recipes/wip/sound/lang/chuck/recipe.toml @@ -1,9 +1,9 @@ -#TODO missing script for "make", see https://github.com/ccrma/chuck#linux +#TODO missing script for gnu make: https://github.com/ccrma/chuck#linux [source] tar = "https://chuck.cs.princeton.edu/release/files/chuck-1.5.1.3.tgz" [build] template = "custom" dependencies = [ - "pulseaudio", + "libpulse", "libsndfile", ] diff --git a/recipes/wip/sound/glicol/recipe.toml b/recipes/wip/sound/lang/glicol/recipe.toml similarity index 64% rename from recipes/wip/sound/glicol/recipe.toml rename to recipes/wip/sound/lang/glicol/recipe.toml index e034e74a2..b256b1895 100644 --- a/recipes/wip/sound/glicol/recipe.toml +++ b/recipes/wip/sound/lang/glicol/recipe.toml @@ -1,10 +1,12 @@ #TODO failed to find output device [source] git = "https://github.com/glicol/glicol-cli" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo mkdir -pv "${COOKBOOK_STAGE}"/usr/share/glicol -cp -rv "${COOKBOOK_SOURCE}"/{test.glicol,test2.glicol} "${COOKBOOK_STAGE}"/usr/share/glicol +cp -rv "${COOKBOOK_SOURCE}"/*.glicol "${COOKBOOK_STAGE}"/usr/share/glicol """ diff --git a/recipes/wip/sound/libpulse/recipe.toml b/recipes/wip/sound/libpulse/recipe.toml index 40a962cd1..59048a407 100644 --- a/recipes/wip/sound/libpulse/recipe.toml +++ b/recipes/wip/sound/libpulse/recipe.toml @@ -5,7 +5,11 @@ tar = "https://freedesktop.org/software/pulseaudio/releases/pulseaudio-17.0.tar. [build] template = "meson" mesonflags = [ - "-Ddaemon=false" + "-Ddaemon=false", + "-Ddoxygen=disabled", + "-Dman=false", + "-Dtests=disabled", + "-Drunning-from-build-tree=false", ] dependencies = [ "libsndfile", diff --git a/recipes/wip/sound/lmms/recipe.toml b/recipes/wip/sound/lmms/recipe.toml deleted file mode 100644 index 7f3328818..000000000 --- a/recipes/wip/sound/lmms/recipe.toml +++ /dev/null @@ -1,17 +0,0 @@ -#TODO not compiled or tested -# build instructions: https://github.com/LMMS/lmms/wiki/Compiling#build-environment -[source] -git = "https://github.com/LMMS/lmms" -rev = "807751dc4dce53583ecf4140b67a5dc343c789a7" -[build] -template = "cmake" -dependencies = [ - "qt5-base", - "libsamplerate", - "libvorbis", - "libogg", - "sdl2", - "fftw", - "libstk", - "fltk", -] diff --git a/recipes/wip/sound/mixxx/recipe.toml b/recipes/wip/sound/mixxx/recipe.toml index 6d6121363..97845f531 100644 --- a/recipes/wip/sound/mixxx/recipe.toml +++ b/recipes/wip/sound/mixxx/recipe.toml @@ -1,27 +1,28 @@ #TODO not compiled or tested +#TODO discover minimum dependencies from cmake log # build instructions: https://github.com/mixxxdj/mixxx/wiki/Compiling%20on%20Linux -#TODO missing dependencies: https://github.com/mixxxdj/mixxx/blob/main/tools/debian_buildenv.sh [source] git = "https://github.com/mixxxdj/mixxx" branch = "2.5" +shallow_clone = true [build] template = "cmake" -dependencies = [ - "fftw", - "libflac", - "mesa", - "libhidapi", - "libmad", - "libopus", - "libopusfile", - "protobuf", - "qt6-base", - "qt6-svg", - "qt6-declarative", - "qt6-3d", - "librubberband", - "libsndfile", - "sqlite3", - "openssl1", - "portaudio", -] +#dependencies = [ +# "fftw", +# "libflac", +# "mesa", +# "libhidapi", +# "libmad", +# "libopus", +# "libopusfile", +# "protobuf", +# "qt6-base", +# "qt6-svg", +# "qt6-declarative", +# "qt6-3d", +# "librubberband", +# "libsndfile", +# "sqlite3", +# "openssl3", +# "portaudio", +#] diff --git a/recipes/wip/sound/music/metronome/recipe.toml b/recipes/wip/sound/music/metronome/recipe.toml new file mode 100644 index 000000000..92d213122 --- /dev/null +++ b/recipes/wip/sound/music/metronome/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/World/metronome" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "gstreamer", +] diff --git a/recipes/wip/sound/mpd/recipe.toml b/recipes/wip/sound/music/mpd/recipe.toml similarity index 66% rename from recipes/wip/sound/mpd/recipe.toml rename to recipes/wip/sound/music/mpd/recipe.toml index 1abb2718c..3c4b15c90 100644 --- a/recipes/wip/sound/mpd/recipe.toml +++ b/recipes/wip/sound/music/mpd/recipe.toml @@ -4,3 +4,9 @@ tar = "https://www.musicpd.org/download/mpd/0.24/mpd-0.24.6.tar.xz" [build] template = "meson" +mesonflags = [ + "-Ddocumentation=disabled", + "-Dhtml_manual=false", + "-Dmanpages=false", + "-Dlibfuzzer=false", +] \ No newline at end of file diff --git a/recipes/wip/sound/neothesia/recipe.toml b/recipes/wip/sound/music/neothesia/recipe.toml similarity index 82% rename from recipes/wip/sound/neothesia/recipe.toml rename to recipes/wip/sound/music/neothesia/recipe.toml index cf5f58de2..ff40c5d0a 100644 --- a/recipes/wip/sound/neothesia/recipe.toml +++ b/recipes/wip/sound/music/neothesia/recipe.toml @@ -1,8 +1,10 @@ #TODO midir crate error [source] git = "https://github.com/PolyMeilex/Neothesia" +shallow_clone = true [build] template = "custom" script = """ +DYNAMIC_INIT cookbook_cargo_packages neothesia """ diff --git a/recipes/wip/sound/music/tempo/recipe.toml b/recipes/wip/sound/music/tempo/recipe.toml new file mode 100644 index 000000000..6fae09e84 --- /dev/null +++ b/recipes/wip/sound/music/tempo/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tobagin/tempo" +rev = "v1.5.1" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", + "glib", + "json-glib", + "libgee", + "gstreamer", +] +dev-dependencies = ["host:blueprint"] diff --git a/recipes/wip/sound/euphonica/recipe.toml b/recipes/wip/sound/players/euphonica/recipe.toml similarity index 100% rename from recipes/wip/sound/euphonica/recipe.toml rename to recipes/wip/sound/players/euphonica/recipe.toml diff --git a/recipes/wip/sound/ncspot/recipe.toml b/recipes/wip/sound/players/ncspot/recipe.toml similarity index 100% rename from recipes/wip/sound/ncspot/recipe.toml rename to recipes/wip/sound/players/ncspot/recipe.toml diff --git a/recipes/wip/sound/rmpc/recipe.toml b/recipes/wip/sound/players/rmpc/recipe.toml similarity index 100% rename from recipes/wip/sound/rmpc/recipe.toml rename to recipes/wip/sound/players/rmpc/recipe.toml diff --git a/recipes/wip/sound/sonobus/recipe.toml b/recipes/wip/sound/sonobus/recipe.toml index 8b64a2faf..3153b7531 100644 --- a/recipes/wip/sound/sonobus/recipe.toml +++ b/recipes/wip/sound/sonobus/recipe.toml @@ -1,24 +1,18 @@ -#TODO make all dependencies work -#TODO workaround the ALSA and JACK dependencies -#TODO patch the install.sh to use the COOKBOOK_STAGE envivar -#TODO expose the cross-compilation environment variables to the build scripts -# build instructions - https://github.com/sonosaurus/sonobus/blob/main/linux/BUILDING.md +#TODO not compiled or tested +# build instructions: https://github.com/sonosaurus/sonobus/blob/main/linux/BUILDING.md [source] git = "https://github.com/sonosaurus/sonobus" +rev = "1.7.2" +shallow_clone = true [build] -template = "custom" -dependencies = [ - "libopus", - "freetype2", - "curl", - "libx11", - "libxinerama", - "libxrandr", - "libxext", - "libxcursor", -] -script = """ -COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/linux" -./build.sh -./install.sh -""" +template = "cmake" +#dependencies = [ +# "libopus", +# "freetype2", +# "curl", +# "libx11", +# "libxinerama", +# "libxrandr", +# "libxext", +# "libxcursor", +#] diff --git a/recipes/wip/sound/sonusmix/recipe.toml b/recipes/wip/sound/sonusmix/recipe.toml new file mode 100644 index 000000000..ae069220c --- /dev/null +++ b/recipes/wip/sound/sonusmix/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +# build instructions: https://codeberg.org/sonusmix/sonusmix#building-from-source +[source] +git = "https://codeberg.org/sonusmix/sonusmix" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "gtk4", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +mkdir -pv "${COOKBOOK_STAGE}/usr/share/{applications,icons}/" +cp -v "${COOKBOOK_SOURCE}/assets/org.sonusmix.Sonusmix.desktop" "${COOKBOOK_STAGE}/usr/share/applications/" +cp -v "${COOKBOOK_SOURCE}/assets/sonusmix.svg" "${COOKBOOK_STAGE}/usr/share/icons/" +""" diff --git a/recipes/wip/sound/soundux/recipe.toml b/recipes/wip/sound/soundux/recipe.toml new file mode 100644 index 000000000..7b12ec433 --- /dev/null +++ b/recipes/wip/sound/soundux/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Soundux/Soundux" +rev = "0.2.7" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "pipewire", + "libpulse", + "webkitgtk4", + "openssl3", + "libx11", + "libxi", + "libappindicator", +] diff --git a/recipes/wip/sound/viewer/cava/recipe.toml b/recipes/wip/sound/viewer/cava/recipe.toml new file mode 100644 index 000000000..d584f37bb --- /dev/null +++ b/recipes/wip/sound/viewer/cava/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/karlstav/cava" +rev = "0.10.7" +shallow_clone = true +script = """ +autotools_recursive_regenerate +""" +[build] +template = "configure" +dependencies = [ + "ncursesw", + "fftw", + "iniparser", +] diff --git a/recipes/wip/sound/cavasik/recipe.toml b/recipes/wip/sound/viewer/cavasik/recipe.toml similarity index 84% rename from recipes/wip/sound/cavasik/recipe.toml rename to recipes/wip/sound/viewer/cavasik/recipe.toml index 55e4e3ed3..96d612810 100644 --- a/recipes/wip/sound/cavasik/recipe.toml +++ b/recipes/wip/sound/viewer/cavasik/recipe.toml @@ -2,11 +2,12 @@ [source] git = "https://github.com/TheWisker/Cavasik" rev = "v3.2.0" +shallow_clone = true [build] template = "meson" +[package] dependencies = [ + "cava", "gtk4", "libadwaita", ] -[package] -dependencies = ["cava"] diff --git a/recipes/wip/sound/whis/recipe.toml b/recipes/wip/sound/whis/recipe.toml new file mode 100644 index 000000000..387c0dc03 --- /dev/null +++ b/recipes/wip/sound/whis/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/frankdierolf/whis" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "libvulkan", + "vulkan-headers", + "shaderc", +] +script = """ +DYNAMIC_INIT +cookbook_cargo_packages whis-cli +""" +[package] +dependencies = ["vulkan-tools"] diff --git a/recipes/wip/storage/ezio/recipe.toml b/recipes/wip/storage/ezio/recipe.toml new file mode 100644 index 000000000..07f617804 --- /dev/null +++ b/recipes/wip/storage/ezio/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tjjh89017/ezio" +rev = "v2.0.21" +[build] +template = "cmake" +dependencies = [ + "boost", + "libtorrent", + "protobuf", + "libspdlog", + "grpc", +] diff --git a/recipes/wip/terminal/alacritty/recipe.toml b/recipes/wip/terminal/alacritty/recipe.toml index f2cc85620..bf00edb14 100644 --- a/recipes/wip/terminal/alacritty/recipe.toml +++ b/recipes/wip/terminal/alacritty/recipe.toml @@ -1,24 +1,16 @@ -#TODO not compiled or tested +#TODO need to patch glutin [source] git = "https://github.com/alacritty/alacritty" +shallow_clone = true [build] -template = "custom" +template = "cargo" dependencies = [ "freetype2", "fontconfig", "libxcb", ] -script = """ -DYNAMIC_INIT -package=alacritty -"${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ - --package "${package}" \ - --release \ - --no-default-features \ - --features=x11 - mkdir -pv "${COOKBOOK_STAGE}/usr/bin" - cp -v \ - "target/${TARGET}/release/${package}" \ - "${COOKBOOK_STAGE}/usr/bin/${package}" -""" +cargopath = "alacritty" +cargoflags = [ + "--no-default-features", + "--features x11", +] diff --git a/recipes/wip/text/kibi/recipe.toml b/recipes/wip/text/kibi/recipe.toml index 828a42703..acca28231 100644 --- a/recipes/wip/text/kibi/recipe.toml +++ b/recipes/wip/text/kibi/recipe.toml @@ -1,6 +1,8 @@ #TODO promote [source] git = "https://github.com/ilai-deutel/kibi" +rev = "v0.3.2" + [build] template = "custom" script = """ diff --git a/recipes/wip/text/neovim/recipe.toml b/recipes/wip/text/neovim/recipe.toml index 8978c7ed2..b0379ef32 100644 --- a/recipes/wip/text/neovim/recipe.toml +++ b/recipes/wip/text/neovim/recipe.toml @@ -1,6 +1,9 @@ -#TODO mostly work, kinda slow, can't quit (signal issues?) +#TODO working with workarounds on SIGCHLD +#TODO no documentation [source] -tar = "https://github.com/neovim/neovim/archive/refs/tags/v0.11.3.tar.gz" +git = "https://github.com/neovim/neovim" +rev = "v0.11.5" +shallow_clone = true patches = [ "redox.patch" ] @@ -8,7 +11,6 @@ patches = [ [build] template = "custom" dependencies = [ - "luajit", "libiconv", "libuv", "luv", @@ -18,10 +20,35 @@ dependencies = [ "unibilium", "utf8proc", ] +dev-dependencies = [ + "host:luajit", + "host:neovim", +] script = """ DYNAMIC_INIT -cookbook_cmake \ - -DLUA_GEN_PRG=luajit + +# the only official way to cross compile in future is via zig +# https://github.com/neovim/neovim/issues/19579 +# the code path below is very hacky, and our zig support is poor yet + +COOKBOOK_CMAKE_FLAGS+=(-DLUA_GEN_PRG=luajit) +export DEPS_BUILD_DIR=$COOKBOOK_SYSROOT/usr +if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then +cookbook_cmake + +# needed to workaround bootstrapping process +cp ./lib/libnlua0.so ${COOKBOOK_STAGE}/usr/lib/nvim/ +patchelf --replace-needed \ + "${COOKBOOK_SYSROOT}/usr/lib/liblpeg.so" \ + 'liblpeg.so.1' ${COOKBOOK_STAGE}/usr/lib/nvim/libnlua0.so + +else + +# this is a very ugly workaround +cookbook_cmake || true +cp ${COOKBOOK_TOOLCHAIN}/usr/lib/nvim/libnlua0.so ./lib/libnlua0.so +cookbook_cmake +fi # Lpeg is absolute path https://github.com/neovim/neovim/issues/23395 patchelf --replace-needed \ diff --git a/recipes/wip/text/neovim/redox.patch b/recipes/wip/text/neovim/redox.patch index 30b3f7229..694ace266 100644 --- a/recipes/wip/text/neovim/redox.patch +++ b/recipes/wip/text/neovim/redox.patch @@ -1,7 +1,8 @@ -diff -ruwN source/runtime/CMakeLists.txt source-new/runtime/CMakeLists.txt ---- source/runtime/CMakeLists.txt 2025-07-13 01:34:12.000000000 +0700 -+++ source-new/runtime/CMakeLists.txt 2025-09-16 14:46:20.134790482 +0700 -@@ -24,37 +24,6 @@ +diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt +index d103b5f4..37d9444e 100644 +--- a/runtime/CMakeLists.txt ++++ b/runtime/CMakeLists.txt +@@ -24,37 +24,6 @@ add_custom_command(OUTPUT ${GENERATED_SYN_VIM} file(GLOB PACKAGES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/runtime/pack/dist/opt/*) @@ -39,7 +40,7 @@ diff -ruwN source/runtime/CMakeLists.txt source-new/runtime/CMakeLists.txt set(BUILDDOCFILES) foreach(DF ${DOCFILES}) get_filename_component(F ${DF} NAME) -@@ -65,8 +34,6 @@ +@@ -65,8 +34,6 @@ add_custom_command(OUTPUT ${GENERATED_HELP_TAGS} COMMAND ${CMAKE_COMMAND} -E remove_directory doc COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/runtime/doc doc @@ -48,7 +49,7 @@ diff -ruwN source/runtime/CMakeLists.txt source-new/runtime/CMakeLists.txt DEPENDS nvim_bin nvim_runtime_deps -@@ -78,7 +45,6 @@ +@@ -78,7 +45,6 @@ add_custom_target( DEPENDS ${GENERATED_SYN_VIM} ${GENERATED_HELP_TAGS} @@ -56,48 +57,22 @@ diff -ruwN source/runtime/CMakeLists.txt source-new/runtime/CMakeLists.txt ) # CMake is painful here. It will create the destination using the user's -@@ -88,10 +54,6 @@ +@@ -87,10 +53,6 @@ add_custom_target( + # seems like the best compromise. If we create it, then everyone can see it. # If it's preexisting, leave it alone. - install_helper( +-install_helper( - FILES ${GENERATED_HELP_TAGS} ${BUILDDOCFILES} - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/doc) - --install_helper( + install_helper( FILES ${GENERATED_SYN_VIM} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/syntax/vim) - -diff -ruwN source/src/nvim/channel.c source-new/src/nvim/channel.c ---- source/src/nvim/channel.c 2025-07-13 01:34:12.000000000 +0700 -+++ source-new/src/nvim/channel.c 2025-09-16 13:41:27.109978099 +0700 -@@ -547,8 +547,23 @@ - // Redirect stdout/stdin (the UI channel) to stderr. Use fnctl(F_DUPFD_CLOEXEC) instead of dup() - // to prevent child processes from inheriting the file descriptors, which are used by UIs to - // detect when Nvim exits. -+ #ifdef __redox__ -+ int new_stdin_fd = dup(STDIN_FILENO); -+ if (new_stdin_fd >= 0) { -+ fcntl(new_stdin_fd, F_SETFD, FD_CLOEXEC); -+ } -+ stdin_dup_fd = new_stdin_fd; -+ -+ // 2. Duplicate STDOUT and set CLOEXEC flag -+ int new_stdout_fd = dup(STDOUT_FILENO); -+ if (new_stdout_fd >= 0) { -+ fcntl(new_stdout_fd, F_SETFD, FD_CLOEXEC); -+ } -+ stdout_dup_fd = new_stdout_fd; -+ #else - stdin_dup_fd = fcntl(STDIN_FILENO, F_DUPFD_CLOEXEC, STDERR_FILENO + 1); - stdout_dup_fd = fcntl(STDOUT_FILENO, F_DUPFD_CLOEXEC, STDERR_FILENO + 1); -+ #endif // __redox__ - dup2(STDERR_FILENO, STDOUT_FILENO); - dup2(STDERR_FILENO, STDIN_FILENO); - } -diff -ruwN source/src/nvim/CMakeLists.txt source-new/src/nvim/CMakeLists.txt ---- source/src/nvim/CMakeLists.txt 2025-07-13 01:34:12.000000000 +0700 -+++ source-new/src/nvim/CMakeLists.txt 2025-09-16 16:07:40.327319085 +0700 -@@ -93,19 +93,6 @@ +diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt +index 4a8fe4c6..55a9ede1 100644 +--- a/src/nvim/CMakeLists.txt ++++ b/src/nvim/CMakeLists.txt +@@ -93,19 +93,6 @@ if(NOT MSVC) endif() # -fstack-protector breaks Mingw-w64 builds @@ -117,7 +92,7 @@ diff -ruwN source/src/nvim/CMakeLists.txt source-new/src/nvim/CMakeLists.txt # Compiler specific options if(MSVC) -@@ -145,9 +132,6 @@ +@@ -145,9 +132,6 @@ endif() # Platform specific options if(UNIX) target_link_libraries(main_lib INTERFACE m) @@ -127,9 +102,27 @@ diff -ruwN source/src/nvim/CMakeLists.txt source-new/src/nvim/CMakeLists.txt endif() if(CMAKE_SYSTEM_NAME MATCHES "Windows") -diff -ruwN source/src/nvim/os/os_defs.h source-new/src/nvim/os/os_defs.h ---- source/src/nvim/os/os_defs.h 2025-07-13 01:34:12.000000000 +0700 -+++ source-new/src/nvim/os/os_defs.h 2025-09-16 13:45:00.379142388 +0700 +diff --git a/src/nvim/main.c b/src/nvim/main.c +index 5c1e415c..fa6fa859 100644 +--- a/src/nvim/main.c ++++ b/src/nvim/main.c +@@ -698,6 +698,12 @@ void getout(int exitval) + assert(!ui_client_channel_id); + exiting = true; + ++ // parent doesn't notice SIGCHILD ++ pid_t ppid = getppid(); ++ if (ppid > 1) { ++ kill(ppid, SIGKILL); ++ } ++ + // make sure startuptimes have been flushed + time_finish(); + +diff --git a/src/nvim/os/os_defs.h b/src/nvim/os/os_defs.h +index db575e00..b42cee2a 100644 +--- a/src/nvim/os/os_defs.h ++++ b/src/nvim/os/os_defs.h @@ -28,6 +28,8 @@ #if !defined(NAME_MAX) && defined(_XOPEN_NAME_MAX) @@ -139,3 +132,24 @@ diff -ruwN source/src/nvim/os/os_defs.h source-new/src/nvim/os/os_defs.h #endif #define BASENAMELEN (NAME_MAX - 5) +diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c +index 7dff8a1b..ebc61542 100644 +--- a/src/nvim/os/shell.c ++++ b/src/nvim/os/shell.c +@@ -880,7 +880,16 @@ static int do_os_system(char **argv, const char *input, size_t len, char **outpu + MultiQueue *events = multiqueue_new_child(main_loop.events); + proc->events = events; + proc->argv = argv; ++#ifdef __redox__ ++ msg_puts("Shell execution is disabled until https://gitlab.redox-os.org/redox-os/redox/-/issues/1762 closed and this workaround removed\n"); ++ loop_poll_events(&main_loop, 0); ++ multiqueue_free(events); ++ return -1; ++ int status = -1; ++#else + int status = proc_spawn(proc, has_input, true, true); ++#endif ++ + if (status) { + loop_poll_events(&main_loop, 0); + // Failed, probably 'shell' is not executable. diff --git a/recipes/wip/text/read-it-later/recipe.toml b/recipes/wip/text/read-it-later/recipe.toml new file mode 100644 index 000000000..1511cd91a --- /dev/null +++ b/recipes/wip/text/read-it-later/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/World/read-it-later" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", + "glib", + "gdk-pixbuf", +] diff --git a/recipes/wip/text/sd/recipe.toml b/recipes/wip/text/sd/recipe.toml new file mode 100644 index 000000000..4ce32798c --- /dev/null +++ b/recipes/wip/text/sd/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/chmln/sd" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/text/sed-rs/recipe.toml b/recipes/wip/text/sed-rs/recipe.toml new file mode 100644 index 000000000..a1dea9b46 --- /dev/null +++ b/recipes/wip/text/sed-rs/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/pegasusheavy/sed-rs" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/text/t/recipe.toml b/recipes/wip/text/t/recipe.toml new file mode 100644 index 000000000..945186a78 --- /dev/null +++ b/recipes/wip/text/t/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/alecthomas/t" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/text/tylax/recipe.toml b/recipes/wip/text/tylax/recipe.toml new file mode 100644 index 000000000..fe86c7287 --- /dev/null +++ b/recipes/wip/text/tylax/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/scipenai/tylax" +[build] +template = "cargo" diff --git a/recipes/wip/text/typesetter/recipe.toml b/recipes/wip/text/typesetter/recipe.toml new file mode 100644 index 000000000..0b88f9844 --- /dev/null +++ b/recipes/wip/text/typesetter/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +[source] +git = "https://codeberg.org/haydn/typesetter" +[build] +template = "meson" diff --git a/recipes/wip/tools/cfait/recipe.toml b/recipes/wip/tools/cfait/recipe.toml new file mode 100644 index 000000000..838b7a130 --- /dev/null +++ b/recipes/wip/tools/cfait/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://codeberg.org/trougnouf/cfait" +[build] +template = "cargo" diff --git a/recipes/wip/tools/flameshot/recipe.toml b/recipes/wip/tools/flameshot/recipe.toml index 607a3b1f2..ee4f02445 100644 --- a/recipes/wip/tools/flameshot/recipe.toml +++ b/recipes/wip/tools/flameshot/recipe.toml @@ -1,12 +1,18 @@ #TODO not compiled or tested +#TODO determine minimum dependencies from cmake log # build instructions: https://flameshot.org/docs/installation/source-code/#compilation [source] git = "https://github.com/flameshot-org/flameshot" -rev = "70be63d478a271da549597d69bd4868607c0a395" +branch = "v13.3.0" +shallow_clone = true [build] template = "cmake" -dependencies = [ - "qt5-base", - "qt5-tools", - "qt5-svg", +cmakeflags = [ + "-DDISABLE_UPDATE_CHECKER=ON", + "-DBUILD_STATIC_LIBS=OFF", ] +#dependencies = [ +# "qt5-base", +# "qt5-tools", +# "qt5-svg", +#] diff --git a/recipes/wip/tools/itstool/recipe.toml b/recipes/wip/tools/itstool/recipe.toml index 15c9800ec..cbf08e99f 100644 --- a/recipes/wip/tools/itstool/recipe.toml +++ b/recipes/wip/tools/itstool/recipe.toml @@ -1,8 +1,5 @@ -#TODO require a Python module for libxml2 +#TODO compiling, not tested [source] tar = "http://files.itstool.org/itstool/itstool-2.0.7.tar.bz2" [build] template = "configure" -dependencies = [ - "libxml2", -] diff --git a/recipes/wip/tools/planify/recipe.toml b/recipes/wip/tools/planify/recipe.toml new file mode 100644 index 000000000..d5cf28a63 --- /dev/null +++ b/recipes/wip/tools/planify/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from meson log +[source] +git = "https://github.com/alainm23/planify" +rev = "v4.17.0" +[build] +template = "meson" +mesonflags = [ + "-Dwebkit=false", + "-Dportal=false", + "-Devolution=false", +] diff --git a/recipes/wip/tools/sd/recipe.toml b/recipes/wip/tools/sd/recipe.toml deleted file mode 100644 index 0cc6f03c0..000000000 --- a/recipes/wip/tools/sd/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO relibc function not implemented -[source] -git = "https://github.com/chmln/sd.git" -[build] -template = "cargo" diff --git a/recipes/wip/tools/sued/recipe.toml b/recipes/wip/tools/sued/recipe.toml index d88d7d6ad..9a39cb578 100644 --- a/recipes/wip/tools/sued/recipe.toml +++ b/recipes/wip/tools/sued/recipe.toml @@ -4,4 +4,4 @@ git = "https://codeberg.org/AeriaVelocity/sued" [build] template = "cargo" -cargoflags = "--features=repl,startup,history" +cargoflags = ["--features=repl,startup,history"] diff --git a/recipes/wip/vice/recipe.sh b/recipes/wip/vice/recipe.sh index 1f5a713e1..fc46f122e 100644 --- a/recipes/wip/vice/recipe.sh +++ b/recipes/wip/vice/recipe.sh @@ -26,7 +26,7 @@ function recipe_build { --disable-rs232 \ --disable-realdevice \ --disable-midi - "$REDOX_MAKE" -j"$($NPROC)" + "$REDOX_MAKE" -j"$COOKBOOK_MAKE_JOBS" skip=1 } diff --git a/recipes/wip/video/camera/cosmic-ext-camera/recipe.toml b/recipes/wip/video/camera/cosmic-ext-camera/recipe.toml new file mode 100644 index 000000000..0ff2af7fa --- /dev/null +++ b/recipes/wip/video/camera/cosmic-ext-camera/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/cosmic-utils/camera" +shallow_clone = true +[build] +template = "cargo" +dependencies = [ + "gstreamer", +] diff --git a/recipes/wip/video/webcam/tuicam/recipe.toml b/recipes/wip/video/camera/tuicam/recipe.toml similarity index 100% rename from recipes/wip/video/webcam/tuicam/recipe.toml rename to recipes/wip/video/camera/tuicam/recipe.toml diff --git a/recipes/wip/video/webcam/webcamoid/recipe.toml b/recipes/wip/video/camera/webcamoid/recipe.toml similarity index 100% rename from recipes/wip/video/webcam/webcamoid/recipe.toml rename to recipes/wip/video/camera/webcamoid/recipe.toml diff --git a/recipes/wip/video/editors/video-trimmer/recipe.toml b/recipes/wip/video/editors/video-trimmer/recipe.toml new file mode 100644 index 000000000..3c60d653d --- /dev/null +++ b/recipes/wip/video/editors/video-trimmer/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/YaLTeR/video-trimmer" +[build] +template = "meson" +dependencies = [ + "gtk4", + "ffmpeg6", + "gstreamer", +] diff --git a/recipes/wip/video/other/jerry/recipe.toml b/recipes/wip/video/other/jerry/recipe.toml index d5c65c755..df199fc5c 100644 --- a/recipes/wip/video/other/jerry/recipe.toml +++ b/recipes/wip/video/other/jerry/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing fzf dependency: https://github.com/junegunn/fzf +#TODO fix fzf dependency [source] git = "https://github.com/justchokingaround/jerry" +shallow_clone = true [build] template = "custom" script = """ diff --git a/recipes/wip/video/other/trimmeroni/recipe.toml b/recipes/wip/video/other/trimmeroni/recipe.toml index 2666aa2d9..48244b7ab 100644 --- a/recipes/wip/video/other/trimmeroni/recipe.toml +++ b/recipes/wip/video/other/trimmeroni/recipe.toml @@ -1,5 +1,5 @@ #TODO compiled but not tested [source] -git = "https://github.com/outfrost/trimmeroni" +git = "https://codeberg.org/outfrost/trimmeroni" [build] template = "cargo" diff --git a/recipes/wip/video/webcam/clipqr/recipe.toml b/recipes/wip/video/webcam/clipqr/recipe.toml deleted file mode 100644 index 25da03fd6..000000000 --- a/recipes/wip/video/webcam/clipqr/recipe.toml +++ /dev/null @@ -1,8 +0,0 @@ -#TODO missing script for go -#TODO determine dependencies -# build instructions - https://gitlab.com/imatt-foss/clipqr#build -[source] -git = "https://gitlab.com/imatt-foss/clipqr" -rev = "400a98c302aead3f2b1b81ec6dc45d654c8bf209" -[build] -template = "custom" diff --git a/recipes/wip/wayland/cosmic-app-library/recipe.toml b/recipes/wip/wayland/cosmic-app-library/recipe.toml new file mode 100644 index 000000000..e5c98ac74 --- /dev/null +++ b/recipes/wip/wayland/cosmic-app-library/recipe.toml @@ -0,0 +1,16 @@ +[source] +git = "https://github.com/jackpot51/cosmic-app-library" +branch = "redox" + +[build] +template = "custom" +dependencies = [ + "gettext", + "libwayland", + "libxkbcommon", +] +script = """ +DYNAMIC_INIT +export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr" +cookbook_cargo --no-default-features +""" diff --git a/recipes/wip/wayland/cosmic-comp/recipe.toml b/recipes/wip/wayland/cosmic-comp/recipe.toml new file mode 100644 index 000000000..9e587bea5 --- /dev/null +++ b/recipes/wip/wayland/cosmic-comp/recipe.toml @@ -0,0 +1,20 @@ +#TODO: performance issues, no keyboard input +[source] +git = "https://github.com/jackpot51/cosmic-comp" +branch = "redox" + +[build] +template = "custom" +dependencies = [ + "libffi", + #TODO: requires evdev and some udev implementation: "libinput", + "libwayland", + "libxkbcommon", + "mesa", + "pixman", + "seatd", +] +script = """ +DYNAMIC_INIT +cookbook_cargo --no-default-features --config 'profile.release.lto = "thin"' +""" diff --git a/recipes/wip/wayland/cosmic-panel/recipe.toml b/recipes/wip/wayland/cosmic-panel/recipe.toml new file mode 100644 index 000000000..c7a78f4bc --- /dev/null +++ b/recipes/wip/wayland/cosmic-panel/recipe.toml @@ -0,0 +1,22 @@ +[source] +git = "https://github.com/jackpot51/cosmic-panel" +branch = "redox" + +[build] +template = "custom" +dependencies = [ + "gettext", + #"libffi", + #TODO: requires evdev and some udev implementation: "libinput", + "libwayland", + "libxkbcommon", + #"mesa", + #"pixman", + #"seatd", +] +script = """ +DYNAMIC_INIT +export GETTEXT_DIR="${COOKBOOK_SYSROOT}/usr" +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/cosmic-panel-bin" +cookbook_cargo --no-default-features +""" diff --git a/recipes/wip/wayland/iced-wayland/recipe.toml b/recipes/wip/wayland/iced-wayland/recipe.toml new file mode 100644 index 000000000..66e7a0a3e --- /dev/null +++ b/recipes/wip/wayland/iced-wayland/recipe.toml @@ -0,0 +1,14 @@ +[source] +git = "https://github.com/jackpot51/iced.git" +branch = "redox-wayland" + +[build] +dependencies = [ + "libwayland", + "libxkbcommon", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo_packages sctk_lazy +""" diff --git a/recipes/wip/wayland/libcosmic-wayland/recipe.toml b/recipes/wip/wayland/libcosmic-wayland/recipe.toml new file mode 100644 index 000000000..fd81d2b14 --- /dev/null +++ b/recipes/wip/wayland/libcosmic-wayland/recipe.toml @@ -0,0 +1,15 @@ +[source] +git = "https://github.com/jackpot51/libcosmic.git" +branch = "redox-wayland" + +[build] +dependencies = [ + "libwayland", + "libxkbcommon", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo_packages application +mv "${COOKBOOK_STAGE}/usr/bin/application" "${COOKBOOK_STAGE}/usr/bin/libcosmic-wayland_application" +""" diff --git a/recipes/wip/wayland/libwayland/redox.patch b/recipes/wip/wayland/libwayland/redox.patch index a292c32a9..43d275542 100644 --- a/recipes/wip/wayland/libwayland/redox.patch +++ b/recipes/wip/wayland/libwayland/redox.patch @@ -1,25 +1,3 @@ -diff -ruwN source-old/cursor/os-compatibility.c source/cursor/os-compatibility.c ---- source-old/cursor/os-compatibility.c 2025-07-06 06:11:26.000000000 -0600 -+++ source/cursor/os-compatibility.c 2025-11-13 13:00:31.354126754 -0700 -@@ -79,12 +79,18 @@ - #ifdef HAVE_MKOSTEMP - fd = mkostemp(tmpname, O_CLOEXEC); - if (fd >= 0) -+ fprintf(stderr, "ignoring unlink of %s\n", tmpname); -+ /*TODO: keep node around after unlink - unlink(tmpname); -+ */ - #else - fd = mkstemp(tmpname); - if (fd >= 0) { - fd = set_cloexec_or_close(fd); -+ fprintf(stderr, "ignoring unlink of %s\n", tmpname); -+ /*TODO: keep node around after unlink - unlink(tmpname); -+ */ - } - #endif - diff -ruwN source-old/meson.build source/meson.build --- source-old/meson.build 2025-07-06 06:11:26.000000000 -0600 +++ source/meson.build 2025-11-13 12:08:42.512612558 -0700 diff --git a/recipes/wip/wayland/smallvil/recipe.toml b/recipes/wip/wayland/smallvil/recipe.toml index dd1d203b7..bca7f5124 100644 --- a/recipes/wip/wayland/smallvil/recipe.toml +++ b/recipes/wip/wayland/smallvil/recipe.toml @@ -4,14 +4,12 @@ git = "https://github.com/jackpot51/smithay" branch = "redox" [build] -template = "custom" +template = "cargo" dependencies = [ "libffi", "libwayland", "libxkbcommon", ] -script = """ -DYNAMIC_INIT -export RUSTFLAGS="${RUSTFLAGS} -lffi" -cookbook_cargo_packages smallvil -""" +cargopackages = [ + "smallvil" +] diff --git a/recipes/wip/web/firefox-esr/mozconfig b/recipes/wip/web/firefox-esr/mozconfig index 8d2ce92d5..d5e1c48da 100644 --- a/recipes/wip/web/firefox-esr/mozconfig +++ b/recipes/wip/web/firefox-esr/mozconfig @@ -1,3 +1,24 @@ +mk_add_options MOZ_OBJDIR=COOKBOOK_BUILD +ac_add_options --target=TARGET +ac_add_options --disable-debug ac_add_options --disable-tests -ac_add_options --target="{TARGET}" -ac_add_options --enable-bootstrap +ac_add_options --disable-audio-backends +ac_add_options --disable-crashreporter +ac_add_options --disable-updater +ac_add_options --disable-dbus +ac_add_options --disable-gecko-profiler +ac_add_options --disable-profiling +ac_add_options --disable-dmd # dark matter detector +ac_add_options --without-wasm-sandboxed-libraries # need clang wasi + +# TODO: cairo-gtk3-x11-wayland or separate cairo-gtk3-wayland-only +ac_add_options --enable-default-toolkit=cairo-gtk3-x11-only +ac_add_options --enable-bootstrap=-clang # only use our clang +ac_add_options --enable-optimize +ac_add_options --with-system-nspr +ac_add_options --with-gl-provider=EGL + +export MOZ_REQUIRE_SIGNING= +export MOZ_TELEMETRY_REPORTING= +export CC="TARGET_CC" +export CXX="TARGET_CXX" diff --git a/recipes/wip/web/firefox-esr/recipe.toml b/recipes/wip/web/firefox-esr/recipe.toml index f27ac5e12..54947da88 100644 --- a/recipes/wip/web/firefox-esr/recipe.toml +++ b/recipes/wip/web/firefox-esr/recipe.toml @@ -1,31 +1,65 @@ -#TODO missing script for mach: https://firefox-source-docs.mozilla.org/setup/linux_build.html +#TODO patches for quinn-udp crate, switch into git fork +# mach: https://firefox-source-docs.mozilla.org/setup/linux_build.html # dependencies: https://packages.gentoo.org/packages/www-client/firefox/dependencies # feature flags: https://wiki.gentoo.org/wiki/Firefox#USE_flags [source] -tar = "https://ftp.mozilla.org/pub/firefox/releases/115.13.0esr/source/firefox-115.13.0esr.source.tar.xz" +tar = "https://ftp.mozilla.org/pub/firefox/releases/140.7.0esr/source/firefox-140.7.0esr.source.tar.xz" [build] template = "custom" dependencies = [ - "fontconfig", - "atk", - "cairo", + # "fontconfig", + # "atk", + # "cairo", "dbus", - "libffi", - "freetype2", - "gdk-pixbuf", - "glib", + # "libffi", + # "freetype2", + # "gdk-pixbuf", + # "glib", "gtk3", "pango", - "sqlite3", - "nss-nspr", - "startup-notification", - "zlib", - "ffmpeg6", - "expat", - "libepoxy", - "pipewire", + "libxkbcommon-x11", + "libice", + "mesa-x11", + "x11proto-kb", + "xcb-proto", + "xextproto", + "nspr", + "libxrandr", + "libsm", +# TODO: Should separate clang library and runtime + "clang21" + # "sqlite3", + # "nss-nspr", + # "startup-notification", + # "zlib", + # "ffmpeg6", + # "expat", + # "libepoxy", + # "pipewire", ] script = """ DYNAMIC_INIT -export MOZCONFIG="${COOKBOOK_RECIPE}/mozconfig" + +cat ${COOKBOOK_RECIPE}/mozconfig > mozconfig +sed -i "s|COOKBOOK_BUILD|${COOKBOOK_BUILD}|g" mozconfig +sed -i "s|TARGET_CC|${CC}|g" mozconfig +sed -i "s|TARGET_CXX|${CXX}|g" mozconfig +sed -i "s|TARGET|${TARGET}|g" mozconfig +export MOZCONFIG="${COOKBOOK_BUILD}/mozconfig" +export PYTHONDONTWRITEBYTECODE=1 +unset CC_WRAPPER +if [[ -z "$CI" ]]; then export MACH_NO_TERMINAL_FOOTER=1; fi; + +# clang-sys specifics +PREFIX_INCLUDE="$COOKBOOK_HOST_SYSROOT/$TARGET/include" +export CLANGFLAGS="-I $PREFIX_INCLUDE/c++/13.2.0 -I $PREFIX_INCLUDE/c++/13.2.0/$TARGET -I $PREFIX_INCLUDE/c++/13.2.0/backward" +export CLANGFLAGS="$CLANGFLAGS -I $PREFIX_INCLUDE -I $COOKBOOK_SYSROOT/lib/clang/21/include -D__redox__" +export BINDGEN_EXTRA_CLANG_ARGS_x86_64_unknown_redox="-target x86_64-unknown-redox -nostdinc $CLANGFLAGS" +export LLVM_CONFIG_PATH="$COOKBOOK_TOOLCHAIN/bin/llvm-config" + +# Don't poison the stage1 compiler (host -> host) +unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP + +(cd ${COOKBOOK_SOURCE} && ./mach build) +rsync -a ./dist ${COOKBOOK_STAGE} """ diff --git a/recipes/wip/web/firefox-esr/redox.patch b/recipes/wip/web/firefox-esr/redox.patch new file mode 100644 index 000000000..d71240c3f --- /dev/null +++ b/recipes/wip/web/firefox-esr/redox.patch @@ -0,0 +1,295 @@ +diff --color -ruwN source/build/moz.configure/init.configure source-new/build/moz.configure/init.configure +--- source/build/moz.configure/init.configure 2026-01-07 04:09:42.000000000 +0700 ++++ source-new/build/moz.configure/init.configure 2026-01-27 12:48:28.508789372 +0700 +@@ -511,6 +511,8 @@ + canonical_os = canonical_kernel = "NetBSD" + elif os.startswith("openbsd"): + canonical_os = canonical_kernel = "OpenBSD" ++ elif os.startswith("redox"): ++ canonical_os = canonical_kernel = "Redox" + elif os.startswith("solaris"): + canonical_os = canonical_kernel = "SunOS" + elif os.startswith("wasi") and allow_wasi: +@@ -934,6 +936,14 @@ + + set_define("XP_FREEBSD", target_is_freebsd) + ++@depends(target) ++def target_is_redox(target): ++ if target.kernel == "Redox": ++ return True ++ ++ ++set_define("XP_REDOX", target_is_redox) ++ + + @depends(target) + def target_is_solaris(target): +diff --color -ruwN source/mozglue/misc/PlatformMutex.h source-new/mozglue/misc/PlatformMutex.h +--- source/mozglue/misc/PlatformMutex.h 2026-01-07 04:09:50.000000000 +0700 ++++ source-new/mozglue/misc/PlatformMutex.h 2026-01-27 13:12:16.262181670 +0700 +@@ -48,7 +48,7 @@ + + PlatformData* platformData(); + +-#if !defined(XP_WIN) && !defined(__wasi__) ++#if !defined(XP_WIN) && !defined(__wasi__) && !defined(__redox__) + void* platformData_[sizeof(pthread_mutex_t) / sizeof(void*)]; + static_assert(sizeof(pthread_mutex_t) / sizeof(void*) != 0 && + sizeof(pthread_mutex_t) % sizeof(void*) == 0, +diff --color -ruwN source/python/mozbuild/mozbuild/configure/constants.py source-new/python/mozbuild/mozbuild/configure/constants.py +--- source/python/mozbuild/mozbuild/configure/constants.py 2026-01-07 04:09:50.000000000 +0700 ++++ source-new/python/mozbuild/mozbuild/configure/constants.py 2026-01-27 09:16:48.349211711 +0700 +@@ -40,6 +40,7 @@ + "NetBSD", + "OpenBSD", + "OSX", ++ "Redox", + "SunOS", + "WINNT", + "WASI", +@@ -55,6 +56,7 @@ + "Linux", + "NetBSD", + "OpenBSD", ++ "Redox", + "SunOS", + "WINNT", + "WASI", +@@ -146,6 +148,7 @@ + "Linux": "__linux__", + "NetBSD": "__NetBSD__", + "OpenBSD": "__OpenBSD__", ++ "Redox": "__redox__", + "SunOS": "__sun__", + "WINNT": "_WIN32 || __CYGWIN__", + "WASI": "__wasi__", +diff --color -ruwN source/xpcom/build/BinaryPath.h source-new/xpcom/build/BinaryPath.h +--- source/xpcom/build/BinaryPath.h 2026-01-07 04:09:59.000000000 +0700 ++++ source-new/xpcom/build/BinaryPath.h 2026-01-27 12:51:20.922621049 +0700 +@@ -133,11 +133,15 @@ + return rv; + } + +-#elif defined(ANDROID) ++#elif defined(ANDROID) || defined(XP_REDOX) + static nsresult Get(char aResult[MAXPATHLEN]) { + // On Android, we use the MOZ_ANDROID_LIBDIR variable that is set by the + // Java bootstrap code. ++#if defined(XP_REDOX) ++ const char* libDir = getenv("MOZ_REDOX_LIBDIR"); ++#else + const char* libDir = getenv("MOZ_ANDROID_LIBDIR"); ++#endif + if (!libDir) { + return NS_ERROR_FAILURE; + } +diff --color -ruwN source/Cargo.lock source-new/Cargo.lock +--- source/Cargo.lock 2026-01-07 04:09:41.000000000 +0700 ++++ source-new/Cargo.lock 2026-01-27 19:15:51.024103229 +0700 +@@ -3724,6 +3724,16 @@ + checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" + + [[package]] ++name = "libredox" ++version = "0.1.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" ++dependencies = [ ++ "bitflags 2.9.0", ++ "libc", ++] ++ ++[[package]] + name = "libsqlite3-sys" + version = "0.31.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +@@ -5586,11 +5596,23 @@ + + [[package]] + name = "redox_syscall" +-version = "0.5.999" ++version = "0.5.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" ++dependencies = [ ++ "bitflags 2.9.0", ++] + + [[package]] + name = "redox_users" +-version = "0.4.999" ++version = "0.4.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" ++dependencies = [ ++ "getrandom 0.2.999", ++ "libredox", ++ "thiserror 1.999.999", ++] + + [[package]] + name = "regex" +diff --color -ruwN source/Cargo.toml source-new/Cargo.toml +--- source/Cargo.toml 2026-01-07 04:09:40.000000000 +0700 ++++ source-new/Cargo.toml 2026-01-27 19:14:06.467281854 +0700 +@@ -134,12 +134,6 @@ + # Patch r-efi to an empty crate + r-efi = { path = "build/rust/r-efi" } + +-# Patch redox_users to an empty crate +-redox_users = { path = "build/rust/redox_users" } +- +-# Patch redox_syscall to an empty crate +-redox_syscall = { path = "build/rust/redox_syscall" } +- + # Patch hermit-abi to an empty crate + hermit-abi = { path = "build/rust/hermit-abi" } + +diff --color -ruwN source/ipc/chromium/src/base/platform_thread.h source-new/ipc/chromium/src/base/platform_thread.h +--- source/ipc/chromium/src/base/platform_thread.h 2026-01-07 04:09:45.000000000 +0700 ++++ source-new/ipc/chromium/src/base/platform_thread.h 2026-01-27 18:12:57.887138642 +0700 +@@ -24,7 +24,7 @@ + #else + # include + typedef pthread_t PlatformThreadHandle; +-# if defined(XP_LINUX) || defined(XP_OPENBSD) || defined(XP_SOLARIS) || \ ++# if defined(XP_LINUX) || defined(XP_OPENBSD) || defined(XP_REDOX) || defined(XP_SOLARIS) || \ + defined(__GLIBC__) + # include + typedef pid_t PlatformThreadId; +diff --color -ruwN source/mozglue/misc/TimeStamp_posix.cpp source-new/mozglue/misc/TimeStamp_posix.cpp +--- source/mozglue/misc/TimeStamp_posix.cpp 2026-01-07 04:09:50.000000000 +0700 ++++ source-new/mozglue/misc/TimeStamp_posix.cpp 2026-01-27 17:59:05.200260121 +0700 +@@ -13,7 +13,10 @@ + // obtained with this API; see TimeDuration::Resolution; + // + ++ ++#if !defined(__redox__) + #include ++#endif + #include + #include + #include +diff --color -ruwN source/supply-chain/audits.toml source-new/supply-chain/audits.toml +--- source/supply-chain/audits.toml 2026-01-07 04:09:51.000000000 +0700 ++++ source-new/supply-chain/audits.toml 2026-01-27 19:29:15.927403772 +0700 +@@ -3235,6 +3235,11 @@ + version = "0.2.6" + notes = "This crate uses unsafe block, but this doesn't have network and file access. I audited code." + ++[[audits.libredox]] ++who = "Wildan M " ++criteria = "safe-to-deploy" ++version = "0.1.12" ++ + [[audits.libsqlite3-sys]] + who = "Ben Dean-Kawamura " + criteria = "safe-to-deploy" +@@ -4560,10 +4565,20 @@ + delta = "1.10.1 -> 1.10.2" + + [[audits.redox_syscall]] ++who = "Wildan M " ++criteria = "safe-to-deploy" ++version = "0.5.18" ++ ++[[audits.redox_syscall]] + who = "Mike Hommey " + criteria = "safe-to-deploy" + delta = "0.2.13 -> 0.2.16" + ++[[audits.redox_users]] ++who = "Wildan M " ++criteria = "safe-to-deploy" ++version = "0.4.6" ++ + [[audits.regex]] + who = "Mike Hommey " + criteria = "safe-to-deploy" +@@ -4676,7 +4691,7 @@ + the `regex` developers in the same repository. + + This crate is explicitly designed for FFI use, and should not be used directly +-by Rust code. The exported `extern \"C\"` functions are not marked as `unsafe`, ++by Rust code. The exported `extern "C"` functions are not marked as `unsafe`, + meaning that it is technically incorrect to use them from within Rust code, + however they are reasonable to use from C code. + +@@ -6463,7 +6478,7 @@ + who = "Makoto Kato " + criteria = "safe-to-deploy" + version = "0.1.2" +-notes = "This crate is zero-copy version of \"From\". This has no unsafe code and uses no ambient capabilities." ++notes = 'This crate is zero-copy version of "From". This has no unsafe code and uses no ambient capabilities.' + + [[audits.zerofrom]] + who = "Makoto Kato " +diff --color -ruwN source/supply-chain/imports.lock source-new/supply-chain/imports.lock +--- source/supply-chain/imports.lock 2026-01-07 04:09:52.000000000 +0700 ++++ source-new/supply-chain/imports.lock 2026-01-27 19:29:15.929403788 +0700 +@@ -1592,7 +1592,7 @@ + criteria = "safe-to-deploy" + version = "1.6.0" + notes = """ +-Grepped for \"unsafe\", \"crypt\", \"cipher\", \"fs\", \"net\" - there were no ++Grepped for "unsafe", "crypt", "cipher", "fs", "net" - there were no + hits except for 8 occurrences of `unsafe`. Additional `unsafe` review comments + can be found in https://crrev.com/c/5445719. + """ +@@ -1902,7 +1902,7 @@ + * Using `unsafe` in a string: + + ``` +- src/constfn.rs: \"unsafe\" => Qualifiers::Unsafe, ++ src/constfn.rs: "unsafe" => Qualifiers::Unsafe, + ``` + + * Using `std::fs` in `build/build.rs` to write `${OUT_DIR}/version.expr` +@@ -2104,6 +2104,7 @@ + user-id = 213776 # divviup-github-automation + start = "2020-09-28" + end = "2026-01-07" ++renew = false + + [[audits.isrg.audits.base64]] + who = "Tim Geoghegan " +diff --color -ruwN source/build/rust/redox_syscall/Cargo.toml source-new/build/rust/redox_syscall/Cargo.toml +--- source/build/rust/redox_syscall/Cargo.toml 2026-01-07 04:09:41.000000000 +0700 ++++ source-new/build/rust/redox_syscall/Cargo.toml 1970-01-01 07:00:00.000000000 +0700 +@@ -1,8 +0,0 @@ +-[package] +-name = "redox_syscall" +-version = "0.5.999" +-edition = "2018" +-license = "MPL-2.0" +- +-[lib] +-path = "lib.rs" +diff --color -ruwN source/build/rust/redox_syscall/lib.rs source-new/build/rust/redox_syscall/lib.rs +--- source/build/rust/redox_syscall/lib.rs 2026-01-07 04:09:41.000000000 +0700 ++++ source-new/build/rust/redox_syscall/lib.rs 1970-01-01 07:00:00.000000000 +0700 +@@ -1,3 +0,0 @@ +-/* This Source Code Form is subject to the terms of the Mozilla Public +- * License, v. 2.0. If a copy of the MPL was not distributed with this +- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +diff --color -ruwN source/build/rust/redox_users/Cargo.toml source-new/build/rust/redox_users/Cargo.toml +--- source/build/rust/redox_users/Cargo.toml 2026-01-07 04:09:41.000000000 +0700 ++++ source-new/build/rust/redox_users/Cargo.toml 1970-01-01 07:00:00.000000000 +0700 +@@ -1,8 +0,0 @@ +-[package] +-name = "redox_users" +-version = "0.4.999" +-edition = "2018" +-license = "MPL-2.0" +- +-[lib] +-path = "lib.rs" +diff --color -ruwN source/build/rust/redox_users/lib.rs source-new/build/rust/redox_users/lib.rs +--- source/build/rust/redox_users/lib.rs 2026-01-07 04:09:41.000000000 +0700 ++++ source-new/build/rust/redox_users/lib.rs 1970-01-01 07:00:00.000000000 +0700 +@@ -1,3 +0,0 @@ +-/* This Source Code Form is subject to the terms of the Mozilla Public +- * License, v. 2.0. If a copy of the MPL was not distributed with this +- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ diff --git a/recipes/wip/web/servo/recipe.toml b/recipes/wip/web/servo/recipe.toml index 0759eb455..f03ec50b7 100644 --- a/recipes/wip/web/servo/recipe.toml +++ b/recipes/wip/web/servo/recipe.toml @@ -9,10 +9,13 @@ dependencies = [ "fontconfig", "freetype2", "libpng", - "libstdcxx-v3", "mesa", "zlib", ] +dev-dependencies = [ + "llvm21.dev", + "host:libarchive", # workaround for cmake error +] script = """ DYNAMIC_INIT @@ -29,8 +32,6 @@ export PKG_CONFIG_PATH_x86_64_unknown_redox="${COOKBOOK_SYSROOT}/lib/pkgconfig" export PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_redox="${COOKBOOK_SYSROOT}/lib/pkgconfig" # rsync -a -v ${COOKBOOK_SYSROOT}/usr/share/pkgconfig/*.pc ${COOKBOOK_SYSROOT}/lib/pkgconfig/ -export RUSTFLAGS="$RUSTFLAGS -L native=${COOKBOOK_SYSROOT}/lib -C link-arg=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib" - #TODO: mozjs-sys and mozangle uses clang, it won't know our prefix C libraries, so here's the workaround PREFIX_INCLUDE="$COOKBOOK_HOST_SYSROOT/$TARGET/include" export CLANGFLAGS="-I $PREFIX_INCLUDE/c++/13.2.0 -I $PREFIX_INCLUDE/c++/13.2.0/$TARGET -I $PREFIX_INCLUDE/c++/13.2.0/backward -I $PREFIX_INCLUDE" @@ -38,9 +39,8 @@ export CLANGFLAGS="-I $PREFIX_INCLUDE/c++/13.2.0 -I $PREFIX_INCLUDE/c++/13.2.0/$ #Mozjs specifics unset CC_WRAPPER export CARGO_MAKEFLAGS="-j $COOKBOOK_MAKE_JOBS" CCACHE="sccache" -unset CC_WRAPPER -PACKAGE_PATH="ports/servoshell" cookbook_cargo +COOKBOOK_CARGO_PATH="ports/servoshell" cookbook_cargo # resources packaging mkdir -p ${COOKBOOK_STAGE}/usr/lib/servo/bin diff --git a/recipes/wip/web/share-preview/recipe.toml b/recipes/wip/web/share-preview/recipe.toml new file mode 100644 index 000000000..0dd100f24 --- /dev/null +++ b/recipes/wip/web/share-preview/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rafaelmardojai/share-preview" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/web/sukr/recipe.toml b/recipes/wip/web/sukr/recipe.toml new file mode 100644 index 000000000..d21faed44 --- /dev/null +++ b/recipes/wip/web/sukr/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/nrdxp/sukr" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/x11/feh/recipe.toml b/recipes/wip/x11/feh/recipe.toml index 8d55c1072..6255d9d2b 100644 --- a/recipes/wip/x11/feh/recipe.toml +++ b/recipes/wip/x11/feh/recipe.toml @@ -2,7 +2,6 @@ tar = "https://feh.finalrewind.org/feh-3.11.2.tar.bz2" blake3 = "b9d704e0b37d99068cbc76d2b73c3b6ef673612060d7cfef0f5a3e8886255276" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/keybinder3/recipe.toml b/recipes/wip/x11/keybinder3/recipe.toml index 65ddf484f..82532d8e5 100644 --- a/recipes/wip/x11/keybinder3/recipe.toml +++ b/recipes/wip/x11/keybinder3/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/kupferlauncher/keybinder/releases/download/keybinder-3.0-v0.3.2/keybinder-3.0-0.3.2.tar.gz" blake3 = "04b010524abf7af8a6bdfdbeff393c0feecf2bdcc1fd642e75113137ccb62aed" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libfontenc/recipe.toml b/recipes/wip/x11/libfontenc/recipe.toml index 3ba81a4b3..556871661 100644 --- a/recipes/wip/x11/libfontenc/recipe.toml +++ b/recipes/wip/x11/libfontenc/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libfontenc-1.1.8.tar.xz" blake3 = "6ab127a335f7cb4892566e59448d91e9ec43ac522f31f97a3c94350f0a3ecaf4" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libice/recipe.toml b/recipes/wip/x11/libice/recipe.toml index 7a95c5674..e8757bd13 100644 --- a/recipes/wip/x11/libice/recipe.toml +++ b/recipes/wip/x11/libice/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libICE-1.1.2.tar.xz" blake3 = "3d1d41041e0a58799a5e9965fd258a4f6875143102644fbbc71061eb4c652577" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libsm/recipe.toml b/recipes/wip/x11/libsm/recipe.toml index 5cb1d4ee2..359616561 100644 --- a/recipes/wip/x11/libsm/recipe.toml +++ b/recipes/wip/x11/libsm/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libSM-1.2.6.tar.xz" blake3 = "fccedc1f9781bab20b0084557464099a7b793cd704d4bb702f200def4c96dcd8" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libx11/recipe.toml b/recipes/wip/x11/libx11/recipe.toml index db8a8c446..a56da9789 100644 --- a/recipes/wip/x11/libx11/recipe.toml +++ b/recipes/wip/x11/libx11/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libX11-1.8.12.tar.xz" blake3 = "5bf1c64733322b6a90d9bce8d2bd2d8117a4950955caa00d0cd7974d42571d1e" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxau/recipe.toml b/recipes/wip/x11/libxau/recipe.toml index 3ea5322b6..7fb9f3b71 100644 --- a/recipes/wip/x11/libxau/recipe.toml +++ b/recipes/wip/x11/libxau/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXau-1.0.12.tar.xz" blake3 = "674bc71a888eec20f0e29989e4669df90309d4baacad058107cdf89d23803bcc" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxaw/recipe.toml b/recipes/wip/x11/libxaw/recipe.toml index 18c379352..1e02efd75 100644 --- a/recipes/wip/x11/libxaw/recipe.toml +++ b/recipes/wip/x11/libxaw/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXaw-1.0.16.tar.xz" blake3 = "f2a3b4955508dc7a576ad473119562b724f7936d312c85c79cb32f614c60f0c5" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxcb/recipe.toml b/recipes/wip/x11/libxcb/recipe.toml index 4ea52ba7b..bf7ec5060 100644 --- a/recipes/wip/x11/libxcb/recipe.toml +++ b/recipes/wip/x11/libxcb/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/xcb/libxcb-1.17.0.tar.xz" blake3 = "3dce3b8adc257177dfec9b6b6cf55eeac13921520dd6c372fd8f9d867600337b" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ @@ -13,8 +12,7 @@ dependencies = [ "x11proto", "xcb-proto", ] -template = "custom" -script = """ -DYNAMIC_INIT -cookbook_configure -""" +template = "configure" +configureflags = [ + "--disable-devel-docs", +] diff --git a/recipes/wip/x11/libxcomposite/recipe.toml b/recipes/wip/x11/libxcomposite/recipe.toml index 21f063879..be721c6bf 100644 --- a/recipes/wip/x11/libxcomposite/recipe.toml +++ b/recipes/wip/x11/libxcomposite/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXcomposite-0.4.6.tar.xz" blake3 = "7e02026864066869aefc1d688415b1e8c6ab0b639556f93b6f5e86063aa1bbac" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxcvt/recipe.toml b/recipes/wip/x11/libxcvt/recipe.toml index 8133e595d..c5fcd6b9a 100644 --- a/recipes/wip/x11/libxcvt/recipe.toml +++ b/recipes/wip/x11/libxcvt/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libxcvt-0.1.3.tar.xz" blake3 = "a6c8f264a70a742d2634f53d19489b984c28df11cb5653042e8921f7596534bb" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxdamage/recipe.toml b/recipes/wip/x11/libxdamage/recipe.toml index da8d82d2a..e06e65b3d 100644 --- a/recipes/wip/x11/libxdamage/recipe.toml +++ b/recipes/wip/x11/libxdamage/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXdamage-1.1.6.tar.xz" blake3 = "d3d75f2656027288f87b9ddda8bf019862c63c6e4aeadd92f45870df6c2a7ce9" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxdmcp/recipe.toml b/recipes/wip/x11/libxdmcp/recipe.toml index ee93e4a6b..391c59526 100644 --- a/recipes/wip/x11/libxdmcp/recipe.toml +++ b/recipes/wip/x11/libxdmcp/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXdmcp-1.1.5.tar.xz" blake3 = "d93c5ceb04019228ee6f034c4d10826025a7ae756d7b2f884fc2f768577173ba" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxext/recipe.toml b/recipes/wip/x11/libxext/recipe.toml index 36a525dc7..ca9228595 100644 --- a/recipes/wip/x11/libxext/recipe.toml +++ b/recipes/wip/x11/libxext/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXext-1.3.6.tar.xz" blake3 = "4c24887ba3913728f3c0be945006f6babbc2c44c8118d4b1ca5366294e3f4406" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxfixes/recipe.toml b/recipes/wip/x11/libxfixes/recipe.toml index c506e4f81..9d3d40401 100644 --- a/recipes/wip/x11/libxfixes/recipe.toml +++ b/recipes/wip/x11/libxfixes/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXfixes-6.0.1.tar.xz" blake3 = "ccbae58717aa81f1ef52a2e6cbb7c57553a98b93f5a7a6f8a78e793a3a0c7f78" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxfont2/recipe.toml b/recipes/wip/x11/libxfont2/recipe.toml index 761543c57..f95d0af92 100644 --- a/recipes/wip/x11/libxfont2/recipe.toml +++ b/recipes/wip/x11/libxfont2/recipe.toml @@ -3,7 +3,6 @@ tar = "https://www.x.org/releases/individual/lib/libXfont2-2.0.7.tar.xz" blake3 = "9b4951683df21108e45fda23dbd25dcb47b67a3a0e224a36374fbc2d0f489cac" patches = ["redox.patch"] script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxft/recipe.toml b/recipes/wip/x11/libxft/recipe.toml index 0574d4c9b..d671cadf5 100644 --- a/recipes/wip/x11/libxft/recipe.toml +++ b/recipes/wip/x11/libxft/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXft-2.3.9.tar.xz" blake3 = "db5b642f7d5f1184d0975db36ae9f9fbd0a0c538a2288930fc034376374e83dc" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxi/recipe.toml b/recipes/wip/x11/libxi/recipe.toml index a1c915709..5218a7679 100644 --- a/recipes/wip/x11/libxi/recipe.toml +++ b/recipes/wip/x11/libxi/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXi-1.8.2.tar.xz" blake3 = "8f0acdd884dc928c6c8bc4b6bca1f4c67c726fdb03e30910c09bdb41fd841d3e" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxinerama/recipe.toml b/recipes/wip/x11/libxinerama/recipe.toml index 8ae9962df..68c6d6dee 100644 --- a/recipes/wip/x11/libxinerama/recipe.toml +++ b/recipes/wip/x11/libxinerama/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXinerama-1.1.5.tar.xz" blake3 = "58b4020c8a8fb62707f5073f967bf8abbc8dc7cff35c5750fabe097f46a924b4" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxkbfile/recipe.toml b/recipes/wip/x11/libxkbfile/recipe.toml index 7ce5bb356..4c6a90fae 100644 --- a/recipes/wip/x11/libxkbfile/recipe.toml +++ b/recipes/wip/x11/libxkbfile/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libxkbfile-1.1.3.tar.xz" blake3 = "9566ee417df1127f21dd0e1fbcfcc14dacb366c07a1ec2de51f89af12535c06d" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxklavier/recipe.toml b/recipes/wip/x11/libxklavier/recipe.toml index fdbc3dad8..cafdd0001 100644 --- a/recipes/wip/x11/libxklavier/recipe.toml +++ b/recipes/wip/x11/libxklavier/recipe.toml @@ -2,7 +2,6 @@ tar = "https://download.gnome.org/sources/libxklavier/5.3/libxklavier-5.3.tar.xz" blake3 = "4811b8e069faef364b0cdd230dd7e42bc4afc279cb15282b68c11e89518c8930" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxmu/recipe.toml b/recipes/wip/x11/libxmu/recipe.toml index 7ac3dd382..afea2422b 100644 --- a/recipes/wip/x11/libxmu/recipe.toml +++ b/recipes/wip/x11/libxmu/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXmu-1.2.1.tar.xz" blake3 = "466f7ab160c4e9f04866e9c895dbecb6a76ed1817ae16721d404c556d88f047e" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxpm/recipe.toml b/recipes/wip/x11/libxpm/recipe.toml index bec80a26d..d5fa8373c 100644 --- a/recipes/wip/x11/libxpm/recipe.toml +++ b/recipes/wip/x11/libxpm/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXpm-3.5.17.tar.xz" blake3 = "0cc9bbdc6d9c9d6ce100249b7bb68bff4550de43ee31d815fd9b21c8d178cd9e" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxrandr/recipe.toml b/recipes/wip/x11/libxrandr/recipe.toml index 9e6d29ead..ce7f2ba86 100644 --- a/recipes/wip/x11/libxrandr/recipe.toml +++ b/recipes/wip/x11/libxrandr/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXrandr-1.5.4.tar.xz" blake3 = "c107a47d9c4329996d74d7a1ab8d254a2cf3aecea1575d7e146da9a06b762081" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxrender/recipe.toml b/recipes/wip/x11/libxrender/recipe.toml index f5f671630..4442e6a11 100644 --- a/recipes/wip/x11/libxrender/recipe.toml +++ b/recipes/wip/x11/libxrender/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXrender-0.9.12.tar.xz" blake3 = "900b431ad77835029a88fd0d874bbd0d748ff150b9e0c3841b3ce7a346cf396a" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxres/recipe.toml b/recipes/wip/x11/libxres/recipe.toml index ae9027da7..b42662bd5 100644 --- a/recipes/wip/x11/libxres/recipe.toml +++ b/recipes/wip/x11/libxres/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXres-1.2.3.tar.xz" blake3 = "ed6e65e554fb812ddbec0667d749cb6c0488a964d7b12a7c4c2cadac1287088f" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxshmfence/recipe.toml b/recipes/wip/x11/libxshmfence/recipe.toml index bd9764ec7..00e41e2cb 100644 --- a/recipes/wip/x11/libxshmfence/recipe.toml +++ b/recipes/wip/x11/libxshmfence/recipe.toml @@ -1,7 +1,6 @@ [source] tar = "https://www.x.org/releases/individual/lib/libxshmfence-1.3.tar.gz" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxt/recipe.toml b/recipes/wip/x11/libxt/recipe.toml index f764c7dfc..27cf29248 100644 --- a/recipes/wip/x11/libxt/recipe.toml +++ b/recipes/wip/x11/libxt/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXt-1.3.1.tar.xz" blake3 = "fbf21683ce3e6d104529289254977bb08b355ecf7a36c763e8369acf85f15f24" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/libxxf86vm/recipe.toml b/recipes/wip/x11/libxxf86vm/recipe.toml index cbefd2e71..ecdd02151 100644 --- a/recipes/wip/x11/libxxf86vm/recipe.toml +++ b/recipes/wip/x11/libxxf86vm/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/libXxf86vm-1.1.6.tar.xz" blake3 = "cd99c05a03e81f8579a56272debd554b2a44c2ac8211f0170a39be86e03221bb" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/mate/caja/recipe.toml b/recipes/wip/x11/mate/caja/recipe.toml index 79f77db5e..4d0403339 100644 --- a/recipes/wip/x11/mate/caja/recipe.toml +++ b/recipes/wip/x11/mate/caja/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/mate-desktop/caja/releases/download/v1.26.4/caja-1.26.4.tar.xz" blake3 = "a70f5ce8dcb038d78346b385b2abd4d29a3e13c99b368a617c38107a9e725617" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ @@ -17,4 +16,6 @@ template = "custom" script = """ DYNAMIC_INIT cookbook_configure +# TODO: conflict with shared-mime-info +rm -f ${COOKBOOK_STAGE}/usr/share/mime/mime.cache """ diff --git a/recipes/wip/x11/mate/dbus-glib/recipe.toml b/recipes/wip/x11/mate/dbus-glib/recipe.toml index c18fa8074..39bed10c0 100644 --- a/recipes/wip/x11/mate/dbus-glib/recipe.toml +++ b/recipes/wip/x11/mate/dbus-glib/recipe.toml @@ -2,7 +2,6 @@ tar = "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.114.tar.gz" blake3 = "a632fb16525a201dd159b9538c6009ec717403d580a3741cbf96fd6f9af2828b" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/mate/libmatekbd/recipe.toml b/recipes/wip/x11/mate/libmatekbd/recipe.toml index 92daa69fb..1a50d0e4b 100644 --- a/recipes/wip/x11/mate/libmatekbd/recipe.toml +++ b/recipes/wip/x11/mate/libmatekbd/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/mate-desktop/libmatekbd/releases/download/v1.28.0/libmatekbd-1.28.0.tar.xz" blake3 = "d5dcf7a47522cc586b6c47e9bd731bbd6db43fcb6797b33b52c03e816d9caedd" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ @@ -11,6 +10,9 @@ dependencies = [ "gtk3", "libxklavier", ] +dev-dependencies = [ + "host:libxml2" +] template = "custom" script = """ DYNAMIC_INIT diff --git a/recipes/wip/x11/mate/libmateweather/recipe.toml b/recipes/wip/x11/mate/libmateweather/recipe.toml index c5f74cb60..f766597e3 100644 --- a/recipes/wip/x11/mate/libmateweather/recipe.toml +++ b/recipes/wip/x11/mate/libmateweather/recipe.toml @@ -3,7 +3,6 @@ tar = "https://github.com/mate-desktop/libmateweather/archive/c1c54a15545f13f3dabd2bcd303533d818905c7b.tar.gz" blake3 = "78c3873937bb90141386d31b6c6d3e585f9f2bde6069933abffdbd9a9161707a" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ @@ -12,6 +11,9 @@ dependencies = [ "gtk3", "libsoup", ] +dev-dependencies = [ + "host:libxml2" +] template = "custom" script = """ DYNAMIC_INIT diff --git a/recipes/wip/x11/mate/marco/recipe.toml b/recipes/wip/x11/mate/marco/recipe.toml index 50f9042ca..d4c935c41 100644 --- a/recipes/wip/x11/mate/marco/recipe.toml +++ b/recipes/wip/x11/mate/marco/recipe.toml @@ -20,6 +20,7 @@ template = "meson" [package] dependencies = [ + "librsvg", "mate-settings-daemon", "zenity", ] diff --git a/recipes/wip/x11/mate/mate-control-center/recipe.toml b/recipes/wip/x11/mate/mate-control-center/recipe.toml index 5e91b9125..2f0cee64a 100644 --- a/recipes/wip/x11/mate/mate-control-center/recipe.toml +++ b/recipes/wip/x11/mate/mate-control-center/recipe.toml @@ -11,6 +11,9 @@ dependencies = [ "libxscrnsaver", "marco", ] +dev-dependencies = [ + "host:itstool" +] template = "meson" mesonflags = [ "-Dlibappindicator=no", diff --git a/recipes/wip/x11/mate/mate-panel/recipe.toml b/recipes/wip/x11/mate/mate-panel/recipe.toml index c2037931c..3ec084705 100644 --- a/recipes/wip/x11/mate/mate-panel/recipe.toml +++ b/recipes/wip/x11/mate/mate-panel/recipe.toml @@ -16,6 +16,10 @@ dependencies = [ "libsm", "libwnck3", ] +dev-dependencies = [ + "host:itstool", + "host:libxml2" +] template = "custom" script = """ DYNAMIC_INIT diff --git a/recipes/wip/x11/mate/mate-session-manager/recipe.toml b/recipes/wip/x11/mate/mate-session-manager/recipe.toml index 519cb3e37..9ac7ebc97 100644 --- a/recipes/wip/x11/mate/mate-session-manager/recipe.toml +++ b/recipes/wip/x11/mate/mate-session-manager/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/mate-desktop/mate-session-manager/releases/download/v1.28.0/mate-session-manager-1.28.0.tar.xz" blake3 = "c76fd3064f4697180006cc2562a0ac55ddfa40b4029047f58c8dcc790606a9a6" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/mate/mate-settings-daemon/recipe.toml b/recipes/wip/x11/mate/mate-settings-daemon/recipe.toml index f46376033..920c24490 100644 --- a/recipes/wip/x11/mate/mate-settings-daemon/recipe.toml +++ b/recipes/wip/x11/mate/mate-settings-daemon/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/mate-desktop/mate-settings-daemon/releases/download/v1.28.0/mate-settings-daemon-1.28.0.tar.xz" blake3 = "396389887d2e79d22e8be28f51df8e6e807ffabb676fbd23888278cf39a65f3d" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/mate/mate-terminal/recipe.toml b/recipes/wip/x11/mate/mate-terminal/recipe.toml index eecc852ad..08fd7d7e0 100644 --- a/recipes/wip/x11/mate/mate-terminal/recipe.toml +++ b/recipes/wip/x11/mate/mate-terminal/recipe.toml @@ -9,4 +9,7 @@ dependencies = [ "libstdcxx", "vte", ] +dev-dependencies = [ + "host:itstool", +] template = "meson" diff --git a/recipes/wip/x11/mesa-x11/recipe.toml b/recipes/wip/x11/mesa-x11/recipe.toml index 67f6452b8..dfb07c14d 100644 --- a/recipes/wip/x11/mesa-x11/recipe.toml +++ b/recipes/wip/x11/mesa-x11/recipe.toml @@ -18,8 +18,6 @@ dependencies = [ ] dev-dependencies = [ "llvm21.dev", - "host:llvm21.dev", - "host:llvm21.runtime", ] script = """ diff --git a/recipes/wip/x11/openbox/recipe.toml b/recipes/wip/x11/openbox/recipe.toml index ca0668c7a..bd1d79abd 100644 --- a/recipes/wip/x11/openbox/recipe.toml +++ b/recipes/wip/x11/openbox/recipe.toml @@ -3,7 +3,6 @@ tar = "https://openbox.org/dist/openbox/openbox-3.6.1.tar.xz" blake3 = "6bf434e52e04a9cfcd67c11cb9105b93fe2055dca49f1bed2c105fd117e88ef4" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/startup-notification/recipe.toml b/recipes/wip/x11/startup-notification/recipe.toml index af5696742..ff33778c1 100644 --- a/recipes/wip/x11/startup-notification/recipe.toml +++ b/recipes/wip/x11/startup-notification/recipe.toml @@ -2,7 +2,6 @@ tar = "http://www.freedesktop.org/software/startup-notification/releases/startup-notification-0.12.tar.gz" blake3 = "134131fdd210d2eaef76eda9826b4a832807aac231dba334f157751ed1d6da36" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/twm/recipe.toml b/recipes/wip/x11/twm/recipe.toml index 1648e69f4..d8b5b5016 100644 --- a/recipes/wip/x11/twm/recipe.toml +++ b/recipes/wip/x11/twm/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/app/twm-1.0.13.tar.xz" blake3 = "50acf2123537a739dcaff50e1ae9b38d7e117a2d07cd3a6b550dcafdc52ff9fc" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/x11proto-kb/recipe.toml b/recipes/wip/x11/x11proto-kb/recipe.toml index 1cd06a038..71569e8b9 100644 --- a/recipes/wip/x11/x11proto-kb/recipe.toml +++ b/recipes/wip/x11/x11proto-kb/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/proto/kbproto-1.0.7.tar.bz2" blake3 = "2fba8d4a298bd6504c237afccc2059a3b9db6363f203824aebf2c0a167197625" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xcb-util-cursor/recipe.toml b/recipes/wip/x11/xcb-util-cursor/recipe.toml index eb0dbbd9e..a35afa4cd 100644 --- a/recipes/wip/x11/xcb-util-cursor/recipe.toml +++ b/recipes/wip/x11/xcb-util-cursor/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/xcb-util-cursor-0.1.6.tar.xz" blake3 = "af6e7e99779682450e4cb3aa7225f5724845b1672c0380c65ca03b58dfb2d5d8" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xcb-util-image/recipe.toml b/recipes/wip/x11/xcb-util-image/recipe.toml index a21ab495d..013b13707 100644 --- a/recipes/wip/x11/xcb-util-image/recipe.toml +++ b/recipes/wip/x11/xcb-util-image/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/xcb-util-image-0.4.1.tar.xz" blake3 = "c8a0652f7c215bd312d9f238aed2ba6a122f087b623dafbbac4456f5351df603" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xcb-util-keysyms/recipe.toml b/recipes/wip/x11/xcb-util-keysyms/recipe.toml index ce6899454..47795d435 100644 --- a/recipes/wip/x11/xcb-util-keysyms/recipe.toml +++ b/recipes/wip/x11/xcb-util-keysyms/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/xcb-util-keysyms-0.4.1.tar.xz" blake3 = "c599df56c79a9f9dcf12b083e343f321cad6af654b83e2976b5a26bc890b5774" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xcb-util-renderutil/recipe.toml b/recipes/wip/x11/xcb-util-renderutil/recipe.toml index 1d76fc5ec..bb8a96131 100644 --- a/recipes/wip/x11/xcb-util-renderutil/recipe.toml +++ b/recipes/wip/x11/xcb-util-renderutil/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/xcb-util-renderutil-0.3.10.tar.xz" blake3 = "085c94d08bd8181512d4ce93cf0e5bcd48cd8ed983bbb7a7bcb3a3c2312a08ea" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xcb-util-wm/recipe.toml b/recipes/wip/x11/xcb-util-wm/recipe.toml index c92734b8c..bff820023 100644 --- a/recipes/wip/x11/xcb-util-wm/recipe.toml +++ b/recipes/wip/x11/xcb-util-wm/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/xcb-util-wm-0.4.2.tar.xz" blake3 = "4cf6b0e204e12eb6b824c939404fc5ad63d61cb94679e8adf5670207802bc738" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xcb-util-xrm/recipe.toml b/recipes/wip/x11/xcb-util-xrm/recipe.toml index 32b753396..4515f8a69 100644 --- a/recipes/wip/x11/xcb-util-xrm/recipe.toml +++ b/recipes/wip/x11/xcb-util-xrm/recipe.toml @@ -2,7 +2,6 @@ tar = "https://github.com/Airblader/xcb-util-xrm/releases/download/v1.3/xcb-util-xrm-1.3.tar.bz2" blake3 = "21cd9a005dde4982a452df156a16f4a61bd5299fb1a24dda2c9e8169e0654f38" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xcb-util/recipe.toml b/recipes/wip/x11/xcb-util/recipe.toml index b0fa8c392..97e934f3f 100644 --- a/recipes/wip/x11/xcb-util/recipe.toml +++ b/recipes/wip/x11/xcb-util/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/lib/xcb-util-0.4.1.tar.xz" blake3 = "ebc940220db0ca39a690a47b565ce73ab536c1fbfdebf008fa0edf0ced862aca" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xev/recipe.toml b/recipes/wip/x11/xev/recipe.toml index d81b8ae1e..2eec88698 100644 --- a/recipes/wip/x11/xev/recipe.toml +++ b/recipes/wip/x11/xev/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/app/xev-1.2.6.tar.xz" blake3 = "883347a6db32fb4cf6bc97906ca1dacf1c67b7b84bd2abef9c6c5fc20abea647" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xextproto/recipe.toml b/recipes/wip/x11/xextproto/recipe.toml index 8d83a40c2..9be61748d 100644 --- a/recipes/wip/x11/xextproto/recipe.toml +++ b/recipes/wip/x11/xextproto/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/proto/xextproto-7.3.0.tar.bz2" blake3 = "08cdd8b3838da9c99176778c925327aa35661d41d0e4d7458a378f14a42172c0" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xeyes/recipe.toml b/recipes/wip/x11/xeyes/recipe.toml index 7cde39b4f..3131262d4 100644 --- a/recipes/wip/x11/xeyes/recipe.toml +++ b/recipes/wip/x11/xeyes/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/app/xeyes-1.3.0.tar.xz" blake3 = "33d7ce4847c73e6ebea0cc595b04de80482a657132d0f2235548328ede88b673" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xinit/recipe.toml b/recipes/wip/x11/xinit/recipe.toml index 2ee1557ec..49bd55ba9 100644 --- a/recipes/wip/x11/xinit/recipe.toml +++ b/recipes/wip/x11/xinit/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/app/xinit-1.4.4.tar.xz" blake3 = "fe988bbff7c4a950256540ad8a469fed1cdbe11439ba738b9714ee2de16f2a6c" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xkbcomp/recipe.toml b/recipes/wip/x11/xkbcomp/recipe.toml index b660ef96d..3553da85c 100644 --- a/recipes/wip/x11/xkbcomp/recipe.toml +++ b/recipes/wip/x11/xkbcomp/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/app/xkbcomp-1.4.7.tar.xz" blake3 = "e6420ef168976726f8aa8cb362bc70dfe2bd810f2b33e5f71547ec182ed301ea" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xkbutils/recipe.toml b/recipes/wip/x11/xkbutils/recipe.toml index 00aa3ddae..d590a26d9 100644 --- a/recipes/wip/x11/xkbutils/recipe.toml +++ b/recipes/wip/x11/xkbutils/recipe.toml @@ -2,7 +2,6 @@ tar = "https://www.x.org/releases/individual/app/xkbutils-1.0.6.tar.xz" blake3 = "f19c157f5eaad7c91ee101952e55b9fd991b060892ecb3e6d9a7b46fa1dbe587" script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xserver-xorg-video-orbital/recipe.toml b/recipes/wip/x11/xserver-xorg-video-orbital/recipe.toml index 46da862b8..1f52a9e72 100644 --- a/recipes/wip/x11/xserver-xorg-video-orbital/recipe.toml +++ b/recipes/wip/x11/xserver-xorg-video-orbital/recipe.toml @@ -4,7 +4,6 @@ tar = "https://www.x.org/releases/individual/driver/xf86-video-dummy-0.4.1.tar.x blake3 = "9b49296f62bf4d22345d87fc01f2a5571f941457c19d21c8800f8f6d2e64ae67" patches = ["redox.patch"] script = """ -DYNAMIC_INIT autotools_recursive_regenerate """ diff --git a/recipes/wip/x11/xserver-xorg/recipe.toml b/recipes/wip/x11/xserver-xorg/recipe.toml index 4e918772e..86849c243 100644 --- a/recipes/wip/x11/xserver-xorg/recipe.toml +++ b/recipes/wip/x11/xserver-xorg/recipe.toml @@ -22,7 +22,7 @@ dependencies = [ "libxkbfile", "libxxf86vm", "mesa-x11", - "openssl1", + "openssl3", "pixman", "x11proto", "xtrans", diff --git a/rust b/rust deleted file mode 160000 index 3ffb13de6..000000000 --- a/rust +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3ffb13de6f6ef25b831e72a1b931e1170b4db423 diff --git a/scripts/commit-hash.sh b/scripts/commit-hash.sh index 19235faea..50653af1c 100755 --- a/scripts/commit-hash.sh +++ b/scripts/commit-hash.sh @@ -1,15 +1,27 @@ #!/usr/bin/env bash -# This script show the current Git branch and commit of the recipe source +# This script shows the current Git commit hash of system recipes at recipes/core -if [ $# -ne 1 ] +set -e + +# Check if recipes/core directory exists +if [ ! -d "recipes/core" ] then - echo "Usage: $0 recipe_name" - echo " Print the commit hash for recipe_name" + echo "Error: recipes/core directory not found" exit 1 fi -recipe_path="$(target/release/find_recipe $1)" - -cd "$recipe_path"/source -git branch -v +# Iterate through all system recipes in recipes/core +for recipe_dir in recipes/core/*/ +do + recipe_name=$(basename "$recipe_dir") + source_dir="$recipe_dir/source" + + # Check if source directory exists and is a git repository + if [ -d "$source_dir" ] && [ -d "$source_dir/.git" ] + then + # Get the commit hash + commit_hash=$(cd "$source_dir" && git rev-parse HEAD) + echo "$recipe_name: $commit_hash" + fi +done diff --git a/scripts/dual-boot.sh b/scripts/dual-boot.sh index b067ad5f4..400d7a183 100755 --- a/scripts/dual-boot.sh +++ b/scripts/dual-boot.sh @@ -18,17 +18,9 @@ then exit 1 fi -if [ -z "${ARCH}" ] -then - export ARCH="$(uname -m)" -fi +eval $(make setenv) -if [ -z "${CONFIG_NAME}" ] -then - export CONFIG_NAME=desktop -fi - -IMAGE="build/${ARCH}/${CONFIG_NAME}/filesystem.img" +IMAGE="${BUILD}/filesystem.img" set -x rm -f "${IMAGE}" make "${IMAGE}" @@ -42,7 +34,7 @@ then exit 1 fi -BOOTLOADER="recipes/core/bootloader/target/${ARCH}-unknown-redox/stage/boot/bootloader.efi" +BOOTLOADER="recipes/core/bootloader/target/${ARCH}-unknown-redox/stage/usr/lib/boot/bootloader.efi" set -x sudo mkdir -pv "${ESP}/EFI" "${ESP}/loader/entries" sudo cp -v "${BOOTLOADER}" "${ESP}/EFI/redox.efi" diff --git a/scripts/network-boot.sh b/scripts/network-boot.sh new file mode 100755 index 000000000..0b9c09da7 --- /dev/null +++ b/scripts/network-boot.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +# Your host must use the static IP ${NETWORK}.1 and subnet mask 255.255.255.0 +# 'Rx' in ascii is 82 and 120, adjust to taste +NETWORK=10.82.120 + +set -ex + +trap 'kill -HUP 0' EXIT + +eval $(make setenv) +make "${BUILD}/redox-live.iso" + +echo "Allowing packet forwarding" +echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward + +iface="$(route | grep '^default ' | grep -o '[^ ]*$' | head -n 1)" +echo "Forwarding packets to '$iface'" +if ! sudo iptables -t nat -C POSTROUTING -o "$iface" -j MASQUERADE +then + echo "Forwarding rule does not exist, adding" + sudo iptables -t nat -A POSTROUTING -o "$iface" -j MASQUERADE +else + echo "Forwarding rule already exists" +fi + +ARGS=( + "--no-daemon" + "--bind-interfaces" + "--listen-address=${NETWORK}.1" + "--port=0" + "--dhcp-range=${NETWORK}.3,${NETWORK}.254,255.255.255.0,1h" + "--dhcp-option=6,1.1.1.1,1.0.0.1" + "--enable-tftp" + "--tftp-root=$(realpath "${BUILD}")" + # BIOS + "--dhcp-match=set:bios,option:client-arch,0" + "--dhcp-boot=tag:!ipxe,tag:bios,undionly.kpxe" + # EFI x86_64 + "--dhcp-match=set:efi-x86_64,option:client-arch,7" + "--dhcp-match=set:efi-x86_64,option:client-arch,9" + "--dhcp-boot=tag:!ipxe,tag:efi-x86_64,ipxe-x86_64.efi" + # EFI aarch64 + "--dhcp-match=set:efi-aarch64,option:client-arch,11" + "--dhcp-boot=tag:!ipxe,tag:efi-aarch64,ipxe-aarch64.efi" + # IPXE + "--dhcp-userclass=set:ipxe,iPXE" + "--dhcp-boot=tag:ipxe,redox.ipxe" +) + +sudo dnsmasq "${ARGS[@]}"& +python3 -m http.server -b "${NETWORK}.1" -d "${BUILD}" "8080" diff --git a/src/bin/cookbook_redoxer.rs b/src/bin/cookbook_redoxer.rs index 0a9303900..01bfbb159 100644 --- a/src/bin/cookbook_redoxer.rs +++ b/src/bin/cookbook_redoxer.rs @@ -5,6 +5,14 @@ fn main() { // Ensure all flags go to cargo if args.len() >= 2 { args.insert(2, "--".to_string()); + if args[1] == "write-exec" { + if let Ok(stage_dir) = std::env::var("COOKBOOK_STAGE") { + args.insert(2, format!("{}/root", stage_dir)); + args.insert(2, "--folder".to_string()); + args.insert(2, stage_dir); + args.insert(2, "--root".to_string()); + } + } } redoxer::main(&args); } diff --git a/src/bin/repo.rs b/src/bin/repo.rs index 77ec04221..ef8e50e7a 100644 --- a/src/bin/repo.rs +++ b/src/bin/repo.rs @@ -8,11 +8,10 @@ use cookbook::cook::ident; use cookbook::cook::package::package; use cookbook::cook::pty::{PtyOut, UnixSlavePty, flush_pty, setup_pty}; use cookbook::cook::script::KILL_ALL_PID; -use cookbook::cook::tree::{WalkTreeEntry, display_tree_entry, format_size, walk_tree_entry}; +use cookbook::cook::tree::{self, WalkTreeEntry}; use cookbook::log_to_pty; -use cookbook::recipe::CookRecipe; +use cookbook::recipe::{CookRecipe, recipes_flatten_package_names, recipes_mark_as_deps}; use pkg::PackageName; -use pkg::package::PackageError; use ratatui::Terminal; use ratatui::layout::{Constraint, Direction, Layout, Position, Rect}; use ratatui::prelude::TermionBackend; @@ -21,7 +20,7 @@ use ratatui::text::{Line, Span, Text}; use ratatui::widgets::{Block, Borders, Clear, List, ListItem, ListState, Paragraph, Wrap}; use redox_installer::PackageConfig; use std::borrow::Cow; -use std::collections::{HashMap, HashSet, VecDeque}; +use std::collections::{BTreeMap, HashMap, HashSet, VecDeque}; use std::io::{Read, Write, stderr, stdin, stdout}; use std::path::PathBuf; use std::process::Command; @@ -43,13 +42,15 @@ const REPO_HELP_STR: &str = r#" Usage: repo [flags] ... command list: - fetch download recipe sources - cook build recipe packages - unfetch delete recipe sources - clean delete recipe artifacts - push extract package into sysroot - find find path of recipe packages - tree show tree of recipe packages + fetch download recipe sources + cook build recipe packages + unfetch delete recipe sources + clean delete recipe artifacts + clean-target delete recipe artifacts for one target + push extract package into sysroot + find find path of recipe packages + cook-tree show tree of recipe build + push-tree show tree of recipe packages common flags: --cookbook= the "recipes" folder, default to $PWD/recipes @@ -63,13 +64,18 @@ const REPO_HELP_STR: &str = r#" --repo-binary override recipes config to use repo_binary cook env and their defaults: - CI= set to any value to disable TUI - COOKBOOK_LOGS= whether to capture build logs (default is !CI) - COOKBOOK_OFFLINE=false prevent internet access if possible + CI= set to any value to disable TUI + COOKBOOK_LOGS= whether to capture build logs (default is !CI) + COOKBOOK_OFFLINE=false prevent internet access if possible ignored when command "fetch" is used - COOKBOOK_NONSTOP=false pkeep running even a recipe build failed - COOKBOOK_VERBOSE=true print success/error on each recipe - COOKBOOK_MAKE_JOBS= override build jobs count from nproc + COOKBOOK_NONSTOP=false keep running even a recipe build failed + COOKBOOK_COMPRESSED=false build packages in compressed format + COOKBOOK_VERBOSE=true print success/error on each recipe + COOKBOOK_CLEAN_BUILD=false remove build directory before building + COOKBOOK_CLEAN_TARGET=false remove target directory after building + COOKBOOK_WRITE_FILETREE=false whether to write stage files tree + COOKBOOK_MAKE_JOBS= override build jobs count from nproc + COOKBOOK_WEB=false whether to generate package web files "#; #[derive(Clone)] @@ -89,25 +95,29 @@ struct CliConfig { enum CliCommand { Fetch, Cook, + CookTree, Unfetch, Clean, + CleanTarget, Push, - Tree, + PushTree, Find, } impl CliCommand { pub fn is_informational(&self) -> bool { - *self == CliCommand::Tree || *self == CliCommand::Find + *self == CliCommand::PushTree || *self == CliCommand::CookTree || *self == CliCommand::Find } pub fn is_building(&self) -> bool { - *self == CliCommand::Fetch || *self == CliCommand::Cook + *self == CliCommand::Fetch || *self == CliCommand::Cook || *self == CliCommand::CookTree } pub fn is_pushing(&self) -> bool { - *self == CliCommand::Push || *self == CliCommand::Tree + *self == CliCommand::Push || *self == CliCommand::PushTree } pub fn is_cleaning(&self) -> bool { - *self == CliCommand::Clean || *self == CliCommand::Unfetch + *self == CliCommand::Clean + || *self == CliCommand::CleanTarget + || *self == CliCommand::Unfetch } } @@ -120,8 +130,10 @@ impl FromStr for CliCommand { "cook" => Ok(CliCommand::Cook), "unfetch" => Ok(CliCommand::Unfetch), "clean" => Ok(CliCommand::Clean), + "clean-target" => Ok(CliCommand::CleanTarget), "push" => Ok(CliCommand::Push), - "tree" => Ok(CliCommand::Tree), + "push-tree" => Ok(CliCommand::PushTree), + "cook-tree" => Ok(CliCommand::CookTree), "find" => Ok(CliCommand::Find), _ => Err(anyhow!("Unknown command '{}'\n{}\n", s, REPO_HELP_STR)), } @@ -135,8 +147,10 @@ impl ToString for CliCommand { CliCommand::Cook => "cook".to_string(), CliCommand::Unfetch => "unfetch".to_string(), CliCommand::Clean => "clean".to_string(), + CliCommand::CleanTarget => "clean-target".to_string(), CliCommand::Push => "push".to_string(), - CliCommand::Tree => "tree".to_string(), + CliCommand::PushTree => "push-tree".to_string(), + CliCommand::CookTree => "cook-tree".to_string(), CliCommand::Find => "find".to_string(), } } @@ -185,12 +199,12 @@ fn main_inner() -> anyhow::Result<()> { process::exit(1); } - let (config, command, recipe_names) = parse_args(args)?; + let (config, command, recipes) = parse_args(args)?; if command.is_building() { ident::init_ident(); } if command == CliCommand::Cook && config.cook.tui { - if let Some((name, e)) = run_tui_cook(config.clone(), recipe_names.clone())? { + if let Some((name, e)) = run_tui_cook(config.clone(), recipes.clone())? { let _ = stderr().write(e.as_bytes()); let _ = stderr().write(b"\n\n"); print_failed(&command, &name); @@ -198,17 +212,20 @@ fn main_inner() -> anyhow::Result<()> { } else { print_success(&command, None); } - return publish_packages(&recipe_names, &config.repo_dir); + return publish_packages(&recipes, &config.repo_dir); } - if command == CliCommand::Tree { - return handle_tree(&recipe_names, &config); + if command == CliCommand::PushTree { + return handle_tree(&recipes, false, &config); + } + if command == CliCommand::CookTree { + return handle_tree(&recipes, true, &config); } if command == CliCommand::Push { - return handle_push(&recipe_names, &config); + return handle_push(&recipes, &config); } let verbose = config.cook.verbose; - for recipe in &recipe_names { + for recipe in &recipes { match repo_inner(&config, &command, recipe) { Ok(_) => { if !command.is_informational() { @@ -233,14 +250,14 @@ fn main_inner() -> anyhow::Result<()> { } if command == CliCommand::Cook { - return publish_packages(&recipe_names, &config.repo_dir); + return publish_packages(&recipes, &config.repo_dir); } - if verbose { + if verbose && recipes.len() > 1 { println!( "\nCommand '{}' completed for {} recipes.", command.to_string(), - recipe_names.len() + recipes.len() ); } Ok(()) @@ -292,7 +309,7 @@ fn repo_inner( let is_cook = *command == CliCommand::Cook; let source_dir = handle_fetch(recipe, config, is_cook, logger)?; if is_cook { - handle_cook(recipe, config, source_dir, recipe.is_deps, logger)?; + handle_cook(recipe, config, source_dir, logger)?; } Ok(()) }; @@ -344,10 +361,12 @@ fn repo_inner( let _ = th.join(); result?; } - CliCommand::Unfetch => handle_clean(recipe, config, true, true)?, - CliCommand::Clean => handle_clean(recipe, config, false, true)?, + CliCommand::Unfetch | CliCommand::Clean | CliCommand::CleanTarget => { + handle_clean(recipe, config, command)? + } CliCommand::Push => unreachable!(), - CliCommand::Tree => unreachable!(), + CliCommand::PushTree => unreachable!(), + CliCommand::CookTree => unreachable!(), CliCommand::Find => println!("{}", recipe.dir.display()), }) } @@ -438,47 +457,50 @@ fn parse_args(args: Vec) -> anyhow::Result<(CliConfig, CliCommand, Vec pkg::recipes::list(""), - Some(prefix) => pkg::recipes::list("") - .into_iter() - .filter(|p| p.starts_with(prefix)) - .collect(), - } - .iter() - // TODO: Allow selecting recipes from category as host? - .map(|f| CookRecipe::from_path(f, !command.is_cleaning(), false)) - .collect::, PackageError>>()? - } else { - if recipe_names.is_empty() { + if command.is_informational() { + // avoid extra data that clobber stdout + config.cook.verbose = false; + } + + let mut preloaded_recipes: BTreeMap = BTreeMap::new(); + + if recipe_names.is_empty() { + if config.all || config.category.is_some() { + if !recipe_names.is_empty() { + bail!("Do not specify recipe names when using the --all or --category flag."); + } + if config.all && config.category.is_some() { + bail!("Do not specify both --all and --category flag."); + } + if config.all && !command.is_cleaning() { + // because read_recipe is false by logic below + // some recipes on wip folders are invalid anyway + bail!( + "Refusing to run an unrealistic command to {} all recipes", + command.to_string() + ); + } + let all_recipes_path = match &config.category { + None => pkg::recipes::list(""), + Some(prefix) => pkg::recipes::list("") + .into_iter() + .filter(|p| p.starts_with(prefix)) + .collect(), + }; + + for path in all_recipes_path { + // TODO: Allow selecting recipes from category as host? + let recipe = CookRecipe::from_path(&path, !command.is_cleaning(), false)?; + let recipe_name = recipe.name.clone(); + preloaded_recipes.insert(recipe_name.clone(), recipe); + recipe_names.push(recipe_name); + } + } else { if let Some(conf) = config.filesystem.as_ref() { recipe_names = conf .packages - .iter() - .filter_map(|(f, v)| { - match v { - PackageConfig::Build(rule) if rule == "ignore" => { - return None; - } - _ => {} - } - PackageName::new(f).ok() - }) + .keys() + .filter_map(|k| PackageName::new(k.to_string()).ok()) .collect(); } else { bail!( @@ -486,61 +508,163 @@ fn parse_args(args: Vec) -> anyhow::Result<(CliConfig, CliCommand, Vec &rule, - _ => { - if repo_binary { - "binary" - } else { - "source" - } - } - }; - if should_drop_host_packages && (last_rule == "source" || last_rule == "local") { - should_drop_host_packages = false; - } - }; - recipe - .apply_filesystem_config(last_rule) - .map_err(|e| anyhow!(e))?; - } - // If there's no building from source, drop all host toolchain - // TODO: This is more of a hack to make CI passing - if should_drop_host_packages && config.with_package_deps { - recipes = recipes.into_iter().filter(|p| !p.name.is_host()).collect(); - } } - if command.is_informational() { - // avoid extra data that clobber stdout - config.cook.verbose = false; + if command.is_cleaning() { + let recipes = if preloaded_recipes.is_empty() { + CookRecipe::from_list(recipe_names)? + } else { + preloaded_recipes.into_values().collect() + }; + + return Ok((config, command, recipes)); + } + + let mut recipes = if let Some(conf) = config.filesystem.as_ref() { + let repo_binary = conf.general.repo_binary == Some(true); + + // Expand deps for "source" + "local" and "binary" + // This is the complete map from filesystem config + let mut source_names: Vec = Vec::new(); + let mut binary_names: Vec = Vec::new(); + let mut special_rules: HashMap = HashMap::new(); + let default_rule = if repo_binary { "binary" } else { "source" }; + for (recipe_name_str, recipe_config) in conf.packages.iter() { + let Ok(recipe_name) = PackageName::new(recipe_name_str) else { + continue; + }; + let rule = match recipe_config { + PackageConfig::Build(rule) => { + special_rules.insert(recipe_name.clone(), rule.to_string()); + rule + } + _ => default_rule, + }; + + if rule == "source" || rule == "local" { + source_names.push(recipe_name); + } else if rule == "binary" { + binary_names.push(recipe_name); + } + } + source_names = CookRecipe::get_all_deps_names_recursive(&source_names, true)?; + binary_names = CookRecipe::get_all_deps_names_recursive(&binary_names, false)?; + let source_names: HashSet = source_names.into_iter().collect(); + let binary_names: HashSet = binary_names.into_iter().collect(); + + // These are list that derived from recipe_names + let mut source_recipe_names: Vec = Vec::new(); + let mut binary_recipe_names: Vec = Vec::new(); + let mut ignore_recipe_names: Vec = Vec::new(); + for recipe_name in recipe_names.iter() { + if source_names.contains(recipe_name) { + source_recipe_names.push(recipe_name.clone()); + } else if binary_names.contains(recipe_name) { + binary_recipe_names.push(recipe_name.clone()); + } else { + if special_rules + .get(recipe_name) + .is_some_and(|s| s == "ignore") + { + ignore_recipe_names.push(recipe_name.clone()); + } else if repo_binary { + binary_recipe_names.push(recipe_name.clone()); + } else { + source_recipe_names.push(recipe_name.clone()); + } + } + } + + if config.with_package_deps { + source_recipe_names = + CookRecipe::get_package_deps_recursive(&source_recipe_names, true)?; + binary_recipe_names = + CookRecipe::get_package_deps_recursive(&binary_recipe_names, true)?; + } + + let mut recipes = + if command.is_building() || (command.is_pushing() && config.with_package_deps) { + // Pushing do not need dev deps, so does binary recipes at building + let include_dev = command.is_building(); + if include_dev && default_rule == "source" { + // let's cover a very specific case, binary -> source -> binary -> dev + // in this case, we need to move that "source" to "binary", because + // that would include dev from its binary child, which is unnecessary + let mut i = 0; + while i < source_recipe_names.len() { + let name = &source_recipe_names[i]; + match special_rules.get(name) { + Some(s) if s.as_str() == "source" => { + if binary_names.contains(name) { + let bin = source_recipe_names.remove(i); + binary_recipe_names.push(bin); + continue; + } + } + _ => {} + } + i += 1; + } + } + CookRecipe::get_build_deps_recursive(&source_recipe_names, include_dev)? + } else { + CookRecipe::from_list(source_recipe_names.clone())? + }; + + let binary_recipes = + if command.is_building() || (command.is_pushing() && config.with_package_deps) { + CookRecipe::get_build_deps_recursive(&binary_recipe_names, false)? + } else { + CookRecipe::from_list(binary_recipe_names.clone())? + }; + + let ignore_recipes = CookRecipe::from_list(ignore_recipe_names.clone())?; + + recipes.extend(binary_recipes); + recipes.extend(ignore_recipes); + recipes = recipes_flatten_package_names(recipes); + + for recipe in recipes.iter_mut() { + if let Some(special_rule) = special_rules.get(&recipe.name) { + recipe.apply_filesystem_config(&special_rule)?; + continue; + } + let rule = match ( + source_names.contains(&recipe.name), + binary_names.contains(&recipe.name), + ) { + (true, true) => { + // both lists: flip logic + if repo_binary { "source" } else { "binary" } + } + (true, false) => "source", + (false, true) => "binary", + (false, false) => default_rule, + }; + if recipe.name.is_host() && rule == "binary" { + // host recipe binaries is currently not supported + continue; + } + + recipe.apply_filesystem_config(rule)?; + } + + recipes + } else { + if config.with_package_deps { + recipe_names = CookRecipe::get_package_deps_recursive(&recipe_names, true)?; + } + if command.is_building() || (command.is_pushing() && config.with_package_deps) { + let include_dev = command.is_building(); + CookRecipe::get_build_deps_recursive(&recipe_names, include_dev)? + } else { + CookRecipe::from_list(recipe_names.clone())? + } + }; + + if command.is_pushing() || !config.with_package_deps { + // In CliCommand::Cook, is_deps==true will make it skip checking source + recipes_mark_as_deps(&recipe_names, &mut recipes); } Ok((config, command, recipes)) @@ -554,7 +678,7 @@ fn handle_fetch( ) -> anyhow::Result { let source_dir = match config.cook.offline && allow_offline { true => fetch_offline(&recipe, logger), - false => fetch(&recipe, logger), + false => fetch(&recipe, !recipe.is_deps, logger), } .map_err(|e| anyhow!("failed to fetch: {:?}", e))?; @@ -565,7 +689,6 @@ fn handle_cook( recipe: &CookRecipe, config: &CliConfig, source_dir: PathBuf, - is_deps: bool, logger: &PtyOut, ) -> anyhow::Result<()> { let recipe_dir = &recipe.dir; @@ -576,15 +699,32 @@ fn handle_cook( &target_dir, &recipe.name, &recipe.recipe, - config.cook.offline, - !is_deps, + &config.cook, + !recipe.is_deps, logger, ) .map_err(|err| anyhow!("failed to build: {:?}", err))?; - package(&recipe, &stage_dirs, &auto_deps, logger) + package(&recipe, &stage_dirs, &auto_deps, &config.cook, logger) .map_err(|err| anyhow!("failed to package: {:?}", err))?; + if config.cook.clean_target || config.cook.write_filetree { + let stage_dirs = get_stage_dirs(&recipe.recipe.optional_packages, &target_dir); + for stage_dir in stage_dirs { + if stage_dir.is_dir() { + if config.cook.write_filetree { + let mut stage_files_buf = String::new(); + tree::walk_file_tree(&stage_dir, "", &mut stage_files_buf) + .context("failed to walk stage files tree")?; + fs::write(stage_dir.with_added_extension("files"), stage_files_buf) + .context("unable to write stage files")?; + } + if config.cook.clean_target { + fs::remove_dir_all(&stage_dir).context("failed to remove stage dir")?; + } + } + } + } Ok(()) } @@ -602,15 +742,17 @@ fn handle_nonstop_fail(recipe: &CookRecipe) -> anyhow::Result<()> { fn handle_clean( recipe: &CookRecipe, _config: &CliConfig, - source: bool, - target: bool, + command: &CliCommand, ) -> anyhow::Result<()> { - let dir = recipe.dir.join("target"); - if dir.exists() && target { + let mut dir = recipe.dir.join("target"); + if matches!(*command, CliCommand::CleanTarget) { + dir = dir.join(redoxer::target()) + } + if dir.exists() { fs::remove_dir_all(&dir).context(format!("failed to delete {}", dir.display()))?; } let dir = recipe.dir.join("source"); - if dir.exists() && source { + if dir.exists() && matches!(*command, CliCommand::Unfetch) { fs::remove_dir_all(&dir).context(format!("failed to delete {}", dir.display()))?; } Ok(()) @@ -665,11 +807,12 @@ fn handle_push(recipes: &Vec, config: &CliConfig) -> anyhow::Result< }; if config.with_package_deps { for (i, root) in roots.iter().enumerate() { - walk_tree_entry( + tree::walk_tree_entry( &root.name, &recipe_map, "", i == num_roots - 1, + false, &mut visited, &mut total_size, handle_push_inner, @@ -702,7 +845,7 @@ fn handle_push(recipes: &Vec, config: &CliConfig) -> anyhow::Result< println!(""); println!( "Pushed {} of {} {}", - format_size(total_size), + tree::format_size(total_size), visited.len(), if visited.len() == 1 { "package" @@ -715,7 +858,11 @@ fn handle_push(recipes: &Vec, config: &CliConfig) -> anyhow::Result< Ok(()) } -fn handle_tree(recipes: &Vec, _config: &CliConfig) -> anyhow::Result<()> { +fn handle_tree( + recipes: &Vec, + is_build_tree: bool, + _config: &CliConfig, +) -> anyhow::Result<()> { let recipe_map: HashMap<&PackageName, &CookRecipe> = recipes.iter().map(|r| (&r.name, r)).collect(); let mut total_size: u64 = 0; @@ -723,27 +870,42 @@ fn handle_tree(recipes: &Vec, _config: &CliConfig) -> anyhow::Result let roots: Vec<&CookRecipe> = recipes.iter().filter(|r| !r.is_deps).collect(); let num_roots = roots.len(); for (i, root) in roots.iter().enumerate() { - display_tree_entry( + tree::display_tree_entry( &root.name, &recipe_map, "", i == num_roots - 1, + is_build_tree, &mut visited, &mut total_size, )?; } println!(""); - println!( - "Estimated image size: {} of {} {}", - format_size(total_size), - visited.len(), - if visited.len() == 1 { - "package" - } else { - "packages" - }, - ); + if is_build_tree { + println!( + "Build summary: {} need build, {} may rebuild, with total of {} {}", + total_size, + roots.len(), + visited.len(), + if visited.len() == 1 { + "recipe" + } else { + "recipes" + }, + ); + } else { + println!( + "Estimated image size: {} of {} {}", + tree::format_size(total_size), + visited.len(), + if visited.len() == 1 { + "package" + } else { + "packages" + }, + ); + } Ok(()) } @@ -1010,7 +1172,6 @@ fn run_tui_cook( let cooker_handle = thread::spawn(move || { 'done: for (mut recipe, source_dir) in work_rx { let name = recipe.name.clone(); - let is_deps = recipe.is_deps; let (mut stdout_writer, mut stderr_writer) = setup_logger(&cooker_status_tx, &name); let mut logger = Some((&mut stdout_writer, &mut stderr_writer)); 'again: loop { @@ -1018,13 +1179,7 @@ fn run_tui_cook( .send(StatusUpdate::StartCook(name.clone())) .unwrap(); let _ = recipe.reload_recipe(); // reread recipe.toml in case we're retrying - let handler = handle_cook( - &recipe, - &cooker_config, - source_dir.clone(), - is_deps, - &logger, - ); + let handler = handle_cook(&recipe, &cooker_config, source_dir.clone(), &logger); if let Some(log_path) = cooker_config.logs_dir.as_ref() { if let Err(err_ctx) = &handler { log_to_pty!(&logger, "\n{:?}", err_ctx) @@ -1477,8 +1632,8 @@ fn run_tui_cook( kill_everything(); } - fetcher_handle.join().unwrap(); - cooker_handle.join().unwrap(); + let _ = fetcher_handle.join(); + let _ = cooker_handle.join(); Ok(app.dump_logs_on_exit) } diff --git a/src/bin/repo_builder.rs b/src/bin/repo_builder.rs index 4b14ea7b1..3142166e1 100644 --- a/src/bin/repo_builder.rs +++ b/src/bin/repo_builder.rs @@ -1,10 +1,10 @@ -use anyhow::{anyhow, bail}; use cookbook::WALK_DEPTH; use cookbook::cook::ident::{get_ident, init_ident}; use cookbook::cook::{fetch, package as cook_package}; use cookbook::recipe::CookRecipe; -use pkg::package::{Repository, SourceIdentifier}; +use cookbook::web::{CliWebConfig, generate_web}; use pkg::{Package, PackageName, recipes}; +use pkg::{Repository, SourceIdentifier}; use std::collections::{BTreeMap, BTreeSet, HashMap}; use std::env; use std::fs::{self, File}; @@ -30,18 +30,22 @@ struct CliConfig { repo_dir: PathBuf, appstream: bool, recipe_list: Vec, + web: Option, } impl CliConfig { fn parse_args() -> Result { let mut args = env::args().skip(1); - let repo_dir = args - .next() - .expect("Usage: repo_builder ..."); + let repo_dir = PathBuf::from( + args.next() + .expect("Usage: repo_builder ..."), + ); + let web = CliWebConfig::parse_args(); Ok(CliConfig { - repo_dir: PathBuf::from(repo_dir), + repo_dir, appstream: env::var("COOKBOOK_APPSTREAM").ok().as_deref() == Some("true"), recipe_list: args.collect(), + web, }) } } @@ -59,25 +63,33 @@ fn publish_packages(config: &CliConfig) -> anyhow::Result<()> { fs::create_dir_all(repo_path)?; } + // Don't publish host packages + let target_packages = &config + .recipe_list + .iter() + .map(PackageName::new) + .filter(|pkg| pkg.as_ref().is_ok_and(|p| !p.is_host())) + .collect::, _>>()?; + + if target_packages.len() == 0 { + return Ok(()); + } + + // TODO: publish cross target builds? + if std::env::var("COOKBOOK_CROSS_TARGET").is_ok_and(|x| !x.is_empty()) { + return Ok(()); + } + // Runtime dependencies include both `[package.dependencies]` and dynamically // linked packages discovered by auto_deps. // // The following adds the package dependencies of the recipes to the repo as // well. - let (recipe_list, recipe_map) = Package::new_recursive_nonstop( - &config - .recipe_list - .iter() - .map(PackageName::new) - // Don't publish host packages - .filter(|pkg| pkg.as_ref().is_ok_and(|p| !p.is_host())) - .collect::, _>>()?, - WALK_DEPTH, - ); + let (recipe_list, recipe_map) = Package::new_recursive_nonstop(target_packages, WALK_DEPTH); if recipe_list.len() == 0 { // Fail-Safe - bail!("Zero packages are passing the build"); + anyhow::bail!("Zero packages are passing the build"); } let mut appstream_sources: HashMap = HashMap::new(); @@ -117,6 +129,7 @@ fn publish_packages(config: &CliConfig) -> anyhow::Result<()> { fs::copy(&toml_src, &toml_dst)?; } + // TODO: Extract from pkgar instead to handle config.cook.clean_target == true if stage_dir.join("usr/share/metainfo").exists() { appstream_sources.insert(recipe.name().to_string(), stage_dir.clone()); } @@ -133,10 +146,8 @@ fn publish_packages(config: &CliConfig) -> anyhow::Result<()> { .join("build") .join(&target) .join("appstream"); - let appstream_pkg = repo_path.join("repo-appstream.pkgar"); fs::remove_dir_all(&appstream_root).ok(); - fs::remove_file(&appstream_pkg).ok(); fs::create_dir_all(&appstream_root)?; if !appstream_sources.is_empty() { @@ -151,17 +162,22 @@ fn publish_packages(config: &CliConfig) -> anyhow::Result<()> { compose_cmd.arg(source_path); } - compose_cmd - .status()? - .success() - .then_some(()) - .ok_or(anyhow!("appstreamcli failed"))?; - - pkgar::create( - format!("{}/build/id_ed25519.toml", root), - &appstream_pkg, - &appstream_root, - )?; + let exit_status = compose_cmd.status()?; + if exit_status.success() { + let appstream_pkg = repo_path.join("repo-appstream.pkgar"); + fs::remove_file(&appstream_pkg).ok(); + pkgar::create( + format!("{}/build/id_ed25519.toml", root), + &appstream_pkg, + &appstream_root, + )?; + } else { + eprintln!("\x1b[1;91;49mrepo - appstreamcli failed:\x1b[0m {exit_status:?}"); + for (_recipe, source_path) in &appstream_sources { + eprintln!("- {}", source_path.display()); + } + eprintln!(); + } } } @@ -257,12 +273,18 @@ fn publish_packages(config: &CliConfig) -> anyhow::Result<()> { packages.insert(package_name, version_str.to_string()); } - let output = toml::to_string(&Repository { + let repository = Repository { packages, outdated_packages, - })?; + }; + + let output = toml::to_string(&repository)?; let mut output_file = File::create(&repo_toml_path)?; output_file.write_all(output.as_bytes())?; + if let Some(conf) = &config.web { + eprintln!("\x1b[01;38;5;155mrepo - generating web content\x1b[0m"); + generate_web(&repository.packages.keys().cloned().collect(), conf); + } Ok(()) } diff --git a/src/config.rs b/src/config.rs index c8836c6d0..02347df06 100644 --- a/src/config.rs +++ b/src/config.rs @@ -16,9 +16,18 @@ pub struct CookConfigOpt { pub logs: Option, /// whether to ignore build errors pub nonstop: Option, + /// whether to archive packages with compressed format + pub compressed: Option, /// whether to print verbose logs to certain commands /// build failure still be printed anyway pub verbose: Option, + /// whether to always clean the build directory before building + pub clean_build: Option, + /// whether to always clean the target directory after building + /// (deletes everything except pkgar files) + pub clean_target: Option, + /// whether to always write stage.files metadata + pub write_filetree: Option, } #[derive(Debug, Default, Clone, Deserialize, PartialEq, Serialize)] @@ -28,7 +37,11 @@ pub struct CookConfig { pub tui: bool, pub logs: bool, pub nonstop: bool, + pub compressed: bool, pub verbose: bool, + pub clean_build: bool, + pub clean_target: bool, + pub write_filetree: bool, } impl From for CookConfig { @@ -39,7 +52,11 @@ impl From for CookConfig { tui: value.tui.unwrap(), logs: value.logs.unwrap(), nonstop: value.nonstop.unwrap(), + compressed: value.compressed.unwrap(), verbose: value.verbose.unwrap(), + clean_build: value.clean_build.unwrap(), + clean_target: value.clean_target.unwrap(), + write_filetree: value.write_filetree.unwrap(), } } } @@ -85,12 +102,27 @@ pub fn init_config() { if config.cook_opt.offline.is_none() { config.cook_opt.offline = Some(extract_env("COOKBOOK_OFFLINE", false)); } + if config.cook_opt.compressed.is_none() { + config.cook_opt.compressed = Some(extract_env("COOKBOOK_COMPRESSED", false)); + } if config.cook_opt.verbose.is_none() { config.cook_opt.verbose = Some(extract_env("COOKBOOK_VERBOSE", true)); } if config.cook_opt.nonstop.is_none() { config.cook_opt.nonstop = Some(extract_env("COOKBOOK_NONSTOP", false)); } + if config.cook_opt.clean_build.is_none() { + config.cook_opt.clean_build = Some(extract_env("COOKBOOK_CLEAN_BUILD", false)); + } + if config.cook_opt.clean_target.is_none() { + config.cook_opt.clean_target = Some(extract_env("COOKBOOK_CLEAN_TARGET", false)); + } + if config.cook_opt.write_filetree.is_none() { + config.cook_opt.write_filetree = Some(extract_env( + "COOKBOOK_WRITE_FILETREE", + config.cook_opt.clean_target.unwrap_or(false) || extract_env("COOKBOOK_WEB", false), + )); + } if config.mirrors.len() == 0 { // The GNU FTP mirror below is automatically inserted for convenience // You can choose other mirrors by setting it on cookbook.toml diff --git a/src/cook.rs b/src/cook.rs index 70a53a066..9c989215c 100644 --- a/src/cook.rs +++ b/src/cook.rs @@ -1,6 +1,7 @@ // avoid confusion with build.rs pub mod cook_build; pub mod fetch; +pub mod fetch_repo; pub mod fs; pub mod ident; pub mod package; diff --git a/src/cook/cook_build.rs b/src/cook/cook_build.rs index 3b7b9255a..47b02f3e0 100644 --- a/src/cook/cook_build.rs +++ b/src/cook/cook_build.rs @@ -1,6 +1,7 @@ -use pkg::package::PackageError; +use pkg::PackageError; use pkg::{Package, PackageName}; +use crate::config::CookConfig; use crate::cook::fs::*; use crate::cook::package::{package_source_paths, package_target}; use crate::cook::pty::PtyOut; @@ -172,15 +173,19 @@ pub fn build( target_dir: &Path, name: &PackageName, recipe: &Recipe, - offline_mode: bool, + cook_config: &CookConfig, check_source: bool, logger: &PtyOut, ) -> Result<(Vec, BTreeSet), String> { let sysroot_dir = target_dir.join("sysroot"); let toolchain_dir = target_dir.join("toolchain"); let stage_dirs = get_stage_dirs(&recipe.optional_packages, target_dir); - let cli_verbose = crate::config::get_config().cook.verbose; - let cli_jobs = crate::config::get_config().cook.jobs; + let stage_pkgars: Vec = stage_dirs + .iter() + .map(|p| p.with_added_extension("pkgar")) + .collect(); + let cli_verbose = cook_config.verbose; + let cli_jobs = cook_config.jobs; if recipe.build.kind == BuildKind::None { // metapackages don't need to do anything here return Ok((stage_dirs, BTreeSet::new())); @@ -193,8 +198,8 @@ pub fn build( &recipe.build.dev_dependencies[..], ] .concat(); - let build_deps = CookRecipe::get_build_deps_recursive(&build_deps, false, false) - .map_err(|e| format!("{:?}", e))?; + let build_deps = + CookRecipe::get_build_deps_recursive(&build_deps, false).map_err(|e| format!("{:?}", e))?; for dependency in build_deps.iter() { let (_, pkgar, _) = dependency.stage_paths(); if dependency.name.is_host() { @@ -204,9 +209,32 @@ pub fn build( } } - if !check_source && stage_dirs.iter().all(|dir| dir.exists()) { - let auto_deps = build_auto_deps(recipe, target_dir, &stage_dirs, dep_pkgars, logger)?; - return Ok((stage_dirs, auto_deps)); + macro_rules! make_auto_deps { + () => { + build_auto_deps( + recipe, + target_dir, + &stage_dirs, + cook_config, + dep_pkgars, + logger, + ) + }; + } + + if !check_source { + let stage_present = if cook_config.clean_target { + stage_pkgars.iter().all(|file| file.is_file()) + } else { + stage_dirs.iter().all(|file| file.is_dir()) + }; + if stage_present { + if cli_verbose { + log_to_pty!(logger, "DEBUG: using cached build, not checking source"); + } + let auto_deps = make_auto_deps!()?; + return Ok((stage_dirs, auto_deps)); + } } let mut source_modified = modified_dir_ignore_git(source_dir).unwrap_or(SystemTime::UNIX_EPOCH); @@ -215,6 +243,7 @@ pub fn build( source_modified = recipe_modified } } + let deps_modified = dep_pkgars .iter() .map(|(_dep, pkgar)| modified(pkgar)) @@ -226,9 +255,33 @@ pub fn build( .max() .unwrap_or(Ok(SystemTime::UNIX_EPOCH))?; + // check stage dir modified against pkgar files, any files missing will result in UNIX_EPOCH + let stage_modified = modified_all(&stage_pkgars, modified).unwrap_or(SystemTime::UNIX_EPOCH); + // Rebuild stage if source is newer + if stage_modified < source_modified + || stage_modified < deps_modified + || stage_modified < deps_host_modified + { + for stage_dir in &stage_dirs { + if stage_dir.is_dir() { + log_to_pty!(logger, "DEBUG: updating '{}'", stage_dir.display()); + remove_stage_dir(stage_dir)?; + } + } + } else { + if cli_verbose { + log_to_pty!(logger, "DEBUG: using cached build"); + } + if cook_config.clean_target { + // stop early otherwise we'll end up rebuilding + let auto_deps = make_auto_deps!()?; + return Ok((stage_dirs, auto_deps)); + } + } + // Rebuild sysroot if source is newer if recipe.build.kind != BuildKind::Remote { - build_deps_dir( + let updated = build_deps_dir( logger, &sysroot_dir, target_dir.join("sysroot.tmp"), @@ -240,9 +293,12 @@ pub fn build( source_modified, deps_modified, )?; + if cli_verbose && !updated { + log_to_pty!(logger, "DEBUG: using cached sysroot"); + } } if recipe.build.kind != BuildKind::Remote && !name.is_host() && dep_host_pkgars.len() > 0 { - build_deps_dir( + let updated = build_deps_dir( logger, &toolchain_dir, target_dir.join("toolchain.tmp"), @@ -250,35 +306,22 @@ pub fn build( source_modified, deps_host_modified, )?; - } - - // Rebuild stage if source is newer - if stage_dirs.iter().any(|dir| dir.is_dir()) { - let stage_modified = - modified_all(&stage_dirs, modified_dir).unwrap_or(SystemTime::UNIX_EPOCH); - if stage_modified < source_modified - || stage_modified < deps_modified - || stage_modified < deps_host_modified - { - for stage_dir in &stage_dirs { - log_to_pty!(logger, "DEBUG: updating '{}'", stage_dir.display()); - remove_stage_dir(stage_dir)?; - } + if cli_verbose && !updated { + log_to_pty!(logger, "DEBUG: using cached toolchain"); } } - if !stage_dirs.last().is_some_and(|dir| dir.is_dir()) { - let stage_dir = stage_dirs - .last() - .expect("Should have atleast one stage dir"); + let stage_dir = stage_dirs + .last() + .expect("Should have atleast one stage dir"); + let build_dir = get_build_dir(target_dir); + if !stage_dir.is_dir() { // Create stage.tmp let stage_dir_tmp = target_dir.join("stage.tmp"); create_dir_clean(&stage_dir_tmp)?; - // Create build, if it does not exist - //TODO: flag for clean builds where build is wiped out - let build_dir = target_dir.join("build"); - if !build_dir.is_dir() { + // Create build dir, if it does not exist + if cook_config.clean_build || !build_dir.is_dir() { create_dir_clean(&build_dir)?; } @@ -294,20 +337,46 @@ pub fn build( }; if recipe.build.kind == BuildKind::Remote { - return build_remote(stage_dirs, recipe, target_dir); + return build_remote(stage_dirs, recipe, target_dir, cook_config); } + //TODO: better integration with redoxer (library instead of binary) //TODO: configurable target //TODO: Add more configurability, convert scripts to Rust? let script = match &recipe.build.kind { BuildKind::Cargo { - package_path, + cargopath, cargoflags, + cargopackages, + cargoexamples, } => { - format!( - "DYNAMIC_INIT\nPACKAGE_PATH={} cookbook_cargo {cargoflags}", - package_path.as_deref().unwrap_or(".") - ) + let mut script = format!( + "DYNAMIC_INIT\n{}\nCOOKBOOK_CARGO_PATH={} ", + flags_fn("COOKBOOK_CARGO_FLAGS", cargoflags), + cargopath.as_deref().unwrap_or(".") + ); + if cargopackages.len() == 0 && cargoexamples.len() == 0 { + script += "cookbook_cargo\n" + } else { + if cargopackages.len() > 0 { + script += "cookbook_cargo_packages"; + for package in cargopackages { + script += " "; + script += package; + } + script += "\n"; + } + if cargoexamples.len() > 0 { + script += "cookbook_cargo_examples"; + for example in cargoexamples { + script += " "; + script += example; + } + script += "\n"; + } + } + + script } BuildKind::Configure { configureflags } => format!( "DYNAMIC_INIT\n{}cookbook_configure", @@ -336,13 +405,14 @@ pub fn build( let cookbook_sysroot = sysroot_dir.canonicalize().unwrap(); let cookbook_toolchain = toolchain_dir.canonicalize().ok(); let bash_args = if cli_verbose { "-ex" } else { "-e" }; - let mut command = if is_redox() { - let mut command = Command::new("bash"); + let local_redoxer = Path::new("target/release/cookbook_redoxer"); + let mut command = if is_redox() && !local_redoxer.is_file() { + let mut command = Command::new("cookbook_redoxer"); command.arg(bash_args); - command.env("COOKBOOK_REDOXER", "cargo"); + command.env("COOKBOOK_REDOXER", "cookbook_redoxer"); command } else { - let cookbook_redoxer = Path::new("target/release/cookbook_redoxer") + let cookbook_redoxer = local_redoxer .canonicalize() .unwrap_or(PathBuf::from("/bin/false")); let mut command = Command::new(&cookbook_redoxer); @@ -369,7 +439,7 @@ pub fn build( if cli_verbose { command.env("COOKBOOK_VERBOSE", "1"); } - if offline_mode { + if cook_config.offline { command.env("COOKBOOK_OFFLINE", "1"); } command @@ -408,8 +478,16 @@ pub fn build( rename(&stage_dir_tmp, &stage_dir)?; } - let auto_deps = build_auto_deps(recipe, target_dir, &stage_dirs, dep_pkgars, logger)?; + if cook_config.clean_target { + remove_all(&build_dir)?; + remove_all(&sysroot_dir)?; + if toolchain_dir.is_dir() { + remove_all(&toolchain_dir)?; + } + // don't remove stage dir yet + } + let auto_deps = make_auto_deps!()?; Ok((stage_dirs, auto_deps)) } @@ -422,21 +500,44 @@ pub fn remove_stage_dir(stage_dir: &PathBuf) -> Result<(), String> { remove_all(&stage_file)?; } let stage_meta = stage_dir.with_added_extension("toml"); - Ok(if stage_meta.is_file() { + if stage_meta.is_file() { remove_all(&stage_meta)?; - }) + } + let stage_files = stage_dir.with_added_extension("files"); + if stage_files.is_file() { + remove_all(&stage_files)?; + } + Ok(()) } pub fn get_stage_dirs(features: &Vec, target_dir: &Path) -> Vec { + let mut target_dir = target_dir.to_path_buf(); + if let Some(cross_target) = std::env::var("COOKBOOK_CROSS_TARGET").ok() { + if cross_target != "" { + // TODO: automatically pass COOKBOOK_CROSS_GNU_TARGET? + target_dir = target_dir.join(cross_target) + } + } let mut v = Vec::new(); for f in features { v.push(target_dir.join(format!("stage.{}", f.name))); } // intentionally added last as it contains leftover files from package features - v.push(target_dir.join(format!("stage"))); + v.push(target_dir.join("stage")); v } +pub fn get_build_dir(target_dir: &Path) -> PathBuf { + let mut target_dir = target_dir.to_path_buf(); + if let Some(cross_target) = std::env::var("COOKBOOK_CROSS_TARGET").ok() { + if cross_target != "" { + // TODO: automatically pass COOKBOOK_CROSS_GNU_TARGET? + target_dir = target_dir.join(cross_target) + } + } + target_dir.join("build") +} + fn build_deps_dir( logger: &PtyOut, deps_dir: &PathBuf, @@ -444,15 +545,19 @@ fn build_deps_dir( dep_pkgars: &BTreeSet<(PackageName, PathBuf)>, source_modified: SystemTime, deps_modified: SystemTime, -) -> Result<(), String> { +) -> Result { if deps_dir.is_dir() { let tags_dir = deps_dir.join(".tags"); let sysroot_modified = modified_dir(&tags_dir).unwrap_or(SystemTime::UNIX_EPOCH); if sysroot_modified < source_modified || sysroot_modified < deps_modified - || dep_pkgars - .iter() - .any(|(pkg, _)| !tags_dir.join(pkg.as_str()).is_file()) + || !check_files_present( + &tags_dir, + &dep_pkgars + .iter() + .map(|(name, _)| name.without_host()) + .collect(), + )? { log_to_pty!(logger, "DEBUG: updating '{}'", deps_dir.display()); remove_all(deps_dir)?; @@ -476,7 +581,7 @@ fn build_deps_dir( let pkey_path = "build/id_ed25519.pub.toml"; for (name, archive_path) in dep_pkgars { - let tag_file = tags_dir.join(name.without_host().as_str()); + let tag_file = tags_dir.join(name.without_prefix()); fs::write(&tag_file, "") .map_err(|e| format!("failed to write tag file {}: {:?}", tag_file.display(), e))?; pkgar::extract(pkey_path, &archive_path, deps_dir_tmp.to_str().unwrap()).map_err( @@ -493,9 +598,11 @@ fn build_deps_dir( // Move sysroot.tmp to sysroot atomically rename(&deps_dir_tmp, deps_dir)?; + + return Ok(true); } - Ok(()) + Ok(false) } /// Calculate automatic dependencies @@ -503,13 +610,22 @@ fn build_auto_deps( recipe: &Recipe, target_dir: &Path, stage_dirs: &Vec, + cook_config: &CookConfig, mut dep_pkgars: BTreeSet<(PackageName, PathBuf)>, logger: &PtyOut, ) -> Result, String> { let auto_deps_path = target_dir.join("auto_deps.toml"); - if auto_deps_path.is_file() && modified(&auto_deps_path)? < modified_all(stage_dirs, modified)? - { - remove_all(&auto_deps_path)? + if auto_deps_path.is_file() && !cook_config.clean_target { + if modified(&auto_deps_path)? < modified_all(stage_dirs, modified)? { + if cook_config.verbose { + log_to_pty!(logger, "DEBUG: updating {}", auto_deps_path.display()); + } + remove_all(&auto_deps_path)?; + } else { + if cook_config.verbose { + log_to_pty!(logger, "DEBUG: Using cached auto deps"); + } + } } let auto_deps = if auto_deps_path.exists() { @@ -539,15 +655,20 @@ pub fn build_remote( stage_dirs: Vec, recipe: &Recipe, target_dir: &Path, + cook_config: &CookConfig, ) -> Result<(Vec, BTreeSet), String> { let source_toml = target_dir.join("source.toml"); - let source_pubkey = target_dir.join("id_ed25519.pub.toml"); + let source_pubkey = "build/remotes/pub_key_static.redox-os.org.toml"; let packages = recipe.get_packages_list(); for (i, package) in packages.into_iter().enumerate() { // declare pkg dependencies as autodeps dependency let stage_dir = &stage_dirs[i]; + if cook_config.clean_target && stage_dir.with_added_extension("pkgar").is_file() { + continue; + } + if !stage_dir.is_dir() { let (_, source_pkgar, _) = package_source_paths(package, &target_dir); let stage_dir_tmp = target_dir.join("stage.tmp"); @@ -565,9 +686,10 @@ pub fn build_remote( } let auto_deps_path = target_dir.join("auto_deps.toml"); - if auto_deps_path.is_file() && modified(&auto_deps_path)? < modified_all(&stage_dirs, modified)? - { - remove_all(&auto_deps_path)? + if auto_deps_path.is_file() && !cook_config.clean_target { + if modified(&auto_deps_path)? < modified_all(&stage_dirs, modified)? { + remove_all(&auto_deps_path)? + } } let auto_deps = if auto_deps_path.exists() { diff --git a/src/cook/fetch.rs b/src/cook/fetch.rs index 5c31a6a87..ead14a44c 100644 --- a/src/cook/fetch.rs +++ b/src/cook/fetch.rs @@ -1,7 +1,6 @@ -use pkg::package::SourceIdentifier; - -use crate::REMOTE_PKG_SOURCE; use crate::config::translate_mirror; +use crate::cook::fetch_repo; +use crate::cook::fetch_repo::PlainPtyCallback; use crate::cook::fs::*; use crate::cook::package::get_package_name; use crate::cook::package::package_source_paths; @@ -12,11 +11,15 @@ use crate::log_to_pty; use crate::recipe::BuildKind; use crate::recipe::CookRecipe; use crate::{blake3, recipe::SourceRecipe}; +use pkg::SourceIdentifier; +use pkg::net_backend::DownloadBackendWriter; +use std::cell::RefCell; use std::fs; use std::fs::File; use std::io::Read; use std::path::{Path, PathBuf}; use std::process::Command; +use std::rc::Rc; pub(crate) fn get_blake3(path: &PathBuf, show_progress: bool) -> Result { if show_progress { @@ -52,7 +55,7 @@ pub fn fetch_offline(recipe: &CookRecipe, logger: &PtyOut) -> Result { - fetch(recipe, logger)?; + fetch(recipe, true, logger)?; "local_source".to_string() } Some(SourceRecipe::SameAs { same_as }) => { @@ -114,7 +117,7 @@ pub fn fetch_offline(recipe: &CookRecipe, logger: &PtyOut) -> Result Result { +pub fn fetch(recipe: &CookRecipe, check_source: bool, logger: &PtyOut) -> Result { let recipe_dir = &recipe.dir; let source_dir = recipe_dir.join("source"); match recipe.recipe.build.kind { @@ -134,7 +137,7 @@ pub fn fetch(recipe: &CookRecipe, logger: &PtyOut) -> Result { Some(SourceRecipe::SameAs { same_as }) => { let recipe = fetch_resolve_canon(recipe_dir, &same_as, recipe.name.is_host())?; // recursively fetch - fetch(&recipe, logger)?; + fetch(&recipe, check_source, logger)?; fetch_make_symlink(&source_dir, &same_as)?; fetch_get_source_info(&recipe)?.source_identifier } @@ -195,6 +198,8 @@ pub fn fetch(recipe: &CookRecipe, logger: &PtyOut) -> Result { rename(&source_dir_tmp, &source_dir)?; false + } else if !check_source { + true } else { if !source_dir.join(".git").is_dir() { return Err(format!( @@ -228,12 +233,22 @@ pub fn fetch(recipe: &CookRecipe, logger: &PtyOut) -> Result { let (_, remote_branch, remote_name, remote_url) = get_git_remote_tracking(&source_dir)?; // TODO: how to get default branch and compare it here? - if remote_name == "origin" && &remote_url == chop_dot_git(git) { - let fetch_rev = - get_git_fetch_rev(&source_dir, &remote_url, &remote_branch)?; - fetch_rev == head_rev - } else { + if let Some(branch) = branch + && branch != &remote_branch + { false + } else if remote_name != "origin" { + false + } else if &remote_url != chop_dot_git(git) { + false + } else { + match get_git_fetch_rev(&source_dir, &remote_url, &remote_branch) { + Ok(fetch_rev) => fetch_rev == head_rev, + Err(e) => { + log_to_pty!(logger, "{}", e); + false + } + } } } }; @@ -313,28 +328,29 @@ pub fn fetch(recipe: &CookRecipe, logger: &PtyOut) -> Result { }) => { let source_tar = recipe_dir.join("source.tar"); let mut tar_updated = false; - while { + loop { if !source_tar.is_file() { tar_updated = true; download_wget(&tar, &source_tar, logger)?; } + if !check_source { + break; + } let source_tar_blake3 = get_blake3(&source_tar, tar_updated && logger.is_none())?; if let Some(blake3) = blake3 { - if source_tar_blake3 != *blake3 { - if tar_updated { - return Err(format!( - "The downloaded tar blake3 '{source_tar_blake3}' is not equal to blake3 in recipe.toml" - )); - } else { - log_to_pty!( - logger, - "DEBUG: source tar blake3 is different and need redownload" - ); - remove_all(&source_tar)?; - } - true + if source_tar_blake3 == *blake3 { + break; + } + if tar_updated { + return Err(format!( + "The downloaded tar blake3 '{source_tar_blake3}' is not equal to blake3 in recipe.toml" + )); } else { - false + log_to_pty!( + logger, + "DEBUG: source tar blake3 is different and need redownload" + ); + remove_all(&source_tar)?; } } else { //TODO: set blake3 hash on the recipe with something like "cook fix" @@ -344,9 +360,9 @@ pub fn fetch(recipe: &CookRecipe, logger: &PtyOut) -> Result { source_tar.display(), source_tar_blake3 ); - false + break; } - } {} + } if source_dir.is_dir() { if tar_updated || fetch_is_patches_newer(recipe_dir, patches, &source_dir)? { log_to_pty!( @@ -383,11 +399,14 @@ pub fn fetch(recipe: &CookRecipe, logger: &PtyOut) -> Result { }; if let BuildKind::Cargo { - package_path, + cargopath, cargoflags: _, + cargopackages: _, + cargoexamples: _, } = &recipe.recipe.build.kind { - fetch_cargo(&source_dir, package_path.as_ref(), logger)?; + // TODO: No need to fetch if !check_source and already fetched? + fetch_cargo(&source_dir, cargopath.as_ref(), logger)?; } fetch_apply_source_info(recipe, ident)?; @@ -467,18 +486,19 @@ pub(crate) fn fetch_extract_tar( pub(crate) fn fetch_cargo( source_dir: &PathBuf, - package_path: Option<&String>, + cargopath: Option<&String>, logger: &PtyOut, ) -> Result<(), String> { let mut source_dir = source_dir.clone(); - if let Some(package_path) = package_path { - source_dir = source_dir.join(package_path); + if let Some(cargopath) = cargopath { + source_dir = source_dir.join(cargopath); } - let mut command = if is_redox() { - Command::new("cargo") + let local_redoxer = Path::new("target/release/cookbook_redoxer"); + let mut command = if is_redox() && !local_redoxer.is_file() { + Command::new("cookbook_redoxer") } else { - let cookbook_redoxer = Path::new("target/release/cookbook_redoxer") + let cookbook_redoxer = local_redoxer .canonicalize() .unwrap_or(PathBuf::from("cargo")); Command::new(&cookbook_redoxer) @@ -490,34 +510,18 @@ pub(crate) fn fetch_cargo( Ok(()) } -fn get_remote_url(name: &str, ext: &str) -> String { - return format!( - "{}/{}/{}.{}", - REMOTE_PKG_SOURCE, - redoxer::target(), - name, - ext - ); -} - -fn get_pubkey_url() -> String { - return format!("{}/id_ed25519.pub.toml", REMOTE_PKG_SOURCE); -} - pub fn fetch_remote( recipe_dir: &Path, recipe: &CookRecipe, offline_mode: bool, logger: &PtyOut, ) -> Result<(), String> { + let (mut manager, repository) = fetch_repo::get_binary_repo(); let target_dir = create_target_dir(recipe_dir, recipe.target)?; - let source_pubkey = target_dir.join("id_ed25519.pub.toml"); - if !offline_mode { - download_wget(&get_pubkey_url(), &source_pubkey, logger)?; - } else { - offline_check_exists(&source_pubkey)?; + if logger.is_some() { + let writer = logger.as_ref().unwrap().1.try_clone().unwrap(); + manager.set_callback(Rc::new(RefCell::new(PlainPtyCallback::new(writer)))); } - let packages = recipe.recipe.get_packages_list(); let name = recipe_dir @@ -529,15 +533,47 @@ pub fn fetch_remote( for package in packages { let (_, source_pkgar, source_toml) = package_source_paths(package, &target_dir); let source_name = get_package_name(name, package); + let Some(repo_blake3) = repository.packages.get(&source_name) else { + return Err(format!( + "Package {source_name} does not exist in server repository" + )); + }; if !offline_mode { - //TODO: Check freshness - download_wget( - &get_remote_url(&source_name, "pkgar"), - &source_pkgar, - logger, - )?; - download_wget(&get_remote_url(&source_name, "toml"), &source_toml, logger)?; + if source_toml.is_file() { + let pkg_toml = read_source_toml(&source_toml)?; + if &pkg_toml.blake3 != repo_blake3 { + log_to_pty!(logger, "DEBUG: Updating source binaries"); + remove_all(&source_toml)?; + if source_pkgar.is_file() { + remove_all(&source_pkgar)?; + } + } + } + + if !source_toml.is_file() { + { + let toml_file = File::create(&source_toml) + .map_err(|e| format!("Unable to create source.toml: {e:?}"))?; + let mut writer = DownloadBackendWriter::ToFile(toml_file); + manager + .download(&format!("{}.toml", &source_name), None, &mut writer) + .map_err(|e| format!("Unable to download source.toml: {e:?}"))?; + } + let pkg_toml = read_source_toml(&source_toml)?; + let pkgar_file = File::create(&source_pkgar) + .map_err(|e| format!("Unable to create source.pkgar: {e:?}"))?; + let mut writer = DownloadBackendWriter::ToFile(pkgar_file); + manager + .download( + &format!("{}.pkgar", &source_name), + Some(pkg_toml.network_size), + &mut writer, + ) + .map_err(|e| format!("Unable to download source.pkgar: {e:?}"))?; + } + + // manager.download(file, 0, dest) } else { offline_check_exists(&source_pkgar)?; offline_check_exists(&source_toml)?; @@ -545,14 +581,7 @@ pub fn fetch_remote( // guaranteed to exist once if package.is_none() { - let mut file = File::open(&source_toml) - .map_err(|e| format!("Unable to open source.toml: {e:?}"))?; - let mut contents = String::new(); - file.read_to_string(&mut contents) - .map_err(|e| format!("Unable to read source.toml: {e:?}"))?; - - let pkg_toml = pkg::Package::from_toml(&contents) - .map_err(|e| format!("Unable to parse source.toml: {e:?}"))?; + let pkg_toml = read_source_toml(&source_toml)?; fetch_apply_source_info_from_remote( recipe, @@ -569,6 +598,17 @@ pub fn fetch_remote( Ok(()) } +fn read_source_toml(source_toml: &Path) -> Result { + let mut file = + File::open(source_toml).map_err(|e| format!("Unable to open source.toml: {e:?}"))?; + let mut contents = String::new(); + file.read_to_string(&mut contents) + .map_err(|e| format!("Unable to read source.toml: {e:?}"))?; + let pkg_toml = pkg::Package::from_toml(&contents) + .map_err(|e| format!("Unable to parse source.toml: {e:?}"))?; + Ok(pkg_toml) +} + pub(crate) fn fetch_is_patches_newer( recipe_dir: &Path, patches: &Vec, @@ -640,7 +680,7 @@ pub(crate) fn fetch_apply_source_info( source_identifier: String, ) -> Result<(), String> { let ident = crate::cook::ident::get_ident(); - let info = pkg::package::SourceIdentifier { + let info = SourceIdentifier { commit_identifier: ident.commit.to_string(), time_identifier: ident.time.to_string(), source_identifier: source_identifier, @@ -651,7 +691,7 @@ pub(crate) fn fetch_apply_source_info( pub(crate) fn fetch_apply_source_info_from_remote( recipe: &CookRecipe, - info: &pkg::package::SourceIdentifier, + info: &SourceIdentifier, ) -> Result<(), String> { let target_dir = create_target_dir(&recipe.dir, recipe.target)?; let source_toml_path = target_dir.join("source_info.toml"); diff --git a/src/cook/fetch_repo.rs b/src/cook/fetch_repo.rs new file mode 100644 index 000000000..799fe49be --- /dev/null +++ b/src/cook/fetch_repo.rs @@ -0,0 +1,204 @@ +use std::{ + cell::RefCell, + io::{PipeWriter, Write}, + path::{Path, PathBuf}, + rc::Rc, + time::Duration, +}; + +use pkg::{ + PackageName, RemotePackage, RepoManager, Repository, + callback::{Callback, SilentCallback}, + net_backend::{CurlBackend, DownloadBackend}, +}; + +// TODO: This is a workaround, but as long as whole +// fetch operation is in single thread, this is ok +thread_local! { +static BINARY_REPO: RefCell> = RefCell::new(None); +} + +fn load_cached_repo(path: &Path) -> Option { + let metadata = std::fs::metadata(path).ok()?; + + if !crate::config::get_config().cook.offline { + let yesterday = std::time::SystemTime::now().checked_sub(Duration::from_secs(24 * 3600))?; + if metadata.modified().ok()? < yesterday { + // stale cache + let _ = std::fs::remove_file(path); + return None; + } + } + + let toml_str = std::fs::read_to_string(path).ok()?; + Repository::from_toml(&toml_str).ok() +} + +fn init_binary_repo() -> (RepoManager, Repository) { + let callback = Rc::new(RefCell::new(SilentCallback::new())); + let download_backend = CurlBackend::new().expect("Curl not found"); + let mut repo = RepoManager::new(callback, Box::new(download_backend)); + + repo.add_remote(crate::REMOTE_PKG_SOURCE, redoxer::target()) + .expect("Unable to add remote"); + + let repo_path = PathBuf::from("build/remotes"); + repo.set_download_path(repo_path.clone()); + repo.sync_keys().expect("Unable to sync keys"); + + let repo_toml = load_cached_repo(&repo_path.join("repo.toml")).unwrap_or_else(|| { + let (toml_str, _) = repo + .get_package_toml(&PackageName::new("repo").unwrap()) + .expect("Failed to fetch repo.toml"); + Repository::from_toml(&toml_str).expect("Fetched repo.toml is invalid") + }); + + (repo, repo_toml) +} + +pub fn get_binary_repo() -> (RepoManager, Repository) { + BINARY_REPO.with(|cell| { + let mut opt = cell.borrow_mut(); + if opt.is_none() { + *opt = Some(init_binary_repo()); + } + let (repo, repo_toml) = opt.as_ref().unwrap(); + ((*repo).clone(), repo_toml.clone()) + }) +} + +pub struct PlainPtyCallback { + size: u64, + unknown_size: bool, + pos: u64, + fetch_processed: usize, + fetch_total: usize, + interactive: bool, + download_file: Option, + pty: PipeWriter, +} + +impl PlainPtyCallback { + pub fn new(pty: PipeWriter) -> Self { + Self { + size: 0, + unknown_size: false, + pos: 0, + fetch_processed: 0, + fetch_total: 0, + interactive: false, + download_file: None, + pty, + } + } + + /// Set if user require to agree on terminal + pub fn set_interactive(&mut self, enabled: bool) { + self.interactive = enabled; + } + + fn flush(&self) { + let _ = std::io::stderr().flush(); + } + + pub fn format_size(bytes: u64) -> String { + if bytes == 0 { + return "0 B".to_string(); + } + const UNITS: [&str; 5] = ["B", "KiB", "MiB", "GiB", "TiB"]; + let i = (bytes as f64).log(1024.0).floor() as usize; + let size = bytes as f64 / 1024.0_f64.powi(i as i32); + format!("{:.2} {}", size, UNITS[i]) + } + + fn downloading_str(&self) -> &'static str { + "Downloading" + } +} + +const RESET_LINE: &str = "\r\x1b[2K"; + +impl Callback for PlainPtyCallback { + fn fetch_start(&mut self, initial_count: usize) { + self.fetch_total = 0; + self.fetch_processed = 0; + self.fetch_package_increment(0, initial_count); + } + + fn fetch_package_name(&mut self, pkg_name: &PackageName) { + // resuming after fetch_package_increment + let _ = write!(&self.pty, " {}", pkg_name.as_str()); + self.flush(); + } + + fn fetch_package_increment(&mut self, added_processed: usize, added_count: usize) { + self.fetch_processed += added_processed; + self.fetch_total += added_count; + + let _ = write!( + &self.pty, + "{RESET_LINE}Fetching: [{}/{}]", + self.fetch_processed, self.fetch_total + ); + self.flush(); + } + + fn fetch_end(&mut self) { + if self.fetch_processed == self.fetch_total { + let _ = writeln!(&self.pty, "{RESET_LINE}Fetch complete."); + } else { + let _ = writeln!(&self.pty, "{RESET_LINE}Fetch incomplete."); + } + } + + fn download_start(&mut self, length: u64, file: &str) { + self.size = length; + self.unknown_size = length == 0; + self.pos = 0; + if !self.unknown_size { + let _ = write!(&self.pty, "{RESET_LINE}{} {file}", self.downloading_str()); + self.download_file = Some(file.to_string()); + self.flush(); + } + } + + fn download_increment(&mut self, downloaded: u64) { + self.pos += downloaded; + if self.unknown_size { + self.size += downloaded; + } + if self.unknown_size { + return; + } + + // keep using MB for consistency + let pos_mb = self.pos as f64 / 1_048_576.0; + let size_mb = self.size as f64 / 1_048_576.0; + let file_name = self + .download_file + .as_ref() + .map(|s| s.as_str()) + .unwrap_or(""); + let _ = write!( + &self.pty, + "{RESET_LINE}{} {} [{:.2} MB / {:.2} MB]", + self.downloading_str(), + file_name, + pos_mb, + size_mb + ); + self.flush(); + } + + fn download_end(&mut self) { + if !self.unknown_size { + let _ = writeln!(&self.pty, ""); + self.download_file = None; + } + } + + fn install_extract(&mut self, remote_pkg: &RemotePackage) { + let _ = writeln!(&self.pty, "Extracting {}...", remote_pkg.package.name); + self.flush(); + } +} diff --git a/src/cook/fs.rs b/src/cook/fs.rs index b32558bf1..3d81d77de 100644 --- a/src/cook/fs.rs +++ b/src/cook/fs.rs @@ -1,5 +1,6 @@ use serde::Serialize; use std::{ + collections::BTreeSet, fs, io::{self, Write}, path::{Path, PathBuf}, @@ -33,7 +34,8 @@ pub fn create_dir_clean(dir: &Path) -> Result<(), String> { if dir.is_dir() { remove_all(dir)?; } - create_dir(dir) + fs::create_dir_all(dir) + .map_err(|err| format!("failed to create '{}': {}\n{:?}", dir.display(), err, err)) } pub fn create_target_dir(recipe_dir: &Path, target: &'static str) -> Result { @@ -188,6 +190,32 @@ pub fn modified_dir_ignore_git(dir: &Path) -> Result { }) } +pub fn check_files_present(dir: &Path, expected_files: &BTreeSet<&str>) -> Result { + let entries = fs::read_dir(dir) + .map_err(|err| format!("failed to get list files of '{}': {:?}", dir.display(), err))?; + + let mut matches = 0; + for entry_res in entries { + let entry = entry_res + .map_err(|err| format!("failed to get file entry of '{}': {:?}", dir.display(), err))?; + + let filename = entry.file_name(); + let Some(filename) = filename.to_str() else { + continue; + }; + + if expected_files.contains(&filename) { + matches += 1 + } else if filename.starts_with('.') { + continue; + } else { + return Ok(false); + } + } + + Ok(matches == expected_files.len()) +} + pub fn rename(src: &Path, dst: &Path) -> Result<(), String> { fs::rename(src, dst).map_err(|err| { format!( @@ -292,9 +320,14 @@ pub fn get_git_head_rev(dir: &PathBuf) -> Result<(String, bool), String> { let head_str = fs::read_to_string(&git_head) .map_err(|e| format!("unable to read {path}: {e}", path = git_head.display()))?; if head_str.starts_with("ref: ") { - let git_ref = dir.join(".git").join(head_str["ref: ".len()..].trim_end()); - let ref_str = fs::read_to_string(&git_ref) - .map_err(|e| format!("unable to read {path}: {e}", path = git_ref.display()))?; + let entry = head_str["ref: ".len()..].trim_end(); + let git_ref = dir.join(".git").join(entry); + let ref_str = if git_ref.is_file() { + fs::read_to_string(&git_ref) + .map_err(|e| format!("unable to read {path}: {e}", path = git_ref.display()))? + } else { + get_git_ref_entry(dir, entry)? + }; Ok((ref_str.trim().to_string(), false)) } else { Ok((head_str.trim().to_string(), true)) @@ -306,12 +339,14 @@ pub fn get_git_tag_rev(dir: &PathBuf, tag: &str) -> Result { if tag.len() == 40 && tag.chars().all(|f| f.is_ascii_hexdigit()) { return Ok(tag.to_string()); } + get_git_ref_entry(dir, &format!("refs/tags/{tag}")) +} +pub fn get_git_ref_entry(dir: &PathBuf, entry: &str) -> Result { let git_refs = dir.join(".git/packed-refs"); let refs_str = fs::read_to_string(&git_refs) .map_err(|e| format!("unable to read {path}: {e}", path = git_refs.display()))?; - let expected_comment_part = format!("refs/tags/{tag}"); for line in refs_str.lines() { - if line.contains(&expected_comment_part) { + if line.contains(entry) { let sha = line .split_whitespace() .next() @@ -321,10 +356,7 @@ pub fn get_git_tag_rev(dir: &PathBuf, tag: &str) -> Result { } } - Err(format!( - "Could not find a rev tag for {}", - expected_comment_part - )) + Err(format!("Could not find a rev for {}", entry)) } /// get commit rev after fetch diff --git a/src/cook/package.rs b/src/cook/package.rs index 3a635377e..1d76ec64b 100644 --- a/src/cook/package.rs +++ b/src/cook/package.rs @@ -3,10 +3,13 @@ use std::{ path::{Path, PathBuf}, }; -use pkg::{Package, PackageName}; +use pkg::{Package, PackageName, PackagePrefix}; +use pkgar::ext::PackageSrcExt; +use pkgar_core::HeaderFlags; use crate::{ blake3::hash_to_hex, + config::CookConfig, cook::{fetch, fs::*, pty::PtyOut}, log_to_pty, recipe::{BuildKind, CookRecipe, OptionalPackageRecipe, Recipe}, @@ -16,6 +19,7 @@ pub fn package( recipe: &CookRecipe, stage_dirs: &Vec, auto_deps: &BTreeSet, + cook_config: &CookConfig, logger: &PtyOut, ) -> Result<(), String> { let name = &recipe.name; @@ -47,7 +51,14 @@ pub fn package( .map_err(|err| format!("failed to save pkgar secret key: {:?}", err))?; } - let stage_modified = modified_all(stage_dirs, modified_dir)?; + let Ok(stage_modified) = modified_all(stage_dirs, modified_dir) else { + // stage dirs doesn't exist, assume safe only when clean_target = true + if !crate::config::get_config().cook.clean_target { + return Err("Stage directory is not present at packaging step".into()); + } else { + return Ok(()); + } + }; let packages = recipe.recipe.get_packages_list(); @@ -63,16 +74,23 @@ pub fn package( } if !package_file.is_file() { - pkgar::create( + pkgar::create_with_flags( secret_path, package_file.to_str().unwrap(), stage_dir.to_str().unwrap(), + HeaderFlags::latest( + pkgar_core::Architecture::Independent, + match cook_config.compressed { + true => pkgar_core::Packaging::LZMA2, + false => pkgar_core::Packaging::Uncompressed, + }, + ), ) .map_err(|err| format!("failed to create pkgar archive: {:?}", err))?; } let deps = if package.is_some() { - BTreeSet::from([name.without_host()]) + BTreeSet::from([name.with_prefix(PackagePrefix::Any)]) } else { auto_deps.clone() }; @@ -123,12 +141,12 @@ pub fn package_toml( } } - let (hash, size) = if let Some((pkey_path, archive_path)) = package_file { + let (hash, network_size, storage_size) = if let Some((pkey_path, archive_path)) = package_file { use pkgar_core::PackageSrc; let pkey = pkgar_keys::PublicKeyFile::open(pkey_path) .map_err(|e| format!("Unable to read public key: {e:?}"))? .pkey; - let package = pkgar::PackageFile::new(archive_path, &pkey).map_err(|e| { + let mut package = pkgar::PackageFile::new(archive_path, &pkey).map_err(|e| { format!( "Unable to read packaged pkgar file {}: {e:?}", archive_path.display(), @@ -140,21 +158,45 @@ pub fn package_toml( archive_path.display(), ) })?; - (hash_to_hex(package.header().blake3), mt.len()) + let package_size = mt.len(); + let storage_size = match package.header().flags.packaging() { + pkgar_core::Packaging::LZMA2 => { + let mut size = 0; + let entries = package + .read_entries() + .map_err(|e| format!("Unable to get lzma entry: {e}"))?; + for entry in entries { + let data_reader = package + .data_reader(entry) + .map_err(|e| format!("Unable to read lzma entry: {e}"))?; + size += data_reader.unpacked_size; + package + .restore_reader(data_reader.into_inner()) + .map_err(|e| format!("Unable to put lzma entry: {e}"))?; + } + size + } + _ => package_size, + }; + + ( + hash_to_hex(package.header().blake3), + package_size, + storage_size, + ) } else { - ("".into(), 0) + ("".into(), 0, 0) }; let ident_source = fetch::fetch_get_source_info(recipe)?; let package = Package { - name: recipe.name.without_host(), + name: recipe.name.with_prefix(PackagePrefix::Any), version: package_version(&recipe.recipe), target: recipe.target.to_string(), blake3: hash, - // this size will be different once pkgar supports compression - network_size: size, - storage_size: size, + network_size, + storage_size, depends: package_deps, commit_identifier: ident_source.commit_identifier, source_identifier: ident_source.source_identifier, @@ -194,7 +236,14 @@ pub fn package_stage_paths( package: Option<&OptionalPackageRecipe>, target_dir: &Path, ) -> (PathBuf, PathBuf, PathBuf) { - package_name_paths(package, target_dir, "stage") + let mut target_dir = target_dir.to_path_buf(); + if let Some(cross_target) = std::env::var("COOKBOOK_CROSS_TARGET").ok() { + if cross_target != "" { + // TODO: automatically pass COOKBOOK_CROSS_GNU_TARGET? + target_dir = target_dir.join(cross_target) + } + } + package_name_paths(package, &target_dir, "stage") } pub fn package_source_paths( diff --git a/src/cook/pty.rs b/src/cook/pty.rs index aec8869b0..208359a6e 100644 --- a/src/cook/pty.rs +++ b/src/cook/pty.rs @@ -1,6 +1,6 @@ use anyhow::{Error, bail}; -use filedescriptor::FileDescriptor; use libc::{self, winsize}; +use std::fs::File; use std::io::{Read, Write}; use std::os::fd::FromRawFd; use std::os::unix::io::AsRawFd; @@ -62,9 +62,8 @@ pub fn flush_pty(logger: &mut PtyOut) { }; // Not sure if flush actually working let _ = pty.flush(); - std::thread::sleep(Duration::from_millis(100)); + std::thread::sleep(Duration::from_millis(10)); let _ = file.flush(); - std::thread::sleep(Duration::from_millis(100)); } pub fn spawn_to_pipe(command: &mut Command, stdout_pipe: &PtyOut) -> Result { @@ -136,10 +135,10 @@ fn openpty(size: PtySize) -> anyhow::Result<(UnixMasterPty, UnixSlavePty)> { } let master = UnixMasterPty { - fd: PtyFd(unsafe { FileDescriptor::from_raw_fd(master) }), + fd: PtyFd(unsafe { File::from_raw_fd(master) }), }; let slave = UnixSlavePty { - fd: PtyFd(unsafe { FileDescriptor::from_raw_fd(slave) }), + fd: PtyFd(unsafe { File::from_raw_fd(slave) }), }; // Ensure that these descriptors will get closed when we execute @@ -169,18 +168,13 @@ impl UnixPtySystem { } } -struct PtyFd(pub FileDescriptor); +struct PtyFd(pub File); impl std::ops::Deref for PtyFd { - type Target = FileDescriptor; - fn deref(&self) -> &FileDescriptor { + type Target = File; + fn deref(&self) -> &File { &self.0 } } -impl std::ops::DerefMut for PtyFd { - fn deref_mut(&mut self) -> &mut FileDescriptor { - &mut self.0 - } -} impl Read for PtyFd { fn read(&mut self, buf: &mut [u8]) -> Result { @@ -250,8 +244,8 @@ impl PtyFd { unsafe { cmd // .stdin(self.as_stdio()?) - .stdout(self.as_stdio()?) - .stderr(self.as_stdio()?) + .stdout(self.try_clone()?) + .stderr(self.try_clone()?) .pre_exec(move || { // Clean up a few things before we exec the program // Clear out any potentially problematic signal diff --git a/src/cook/script.rs b/src/cook/script.rs index fe7736829..d1e040b35 100644 --- a/src/cook/script.rs +++ b/src/cook/script.rs @@ -1,24 +1,11 @@ +// Scripts here is executed using "cookbook_redoxer env" where CC, RUSTFLAGS, etc. defined. +// Look up redoxer env script if you want to see how they work. + pub(crate) static SHARED_PRESCRIPT: &str = r#" # Build dynamically function DYNAMIC_INIT { - COOKBOOK_AUTORECONF="autoreconf" - autotools_recursive_regenerate() { - for f in $(find . -name configure.ac -o -name configure.in -type f | sort); do - echo "* autotools regen in '$(dirname $f)'..." - ( cd "$(dirname "$f")" && "${COOKBOOK_AUTORECONF}" -fvi "$@" -I${COOKBOOK_HOST_SYSROOT}/share/aclocal ) - done - } - case "${TARGET}" in - "x86_64-unknown-redox") - ;; - "aarch64-unknown-redox") - ;; - "x86_64-unknown-linux-gnu") - ;; - "aarch64-unknown-linux-gnu") - ;; - *) + "i586-unknown-redox" | "riscv64gc-unknown-redox") [ -z "${COOKBOOK_VERBOSE}" ] || echo "WARN: ${TARGET} does not support dynamic linking." >&2 return ;; @@ -42,15 +29,26 @@ function DYNAMIC_INIT { COOKBOOK_MESON_FLAGS=( --buildtype release --wrap-mode nofallback - --strip -Ddefault_library=shared -Dprefix=/usr ) # TODO: check paths for spaces - export LDFLAGS="-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib -L${COOKBOOK_SYSROOT}/lib" - export RUSTFLAGS="-C target-feature=-crt-static" + export LDFLAGS="${USER_LDFLAGS}-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib -L${COOKBOOK_SYSROOT}/lib" + export RUSTFLAGS="-C target-feature=-crt-static -L native=${COOKBOOK_SYSROOT}/lib -C link-arg=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib" export COOKBOOK_DYNAMIC=1 + + if [ function = $(type -t reexport_flags) ]; then + reexport_flags + fi +} + +COOKBOOK_AUTORECONF="autoreconf" +autotools_recursive_regenerate() { + for f in $(find . -name configure.ac -o -name configure.in -type f | sort); do + echo "* autotools regen in '$(dirname $f)'..." + ( cd "$(dirname "$f")" && "${COOKBOOK_AUTORECONF}" -fvi "$@" -I${COOKBOOK_HOST_SYSROOT}/share/aclocal ) + done } # Build both dynamically and statically @@ -74,7 +72,6 @@ function DYNAMIC_STATIC_INIT { COOKBOOK_MESON_FLAGS=( --buildtype release --wrap-mode nofallback - --strip -Ddefault_library=both -Dprefix=/usr ) @@ -102,12 +99,20 @@ export CARGO_TARGET_DIR="${COOKBOOK_BUILD}/target" # This adds the sysroot includes for most C compilation #TODO: check paths for spaces! -export CFLAGS="-I${COOKBOOK_SYSROOT}/include" -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include" +export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${COOKBOOK_SYSROOT}/include" # This adds the sysroot libraries and compiles binaries statically for most C compilation #TODO: check paths for spaces! -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib --static" +USER_LDFLAGS="${LDFLAGS:+$LDFLAGS }" +export LDFLAGS="${USER_LDFLAGS}-L${COOKBOOK_SYSROOT}/lib --static" + +# This reexport C variables into custom build script that can be consumed by cc crate +function reexport_flags { + target=${TARGET//-/_} + export CFLAGS_${target}="${CFLAGS:+$CFLAGS }${CPPFLAGS}" + export CXXFLAGS_${target}="${CXXFLAGS:+$CXXFLAGS }${CPPFLAGS}" + export LDFLAGS_${target}="${LDFLAGS}" +} # These ensure that pkg-config gets the right flags from the sysroot if [ "${TARGET}" != "${COOKBOOK_HOST_TARGET}" ] @@ -122,14 +127,13 @@ fi # to not strip symbols from the final package, add COOKBOOK_NOSTRIP=true to the recipe # (or to your environment) before calling cookbook_cargo or cookbook_cargo_packages build_type=release -install_flags= +install_flags=--no-track build_flags=--release if [ ! -z "${COOKBOOK_DEBUG}" ] then - install_flags=--debug + install_flags+=" --debug" build_flags= build_type=debug - export CFLAGS="${CFLAGS} -g" export CPPFLAGS="${CPPFLAGS} -g" fi @@ -139,16 +143,36 @@ build_flags+=" --offline" install_flags+=" --offline" fi -# cargo template +reexport_flags + COOKBOOK_CARGO="${COOKBOOK_REDOXER}" +COOKBOOK_CARGO_FLAGS=( + --locked +) +# cargo template using cargo install function cookbook_cargo { "${COOKBOOK_CARGO}" install \ - --path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}" \ + --path "${COOKBOOK_SOURCE}${COOKBOOK_CARGO_PATH:+/$COOKBOOK_CARGO_PATH}" \ --root "${COOKBOOK_STAGE}/usr" \ - --locked \ - --no-track \ - ${install_flags} \ - -j "${COOKBOOK_MAKE_JOBS}" "$@" + -j "${COOKBOOK_MAKE_JOBS}" ${install_flags} \ + ${COOKBOOK_CARGO_FLAGS[@]} "$@" +} + +# cargo template using cargo build (prefixed name) +function cookbook_cargo_build { + recipe="${recipe:-$(basename "${COOKBOOK_RECIPE}")}" + bin_dir="${bin_dir:-.}" + bin_flags="${bin_flags:-}" + bin_name="${bin_name:-$(basename "${COOKBOOK_CARGO_PATH}")}" + bin_final_name="${bin_final_name:-${recipe}_${bin_name//_/-}}" + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + "${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}${COOKBOOK_CARGO_PATH:+/$COOKBOOK_CARGO_PATH}/Cargo.toml" \ + ${bin_flags} ${build_flags} -j "${COOKBOOK_MAKE_JOBS}" ${COOKBOOK_CARGO_FLAGS[@]} + cp -v \ + "target/${TARGET}/${build_type}/${bin_dir}/${bin_name}" \ + "${COOKBOOK_STAGE}/usr/bin/${bin_final_name}" + unset bin_name bin_flags bin_dir bin_final_name } # helper for installing binaries that are cargo examples @@ -156,30 +180,17 @@ function cookbook_cargo_examples { recipe="$(basename "${COOKBOOK_RECIPE}")" for example in "$@" do - "${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ - --example "${example}" \ - ${build_flags} -j "${COOKBOOK_MAKE_JOBS}" - mkdir -pv "${COOKBOOK_STAGE}/usr/bin" - cp -v \ - "target/${TARGET}/${build_type}/examples/${example}" \ - "${COOKBOOK_STAGE}/usr/bin/${recipe}_${example}" + bin_dir="examples" bin_name="${example}" bin_flags="--example ${example}" cookbook_cargo_build done } # helper for installing binaries that are cargo packages function cookbook_cargo_packages { recipe="$(basename "${COOKBOOK_RECIPE}")" + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" for package in "$@" do - "${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ - --package "${package}" \ - ${build_flags} -j "${COOKBOOK_MAKE_JOBS}" - mkdir -pv "${COOKBOOK_STAGE}/usr/bin" - cp -v \ - "target/${TARGET}/${build_type}/${package}" \ - "${COOKBOOK_STAGE}/usr/bin/${recipe}_${package}" + bin_name="${package}" bin_flags="--package ${package}" bin_final_name="${package//_/-}" cookbook_cargo_build done } @@ -206,33 +217,53 @@ COOKBOOK_CMAKE_FLAGS=( -DENABLE_SHARED=False -DENABLE_STATIC=True ) -function cookbook_cmake { -if [ "$(echo "${TARGET}" | cut -d - -f3)" = "linux" ]; then - SYSTEM_NAME="Linux" -else - SYSTEM_NAME="UnixPaths" -fi - cat > cross_file.cmake < $file <> $file + echo "set(CMAKE_CXX_FLAGS \"${CFLAGS} ${CPPFLAGS}\")" >> $file + fi + if [ -n "${CC_WRAPPER}" ] then - echo "set(CMAKE_C_COMPILER_LAUNCHER ${CC_WRAPPER})" >> cross_file.cmake - echo "set(CMAKE_CXX_COMPILER_LAUNCHER ${CC_WRAPPER})" >> cross_file.cmake + echo "set(CMAKE_C_COMPILER_LAUNCHER ${CC_WRAPPER})" >> $file + echo "set(CMAKE_CXX_COMPILER_LAUNCHER ${CC_WRAPPER})" >> $file fi +} + +function cookbook_cmake { + + generate_cookbook_cmake_file $TARGET $GNU_TARGET- "$COOKBOOK_SYSROOT" cross_file.cmake "${COOKBOOK_CMAKE}" "${COOKBOOK_SOURCE}" \ -DCMAKE_BUILD_TYPE=Release \ @@ -256,11 +287,23 @@ COOKBOOK_MESON="meson" COOKBOOK_MESON_FLAGS=( --buildtype release --wrap-mode nofallback - --strip -Ddefault_library=static -Dprefix=/usr ) function cookbook_meson { + # TODO: do this in rust, to handle path spaces as well + function format_flags { + local flags=($1) + local formatted="" + for i in "${!flags[@]}"; do + formatted+="'${flags[$i]}'" + if [ $i -lt $((${#flags[@]} - 1)) ]; then + formatted+=", " + fi + done + echo "$formatted" + } + echo "[binaries]" > cross_file.txt echo "c = [$(printf "'%s', " $CC | sed 's/, $//')]" >> cross_file.txt echo "cpp = [$(printf "'%s', " $CXX | sed 's/, $//')]" >> cross_file.txt @@ -277,30 +320,19 @@ function cookbook_meson { echo "cpu = '$(echo "${TARGET}" | cut -d - -f1)'" >> cross_file.txt echo "endian = 'little'" >> cross_file.txt - echo "[paths]" >> cross_file.txt + echo "[built-in options]" >> cross_file.txt echo "prefix = '/usr'" >> cross_file.txt echo "libdir = 'lib'" >> cross_file.txt echo "bindir = 'bin'" >> cross_file.txt + echo "c_args = [$(format_flags "$CFLAGS $CPPFLAGS")]" >> cross_file.txt + echo "cpp_args = [$(format_flags "$CXXFLAGS $CPPFLAGS")]" >> cross_file.txt + echo "c_link_args = [$(format_flags "$LDFLAGS")]" >> cross_file.txt echo "[properties]" >> cross_file.txt echo "needs_exe_wrapper = true" >> cross_file.txt echo "sys_root = '${COOKBOOK_SYSROOT}'" >> cross_file.txt - echo "c_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')]" >> cross_file.txt - echo "cpp_args = [$(printf "'%s', " $CPPFLAGS | sed 's/, $//')]" >> cross_file.txt - echo "c_link_args = [$(printf "'%s', " $LDFLAGS | sed 's/, $//')]" >> cross_file.txt - unset AR - unset AS - unset CC - unset CXX - unset LD - unset NM - unset OBJCOPY - unset OBJDUMP - unset PKG_CONFIG - unset RANLIB - unset READELF - unset STRIP + unset AR AS CC CXX LD NM OBJCOPY OBJDUMP PKG_CONFIG RANLIB READELF STRIP "${COOKBOOK_MESON}" setup \ "${COOKBOOK_SOURCE}" \ @@ -315,7 +347,7 @@ function cookbook_meson { pub(crate) static BUILD_POSTSCRIPT: &str = r#" # Strip binaries -for dir in "${COOKBOOK_STAGE}/bin" "${COOKBOOK_STAGE}/usr/bin" +for dir in "${COOKBOOK_STAGE}/bin" "${COOKBOOK_STAGE}/usr/bin" "${COOKBOOK_STAGE}/libexec" "${COOKBOOK_STAGE}/usr/libexec" do if [ -d "${dir}" ] && [ -z "${COOKBOOK_NOSTRIP}" ] then diff --git a/src/cook/tree.rs b/src/cook/tree.rs index 70bacb1d3..f4bb935d7 100644 --- a/src/cook/tree.rs +++ b/src/cook/tree.rs @@ -1,12 +1,12 @@ +use anyhow::Context; +use pkg::{Package, PackageName}; +use std::fmt::Write as _; use std::{ collections::{HashMap, HashSet}, fs::read_to_string, path::PathBuf, }; -use anyhow::Context; -use pkg::{Package, PackageName}; - use crate::recipe::CookRecipe; pub enum WalkTreeEntry<'a> { @@ -21,6 +21,7 @@ pub fn display_tree_entry( recipe_map: &HashMap<&PackageName, &CookRecipe>, prefix: &str, is_last: bool, + is_build_tree: bool, visited: &mut HashSet, total_size: &mut u64, ) -> anyhow::Result<()> { @@ -29,6 +30,7 @@ pub fn display_tree_entry( recipe_map, prefix, is_last, + is_build_tree, visited, total_size, display_pkg_fn, @@ -40,6 +42,7 @@ pub fn walk_tree_entry( recipe_map: &HashMap<&PackageName, &CookRecipe>, prefix: &str, is_last: bool, + is_build_tree: bool, visited: &mut HashSet, total_size: &mut u64, op: fn(&PackageName, &str, bool, &WalkTreeEntry) -> anyhow::Result<()>, @@ -47,7 +50,7 @@ pub fn walk_tree_entry( let cook_recipe = match recipe_map.get(package_name) { Some(r) => r, None => { - // TODO: This is a dependency, but it's not in recipe list + // Data not provided, will not be processed by the build system op(package_name, prefix, is_last, &WalkTreeEntry::Missing)?; return Ok(()); } @@ -69,19 +72,28 @@ pub fn walk_tree_entry( } visited.insert(package_name.clone()); - if let WalkTreeEntry::Built(_p, pkg_size) = &entry { - *total_size += pkg_size; + if is_build_tree { + if matches!(entry, WalkTreeEntry::NotBuilt) { + *total_size += 1; + } + } else { + if let WalkTreeEntry::Built(_p, pkg_size) = &entry { + *total_size += pkg_size; + } } let pkg_meta: Package; let mut all_deps_set: HashSet<&PackageName> = HashSet::new(); - if let Ok(pkg_toml_str) = read_to_string(&pkg_toml) { - // more accurate with auto deps - pkg_meta = toml::from_str(&pkg_toml_str) - .context(format!("Unable to parse {}", pkg_toml.display()))?; - all_deps_set.extend(pkg_meta.depends.iter()); - } else { + if is_build_tree { + all_deps_set.extend(cook_recipe.recipe.build.dependencies.iter()); all_deps_set.extend(cook_recipe.recipe.package.dependencies.iter()); + } else { + if let Ok(pkg_toml_str) = read_to_string(&pkg_toml) { + // more accurate with auto deps + pkg_meta = toml::from_str(&pkg_toml_str) + .context(format!("Unable to parse {}", pkg_toml.display()))?; + all_deps_set.extend(pkg_meta.depends.iter()); + } } if all_deps_set.is_empty() { @@ -97,6 +109,7 @@ pub fn walk_tree_entry( recipe_map, &format!("{}{}", prefix, child_prefix), i == deps_count - 1, + is_build_tree, visited, total_size, op, @@ -116,13 +129,53 @@ pub fn display_pkg_fn( WalkTreeEntry::Built(_path_buf, size) => format!("[{}]", format_size(*size)), WalkTreeEntry::NotBuilt => "(not built)".to_string(), WalkTreeEntry::Deduped => "".to_string(), - WalkTreeEntry::Missing => "(dependency info missing)".to_string(), + WalkTreeEntry::Missing => "(omitted)".to_string(), }; let line_prefix = if is_last { "└── " } else { "├── " }; println!("{}{}{} {}", prefix, line_prefix, package_name, size_str); Ok(()) } +pub fn walk_file_tree(dir: &PathBuf, prefix: &str, buffer: &mut String) -> std::io::Result { + if !dir.is_dir() { + return Ok(0); + } + let fmt_err = std::io::Error::other; + let entries: Vec<_> = std::fs::read_dir(dir)?.filter_map(|e| e.ok()).collect(); + let mut total_size = 0; + for (index, entry) in entries.iter().enumerate() { + let path = entry.path(); + let metadata = entry.metadata()?; + let is_last = index == entries.len() - 1; + + let line_prefix = if is_last { "└── " } else { "├── " }; + let file_name = path + .file_name() + .and_then(|n| n.to_str()) + .unwrap_or("Unknown"); + + if path.is_dir() { + writeln!(buffer, "{}{}{}/", prefix, line_prefix, file_name).map_err(fmt_err)?; + let new_prefix = format!("{}{}", prefix, if is_last { " " } else { "│ " }); + walk_file_tree(&path, &new_prefix, buffer)?; + } else { + let size = metadata.len(); + total_size += size; + writeln!( + buffer, + "{}{}{} ({})", + prefix, + line_prefix, + file_name, + format_size(size) + ) + .map_err(fmt_err)?; + } + } + + Ok(total_size) +} + pub fn format_size(bytes: u64) -> String { if bytes == 0 { return "0 B".to_string(); diff --git a/src/lib.rs b/src/lib.rs index 0c8f7153b..bcb4b2dea 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,6 +2,7 @@ pub mod blake3; pub mod config; pub mod cook; pub mod recipe; +pub mod web; mod progress_bar; diff --git a/src/recipe.rs b/src/recipe.rs index 184f17b9c..979ba9d65 100644 --- a/src/recipe.rs +++ b/src/recipe.rs @@ -5,7 +5,7 @@ use std::{ path::{Path, PathBuf}, }; -use pkg::{PackageName, package::PackageError, recipes}; +use pkg::{PackageError, PackageName, recipes}; use regex::Regex; use serde::{ Deserialize, Serialize, @@ -100,9 +100,13 @@ pub enum BuildKind { #[serde(rename = "cargo")] Cargo { #[serde(default)] - package_path: Option, + cargopath: Option, #[serde(default)] - cargoflags: String, + cargoflags: Vec, + #[serde(default)] + cargopackages: Vec, + #[serde(default)] + cargoexamples: Vec, }, /// Will build and install using configure and make #[serde(rename = "configure")] @@ -148,6 +152,7 @@ pub struct BuildRecipe { pub struct PackageRecipe { pub dependencies: Vec, pub version: Option, + pub description: Option, } #[derive(Debug, Clone, Default, Deserialize, PartialEq, Serialize)] @@ -181,6 +186,10 @@ impl BuildRecipe { } pub fn set_as_remote(&mut self) { + if self.kind == BuildKind::None { + // BuildKind::Remote won't handle remote meta-packages + return; + } self.kind = BuildKind::Remote; self.dev_dependencies = Vec::new(); } @@ -232,6 +241,8 @@ impl CookRecipe { let fn_map = |p: PackageName| { if p.is_host() { if p.name() == thisname { None } else { Some(p) } + } else if p.is_target() { + None } else { Some(p.with_host()) } @@ -267,6 +278,14 @@ impl CookRecipe { Self::new(name, dir.to_path_buf(), recipe) } + pub fn from_list(names: Vec) -> Result, PackageError> { + let mut packages = Vec::new(); + for name in names { + packages.push(Self::from_name(name)?); + } + Ok(packages) + } + pub fn from_path(dir: &Path, read_recipe: bool, is_host: bool) -> Result { let file = dir.join("recipe.toml"); let mut name: PackageName = dir.file_name().unwrap().try_into()?; @@ -282,7 +301,7 @@ impl CookRecipe { Self::new(name, dir.to_path_buf(), recipe) } - pub fn new_recursive( + fn new_recursive( names: &[PackageName], recurse_build_deps: bool, recurse_dev_build_deps: bool, @@ -297,6 +316,7 @@ impl CookRecipe { } let mut recipes = Vec::new(); + let mut recipes_set = BTreeSet::new(); for name in names { let recipe = Self::from_name(name.clone())?; @@ -317,7 +337,8 @@ impl CookRecipe { })?; for dependency in dependencies { - if !recipes.contains(&dependency) { + if !recipes_set.contains(&dependency.name) { + recipes_set.insert(dependency.name.clone()); recipes.push(dependency); } } @@ -340,7 +361,8 @@ impl CookRecipe { })?; for dependency in dependencies { - if !recipes.contains(&dependency) { + if !recipes_set.contains(&dependency.name) { + recipes_set.insert(dependency.name.clone()); recipes.push(dependency); } } @@ -363,13 +385,15 @@ impl CookRecipe { })?; for dependency in dependencies { - if !recipes.contains(&dependency) { + if !recipes_set.contains(&dependency.name) { + recipes_set.insert(dependency.name.clone()); recipes.push(dependency); } } } - if collect_self && !recipes.contains(&recipe) { + if collect_self && !recipes_set.contains(&recipe.name) { + recipes_set.insert(recipe.name.clone()); recipes.push(recipe); } } @@ -380,9 +404,8 @@ impl CookRecipe { pub fn get_build_deps_recursive( names: &[PackageName], include_dev: bool, - mark_is_deps: bool, ) -> Result, PackageError> { - let mut packages = Self::new_recursive( + let packages = Self::new_recursive( names, true, include_dev, @@ -393,12 +416,6 @@ impl CookRecipe { WALK_DEPTH, )?; - if mark_is_deps { - for package in packages.iter_mut() { - package.is_deps = !names.contains(&package.name); - } - } - Ok(packages) } @@ -421,6 +438,16 @@ impl CookRecipe { Ok(packages.into_iter().map(|p| p.name).collect()) } + pub fn get_all_deps_names_recursive( + names: &[PackageName], + include_dev: bool, + ) -> Result, PackageError> { + let packages = + Self::new_recursive(names, true, include_dev, true, true, true, true, WALK_DEPTH)?; + + Ok(packages.into_iter().map(|p| p.name).collect()) + } + pub fn reload_recipe(&mut self) -> Result<(), PackageError> { self.recipe = Self::from_path(&self.dir, true, self.name.is_host())?.recipe; let _ = self.apply_filesystem_config(&self.rule.clone()); @@ -440,7 +467,7 @@ impl CookRecipe { self.dir.join("target").join(self.target) } - pub fn apply_filesystem_config(&mut self, rule: &str) -> Result<(), String> { + pub fn apply_filesystem_config(&mut self, rule: &str) -> Result<(), anyhow::Error> { match rule { // build from source as usual "source" => {} @@ -459,12 +486,12 @@ impl CookRecipe { self.recipe.build.set_as_none(); } rule => { - return Err(format!( + anyhow::bail!( // Fail fast because we could risk losing local changes if "local" was typo'ed "Invalid pkg config {} = \"{}\"\nExpecting either 'source', 'local', 'binary' or 'ignore'", self.name.as_str(), rule - )); + ); } } self.rule = rule.to_string(); @@ -473,6 +500,32 @@ impl CookRecipe { } } +// TODO: Wrap these vectors in a struct + +pub fn recipes_mark_as_deps(names: &[PackageName], packages: &mut Vec) { + for package in packages.iter_mut() { + package.is_deps = !names.contains(&package.name); + } +} + +pub fn recipes_flatten_package_names(packages: Vec) -> Vec { + let mut new_packages = Vec::new(); + let mut packages_set = BTreeSet::new(); + for mut package in packages { + let is_host = package.name.is_host(); + let mut name = package.name.with_suffix(None); + if is_host { + name = name.with_host(); + } + if !packages_set.contains(name.as_str()) { + packages_set.insert(name.to_string()); + package.name = name; + new_packages.push(package); + } + } + new_packages +} + #[derive(Serialize, Deserialize)] pub struct AutoDeps { pub packages: BTreeSet, @@ -512,8 +565,10 @@ mod tests { shallow_clone: None, }), build: BuildRecipe::new(BuildKind::Cargo { - package_path: None, - cargoflags: String::new(), + cargopath: None, + cargoflags: Vec::new(), + cargopackages: Vec::new(), + cargoexamples: Vec::new(), }), ..Default::default() } diff --git a/src/web.rs b/src/web.rs new file mode 100644 index 000000000..db19098ed --- /dev/null +++ b/src/web.rs @@ -0,0 +1,122 @@ +use std::{ + collections::{BTreeMap, BTreeSet, HashMap}, + env, fs, + path::{Path, PathBuf}, +}; + +use pkg::{Package, PackageName}; + +use crate::{ + recipe::CookRecipe, + web::html::{generate_html_index, generate_html_pkg}, +}; + +pub mod html; + +#[derive(Clone)] +pub struct CliWebConfig { + /// path relative to cwd dir to generate web files + out_dir: PathBuf, + /// absolute url to repo (not the web) instead of "/repo" + repo_url: String, + /// this repository build url + this_repo: String, +} + +impl CliWebConfig { + pub fn parse_args() -> Option { + if env::var("COOKBOOK_WEB").ok().as_deref() != Some("true") { + return None; + } + let Ok(pwd) = env::current_dir() else { + return None; + }; + + Some(CliWebConfig { + repo_url: env::var("COOKBOOK_WEB_REPO_URL") + .ok() + .unwrap_or("/repo".to_string()), + out_dir: pwd.join( + env::var("COOKBOOK_WEB_OUT_DIR") + .ok() + .unwrap_or("web".to_string()), + ), + // TODO: Hardcoded URL, maybe get this remote-url next time + this_repo: "https://gitlab.redox-os.org/redox-os/redox".to_string(), + }) + } +} + +const CSS: &str = include_str!("./web/style.css"); + +pub fn generate_web(all_packages: &Vec, config: &CliWebConfig) { + let repo_path = &config.out_dir.join(redoxer::target()); + if !repo_path.is_dir() { + fs::create_dir_all(repo_path).unwrap(); + } + + let mut valid_packages = Vec::new(); + let mut dependents_map: HashMap> = HashMap::new(); + + for package_name in all_packages { + let Some(recipe_path) = pkg::recipes::find(package_name) else { + continue; + }; + // TODO: Package::from_path + let Ok(package) = Package::new(&PackageName::new(package_name).unwrap()) else { + continue; + }; + let Ok(recipe) = CookRecipe::from_path(&recipe_path, true, false) else { + continue; + }; + + for dep in &package.depends { + dependents_map + .entry(dep.to_string()) + .or_default() + .insert(package.name.to_string()); + } + + valid_packages.push((package, recipe)); + } + + for (package, recipe) in &valid_packages { + let dependents = dependents_map + .get(package.name.as_str()) + .cloned() + .unwrap_or_default(); + + let stage_files_path = recipe.stage_paths().0.with_added_extension("files"); + let stage_files = fs::read_to_string(stage_files_path).ok(); + + let html_path = repo_path.join(format!("{}.html", package.name.as_str())); + + generate_html_pkg( + &package, + &recipe, + &dependents.into_iter().collect(), + &stage_files, + &html_path, + &config, + ); + } + + let mut grouped_packages: BTreeMap> = BTreeMap::new(); + + for item in &valid_packages { + let category = get_category(&item.1.dir); + grouped_packages.entry(category).or_default().push(item); + } + + let index_path = repo_path.join("index.html"); + let style_path = repo_path.join("style.css"); + generate_html_index(grouped_packages, &index_path, &config); + fs::write(style_path, CSS).expect("Failed to write CSS file"); +} + +pub(crate) fn get_category(dir: &Path) -> String { + let Some(category) = dir.parent().map(|p| p.display().to_string()) else { + return "uncategorized".to_string(); + }; + category["recipes/".len()..].to_string() +} diff --git a/src/web/html.rs b/src/web/html.rs new file mode 100644 index 000000000..1f4d405eb --- /dev/null +++ b/src/web/html.rs @@ -0,0 +1,329 @@ +use crate::cook::ident; +use crate::recipe::SourceRecipe; +use crate::web::get_category; +use crate::{cook::tree::format_size, recipe::CookRecipe}; +use pkg::Package; +use std::collections::BTreeMap; +use std::{fs, path::Path}; + +pub fn generate_html_pkg( + package: &Package, + recipe: &CookRecipe, + dependents: &Vec, + stage_files: &Option, + html_path: &Path, + config: &crate::web::CliWebConfig, +) { + let name = &package.name; + let version = &package.version; + let target = &package.target; + let category = &get_category(&recipe.dir); + let description = recipe + .recipe + .package + .description + .as_ref() + .map(|p| p.as_str()) + .unwrap_or("-"); + + let desc_html = recipe + .recipe + .package + .description + .as_ref() + .map(|desc| format!(r#"

{}

"#, desc)) + .unwrap_or_default(); + + let repo_url = &config.repo_url; + + let deps_html = if package.depends.is_empty() { + String::from("

None

") + } else { + let items: Vec = package + .depends + .iter() + .map(|dep| format!(r#"
  • {dep}
  • "#)) + .collect(); + format!("
      \n{}\n
    ", items.join("\n")) + }; + + let dependents_html = if dependents.is_empty() { + String::from("

    None

    ") + } else { + let items: Vec = dependents + .iter() + .map(|dep| format!(r#"
  • {dep}
  • "#)) + .collect(); + format!("
      \n{}\n
    ", items.join("\n")) + }; + + let mut source_html = match &recipe.recipe.source { + Some(SourceRecipe::Git { git, .. }) => { + let host = get_hostname(git); + let tree_link = get_tree_url(git, host, &package.source_identifier, None); + let short_commit = get_short_commit(&package.source_identifier); + format!( + r#" + + + +
    Git:{host}
    Commit:{short_commit}
    "# + ) + } + Some(SourceRecipe::Tar { tar, .. }) => { + let host = get_hostname(tar); + format!( + r#" + +
    Tarball:{host}
    "# + ) + } + Some(SourceRecipe::SameAs { same_as }) => { + let r = Path::new(same_as).file_name().unwrap().to_string_lossy(); + format!( + r#" + +
    Same as:{r}
    "# + ) + } + _ => String::from(r#"

    No source specified.

    "#), + }; + + let (files_html, files_count) = if let Some(stage_files) = stage_files { + let count = stage_files + .split('\n') + .filter(|p| !p.ends_with('/') && !p.is_empty()) + .count(); + (format!("
    {stage_files}
    "), format!("{}", count)) + } else { + ( + String::from(r#"

    No package files defined.

    "#), + String::from("?"), + ) + }; + + { + let host = get_hostname(&config.this_repo); + let tree_link = get_tree_url( + &config.this_repo, + host, + &package.commit_identifier, + Some(&format!("recipes/{category}/{name}/recipe.toml")), + ); + let short_commit = get_short_commit(&package.commit_identifier); + source_html += &format!( + r#" + + +
    Build script:{short_commit}
    +"# + ); + } + + let (arch, os) = { + let target_split: Vec<&str> = package.target.split('-').collect(); + ( + target_split + .get(0) + .map(|s| s.to_string()) + .unwrap_or("-".into()), + target_split + .get(2) + .map(|s| s.to_string()) + .unwrap_or("-".into()), + ) + }; + + let html = format!( + r#" + + + + + {name} - Redox OS Package + + + +
    +
    + ← Back to packages +

    {name} {version}

    +{desc_html} +

    {description}

    +
    + $ + pkg install {name} +
    +
    +
    +
    +
    +
    +

    Dependencies

    +{deps_html} +
    +
    +

    Dependents

    +{dependents_html} +
    +
    +

    Package Files

    +{files_html} +
    +
    + +
    + + +
    Download
    +

    Package Info

    + + + + + + + + + +
    OS{os}
    Architecture{arch}
    Category{category}
    Network Size{network_size}
    Storage Size{storage_size}
    File count{files_count}
    Published{published_short}
    Hash{blake3}
    +

    Package Source

    +{source_html} +
    +
    +
    + +"#, + network_size = format_size(package.network_size), + storage_size = format_size(package.storage_size), + published_short = &package.time_identifier[0..10], + published = package.time_identifier, + blake3 = package.blake3, + ); + + fs::write(html_path, html).expect("Failed to write package HTML file"); +} + +pub fn generate_html_index( + grouped_packages: BTreeMap>, + index_path: &Path, + config: &crate::web::CliWebConfig, +) { + let mut categories_html = Vec::new(); + + for (category, pkgs) in grouped_packages { + let cards_html: Vec = pkgs + .iter() + .map(|(pkg, _recipe)| { + let name = &pkg.name; + format!( + r#" +
    +

    {name}

    +
    + {version} + {size} +
    +
    "#, + name = name, + version = pkg.version, + size = format_size(pkg.network_size) + ) + }) + .collect(); + + let category_block = format!( + r#" +
    +

    {category}

    +
    +{cards} +
    +
    "#, + category = category, + cards = cards_html.join("\n") + ); + + categories_html.push(category_block); + } + + let html = format!( + r#" + + + + + Redox Package Repository + + + +
    +

    Redox OS Package Repository

    +

    Repository for {target}

    +
    + +
    +{category_sections} + + +
    + +"#, + target = redoxer::target(), + category_sections = categories_html.join("\n\n"), + commit_time = &ident::get_ident().time, + commit_hash = get_short_commit(&ident::get_ident().commit), + commit_tree = get_tree_url( + &config.this_repo, + get_hostname(&config.this_repo), + &ident::get_ident().commit, + None + ), + ); + + fs::write(index_path, html).expect("Failed to write index HTML file"); +} + +fn get_hostname(url: &str) -> &str { + url.split("://") + .nth(1) + .unwrap_or(url) + .split('/') + .next() + .unwrap_or(url) + .split(':') + .next() + .unwrap_or(url) +} + +pub fn get_tree_url(git_url: &str, host: &str, commit: &str, folder: Option<&str>) -> String { + let mut base_url = git_url.trim_end_matches(".git").to_string(); + + if let Some(ssh_path) = base_url.strip_prefix("git@") { + // "git@github.com:user/repo" -> "https://github.com/user/repo" + base_url = format!("https://{}", ssh_path.replace(':', "/")); + } else if base_url.starts_with("git://") { + // "git://github.com/user/repo" -> "https://github.com/user/repo" + base_url = base_url.replacen("git://", "https://", 1); + } + + let base_url = if host == "github.com" { + format!("{}/tree/{}", base_url, commit) + } else if host.contains("gitlab") { + format!("{}/-/tree/{}", base_url, commit) + } else { + return format!("{}?commit={}", base_url, commit); + }; + + match folder { + Some(f) => format!("{base_url}/{f}"), + None => base_url, + } +} + +fn get_short_commit(commit: &str) -> &str { + commit.get(0..7).unwrap_or("?") +} diff --git a/src/web/style.css b/src/web/style.css new file mode 100644 index 000000000..585697e01 --- /dev/null +++ b/src/web/style.css @@ -0,0 +1,246 @@ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; + background-color: #f9f9fb; + color: #24292e; + line-height: 1.6; +} + +.container { + max-width: 1280px; + margin: 0 auto; + padding: 0 20px; +} + +.category-section { + margin-bottom: 50px; +} + +.category-title { + font-size: 1.5rem; + color: #24292e; + border-bottom: 2px solid #e1e4e8; + padding-bottom: 10px; + margin-bottom: 20px; + font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace; +} + +.package-grid { + display: block; + display: flex; + flex-wrap: wrap; + margin: -10px; +} + +.package-card { + background-color: #ffffff; + border: 1px solid #e1e4e8; + border-radius: 6px; + padding: 15px; + margin: 10px; + + display: inline-block; + width: 30%; + vertical-align: top; + + display: flex; + flex: 0 1 280px; + flex-direction: column; + justify-content: space-between; +} + +.package-card .pkg-name { + margin-bottom: 15px; + font-size: 1.25rem; +} + +.package-card .pkg-name a { + border: none; +} + +.package-card .pkg-name a:hover { + text-decoration: underline; +} + +.package-card .pkg-stats { + display: block; + display: flex; + justify-content: space-between; + align-items: center; + color: #6a737d; + font-size: 0.9rem; + border-top: 1px solid #e1e4e8; + padding-top: 10px; +} + +.package-card .pkg-version { + font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace; + background-color: #f3f4f6; + padding: 3px 6px; + border-radius: 4px; + color: #24292e; +} + +.package-card .pkg-size { + font-weight: 500; +} + +a { + color: #24292e; + text-decoration: none; + border-bottom: 1px solid #e1e4e8; +} + +a:hover { + color: #000000; + border-bottom: 1px solid #24292e; +} + +h1, h2, h3 { + font-weight: 600; + margin: 1rem 0; +} + +code { + font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; + background-color: #f3f4f6; + padding: 0.2em 0.4em; + border-radius: 3px; + font-size: 0.9em; +} + +.card { + background-color: #ffffff; + border: 1px solid #e1e4e8; + border-radius: 6px; + padding: 20px; + margin-bottom: 20px; +} + +.pkg-header, .index-header { + background-color: #ffffff; + border-bottom: 1px solid #d1d5da; + padding: 40px 0; + margin-bottom: 40px; + text-align: center; +} + +.pkg-header h1 { + font-size: 2.5rem; + margin-bottom: 0.5rem; +} + +.pkg-header .version { + color: #6a737d; + font-size: 1.5rem; + font-weight: 400; +} + +.pkg-header .description { + font-size: 1.2rem; + color: #586069; + max-width: 600px; + margin: 0 auto 1.5rem auto; +} + +.back-link { + display: inline-block; + margin-bottom: 20px; + color: #6a737d; + border: none; + font-size: 0.9rem; +} + +.back-link:hover { + color: #24292e; + border: none; +} + +.install-action { + display: inline-block; + background-color: #f3f4f6; + border: 1px solid #d1d5da; + border-radius: 6px; + padding: 12px 20px; + font-family: ui-monospace, SFMono-Regular, monospace; + font-size: 1.1rem; + color: #24292e; +} + +.install-action .prompt { + color: #6a737d; + margin-right: 12px; +} + +.install-action code { + background-color: transparent; + padding: 0; + font-size: 1.1rem; + user-select: all; +} + +.pkg-content { + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +.pkg-main, .pkg-meta { + width: 100%; +} + +@media (min-width: 768px) { + .pkg-main { + width: 60%; + } + .pkg-meta { + width: 35%; + } +} + +.meta-box { + overflow-x: auto; + display: block; + max-width: 150px; + user-select: all; + padding: 8px; + white-space: nowrap; +} + +table { + width: 100%; + border-collapse: collapse; +} + +th, td { + padding: 10px 0; + text-align: left; + border-bottom: 1px solid #e1e4e8; +} + +th { + color: #6a737d; + font-weight: 500; +} + +.pkg-meta table th { + width: 40%; + padding-right: 10px; +} + +.pkg-deps ul, .pkg-dependents ul { + list-style-type: none; + display: flex; + flex-wrap: wrap; +} + +.pkg-deps li, .pkg-dependents li { + padding: 8px 0; + border-bottom: 1px solid #e1e4e8; + width: 50%; +}