diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 000000000..b3058a680 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,22 @@ +[target.aarch64-unknown-redox] +linker = "aarch64-unknown-redox-gcc" +rustflags = [] + +[target.i586-unknown-redox] +linker = "i586-unknown-redox-gcc" +rustflags = [] + +[target.i686-unknown-redox] +linker = "i686-unknown-redox-gcc" +rustflags = [] + +[target.x86_64-unknown-redox] +linker = "x86_64-unknown-redox-gcc" +rustflags = [] + +[target.riscv64gc-unknown-redox] +linker = "riscv64-unknown-redox-gcc" +rustflags = [] + +[env] +CFLAGS_riscv64gc_unknown_redox="-march=rv64gc -mabi=lp64d" diff --git a/.gitignore b/.gitignore index 645218be4..fa328e945 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,14 @@ .vscode/ # Local settings folder for the devcontainer extension that most IDEs support. .devcontainer/ +# Cookbook +/repo +/cookbook.toml +source +source.tmp +source-new +source-old +source.tar +source.tar.tmp +target +wget-log diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 21c9f449b..b40e36ead 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,15 +1,35 @@ # The GitLab Continuous Integration configuration -image: "ubuntu:24.04" variables: GIT_STRATEGY: "clone" - GIT_SUBMODULE_STRATEGY: "recursive" stages: + - lint - test - - retag + +fmt: + 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: + - rustup component add rustfmt + - cargo fmt -- --check + +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" stage: test rules: - if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"' @@ -35,67 +55,9 @@ img: help2man \ autoconf \ automake \ - zstd && - curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none + zstd script: - | - source "$HOME/.cargo/env" && + export PATH="$HOME/.cargo/bin:$PATH" && bash podman/rustinstall.sh && - cargo build --manifest-path installer/Cargo.toml --release && - PODMAN_BUILD=0 REPO_BINARY=1 make ci-img IMG_TAG=$CI_COMMIT_REF_NAME && - ([ $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" ] && rm -rf build/img/* || true) - artifacts: - paths: - - build/img/ - expire_in: 1 week - -.update-submodule: - stage: retag - rules: - - if: '$CI_PIPELINE_SOURCE == "push"' - when: manual - allow_failure: true - - when: never - image: - name: alpine/git:latest - entrypoint: [""] # force an empty entrypoint - script: - - | - if [ -z "$CI_PUSH_TOKEN" ]; then - echo "Error: CI_PUSH_TOKEN CI/CD variable is not set." - echo "Please configure CI_PUSH_TOKEN in your project's CI/CD settings -> Variables." - exit 1 - fi - - git config user.email $GITLAB_USER_EMAIL - - git config user.name "$GITLAB_USER_NAME (CI)" - - git submodule update --remote $SUBMODULE_DIR - - | - if git diff --quiet $SUBMODULE_DIR; then - echo "No changes detected for $SUBMODULE_DIR submodule. Exiting." - else - echo "Changes detected for $SUBMODULE_DIR submodule. Committing and pushing..." - git add $SUBMODULE_DIR - git commit -m "CI: Update $SUBMODULE_DIR submodule to latest $CI_COMMIT_BRANCH" - git push https://:${CI_PUSH_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git HEAD:$CI_COMMIT_BRANCH - echo "Pushed! View the branch at: ${CI_SERVER_URL}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/-/tree/${CI_COMMIT_BRANCH}" - fi - -update_cookbook: - extends: .update-submodule - variables: - SUBMODULE_DIR: cookbook - -update_installer: - extends: .update-submodule - variables: - SUBMODULE_DIR: installer - -update_redoxfs: - extends: .update-submodule - variables: - SUBMODULE_DIR: redoxfs - -update_relibc: - extends: .update-submodule - variables: - SUBMODULE_DIR: relibc + PODMAN_BUILD=0 REPO_BINARY=1 FSTOOLS_NO_MOUNT=1 COOKBOOK_VERBOSE=false make ci-img IMG_TAG=$CI_COMMIT_REF_NAME diff --git a/.gitmodules b/.gitmodules index ac3c63c6f..70642dfa4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,21 +1,5 @@ -[submodule "cookbook"] - path = cookbook - url = https://gitlab.redox-os.org/redox-os/cookbook.git - branch = master -[submodule "installer"] - path = installer - url = https://gitlab.redox-os.org/redox-os/installer.git - branch = master [submodule "rust"] path = rust url = https://gitlab.redox-os.org/redox-os/rust.git - branch = redox-2025-01-12 + branch = redox-2025-10-03 update = none -[submodule "redoxfs"] - path = redoxfs - url = https://gitlab.redox-os.org/redox-os/redoxfs.git - branch = master -[submodule "relibc"] - path = relibc - url = https://gitlab.redox-os.org/redox-os/relibc.git - branch = master diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1c03bcefb..073d72144 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -97,23 +97,20 @@ Please follow [our process](https://doc.redox-os.org/book/creating-proper-pull-r Before starting to contribute, we recommend reading the [Website FAQ](https://www.redox-os.org/faq/) and the [Redox Book](https://doc.redox-os.org/book/). -You can contribute to the Redox documentation and code on the following repositories (non-exhaustive, easiest first): +You can contribute to the Redox documentation and code on the following repositories (non-exhaustive, easiest-to-hardest order): - [Website](https://gitlab.redox-os.org/redox-os/website) - [Book](https://gitlab.redox-os.org/redox-os/book) - High-level documentation - [Build System Configuration](https://gitlab.redox-os.org/redox-os/redox) - Our main repository -- [Cookbook](https://gitlab.redox-os.org/redox-os/cookbook) - Software Ports System - [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 -- [netstack](https://gitlab.redox-os.org/redox-os/netstack) - Network Stack - [Bootloader](https://gitlab.redox-os.org/redox-os/bootloader) - [RedoxFS](https://gitlab.redox-os.org/redox-os/redoxfs) - Default filesystem -- [Drivers](https://gitlab.redox-os.org/redox-os/drivers) - Device Drivers -- [Base](https://gitlab.redox-os.org/redox-os/base) - Essential system daemons +- [Base](https://gitlab.redox-os.org/redox-os/base) - Essential system components and drivers - [Kernel](https://gitlab.redox-os.org/redox-os/kernel) To see all Redox repositories open the [redox-os group](https://gitlab.redox-os.org/redox-os). @@ -132,7 +129,7 @@ If you don't know how to code in Rust but know other programming languages: - Web development on the website (we only accept minimal JavaScript code to preserve performance) - Write unit tests (may require minimal knowledge of Rust) -- Port C/C++ programs to Redox (read the `TODO`s of the recipes on the [WIP category](https://gitlab.redox-os.org/redox-os/cookbook/-/tree/master/recipes/wip)) +- Port C/C++ programs to Redox (read the `TODO`s of the recipes on the [WIP category](https://gitlab.redox-os.org/redox-os/redox/-/tree/master/recipes/wip)) - Port programs to Redox If you know how to code in Rust but don't know operating system development: @@ -215,7 +212,9 @@ You can see the most common questions and problems on the [Developer FAQ](https: ## Porting Software -You can read how to use the Cookbook recipe system to port applications on the [Porting Applications using Recipes](https://doc.redox-os.org/book/porting-applications.html) page. +You can read how to use the Cookbook recipe system to port applications on the [Application Porting](https://doc.redox-os.org/book/porting-applications.html) page. + +**Always verify if a recipe for your program or library already exist before porting to not break the build system with a recipe duplication or waste time.** ## Libraries and APIs diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 000000000..009d11f85 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1551 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "ansi-to-tui" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67555e1f1ece39d737e28c8a017721287753af3f93225e4a445b29ccb0f5912c" +dependencies = [ + "nom", + "ratatui", + "simdutf8", + "smallvec", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "arrayref" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" + +[[package]] +name = "blake3" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "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", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bstr" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bytemuck" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "castaway" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" +dependencies = [ + "rustversion", +] + +[[package]] +name = "cc" +version = "1.2.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" +dependencies = [ + "find-msvc-tools", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if 1.0.4", + "cipher", + "cpufeatures", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" +dependencies = [ + "castaway", + "cfg-if 1.0.4", + "itoa", + "rustversion", + "ryu", + "static_assertions", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +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" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if 1.0.4", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "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", + "cpufeatures", + "curve25519-dalek-derive", + "fiat-crypto", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core", + "quote", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dryoc" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e73e0fee365832cd9b9a53ea62f944cc0d7a4c71f2b9c96a28fc74749517afa" +dependencies = [ + "bitflags 2.10.0", + "chacha20", + "curve25519-dalek", + "generic-array", + "lazy_static", + "libc", + "rand_core", + "salsa20", + "sha2", + "subtle", + "winapi", + "zeroize", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "fiat-crypto" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" + +[[package]] +name = "flate2" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.4", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if 1.0.4", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "globset" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "heck" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "ignore" +version = "0.4.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata", + "same-file", + "walkdir", + "winapi-util", +] + +[[package]] +name = "indexmap" +version = "2.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", +] + +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "instability" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6778b0196eefee7df739db78758e5cf9b37412268bfa5650bfeed028aed20d9c" +dependencies = [ + "darling", + "indoc", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.178" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" + +[[package]] +name = "libredox" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +dependencies = [ + "bitflags 2.10.0", + "libc", + "redox_syscall", +] + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.5", +] + +[[package]] +name = "memchr" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" + +[[package]] +name = "memsec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa0916b001582d253822171bd23f4a0229d32b9507fae236f5da8cad515ba7c" +dependencies = [ + "getrandom 0.2.16", + "libc", + "windows-sys 0.45.0", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "numtoa" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aa2c4e539b869820a2b82e1aef6ff40aa85e65decdd5185e83fb4b1249cd00f" + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "crc32fast", + "flate2", + "hashbrown 0.15.5", + "indexmap", + "memchr", + "ruzstd", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pbr" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5827dfa0d69b6c92493d6c38e633bbaa5937c153d0d7c28bf12313f8c6d514" +dependencies = [ + "crossbeam-channel", + "libc", + "winapi", +] + +[[package]] +name = "pkgar" +version = "0.1.19" +source = "git+https://gitlab.redox-os.org/redox-os/pkgar.git#e265d32cc0bb149a9574d4500e5409cbb8b662d5" +dependencies = [ + "anyhow", + "blake3 0.3.8", + "bytemuck", + "clap", + "pkgar-core", + "pkgar-keys", + "thiserror 2.0.17", +] + +[[package]] +name = "pkgar-core" +version = "0.1.19" +source = "git+https://gitlab.redox-os.org/redox-os/pkgar.git#e265d32cc0bb149a9574d4500e5409cbb8b662d5" +dependencies = [ + "bitflags 1.3.2", + "blake3 0.3.8", + "bytemuck", + "dryoc", +] + +[[package]] +name = "pkgar-keys" +version = "0.1.19" +source = "git+https://gitlab.redox-os.org/redox-os/pkgar.git#e265d32cc0bb149a9574d4500e5409cbb8b662d5" +dependencies = [ + "anyhow", + "clap", + "dirs", + "hex", + "lazy_static", + "pkgar-core", + "seckey", + "serde", + "termion", + "thiserror 2.0.17", + "toml", +] + +[[package]] +name = "proc-macro2" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "ratatui" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" +dependencies = [ + "bitflags 2.10.0", + "cassowary", + "compact_str", + "indoc", + "instability", + "itertools", + "lru", + "paste", + "strum", + "termion", + "unicode-segmentation", + "unicode-truncate", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox-pkg" +version = "0.2.9" +source = "git+https://gitlab.redox-os.org/redox-os/pkgutils.git#cbf88111fab76b8bfd688f144f7cc000408b180e" +dependencies = [ + "anyhow", + "ignore", + "serde", + "serde_derive", + "thiserror 1.0.69", + "toml", +] + +[[package]] +name = "redox_cookbook" +version = "0.1.0" +dependencies = [ + "ansi-to-tui", + "anyhow", + "blake3 1.5.3", + "filedescriptor", + "globset", + "ignore", + "libc", + "object", + "pbr", + "pkgar", + "pkgar-core", + "pkgar-keys", + "ratatui", + "redox-pkg", + "redox_installer", + "redoxer", + "regex", + "serde", + "strip-ansi-escapes", + "termion", + "toml", + "walkdir", +] + +[[package]] +name = "redox_installer" +version = "0.2.37" +source = "git+https://gitlab.redox-os.org/redox-os/installer.git#990d9d343eefbcdc4cecc5f204164b69cc70de41" +dependencies = [ + "anyhow", + "libc", + "libredox", + "serde", + "serde_derive", + "toml", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.10.0", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 2.0.17", +] + +[[package]] +name = "redoxer" +version = "0.2.61" +source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#676bda4514e1e74b006816eca7b461a0721feea1" +dependencies = [ + "anyhow", + "dirs", +] + +[[package]] +name = "regex" +version = "1.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ruzstd" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad02996bfc73da3e301efe90b1837be9ed8f4a462b6ed410aa35d00381de89f" +dependencies = [ + "twox-hash", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "seckey" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b371a3e46636d13277af1daacbecb6f5acbe653bd378a4822ecd1c67790fbb" +dependencies = [ + "getrandom 0.1.16", + "memsec", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if 1.0.4", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strip-ansi-escapes" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.111" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "termion" +version = "4.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f44138a9ae08f0f502f24104d82517ef4da7330c35acd638f1f29d3cd5475ecb" +dependencies = [ + "libc", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +dependencies = [ + "thiserror-impl 2.0.17", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_write", + "winnow", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if 0.1.10", + "static_assertions", +] + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "unicode-ident" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-truncate" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" +dependencies = [ + "itertools", + "unicode-segmentation", + "unicode-width 0.1.14", +] + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vte" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" +dependencies = [ + "memchr", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "winnow" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +dependencies = [ + "memchr", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 000000000..b68ea8fba --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,60 @@ +[package] +name = "redox_cookbook" +version = "0.1.0" +authors = ["Jeremy Soller "] +edition = "2024" +default-run = "repo" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[[bin]] +name = "cookbook_redoxer" +path = "src/bin/cookbook_redoxer.rs" + +[[bin]] +name = "repo" +path = "src/bin/repo.rs" + +[[bin]] +name = "repo_builder" +path = "src/bin/repo_builder.rs" + +[lib] +name = "cookbook" +path = "src/lib.rs" +doctest = false + +[features] +#TODO: Actually make without tui feature works +default = ["tui"] +tui = ["ratatui", "ansi-to-tui", "filedescriptor", "strip-ansi-escapes"] + +[dependencies] +anyhow = "1" +# blake3 1.5.4 is incompatible with 0.3 dependency from pkgar +blake3 = "=1.5.3" +globset = "0.4" +libc = "0.2" +ignore = "0.4" +object = { version = "0.36", features = ["build_core"] } +pbr = "1.0.2" +pkgar = { git = "https://gitlab.redox-os.org/redox-os/pkgar.git" } +pkgar-core = { git = "https://gitlab.redox-os.org/redox-os/pkgar.git" } +pkgar-keys = { git = "https://gitlab.redox-os.org/redox-os/pkgar.git" } +redox-pkg = { git = "https://gitlab.redox-os.org/redox-os/pkgutils.git", default-features = false } +redox_installer = { git = "https://gitlab.redox-os.org/redox-os/installer.git", default-features = false } +redoxer = { git = "https://gitlab.redox-os.org/redox-os/redoxer.git", default-features = false } +regex = "1.11" +serde = { version = "=1.0.197", features = ["derive"] } +termion = "4" +toml = "0.8" +walkdir = "2.3.1" +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 } + +[dependencies.ratatui] +version = "0.29.0" +default-features = false +features = ["termion"] +optional = true diff --git a/HARDWARE.md b/HARDWARE.md index a348a4153..cee97a41d 100644 --- a/HARDWARE.md +++ b/HARDWARE.md @@ -2,18 +2,20 @@ This document tracks the current hardware compatibility of Redox. -- [Why hardware reports are needed?](#why-hardware-reports-are-needed) +- [Why are hardware reports needed?](#why-are-hardware-reports-needed) - [What if my computer is customized?](#what-if-my-computer-is-customized) - [Status](#status) - [General](#general) -- [Template](#template) +- [Contribute to this document](#contribute-to-this-document) + - [Template](#template) + - [Table row ordering](#table-row-ordering) - [Recommended](#recommended) - [Booting](#booting) - [Broken](#broken) -## Why hardware reports are needed? +## Why are hardware reports needed? -Each computer model have different hardware interfaces, firmware implementations and devices, which can cause the following problems: +Each computer model has different hardware interfaces, firmware implementations, and devices, which can cause the following problems: - Boot bugs - Lack of device support @@ -27,21 +29,24 @@ You can use the "Custom" word on the "Vendor" and "Model" categories, we also re ## Status -- Broken - The system can't boot. -- Booting - The system boots with some issues. -- Recommended - The system start with all features working. +- **Recommended:** The system boots with all features working. +- **Booting:** The system boots with some issues. +- **Broken:** The system can't boot. ## General -This section cover things to consider. +This section contain limitations to consider. - ACPI support is incomplete (some things are hardcoded on the kernel) -- Only USB input devices are supported -- Wi-Fi is not supported -- GPU drivers aren't supported (only VESA and UEFI GOP) +- Wi-Fi is not supported yet +- GPU drivers aren't supported yet (only VESA and UEFI GOP) - Automatic operating system discovery on boot loader is not implemented (remember this before installing Redox) -## Template +## Contribute to this document + +To contribute to this document, learn how to create your GitLab account, follow the project-wide contribution guidelines and suggestions, please refer to the [CONTRIBUTING.md](./CONTRIBUTING.md) document. + +### Template You will use this template to insert your computer on the table. @@ -49,46 +54,65 @@ You will use this template to insert your computer on the table. | | | | | | | | | ``` +The Redox image date should use the [ISO format](https://en.wikipedia.org/wiki/ISO_8601) + +### Table row ordering + +New reports should use an independent alphabetical order in the "Vendor" and "Model" table rows, for example: + +``` +| ASUS | ROG g55vw | +| ASUS | X554L | +| System76 | Galago Pro (galp5) | +| System76 | Lemur Pro (lemp9) | +``` + +A comes before S, R comes before X, G comes before L + +Each "Vendor" has its own alphabetical order in "Model", independent from models from other vendor. + ## Recommended | **Vendor** | **Model** | **Redox Version** | **Image Date** | **Variant** | **CPU Architecture** | **Motherboard Firmware** | **Report** | |------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------| -| System76 | Galago Pro (galp5) | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital | -| System76 | Lemur Pro (lemp9) | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital | -| Lenovo | IdeaPad Y510P | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS, UEFI | Boots to Orbital | +| Lenovo | IdeaPad Y510P | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS, UEFI | Boots to Orbital | +| System76 | Galago Pro (galp5) | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital | +| System76 | Lemur Pro (lemp9) | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital | ## Booting | **Vendor** | **Model** | **Redox Version** | **Image Date** | **Variant** | **CPU Architecture** | **Motherboard Firmware** | **Report** | |------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------| -| System76 | Oryx Pro (oryp10) | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, though it should be working | -| System76 | Pangolin (pang12) | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, requires I2C HID | -| Dell | XPS 13 (9350) | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS, UEFI | Boots to Orbital, NVMe driver livelocks | -| Dell | XPS 13 (9350) | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Boots to Orbital, NVMe driver livelocks | -| HP | Dev One | 0.8.0 | 11-11-2022 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, requires I2C HID | -| ASUS | X554L | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS | Boots to Orbital, No audio, HDA driver cannot find output pins | -| ASUS | ROG g55vw | 0.8.0 | 11-11-2023 | desktop | x86-64 | BIOS | Boots to Orbital, UEFI panic in SETUP | -| ASUS | PRIME B350M-E (custom) | 0.9.0 | 20-09-2024 | desktop | x86-64 | UEFI | Partial support for the PS/2 keyboard, PS/2 mouse is broken | -| ASUS | Eee PC 900 | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Boots to Orbital, No ethernet driver, Correct video mode not offered (firmware issue) | -| Toshiba | Satellite L500 | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS | Boots to Orbital, No ethernet driver, Correct video mode not offered (firmware issue) | +| ASUS | Eee PC 900 | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Boots to Orbital, No ethernet driver, Correct video mode not offered (firmware issue) | +| ASUS | PRIME B350M-E (custom) | 0.9.0 | 2024-09-20 | desktop | x86-64 | UEFI | Partial support for the PS/2 keyboard, PS/2 mouse is broken | +| ASUS | ROG g55vw | 0.8.0 | 2023-11-11 | desktop | x86-64 | BIOS | Boots to Orbital, UEFI panic in SETUP | +| ASUS | X554L | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS | Boots to Orbital, No audio, HDA driver cannot find output pins | +| ASUS | Vivobook 15 OLED (M1503Q) | 0.9.0 | 2025-08-04 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad and usb do not work, cannot connect to the internet, right maximum display resolution 2880x1620 | +| Dell | XPS 13 (9350) | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Boots to Orbital, NVMe driver livelocks | +| Dell | XPS 13 (9350) | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS, UEFI | Boots to Orbital, NVMe driver livelocks | +| HP | Dev One | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, requires I2C HID | +| HP | EliteBook Folio 9480M | 0.9.0 | 2025-11-04 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad and usb work, cannot connect to the Internet, install failed, right maximum display resolution 1600x900 +| Lenovo | ThinkPad Yoga 260 Laptop - Type 20FE | 0.9.0 | 2024-09-07 | demo | x86-64 | UEFI | Boots to Orbital, No audio | +| Lenovo | Yoga S730-13IWL | 0.9.0 | 2024-11-09 | desktop | x86-64 | UEFI | Boots to Orbital, No trackpad or USB mouse input support | | Raspberry Pi | 3 Model B+ | 0.8.0 | Unknown | server | ARM64 | U-Boot | Boots to UART serial console (pl011) | -| Lenovo | ThinkPad Yoga 260 Laptop - Type 20FE | 0.9.0 | 07-09-2024 | demo | x86-64 | UEFI | Boots to Orbital, No audio | -| Lenovo | Yoga S730-13IWL | 0.9.0 | 09-11-2024 | desktop | x86-64 | UEFI | Boots to Orbital, No trackpad or USB mouse input support | -| Samsung | Series 3 (NP350V5C) | 0.9.0 | 04-08-2025 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad works, usb does not work, can connect to the Internet through LAN. Wrong maximum display resolution 1024x768 | -| Asus | Vivobook 15 OLED (M1503Q) | 0.9.0 | 04-08-2025 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad and usb do not work, cannot connect to the internet, right maximum display resolution 2880x1620 | -| HP | EliteBook Folio 9480M | 0.9.0 | 04-11-2025 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad and usb work, cannot connect to the Internet, install failed, right maximum display resolution 1600x900 +| Samsung | Series 3 (NP350V5C) | 0.9.0 | 2025-08-04 | desktop | x86-64 | UEFI | Boots to Orbital, touchpad works, USB does not work, can connect to the Internet through LAN. Wrong maximum display resolution 1024x768 | +| System76 | Oryx Pro (oryp10) | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, though it should be working | +| System76 | Pangolin (pang12) | 0.8.0 | 2022-11-11 | desktop | x86-64 | UEFI | Boots to Orbital, No touchpad support, requires I2C HID | +| Toshiba | Satellite L500 | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS | Boots to Orbital, No Ethernet driver, Correct video mode not offered (firmware issue) | + ## Broken | **Vendor** | **Model** | **Redox Version** | **Image Date** | **Variant** | **CPU Architecture** | **Motherboard Firmware** | **Report** | |------------|-----------|-------------------|----------------|-------------|----------------------|--------------------------|------------| -| HP | EliteBook 2570p | 0.8.0 | 23-11-2022 | demo | x86-64 | BIOS (CSM mode?) | Gets to resolution selection, Fails assert in `src/os/bios/mod.rs:77` after selecting resolution | -| BEELINK | U59 | 0.8.0 | 30-05-2024 | server | x86-64 | Unknown | Aborts after panic in xhcid | -| ASUS | PN41 | 0.8.0 | 30-05-2024 | server | x86-64 | Unknown | Aborts after panic in xhcid | -| Lenovo | G570 | 0.8.0 | 11-11-2022 | desktop | x86-64 | BIOS | Bootloader panics in `alloc_zeroed_page_aligned`, Correct video mode not offered (firmware issue) | -| Lenovo | IdeaPad Y510P | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Panics on `phys_to_virt overflow`, probably having invalid mappings for 32-bit | -| Framework | Laptop 16 (AMD Ryzen 7040 Series) | 0.9.0 | 07-09-2024 | server, demo | x86-64 | UEFI | Black screen and unresponsive after the bootloader and resolution selection | -| Toshiba | Satellite L500 | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Correct video mode not offered (firmware issue), Panics on `phys_to_virt overflow`, probably having invalid mappings for 32-bit | -| Panasonic | Toughbook CF-18 | 0.8.0 | 11-11-2022 | desktop | i686 | BIOS | Hangs after PIT initialization | -| XMG (Schenker) | Apex 17 (M21) | 0.9.0 | 30-09-2024 | demo, server | x86-64 | UEFI | After selecting resolution, (release) repeats `...::interrupt::irq::ERROR -- Local apic internal error: ESR=0x40` a few times before it freezes; (daily) really slowly prints statements from `...::rmm::INFO` before it abruptly aborts | +| ASUS | PN41 | 0.8.0 | 2024-05-30 | server | x86-64 | Unknown | Aborts after panic in xhcid | +| BEELINK | U59 | 0.8.0 | 2024-05-30 | server | x86-64 | Unknown | Aborts after panic in xhcid | +| Framework | Laptop 16 (AMD Ryzen 7040 Series) | 0.9.0 | 2024-09-07 | server, demo | x86-64 | UEFI | Black screen and unresponsive after the bootloader and resolution selection | | HP | Compaq nc6120 | 0.9.0 | 2024-11-08 | desktop, server | i686 | BIOS | Unloads into memory at a rate slower than 1MB/s after selecting resolution. When unloading is complete the logger initializes and crashes after kernel::acpi, some information about APIC is printed. Boot logs do not progress after this point. | +| HP | EliteBook 2570p | 0.8.0 | 2022-11-23 | demo | x86-64 | BIOS (CSM mode?) | Gets to resolution selection, Fails assert in `src/os/bios/mod.rs:77` after selecting resolution | +| Lenovo | G570 | 0.8.0 | 2022-11-11 | desktop | x86-64 | BIOS | Bootloader panics in `alloc_zeroed_page_aligned`, Correct video mode not offered (firmware issue) | +| Lenovo | IdeaPad Y510P | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Panics on `phys_to_virt overflow`, probably having invalid mappings for 32-bit | +| Lenovo | ThinkCentre M83 | 0.9.0 | 2025-11-09 | desktop | x86_64 | UEFI | Presents user with a set of display resolution options. After user selects an option, it takes a long time for the "live" thing to load all the way to 647MiB. Once it does reach 647MiB, however, it dumps a bunch of logs onto the screen. Those logs also happen to be offset so that the leftmost portion of all text "exists" past the leftmost part of the screen, resulting in the logs being only partially visible. The logs appear to include (among other things) 1. "thread 'main' (1) panicked at acpid/src/acpi.rs:256:68: Called `Result::unwrap()` on an `Err` value: Aml(NoCurrentOp)"; 2. "thread 'main' (1) panicked at acpid/src/main.rs:147:39:acpid: failed to daemonize: Error `I/O error` 5"; 3. "... [@hwd:40 ERROR] failed to probe with error No such device (os error 19)..."; etc. | +| Panasonic | Toughbook CF-18 | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Hangs after PIT initialization | +| Toshiba | Satellite L500 | 0.8.0 | 2022-11-11 | desktop | i686 | BIOS | Correct video mode not offered (firmware issue), Panics on `phys_to_virt overflow`, probably having invalid mappings for 32-bit | +| XMG (Schenker) | Apex 17 (M21) | 0.9.0 | 2024-09-30 | demo, server | x86-64 | UEFI | After selecting resolution, (release) repeats `...::interrupt::irq::ERROR -- Local apic internal error: ESR=0x40` a few times before it freezes; (daily) really slowly prints statements from `...::rmm::INFO` before it abruptly aborts | diff --git a/Makefile b/Makefile index cda1b2109..3cdef5c2c 100644 --- a/Makefile +++ b/Makefile @@ -28,36 +28,54 @@ rebuild: rm -rf $(BUILD)/repo.tag $(BUILD)/harddrive.img $(BUILD)/redox-live.iso $(MAKE) all -clean: $(CONTAINER_TAG) +# To tell that it's not safe +# to execute the cookbook binary +NOT_ON_PODMAN?=0 + +clean: ifeq ($(PODMAN_BUILD),1) +ifneq ("$(wildcard $(CONTAINER_TAG))","") $(PODMAN_RUN) make $@ else - cd cookbook && ./clean.sh - -rm -rf cookbook/repo - $(MAKE) fstools_clean - $(HOST_CARGO) clean --manifest-path relibc/Cargo.toml -endif + $(info will not run cookbook clean as container is not built) + $(MAKE) clean PODMAN_BUILD=0 NOT_ON_PODMAN=1 SKIP_CHECK_TOOLS=1 +endif # CONTAINER_TAG +else +ifneq ($(NOT_ON_PODMAN),1) + $(MAKE) repo_clean -$(FUMOUNT) $(BUILD)/filesystem/ || true -$(FUMOUNT) /tmp/redox_installer/ || true +endif # NOT_ON_PODMAN + rm -rf repo rm -rf $(BUILD) $(PREFIX) + $(MAKE) fstools_clean +endif # PODMAN_BUILD -distclean: $(CONTAINER_TAG) +distclean: ifeq ($(PODMAN_BUILD),1) +ifneq ("$(wildcard $(CONTAINER_TAG))","") $(PODMAN_RUN) make $@ else - $(MAKE) clean - cd cookbook && ./unfetch.sh -endif + $(info will not run cookbook unfetch as container is not built) + $(MAKE) distclean PODMAN_BUILD=0 NOT_ON_PODMAN=1 SKIP_CHECK_TOOLS=1 +endif # CONTAINER_TAG +else +ifneq ($(NOT_ON_PODMAN),1) + $(MAKE) fetch_clean +endif # NOT_ON_PODMAN + $(MAKE) clean NOT_ON_PODMAN=1 +endif # PODMAN_BUILD pull: git pull - git submodule sync --recursive - git submodule update --recursive --init - -fetch: $(BUILD)/fetch.tag + rm -f $(FSTOOLS_TAG) repo: $(BUILD)/repo.tag +repo_clean: c.--all + +fetch_clean: u.--all + # Podman build recipes and vars include mk/podman.mk @@ -89,7 +107,7 @@ else endif export RUST_GDB=gdb-multiarch # Necessary when debugging for another architecture than the host -GDB_KERNEL_FILE=cookbook/recipes/core/kernel/target/$(TARGET)/build/kernel.sym +GDB_KERNEL_FILE=recipes/core/kernel/target/$(TARGET)/build/kernel.sym gdb: FORCE rust-gdb $(GDB_KERNEL_FILE) --eval-command="target remote :1234" diff --git a/README.md b/README.md index c60d33485..2ce246b5d 100644 --- a/README.md +++ b/README.md @@ -37,17 +37,14 @@ Some of the key repositories on the Redox GitLab: | Essential Repositories | Maintainer |-------------------------------------------------------------------------------------------------------------|--------------------------- | [Kernel](https://gitlab.redox-os.org/redox-os/kernel) | **@jackpot51** -| [Base (essential system components)](https://gitlab.redox-os.org/redox-os/base) | **@jackpot51** +| [Base (essential system components and drivers)](https://gitlab.redox-os.org/redox-os/base) | **@jackpot51** | [RedoxFS (default filesystem)](https://gitlab.redox-os.org/redox-os/redoxfs) | **@jackpot51** -| [Drivers](https://gitlab.redox-os.org/redox-os/drivers) | **@jackpot51** | [relibc (C POSIX library written in Rust)](https://gitlab.redox-os.org/redox-os/relibc) | **@jackpot51** | [Ion (defauilt shell)](https://gitlab.redox-os.org/redox-os/ion) | **@jackpot51** | [Termion (terminal library)](https://gitlab.redox-os.org/redox-os/termion) | **@jackpot51** -| [netstack (network stack)](https://gitlab.redox-os.org/redox-os/netstack) | **@jackpot51** | [pkgutils (current package manager)](https://gitlab.redox-os.org/redox-os/pkgutils) | **@jackpot51** | [Orbital (display server and window manager)](https://gitlab.redox-os.org/redox-os/orbital) | **@jackpot51** -| This repo - the root of the Build System | **@jackpot51** -| [Cookbook (build system for system components and programs)](https://gitlab.redox-os.org/redox-os/cookbook) | **@jackpot51** **@hatred_45** +| This repo - the root of the Build System | **@jackpot51** **@hatred_45** | [Redoxer (tool for easy Redox development on Linux)](https://gitlab.redox-os.org/redox-os/redoxer) | **@jackpot51** | [The Redox Book](https://gitlab.redox-os.org/redox-os/book) | **@jackpot51** **@hatred_45** | [Website](https://gitlab.redox-os.org/redox-os/website) | **@jackpot51** **@hatred_45** diff --git a/TRADEMARK.md b/TRADEMARK.md new file mode 100644 index 000000000..60349016a --- /dev/null +++ b/TRADEMARK.md @@ -0,0 +1,39 @@ +# Redox OS Trademark Policy + +This document outlines the policy regarding the use of the Redox OS trademark owned by the Redox OS nonprofit. The purpose of this policy is to ensure that the Redox OS trademark is used correctly and consistently, maintaining the integrity and reputation of the Redox OS brand. + +1. Usage of the Redox OS Trademark + 1. The Redox OS trademark includes, but is not limited to, the name "Redox OS", the Redox OS logo, and any associated symbols or designs. + 2. The Redox OS trademark may only be used in accordance with this policy. Unauthorized use of the trademark is prohibited. +2. Permissible Use + 1. Community Projects: Community projects may use the Redox OS trademark to refer to the operating system, provided that such use is not misleading and does not imply endorsement by the Redox OS nonprofit without explicit permission. + 2. Educational and Informational Use: The Redox OS trademark may be used in educational and informational materials, including books, websites, and articles, to refer to the operating system, provided that such use complies with the guidelines set forth in this policy. + 3. Marketing and Promotional Use: Partners and affiliates of the Redox OS nonprofit may use the Redox OS trademark in marketing and promotional materials with prior written consent from the Redox OS nonprofit. +3. Prohibited Use + 1. Misrepresentation: The Redox OS trademark must not be used in a way that misrepresents or implies false association with, endorsement by, or sponsorship from the Redox OS nonprofit. + 2. Modification: The Redox OS trademark must not be altered, modified, or used as part of another trademark or logo without prior written permission from the Redox OS nonprofit. + 3. Merchandising: The Redox OS trademark must not be used on merchandise (e.g., T-shirts, mugs) for commercial purposes without explicit authorization from the Redox OS nonprofit. +4. Logo Usage Guidelines + 1. The Redox OS logo must be used as provided by the Redox OS nonprofit without any modifications. This includes maintaining the logo’s colors, proportions, and overall design. + 2. The Redox OS logo must be displayed in a manner that is clear and legible. Sufficient clear space should be maintained around the logo to ensure it is not crowded by other visual elements. + 3. The Redox OS name should be identified as a trademark using the “™” symbol. +5. Official Redox OS Software + 1. Software hosted at [the Redox OS GitLab group](https://gitlab.redox-os.org/redox-os/) is considered official Redox OS software. Only software that has been approved by the Redox OS nonprofit is permitted to use the Redox OS trademarks to refer to itself. Software that is official Redox OS software may use the “redox-os-” package namespace and “org.redox_os.” prefixed reverse-DNS ID. Other software should avoid using these prefixes. + 2. Third-party software that integrates with or extend the Redox OS operating system must not use the Redox OS trademark in a way that implies official status or endorsement without prior approval from the Redox OS nonprofit. Third-party developers are encouraged to use the "redox-os-ext-" package namespace. This software may be described as "for the Redox OS™ operating system". + 3. Third-party software may request inclusion as official Redox OS software. To request inclusion, please contact the Redox OS nonprofit at trademark@redox-os.org. +6. Request for Permission + 1. To request permission for uses of the Redox OS trademark not covered by this policy, please contact the Redox OS nonprofit at trademark@redox-os.org. + 2. All requests will be reviewed on a case-by-case basis, and the Redox OS nonprofit reserves the right to grant or deny permission at its sole discretion. +7. Enforcement + 1. The Redox OS nonprofit reserves the right to take appropriate legal action against any unauthorized use of the Redox OS trademark. + 2. The Redox OS nonprofit may, at its discretion, require the cessation of use of the Redox OS trademark by any party that fails to comply with this policy. + +## Contact Information + +For any questions or to request permission to use the Redox OS trademark, please contact:

+Redox OS
+trademark@redox-os.org

+This trademark policy is effective as of December 3, 2025 and may be updated from time to time at the discretion of the Redox OS nonprofit. + +--- +By adhering to these guidelines, you help us protect the Redox OS brand and ensure it remains a symbol of quality and innovation. Thank you for your cooperation. diff --git a/bin/aarch64-unknown-redox-pkg-config b/bin/aarch64-unknown-redox-pkg-config new file mode 100755 index 000000000..18e9816e5 --- /dev/null +++ b/bin/aarch64-unknown-redox-pkg-config @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}" +export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig" +export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig" + +if [ -n "${COOKBOOK_DYNAMIC}" ] +then + exec pkg-config "$@" +else + exec pkg-config --static "$@" +fi diff --git a/bin/i586-unknown-redox-pkg-config b/bin/i586-unknown-redox-pkg-config new file mode 100755 index 000000000..18e9816e5 --- /dev/null +++ b/bin/i586-unknown-redox-pkg-config @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}" +export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig" +export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig" + +if [ -n "${COOKBOOK_DYNAMIC}" ] +then + exec pkg-config "$@" +else + exec pkg-config --static "$@" +fi diff --git a/bin/i686-unknown-redox-pkg-config b/bin/i686-unknown-redox-pkg-config new file mode 100755 index 000000000..18e9816e5 --- /dev/null +++ b/bin/i686-unknown-redox-pkg-config @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}" +export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig" +export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig" + +if [ -n "${COOKBOOK_DYNAMIC}" ] +then + exec pkg-config "$@" +else + exec pkg-config --static "$@" +fi diff --git a/bin/riscv64-unknown-redox-pkg-config b/bin/riscv64-unknown-redox-pkg-config new file mode 100755 index 000000000..18e9816e5 --- /dev/null +++ b/bin/riscv64-unknown-redox-pkg-config @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}" +export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig" +export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig" + +if [ -n "${COOKBOOK_DYNAMIC}" ] +then + exec pkg-config "$@" +else + exec pkg-config --static "$@" +fi diff --git a/bin/x86_64-unknown-redox-llvm-config b/bin/x86_64-unknown-redox-llvm-config new file mode 100755 index 000000000..a0f050e77 --- /dev/null +++ b/bin/x86_64-unknown-redox-llvm-config @@ -0,0 +1,51 @@ +#!/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. + +import os +import sys +import subprocess + +LLVM_CONFIG = "/usr/bin/llvm-config" + +def main(): + toolchain_path = os.environ.get("COOKBOOK_TOOLCHAIN") + sysroot_path = os.environ.get("COOKBOOK_SYSROOT") + + if not toolchain_path or not sysroot_path: + print(f"Error: COOKBOOK_TOOLCHAIN or COOKBOOK_SYSROOT not set", file=sys.stderr) + sys.exit(1) + + cmd = [toolchain_path + LLVM_CONFIG] + sys.argv[1:] + + try: + result = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=sys.stderr, + check=False, + text=True + ) + except FileNotFoundError: + print(f"Error: Could not find executable '{LLVM_CONFIG}'", file=sys.stderr) + sys.exit(1) + + if result.returncode != 0: + sys.exit(result.returncode) + + output = result.stdout + + if sys.argv[1] in ["--bindir"]: + output = toolchain_path + "/usr/bin" + else: #if sys.argv[1] in ["--cppflags", "--cxxflags", "--includedir", "--ldflags", "--libdir", "--libfiles"] + src = toolchain_path.rstrip(os.sep) + dst = sysroot_path.rstrip(os.sep) + + output = output.replace(src, dst) + + print(output, end='') + +if __name__ == "__main__": + main() diff --git a/bin/x86_64-unknown-redox-pkg-config b/bin/x86_64-unknown-redox-pkg-config new file mode 100755 index 000000000..18e9816e5 --- /dev/null +++ b/bin/x86_64-unknown-redox-pkg-config @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}" +export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig" +export PKG_CONFIG_PATH="${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig" + +if [ -n "${COOKBOOK_DYNAMIC}" ] +then + exec pkg-config "$@" +else + exec pkg-config --static "$@" +fi diff --git a/build.sh b/build.sh index ebbcdfe1a..23f047a8c 100755 --- a/build.sh +++ b/build.sh @@ -12,10 +12,12 @@ usage() { echo "build.sh: Invoke make for a particular architecture and configuration." echo "Usage:" - echo "./build.sh [-X | -A | -6 | -a ARCH] [-c CONFIG] [-f FILESYSTEM_CONFIG] TARGET..." + echo "./build.sh [-X | -A | -5 | -R | -a ARCH] [-c CONFIG] [-f FILESYSTEM_CONFIG] TARGET..." echo " -X Equivalent to -a x86_64." echo " -A Equivalent to -a aarch64." - echo " -6 Equivalent to -a i686." + echo " -5 Equivalent to -a i586." + echo " -6 Equivalent to -a i586 (deprecated, use -5 instead)." + echo " -R Equivalent to -a riscv64gc." echo " -a ARCH: Processor Architecture. Normally one of x86_64, aarch64 or" echo " i686. ARCH is not checked, so you can add a new architecture." echo " Defaults to the directory containing the FILESYSTEM_CONFIG file," @@ -61,7 +63,9 @@ do f) FILESYSTEM_CONFIG="$OPTARG";; X) ARCH="x86_64";; A) ARCH="aarch64";; - 6) ARCH="i686";; + R) ARCH="riscv64gc";; + 5) ARCH="i586";; + 6) ARCH="i586";; h) usage;; \?) echo "Unknown option -$OPTARG, try -h for help"; exit;; :) echo "-$OPTARG requires a value"; exit;; @@ -75,8 +79,9 @@ if [ -z "$ARCH" ] && [ -n "$FILESYSTEM_CONFIG" ]; then case "$ARCH" in x86_64) : ;; aarch64) : ;; - i686) : ;; - \?) ARCH=""; echo "Unknown Architecture, please specify x86_64, aarch64 or i686";; + riscv64gc) : ;; + i586) : ;; + \?) ARCH=""; echo "Unknown Architecture, please specify x86_64, aarch64, riscv64gc or i586";; esac fi diff --git a/config/aarch64/ci.toml b/config/aarch64/ci.toml index d31d0169a..76fb84db1 100644 --- a/config/aarch64/ci.toml +++ b/config/aarch64/ci.toml @@ -7,29 +7,43 @@ prompt = false # Package settings [packages] +acid = {} base = {} base-initfs = {} +bash = {} bootloader = {} +bottom = {} ca-certificates = {} contain = {} coreutils = {} +cosmic-edit = {} +cosmic-files = {} +cosmic-icons = {} +cosmic-term = {} +cosmic-text = {} curl = {} dash = {} +dejavu = {} diffutils = {} -drivers = {} expat = {} extrautils = {} findutils = {} +freefont = {} freetype2 = {} +gettext = {} +git = {} # gdbserver = {} # wrong libc type # gnu-binutils = {} # bfd doesn't recognize redox +gnu-make = {} hicolor-icon-theme = {} installer = {} installer-gui = {} ion = {} kernel = {} +kibi = {} libffi = {} libgcc = {} +libiconv = {} libjpeg = {} libogg = {} liborbital = {} @@ -58,17 +72,22 @@ orbutils-launcher = {} orbutils-orblogin = {} patch = {} pcre = {} +patchelf = {} +pop-icon-theme = {} pkgutils = {} redoxfs = {} relibc = {} resist = {} ripgrep = {} +rustpython = {} # strace = {} # unknown syscall sdl1 = {} sed = {} +shared-mime-info = {} smith = {} terminfo = {} userutils = {} uutils = {} +xz = {} vim = {} zlib = {} diff --git a/config/base.toml b/config/base.toml index 8f2e64e18..6fec395c0 100644 --- a/config/base.toml +++ b/config/base.toml @@ -12,7 +12,6 @@ prompt = false base = {} base-initfs = {} bootloader = {} -drivers = {} kernel = {} libgcc = {} libstdcxx = {} @@ -25,12 +24,12 @@ uutils = {} path = "/usr/lib/init.d/00_base" data = """ # clear and recreate tmpdir with 0o1777 permission -rm -r /tmp +rm -rf /tmp mkdir -m a=rwxt /tmp ipcd ptyd -sudo --daemon +nowait sudo --daemon """ [[files]] diff --git a/config/desktop-minimal.toml b/config/desktop-minimal.toml index 7394cce3f..9231975db 100644 --- a/config/desktop-minimal.toml +++ b/config/desktop-minimal.toml @@ -20,7 +20,7 @@ orbutils-orblogin = {} path = "/usr/lib/init.d/20_orbital" data = """ export VT 3 -orbital orblogin launcher +nowait orbital orblogin launcher unset VT """ @@ -28,6 +28,6 @@ unset VT [[files]] path = "/usr/lib/init.d/30_console" data = """ -getty 2 -getty /scheme/debug/no-preserve -J +nowait getty 2 +nowait getty /scheme/debug/no-preserve -J """ diff --git a/config/desktop.toml b/config/desktop.toml index 2465e9ab0..3c7bd1411 100644 --- a/config/desktop.toml +++ b/config/desktop.toml @@ -10,20 +10,21 @@ filesystem_size = 650 # Package settings [packages] cosmic-edit = {} -cosmic-icons = {} 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 = {} -patchelf = {} [[files]] path = "/usr/lib/init.d/20_orbital" @@ -31,7 +32,7 @@ data = """ audiod export BROWSER /bin/netsurf-fb export VT 3 -orbital orblogin launcher +nowait orbital orblogin launcher unset BROWSER unset VT """ @@ -40,6 +41,6 @@ unset VT [[files]] path = "/usr/lib/init.d/30_console" data = """ -getty 2 -getty /scheme/debug/no-preserve -J +nowait getty 2 +nowait getty /scheme/debug/no-preserve -J """ diff --git a/config/i686/acid.toml b/config/i586/acid.toml similarity index 100% rename from config/i686/acid.toml rename to config/i586/acid.toml diff --git a/config/i686/ci.toml b/config/i586/ci.toml similarity index 56% rename from config/i686/ci.toml rename to config/i586/ci.toml index 66828b9c2..8c6105c92 100644 --- a/config/i686/ci.toml +++ b/config/i586/ci.toml @@ -7,28 +7,57 @@ prompt = false # Package settings [packages] +acid = {} base = {} base-initfs = {} +bash = {} bootloader = {} +bottom = {} ca-certificates = {} contain = {} coreutils = {} +cosmic-edit = {} +cosmic-files = {} +cosmic-icons = {} +cosmic-term = {} +cosmic-text = {} +curl = {} dash = {} +dejavu = {} diffutils = {} -drivers = {} +expat = {} extrautils = {} findutils = {} +freefont = {} +freetype2 = {} +gettext = {} +git = {} +gnu-make = {} hicolor-icon-theme = {} installer = {} installer-gui = {} ion = {} kernel = {} +kibi = {} +libffi = {} libgcc = {} +libiconv = {} +libjpeg = {} +libogg = {} +liborbital = {} +libpng = {} libstdcxx = {} +libvorbis = {} +libxkbcommon = {} +libxml2 = {} nano = {} +nasm = {} +ncurses = {} netdb = {} netsurf = {} netutils = {} +nghttp2 = {} +openssl1 = {} orbdata = {} orbital = {} orbterm = {} @@ -36,14 +65,23 @@ orbutils = {} orbutils-background = {} orbutils-launcher = {} orbutils-orblogin = {} +patch = {} +pcre = {} +patchelf = {} +pop-icon-theme = {} pkgutils = {} redoxfs = {} relibc = {} resist = {} +ripgrep = {} +rustpython = {} +sdl1 = {} +sed = {} +shared-mime-info = {} smith = {} terminfo = {} userutils = {} uutils = {} +xz = {} #vim = {} # conflicting types - -#TODO: Add more packages +zlib = {} diff --git a/config/i686/demo.toml b/config/i586/demo.toml similarity index 100% rename from config/i686/demo.toml rename to config/i586/demo.toml diff --git a/config/i686/desktop-minimal.toml b/config/i586/desktop-minimal.toml similarity index 100% rename from config/i686/desktop-minimal.toml rename to config/i586/desktop-minimal.toml diff --git a/config/i686/desktop.toml b/config/i586/desktop.toml similarity index 74% rename from config/i686/desktop.toml rename to config/i586/desktop.toml index bb2ae9b81..e4e9fa6bc 100644 --- a/config/i686/desktop.toml +++ b/config/i586/desktop.toml @@ -12,4 +12,3 @@ include = ["../desktop.toml"] # Package settings [packages] # example = {} -rustpython = "ignore" # https://github.com/Alexhuszagh/rust-lexical/issues/218 \ No newline at end of file diff --git a/config/i686/dev.toml b/config/i586/dev.toml similarity index 100% rename from config/i686/dev.toml rename to config/i586/dev.toml diff --git a/config/i686/jeremy.toml b/config/i586/jeremy.toml similarity index 100% rename from config/i686/jeremy.toml rename to config/i586/jeremy.toml diff --git a/config/i686/minimal-net.toml b/config/i586/minimal-net.toml similarity index 100% rename from config/i686/minimal-net.toml rename to config/i586/minimal-net.toml diff --git a/config/i686/minimal.toml b/config/i586/minimal.toml similarity index 100% rename from config/i686/minimal.toml rename to config/i586/minimal.toml diff --git a/config/i686/resist.toml b/config/i586/resist.toml similarity index 100% rename from config/i686/resist.toml rename to config/i586/resist.toml diff --git a/config/i686/server.toml b/config/i586/server.toml similarity index 100% rename from config/i686/server.toml rename to config/i586/server.toml diff --git a/config/i686/tests.toml b/config/i586/tests.toml similarity index 100% rename from config/i686/tests.toml rename to config/i586/tests.toml diff --git a/config/llvm.toml b/config/llvm.toml index 84d3faa7c..6a005c7bc 100644 --- a/config/llvm.toml +++ b/config/llvm.toml @@ -7,7 +7,7 @@ filesystem_size = 2048 [packages] bash = {} -llvm = {} +llvm20 = {} [[files]] path = "/usr/lib/init.d/99_gen_llvm-config-generate" diff --git a/config/minimal-net.toml b/config/minimal-net.toml index 26dcfdd72..4c81b43cd 100644 --- a/config/minimal-net.toml +++ b/config/minimal-net.toml @@ -16,13 +16,13 @@ findutils = {} ion = {} netdb = {} pkgutils = {} -smith = {} +kibi = {} [[files]] path = "/usr/lib/init.d/30_console" data = """ inputd -A 2 -getty 2 -getty /scheme/debug -J +nowait getty 2 +nowait getty /scheme/debug -J """ diff --git a/config/minimal.toml b/config/minimal.toml index ba88f789f..571e36138 100644 --- a/config/minimal.toml +++ b/config/minimal.toml @@ -12,12 +12,12 @@ filesystem_size = 196 coreutils = {} extrautils = {} ion = {} -smith = {} +kibi = {} [[files]] path = "/usr/lib/init.d/30_console" data = """ inputd -A 2 -getty 2 -getty /scheme/debug/no-preserve -J +nowait getty 2 +nowait getty /scheme/debug/no-preserve -J """ diff --git a/config/net.toml b/config/net.toml index 87497b760..05f6f5a40 100644 --- a/config/net.toml +++ b/config/net.toml @@ -13,14 +13,14 @@ netutils = {} path = "/usr/lib/init.d/10_net" data = """ smolnetd -dhcpd -b +nowait dhcpd """ ## Default net configuration (optimized for QEMU) [[files]] path = "/etc/net/dns" data = """ -208.67.222.222 +9.9.9.9 """ [[files]] diff --git a/config/redoxer-gui.toml b/config/redoxer-gui.toml index 04fd23f00..fd32620f2 100644 --- a/config/redoxer-gui.toml +++ b/config/redoxer-gui.toml @@ -14,6 +14,6 @@ data = """ echo echo ## running redoxer in orbital ## export VT 3 -orbital redoxerd +nowait orbital redoxerd unset VT """ diff --git a/config/redoxer.toml b/config/redoxer.toml index 95fd43275..ad112df79 100644 --- a/config/redoxer.toml +++ b/config/redoxer.toml @@ -9,13 +9,12 @@ ca-certificates = {} coreutils = {} extrautils = {} findutils = {} -gcc13 = {} -gnu-binutils = {} +gnu-make = {} ion = {} netdb = {} pkgutils = {} -redoxerd = {} relibc = {} +sed = {} # Override to not background dhcpd [[files]] diff --git a/config/riscv64gc/ci.toml b/config/riscv64gc/ci.toml index 45e07aa12..6da302cbf 100644 --- a/config/riscv64gc/ci.toml +++ b/config/riscv64gc/ci.toml @@ -7,28 +7,57 @@ prompt = false # Package settings [packages] +acid = {} base = {} base-initfs = {} +bash = {} bootloader = {} +bottom = {} ca-certificates = {} #contain = {} # redox_syscall 0.4 not working on riscv64gc? coreutils = {} +cosmic-edit = {} +cosmic-files = {} +cosmic-icons = {} +cosmic-term = {} +#cosmic-text = {} # need to bump redox_syscall +curl = {} dash = {} +dejavu = {} diffutils = {} -drivers = {} -#extrautils = {} # xz fails to build +expat = {} +extrautils = {} findutils = {} +freefont = {} +freetype2 = {} +gettext = {} +git = {} +gnu-make = {} hicolor-icon-theme = {} installer = {} #installer-gui = {} # redox_syscall 0.4 not working on riscv64gc? ion = {} kernel = {} +kibi = {} +libffi = {} libgcc = {} +#libiconv = {} # not tested yet, netsurf is commented out +libjpeg = {} +libogg = {} +#liborbital = {} # not tested yet, netsurf is commented out +libpng = {} libstdcxx = {} +libvorbis = {} +libxkbcommon = {} +libxml2 = {} #nano = {} # error compiling ncurses +nasm = {} +#ncurses = {} netdb = {} #netsurf = {} # error compiling nghttp2 netutils = {} +#nghttp2 = {} +openssl1 = {} orbdata = {} orbital = {} orbterm = {} @@ -36,13 +65,23 @@ orbutils = {} orbutils-background = {} orbutils-launcher = {} orbutils-orblogin = {} +#patch = {} error configure machine `riscv64gc-unknown' not recognized +pcre = {} +patchelf = {} +pop-icon-theme = {} pkgutils = {} redoxfs = {} relibc = {} #resist = {} # Uses redox_syscall 0.2 which does not compile on riscv64gc +ripgrep = {} +rustpython = {} +#sdl1 = {} # not tested yet, netsurf is commented out +sed = {} +shared-mime-info = {} smith = {} +terminfo = {} userutils = {} uutils = {} +xz = {} #vim = {} # error compiling ncurses - -#TODO: Add more packages +zlib = {} diff --git a/config/server.toml b/config/server.toml index d4ead4413..5e985216e 100644 --- a/config/server.toml +++ b/config/server.toml @@ -10,6 +10,7 @@ filesystem_size = 512 # Package settings [packages] bash = {} +bottom = {} ca-certificates = {} #contain = {} # needs to update dependencies coreutils = {} @@ -28,6 +29,6 @@ redoxfs = {} path = "/usr/lib/init.d/30_console" data = """ inputd -A 2 -getty 2 -getty /scheme/debug/no-preserve -J +nowait getty 2 +nowait getty /scheme/debug/no-preserve -J """ diff --git a/config/wayland.toml b/config/wayland.toml new file mode 100644 index 000000000..f39d4c5ab --- /dev/null +++ b/config/wayland.toml @@ -0,0 +1,69 @@ +# X11 configuration + +include = ["desktop.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 2048 + +# Package settings +[packages] +adwaita-icon-theme = {} +bash = {} +gtk3 = {} +libxcursor = {} +mesa = {} +smallvil = {} +softbuffer-wayland = {} +wayland-rs = {} +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 +[[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 +""" + +[[files]] +path = "/usr/bin/orbital-wayland" +mode = 0o755 +data = """ +#!/usr/bin/env bash + +export LD_DEBUG=all +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 & +""" + +[[files]] +path = "/etc/gtk-3.0/settings.ini" +data = """ +[Settings] +gtk-cursor-theme-name = "Adwaita" +gtk-icon-theme-name = "Adwaita" +""" diff --git a/config/x11.toml b/config/x11.toml index 6731a0532..d2ff5cd2d 100644 --- a/config/x11.toml +++ b/config/x11.toml @@ -11,50 +11,142 @@ filesystem_size = 2048 # Package settings [packages] +adwaita-icon-theme = {} +caja = {} +dbus = {} gtk3 = {} -htop = {} -libnettle = {} -llvm18 = {} -mesa-x11 = {} +marco = {} +mate-control-center = {} +mate-icon-theme = {} +mate-panel = {} +mate-session-manager = {} +mate-settings-daemon = {} +mate-terminal = {} mesa-demos-x11 = {} -sqlite3 = {} -twm = {} webkitgtk3 = {} xev = {} xeyes = {} +#xfce4-panel = {} +#xfwm4 = {} xinit = {} xkbcomp = {} xkbutils = {} xkeyboard-config = {} xserver-xorg = {} -xserver-xorg-video-dummy = {} +xserver-xorg-video-orbital = {} xterm = {} +zenity = {} [[files]] -path = "/usr/lib/init.d/20_xenv" +path = "/usr/lib/init.d/10_dbus" data = """ -export DISPLAY :0 -export G_MESSAGES_DEBUG all -export LD_DEBUG all -export WEBKIT_DEBUG all -glib-compile-schemas /usr/share/glib-2.0/schemas/ +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 +dbus-daemon --system """ [[files]] -path = "/usr/lib/init.d/40_x" +path = "/usr/lib/init.d/10_xenv" data = """ -bash /usr/bin/orbital-x11 +export DISPLAY :0 +glib-compile-schemas /usr/share/glib-2.0/schemas/ +""" + +# Overridden to launch X instead of orblogin +[[files]] +path = "/usr/lib/init.d/20_orbital" +data = """ +audiod +export BROWSER /bin/netsurf-fb +export VT 3 +nowait orbital orbital-x11 +unset BROWSER +unset VT """ [[files]] path = "/usr/bin/orbital-x11" +mode = 0o755 data = """ #!/usr/bin/env bash set -ex -X "${DISPLAY}" -verbose 6 & +# Generate config file +WIDTH="$((0x$(grep FRAMEBUFFER_WIDTH /scheme/sys/env | cut -d '=' -f 2)))" +HEIGHT="$((0x$(grep FRAMEBUFFER_HEIGHT /scheme/sys/env | cut -d '=' -f 2)))" +mkdir -p /usr/share/X11/xorg.conf.d +cat > /usr/share/X11/xorg.conf.d/orbital.conf <> \ - /etc/apt/sources.list.d/redox.list; \ - apt-get update -o Dir::Etc::sourcelist="redox.list"; \ - apt-get install -q -y --no-install-recommends \ - x86-64-unknown-redox-newlib \ - x86-64-unknown-redox-binutils \ - x86-64-unknown-redox-gcc \ - ; \ - cargo install cargo-config; \ - cargo install just@1.16.0; \ - apt-get autoremove -q -y; \ - apt-get clean -q -y; \ - rm -rf /var/lib/apt/lists/* - -COPY entrypoint.sh /usr/local/bin/ -COPY .bash_aliases /etc/skel/ - -ENTRYPOINT ["bash", "/usr/local/bin/entrypoint.sh"] -CMD ["/bin/bash"] diff --git a/docker/README.md b/docker/README.md deleted file mode 100644 index 1535e2d95..000000000 --- a/docker/README.md +++ /dev/null @@ -1,85 +0,0 @@ -## Building Redox using a Docker image with the pre-built toolchain - -*All you need is `git`, `make`, `qemu`, `fuse` and `docker`. The method requires -a non-privileged user able to run the `docker` command, which is usually achieved -by adding the user to the `docker` group.* - -It's a three-steps process with variations depending on the platform. -On the first execution of one of the following docker commands, the -official container image will be pulled from dockerhub and stored -locally. - -The image includes the required dependencies and the pre-built -toolchain. As long as you rely on this particular dependencies and -toolchain versions, you don't need to update the container. - -### Get the sources -``` -git clone https://gitlab.redox-os.org/redox-os/redox.git ; cd redox -``` - -### Update the source tree -Note: if you use the container on a different host or -with a different user, [get the sources first](#get_the_sources). -```shell -git pull --rebase --recurse-submodules && git submodule sync \ - && git submodule update --recursive --init -``` - -### Run the container to build Redox -```shell -docker run --privileged --cap-add MKNOD --cap-add SYS_ADMIN --device /dev/fuse \ - -e LOCAL_UID="$(id -u)" -e LOCAL_GID="$(id -g)" \ - -v redox-"$(id -u)-$(id -g)"-cargo:/usr/local/cargo \ - -v redox-"$(id -u)-$(id -g)"-rustup:/usr/local/rustup \ - -v "$(pwd):$(pwd)" -w "$(pwd)" --rm redoxos/redox make fetch all -``` -#### Linux with security modules -Add the following options depending on the security modules activated on your system: -```shell ---security-opt label=disable // disable SELinux ---security-opt seccomp=unconfined // disable seccomp ---security-opt apparmor=unconfined // disable AppArmor -``` -Ex.: for a SELinux only system such as Fedora or CentOS -```shell -docker run --privileged --cap-add MKNOD --cap-add SYS_ADMIN --device /dev/fuse \ - -e LOCAL_UID="$(id -u)" -e LOCAL_GID="$(id -g)" \ - --security-opt label=disable \ - -v redox-"$(id -u)-$(id -g)"-cargo:/usr/local/cargo \ - -v redox-"$(id -u)-$(id -g)"-rustup:/usr/local/rustup \ - -v "$(pwd):$(pwd)" -w "$(pwd)" --rm redoxos/redox make fetch all -``` -### Run the container interactively -```shell -docker run --privileged --cap-add MKNOD --cap-add SYS_ADMIN --device /dev/fuse \ - -e LOCAL_UID="$(id -u)" -e LOCAL_GID="$(id -g)" \ - -v redox-"$(id -u)-$(id -g)"-cargo:/usr/local/cargo \ - -v redox-"$(id -u)-$(id -g)"-rustup:/usr/local/rustup \ - -v "$(pwd):$(pwd)" -w "$(pwd)" --rm -it redoxos/redox -``` - -#### Demo -![Image of Usage](demo.gif) - -### Clear the named volumes containing the toolchain caches -```shell -docker volume rm redox-"$(id -u)-$(id -g)"-cargo \ - redox-"$(id -u)-$(id -g)"-rustup -``` - -### Build the container manually -If you cannot access dockerhub for whatever reason, you can also build -the container image manually. -```shell -docker build -t redoxos/redox docker/ -``` - -### Troubleshooting / updating -Sometimes, builds may fail because the nightly toolchain of rust inside the container got out of sync with dependencies of redox, or there are issues with cargo. In this case, it might help to update your current container image and delete the rust and cargo caches. This way, you can start over from a clean state and rule out your local setup as the origin of errors. - -```shell -docker pull redoxos/redox -docker volume rm redox-"$(id -u)-$(id -g)"-cargo \ - redox-"$(id -u)-$(id -g)"-rustup -``` diff --git a/docker/demo.gif b/docker/demo.gif deleted file mode 100644 index 695a225a8..000000000 Binary files a/docker/demo.gif and /dev/null differ diff --git a/docker/docker.sh b/docker/docker.sh deleted file mode 100755 index 63bc5ddca..000000000 --- a/docker/docker.sh +++ /dev/null @@ -1,7 +0,0 @@ -# This script run the Docker image of Redox - -docker run --privileged --cap-add MKNOD --cap-add SYS_ADMIN --device /dev/fuse \ - -e LOCAL_UID="$(id -u)" -e LOCAL_GID="$(id -g)" \ - -v redox-"$(id -u)-$(id -g)"-cargo:/usr/local/cargo \ - -v redox-"$(id -u)-$(id -g)"-rustup:/usr/local/rustup \ - -v "$(pwd):$(pwd)" -w "$(pwd)" --rm -it redoxos/redox "$@" diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh deleted file mode 100755 index 2cea4ee9a..000000000 --- a/docker/entrypoint.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash - -# Add local user -# Either use LOCAL_UID and LOCAL_GID if passed in at runtime via -# -e LOCAL_UID="$(id -u)" -e LOCAL_GID="$(id -g)" or fallback -USER_NAME=redox -RUN_UID=${LOCAL_UID:-9001} -RUN_GID=${LOCAL_GID:-9001} - -groupadd --non-unique --gid $RUN_GID $USER_NAME -useradd --non-unique --create-home --uid $RUN_UID --gid $USER_NAME --groups sudo $USER_NAME - -echo "$USER_NAME ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/user-no-sudo-password - -export HOME=/home/$USER_NAME - -# Check current UID and GID of files in the named volume caches for -# cargo and rustup. Test only one of the top level folders to speed -# things up. -TESTFILE=$RUSTUP_HOME/settings.toml -CACHED_UID=$(stat -c "%u" $TESTFILE) -CACHED_GID=$(stat -c "%g" $TESTFILE) - -if [ $CACHED_UID != $RUN_UID ] || [ $RUN_GID != $CACHED_GID ]; then - echo -e "\033[01;38;5;155mChanging user id:group to ${RUN_UID}:${RUN_GID}. Please wait...\033[0m" - chown $RUN_UID:$RUN_GID -R $CARGO_HOME $RUSTUP_HOME -fi - -# fixes issue in docker for mac where fuse permissions are restricted to root:root -# https://github.com/theferrit32/data-commons-workspace/issues/5 -# https://github.com/heliumdatacommons/data-commons-workspace/commit/f96624c8a55f5ded5ac60f4f54182a59be92e66d -if [ -f /dev/fuse ]; then chmod 666 /dev/fuse; fi - -exec gosu $USER_NAME "$@" diff --git a/flake.lock b/flake.lock index 09900d8de..ce34342d2 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1743550720, - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "lastModified": 1763759067, + "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", "type": "github" }, "original": { @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1739863612, - "narHash": "sha256-UbtgxplOhFcyjBcNbTVO8+HUHAl/WXFDOb6LvqShiZo=", + "lastModified": 1763934636, + "narHash": "sha256-9glbI7f1uU+yzQCq5LwLgdZqx6svOhZWkd4JRY265fc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "632f04521e847173c54fa72973ec6c39a371211c", + "rev": "ee09932cedcef15aaf476f9343d1dea2cb77e261", "type": "github" }, "original": { @@ -36,11 +36,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1743296961, - "narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", + "lastModified": 1761765539, + "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", + "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc", "type": "github" }, "original": { @@ -63,11 +63,11 @@ ] }, "locked": { - "lastModified": 1739932111, - "narHash": "sha256-WkayjH0vuGw0hx2gmjTUGFRvMKpM17gKcpL/U8EUUw0=", + "lastModified": 1764038373, + "narHash": "sha256-M6w2wNBRelcavoDAyFL2iO4NeWknD40ASkH1S3C0YGM=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "75b2271c5c087d830684cd5462d4410219acc367", + "rev": "ab3536fe850211a96673c6ffb2cb88aab8071cc9", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 2400bc4b3..82b380deb 100644 --- a/flake.nix +++ b/flake.nix @@ -6,9 +6,7 @@ flake-parts.url = "github:hercules-ci/flake-parts"; rust-overlay = { url = "github:oxalica/rust-overlay"; - inputs = { - nixpkgs.follows = "nixpkgs"; - }; + inputs.nixpkgs.follows = "nixpkgs"; }; }; @@ -47,7 +45,7 @@ overlays = [ rust-overlay.overlays.default ]; }; - rust-bin = pkgs.rust-bin.nightly."2025-01-12".default.override { + rust-bin = pkgs.rust-bin.nightly."2025-10-03".default.override { extensions = [ "rust-analyzer" "rust-src" @@ -71,19 +69,6 @@ rustc = rust-bin; }; - cargo-config = rustPlatform.buildRustPackage { - pname = "cargo-config"; - version = "0.1.1"; - src = pkgs.fetchFromGitHub { - owner = "wesleywiser"; - repo = "cargo-config"; - rev = "cf576faf65913615ed424914daa960800ed3ebc4"; - sha256 = "sha256-HrITNTfjBppOH1MhfZHfzHc6N8ymcm7vaiBI94ctUOA="; - fetchSubmodules = true; - }; - # useFetchCargoVendor = true; # this is recommended, but fails in some python code? - cargoHash = "sha256-yQpIKclZ8KLE5JGkB/tjKZA8ezaD9SbUthDsuBXYZjQ="; - }; podmanSetupScript = let registriesConf = pkgs.writeText "registries.conf" '' @@ -106,7 +91,7 @@ export PODMAN_SYSTEMD_UNIT=podman.socket ''; # Provides a fake "docker" binary mapping to podman - dockerCompat = pkgs.runCommandNoCC "docker-podman-compat" { } '' + dockerCompat = pkgs.runCommand "docker-podman-compat" { } '' mkdir -p $out/bin ln -s ${pkgs.podman}/bin/podman $out/bin/docker ''; @@ -114,13 +99,6 @@ in pkgs.mkShell rec { buildInputs = with pkgs; [ - # Compilation - rust-bin - - # Utils - cowsay - lolcat - # Podman dockerCompat podman # Docker compat @@ -130,65 +108,24 @@ slirp4netns # User-mode networking for unprivileged namespaces fuse-overlayfs # CoW for images, much faster than default vfs - # Cargo utilities - cargo-config - - # Build Redox - ant - autoconf - automake - bison - cmake - curl - doxygen - expat - expect - file - flex - fuse - gmp - gnumake - gnupatch - gperf - just - libjpeg - libpng - libtool - llvmPackages.clang - llvmPackages.llvm - lua - m4 - meson - nasm - perl - perl540Packages.HTMLParser - perl540Packages.Po4a - pkgconf - podman - protobuf - (python3.withPackages (ps: with ps; [ mako ])) + # with FSTOOLS_IN_PODMAN=1 these are not needed + # without it, the installer fails to link FUSE somehow + #fuse + #rust-bin qemu_kvm - rust-cbindgen - scons - SDL - syslinux - texinfo - unzip - waf - wget - xdg-utils - zip ]; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs; NIX_SHELL_BUILD = "1"; + FSTOOLS_IN_PODMAN = "1"; shellHook = '' # Install required configuration ${podmanSetupScript} - echo "Redox environment loaded" | cowsay | lolcat + echo "Redox podman build environment loaded" ''; }; + #TODO: This isn't tested yet, use at your own risk native = pkgs.mkShell rec { nativeBuildInputs = let @@ -228,7 +165,6 @@ qemu_kvm rust-cbindgen scons - syslinux texinfo unzip waf @@ -236,6 +172,8 @@ xdg-utils xxd zip + ] ++ pkgs.lib.optionals pkgs.stdenv.hostPlatform.isx86 [ + pkgs.syslinux ]; buildInputs = with pkgs; [ @@ -254,7 +192,7 @@ PODMAN_BUILD = "0"; shellHook = with pkgs; '' export PKG_CONFIG_PATH="${fuse.dev}/lib/pkgconfig\ - :${libpng.dev}/lib/pkgconfig + :${libpng.dev}/lib/pkgconfig" ''; }; }; diff --git a/installer b/installer deleted file mode 160000 index 97dd77918..000000000 --- a/installer +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 97dd77918e7027c6c57d537b7eb732bbd22739af diff --git a/mk/ci.mk b/mk/ci.mk index 89ee4ca33..e1faf617f 100644 --- a/mk/ci.mk +++ b/mk/ci.mk @@ -9,12 +9,12 @@ IMG_DIR?=build/img/$(ARCH) ci-img: FORCE rm -rf $(IMG_DIR) mkdir -p $(IMG_DIR) - $(MAKE) minimal minimal-net server desktop demo + $(MAKE) server desktop demo cd $(IMG_DIR) && zstd --rm * cd $(IMG_DIR) && sha256sum -b * > SHA256SUM # The name of the target must match the name of the filesystem config file -minimal minimal-net server desktop demo: FORCE +server desktop demo: FORCE rm -f "build/$(ARCH)/$@/harddrive.img" "build/$(ARCH)/$@/redox-live.iso" $(MAKE) CONFIG_NAME=$@ build/$(ARCH)/$@/harddrive.img build/$(ARCH)/$@/redox-live.iso mkdir -p $(IMG_DIR) @@ -26,15 +26,9 @@ ci-pkg: prefix $(FSTOOLS_TAG) $(CONTAINER_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - $(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release - $(HOST_CARGO) build --manifest-path cookbook/pkgar/Cargo.toml --release - $(HOST_CARGO) build --manifest-path installer/Cargo.toml --release - export PATH="$(PREFIX_PATH):$$PATH" && \ - export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) --short -c config/$(ARCH)/ci.toml)" && \ - cd cookbook && \ - ./fetch.sh "$${PACKAGES}" && \ - ./repo.sh $(REPO_NONSTOP) "$${PACKAGES}" + $(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" endif # CI toolchain diff --git a/mk/config.mk b/mk/config.mk index 38f10bc83..65897685d 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -5,7 +5,7 @@ HOST_ARCH?=$(shell uname -m) # Configuration -## Architecture to build Redox for (aarch64, i686, or x86_64). Defaults to a host one +## Architecture to build Redox for (aarch64, i586, or x86_64). Defaults to a host one ARCH?=$(HOST_ARCH) ## Sub-device type for aarch64 if needed BOARD?= @@ -17,12 +17,18 @@ EXPERIMENTAL_PREFIX_USE_UPSTREAM_RUST_COMPILER?=0 REPO_BINARY?=0 ## Name of the configuration to include in the image name e.g. desktop or server CONFIG_NAME?=desktop +## Build appstream data for repo +REPO_APPSTREAM?=0 ## Ignore errors when building the repo, attempt to build every package REPO_NONSTOP?=0 ## Do not update source repos, attempt to build in offline condition REPO_OFFLINE?=0 ## Do not strip debug info for local build REPO_DEBUG?=0 +## Old config value that need to be corrected +ifeq ($(ARCH),i686) + ARCH=i586 +endif ## Select filesystem config ifeq ($(BOARD),) FILESYSTEM_CONFIG?=config/$(ARCH)/$(CONFIG_NAME).toml @@ -31,11 +37,15 @@ FILESYSTEM_CONFIG?=config/$(ARCH)/$(BOARD)/$(CONFIG_NAME).toml endif HOST_CARGO=env -u RUSTUP_TOOLCHAIN -u CC -u TARGET cargo ## Filesystem size in MB (default comes from filesystem_size in the FILESYSTEM_CONFIG) -## FILESYSTEM_SIZE?=$(shell $(HOST_CARGO) run --release --manifest-path installer/Cargo.toml -- --filesystem-size -c $(FILESYSTEM_CONFIG)) +## FILESYSTEM_SIZE?=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)) ## Flags to pass to redoxfs-mkfs. Add --encrypt to set up disk encryption REDOXFS_MKFS_FLAGS?= ## Set to 1 to enable Podman build, any other value will disable it PODMAN_BUILD?=1 +## Set to 1 to put filesystem tools inside podman, any other value will install it to host +FSTOOLS_IN_PODMAN?=0 +## Set to 1 if FUSE is not available and we are running in a container +FSTOOLS_NO_MOUNT?=0 ## Enable sccache to speed up cargo builds ## only do this by default if this is inside podman SCCACHE_BUILD?=$(shell [ -f /run/.containerenv ] && echo 1 || echo 0) @@ -44,22 +54,24 @@ CONTAINERFILE?=podman/redox-base-containerfile # Per host variables export NPROC=nproc -export REDOX_MAKE=make +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) + $(info The $(ARCH) binary prefix is only built for x86_64 and aarch64 Linux hosts) PREFIX_BINARY=0 endif else - $(info The $(ARCH) binary prefix is only built for x86_64 Linux hosts) + $(info The $(ARCH) binary prefix is only built for x86_64 Linux hosts) PREFIX_BINARY=0 endif endif +endif ifeq ($(SCCACHE_BUILD),1) ifeq (,$(shell command -v sccache)) @@ -68,15 +80,14 @@ ifeq (,$(shell command -v sccache)) endif endif +ifeq ($(REPO_APPSTREAM),1) + export COOKBOOK_APPSTREAM=true +endif ifeq ($(REPO_NONSTOP),1) - REPO_NONSTOP=--nonstop -else ifeq ($(REPO_NONSTOP),0) - REPO_NONSTOP= + export COOKBOOK_NONSTOP=true endif ifeq ($(REPO_OFFLINE),1) - REPO_OFFLINE=--offline -else ifeq ($(REPO_OFFLINE),0) - REPO_OFFLINE= + export COOKBOOK_OFFLINE=true endif ifeq ($(REPO_DEBUG),1) export COOKBOOK_NOSTRIP=true @@ -94,7 +105,6 @@ ifeq ($(UNAME),Darwin) VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage else ifeq ($(UNAME),FreeBSD) FUMOUNT=sudo umount - export REDOX_MAKE=gmake VB_AUDIO=pulse # To check, will probably be OSS on most setups VBM=VBoxManage else @@ -112,59 +122,54 @@ endif # Automatic variables ROOT=$(CURDIR) export RUST_COMPILER_RT_ROOT=$(ROOT)/rust/src/llvm-project/compiler-rt +export TESTBIN?= +RUNNING_IN_PODMAN=$(shell [ -f /run/.containerenv ] && echo 1 || echo 0) +ifeq ($(PODMAN_BUILD),1) +ifeq ($(RUNNING_IN_PODMAN),1) +$(info Please unset PODMAN_BUILD=1 in .config!) +endif +endif + +ALLOW_FSTOOLS?=0 +ifeq ($(FSTOOLS_IN_PODMAN),0) +ifeq ($(RUNNING_IN_PODMAN),0) +ALLOW_FSTOOLS=1 +endif +endif ## Userspace variables -export TARGET=$(ARCH)-unknown-redox ifeq ($(ARCH),riscv64gc) + export TARGET=riscv64gc-unknown-redox export GNU_TARGET=riscv64-unknown-redox else - export GNU_TARGET=$(TARGET) + export TARGET=$(ARCH)-unknown-redox + export GNU_TARGET=$(ARCH)-unknown-redox endif BUILD=build/$(ARCH)/$(CONFIG_NAME) MOUNT_DIR=$(BUILD)/filesystem -HOST_FSTOOLS=build/fstools -INSTALLER=$(HOST_FSTOOLS)/bin/redox_installer -INSTALLER_OPTS= -LIST_PACKAGES=installer/target/release/list_packages -LIST_PACKAGES_OPTS= -REDOXFS=$(HOST_FSTOOLS)/bin/redoxfs -REDOXFS_MKFS=$(HOST_FSTOOLS)/bin/redoxfs-mkfs -ifeq ($(REPO_BINARY),0) -INSTALLER_OPTS+=--cookbook=cookbook -else -INSTALLER_OPTS+=--cookbook=cookbook --repo-binary -LIST_PACKAGES_OPTS+=--repo-binary +FSTOOLS=build/fstools +INSTALLER=$(FSTOOLS)/bin/redox_installer +REDOXFS=$(FSTOOLS)/bin/redoxfs +REDOXFS_MKFS=$(FSTOOLS)/bin/redoxfs-mkfs +INSTALLER_OPTS=--cookbook=. +COOKBOOK_OPTS="--filesystem=$(FILESYSTEM_CONFIG)" +ifeq ($(REPO_BINARY),1) +INSTALLER_OPTS+=--repo-binary +COOKBOOK_OPTS+=--repo-binary +endif +ifeq ($(FSTOOLS_NO_MOUNT),1) +INSTALLER_OPTS+=--no-mount endif REPO_TAG=$(BUILD)/repo.tag FSTOOLS_TAG=build/fstools.tag export BOARD -## Cross compiler variables -AR=$(GNU_TARGET)-gcc-ar -AS=$(GNU_TARGET)-as -CC=$(GNU_TARGET)-gcc -CXX=$(GNU_TARGET)-g++ -LD=$(GNU_TARGET)-ld -NM=$(GNU_TARGET)-gcc-nm -OBJCOPY=$(GNU_TARGET)-objcopy -OBJDUMP=$(GNU_TARGET)-objdump -RANLIB=$(GNU_TARGET)-gcc-ranlib -READELF=$(GNU_TARGET)-readelf -STRIP=$(GNU_TARGET)-strip - ifeq ($(SCCACHE_BUILD),1) export CC_WRAPPER:=sccache export RUSTC_WRAPPER:=$(CC_WRAPPER) - CC=$(CC_WRAPPER) $(GNU_TARGET)-gcc - CXX=$(CC_WRAPPER) $(GNU_TARGET)-g++ endif -## Rust cross compile variables -export AR_$(subst -,_,$(TARGET)):=$(AR) -export CC_$(subst -,_,$(TARGET)):=$(CC) -export CXX_$(subst -,_,$(TARGET)):=$(CXX) - ## 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 68ed63b30..3bc95d0ee 100644 --- a/mk/depends.mk +++ b/mk/depends.mk @@ -12,6 +12,9 @@ endif endif +# don’t check for compile tools, used internally when installing fstools on host +ifneq ($(SKIP_CHECK_TOOLS),1) + ifeq ($(shell which cbindgen),) $(error cbindgen not found, install from crates.io or from your package manager) endif @@ -24,11 +27,6 @@ ifeq ($(shell which just),) $(error 'just' not found, install from crates.io or from your package manager) endif -ifneq ($(NIX_SHELL_BUILD),1) -CARGO_CONFIG_VERSION=0.1.1 -ifeq ($(shell env -u RUSTUP_TOOLCHAIN cargo install --list | grep '^cargo-config v$(CARGO_CONFIG_VERSION):$$'),) -$(error cargo-config $(CARGO_CONFIG_VERSION) not found, run "cargo install --force --version $(CARGO_CONFIG_VERSION) cargo-config") -endif endif endif diff --git a/mk/disk.mk b/mk/disk.mk index 7cbae0d9e..d84d8069b 100644 --- a/mk/disk.mk +++ b/mk/disk.mk @@ -1,6 +1,9 @@ # Configuration file with the commands configuration of the Redox image -$(BUILD)/harddrive.img: $(HOST_FSTOOLS) $(REPO_TAG) +$(BUILD)/harddrive.img: $(FSTOOLS) $(REPO_TAG) +ifeq ($(FSTOOLS_IN_PODMAN),1) + $(PODMAN_RUN) make $@ +else mkdir -p $(BUILD) rm -rf $@ $@.partial -$(FUMOUNT) /tmp/redox_installer || true @@ -11,8 +14,12 @@ $(BUILD)/harddrive.img: $(HOST_FSTOOLS) $(REPO_TAG) truncate -s "$$FILESYSTEM_SIZE"m $@.partial umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $@.partial mv $@.partial $@ +endif -$(BUILD)/redox-live.iso: $(HOST_FSTOOLS) $(REPO_TAG) redox.ipxe +$(BUILD)/redox-live.iso: $(FSTOOLS) $(REPO_TAG) redox.ipxe +ifeq ($(FSTOOLS_IN_PODMAN),1) + $(PODMAN_RUN) make $@ +else mkdir -p $(BUILD) rm -rf $@ $@.partial -$(FUMOUNT) /tmp/redox_installer || true @@ -24,8 +31,12 @@ $(BUILD)/redox-live.iso: $(HOST_FSTOOLS) $(REPO_TAG) redox.ipxe umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) --write-bootloader="$(BUILD)/bootloader-live.efi" --live $@.partial mv $@.partial $@ cp redox.ipxe $(BUILD)/redox.ipxe +endif -$(BUILD)/filesystem.img: $(HOST_FSTOOLS) $(REPO_TAG) +$(BUILD)/filesystem.img: $(FSTOOLS) $(REPO_TAG) +ifeq ($(FSTOOLS_IN_PODMAN),1) + $(PODMAN_RUN) make $@ +else mkdir -p $(BUILD) -$(FUMOUNT) $(MOUNT_DIR) || true rm -rf $@ $@.partial $(MOUNT_DIR) @@ -45,27 +56,44 @@ $(BUILD)/filesystem.img: $(HOST_FSTOOLS) $(REPO_TAG) -$(FUMOUNT) $(MOUNT_DIR) || true rm -rf $(MOUNT_DIR) mv $@.partial $@ +endif -mount: $(HOST_FSTOOLS) FORCE - mkdir -p $(MOUNT_DIR) +mount: $(FSTOOLS) FORCE +ifeq ($(FSTOOLS_IN_PODMAN),1) + $(PODMAN_RUN) make $@ +else + @mkdir -p $(MOUNT_DIR) $(REDOXFS) $(BUILD)/harddrive.img $(MOUNT_DIR) - sleep 2 - pgrep redoxfs + @sleep 2 + @pgrep redoxfs +endif -mount_extra: $(HOST_FSTOOLS) FORCE - mkdir -p $(MOUNT_DIR) +mount_extra: $(FSTOOLS) FORCE +ifeq ($(FSTOOLS_IN_PODMAN),1) + $(PODMAN_RUN) make $@ +else + @mkdir -p $(MOUNT_DIR) $(REDOXFS) $(BUILD)/extra.img $(MOUNT_DIR) - sleep 2 - pgrep redoxfs + @sleep 2 + @pgrep redoxfs +endif -mount_live: $(HOST_FSTOOLS) FORCE - mkdir -p $(MOUNT_DIR) +mount_live: $(FSTOOLS) FORCE +ifeq ($(FSTOOLS_IN_PODMAN),1) + $(PODMAN_RUN) make $@ +else + @mkdir -p $(MOUNT_DIR) $(REDOXFS) $(BUILD)/redox-live.iso $(MOUNT_DIR) - sleep 2 - pgrep redoxfs + @sleep 2 + @pgrep redoxfs +endif unmount: FORCE - sync - -$(FUMOUNT) $(MOUNT_DIR) || true - rm -rf $(MOUNT_DIR) - -$(FUMOUNT) /tmp/redox_installer || true +ifeq ($(FSTOOLS_IN_PODMAN),1) + $(PODMAN_RUN) make $@ +else + @sync + -$(FUMOUNT) $(MOUNT_DIR) + @rm -rf $(MOUNT_DIR) + @-$(FUMOUNT) /tmp/redox_installer 2>/dev/null || true +endif diff --git a/mk/fstools.mk b/mk/fstools.mk index 3781d26e8..0a294b9c0 100644 --- a/mk/fstools.mk +++ b/mk/fstools.mk @@ -1,36 +1,43 @@ # Configuration file for redox-installer, Cookbook and RedoxFS FUSE -fstools: $(FSTOOLS_TAG) $(HOST_FSTOOLS) +fstools: $(FSTOOLS_TAG) $(FSTOOLS) # These tools run inside Podman if it is used, or on the host if Podman is not used -$(FSTOOLS_TAG): cookbook installer $(CONTAINER_TAG) +$(FSTOOLS): $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) +ifeq ($(FSTOOLS_IN_PODMAN),1) $(PODMAN_RUN) make $@ else - $(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release - $(HOST_CARGO) build --manifest-path cookbook/pkgar/Cargo.toml --release - $(HOST_CARGO) build --manifest-path installer/Cargo.toml --bin list_packages --release - mkdir -p build - touch $@ + $(MAKE) $@ PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 endif - -## The installer and redoxfs run on the host, even when using Podman build -$(HOST_FSTOOLS): installer redoxfs +else rm -rf $@ $@.partial mkdir -p $@.partial - $(HOST_CARGO) install --root $@.partial --path installer --bin redox_installer - $(HOST_CARGO) install --root $@.partial --path redoxfs --bin redoxfs --bin redoxfs-mkfs + ln -sr recipes $@.partial/recipes + + # Install cookbook, installer, and redoxfs for host (may be outside of podman container) + #TODO: Build and install installer and redoxfs using cookbook? + 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 + mv $@.partial $@ touch $@ +endif -fstools_clean: FORCE $(CONTAINER_TAG) +$(FSTOOLS_TAG): $(FSTOOLS) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - $(HOST_CARGO) clean --manifest-path cookbook/Cargo.toml - $(HOST_CARGO) clean --manifest-path cookbook/pkgar/Cargo.toml - $(HOST_CARGO) clean --manifest-path installer/Cargo.toml - $(HOST_CARGO) clean --manifest-path redoxfs/Cargo.toml - rm -rf $(HOST_FSTOOLS) - rm -f $(FSTOOLS_TAG) + $(HOST_CARGO) build --manifest-path Cargo.toml --release --locked + touch $@ endif + +fstools_clean: FORCE + rm -rf target + rm -rf $(FSTOOLS) + rm -rf $(FSTOOLS)-target + rm -f $(FSTOOLS_TAG) diff --git a/mk/podman.mk b/mk/podman.mk index 8978275f4..e79ba7518 100644 --- a/mk/podman.mk +++ b/mk/podman.mk @@ -17,21 +17,23 @@ endif ## Podman Home Directory PODMAN_HOME?=$(ROOT)/build/podman ## Podman command with its many arguments -PODMAN_VOLUMES?=--volume $(ROOT):$(CONTAINER_WORKDIR)$(PODMAN_VOLUME_FLAG) --volume $(PODMAN_HOME):/home$(PODMAN_VOLUME_FLAG) -PODMAN_ENV?=--env PATH=/home/poduser/.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) -PODMAN_OPTIONS?=--rm --workdir $(CONTAINER_WORKDIR) --userns keep-id --user `id -u` --interactive --tty --env TERM=$(TERM) +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) --env TESTBIN=$(TESTBIN) +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) container_shell: build/container.tag ifeq ($(PODMAN_BUILD),1) - podman run $(PODMAN_VOLUMES) $(PODMAN_OPTIONS) $(PODMAN_ENV) --tty $(IMAGE_TAG) bash + podman run $(PODMAN_VOLUMES) $(PODMAN_OPTIONS) $(PODMAN_ENV) $(IMAGE_TAG) bash else @echo PODMAN_BUILD=$(PODMAN_BUILD), please set it to 1 in mk/config.mk endif container_su: FORCE - podman exec --user=0 --latest --interactive --tty bash + podman run $(PODMAN_VOLUMES) $(PODMAN_OPTIONS) --user 0 $(PODMAN_ENV) $(IMAGE_TAG) bash container_clean: FORCE rm -f build/container.tag @@ -56,12 +58,10 @@ container_kill: FORCE build/container.tag: $(CONTAINERFILE) ifeq ($(PODMAN_BUILD),1) rm -f build/container.tag - @echo "If podman_home dir cannot be removed, remove with \"sudo rm\"." - -rm -rf $(PODMAN_HOME) || true -podman image rm --force $(IMAGE_TAG) || true mkdir -p $(PODMAN_HOME) @echo "Building Podman image. This may take some time." - sed s/_UID_/`id -u`/ $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) --tag $(IMAGE_TAG) + cat $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) --tag $(IMAGE_TAG) @echo "Mapping Podman user space. Please wait." $(PODMAN_RUN) bash -e podman/rustinstall.sh mkdir -p build @@ -71,7 +71,7 @@ else @echo PODMAN_BUILD=$(PODMAN_BUILD), container not required. endif -KERNEL_PATH := cookbook/recipes/core/kernel +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 f00f7d31c..42a66b402 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -4,6 +4,7 @@ PREFIX=prefix/$(TARGET) PREFIX_INSTALL=$(PREFIX)/sysroot/ PREFIX_PATH=$(ROOT)/$(PREFIX_INSTALL)/bin +RELIBC_SOURCE=recipes/core/relibc/source GNU_HOST=$(HOST_ARCH)-unknown-linux-gnu BINUTILS_BRANCH=redox-2.43.1 @@ -30,6 +31,11 @@ endif # so would break non-podman builds (not sure if they are still supported though). prefix: $(PREFIX)/sysroot +# Update relibc used for compiling and clean all statically linked recipes +prefix_clean: | $(FSTOOLS_TAG) + rm -rf $(PREFIX)/relibc $(PREFIX)/sysroot + $(MAKE) c.base,base-initfs,extrautils,kernel,ion,pkgutils,redoxfs,relibc + PREFIX_STRIP=\ mkdir -p bin libexec "$(GCC_TARGET)/bin" && \ find bin libexec "$(GCC_TARGET)/bin" "$(GCC_TARGET)/lib" \ @@ -37,10 +43,18 @@ PREFIX_STRIP=\ -exec strip --strip-unneeded {} ';' \ 2> /dev/null -$(PREFIX)/relibc: $(ROOT)/relibc +$(RELIBC_SOURCE): | $(FSTOOLS_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)" rm -rf "$@.partial" "$@" - cp -r "$^" "$@.partial" + cp -r "$(RELIBC_SOURCE)" "$@.partial" touch "$@.partial" mv "$@.partial" "$@" @@ -72,7 +86,10 @@ $(PREFIX)/relibc-install.tar.gz: $(PREFIX)/relibc-install --directory="$<" \ . -$(PREFIX)/libtool: +$(PREFIX)/libtool: | $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else rm -rf "$@.partial" "$@" mkdir -p "$@.partial" @@ -87,8 +104,9 @@ $(PREFIX)/libtool: touch "$@.partial" echo $(LIBTOOL_VERSION) > $@.partial/.tarball-version mv "$@.partial" "$@" +endif -$(PREFIX)/libtool-build: $(PREFIX)/libtool $(PREFIX)/rust-install +$(PREFIX)/libtool-build: $(PREFIX)/libtool $(PREFIX)/rust-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else @@ -102,7 +120,7 @@ else --gnulib-srcdir=./gnulib PATH="$(ROOT)/$(PREFIX)/rust-install/bin:$$PATH" && \ cd "$@.partial" && \ - cp -rp $(abspath $<)/. ./ && \ + cp -r $(abspath $<)/. ./ && \ "$(ROOT)/$ 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 diff --git a/mk/repo.mk b/mk/repo.mk index 5535bfb9c..cfe0424e7 100644 --- a/mk/repo.mk +++ b/mk/repo.mk @@ -1,75 +1,60 @@ # Configuration file for recipe commands -$(BUILD)/fetch.tag: prefix $(FSTOOLS_TAG) $(FILESYSTEM_CONFIG) $(CONTAINER_TAG) +$(REPO_TAG): prefix $(FILESYSTEM_CONFIG) | $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ - PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) --short -c $(FILESYSTEM_CONFIG))" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - cd cookbook && \ - ./fetch.sh $(REPO_NONSTOP) $(REPO_OFFLINE) "$${PACKAGES}" + ./target/release/repo cook $(COOKBOOK_OPTS) --with-package-deps mkdir -p $(BUILD) touch $@ endif -$(REPO_TAG): $(BUILD)/fetch.tag $(FSTOOLS_TAG) $(CONTAINER_TAG) -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - export PATH="$(PREFIX_PATH):$$PATH" && \ - export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) --short -c $(FILESYSTEM_CONFIG))" && \ - cd cookbook && \ - ./repo.sh $(REPO_NONSTOP) $(REPO_OFFLINE) --with-package-deps "$${PACKAGES}" - mkdir -p $(BUILD) - # make sure fstools.tag and fetch.tag are newer than the things repo modifies - touch $(FSTOOLS_TAG) - touch $(BUILD)/fetch.tag - touch $@ -endif - -# Find recipe -find.%: $(FSTOOLS_TAG) FORCE -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - export PATH="$(PREFIX_PATH):$$PATH" && \ - export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - cd cookbook && \ - target/release/find_recipe $* -endif - comma := , -# Invoke clean.sh for one or more targets separated by comma +# List all recipes in a tree fashion specified by the filesystem config +tree: $(FSTOOLS_TAG) $(CONTAINER_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @./target/release/repo tree $(COOKBOOK_OPTS) --with-package-deps +endif + +# Fetch all recipes source or binary from filesystem config +fetch: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + export PATH="$(PREFIX_PATH):$$PATH" && \ + export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ + ./target/release/repo fetch $(COOKBOOK_OPTS) --with-package-deps +endif + +# Find recipe for one or more targets separated by comma +find.%: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + @./target/release/repo find $(foreach f,$(subst $(comma), ,$*),$(f)) +endif + +# Invoke clean for one or more targets separated by comma c.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - @if echo "$*" | grep -q ','; then \ - $(MAKE) $(foreach f,$(subst $(comma), ,$*),c.$(f)); \ - else \ - export PATH="$(PREFIX_PATH):$$PATH" && \ - export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - cd cookbook && \ - ./clean.sh $*; \ - fi + ./target/release/repo clean $(foreach f,$(subst $(comma), ,$*),$(f)) endif -# Invoke fetch.sh for one or more targets separated by comma +# Invoke fetch for one or more targets separated by comma f.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - @if echo "$*" | grep -q ','; then \ - $(MAKE) $(foreach f,$(subst $(comma), ,$*),f.$(f)); \ - else \ - export PATH="$(PREFIX_PATH):$$PATH" && \ - export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - cd cookbook && \ - ./fetch.sh $*; \ - fi + export PATH="$(PREFIX_PATH):$$PATH" && \ + export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ + ./target/release/repo fetch $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS) endif # Invoke repo.sh for one or more targets separated by comma @@ -77,14 +62,9 @@ r.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - @if echo "$*" | grep -q ','; then \ - $(MAKE) $(foreach f,$(subst $(comma), ,$*),r.$(f)); \ - else \ - export PATH="$(PREFIX_PATH):$$PATH" && \ - export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - cd cookbook && \ - ./repo.sh $*; \ - fi + export PATH="$(PREFIX_PATH):$$PATH" && \ + export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ + ./target/release/repo cook $(foreach f,$(subst $(comma), ,$*),$(f)) $(COOKBOOK_OPTS) endif MOUNTED_TAG=$(MOUNT_DIR)~ @@ -92,45 +72,59 @@ MOUNTED_TAG=$(MOUNT_DIR)~ # Push compiled package into existing image # DO NOT RUN THIS WHILE QEMU ALIVE, THE DISK MIGHT CORRUPT IN DOING SO p.%: $(FSTOOLS_TAG) FORCE +ifeq ($(ALLOW_FSTOOLS),1) @rm -f $(MOUNTED_TAG) @if [ ! -d "$(MOUNT_DIR)" ]; then \ $(MAKE) mount; \ touch $(MOUNTED_TAG); \ fi -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - @if echo "$*" | grep -q ','; then \ - $(MAKE) $(foreach f,$(subst $(comma), ,$*),p.$(f)); \ - else \ - export RECIPE_PATH=cookbook/$(shell make find.$* | grep ^recipes) && \ - export RECIPE_STAGE=$$RECIPE_PATH/target/$(TARGET)/stage.pkgar && \ - ./cookbook/pkgar/target/release/pkgar extract $(MOUNT_DIR)/ --archive $$RECIPE_STAGE \ - --pkey ./cookbook/build/id_ed25519.pub.toml && \ - echo "extracted $$RECIPE_PATH"; \ - fi 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)" +endif +ifeq ($(ALLOW_FSTOOLS),1) @if [ -f $(MOUNTED_TAG) ]; then \ - $(MAKE) unmount && rm -f $(MOUNTED_TAG); \ + $(MAKE) unmount && rm -f $(MOUNTED_TAG) && echo "Filesystem unmounted"; \ else echo "Not unmounting by ourself, don't forget to do it"; \ fi +endif -# Invoke unfetch.sh for one or more targets separated by comma +# Push compiled package with their package dependencies +pp.%: $(FSTOOLS_TAG) FORCE + $(MAKE) p.$*,--with-package-deps + +# Push all recipes specified by the filesystem config +push: $(FSTOOLS_TAG) FORCE +ifeq ($(ALLOW_FSTOOLS),1) + @rm -f $(MOUNTED_TAG) + @if [ ! -d "$(MOUNT_DIR)" ]; then \ + $(MAKE) mount; \ + touch $(MOUNTED_TAG); \ + fi +endif +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ ALLOW_FSTOOLS=$(FSTOOLS_IN_PODMAN) +else + ./target/release/repo 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"; \ + fi +endif + +# Invoke unfetch for one or more targets separated by comma u.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ else - @if echo "$*" | grep -q ','; then \ - $(MAKE) $(foreach f,$(subst $(comma), ,$*),u.$(f)); \ - else \ - export PATH="$(PREFIX_PATH):$$PATH" && \ - export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ - cd cookbook && \ - ./unfetch.sh $*; \ - fi + ./target/release/repo unfetch $(foreach f,$(subst $(comma), ,$*),$(f)) endif -# Invoke clean.sh, and repo.sh for one of more targets separated by comma +# Invoke clean, and repo.sh for one of more targets separated by comma cr.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ @@ -139,7 +133,7 @@ else $(MAKE) r.$* endif -# Invoke unfetch.sh, clean.sh, and repo.sh for one or more targets separated by comma +# Invoke unfetch, clean, and repo.sh for one or more targets separated by comma ucr.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ @@ -148,7 +142,7 @@ else $(MAKE) cr.$* endif -# Invoke unfetch.sh and clean.sh for one or more targets separated by comma +# Invoke unfetch and clean for one or more targets separated by comma uc.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ @@ -157,7 +151,7 @@ else $(MAKE) c.$* endif -# Invoke unfetch, clean.sh and fetch.sh for one or more targets separated by comma +# Invoke unfetch, clean and fetch for one or more targets separated by comma ucf.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ @@ -167,34 +161,20 @@ else endif # Invoke repo.sh and push for one of more targets separated by comma +# Don't use podman here, as the p target cannot mount inside podman rp.%: $(FSTOOLS_TAG) FORCE -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else $(MAKE) r.$* $(MAKE) p.$* -endif -# Invoke clean.sh, repo.sh and push for one of more targets separated by comma +# Invoke clean, repo.sh and push for one of more targets separated by comma crp.%: $(FSTOOLS_TAG) FORCE -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - $(MAKE) c.$* - $(MAKE) r.$* + $(MAKE) cr.$* $(MAKE) p.$* -endif -# Invoke unfetch.sh. clean.sh, repo.sh and push for one of more targets separated by comma +# Invoke unfetch. clean, repo.sh and push for one of more targets separated by comma ucrp.%: $(FSTOOLS_TAG) FORCE -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else - $(MAKE) u.$* - $(MAKE) c.$* - $(MAKE) r.$* + $(MAKE) ucr.$* $(MAKE) p.$* -endif export DEBUG_BIN?= @@ -204,7 +184,7 @@ export DEBUG_BIN?= # Experimental, may not work if ARCH is different with what host is running debug.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) - @cd cookbook/$(shell make find.$* | grep ^recipes) && \ + @cd $(shell make find.$* | grep ^recipes) && \ export RECIPE_STAGE=target/$(TARGET)/stage && \ export BIN_PATH=$$(find $$RECIPE_STAGE -type f -name "$(DEBUG_BIN)" -or -type f -name "$*") && \ file $$BIN_PATH 2> /dev/null || ( echo "Binary is not found, please set DEBUG_BIN" && exit 1 ) && \ @@ -217,7 +197,7 @@ ifeq ($(PODMAN_BUILD),1) -ex 'add-symbol-file /binary' \ -ex 'target remote host.containers.internal:1234'" else - @cd cookbook/$(shell make find.$* | grep ^recipes) && \ + @cd $(shell make find.$* | grep ^recipes) && \ export RECIPE_STAGE=target/$(TARGET)/stage && \ export BIN_PATH=$$(find $$RECIPE_STAGE -type f -name "$(DEBUG_BIN)" -or -type f -name "$*") && \ file $$BIN_PATH 2> /dev/null || ( echo "Binary is not found, please set DEBUG_BIN" && exit 1 ) && \ diff --git a/native_bootstrap.sh b/native_bootstrap.sh index 0b348ce90..3c89dc87b 100755 --- a/native_bootstrap.sh +++ b/native_bootstrap.sh @@ -70,8 +70,6 @@ install_freebsd_pkg() ############################################################################## osx() { - echo "Detected macOS!" - if [ ! -z "$(which brew)" ]; then osx_homebrew $@ elif [ ! -z "$(which port)" ]; then @@ -364,7 +362,7 @@ archLinux() gdb" if [ "$1" == "qemu" ]; then - packages="$packages qemu" + packages="$packages qemu-system-x86 qemu-system-arm qemu-system-riscv" elif [ "$1" == "virtualbox" ]; then packages="$packages virtualbox" else @@ -495,7 +493,8 @@ ubuntu() if [ -z "$(which qemu-system-x86_64)" ]; then echo "Installing QEMU..." sudo $install_command qemu-system-x86 qemu-kvm - sudo $install_command qemu-efi-arm qemu-system-arm + sudo $install_command qemu-system-arm qemu-efi-aarch64 + sudo $install_command qemu-system-riscv else echo "QEMU already installed!" fi @@ -545,6 +544,8 @@ fedora() if [ -z "$(which qemu-system-x86_64)" ]; then echo "Installing QEMU..." sudo $dnf_install qemu-system-x86 qemu-kvm + sudo $dnf_install qemu-system-arm edk2-aarch64 + sudo $dnf_install qemu-system-riscv else echo "QEMU already installed!" fi @@ -1013,7 +1014,7 @@ statusCheck() boot() { echo "Cloning gitlab repo..." - git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive + git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream echo "Creating .config with PODMAN_BUILD=0" echo 'PODMAN_BUILD?=0' > redox/.config echo "Cleaning up..." @@ -1046,7 +1047,6 @@ if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then usage elif [ "$1" == "-u" ]; then git pull upstream master - git submodule update --recursive --init exit elif [ "$1" == "-s" ]; then statusCheck @@ -1076,14 +1076,22 @@ done banner -rustInstall "$noninteractive" +if [ "Darwin" == "$(uname -s)" ]; then + echo "Detected macOS!" + + echo "WARNING: Building Redox OS on MacOS is not recommended, please use podman_bootstrap.sh instead." + echo "WARNING: Our toolchain is not designed to work on MacOS and it relies on FUSE which requires kernel extensions." + echo "WARNING: If you want to continue anyway, please wait for 3 seconds or cancel this script now!" + sleep 3 +fi if [ "$update" == "true" ]; then git pull upstream master - git submodule update --recursive --init exit fi +rustInstall "$noninteractive" + if [ "Darwin" == "$(uname -s)" ]; then osx "$emulator" else @@ -1116,7 +1124,6 @@ else fi fi -cargoInstall cargo-config 0.1.1 cargoInstall just 1.42.4 cargoInstall cbindgen 0.29.0 diff --git a/podman/redox-base-containerfile b/podman/redox-base-containerfile index 2eef72761..837dd30f0 100644 --- a/podman/redox-base-containerfile +++ b/podman/redox-base-containerfile @@ -2,12 +2,7 @@ FROM docker.io/library/debian:trixie -# _UID_ must be replaced with the user's uid on host -# podman root is mapped to your user id on host during build, -# poduser is mapped to your user id during podman run -RUN useradd --create-home --no-log-init --uid _UID_ poduser \ - && chown -R root:root /home \ - && apt-get update \ +RUN apt-get update \ && apt-get install -y --no-install-recommends \ ant \ appstream \ @@ -19,7 +14,6 @@ RUN useradd --create-home --no-log-init --uid _UID_ poduser \ bison \ bsdextrautils \ build-essential \ - clang \ cmake \ curl \ dos2unix \ @@ -32,10 +26,16 @@ RUN useradd --create-home --no-log-init --uid _UID_ poduser \ genisoimage \ 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 \ @@ -47,14 +47,15 @@ RUN useradd --create-home --no-log-init --uid _UID_ poduser \ libmpfr-dev \ libparse-yapp-perl \ libpng-dev \ + librsvg2-common \ libsdl1.2-dev \ libsdl2-ttf-dev \ - llvm \ - lua5.4 \ + libxml2-utils \ lzip \ m4 \ make \ meson \ + nano \ nasm \ ninja-build \ patch \ @@ -63,6 +64,9 @@ RUN useradd --create-home --no-log-init --uid _UID_ poduser \ pkg-config \ po4a \ protobuf-compiler \ + qemu-system-x86 \ + qemu-system-arm \ + qemu-efi-aarch64 \ python3 \ python3-dev \ python3-mako \ diff --git a/podman/rustinstall.sh b/podman/rustinstall.sh index 3730d04db..31bd594cf 100755 --- a/podman/rustinstall.sh +++ b/podman/rustinstall.sh @@ -3,10 +3,19 @@ # 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 -curl -sSLf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash -cargo +stable binstall --no-confirm --force --version 0.10.0 sccache -cargo +stable binstall --no-confirm --force --version 1.42.4 just -cargo +stable binstall --no-confirm --force --version 0.29.0 cbindgen -cargo +stable install --force --version 0.1.1 cargo-config # TODO: Remove +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 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/podman_bootstrap.sh b/podman_bootstrap.sh old mode 100644 new mode 100755 index 2cfc492a4..a13f96961 --- a/podman_bootstrap.sh +++ b/podman_bootstrap.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # This script setup the Redox build system with Podman -# It install the Podman dependencies, Rustup, recipes dependencies for cross-compilation +# It install the Podman dependencies for cross-compilation # and download the build system configuration files set -e @@ -100,7 +100,6 @@ osx_macports() install_macports_pkg "git" install_macports_pkg "gmake" install_macports_pkg "curl" - install_macports_pkg "osxfuse" install_macports_pkg "podman" install_macports_pkg "gdb +multiarch" @@ -129,9 +128,6 @@ osx_homebrew() install_brew_pkg "git" install_brew_pkg "make" install_brew_pkg "curl" - install_brew_pkg "osxfuse" - install_brew_pkg "fuse-overlayfs" - install_brew_pkg "slirp4netns" install_brew_pkg "podman" install_brew_pkg "gdb" @@ -159,7 +155,6 @@ freebsd() install_freebsd_pkg "git" install_freebsd_pkg "gmake" install_freebsd_pkg "curl" - install_freebsd_pkg "fusefs-libs3" install_freebsd_pkg "podman" install_freebsd_pkg "gdb" @@ -185,7 +180,7 @@ archLinux() echo "Detected Arch Linux" packages="git make curl fuse3 fuse-overlayfs slirp4netns podman gdb" if [ "$1" == "qemu" ]; then - packages="$packages qemu" + packages="$packages qemu-system-x86 qemu-system-arm qemu-system-riscv" elif [ "$1" == "virtualbox" ]; then packages="$packages virtualbox" else @@ -221,7 +216,8 @@ ubuntu() if [ -z "$(which qemu-system-x86_64)" ]; then echo "Installing QEMU..." sudo "$2" install qemu-system-x86 qemu-kvm - sudo "$2" install qemu-efi-arm qemu-system-arm + sudo "$2" install qemu-system-arm qemu-efi-aarch64 + sudo "$2" install qemu-system-riscv else echo "QEMU already installed!" fi @@ -262,7 +258,8 @@ fedora() if [ "$1" == "qemu" ]; then if [ -z "$(which qemu-system-x86_64)" ]; then echo "Installing QEMU..." - sudo dnf install qemu-system-x86 qemu-kvm + sudo dnf install qemu-system-x86 qemu-system-arm \ + qemu-system-riscv qemu-kvm edk2-aarch64 else echo "QEMU already installed!" fi @@ -486,7 +483,6 @@ usage() echo " -h,--help Show this prompt" echo " -u [branch] Update git repo and update rust" echo " If blank defaults to master" - echo " -s Check the status of the current travis build" echo " -e [emulator] Install specific emulator, virtualbox or qemu" echo " -p [package Choose an Ubuntu package manager, apt-fast or" echo " manager] aptitude" @@ -497,18 +493,6 @@ usage() exit } -############################################################# -# Looks for and installs a cargo-managed binary or subcommand -############################################################# -cargoInstall() -{ - if [[ "`cargo install --list`" != *"$1 v$2"* ]]; then - cargo install --force --version "$2" "$1" - else - echo "You have $1 version $2 installed already!" - fi -} - ############################################################################# # This function takes care of everything associated to rust, and the version # manager that controls it, it can install rustup and uninstall multirust as @@ -569,39 +553,6 @@ rustInstall() fi } -#################################################################### -# This function gets the current build status from travis and prints -# a message to the user -#################################################################### -statusCheck() -{ - for i in $(echo "$(curl -sf https://api.travis-ci.org/repositories/redox-os/redox.json)" | tr "," "\n") - do - if echo "$i" | grep -iq "last_build_status" ;then - if echo "$i" | grep -iq "0" ;then - echo - echo "********************************************" - echo "Travis reports that the last build succeeded!" - echo "Looks like you are good to go!" - echo "********************************************" - elif echo "$i" | grep -iq "null" ;then - echo - echo "******************************************************************" - echo "The Travis build did not finish, this is an error with its config." - echo "I cannot reliably determine whether the build is succeeding or not." - echo "Consider checking for and maybe opening an issue on gitlab" - echo "******************************************************************" - else - echo - echo "**************************************************" - echo "Travis reports that the last build *FAILED* :(" - echo "Might want to check out the issues before building" - echo "**************************************************" - fi - fi - done -} - ########################################################################### # This function is the main logic for the bootstrap; it clones the git repo # then it installs the dependent packages @@ -609,31 +560,32 @@ statusCheck() boot() { echo "Cloning gitlab repo..." - git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive + git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream echo "Creating .config with PODMAN_BUILD=1" echo 'PODMAN_BUILD?=1' > redox/.config + if [[ "$(uname -m)" == "arm64" ]]; then + echo "Appending .config with ARCH=aarch64" + echo 'ARCH=aarch64' >> redox/.config + fi echo "Cleaning up..." rm podman_bootstrap.sh echo echo "---------------------------------------" echo "Well it looks like you are ready to go!" echo "---------------------------------------" - statusCheck echo "The file redox/.config was created with PODMAN_BUILD=1." + echo "If you need a much quicker installation, run: " + echo " echo REPO_BINARY=1 >> redox/.config" echo - echo "** Be sure to update your path to include Rust - run the following command: **" - echo 'source $HOME/.cargo/env' - echo - echo "Run the following commands to build redox using Podman:" + echo "Run the following commands to build Redox using Podman:" echo echo "cd redox" MAKE="make" if [[ "$(uname)" == "FreeBSD" ]]; then MAKE="gmake" - echo "kldload fuse.ko # This loads the kernel module for FUSE" fi echo "$MAKE all" - echo "$MAKE virtualbox or qemu" + echo "$MAKE $emulator" echo echo " Good luck!" @@ -644,11 +596,6 @@ if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then usage elif [ "$1" == "-u" ]; then git pull upstream master - git submodule update --recursive --init - rustup update nightly - exit -elif [ "$1" == "-s" ]; then - statusCheck exit fi @@ -664,7 +611,6 @@ do d) dependenciesonly=true;; u) update=true;; h) usage;; - s) statusCheck && exit;; \?) echo "I don't know what to do with that option, try -h for help"; exit 1;; esac done @@ -675,7 +621,6 @@ rustInstall "$noninteractive" if [ "$update" == "true" ]; then git pull upstream master - git submodule update --recursive --init exit fi diff --git a/recipes/archives/lz4/recipe.toml b/recipes/archives/lz4/recipe.toml new file mode 100644 index 000000000..6ab50fbda --- /dev/null +++ b/recipes/archives/lz4/recipe.toml @@ -0,0 +1,15 @@ +[source] +tar = "https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz" +blake3 = "3e69fd475e7852e17594985528b5232afeba7d3d56cfebe2e89071768b2ab36a" +patches = ["redox.patch"] + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +export CPPFLAGS="${CPPFLAGS} -D_REDOX" + +${COOKBOOK_MAKE} prefix="/usr" +${COOKBOOK_MAKE} install DESTDIR="${COOKBOOK_STAGE}" prefix="/usr" +""" diff --git a/recipes/archives/lz4/redox.patch b/recipes/archives/lz4/redox.patch new file mode 100644 index 000000000..095ae277d --- /dev/null +++ b/recipes/archives/lz4/redox.patch @@ -0,0 +1,34 @@ +diff '--color=auto' -ruwN source/programs/util.h source-new/programs/util.h +--- source/programs/util.h 2024-07-21 13:29:49.000000000 -0400 ++++ source-new/programs/util.h 2024-12-13 02:21:03.032769559 -0500 +@@ -52,6 +52,9 @@ + #include /* time */ + #include /* INT_MAX */ + #include ++#if defined(_REDOX) ++# include /* utimes */ ++#endif + + + +@@ -239,12 +242,20 @@ + timebuf.modtime = statbuf->st_mtime; + res += utime(filename, &timebuf); /* set access and modification times */ + #else ++ #if defined(_REDOX) ++ struct timeval timebuf[2]; ++ memset(timebuf, 0, sizeof(timebuf)); ++ timebuf[0].tv_usec = UTIME_NOW; ++ timebuf[1].tv_sec = statbuf->st_mtime; ++ res += utimes(filename, timebuf); ++ #else + struct timespec timebuf[2]; + memset(timebuf, 0, sizeof(timebuf)); + timebuf[0].tv_nsec = UTIME_NOW; + timebuf[1].tv_sec = statbuf->st_mtime; + res += utimensat(AT_FDCWD, filename, timebuf, 0); /* set access and modification times */ + #endif ++#endif + } + + #if !defined(_WIN32) diff --git a/recipes/archives/zstd/01_redox.patch b/recipes/archives/zstd/01_redox.patch new file mode 100644 index 000000000..0cff8dc93 --- /dev/null +++ b/recipes/archives/zstd/01_redox.patch @@ -0,0 +1,15 @@ +diff -ruwN source/programs/platform.h source-new/programs/platform.h +--- source/programs/platform.h 2025-02-19 07:04:24.000000000 +0700 ++++ source-new/programs/platform.h 2025-07-21 22:52:07.716447723 +0700 +@@ -109,6 +109,11 @@ + #endif /* PLATFORM_POSIX_VERSION */ + + ++#if defined(__redox__) ++/* TODO: AT_FDCWD && utimensat must be defined to conform _POSIX_VERSION */ ++# define PLATFORM_POSIX_VERSION 1 ++#endif ++ + #if PLATFORM_POSIX_VERSION > 1 + /* glibc < 2.26 may not expose struct timespec def without this. + * See issue #1920. */ diff --git a/recipes/archives/zstd/recipe.toml b/recipes/archives/zstd/recipe.toml new file mode 100644 index 000000000..906848506 --- /dev/null +++ b/recipes/archives/zstd/recipe.toml @@ -0,0 +1,13 @@ +[source] +tar = "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz" +patches = [ + "01_redox.patch" +] +[build] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +${COOKBOOK_MAKE} +${COOKBOOK_MAKE} install DESTDIR="${COOKBOOK_STAGE}" prefix="/usr" +""" diff --git a/recipes/artwork/pop-wallpapers/recipe.toml b/recipes/artwork/pop-wallpapers/recipe.toml new file mode 100644 index 000000000..dc4e25b48 --- /dev/null +++ b/recipes/artwork/pop-wallpapers/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://github.com/pop-os/wallpapers" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/wallpapers +cp -rv "${COOKBOOK_SOURCE}"/original/* "${COOKBOOK_STAGE}"/usr/share/wallpapers +""" diff --git a/recipes/artwork/ubuntu-wallpapers/recipe.toml b/recipes/artwork/ubuntu-wallpapers/recipe.toml new file mode 100644 index 000000000..b9100d492 --- /dev/null +++ b/recipes/artwork/ubuntu-wallpapers/recipe.toml @@ -0,0 +1,9 @@ +[source] +tar = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/ubuntu-wallpapers/23.10.4/ubuntu-wallpapers_23.10.4.orig.tar.gz" +blake3 = "1e479d0aa48fe3f2961a2dac28c3ed397a29616cf6e7d73f5ceb6fabfd6449e1" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/wallpapers +cp -rv "${COOKBOOK_SOURCE}"/ubuntu-wallpapers-23.10.4/*.{jpg,png} "${COOKBOOK_STAGE}"/usr/share/wallpapers +""" diff --git a/recipes/core/base-initfs/recipe.toml b/recipes/core/base-initfs/recipe.toml new file mode 100644 index 000000000..cc9e1bbf5 --- /dev/null +++ b/recipes/core/base-initfs/recipe.toml @@ -0,0 +1,127 @@ +[source] +same_as = "../base" + +[build] +template = "custom" +dependencies = [ + "redoxfs", +] +script = """ +BINS=( + init + logd + ramfs + randd + zerod + + acpid + fbbootlogd + fbcond + hwd + inputd + lived + nvmed + pcid + pcid-spawner + rtcd + vesad +) + +virt_bins() +{ + BINS+=(virtio-blkd virtio-gpud) +} + +x86_common_bins() +{ + BINS+=(ahcid ided ps2d vesad) + virt_bins +} + +aarch64_bins() +{ + case "${BOARD}" in + raspi3b*) + BINS+=(bcm2835-sdhcid) + ;; + *) + #qemu-virt + virt_bins + ;; + esac +} + +case "${TARGET}" in + i586-unknown-redox | i686-unknown-redox) + x86_common_bins + ;; + x86_64-unknown-redox) + x86_common_bins + ;; + aarch64-unknown-redox) + aarch64_bins + ;; + *) + ;; +esac + +rm -rf "${COOKBOOK_BUILD}/initfs" +mkdir -p "${COOKBOOK_BUILD}/initfs/etc" + +cp "${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 + +mkdir -pv "${COOKBOOK_BUILD}/initfs/etc/pcid" +cp -v "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_BUILD}/initfs/etc/pcid/initfs.toml" + +export CARGO_PROFILE_RELEASE_OPT_LEVEL=s +export CARGO_PROFILE_RELEASE_PANIC=abort +"${COOKBOOK_CARGO}" build ${build_flags} \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + $(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done) + +mkdir -pv "${COOKBOOK_BUILD}/initfs/bin" "${COOKBOOK_BUILD}/initfs/lib/drivers" +for bin in "${BINS[@]}" +do + case "${bin}" in + init | logd | ramfs | randd | zerod | pcid | pcid-spawner | fbbootlogd | fbcond | inputd | vesad | lived | ps2d | acpid | bcm2835-sdhcid | rtcd | hwd) + cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_BUILD}/initfs/bin" + ;; + *) + cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_BUILD}/initfs/lib/drivers" + ;; + esac +done + +# TODO: symlinks aren't supported by redox-initfs +#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)" +RUSTFLAGS="$RUSTFLAGS -Ctarget-feature=+crt-static" cargo \ + -Zbuild-std=core,alloc,compiler_builtins \ + -Zbuild-std-features=compiler-builtins-mem build \ + --target "${TARGET}" \ + --manifest-path "${COOKBOOK_SOURCE}/bootstrap/Cargo.toml" \ + --release \ + --target-dir "${COOKBOOK_BUILD}" +"${GNU_TARGET}-ld" \ + -o "${COOKBOOK_BUILD}/bootstrap" \ + --gc-sections \ + -T "${COOKBOOK_SOURCE}/bootstrap/src/${ARCH}.ld" \ + -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" + +mkdir -v "${COOKBOOK_STAGE}/boot" +cp "${COOKBOOK_BUILD}/initfs.img" "${COOKBOOK_STAGE}/boot/initfs" +""" diff --git a/recipes/core/base/recipe.toml b/recipes/core/base/recipe.toml new file mode 100644 index 000000000..2afacf3a0 --- /dev/null +++ b/recipes/core/base/recipe.toml @@ -0,0 +1,80 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/base.git" + +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +for package in audiod ipcd ptyd; do + "${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/${package}/Cargo.toml" \ + ${build_flags} + cp -v \ + "target/${TARGET}/${build_type}/${package}" \ + "${COOKBOOK_STAGE}/usr/bin/${package}" +done + +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/netstack/Cargo.toml" \ + ${build_flags} +cp -v \ + "target/${TARGET}/${build_type}/smolnetd" \ + "${COOKBOOK_STAGE}/usr/bin/smolnetd" + +# Drivers that are built on all architectures, and NOT in drivers-initfs +BINS=( + alxd + e1000d + ihdad + ihdgd + ixgbed + pcid + pcid-spawner + rtl8139d + rtl8168d + usbctl + usbhidd + usbhubd + usbscsid + virtio-netd + xhcid + inputd + redoxerd +) + +# Add additional drivers to the list to build, that are not in drivers-initfs +# depending on the target architecture +case "${TARGET}" in + i586-unknown-redox | i686-unknown-redox | x86_64-unknown-redox) + BINS+=(ac97d bgad sb16d vboxd) + ;; + *) + ;; +esac + +#Build each driver in the list +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" "${COOKBOOK_STAGE}/usr/lib/drivers" +export CARGO_PROFILE_RELEASE_OPT_LEVEL=s +export CARGO_PROFILE_RELEASE_PANIC=abort +"${COOKBOOK_CARGO}" build ${build_flags} \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + $(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done) +for bin in "${BINS[@]}" +do + if [[ "${bin}" == "inputd" || "${bin}" == "pcid" || "${bin}" == "pcid-spawner" || "${bin}" == "redoxerd" ]]; then + cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/bin" + else + cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/lib/drivers" + fi +done + +mkdir -pv "${COOKBOOK_STAGE}/etc/pcid" +cp -v "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_STAGE}/etc/pcid/initfs.toml" + +mkdir -pv "${COOKBOOK_STAGE}/etc/pcid.d" +${FIND} "${COOKBOOK_SOURCE}/drivers" -maxdepth 3 -type f -name 'config.toml' | while read conf +do + driver="$(basename "$(dirname "$conf")")" + cp -v "$conf" "${COOKBOOK_STAGE}/etc/pcid.d/$driver.toml" +done +""" diff --git a/recipes/core/binutils/recipe.toml b/recipes/core/binutils/recipe.toml new file mode 100644 index 000000000..588e511de --- /dev/null +++ b/recipes/core/binutils/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/binutils.git" + +[build] +template = "cargo" diff --git a/recipes/core/bootloader/recipe.toml b/recipes/core/bootloader/recipe.toml new file mode 100644 index 000000000..17f09add7 --- /dev/null +++ b/recipes/core/bootloader/recipe.toml @@ -0,0 +1,33 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/bootloader.git" + +[build] +template = "custom" +script = """ +OUTDIR="${COOKBOOK_BUILD}" +mkdir -v "${COOKBOOK_STAGE}/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}" +} + +ARCH="$(echo "${TARGET}" | cut -d - -f1)" + +# Build BIOS bootloader for supported architectures +if [ "${ARCH}" == "i586" -o "${ARCH}" == "i686" -o "${ARCH}" == "x86_64" ] +then + bootloader "x86-unknown-none" bootloader.bin bootloader.bios + bootloader "x86-unknown-none" bootloader-live.bin bootloader-live.bios +fi + +# Build UEFI bootloader for supported architectures +if [ "${ARCH}" == "aarch64" -o "${ARCH}" == "x86_64" -o "${ARCH}" == "riscv64gc" ] +then + bootloader "${ARCH}-unknown-uefi" bootloader.efi bootloader.efi + bootloader "${ARCH}-unknown-uefi" bootloader-live.efi bootloader-live.efi +fi +""" diff --git a/recipes/core/contain/recipe.toml b/recipes/core/contain/recipe.toml new file mode 100644 index 000000000..06edc8a65 --- /dev/null +++ b/recipes/core/contain/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/contain.git" + +[build] +template = "cargo" diff --git a/recipes/core/coreutils/recipe.toml b/recipes/core/coreutils/recipe.toml new file mode 100644 index 000000000..e17994e44 --- /dev/null +++ b/recipes/core/coreutils/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/coreutils.git" + +[build] +template = "cargo" diff --git a/recipes/core/dash/recipe.toml b/recipes/core/dash/recipe.toml new file mode 100644 index 000000000..01e135d90 --- /dev/null +++ b/recipes/core/dash/recipe.toml @@ -0,0 +1,22 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/dash.git" +branch = "redox" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +./autogen.sh +./configure \ + --host="${TARGET}" \ + --prefix="" \ + --enable-static \ + cross_compiling=yes +# See https://stackoverflow.com/questions/4247068/sed-command-with-i-option-failing-on-mac-but-works-on-linux. +sed -i'' -e 's|#define HAVE_GETRLIMIT 1|/* #undef HAVE_GETRLIMIT */|g' config.h +# Skip configure +COOKBOOK_CONFIGURE="true" +COOKBOOK_CONFIGURE_FLAGS=() +cookbook_configure +""" diff --git a/recipes/core/extrautils/recipe.toml b/recipes/core/extrautils/recipe.toml new file mode 100644 index 000000000..19b614cb5 --- /dev/null +++ b/recipes/core/extrautils/recipe.toml @@ -0,0 +1,18 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/extrautils.git" + +[build] +template = "custom" +dependencies = [ + "xz" +] +script = """ +# TODO: Can't be linked correctly yet +# DYNAMIC_INIT + +if [ "${COOKBOOK_DYNAMIC}" != "1" ]; then + install_flags+=" --features=static" +fi + +cookbook_cargo +""" diff --git a/recipes/core/findutils/recipe.toml b/recipes/core/findutils/recipe.toml new file mode 100644 index 000000000..5c8622536 --- /dev/null +++ b/recipes/core/findutils/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/findutils.git" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo --bin find +""" diff --git a/recipes/core/installer/recipe.toml b/recipes/core/installer/recipe.toml new file mode 100644 index 000000000..023538211 --- /dev/null +++ b/recipes/core/installer/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/installer.git" + +[build] +template = "cargo" diff --git a/recipes/core/ion/recipe.toml b/recipes/core/ion/recipe.toml new file mode 100644 index 000000000..2ce52ca55 --- /dev/null +++ b/recipes/core/ion/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/ion.git" + +[build] +template = "custom" +script = """ +# Must be statically linked +cookbook_cargo +""" diff --git a/recipes/core/kernel/recipe.toml b/recipes/core/kernel/recipe.toml new file mode 100644 index 000000000..38b66b43f --- /dev/null +++ b/recipes/core/kernel/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/kernel.git" + +[build] +template = "custom" +script = """ +make -f ${COOKBOOK_SOURCE}/Makefile +mkdir -v "${COOKBOOK_STAGE}/boot" +cp -v kernel "${COOKBOOK_STAGE}/boot" +""" diff --git a/recipes/core/netdb/recipe.toml b/recipes/core/netdb/recipe.toml new file mode 100644 index 000000000..efff10a23 --- /dev/null +++ b/recipes/core/netdb/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/netdb.git" + +[build] +template = "custom" +script = """ +cp -rv "${COOKBOOK_SOURCE}/"* "${COOKBOOK_STAGE}" +""" diff --git a/recipes/core/netutils/recipe.toml b/recipes/core/netutils/recipe.toml new file mode 100644 index 000000000..e101288ae --- /dev/null +++ b/recipes/core/netutils/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/netutils.git" + +[build] +template = "cargo" diff --git a/recipes/core/pkgar/recipe.toml b/recipes/core/pkgar/recipe.toml new file mode 100644 index 000000000..4a2849504 --- /dev/null +++ b/recipes/core/pkgar/recipe.toml @@ -0,0 +1,6 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/pkgar.git" + +[build] +template = "cargo" +package_path = "pkgar" diff --git a/recipes/core/pkgutils/recipe.toml b/recipes/core/pkgutils/recipe.toml new file mode 100644 index 000000000..0c500bd17 --- /dev/null +++ b/recipes/core/pkgutils/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/pkgutils.git" + +[build] +template = "custom" +script = """ +# Must be statically linked +PACKAGE_PATH=pkg-cli +cookbook_cargo +""" diff --git a/recipes/core/profiled/recipe.toml b/recipes/core/profiled/recipe.toml new file mode 100644 index 000000000..18dc3cfc1 --- /dev/null +++ b/recipes/core/profiled/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/profiled.git" + +[build] +template = "custom" +script = """ +# Must be statically linked +cookbook_cargo +""" diff --git a/recipes/core/redoxfs/recipe.toml b/recipes/core/redoxfs/recipe.toml new file mode 100644 index 000000000..c6609e329 --- /dev/null +++ b/recipes/core/redoxfs/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/redoxfs.git" + +[build] +template = "custom" +script = """ +# Must be statically linked +cookbook_cargo +""" diff --git a/recipes/core/relibc/recipe.toml b/recipes/core/relibc/recipe.toml new file mode 100644 index 000000000..ccc26a5d0 --- /dev/null +++ b/recipes/core/relibc/recipe.toml @@ -0,0 +1,13 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/relibc.git" + +[build] +template = "custom" +script = """ +"${COOKBOOK_MAKE}" \ + -C "${COOKBOOK_SOURCE}" \ + -j"$($NPROC)" \ + CARGO="env -u CARGO cargo" \ + DESTDIR="${COOKBOOK_STAGE}" \ + install +""" diff --git a/recipes/core/strace/recipe.toml b/recipes/core/strace/recipe.toml new file mode 100644 index 000000000..e7c610041 --- /dev/null +++ b/recipes/core/strace/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/strace-redox.git" + +[build] +template = "cargo" diff --git a/recipes/core/userutils/recipe.toml b/recipes/core/userutils/recipe.toml new file mode 100644 index 000000000..666bfeb10 --- /dev/null +++ b/recipes/core/userutils/recipe.toml @@ -0,0 +1,11 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/userutils.git" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo +cp -rv "${COOKBOOK_SOURCE}/res" "${COOKBOOK_STAGE}/etc" +ln -s id "${COOKBOOK_STAGE}/usr/bin/whoami" +""" diff --git a/recipes/core/uutils/recipe.toml b/recipes/core/uutils/recipe.toml new file mode 100644 index 000000000..5e32d87ae --- /dev/null +++ b/recipes/core/uutils/recipe.toml @@ -0,0 +1,107 @@ +# TODO Fix coreutils i18n/l10n behavior on Redox +[source] +git = "https://github.com/uutils/coreutils" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +CARGO_PROFILE_RELEASE_LTO=thin cookbook_cargo --no-default-features --features feat_os_unix_redox --bin coreutils + +BINS=( + '[' + b2sum + b3sum + base32 + base64 + basename + basenc + cat + chmod + cksum + comm + cp + csplit + cut + date + dd + #df not working, use redox coreutils + dir + dircolors + dirname + du + echo + env + expand + expr + factor + false + fmt + fold + hashsum + head + join + install + link + ln + ls + md5sum + mkdir + mktemp + more + mv + nl + numfmt + od + paste + pr + printenv + printf + ptx + pwd + readlink + realpath + rm + rmdir + seq + sha1sum + sha224sum + sha256sum + sha3-224sum + sha3-256sum + sha3-384sum + sha3-512sum + sha384sum + sha3sum + sha512sum + shake128sum + shake256sum + shred + shuf + sleep + sort + split + stat + sum + tac + tail + tee + test + touch + tr + true + truncate + tsort + unexpand + uniq + unlink + vdir + wc + yes +) + +for bin in "${BINS[@]}" +do + ln -sv coreutils "${COOKBOOK_STAGE}/usr/bin/$bin" +done +""" diff --git a/recipes/demos/cairodemo/cairodemo.c b/recipes/demos/cairodemo/cairodemo.c new file mode 100755 index 000000000..8f474e9ea --- /dev/null +++ b/recipes/demos/cairodemo/cairodemo.c @@ -0,0 +1,129 @@ +#include +#include +#include +#include +#include + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + +static int width = 800; +static int height = 600; + +static void +travel_path (cairo_t *cr) +{ + + cairo_pattern_t *pat; + + pat = cairo_pattern_create_linear (0.0, 0.0, 0.0, 256.0); + cairo_pattern_add_color_stop_rgba (pat, 1, 0, 0, 0, 1); + cairo_pattern_add_color_stop_rgba (pat, 0, 1, 1, 1, 1); + cairo_rectangle (cr, 0, 0, 256, 256); + cairo_set_source (cr, pat); + cairo_fill (cr); + cairo_pattern_destroy (pat); + + pat = cairo_pattern_create_radial (115.2, 102.4, 25.6, + 102.4, 102.4, 128.0); + cairo_pattern_add_color_stop_rgba (pat, 0, 1, 1, 1, 1); + cairo_pattern_add_color_stop_rgba (pat, 1, 0, 0, 0, 1); + cairo_set_source (cr, pat); + cairo_arc (cr, 128.0, 128.0, 76.8, 0, 2 * M_PI); + cairo_fill (cr); + cairo_pattern_destroy (pat); + + + double x = 305.6, /* parameters like cairo_rectangle */ + y = 25.6, + width = 204.8, + height = 204.8, + aspect = 1.0, /* aspect ratio */ + corner_radius = height / 10.0; /* and corner curvature radius */ + + double radius = corner_radius / aspect; + double degrees = M_PI / 180.0; + + cairo_new_sub_path (cr); + cairo_arc (cr, x + width - radius, y + radius, radius, -90 * degrees, 0 * degrees); + cairo_arc (cr, x + width - radius, y + height - radius, radius, 0 * degrees, 90 * degrees); + cairo_arc (cr, x + radius, y + height - radius, radius, 90 * degrees, 180 * degrees); + cairo_arc (cr, x + radius, y + radius, radius, 180 * degrees, 270 * degrees); + cairo_close_path (cr); + + cairo_set_source_rgb (cr, 0.5, 0.5, 1); + cairo_fill_preserve (cr); + cairo_set_source_rgba (cr, 0.5, 0, 0, 0.5); + cairo_set_line_width (cr, 10.0); + cairo_stroke (cr); + + + double xc = 128.0; + double yc = 128.0; + radius = 100.0; + double angle1 = 45.0 * (M_PI/180.0); /* angles are specified */ + double angle2 = 180.0 * (M_PI/180.0); /* in radians */ + + cairo_set_line_width (cr, 10.0); + cairo_arc (cr, xc, yc, radius, angle1, angle2); + cairo_stroke (cr); + + /* draw helping lines */ + cairo_set_source_rgba (cr, 1, 0.2, 0.2, 0.6); + cairo_set_line_width (cr, 6.0); + + cairo_arc (cr, xc, yc, 10.0, 0, 2*M_PI); + cairo_fill (cr); + + cairo_arc (cr, xc, yc, radius, angle1, angle1); + cairo_line_to (cr, xc, yc); + cairo_arc (cr, xc, yc, radius, angle2, angle2); + cairo_line_to (cr, xc, yc); + cairo_stroke (cr); +} + +static void +draw (cairo_surface_t *surface) +{ + cairo_t *cr; + cr = cairo_create (surface); + travel_path (cr); + cairo_destroy (cr); +} + +int +main(int argc, char *argv[]) +{ + void * window = orb_window_new(-1, -1, width, height, "CairoDemo"); + + //Cairo + uint32_t * frame_data = orb_window_data(window); + cairo_surface_t *surface = cairo_image_surface_create_for_data((uint8_t*) frame_data, CAIRO_FORMAT_ARGB32, width, height, cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, width)); + cairo_create(surface); + draw (surface); + + orb_window_sync(window); + + char running = 1; + while (running) { + void * event_iter = orb_window_events(window); + + OrbEventOption event_option; + do { + event_option = orb_events_next(event_iter); + switch (event_option.tag) { + case OrbEventOption_Quit: + running = 0; + break; + default: + break; + } + } while (running && event_option.tag != OrbEventOption_None); + + orb_events_destroy(event_iter); + } + orb_window_destroy(window); + return 0; /* ANSI C requires main to return int. */ +} + diff --git a/recipes/demos/cairodemo/recipe.toml b/recipes/demos/cairodemo/recipe.toml new file mode 100755 index 000000000..6538f035d --- /dev/null +++ b/recipes/demos/cairodemo/recipe.toml @@ -0,0 +1,25 @@ +# source is part of cookbook + +[build] +dependencies = [ + "cairo", + "expat", + "fontconfig", + "freetype2", + "liborbital", + "libpng", + "pixman", + "zlib", +] +template = "custom" +script = """ +"${CXX}" \ + $("${PKG_CONFIG}" --cflags cairo) \ + "${COOKBOOK_RECIPE}/cairodemo.c" \ + -o cairodemo \ + -static \ + $("${PKG_CONFIG}" --libs cairo) \ + -lorbital +mkdir -pv "${COOKBOOK_STAGE}/bin" +cp -v "cairodemo" "${COOKBOOK_STAGE}/bin/cairodemo" +""" diff --git a/recipes/demos/cmatrix/recipe.toml b/recipes/demos/cmatrix/recipe.toml new file mode 100644 index 000000000..603bd8154 --- /dev/null +++ b/recipes/demos/cmatrix/recipe.toml @@ -0,0 +1,30 @@ +[source] +git = "https://github.com/abishekvashok/cmatrix" +script = """ +autoreconf -i +""" + +[build] +template = "custom" +dependencies = [ + "ncursesw" +] +script = """ +export LIBS="-lncursesw" + +COOKBOOK_CONFIGURE_FLAGS+=( + --without-fonts +) + +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" + +sed -i -e 's|#define USE_TIOCSTI 1|/* #undef USE_TIOCSTI */|g' config.h + +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" +""" + +[package] +dependencies = [ + "terminfo" +] \ No newline at end of file diff --git a/recipes/demos/cpal/recipe.toml b/recipes/demos/cpal/recipe.toml new file mode 100644 index 000000000..4ff3861b2 --- /dev/null +++ b/recipes/demos/cpal/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/cpal.git" +branch = "redox" +upstream = "https://github.com/tomaka/cpal.git" + +[build] +template = "custom" +script = """ +cookbook_cargo_examples beep +""" diff --git a/recipes/demos/dynamic-example/recipe.toml b/recipes/demos/dynamic-example/recipe.toml new file mode 100644 index 000000000..20358b17c --- /dev/null +++ b/recipes/demos/dynamic-example/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/dynamic-example.git" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo +""" \ No newline at end of file diff --git a/recipes/demos/exampled/recipe.toml b/recipes/demos/exampled/recipe.toml new file mode 100644 index 000000000..e35bc734d --- /dev/null +++ b/recipes/demos/exampled/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/exampled.git" + +[build] +template = "cargo" diff --git a/recipes/demos/gears/gears.c b/recipes/demos/gears/gears.c new file mode 100644 index 000000000..14508dc62 --- /dev/null +++ b/recipes/demos/gears/gears.c @@ -0,0 +1,344 @@ +/* gears.c */ + +/* + * 3-D gear wheels. This program is in the public domain. + * + * Brian Paul + */ + +/* Conversion to GLUT by Mark J. Kilgard */ + +#include +#include +#include +#include +#include +#include +#include + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + +/** + + Draw a gear wheel. You'll probably want to call this function when + building a display list since we do a lot of trig here. + + Input: inner_radius - radius of hole at center + outer_radius - radius at center of teeth + width - width of gear + teeth - number of teeth + tooth_depth - depth of tooth + + **/ + +static void +gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, + GLint teeth, GLfloat tooth_depth) +{ + GLint i; + GLfloat r0, r1, r2; + GLfloat angle, da; + GLfloat u, v, len; + + r0 = inner_radius; + r1 = outer_radius - tooth_depth / 2.0; + r2 = outer_radius + tooth_depth / 2.0; + + da = 2.0 * M_PI / teeth / 4.0; + + glShadeModel(GL_FLAT); + + glNormal3f(0.0, 0.0, 1.0); + + /* draw front face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); + } + glEnd(); + + /* draw front sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); + } + glEnd(); + + glNormal3f(0.0, 0.0, -1.0); + + /* draw back face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + } + glEnd(); + + /* draw back sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + } + glEnd(); + + /* draw outward faces of teeth */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + u = r2 * cos(angle + da) - r1 * cos(angle); + v = r2 * sin(angle + da) - r1 * sin(angle); + len = sqrt(u * u + v * v); + u /= len; + v /= len; + glNormal3f(v, -u, 0.0); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5); + u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); + v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); + glNormal3f(v, -u, 0.0); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + } + + glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); + glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); + + glEnd(); + + glShadeModel(GL_SMOOTH); + + /* draw inside radius cylinder */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glNormal3f(-cos(angle), -sin(angle), 0.0); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + } + glEnd(); + +} + +static int width = 800; +static int height = 600; + +static void * buffer = NULL; +static void * window = NULL; + +static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; +static GLint gear1, gear2, gear3; +static GLfloat angle = 0.0; + +static GLuint limit; +static GLuint count = 1; + +static void +sync(void) +{ + glFinish(); + + uint32_t * frame_data = orb_window_data(window); + uint32_t * image_data = (uint32_t *)buffer; + + int i; + for(i = 0; i < width * height; i++) { + frame_data[i] = image_data[i] | 0xFF000000; + } + + orb_window_sync(window); +} + +static void +draw(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1.0, 0.0, 0.0); + glRotatef(view_roty, 0.0, 1.0, 0.0); + glRotatef(view_rotz, 0.0, 0.0, 1.0); + + glPushMatrix(); + glTranslatef(-3.0, -2.0, 0.0); + glRotatef(angle, 0.0, 0.0, 1.0); + glCallList(gear1); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(3.1, -2.0, 0.0); + glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); + glCallList(gear2); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(-3.1, 4.2, 0.0); + glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); + glCallList(gear3); + glPopMatrix(); + + glPopMatrix(); + + sync(); + + count++; + if (count == limit) { + exit(0); + } +} + +static void +idle(void) +{ + angle += 2.0; + draw(); +} + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat h = (GLfloat) height / (GLfloat) width; + + glViewport(0, 0, (GLint) width, (GLint) height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -40.0); +} + +static void +init(void) +{ + static GLfloat pos[4] = + {5.0, 5.0, 10.0, 0.0}; + static GLfloat red[4] = + {0.8, 0.1, 0.0, 1.0}; + static GLfloat green[4] = + {0.0, 0.8, 0.2, 1.0}; + static GLfloat blue[4] = + {0.2, 0.2, 1.0, 1.0}; + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glEnable(GL_CULL_FACE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); + + /* make the gears */ + gear1 = glGenLists(1); + glNewList(gear1, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); + gear(1.0, 4.0, 1.0, 20, 0.7); + glEndList(); + + gear2 = glGenLists(1); + glNewList(gear2, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); + gear(0.5, 2.0, 2.0, 10, 0.7); + glEndList(); + + gear3 = glGenLists(1); + glNewList(gear3, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); + gear(1.3, 2.0, 0.5, 10, 0.7); + glEndList(); + + glEnable(GL_NORMALIZE); +} + +main(int argc, char *argv[]) +{ + if (argc > 1) { + /* do 'n' frames then exit */ + limit = atoi(argv[1]) + 1; + } else { + limit = 0; + } + + OSMesaContext ctx = OSMesaCreateContextExt(OSMESA_BGRA, 16, 0, 0, NULL); + if (!ctx) { + printf("OSMesaCreateContextExt failed\n"); + return 1; + } + + buffer = malloc(width * height * 4); + if(!buffer) { + printf("malloc failed\n"); + OSMesaDestroyContext(ctx); + return 1; + } + + if (!OSMesaMakeCurrent(ctx, buffer, GL_UNSIGNED_BYTE, width, height)) { + printf("OSMesaMakeCurrent failed\n"); + OSMesaDestroyContext(ctx); + return 1; + } + + OSMesaPixelStore(OSMESA_Y_UP, 0); + + OSMesaColorClamp(GL_TRUE); + + window = orb_window_new_flags(-1, -1, width, height, "Gears", ORB_WINDOW_ASYNC); + + init(); + + reshape(width, height); + + char running = 1; + while (running) { + idle(); + + void * event_iter = orb_window_events(window); + + OrbEventOption event_option; + do { + event_option = orb_events_next(event_iter); + switch (event_option.tag) { + case OrbEventOption_Quit: + running = 0; + break; + default: + break; + } + } while (running && event_option.tag != OrbEventOption_None); + + orb_events_destroy(event_iter); + } + + orb_window_destroy(window); + OSMesaDestroyContext(ctx); + free(buffer); + + return 0; /* ANSI C requires main to return int. */ +} diff --git a/recipes/demos/gears/recipe.toml b/recipes/demos/gears/recipe.toml new file mode 100644 index 000000000..d2b9e36a6 --- /dev/null +++ b/recipes/demos/gears/recipe.toml @@ -0,0 +1,17 @@ +[build] +dependencies=[ + "liborbital", + "mesa", + "mesa-glu", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT + +${CXX} -O2 -I "${COOKBOOK_SYSROOT}/usr/include" \ + $LDFLAGS "${COOKBOOK_RECIPE}/gears.c" \ + -o gears -lorbital $("${PKG_CONFIG}" --libs glu) -lz +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +cp -v "gears" "${COOKBOOK_STAGE}/usr/bin/gears" +""" diff --git a/recipes/demos/glutin/recipe.toml b/recipes/demos/glutin/recipe.toml new file mode 100644 index 000000000..2ba5786fa --- /dev/null +++ b/recipes/demos/glutin/recipe.toml @@ -0,0 +1,28 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/glutin.git" +branch = "redox-0.30" +upstream = "https://github.com/rust-windowing/glutin.git" + +[build] +template = "custom" +dependencies = [ + "mesa", + "zlib" +] +script = """ +DYNAMIC_INIT +EXAMPLES=( + window +) +for example in "${EXAMPLES[@]}" +do + cargo rustc \ + --target "$TARGET" \ + --release \ + --manifest-path "${COOKBOOK_SOURCE}/glutin_examples/Cargo.toml" \ + --example "${example}" \ + -- -C link-args="$LDFLAGS $("${TARGET}-pkg-config" --libs osmesa) -lz -lstdc++ -lc -lgcc" + mkdir -pv "${COOKBOOK_STAGE}/bin" + cp -v "target/${TARGET}/release/examples/${example}" "${COOKBOOK_STAGE}/bin/glutin_${example}" +done +""" diff --git a/recipes/demos/iced/recipe.toml b/recipes/demos/iced/recipe.toml new file mode 100644 index 000000000..ae7dc4f18 --- /dev/null +++ b/recipes/demos/iced/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/iced.git" +branch = "redox" + +[build] +template = "custom" +script = """ +cookbook_cargo_packages styling +""" diff --git a/recipes/demos/orbclient/recipe.toml b/recipes/demos/orbclient/recipe.toml new file mode 100644 index 000000000..27f07e47b --- /dev/null +++ b/recipes/demos/orbclient/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/orbclient.git" + +[build] +template = "custom" +script = """ +cookbook_cargo_examples simple +""" diff --git a/recipes/demos/osdemo/osdemo.c b/recipes/demos/osdemo/osdemo.c new file mode 100644 index 000000000..ae4bfa2ad --- /dev/null +++ b/recipes/demos/osdemo/osdemo.c @@ -0,0 +1,547 @@ +/* + * Test OSMesa interface at 8, 16 and 32 bits/channel. + * + * Usage: osdemo [options] + * + * Options: + * -f generate image files + * -g render gradient and print color values + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define WIDTH 600 +#define HEIGHT 600 + +static GLboolean DisplayImages = GL_FALSE; +static GLboolean WriteFiles = GL_FALSE; +static GLboolean Gradient = GL_FALSE; + + +static void +Sphere(float radius, int slices, int stacks) +{ + GLUquadric *q = gluNewQuadric(); + gluQuadricNormals(q, GLU_SMOOTH); + gluSphere(q, radius, slices, stacks); + gluDeleteQuadric(q); +} + + +static void +Cone(float base, float height, int slices, int stacks) +{ + GLUquadric *q = gluNewQuadric(); + gluQuadricDrawStyle(q, GLU_FILL); + gluQuadricNormals(q, GLU_SMOOTH); + gluCylinder(q, base, 0.0, height, slices, stacks); + gluDeleteQuadric(q); +} + + +static void +Torus(float innerRadius, float outerRadius, int sides, int rings) +{ + /* from GLUT... */ + int i, j; + GLfloat theta, phi, theta1; + GLfloat cosTheta, sinTheta; + GLfloat cosTheta1, sinTheta1; + const GLfloat ringDelta = 2.0 * M_PI / rings; + const GLfloat sideDelta = 2.0 * M_PI / sides; + + theta = 0.0; + cosTheta = 1.0; + sinTheta = 0.0; + for (i = rings - 1; i >= 0; i--) { + theta1 = theta + ringDelta; + cosTheta1 = cos(theta1); + sinTheta1 = sin(theta1); + glBegin(GL_QUAD_STRIP); + phi = 0.0; + for (j = sides; j >= 0; j--) { + GLfloat cosPhi, sinPhi, dist; + + phi += sideDelta; + cosPhi = cos(phi); + sinPhi = sin(phi); + dist = outerRadius + innerRadius * cosPhi; + + glNormal3f(cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi); + glVertex3f(cosTheta1 * dist, -sinTheta1 * dist, innerRadius * sinPhi); + glNormal3f(cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi); + glVertex3f(cosTheta * dist, -sinTheta * dist, innerRadius * sinPhi); + } + glEnd(); + theta = theta1; + cosTheta = cosTheta1; + sinTheta = sinTheta1; + } +} + + +static void Cube(float size) +{ + size = 0.5 * size; + + glBegin(GL_QUADS); + /* +X face */ + glNormal3f(1, 0, 0); + glVertex3f(size, -size, size); + glVertex3f(size, -size, -size); + glVertex3f(size, size, -size); + glVertex3f(size, size, size); + + /* -X face */ + glNormal3f(-1, 0, 0); + glVertex3f(-size, size, size); + glVertex3f(-size, size, -size); + glVertex3f(-size, -size, -size); + glVertex3f(-size, -size, size); + + /* +Y face */ + glNormal3f(0, 1, 0); + glVertex3f(-size, size, size); + glVertex3f( size, size, size); + glVertex3f( size, size, -size); + glVertex3f(-size, size, -size); + + /* -Y face */ + glNormal3f(0, -1, 0); + glVertex3f(-size, -size, -size); + glVertex3f( size, -size, -size); + glVertex3f( size, -size, size); + glVertex3f(-size, -size, size); + + /* +Z face */ + glNormal3f(0, 0, 1); + glVertex3f(-size, -size, size); + glVertex3f( size, -size, size); + glVertex3f( size, size, size); + glVertex3f(-size, size, size); + + /* -Z face */ + glNormal3f(0, 0, -1); + glVertex3f(-size, size, -size); + glVertex3f( size, size, -size); + glVertex3f( size, -size, -size); + glVertex3f(-size, -size, -size); + + glEnd(); +} + + + +/** + * Draw red/green gradient across bottom of image. + * Read pixels to check deltas. + */ +static void +render_gradient(void) +{ + GLfloat row[WIDTH][4]; + int i; + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(-1, 1, -1, 1, -1, 1); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + glBegin(GL_POLYGON); + glColor3f(1, 0, 0); + glVertex2f(-1, -1.0); + glVertex2f(-1, -0.9); + glColor3f(0, 1, 0); + glVertex2f(1, -0.9); + glVertex2f(1, -1.0); + glEnd(); + glFinish(); + + glReadPixels(0, 0, WIDTH, 1, GL_RGBA, GL_FLOAT, row); + for (i = 0; i < 4; i++) { + printf("row[i] = %f, %f, %f\n", row[i][0], row[i][1], row[i][2]); + } +} + + +static void +render_image(void) +{ + static const GLfloat light_ambient[4] = { 0.0, 0.0, 0.0, 1.0 }; + static const GLfloat light_diffuse[4] = { 1.0, 1.0, 1.0, 1.0 }; + static const GLfloat light_specular[4] = { 1.0, 1.0, 1.0, 1.0 }; + static const GLfloat light_position[4] = { 1.0, 1.0, 1.0, 0.0 }; + static const GLfloat red_mat[4] = { 1.0, 0.2, 0.2, 1.0 }; + static const GLfloat green_mat[4] = { 0.2, 1.0, 0.2, 1.0 }; + static const GLfloat blue_mat[4] = { 0.2, 0.2, 1.0, 1.0 }; +#if 0 + static const GLfloat yellow_mat[4] = { 0.8, 0.8, 0.0, 1.0 }; +#endif + static const GLfloat purple_mat[4] = { 0.8, 0.4, 0.8, 0.6 }; + + glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient); + glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse); + glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular); + glLightfv(GL_LIGHT0, GL_POSITION, light_position); + + glEnable(GL_DEPTH_TEST); + glEnable(GL_LIGHT0); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-1.0, 1.0, -1.0, 1.0, 2.0, 50.0); + glMatrixMode(GL_MODELVIEW); + glTranslatef(0, 0.5, -7); + + glClearColor(0.3, 0.3, 0.7, 0.0); + glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); + + glPushMatrix(); + glRotatef(20.0, 1.0, 0.0, 0.0); + + /* ground */ + glEnable(GL_TEXTURE_2D); + glBegin(GL_POLYGON); + glNormal3f(0, 1, 0); + glTexCoord2f(0, 0); glVertex3f(-5, -1, -5); + glTexCoord2f(1, 0); glVertex3f( 5, -1, -5); + glTexCoord2f(1, 1); glVertex3f( 5, -1, 5); + glTexCoord2f(0, 1); glVertex3f(-5, -1, 5); + glEnd(); + glDisable(GL_TEXTURE_2D); + + glEnable(GL_LIGHTING); + + glPushMatrix(); + glTranslatef(-1.5, 0.5, 0.0); + glRotatef(90.0, 1.0, 0.0, 0.0); + glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red_mat ); + Torus(0.275, 0.85, 20, 20); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(-1.5, -0.5, 0.0); + glRotatef(270.0, 1.0, 0.0, 0.0); + glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, green_mat ); + Cone(1.0, 2.0, 16, 1); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(0.95, 0.0, -0.8); + glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blue_mat ); + glLineWidth(2.0); + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); + Sphere(1.2, 20, 20); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + glPopMatrix(); + +#if 0 + glPushMatrix(); + glTranslatef(0.75, 0.0, 1.3); + glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, yellow_mat ); + glutWireTeapot(1.0); + glPopMatrix(); +#endif + + glPushMatrix(); + glTranslatef(-0.25, 0.0, 2.5); + glRotatef(40, 0, 1, 0); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glEnable(GL_CULL_FACE); + glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, purple_mat ); + Cube(1.0); + glDisable(GL_BLEND); + glDisable(GL_CULL_FACE); + glPopMatrix(); + + glDisable(GL_LIGHTING); + + glPopMatrix(); + + glDisable(GL_DEPTH_TEST); +} + + +static void +init_context(void) +{ + const GLint texWidth = 64, texHeight = 64; + GLubyte *texImage; + int i, j; + + /* checker image */ + texImage = (GLubyte *)malloc(texWidth * texHeight * 4); + for (i = 0; i < texHeight; i++) { + for (j = 0; j < texWidth; j++) { + int k = (i * texWidth + j) * 4; + if ((i % 5) == 0 || (j % 5) == 0) { + texImage[k+0] = 200; + texImage[k+1] = 200; + texImage[k+2] = 200; + texImage[k+3] = 255; + } + else { + if ((i % 5) == 1 || (j % 5) == 1) { + texImage[k+0] = 50; + texImage[k+1] = 50; + texImage[k+2] = 50; + texImage[k+3] = 255; + } + else { + texImage[k+0] = 100; + texImage[k+1] = 100; + texImage[k+2] = 100; + texImage[k+3] = 255; + } + } + } + } + + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texWidth, texHeight, 0, + GL_RGBA, GL_UNSIGNED_BYTE, texImage); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + + free(texImage); +} + +static void +display_image(const char *filename, const GLubyte *buffer, int width, int height) +{ + void * window = orb_window_new(-1, -1, width, height, filename); + + uint32_t * frame_data = orb_window_data(window); + uint32_t * image_data = (uint32_t *)buffer; + + int x, y; + for(y = 0; y < height; y++) { + for(x = 0; x < width; x++) { + frame_data[y * width + x] = image_data[(height - 1 - y) * width + x] | 0xFF000000; + } + } + + orb_window_sync(window); + + char running = 1; + while (running) { + void * event_iter = orb_window_events(window); + + OrbEventOption event_option; + do { + event_option = orb_events_next(event_iter); + switch (event_option.tag) { + case OrbEventOption_Quit: + running = 0; + break; + default: + break; + } + } while (running && event_option.tag != OrbEventOption_None); + + orb_events_destroy(event_iter); + } + + orb_window_destroy(window); +} + +static void +write_ppm(const char *filename, const GLubyte *buffer, int width, int height) +{ + const int binary = 0; + FILE *f = fopen( filename, "w" ); + if (f) { + int i, x, y; + const GLubyte *ptr = buffer; + if (binary) { + fprintf(f,"P6\n"); + fprintf(f,"# ppm-file created by osdemo.c\n"); + fprintf(f,"%i %i\n", width,height); + fprintf(f,"255\n"); + fclose(f); + f = fopen( filename, "ab" ); /* reopen in binary append mode */ + for (y=height-1; y>=0; y--) { + for (x=0; x=0; y--) { + for (x=0; x> 8; + display_image(filename, buffer8, WIDTH, HEIGHT); + free(buffer8); + } + else if (type == GL_FLOAT) { + GLfloat *buffer32 = (GLfloat *) buffer; + GLubyte *buffer8 = (GLubyte *) malloc(WIDTH * HEIGHT * 4); + int i; + /* colors may be outside [0,1] so we need to clamp */ + for (i = 0; i < WIDTH * HEIGHT * 4; i++) + buffer8[i] = (GLubyte) (buffer32[i] * 255.0); + display_image(filename, buffer8, WIDTH, HEIGHT); + free(buffer8); + } + else { + display_image(filename, (const GLubyte *)buffer, WIDTH, HEIGHT); + } + } + + if (WriteFiles && filename != NULL) { + if (type == GL_UNSIGNED_SHORT) { + GLushort *buffer16 = (GLushort *) buffer; + GLubyte *buffer8 = (GLubyte *) malloc(WIDTH * HEIGHT * 4); + int i; + for (i = 0; i < WIDTH * HEIGHT * 4; i++) + buffer8[i] = buffer16[i] >> 8; + write_ppm(filename, buffer8, WIDTH, HEIGHT); + free(buffer8); + } + else if (type == GL_FLOAT) { + GLfloat *buffer32 = (GLfloat *) buffer; + GLubyte *buffer8 = (GLubyte *) malloc(WIDTH * HEIGHT * 4); + int i; + /* colors may be outside [0,1] so we need to clamp */ + for (i = 0; i < WIDTH * HEIGHT * 4; i++) + buffer8[i] = (GLubyte) (buffer32[i] * 255.0); + write_ppm(filename, buffer8, WIDTH, HEIGHT); + free(buffer8); + } + else { + write_ppm(filename, (const GLubyte *)buffer, WIDTH, HEIGHT); + } + } + + OSMesaDestroyContext(ctx); + + free(buffer); + + return 1; +} + + +int +main( int argc, char *argv[] ) +{ + int i; + + printf("Use -f to write image files\n"); + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-d") == 0) + DisplayImages = GL_TRUE; + else if (strcmp(argv[i], "-f") == 0) + WriteFiles = GL_TRUE; + else if (strcmp(argv[i], "-g") == 0) + Gradient = GL_TRUE; + } + + test(GL_UNSIGNED_BYTE, 8, "image8.ppm"); + test(GL_UNSIGNED_SHORT, 16, "image16.ppm"); + test(GL_FLOAT, 32, "image32.ppm"); + + return 0; +} diff --git a/recipes/demos/osdemo/recipe.toml b/recipes/demos/osdemo/recipe.toml new file mode 100644 index 000000000..ced17af5e --- /dev/null +++ b/recipes/demos/osdemo/recipe.toml @@ -0,0 +1,17 @@ +[build] +template = "custom" +dependencies = [ + "liborbital", + "mesa", + "mesa-glu", + "zlib" +] +script = """ +DYNAMIC_INIT + +cp "${COOKBOOK_SOURCE}/../osdemo.c" ./osdemo.c +${CXX} -O2 -I "${COOKBOOK_SYSROOT}/include" $LDFLAGS osdemo.c -o osdemo \ + -lorbital $("${PKG_CONFIG}" --libs glu) -lz +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +cp -v "osdemo" "${COOKBOOK_STAGE}/usr/bin/osdemo" +""" diff --git a/recipes/demos/pixelcannon/recipe.toml b/recipes/demos/pixelcannon/recipe.toml new file mode 100644 index 000000000..709e3d977 --- /dev/null +++ b/recipes/demos/pixelcannon/recipe.toml @@ -0,0 +1,19 @@ +[source] +git = "https://github.com/jackpot51/pixelcannon.git" + +[build] +template = "custom" +script = """ +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" +""" + +[package] +dependencies = [ + "orbital", +] diff --git a/recipes/demos/sdl2-gears/assets/font.ttf b/recipes/demos/sdl2-gears/assets/font.ttf new file mode 100644 index 000000000..eb1000bca Binary files /dev/null and b/recipes/demos/sdl2-gears/assets/font.ttf differ diff --git a/recipes/demos/sdl2-gears/assets/image.png b/recipes/demos/sdl2-gears/assets/image.png new file mode 100644 index 000000000..f3a6f1140 Binary files /dev/null and b/recipes/demos/sdl2-gears/assets/image.png differ diff --git a/recipes/demos/sdl2-gears/assets/music.wav b/recipes/demos/sdl2-gears/assets/music.wav new file mode 100644 index 000000000..f29a8c9c2 Binary files /dev/null and b/recipes/demos/sdl2-gears/assets/music.wav differ diff --git a/recipes/demos/sdl2-gears/gears.c b/recipes/demos/sdl2-gears/gears.c new file mode 100644 index 000000000..887e00854 --- /dev/null +++ b/recipes/demos/sdl2-gears/gears.c @@ -0,0 +1,523 @@ +/* gears.c */ + +/* + * 3-D gear wheels. This program is in the public domain. + * + * Brian Paul + */ + +/* Conversion to GLUT by Mark J. Kilgard */ + +#include +#include +#include +#include +#include + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + +/** + + Draw a gear wheel. You'll probably want to call this function when + building a display list since we do a lot of trig here. + + Input: inner_radius - radius of hole at center + outer_radius - radius at center of teeth + width - width of gear + teeth - number of teeth + tooth_depth - depth of tooth + + **/ + +static void +gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, + GLint teeth, GLfloat tooth_depth) +{ + GLint i; + GLfloat r0, r1, r2; + GLfloat angle, da; + GLfloat u, v, len; + + r0 = inner_radius; + r1 = outer_radius - tooth_depth / 2.0; + r2 = outer_radius + tooth_depth / 2.0; + + da = 2.0 * M_PI / teeth / 4.0; + + glShadeModel(GL_FLAT); + + glNormal3f(0.0, 0.0, 1.0); + + /* draw front face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) + { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); + } + glEnd(); + + /* draw front sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) + { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); + } + glEnd(); + + glNormal3f(0.0, 0.0, -1.0); + + /* draw back face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) + { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + } + glEnd(); + + /* draw back sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) + { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + } + glEnd(); + + /* draw outward faces of teeth */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i < teeth; i++) + { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + u = r2 * cos(angle + da) - r1 * cos(angle); + v = r2 * sin(angle + da) - r1 * sin(angle); + len = sqrt(u * u + v * v); + u /= len; + v /= len; + glNormal3f(v, -u, 0.0); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5); + u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); + v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); + glNormal3f(v, -u, 0.0); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + } + + glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); + glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); + + glEnd(); + + glShadeModel(GL_SMOOTH); + + /* draw inside radius cylinder */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) + { + angle = i * 2.0 * M_PI / teeth; + + glNormal3f(-cos(angle), -sin(angle), 0.0); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + } + glEnd(); +} + +static int width = 800; +static int height = 600; + +static SDL_Window *window = NULL; +static SDL_GLContext context = NULL; + +static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; +static GLint gear1, gear2, gear3; +static GLfloat angle = 0.0; +static GLfloat delta = 2.0f; + +static void +draw(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1.0, 0.0, 0.0); + glRotatef(view_roty, 0.0, 1.0, 0.0); + glRotatef(view_rotz, 0.0, 0.0, 1.0); + + glPushMatrix(); + glTranslatef(-3.0, -2.0, 0.0); + glRotatef(angle, 0.0, 0.0, 1.0); + glCallList(gear1); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(3.1, -2.0, 0.0); + glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); + glCallList(gear2); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(-3.1, 4.2, 0.0); + glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); + glCallList(gear3); + glPopMatrix(); + + glPopMatrix(); +} + +static void +idle(void) +{ + angle += delta; + if (angle > 360.0f) + angle -= 360.0f; + + draw(); + + SDL_GL_SwapWindow(window); +} + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat h = (GLfloat)height / (GLfloat)width; + + glViewport(0, 0, (GLint)width, (GLint)height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -40.0); +} + +static void +init(void) +{ + static GLfloat pos[4] = + {5.0, 5.0, 10.0, 0.0}; + static GLfloat red[4] = + {0.8, 0.1, 0.0, 1.0}; + static GLfloat green[4] = + {0.0, 0.8, 0.2, 1.0}; + static GLfloat blue[4] = + {0.2, 0.2, 1.0, 1.0}; + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glEnable(GL_CULL_FACE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); + + /* make the gears */ + gear1 = glGenLists(1); + glNewList(gear1, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); + gear(1.0, 4.0, 1.0, 20, 0.7); + glEndList(); + + gear2 = glGenLists(1); + glNewList(gear2, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); + gear(0.5, 2.0, 2.0, 10, 0.7); + glEndList(); + + gear3 = glGenLists(1); + glNewList(gear3, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); + gear(1.3, 2.0, 0.5, 10, 0.7); + glEndList(); + + glEnable(GL_NORMALIZE); +} + +void CheckSDLError(int line) +{ + const char *error = SDL_GetError(); + if (error != "") + { + printf("SLD Error: %s\n", error); + + if (line != -1) + printf("\nLine: %d\n", line); + + SDL_ClearError(); + } +} + +SDL_Surface *image; +const char *IMAGE_FILE_NAME = "/usr/games/sdl2_gears/assets/image.png"; + +Mix_Music *music = NULL; +const char *MUSIC_FILE_NAME = "/usr/games/sdl2_gears/assets/music.wav"; + +TTF_Font *font = NULL; +const char *TTF_FILE_NAME = "/usr/games/sdl2_gears/assets/font.ttf"; + +void cleanup() +{ + if (context != NULL) + { + SDL_GL_DeleteContext(context); + context = NULL; + } + if (window != NULL) + { + SDL_DestroyWindow(window); + window = NULL; + } + + if (image != NULL) + { + SDL_FreeSurface(image); + image = NULL; + IMG_Quit(); + } + + if (music != NULL) + { + Mix_FreeMusic(music); + music = NULL; + Mix_CloseAudio(); + } + + if (font != NULL) + { + TTF_CloseFont(font); + font = NULL; + } + + // Shutdown SDL 2 + SDL_Quit(); +} + +int main(int argc, char *argv[]) +{ + // Main + printf("Initializing SDL\n"); + if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) + { + printf("Failed to init SDL\n"); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + // Video / window + printf("Creating SDL window\n"); + window = SDL_CreateWindow( + "Gears", + -1, + -1, + width, + height, + SDL_WINDOW_OPENGL); + if (window == NULL) + { + printf("Unable to create window\n"); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + printf("Creating SDL GL context\n"); + context = SDL_GL_CreateContext(window); + if (context == NULL) + { + printf("Unable to create SDL GL context\n"); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + init(); + + reshape(width, height); + + // Image + printf("Initializing SDL image supporting formats png and jpeg\n"); + int flags = IMG_INIT_JPG | IMG_INIT_PNG; + int initted = IMG_Init(flags); + if ((initted & flags) != flags) + { + printf("IMG_Init: Failed to init required jpg and png support: %s\n", IMG_GetError()); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + image = IMG_Load(IMAGE_FILE_NAME); + if (image == NULL) + { + printf("IMG_Load failed: %s\n", IMG_GetError()); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + // Audio + printf("Opening SDL mixer audio\n"); + if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 4096) < 0) + { + fprintf(stderr, "Couldn't open audio mixer: %s\n", SDL_GetError()); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + music = Mix_LoadMUS(MUSIC_FILE_NAME); + if (music == NULL) + { + fprintf(stderr, "Couldn't open audio file %s: %s\n", MUSIC_FILE_NAME, SDL_GetError()); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + if (Mix_PlayMusic(music, -1) < 0) + { + fprintf(stderr, "Couldn't play music: %s\n", SDL_GetError()); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + // TTF + printf("Initializing TTF\n"); + if (TTF_Init() < 0) + { + printf("Failed to init TTF\n"); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + font = TTF_OpenFont(TTF_FILE_NAME, 30); + if (font == NULL) + { + printf("Couldn't open TTF file %s: %s\n", TTF_FILE_NAME, SDL_GetError()); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + + int running = 1; + SDL_Event event; + int playing_audio = 0; + while (running) + { + idle(); + + // Loop track + Mix_PlayingMusic(); + + while (SDL_PollEvent(&event)) + { + if (event.type == SDL_QUIT) + running = 0; + + if (event.type == SDL_KEYDOWN) + { + switch (event.key.keysym.sym) + { + case SDLK_p: + { + if (!Mix_PlayingMusic()) + { + if (Mix_PlayMusic(music, -1) < 0) + { + fprintf(stderr, "Couldn't play music: %s\n", SDL_GetError()); + CheckSDLError(__LINE__); + cleanup(); + return -1; + } + } + else + { + if (Mix_PausedMusic()) + { + Mix_ResumeMusic(); + } + else + { + Mix_PauseMusic(); + } + } + break; + } + case SDLK_a: + case SDLK_LEFT: + { + delta -= 0.2f; + break; + } + case SDLK_d: + case SDLK_RIGHT: + { + delta += 0.2f; + break; + } + case SDLK_ESCAPE: + { + running = 0; + break; + } + default: + break; + } + } + + if (event.type == SDL_MOUSEBUTTONDOWN) + { + if (event.button.button == SDL_BUTTON_LEFT) + { + printf("Left mouse btn pressed at position %d,%d\n", event.button.x, event.button.y); + } + else if (event.button.button == SDL_BUTTON_MIDDLE) + { + printf("Middle mouse btn pressed at position %d,%d\n", event.button.x, event.button.y); + } + else if (event.button.button == SDL_BUTTON_RIGHT) + { + printf("Right mouse btn pressed at position %d,%d\n", event.button.x, event.button.y); + } + } + } + + SDL_Delay(10); + } + + cleanup(); + + return 0; +} diff --git a/recipes/demos/sdl2-gears/recipe.toml b/recipes/demos/sdl2-gears/recipe.toml new file mode 100644 index 000000000..04ef051f6 --- /dev/null +++ b/recipes/demos/sdl2-gears/recipe.toml @@ -0,0 +1,17 @@ +[build] +template = "custom" +dependencies = [ + "sdl2-image", + "sdl2-mixer", + "sdl2-ttf", +] +script = """ +DYNAMIC_INIT +mkdir -p "${COOKBOOK_STAGE}/usr/games/sdl2_gears" +${CXX} -O2 -I "${COOKBOOK_SYSROOT}/include" $LDFLAGS ${COOKBOOK_RECIPE}/gears.c \ + -o sdl2_gears -dynamic \ + -lSDL2_image -lSDL2_mixer -lSDL2_ttf $("${PKG_CONFIG}" --libs osmesa) \ + -lSDL2 -lorbital -lfreetype -lpng -ljpeg -lvorbisfile -lvorbis -logg -lz +cp -rv "${COOKBOOK_RECIPE}/assets" "${COOKBOOK_STAGE}/usr/games/sdl2_gears/" +cp -v sdl2_gears "${COOKBOOK_STAGE}/usr/games/sdl2_gears/" +""" diff --git a/recipes/demos/winit/recipe.toml b/recipes/demos/winit/recipe.toml new file mode 100644 index 000000000..731075d3e --- /dev/null +++ b/recipes/demos/winit/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://github.com/pop-os/winit.git" +branch = "winit-0.29" + +[build] +template = "custom" +script = """ +cookbook_cargo_examples cursor_grab drag_window window window_debug +""" diff --git a/recipes/dev/autoconf/recipe.toml b/recipes/dev/autoconf/recipe.toml new file mode 100644 index 000000000..83cc9c4f5 --- /dev/null +++ b/recipes/dev/autoconf/recipe.toml @@ -0,0 +1,9 @@ +[source] +tar = "https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz" +blake3 = "da1cc8af8551c343de9f42af0ae53fd7dff3623487157623892b6cd7e3bb5692" + +[build] +template = "configure" + +[package] +dependencies = ["perl5"] diff --git a/recipes/dev/automake/recipe.toml b/recipes/dev/automake/recipe.toml new file mode 100644 index 000000000..327eecad3 --- /dev/null +++ b/recipes/dev/automake/recipe.toml @@ -0,0 +1,9 @@ +[source] +tar = "https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz" +blake3 = "f42cfc333aaaa11f2bcb05b5b0273b8706c820c22f9ba4367f7eb920551695cd" + +[build] +template = "configure" + +[package] +dependencies = ["perl5"] diff --git a/recipes/dev/cargo/recipe.toml b/recipes/dev/cargo/recipe.toml new file mode 100644 index 000000000..e07489624 --- /dev/null +++ b/recipes/dev/cargo/recipe.toml @@ -0,0 +1,33 @@ +[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 new file mode 100644 index 000000000..4a32bfe05 --- /dev/null +++ b/recipes/dev/cargo/redox.patch @@ -0,0 +1,37 @@ +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/cmake/recipe.toml b/recipes/dev/cmake/recipe.toml new file mode 100644 index 000000000..1cc846152 --- /dev/null +++ b/recipes/dev/cmake/recipe.toml @@ -0,0 +1,43 @@ +[source] +tar = "https://github.com/Kitware/CMake/releases/download/v4.0.3/cmake-4.0.3.tar.gz" + +[build] +template = "custom" +dependencies = [ + "bzip2", + # "cppdap", + "curl", + "expat", + # "form", + # "jsoncpp", + "libarchive", + # "liblzma", + # "librhash", + "libuv", + "nghttp2", + "openssl1", + "zlib", + "zstd", +] +script = """ +DYNAMIC_INIT + +COOKBOOK_CMAKE_FLAGS+=( + -DBUILD_TESTING=Off + -DCMAKE_USE_SYSTEM_BZIP2=On + -DCMAKE_USE_SYSTEM_CURL=On + -DCMAKE_USE_SYSTEM_EXPAT=On + -DCMAKE_USE_SYSTEM_LIBARCHIVE=On + -DCMAKE_USE_SYSTEM_LIBUV=On + -DCMAKE_USE_SYSTEM_NGHTTP2=On + -DCMAKE_USE_SYSTEM_ZLIB=On + -DCMAKE_USE_SYSTEM_ZSTD=On +) +cookbook_cmake +set -x +mv -vT "${COOKBOOK_STAGE}"/usr/bin "${COOKBOOK_STAGE}/bin" +mv -vT "${COOKBOOK_STAGE}"/usr/share "${COOKBOOK_STAGE}/share" +rm -rf "${COOKBOOK_STAGE}"/usr/doc +rmdir -v "${COOKBOOK_STAGE}"/usr +set +x +""" diff --git a/recipes/dev/composer/recipe.toml b/recipes/dev/composer/recipe.toml new file mode 100644 index 000000000..1d4d5565b --- /dev/null +++ b/recipes/dev/composer/recipe.toml @@ -0,0 +1,9 @@ +#TODO must be run using `php $(which composer)` +[build] +template = "custom" +script = """ +mkdir -p "${COOKBOOK_STAGE}"/usr/bin +wget -c https://getcomposer.org/download/2.8.12/composer.phar +chmod a+x composer.phar +cp composer.phar ${COOKBOOK_STAGE}/usr/bin/composer +""" diff --git a/recipes/dev/crates-io-index/recipe.toml b/recipes/dev/crates-io-index/recipe.toml new file mode 100644 index 000000000..0d0b92f1e --- /dev/null +++ b/recipes/dev/crates-io-index/recipe.toml @@ -0,0 +1,11 @@ +[source] +git = "https://github.com/rust-lang/crates.io-index.git" +shallow_clone = true + +[build] +template = "custom" +script = """ +dir="${COOKBOOK_STAGE}/home/user/.cargo/registry/index/github.com-1ecc6299db9ec823" +mkdir -pv "${dir}" +cp -rv "${COOKBOOK_SOURCE}/.git" "${dir}" +""" diff --git a/recipes/dev/fontconfig/recipe.toml b/recipes/dev/fontconfig/recipe.toml new file mode 100644 index 000000000..883ac026b --- /dev/null +++ b/recipes/dev/fontconfig/recipe.toml @@ -0,0 +1,29 @@ +[source] +tar = "https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.16.0.tar.xz" +blake3 = "5c95d48f5b9150f4a06d8acac12c25edaac956007df95a3bf527df02a5908f0e" +patches = [ + "redox.patch" +] +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +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 +""" diff --git a/recipes/dev/fontconfig/redox.patch b/recipes/dev/fontconfig/redox.patch new file mode 100644 index 000000000..6beccc26e --- /dev/null +++ b/recipes/dev/fontconfig/redox.patch @@ -0,0 +1,33 @@ +diff -ruwN source/src/fccache.c source-new/src/fccache.c +--- source/src/fccache.c 2019-06-10 05:36:37.000000000 -0600 ++++ source-new/src/fccache.c 2019-10-02 19:48:10.459642095 -0600 +@@ -1526,7 +1526,7 @@ + #if defined(_WIN32) + if (_locking (fd, _LK_LOCK, 1) == -1) + goto bail; +-#else ++#elif !defined(__redox__) + struct flock fl; + + fl.l_type = F_WRLCK; +@@ -1556,7 +1556,7 @@ + { + #if defined(_WIN32) + _locking (fd, _LK_UNLCK, 1); +-#else ++#elif !defined(__redox__) + struct flock fl; + + fl.l_type = F_UNLCK; +diff -ruwN source/src/fccharset.c source-new/src/fccharset.c +--- source/src/fccharset.c 2018-06-05 04:36:38.000000000 -0600 ++++ source-new/src/fccharset.c 2019-10-02 19:48:53.082862133 -0600 +@@ -600,7 +600,7 @@ + static FcChar32 + FcCharSetPopCount (FcChar32 c1) + { +-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) ++#if !defined(__redox__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) + return __builtin_popcount (c1); + #else + /* hackmem 169 */ diff --git a/recipes/dev/gcc13/recipe.toml b/recipes/dev/gcc13/recipe.toml new file mode 100644 index 000000000..73e581776 --- /dev/null +++ b/recipes/dev/gcc13/recipe.toml @@ -0,0 +1,59 @@ +[source] +tar = "https://gitlab.redox-os.org/redox-os/gcc/-/archive/redox-13.2.0/gcc-redox-13.2.0.tar.gz" +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/ +""" + +[build] +template = "custom" +dependencies = [ + "libgmp", + "libmpfr", + "mpc", + "zlib" +] +script = """ +DYNAMIC_INIT + +mkdir -p "${COOKBOOK_SYSROOT}/usr" +ln -sf "${COOKBOOK_SYSROOT}/include" "${COOKBOOK_SYSROOT}/usr/include" +ln -sf "${COOKBOOK_SYSROOT}/lib" "${COOKBOOK_SYSROOT}/usr/lib" + +COOKBOOK_CONFIGURE_FLAGS+=( + --target="${GNU_TARGET}" + --with-sysroot=/ + --with-build-sysroot="${COOKBOOK_SYSROOT}" + --enable-languages=c,c++,lto + --enable-initfini-array + --disable-multilib + --with-system-zlib + --enable-host-shared + --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}" +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* +""" + +[package] +dependencies = [ + "gnu-binutils" +] + +[[optional-packages]] +name = "cxx" +dependencies = [] +files = [ + "usr/bin/*c++", + "usr/bin/*g++", + "usr/include/c++/**", + "usr/lib/*c++*", + "usr/libexec/gcc/**/cc1plus", + "usr/share/gcc-*/python/libstdcxx/**", +] diff --git a/recipes/dev/gdbserver/recipe.toml b/recipes/dev/gdbserver/recipe.toml new file mode 100644 index 000000000..1cd96c04d --- /dev/null +++ b/recipes/dev/gdbserver/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/gdbserver.git" + +[build] +template = "cargo" diff --git a/recipes/dev/gdk-pixbuf/recipe.toml b/recipes/dev/gdk-pixbuf/recipe.toml new file mode 100644 index 000000000..0828868bc --- /dev/null +++ b/recipes/dev/gdk-pixbuf/recipe.toml @@ -0,0 +1,23 @@ +[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 = [ + "gettext", + "glib", + "libffi", + "libiconv", + "libjpeg", + "libpng", + "pcre2", + "shared-mime-info", + "zlib", +] +template = "meson" +mesonflags = [ + "-Dbuiltin_loaders=all", + "-Dinstalled_tests=false", + "-Dman=false", +] diff --git a/recipes/dev/gdk-pixbuf/redox.patch b/recipes/dev/gdk-pixbuf/redox.patch new file mode 100644 index 000000000..ecedea689 --- /dev/null +++ b/recipes/dev/gdk-pixbuf/redox.patch @@ -0,0 +1,17 @@ +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/git.patch b/recipes/dev/git/git.patch new file mode 100644 index 000000000..998bd9d6f --- /dev/null +++ b/recipes/dev/git/git.patch @@ -0,0 +1,240 @@ +diff -ruwN git-2.13.1/compat/bswap.h source/compat/bswap.h +--- git-2.13.1/compat/bswap.h 2017-06-04 19:08:11.000000000 -0600 ++++ source/compat/bswap.h 2025-04-24 11:20:06.475749424 -0600 +@@ -1,3 +1,7 @@ ++#if defined(__redox__) ++#include ++#endif ++ + /* + * Let's make sure we always have a sane definition for ntohl()/htonl(). + * Some libraries define those as a function call, just to perform byte +diff -ruwN git-2.13.1/compat/terminal.c source/compat/terminal.c +--- git-2.13.1/compat/terminal.c 2017-06-04 19:08:11.000000000 -0600 ++++ source/compat/terminal.c 2025-04-18 10:00:11.318697446 -0600 +@@ -137,6 +137,18 @@ + return buf.buf; + } + ++#elif defined(__redox__) ++ ++ssize_t __getline(char **lptr, size_t *n, FILE *fp); ++ ++char *git_terminal_prompt(const char *prompt, int echo) ++{ ++ char *line = NULL; ++ size_t n = 0; ++ __getline(&line, &n, stdin); ++ return line; // XXX leak ++} ++ + #else + + char *git_terminal_prompt(const char *prompt, int echo) +diff -ruwN git-2.13.1/configure source/configure +--- git-2.13.1/configure 2017-06-04 19:08:11.000000000 -0600 ++++ source/configure 2025-04-18 10:00:11.318697446 -0600 +@@ -6156,7 +6156,7 @@ + ac_res=$ac_cv_search_getaddrinfo + if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +- NO_IPV6= ++ NO_IPV6=YesPlease + else + NO_IPV6=YesPlease + fi +diff -ruwN git-2.13.1/daemon.c source/daemon.c +--- git-2.13.1/daemon.c 2017-06-04 19:08:11.000000000 -0600 ++++ source/daemon.c 2025-04-18 10:00:11.319697447 -0600 +@@ -71,13 +71,21 @@ + return hi->ip_address.buf; + } + ++#if defined(__redox__) ++#define LOG_ERR 0 ++#define LOG_INFO 1 ++#endif ++ + static void logreport(int priority, const char *err, va_list params) + { ++#if !defined(__redox__) + if (log_syslog) { + char buf[1024]; + vsnprintf(buf, sizeof(buf), err, params); + syslog(priority, "%s", buf); +- } else { ++ } else ++#endif ++ { + /* + * Since stderr is set to buffered mode, the + * logging of different processes will not overlap +@@ -888,8 +896,12 @@ + + if (!reuseaddr) + return 0; ++#if defined(__redox__) ++ return 0; ++#else + return setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, + &on, sizeof(on)); ++#endif + } + + struct socketlist { +@@ -1174,11 +1186,7 @@ + if (!group_name) + c.gid = c.pass->pw_gid; + else { +- struct group *group = getgrnam(group_name); +- if (!group) + die("group not found - %s", group_name); +- +- c.gid = group->gr_gid; + } + + return &c; +@@ -1348,10 +1356,12 @@ + usage(daemon_usage); + } + ++#if !defined(__redox__) + if (log_syslog) { + openlog("git-daemon", LOG_PID, LOG_DAEMON); + set_die_routine(daemon_die); + } else ++#endif + /* avoid splitting a message in the middle */ + setvbuf(stderr, NULL, _IOFBF, 4096); + +diff -ruwN git-2.13.1/git-compat-util.h source/git-compat-util.h +--- git-2.13.1/git-compat-util.h 2017-06-04 19:08:11.000000000 -0600 ++++ source/git-compat-util.h 2025-04-18 10:00:11.319697447 -0600 +@@ -1,6 +1,18 @@ + #ifndef GIT_COMPAT_UTIL_H + #define GIT_COMPAT_UTIL_H + ++#ifndef SIG_DFL ++#define SIG_DFL ((void (*)(int))0) ++#endif ++ ++#ifndef SIG_IGN ++#define SIG_IGN ((void (*)(int))1) ++#endif ++ ++#ifndef SIG_ERR ++#define SIG_ERR ((void (*)(int))-1) ++#endif ++ + #define _FILE_OFFSET_BITS 64 + + +@@ -323,6 +335,14 @@ + #define PATH_SEP ':' + #endif + ++#ifndef DEV_NULL ++#if defined(__redox__) ++#define DEV_NULL "/scheme/null" ++#else ++#define DEV_NULL "/dev/null" ++#endif ++#endif ++ + #ifdef HAVE_PATHS_H + #include + #endif +diff -ruwN git-2.13.1/Makefile source/Makefile +--- git-2.13.1/Makefile 2017-06-05 08:08:11.000000000 +0700 ++++ source/Makefile 2025-09-01 04:41:10.339224568 +0700 +@@ -979,7 +979,7 @@ + BUILTIN_OBJS += builtin/write-tree.o + + GITLIBS = common-main.o $(LIB_FILE) $(XDIFF_LIB) +-EXTLIBS = ++EXTLIBS = -lnghttp2 + + GIT_USER_AGENT = git/$(GIT_VERSION) + +@@ -1802,7 +1802,6 @@ + + $(BUILT_INS): git$X + $(QUIET_BUILT_IN)$(RM) $@ && \ +- ln $< $@ 2>/dev/null || \ + ln -s $< $@ 2>/dev/null || \ + cp $< $@ + +@@ -2096,7 +2095,6 @@ + + $(REMOTE_CURL_ALIASES): $(REMOTE_CURL_PRIMARY) + $(QUIET_LNCP)$(RM) $@ && \ +- ln $< $@ 2>/dev/null || \ + ln -s $< $@ 2>/dev/null || \ + cp $< $@ + +@@ -2449,14 +2447,12 @@ + for p in $(filter $(install_bindir_programs),$(BUILT_INS)); do \ + $(RM) "$$bindir/$$p" && \ + test -z "$(NO_INSTALL_HARDLINKS)" && \ +- ln "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \ + ln -s "git$X" "$$bindir/$$p" 2>/dev/null || \ + cp "$$bindir/git$X" "$$bindir/$$p" || exit; \ + done && \ + for p in $(BUILT_INS); do \ + $(RM) "$$execdir/$$p" && \ + test -z "$(NO_INSTALL_HARDLINKS)" && \ +- ln "$$execdir/git$X" "$$execdir/$$p" 2>/dev/null || \ + ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \ + cp "$$execdir/git$X" "$$execdir/$$p" || exit; \ + done && \ +@@ -2464,7 +2460,6 @@ + for p in $$remote_curl_aliases; do \ + $(RM) "$$execdir/$$p" && \ + test -z "$(NO_INSTALL_HARDLINKS)" && \ +- ln "$$execdir/git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \ + ln -s "git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \ + cp "$$execdir/git-remote-http$X" "$$execdir/$$p" || exit; \ + done && \ +diff -ruwN git-2.13.1/run-command.c source/run-command.c +--- git-2.13.1/run-command.c 2017-06-04 19:08:11.000000000 -0600 ++++ source/run-command.c 2025-04-18 10:00:11.320697447 -0600 +@@ -120,9 +120,9 @@ + #ifndef GIT_WINDOWS_NATIVE + static inline void dup_devnull(int to) + { +- int fd = open("/dev/null", O_RDWR); ++ int fd = open(DEV_NULL, O_RDWR); + if (fd < 0) +- die_errno(_("open /dev/null failed")); ++ die_errno(_("open %s failed"), DEV_NULL); + if (dup2(fd, to) < 0) + die_errno(_("dup2(%d,%d) failed"), fd, to); + close(fd); +diff -ruwN git-2.13.1/setup.c source/setup.c +--- git-2.13.1/setup.c 2017-06-05 08:08:11.000000000 +0700 ++++ source/setup.c 2025-09-01 04:41:10.339224568 +0700 +@@ -1146,11 +1146,11 @@ + /* if any standard file descriptor is missing open it to /dev/null */ + void sanitize_stdfds(void) + { +- int fd = open("/dev/null", O_RDWR, 0); ++ int fd = open(DEV_NULL, O_RDWR, 0); + while (fd != -1 && fd < 2) + fd = dup(fd); + if (fd == -1) +- die_errno("open /dev/null or dup failed"); ++ die_errno("open %s or dup failed", DEV_NULL); + if (fd > 2) + close(fd); + } +@@ -1169,8 +1169,10 @@ + default: + exit(0); + } ++#if !defined(__redox__) + if (setsid() == -1) + die_errno("setsid failed"); ++#endif + close(0); + close(1); + close(2); diff --git a/recipes/dev/git/recipe.toml b/recipes/dev/git/recipe.toml new file mode 100644 index 000000000..52d5b70cf --- /dev/null +++ b/recipes/dev/git/recipe.toml @@ -0,0 +1,47 @@ +[source] +tar = "https://www.kernel.org/pub/software/scm/git/git-2.13.1.tar.xz" +blake3 = "bc78271bffd60c5b8b938d8c08fd74dc2de8d21fbaf8f8e0e3155436d9263f17" +patches = ["git.patch"] + +[build] +dependencies=[ + "curl", + "expat", + "nghttp2", + "openssl1", + "zlib" +] +template = "custom" +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +DYNAMIC_INIT +MAKEFLAGS=( + NEEDS_SSL_WITH_CURL=1 + NEEDS_CRYPTO_WITH_SSL=1 + NO_IPV6=1 + NO_PREAD=1 + NO_MMAP=1 + NO_SETITIMER=1 + NO_UNIX_SOCKETS=1 + NEEDS_LIBICONV= + NEEDS_LIBRT= + BLK_SHA1=1 + V=1 +) +export CURL_CONFIG="${COOKBOOK_SYSROOT}/usr/bin/curl-config" +./configure \ + --host="${GNU_TARGET}" \ + --prefix=/usr \ + ac_cv_fread_reads_directories=yes \ + ac_cv_snprintf_returns_bogus=yes \ + ac_cv_lib_curl_curl_global_init=yes +"${COOKBOOK_MAKE}" "${MAKEFLAGS[@]}" -j"${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" DESTDIR="${COOKBOOK_STAGE}" "${MAKEFLAGS[@]}" install +rm -rf "${COOKBOOK_STAGE}/usr/share/man" +""" + +[package] +dependencies = [ + "ca-certificates", + "nghttp2" +] diff --git a/recipes/dev/gitoxide/recipe.toml b/recipes/dev/gitoxide/recipe.toml new file mode 100644 index 000000000..4bd2cf93f --- /dev/null +++ b/recipes/dev/gitoxide/recipe.toml @@ -0,0 +1,14 @@ +[source] +git = "https://github.com/Byron/gitoxide.git" + +[build] +dependencies = [ + "openssl1", +] +template = "custom" +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo +""" + diff --git a/recipes/dev/gnu-make/recipe.toml b/recipes/dev/gnu-make/recipe.toml new file mode 100644 index 000000000..91e95a5d3 --- /dev/null +++ b/recipes/dev/gnu-make/recipe.toml @@ -0,0 +1,13 @@ +#TODO very basic makefiles are tested to work but needs more testing +[source] +tar = "http://ftp.gnu.org/gnu/make/make-4.4.tar.gz" +patches = [ + "redox.patch" +] +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "configure" diff --git a/recipes/dev/gnu-make/redox.patch b/recipes/dev/gnu-make/redox.patch new file mode 100644 index 000000000..1dba02da6 --- /dev/null +++ b/recipes/dev/gnu-make/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN make-4.4/src/arscan.c source/src/arscan.c +--- make-4.4/src/arscan.c 2022-10-23 16:52:32.000000000 +0200 ++++ source/src/arscan.c 2024-08-23 18:28:49.206084084 +0200 +@@ -331,7 +331,7 @@ + #endif + + #ifndef WINDOWS32 +-# if !defined (__ANDROID__) && !defined (__BEOS__) ++# if 0 + # include + # else + /* These platforms don't have but have archives in the same format diff --git a/recipes/dev/hello-world-examples/recipe.toml b/recipes/dev/hello-world-examples/recipe.toml new file mode 100644 index 000000000..b3fd95679 --- /dev/null +++ b/recipes/dev/hello-world-examples/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://github.com/leachim6/hello-world" +[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 +""" diff --git a/recipes/dev/lci/recipe.toml b/recipes/dev/lci/recipe.toml new file mode 100644 index 000000000..2f5e1cf44 --- /dev/null +++ b/recipes/dev/lci/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://github.com/jD91mZM2/rust-lci" + +[build] +template = "cargo" diff --git a/recipes/dev/llvm18/native.cmake b/recipes/dev/llvm18/native.cmake new file mode 100644 index 000000000..4b0abbfa3 --- /dev/null +++ b/recipes/dev/llvm18/native.cmake @@ -0,0 +1,2 @@ +set(CMAKE_C_COMPILER cc) +set(CMAKE_CXX_COMPILER c++) diff --git a/recipes/dev/llvm18/recipe.toml b/recipes/dev/llvm18/recipe.toml new file mode 100644 index 000000000..85399dad3 --- /dev/null +++ b/recipes/dev/llvm18/recipe.toml @@ -0,0 +1,72 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/llvm-project.git" +upstream = "https://github.com/rust-lang/llvm-project.git" +branch = "redox-2024-05-11" +shallow_clone = true + +[build] +template = "custom" +dependencies = [ + "zlib" +] +script = """ +DYNAMIC_INIT + +# https://llvm.org/docs/CMake.html +case "${TARGET}" in + x86-unknown-redox) + LLVM_TARGETS_TO_BUILD="X86" + ;; + x86_64-unknown-redox) + LLVM_TARGETS_TO_BUILD="X86" + ;; + aarch64-unknown-redox) + LLVM_TARGETS_TO_BUILD="AArch64" + ;; + riscv64gc-unknown-redox) + LLVM_TARGETS_TO_BUILD="RISCV" + ;; + *) + LLVM_TARGETS_TO_BUILD="host" + ;; +esac + +COOKBOOK_CMAKE_FLAGS+=( + -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_BENCHMARKS=Off + -DLLVM_BUILD_EXAMPLES=Off + -DLLVM_BUILD_TESTS=Off + -DLLVM_BUILD_UTILS=Off + -DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}" + -DLLVM_ENABLE_LTO=Off + -DLLVM_ENABLE_RTTI=On + -DLLVM_ENABLE_THREADS=On + -DLLVM_ENABLE_ZSTD=Off + -DLLVM_INCLUDE_BENCHMARKS=Off + -DLLVM_INCLUDE_EXAMPLES=Off + -DLLVM_INCLUDE_TESTS=Off + -DLLVM_INCLUDE_UTILS=Off + -DLLVM_OPTIMIZED_TABLEGEN=On + -DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)" + -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS_TO_BUILD}" + -DLLVM_TOOL_LLVM_COV_BUILD=Off + -DLLVM_TOOL_LLVM_LTO_BUILD=Off + -DLLVM_TOOL_LLVM_LTO2_BUILD=Off + -DLLVM_TOOL_LLVM_PROFDATA_BUILD=Off + -DLLVM_TOOL_LLVM_RTDYLD_BUILD=Off + -DLLVM_TOOL_LLVM_XRAY_BUILD=Off + -DLLVM_TOOL_LLI_BUILD=Off + -DLLVM_TOOL_LTO_BUILD=Off + -DLLVM_TOOLS_INSTALL_DIR=bin + -DLLVM_UTILS_INSTALL_DIR=bin + -DUNIX=1 + -DLLVM_ENABLE_PROJECTS="llvm" +) + +# Native tablegen build fails with too many jobs, limit to 16 +COOKBOOK_MAKE_JOBS="$(( ${COOKBOOK_MAKE_JOBS} > 16 ? 16 : ${COOKBOOK_MAKE_JOBS} ))" +cookbook_cmake "${COOKBOOK_SOURCE}/llvm" +""" diff --git a/recipes/dev/llvm21/native.cmake b/recipes/dev/llvm21/native.cmake new file mode 100644 index 000000000..4b0abbfa3 --- /dev/null +++ b/recipes/dev/llvm21/native.cmake @@ -0,0 +1,2 @@ +set(CMAKE_C_COMPILER cc) +set(CMAKE_CXX_COMPILER c++) diff --git a/recipes/dev/llvm21/recipe.toml b/recipes/dev/llvm21/recipe.toml new file mode 100644 index 000000000..ddd1b793a --- /dev/null +++ b/recipes/dev/llvm21/recipe.toml @@ -0,0 +1,111 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/llvm-project.git" +upstream = "https://github.com/rust-lang/llvm-project.git" +branch = "redox-2025-10-03" +shallow_clone = true + +[build] +template = "custom" +dependencies = [ + "zlib", + "libxml2", +] +dev-dependencies = [ + "libstdcxx", + "host:xz", + "host:libarchive", # workaround for cmake error +] +script = """ +DYNAMIC_INIT + +COOKBOOK_CMAKE_FLAGS+=( + -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_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" +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" ] +files = [ + "usr/include/llvm*/**", + "usr/lib/libLLVM*.a", + "usr/lib/cmake/llvm/**", +] diff --git a/recipes/dev/lua54/recipe.toml b/recipes/dev/lua54/recipe.toml new file mode 100644 index 000000000..ea9e54065 --- /dev/null +++ b/recipes/dev/lua54/recipe.toml @@ -0,0 +1,16 @@ +[source] +tar = "https://lua.org/ftp/lua-5.4.7.tar.gz" +blake3 = "e51c2f347e3185479d5ff95cae8ac77511db486853269443c56bedaa0a6ae629" + +[build] +template = "custom" +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" posix \ + AR="${TARGET}-ar rcu" \ + CC="${CC_WRAPPER} ${TARGET}-gcc -std=gnu99" \ + RANLIB="${TARGET}-ranlib" \ + SYSLDFLAGS="-static" + +"${COOKBOOK_MAKE}" install INSTALL_TOP="${COOKBOOK_STAGE}" +""" diff --git a/recipes/dev/luajit/recipe.toml b/recipes/dev/luajit/recipe.toml new file mode 100644 index 000000000..b6d86974e --- /dev/null +++ b/recipes/dev/luajit/recipe.toml @@ -0,0 +1,22 @@ +[source] +git = "https://luajit.org/git/luajit.git" +rev = "a4f56a459a588ae768801074b46ba0adcfb49eb1" +patches = ["redox.patch"] +[build] +template = "custom" +script = """ +DYNAMIC_INIT + +rsync -av "${COOKBOOK_SOURCE}/" ./ +OS=$(echo "${TARGET}" | cut -d - -f3) + +case "${OS}" in + linux) SYS=Linux;; + redox) SYS=Redox;; +esac + +${COOKBOOK_MAKE} -j ${COOKBOOK_MAKE_JOBS} install \ + PREFIX="${COOKBOOK_STAGE}" \ + TARGET_SYS="${SYS}" \ + CROSS="${GNU_TARGET}-" +""" diff --git a/recipes/dev/luajit/redox.patch b/recipes/dev/luajit/redox.patch new file mode 100644 index 000000000..aef67b4c1 --- /dev/null +++ b/recipes/dev/luajit/redox.patch @@ -0,0 +1,31 @@ +diff --git a/src/Makefile b/src/Makefile +index 3a6a4329..450e8fe6 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -351,6 +351,9 @@ else + ifeq (GNU/kFreeBSD,$(TARGET_SYS)) + TARGET_XLIBS+= -ldl + endif ++ ifeq (Redox,$(TARGET_SYS)) ++ TARGET_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_POSIX ++ endif + endif + endif + endif +@@ -367,12 +370,16 @@ ifneq ($(HOST_SYS),$(TARGET_SYS)) + else + ifeq (iOS,$(TARGET_SYS)) + HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_OSX -DTARGET_OS_IPHONE=1 ++ else ++ ifeq (Redox,$(TARGET_SYS)) ++ HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_POSIX + else + HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_OTHER + endif + endif + endif + endif ++ endif + endif + + ifneq (,$(CCDEBUG)) diff --git a/recipes/dev/luarocks/recipe.toml b/recipes/dev/luarocks/recipe.toml new file mode 100644 index 000000000..7440a5727 --- /dev/null +++ b/recipes/dev/luarocks/recipe.toml @@ -0,0 +1,18 @@ +[source] +git = "https://github.com/luarocks/luarocks.git" +[build] +template = "custom" +dependencies = [ +"lua54" +] +script = """ + +COOKBOOK_CONFIGURE_FLAGS=( + --sysconfdir=$COOKBOOK_SYSROOT + --with-lua-include=$COOKBOOK_SYSROOT/include + --with-lua-bin=$COOKBOOK_SYSROOT/bin + --with-lua-lib=$COOKBOOK_SYSROOT/lib +) +cd "${COOKBOOK_SOURCE}" +cookbook_configure +""" diff --git a/recipes/dev/nasm/recipe.toml b/recipes/dev/nasm/recipe.toml new file mode 100644 index 000000000..c4de3b14d --- /dev/null +++ b/recipes/dev/nasm/recipe.toml @@ -0,0 +1,7 @@ +[source] +#TODO: nasm.us is down: tar = "https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz" +tar = "https://gstreamer.freedesktop.org/src/mirror/nasm-2.14.02.tar.xz" +blake3 = "f66c0cc852c3b9e3321f57c33ef336e17a128bd3d854ee095aae7e6f64629f20" + +[build] +template = "configure" diff --git a/recipes/dev/patch/01_no_rlimit.patch b/recipes/dev/patch/01_no_rlimit.patch new file mode 100644 index 000000000..c44b9a960 --- /dev/null +++ b/recipes/dev/patch/01_no_rlimit.patch @@ -0,0 +1,35 @@ +diff -ru source/lib/getdtablesize.c source-new/lib/getdtablesize.c +--- source/lib/getdtablesize.c 2015-03-06 16:31:45.000000000 -0800 ++++ source-new/lib/getdtablesize.c 2017-08-08 19:33:33.993874985 -0700 +@@ -106,15 +106,6 @@ + int + getdtablesize (void) + { +- struct rlimit lim; +- +- if (getrlimit (RLIMIT_NOFILE, &lim) == 0 +- && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX +- && lim.rlim_cur != RLIM_INFINITY +- && lim.rlim_cur != RLIM_SAVED_CUR +- && lim.rlim_cur != RLIM_SAVED_MAX) +- return lim.rlim_cur; +- + return INT_MAX; + } + +Only in source-new/lib: getdtablesize.c.orig +diff -ru source/src/safe.c source-new/src/safe.c +--- source/src/safe.c 2015-03-06 16:34:20.000000000 -0800 ++++ source-new/src/safe.c 2017-08-08 19:33:53.447430811 -0700 +@@ -92,11 +92,7 @@ + + static void init_dirfd_cache (void) + { +- struct rlimit nofile; +- + max_cached_fds = 8; +- if (getrlimit (RLIMIT_NOFILE, &nofile) == 0) +- max_cached_fds = MAX (nofile.rlim_cur / 4, max_cached_fds); + + cached_dirfds = hash_initialize (max_cached_fds, + NULL, diff --git a/recipes/dev/patch/02_no_chown.patch b/recipes/dev/patch/02_no_chown.patch new file mode 100644 index 000000000..996f6a72d --- /dev/null +++ b/recipes/dev/patch/02_no_chown.patch @@ -0,0 +1,19 @@ +diff -ru source/src/util.c source-new/src/util.c +--- source/src/util.c 2015-03-06 16:34:20.000000000 -0800 ++++ source-new/src/util.c 2017-08-11 18:24:56.991729200 -0700 +@@ -271,6 +271,7 @@ + + /* May fail if we are not privileged to set the file owner, or we are + not in group instat.st_gid. Ignore those errors. */ ++ /* + if ((uid != -1 || gid != -1) + && safe_lchown (to, uid, gid) != 0 + && (errno != EPERM +@@ -281,6 +282,7 @@ + (uid == -1) ? "owner" : "owning group", + S_ISLNK (mode) ? "symbolic link" : "file", + quotearg (to)); ++ */ + } + if (attr & FA_XATTRS) + if (copy_attr (from, to) != 0 diff --git a/recipes/dev/patch/03_renameat2.patch b/recipes/dev/patch/03_renameat2.patch new file mode 100644 index 000000000..f5e799e90 --- /dev/null +++ b/recipes/dev/patch/03_renameat2.patch @@ -0,0 +1,15 @@ +--- source-old/lib/renameat2.c 2018-02-03 05:41:53.000000000 -0700 ++++ source/lib/renameat2.c 2025-11-01 08:39:54.945513820 -0600 +@@ -70,6 +70,7 @@ + Obey FLAGS when doing the renaming. If FLAGS is zero, this + function is equivalent to renameat (FD1, SRC, FD2, DST). */ + ++#if !defined(__redox__) + int + renameat2 (int fd1, char const *src, int fd2, char const *dst, + unsigned int flags) +@@ -225,3 +226,4 @@ + + #endif /* !HAVE_RENAMEAT */ + } ++#endif diff --git a/recipes/dev/patch/recipe.toml b/recipes/dev/patch/recipe.toml new file mode 100644 index 000000000..3e4cadbc2 --- /dev/null +++ b/recipes/dev/patch/recipe.toml @@ -0,0 +1,28 @@ +[source] +tar = "https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz" +blake3 = "d46d14c12aa4ea51e356bf92091c368fd871e1d770b94bc29027886737aecd5f" +patches = [ + "01_no_rlimit.patch", + "02_no_chown.patch", + "03_renameat2.patch", +] +script = """ +wget -O build-aux/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" +autoreconf +""" + +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/configure" +COOKBOOK_CONFIGURE_FLAGS=( + --host="${TARGET}" + --prefix="/" + --build="$(gcc -dumpmachine)" +) + +cookbook_configure + +${TARGET}-strip "${COOKBOOK_STAGE}/bin/"* +rm -rf "${COOKBOOK_STAGE}/share" "${COOKBOOK_STAGE}/lib" +""" diff --git a/recipes/dev/pciids/recipe.toml b/recipes/dev/pciids/recipe.toml new file mode 100644 index 000000000..3404148bc --- /dev/null +++ b/recipes/dev/pciids/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://github.com/pciutils/pciids.git" + +[build] +template = "custom" +script = """ +install -d "${COOKBOOK_STAGE}/share/misc/" +install "${COOKBOOK_SOURCE}"/pci.ids "${COOKBOOK_STAGE}/share/misc/" +""" diff --git a/recipes/dev/php84/recipe.toml b/recipes/dev/php84/recipe.toml new file mode 100644 index 000000000..1e109c25d --- /dev/null +++ b/recipes/dev/php84/recipe.toml @@ -0,0 +1,80 @@ +[source] +tar = "https://www.php.net/distributions/php-8.4.12.tar.xz" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "bzip2", + "curl", + "gettext", + "libffi", + "libgmp", + "libavif", + "libicu", + "libjpeg", + "libedit", + "libonig", + "libpng", + "libsodium", + "libwebp", + "libxml2", + "libiconv", + "libzip", + "ncurses", + "nghttp2", + "openssl1", + "openssl3", # put this after openssl1 + "pcre", + "sqlite3", + "xz", + "zlib", + "zstd", +] +script = """ +DYNAMIC_INIT +export SUFFIX="84" + +export CURL_LIBS="-lcurl -lnghttp2 -lssl -lcrypto" +COOKBOOK_CONFIGURE_FLAGS+=( + --program-suffix=${SUFFIX} + --sysconfdir=/etc/php/$SUFFIX + --with-config-file-path=/etc/php/$SUFFIX + --with-config-file-scan-dir=/etc/php/$SUFFIX/conf.d + --with-iconv="${COOKBOOK_SYSROOT}/usr" + --disable-opcache + --enable-bcmath + --enable-calendar + --enable-fpm # need times function + --enable-gd + --enable-intl + --enable-mbstring + --with-curl + --with-gettext + --with-gmp + --with-jpeg + --with-webp + --with-avif + --with-ffi + --with-libedit + --with-openssl + --with-sodium + --with-zip +) + +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" "$@" +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install \ + INSTALL_ROOT="${COOKBOOK_STAGE}" \ + datarootdir=/usr/share localstatedir=/var + +mv ${COOKBOOK_STAGE}/usr/sbin/* ${COOKBOOK_STAGE}/usr/bin/ +for bin in "php-cgi" "php-config" "php" "phpdbg" "phpize" "php-fpm"; do + ln -s "$bin$SUFFIX" ${COOKBOOK_STAGE}/usr/bin/$bin +done +# will not exist on bash but exist on other shell +rm -f ${COOKBOOK_STAGE}/usr/bin/phar$SUFFIX +cp ${COOKBOOK_SOURCE}/php.ini* ${COOKBOOK_STAGE}/etc/php/$SUFFIX/ +""" diff --git a/recipes/dev/php84/redox.patch b/recipes/dev/php84/redox.patch new file mode 100644 index 000000000..25308e146 --- /dev/null +++ b/recipes/dev/php84/redox.patch @@ -0,0 +1,89 @@ +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 @@ + then : + ac_cv_lib_curl_curl_easy_perform=yes + else case e in #( +- e) ac_cv_lib_curl_curl_easy_perform=no ;; ++ e) ac_cv_lib_curl_curl_easy_perform=yes ;; + esac + fi + rm -f core conftest.err conftest.$ac_objext conftest.beam \ +@@ -37356,7 +37356,7 @@ + then : + php_cv_lib_gd_works=yes + else case e in #( +- e) php_cv_lib_gd_works=no ;; ++ e) php_cv_lib_gd_works=yes ;; + esac + fi + rm -f core conftest.err conftest.$ac_objext conftest.beam \ +@@ -40056,7 +40056,7 @@ + LIBS_SAVED=$LIBS + CFLAGS="$CFLAGS $GMP_CFLAGS" + LIBS="$LIBS $GMP_LIBS" +- gmp_check=no ++ gmp_check=yes + ac_fn_c_check_header_compile "$LINENO" "gmp.h" "ac_cv_header_gmp_h" "$ac_includes_default" + 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 +@@ -30,7 +30,7 @@ + -@test -f $(builddir)/phar/phar.inc || cp $(srcdir)/phar/phar.inc $(builddir)/phar/phar.inc + + TEST_PHP_EXECUTABLE = $(shell $(PHP_EXECUTABLE) -v 2>&1) +-TEST_PHP_EXECUTABLE_RES = $(shell echo "$(TEST_PHP_EXECUTABLE)" | grep -c 'Exec format error') ++TEST_PHP_EXECUTABLE_RES = $(shell echo "$(TEST_PHP_EXECUTABLE)" | grep -E -c 'Exec format error|required file not found') + + $(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 +@@ -375,7 +375,7 @@ + + ZEND_PARSE_PARAMETERS_NONE(); + +- if ((ticks = times(&t)) == -1) { ++ { + POSIX_G(last_error) = errno; + 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 @@ + } + proc_p = &procs[i]; + /* prevent NaN */ ++#ifdef HAVE_TIMES + if (procs[i].cpu_duration.tv_sec == 0 && procs[i].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.; + } ++#else ++ cpu = 0.; ++#endif + + array_init(&fpm_proc_stat); + add_assoc_long(&fpm_proc_stat, "pid", procs[i].pid); +@@ -590,11 +594,15 @@ + } + + /* prevent NaN */ ++#ifdef HAVE_TIMES + if (proc->cpu_duration.tv_sec == 0 && proc->cpu_duration.tv_usec == 0) { + cpu = 0.; + } else { + cpu = (proc->last_request_cpu.tms_utime + proc->last_request_cpu.tms_stime + proc->last_request_cpu.tms_cutime + proc->last_request_cpu.tms_cstime) / fpm_scoreboard_get_tick() / (proc->cpu_duration.tv_sec + proc->cpu_duration.tv_usec / 1000000.) * 100.; + } ++#else ++ cpu = 0.; ++#endif + + if (proc->request_stage == FPM_REQUEST_ACCEPTING) { + duration = proc->duration; diff --git a/recipes/dev/pkg-config/recipe.toml b/recipes/dev/pkg-config/recipe.toml new file mode 100644 index 000000000..0560e2dac --- /dev/null +++ b/recipes/dev/pkg-config/recipe.toml @@ -0,0 +1,19 @@ +[source] +tar = "https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz" +blake3 = "713372b09a1fafeec130dc9bf812a3880f2a90496af5d2194e508d91ccf667d0" +script = """ +GNU_CONFIG_GET config.sub +""" + +[build] +dependencies = [ + "gettext", + "glib", + "libiconv", + "pcre2", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/dev/python312/recipe.toml b/recipes/dev/python312/recipe.toml new file mode 100644 index 000000000..9067b5a5e --- /dev/null +++ b/recipes/dev/python312/recipe.toml @@ -0,0 +1,65 @@ +[source] +tar = "https://www.python.org/ftp/python/3.12.12/Python-3.12.12.tar.xz" +blake3 = "29636fdae3e0ee8d0fe585e528c9376fe43876f5f3f0f7892140567946fd907b" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "bzip2", + "libffi", + "libuuid", + "openssl3", + "ncursesw", + "readline", + "sqlite3", + "zlib", + "xz", + "zstd", +] +dev-dependencies = [ + "host:python312" +] +script = """ +DYNAMIC_INIT + +export PYTHONDONTWRITEBYTECODE=1 +ARCH="${TARGET%%-*}" +OS=$(echo "${TARGET}" | cut -d - -f3-4) + +if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then + COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/usr + --disable-ipv6 + --host=${GNU_TARGET} + --build="$ARCH" + --with-build-python="${COOKBOOK_TOOLCHAIN}/usr/bin/python3.12" + --with-ensurepip=install + --disable-test-modules + ac_cv_file__dev_ptmx=no + ac_cv_file__dev_ptc=no + ) +else + COOKBOOK_CONFIGURE_FLAGS=(--prefix=/usr) +fi + +if [ "${COOKBOOK_DYNAMIC}" != "1" ]; then + export MODULE_BUILDTYPE=static + COOKBOOK_CONFIGURE_FLAGS+=( --enable-shared ) +fi + +cookbook_configure + +# A same file to save 60MB +(cd "${COOKBOOK_STAGE}/usr/lib/python3.12/config-3.12-$ARCH-$OS" && \ + rm -f libpython3.12.a && ln -s ../../libpython3.12.a) +""" + +[[optional-packages]] +name = "dev" +files = [ + "usr/lib/python3.12/config-*/**", + "usr/lib/libpython*.a" +] diff --git a/recipes/dev/python312/redox.patch b/recipes/dev/python312/redox.patch new file mode 100644 index 000000000..a0cfe4a54 --- /dev/null +++ b/recipes/dev/python312/redox.patch @@ -0,0 +1,204 @@ +diff -ruwN source/configure source-new/configure +--- source/configure 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/configure 2025-12-09 22:14:30.781035339 +0700 +@@ -4283,6 +4283,9 @@ + *-*-wasi) + ac_sys_system=WASI + ;; ++ *-*-redox*) ++ ac_sys_system=Redox ++ ;; + *) + # for now, limit cross builds to known configurations + MACHDEP="unknown" +@@ -4307,6 +4310,7 @@ + case $MACHDEP in + aix*) MACHDEP="aix";; + linux*) MACHDEP="linux";; ++ redox*) MACHDEP="redox";; + cygwin*) MACHDEP="cygwin";; + darwin*) MACHDEP="darwin";; + '') MACHDEP="unknown";; +@@ -4327,7 +4331,7 @@ + + if test "$cross_compiling" = yes; then + case "$host" in +- *-*-linux*) ++ *-*-linux*|*-*-redox*) + case "$host_cpu" in + arm*) + _host_cpu=arm +@@ -6762,6 +6766,7 @@ + #undef cris + #undef fr30 + #undef linux ++#undef redox + #undef hppa + #undef hpux + #undef i386 +@@ -6907,6 +6912,18 @@ + # endif + #elif defined(__gnu_hurd__) + i386-gnu ++#elif defined(__redox__) ++# if defined(__x86_64__) ++ x86_64-redox ++# elif defined(__i386__) ++ i386-redox ++# elif defined(__aarch64__) ++ aarch64-redox ++# elif defined(__riscv) ++ riscv64-redox ++# else ++# error unknown platform triplet ++# endif + #elif defined(__APPLE__) + darwin + #elif defined(__VXWORKS__) +@@ -7507,7 +7524,7 @@ + PY3LIBRARY=libpython3.so + fi + ;; +- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|VxWorks*) ++ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|VxWorks*|Redox*) + LDLIBRARY='libpython$(LDVERSION).so' + BLDLIBRARY='-L. -lpython$(LDVERSION)' + RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} +@@ -12815,7 +12832,7 @@ + Emscripten*|WASI*) + LDSHARED='$(CC) -shared' + LDCXXSHARED='$(CXX) -shared';; +- Linux*|GNU*|QNX*|VxWorks*|Haiku*) ++ Linux*|GNU*|QNX*|VxWorks*|Haiku*|Redox*) + LDSHARED='$(CC) -shared' + LDCXXSHARED='$(CXX) -shared';; + FreeBSD*) +@@ -12901,7 +12918,7 @@ + else CCSHARED="+z"; + fi;; + Linux-android*) ;; +- Linux*|GNU*) CCSHARED="-fPIC";; ++ Linux*|GNU*|Redox*) CCSHARED="-fPIC";; + Emscripten*|WASI*) + if test "x$enable_wasm_dynamic_linking" = xyes + then : +@@ -12939,7 +12956,7 @@ + LINKFORSHARED="-Wl,-E -Wl,+s";; + # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";; + Linux-android*) LINKFORSHARED="-pie -Xlinker -export-dynamic";; +- Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";; ++ Linux*|GNU*|Redox*) LINKFORSHARED="-Xlinker -export-dynamic";; + # -u libsys_s pulls in all symbols in libsys + Darwin/*) + LINKFORSHARED="$extra_undefs -framework CoreFoundation" +diff -ruwN source/Include/pyport.h source-new/Include/pyport.h +--- source/Include/pyport.h 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/Include/pyport.h 2025-12-09 22:14:30.781035339 +0700 +@@ -684,7 +684,7 @@ + # error "Py_TRACE_REFS ABI is not compatible with release and debug ABI" + #endif + +-#if defined(__ANDROID__) || defined(__VXWORKS__) ++#if defined(__ANDROID__) || defined(__VXWORKS__) || defined(__redox__) + // Use UTF-8 as the locale encoding, ignore the LC_CTYPE locale. + // See _Py_GetLocaleEncoding(), PyUnicode_DecodeLocale() + // and PyUnicode_EncodeLocale(). +diff -ruwN source/Modules/_cryptmodule.c source-new/Modules/_cryptmodule.c +--- source/Modules/_cryptmodule.c 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/Modules/_cryptmodule.c 2025-12-09 22:14:30.781035339 +0700 +@@ -38,13 +38,7 @@ + /*[clinic end generated code: output=0512284a03d2803c input=0e8edec9c364352b]*/ + { + char *crypt_result; +-#ifdef HAVE_CRYPT_R +- struct crypt_data data; +- memset(&data, 0, sizeof(data)); +- crypt_result = crypt_r(word, salt, &data); +-#else + crypt_result = crypt(word, salt); +-#endif + if (crypt_result == NULL) { + return PyErr_SetFromErrno(PyExc_OSError); + } +diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c +--- source/Modules/posixmodule.c 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/Modules/posixmodule.c 2025-12-09 22:14:30.781035339 +0700 +@@ -2695,8 +2695,7 @@ + #ifdef HAVE_FSTATAT + if ((dir_fd != DEFAULT_DIR_FD) || !follow_symlinks) { + if (HAVE_FSTATAT_RUNTIME) { +- result = fstatat(dir_fd, path->narrow, &st, +- follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW); ++ result = fstatat(dir_fd, path->narrow, &st, 0); + + } else { + fstatat_unavailable = 1; +@@ -3186,8 +3185,6 @@ + + if (HAVE_FACCESSAT_RUNTIME) { + int flags = 0; +- if (!follow_symlinks) +- flags |= AT_SYMLINK_NOFOLLOW; + if (effective_ids) + flags |= AT_EACCESS; + result = faccessat(dir_fd, path->narrow, mode, flags); +@@ -3472,8 +3469,7 @@ + * support dir_fd and follow_symlinks=False. (Hopefully.) + * Until then, we need to be careful what exception we raise. + */ +- result = fchmodat(dir_fd, path->narrow, mode, +- follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW); ++ result = fchmodat(dir_fd, path->narrow, mode, 0); + /* + * But wait! We can't throw the exception without allowing threads, + * and we can't do that in this nested scope. (Macro trickery, sigh.) +@@ -3850,8 +3846,7 @@ + #ifdef HAVE_FCHOWNAT + if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks)) { + if (HAVE_FCHOWNAT_RUNTIME) { +- result = fchownat(dir_fd, path->narrow, uid, gid, +- follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW); ++ result = fchownat(dir_fd, path->narrow, uid, gid, 0); + } else { + fchownat_unsupported = 1; + } +@@ -14727,8 +14722,7 @@ + #ifdef HAVE_FSTATAT + if (HAVE_FSTATAT_RUNTIME) { + Py_BEGIN_ALLOW_THREADS +- result = fstatat(self->dir_fd, path, &st, +- follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW); ++ result = fstatat(self->dir_fd, path, &st, 0); + Py_END_ALLOW_THREADS + } else + +diff -ruwN source/Modules/resource.c source-new/Modules/resource.c +--- source/Modules/resource.c 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/Modules/resource.c 2025-12-09 22:14:30.781035339 +0700 +@@ -216,7 +216,7 @@ + { + struct rlimit rl; + +- if (resource < 0 || resource >= RLIM_NLIMITS) { ++ if (resource < 0 || resource >= RLIMIT_NLIMITS) { + PyErr_SetString(PyExc_ValueError, + "invalid resource specified"); + return NULL; +@@ -244,7 +244,7 @@ + { + struct rlimit rl; + +- if (resource < 0 || resource >= RLIM_NLIMITS) { ++ if (resource < 0 || resource >= RLIMIT_NLIMITS) { + PyErr_SetString(PyExc_ValueError, + "invalid resource specified"); + return NULL; +@@ -292,7 +292,7 @@ + struct rlimit old_limit, new_limit; + int retval; + +- if (resource < 0 || resource >= RLIM_NLIMITS) { ++ if (resource < 0 || resource >= RLIMIT_NLIMITS) { + PyErr_SetString(PyExc_ValueError, + "invalid resource specified"); + return NULL; 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/.gitignore b/recipes/dev/rust/.gitignore new file mode 100644 index 000000000..0a8fbe5e2 --- /dev/null +++ b/recipes/dev/rust/.gitignore @@ -0,0 +1,3 @@ +/llvm-build/ +/llvm-prefix/ +/llvm-source/ diff --git a/recipes/dev/rust/config.toml b/recipes/dev/rust/config.toml new file mode 100644 index 000000000..9674da00f --- /dev/null +++ b/recipes/dev/rust/config.toml @@ -0,0 +1,37 @@ +#TODO: use sed to replace hardcoded paths into env +[llvm] +download-ci-llvm = false +static-libstdcpp = false +targets = "X86" +experimental-targets = "" + +[build] +host = ["x86_64-unknown-redox"] +target = ["x86_64-unknown-redox"] +docs = false +submodules = false +tools = ["src"] +verbose = 1 + +[install] +prefix = "install" +sysconfdir = "etc" + +[rust] +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" +rpath = false +crt-static = false +llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/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" + +[target.x86_64-unknown-linux-gnu] +llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/toolchain/bin/llvm-config" diff --git a/recipes/dev/rust/recipe.toml b/recipes/dev/rust/recipe.toml new file mode 100644 index 000000000..fdf501862 --- /dev/null +++ b/recipes/dev/rust/recipe.toml @@ -0,0 +1,55 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/rust.git" +branch = "redox-2025-10-03" +shallow_clone = true + +[build] +template = "custom" +dependencies = [ + "llvm21", + "zlib", +] +dev-dependencies = [ + "llvm21.dev", + "llvm21.runtime", + "host:llvm21", + "host:llvm21.dev", + "host:llvm21.runtime", +] + +script = """ +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" +# 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" +# Linker flags for stage1 compiler (host -> host) +export RUSTFLAGS_BOOTSTRAP="\ +-Clink-args=-L${COOKBOOK_TOOLCHAIN}/lib \ +-Clink-args=-Wl,-rpath-link,${COOKBOOK_TOOLCHAIN}/lib" +export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}" +export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}" + +# Don't poison the stage1 compiler (host -> host) +unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP +python3 "${COOKBOOK_SOURCE}/x.py" install \ + --config "${COOKBOOK_RECIPE}/config.toml" \ + --jobs $(nproc) + +mkdir -p "${COOKBOOK_STAGE}"/usr +rsync -av --delete "${COOKBOOK_BUILD}"/install/* "${COOKBOOK_STAGE}"/usr/ +# TODO: rustdoc +""" + +[package] +dependencies = [ + "cargo" +] +# 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 new file mode 100644 index 000000000..d283fe2f4 --- /dev/null +++ b/recipes/dev/rustpython/recipe.toml @@ -0,0 +1,30 @@ +[source] +git = "https://github.com/RustPython/RustPython" +# newer rev requires TLS 1.3 (openssl3) and 'bits/libc-header-start.h' for bindgen +rev = "2025-10-13-main-51" +shallow_clone = true +patches = [ + "redox.patch" +] + +[build] +dependencies = [ + "openssl1", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT + +export BUILDTIME_RUSTPYTHONPATH=/lib/rustpython +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export ZLIB_STATIC=1 +cookbook_cargo --features ssl +mkdir -p "${COOKBOOK_STAGE}/lib" +rsync -aE \ + --exclude 'test/' \ + --exclude '__pycache__/' \ + --exclude '*.pyc' \ + --exclude '/README.md' \ + "${COOKBOOK_SOURCE}"/Lib/ "${COOKBOOK_STAGE}/lib/rustpython" +""" diff --git a/recipes/dev/rustpython/redox.patch b/recipes/dev/rustpython/redox.patch new file mode 100644 index 000000000..5edecdeae --- /dev/null +++ b/recipes/dev/rustpython/redox.patch @@ -0,0 +1,22 @@ +diff --git a/stdlib/src/posixsubprocess.rs b/stdlib/src/posixsubprocess.rs +index 7f418c899..4da6a6858 100644 +--- a/stdlib/src/posixsubprocess.rs ++++ b/stdlib/src/posixsubprocess.rs +@@ -441,15 +441,14 @@ fn close_dir_fds(keep: KeepFds<'_>) -> nix::Result<()> { + fn close_filetable_fds(keep: KeepFds<'_>) -> nix::Result<()> { + use nix::fcntl; + use std::os::fd::{FromRawFd, OwnedFd}; +- let fd = fcntl::open( ++ let filetable = fcntl::open( + c"/scheme/thisproc/current/filetable", + fcntl::OFlag::O_RDONLY, + nix::sys::stat::Mode::empty(), + )?; +- let filetable = unsafe { OwnedFd::from_raw_fd(fd) }; + let read_one = || -> nix::Result<_> { + let mut byte = 0; +- let n = nix::unistd::read(filetable.as_raw_fd(), std::slice::from_mut(&mut byte))?; ++ let n = nix::unistd::read(&filetable, std::slice::from_mut(&mut byte))?; + Ok((n > 0).then_some(byte)) + }; + while let Some(c) = read_one()? { diff --git a/recipes/doc/book/recipe.toml b/recipes/doc/book/recipe.toml new file mode 100644 index 000000000..dee8082a6 --- /dev/null +++ b/recipes/doc/book/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/book.git" + +[build] +template = "custom" +script = """ +dir="${COOKBOOK_STAGE}/usr/share/book" +mkdir -pv "${dir}" +mdbook build --dest-dir "${dir}" "${COOKBOOK_SOURCE}" +""" diff --git a/recipes/emulators/dosbox/01_redox.patch b/recipes/emulators/dosbox/01_redox.patch new file mode 100644 index 000000000..9de0f525b --- /dev/null +++ b/recipes/emulators/dosbox/01_redox.patch @@ -0,0 +1,24 @@ +diff -rupNw source-original/include/cross.h source/include/cross.h +--- source-original/include/cross.h 2010-05-10 19:43:54.000000000 +0200 ++++ source/include/cross.h 2018-05-04 21:14:40.397157710 +0200 +@@ -64,7 +64,7 @@ + //Solaris maybe others + #if defined (DB_HAVE_NO_POWF) + #include +-static inline float powf (float x, float y) { return (float) pow (x,y); } ++//static inline float powf (float x, float y) { return (float) pow (x,y); } + #endif + + class Cross { +diff -rupNw source-original/src/gui/sdlmain.cpp source/src/gui/sdlmain.cpp +--- source-original/src/gui/sdlmain.cpp 2010-05-10 19:43:54.000000000 +0200 ++++ source/src/gui/sdlmain.cpp 2018-05-04 21:15:31.937672555 +0200 +@@ -1518,7 +1518,7 @@ void Config_Add_SDL() { + Pstring = sdl_sec->Add_path("mapperfile",Property::Changeable::Always,MAPPERFILE); + Pstring->Set_help("File used to load/save the key/event mappings from. Resetmapper only works with the defaul value."); + +- Pbool = sdl_sec->Add_bool("usescancodes",Property::Changeable::Always,true); ++ Pbool = sdl_sec->Add_bool("usescancodes",Property::Changeable::Always,false); + Pbool->Set_help("Avoid usage of symkeys, might not work on all operating systems."); + } + diff --git a/recipes/emulators/dosbox/icon.png b/recipes/emulators/dosbox/icon.png new file mode 100644 index 000000000..919437011 Binary files /dev/null and b/recipes/emulators/dosbox/icon.png differ diff --git a/recipes/emulators/dosbox/manifest b/recipes/emulators/dosbox/manifest new file mode 100644 index 000000000..3403b71b2 --- /dev/null +++ b/recipes/emulators/dosbox/manifest @@ -0,0 +1,4 @@ +name=DOSBox +category=Games +binary=/bin/dosbox +icon=/ui/icons/apps/dosbox.png diff --git a/recipes/emulators/dosbox/recipe.toml b/recipes/emulators/dosbox/recipe.toml new file mode 100644 index 000000000..61e31fc94 --- /dev/null +++ b/recipes/emulators/dosbox/recipe.toml @@ -0,0 +1,33 @@ +[source] +tar = "https://sourceforge.net/projects/dosbox/files/dosbox/0.74-3/dosbox-0.74-3.tar.gz/download" +blake3 = "8bc50ffdba20579fb3080a0dca32cb939c8a3c19259aed026482c6ac069b0007" +patches = ["01_redox.patch"] +script = """ +./autogen.sh +GNU_CONFIG_GET config.sub +""" + +[build] +dependencies = [ + "liborbital", + "sdl1", +] +template = "custom" +script = """ +DYNAMIC_INIT +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" +export CPPFLAGS="${CPPFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" +export LDFLAGS+=" -lorbital" +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-opengl + --disable-sdltest + --with-sdl-prefix="${COOKBOOK_SYSROOT}" +) +cookbook_configure + +mkdir -pv "${COOKBOOK_STAGE}/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/dosbox" + +mkdir -pv "${COOKBOOK_STAGE}/ui/icons/apps" +cp -v "${COOKBOOK_RECIPE}/icon.png" "${COOKBOOK_STAGE}/ui/icons/apps/dosbox.png" +""" diff --git a/recipes/emulators/flycast/recipe.toml b/recipes/emulators/flycast/recipe.toml new file mode 100644 index 000000000..27ff9a3d2 --- /dev/null +++ b/recipes/emulators/flycast/recipe.toml @@ -0,0 +1,59 @@ +[source] +git = "https://github.com/jackpot51/flycast.git" + +[build] +template = "custom" +dependencies = [ + "curl", + "libiconv", + "liborbital", + "mesa", + "nghttp2", + "openssl1", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/usr/include/SDL2" +export CXXFLAGS="${CXXFLAGS} -D_GLIBCXX_USE_C99_MATH_TR1=1 -I${COOKBOOK_SYSROOT}/usr/include/SDL2" +#TODO: don't use this +export SDL_LIBS="-lSDL2 -lorbital $("${TARGET}-pkg-config" --libs osmesa) -lstdc++" +#TODO: don't add curl +export SDL_LIBS="${SDL_LIBS} -lcurl -lnghttp2 -lssl -lcrypto" +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_VERBOSE_MAKEFILE=On + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_BUILD_TYPE=RelWithDebInfo + -DCMAKE_INSTALL_PREFIX="/usr" + -DCMAKE_SYSTEM_NAME=Generic + -DCMAKE_SYSTEM_PROCESSOR="$(echo "${TARGET}" | cut -d - -f1)" + -DREDOX=1 + -DUNIX=1 + -DUSE_HOST_LIBZIP=OFF + -DUSE_OPENMP=OFF + -DUSE_VULKAN=OFF + -DZLIB_LIBRARY="-lz" + + # Hacks for cmake errors + -DHAVE___INT8_LIBZIP=False + -DHAVE___INT16_LIBZIP=False + -DHAVE___INT32_LIBZIP=False + -DHAVE___INT64_LIBZIP=False + -DHAVE_FICLONERANGE=False + -DHAVE_NULLABLE=False + + # Hack for Threads + -DCMAKE_THREAD_LIBS_INIT="-lc" + -DCMAKE_HAVE_THREADS_LIBRARY=1 + -DCMAKE_USE_WIN32_THREADS_INIT=0 + -DCMAKE_USE_PTHREADS_INIT=1 + -DTHREADS_PREFER_PTHREAD_FLAG=ON + + "${COOKBOOK_SOURCE}" +) +cookbook_configure +# appstream generation broken +rm -rf "${COOKBOOK_STAGE}/usr/share/metainfo" +""" diff --git a/recipes/emulators/libretro-super/recipe.toml b/recipes/emulators/libretro-super/recipe.toml new file mode 100644 index 000000000..b75ec6271 --- /dev/null +++ b/recipes/emulators/libretro-super/recipe.toml @@ -0,0 +1,24 @@ +[source] +git = "https://github.com/jackpot51/libretro-super.git" + +[build] +template = "custom" +dependencies = [ + "zlib", +] +script = """ +CORES=( + snes9x +) + +pushd "${COOKBOOK_SOURCE}" +./libretro-fetch.sh "${CORES[@]}" +popd + +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +export platform=Redox +export STATIC_LINKING=1 +./libretro-build.sh "${CORES[@]}" +./libretro-install.sh "${COOKBOOK_STAGE}/share/libretro" +""" diff --git a/recipes/emulators/mednafen/recipe.toml b/recipes/emulators/mednafen/recipe.toml new file mode 100644 index 000000000..bd51a37db --- /dev/null +++ b/recipes/emulators/mednafen/recipe.toml @@ -0,0 +1,25 @@ +[source] +tar = "https://mednafen.github.io/releases/files/mednafen-1.29.0.tar.xz" +blake3 = "c75c1044cdc9328b2349915a67972d6135c77eb53eb0d995788f22b7daacf79b" +patches = [ + "redox.patch", +] + +[build] +template = "custom" +dependencies = [ + #TODO: libflac + "libiconv", + "liborbital", + "mesa", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT +export SDL_LIBS="-lSDL2 -lorbital $("${TARGET}-pkg-config" --libs osmesa) -lstdc++" +COOKBOOK_CONFIGURE_FLAGS+=( + --without-libflac +) +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/emulators/mednafen/redox.patch b/recipes/emulators/mednafen/redox.patch new file mode 100644 index 000000000..ea58184b0 --- /dev/null +++ b/recipes/emulators/mednafen/redox.patch @@ -0,0 +1,13 @@ +diff -ruwN source-old/src/sound/SwiftResampler.cpp source/src/sound/SwiftResampler.cpp +--- source-old/src/sound/SwiftResampler.cpp 2022-01-18 14:16:23.000000000 -0700 ++++ source/src/sound/SwiftResampler.cpp 2022-12-16 20:01:02.263159230 -0700 +@@ -608,6 +608,9 @@ + + if(hp_tc > 0) + { ++#ifndef M_E ++#define M_E 2.7182818284590452354 ++#endif + double tdm = (pow(2.0 - pow(M_E, -1.0), 1.0 / (hp_tc * output_rate)) - 1.0); + + //printf("%f\n", tdm); diff --git a/recipes/emulators/mgba/recipe.toml b/recipes/emulators/mgba/recipe.toml new file mode 100644 index 000000000..b61b7bd05 --- /dev/null +++ b/recipes/emulators/mgba/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://github.com/mgba-emu/mgba/archive/0.10.5.tar.gz" +blake3 = "a1b9e797a5058f5264d276805aef5643b7ea460916e491a0098ba32d87f1519e" +patches = ["redox.patch"] + +[build] +dependencies = ["libiconv", "liborbital", "libpng", "pixman", "sdl1", "zlib"] +template = "cmake" +cmakeflags = [ + "-DBUILD_QT=OFF", + "-DBUILD_SHARED=ON", + "-DBUILD_STATIC=OFF", + "-DUSE_SQLITE3=OFF", + "-DUSE_DEBUGGERS=OFF", + "-DBUILD_SDL=ON", + "-DSDL_VERSION=1.2", + "-DSDL_LIBRARY=-lSDL -lorbital", +] diff --git a/recipes/emulators/mgba/redox.patch b/recipes/emulators/mgba/redox.patch new file mode 100644 index 000000000..33b1a4daa --- /dev/null +++ b/recipes/emulators/mgba/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN mgba-0.10.5/src/third-party/zlib/contrib/minizip/ioapi.h source/src/third-party/zlib/contrib/minizip/ioapi.h +--- mgba-0.10.5/src/third-party/zlib/contrib/minizip/ioapi.h 2025-03-08 20:09:26.000000000 -0700 ++++ source/src/third-party/zlib/contrib/minizip/ioapi.h 2025-06-13 13:07:13.489517096 -0600 +@@ -50,7 +50,7 @@ + #define ftello64 ftell + #define fseeko64 fseek + #else +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__redox__) + #define fopen64 fopen + #define ftello64 ftello + #define fseeko64 fseeko diff --git a/recipes/emulators/mupen64plus/recipe.toml b/recipes/emulators/mupen64plus/recipe.toml new file mode 100644 index 000000000..f1538f56f --- /dev/null +++ b/recipes/emulators/mupen64plus/recipe.toml @@ -0,0 +1,34 @@ +[source] +tar = "https://github.com/mupen64plus/mupen64plus-core/releases/download/2.6.0/mupen64plus-core-src-2.6.0.tar.gz" +blake3 = "faef6f557b32165adf5ad7f12a22f1dfda98893f59cbf910b697a86e610652a9" + +[build] +template = "custom" +dependencies = [ + "freetype2", + "liborbital", + "libpng", + "mesa", + "mesa-glu", + "sdl2", + "zlib", +] +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +#TODO: support Redox in UNAME +"${COOKBOOK_MAKE}" \ + CROSS_COMPILE="${TARGET}-" \ + GLES_LIB="" \ + GL_CFLAGS="$("${TARGET}-pkg-config" --cflags osmesa)" \ + GL_LDLIBS="$("${TARGET}-pkg-config" --libs osmesa)" \ + HOST_CPU="${TARGET%%-*}" \ + SDL_CFLAGS="$("${TARGET}-pkg-config" --cflags sdl2)" \ + SDL_LDFLAGS="$("${TARGET}-pkg-config" --libs sdl2)" \ + UNAME=Linux \ + USE_GLES=1 \ + V=1 \ + VULKAN=0 \ + -C projects/unix \ + -j "${COOKBOOK_MAKE_JOBS}" \ + all +""" diff --git a/recipes/emulators/retroarch/recipe.toml b/recipes/emulators/retroarch/recipe.toml new file mode 100644 index 000000000..5d6febdbb --- /dev/null +++ b/recipes/emulators/retroarch/recipe.toml @@ -0,0 +1,42 @@ +[source] +git = "https://github.com/jackpot51/retroarch.git" + +[build] +template = "custom" +dependencies = [ + "liborbital", + "libretro-super", + "mesa", + "openssl1", + "sdl2", + "zlib", +] +script = """ +pushd "${COOKBOOK_SOURCE}" +./fetch-submodules.sh +popd + +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +# For now, we will statically link with the snes9x libretro +mkdir -pv "${COOKBOOK_SYSROOT}/lib" +cp -v "${COOKBOOK_SYSROOT}/share/libretro/snes9x_libretro.a" "${COOKBOOK_SYSROOT}/lib/libretro.a" + +COOKBOOK_CONFIGURE_FLAGS=( + --host="${TARGET}" + --prefix="/" + --disable-builtinzlib # conflicts with zlib + --disable-discord # does not link + --disable-dylib + --disable-dynamic + --disable-netplaydiscovery # missing ifaddrs.h + --disable-thread_storage # crash in pthread_setspecific called by sthread_tls_set + --disable-threads # prevents hang + --enable-opengl + --enable-sdl2 + --enable-ssl + --enable-zlib + --with-libretro="-lretro -lstdc++ -lz" +) +cookbook_configure +""" diff --git a/recipes/emulators/rs-nes/recipe.toml b/recipes/emulators/rs-nes/recipe.toml new file mode 100755 index 000000000..26381d899 --- /dev/null +++ b/recipes/emulators/rs-nes/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/rs-nes.git" +#git_upstream = "https://github.com/bgourlie/rs-nes.git" +[build] +template = "cargo" +dependencies = [ + "orbital" +] diff --git a/recipes/emulators/rust64/recipe.toml b/recipes/emulators/rust64/recipe.toml new file mode 100755 index 000000000..47207fc58 --- /dev/null +++ b/recipes/emulators/rust64/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/rust64.git" +#git_upstream = "https://github.com/kondrak/rust64.git" +[build] +template = "cargo" +dependencies = [ + "orbital" +] diff --git a/recipes/emulators/rustual-boy/recipe.toml b/recipes/emulators/rustual-boy/recipe.toml new file mode 100755 index 000000000..076e1ee5c --- /dev/null +++ b/recipes/emulators/rustual-boy/recipe.toml @@ -0,0 +1,16 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/rustual-boy.git" +upstream = "https://github.com/emu-rs/rustual-boy.git" +branch = "redox" + +[build] +template = "custom" +script = """ +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/rustual-boy-cli" +cookbook_cargo +""" + +[package] +dependencies = [ + "orbital", +] \ No newline at end of file diff --git a/recipes/emulators/rvvm/recipe.toml b/recipes/emulators/rvvm/recipe.toml new file mode 100644 index 000000000..c98185fb1 --- /dev/null +++ b/recipes/emulators/rvvm/recipe.toml @@ -0,0 +1,36 @@ +[source] +git = "https://github.com/LekKit/RVVM.git" +upstream = "https://github.com/LekKit/RVVM" + +[build] +template = "custom" + +# SDL2 is tough to link statically, use SDL1 for now +dependencies = [ + "sdl1", + "liborbital", +] + +script = """ + +export BUILDDIR="${COOKBOOK_BUILD}" +export DESTDIR="${COOKBOOK_STAGE}" + +# Redox currently doesn't support dynamic library loading +export LDFLAGS="${LDFLAGS} $(pkg-config --libs sdl)" + +# Networking is currently broken on Redox (missing setsockopt?) +export USE_NET=0 + +# Use SDL1 +export USE_SDL=1 + +# Building a shared library is currently broken on Redox +export USE_LIB=0 + +export OS=Redox + +# Let's goo +"${COOKBOOK_MAKE}" install -C "${COOKBOOK_SOURCE}" + +""" diff --git a/recipes/emulators/scummvm/recipe.toml b/recipes/emulators/scummvm/recipe.toml new file mode 100644 index 000000000..fe8b377b8 --- /dev/null +++ b/recipes/emulators/scummvm/recipe.toml @@ -0,0 +1,34 @@ +[source] +tar = "https://downloads.scummvm.org/frs/scummvm/2.0.0/scummvm-2.0.0.tar.xz" +blake3 = "02e6791fd43ad3cb4238c07d23350ca1459a0f692689e585dba1d46648f64327" +patches = ["redox.patch"] +script = """ +GNU_CONFIG_GET config.sub +""" + +[build] +template = "custom" +dependencies = [ + "sdl1", + "liborbital", + "freetype2", + "zlib", + "libpng", +] +script = """ +DYNAMIC_INIT + +export LDFLAGS+=" -lorbital" +COOKBOOK_CONFIGURE_FLAGS=( + --host="${TARGET}" + --prefix="/usr" + --with-sdl-prefix="${COOKBOOK_SYSROOT}" + --with-freetype2-prefix="${COOKBOOK_SYSROOT}" + --with-png-prefix="${COOKBOOK_SYSROOT}" + --with-zlib-prefix="${COOKBOOK_SYSROOT}" + --disable-timidity + --disable-mt32emu +) + +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/emulators/scummvm/redox.patch b/recipes/emulators/scummvm/redox.patch new file mode 100644 index 000000000..153b7f5e8 --- /dev/null +++ b/recipes/emulators/scummvm/redox.patch @@ -0,0 +1,24 @@ +diff -rupNw source-original/common/stream.cpp source/common/stream.cpp +--- source-original/common/stream.cpp 2017-12-08 23:21:10.000000000 +0100 ++++ source/common/stream.cpp 2018-12-06 02:01:50.454108198 +0100 +@@ -95,7 +95,7 @@ bool MemoryReadStream::seek(int32 offs, + break; + } + // Post-Condition +- assert(_pos <= _size); ++ //assert(_pos <= _size); + + // Reset end-of-stream flag on a successful seek + _eos = false; +diff -rupNw source-original/configure source/configure +--- source-original/configure 2017-12-08 23:21:13.000000000 +0100 ++++ source/configure 2018-12-06 02:01:50.458108239 +0100 +@@ -3610,7 +3610,7 @@ case $_host_os in + amigaos* | cygwin* | dreamcast | ds | gamecube | mingw* | n64 | ps2 | ps3 | psp2 | psp | wii | wince) + _posix=no + ;; +- 3ds | android | androidsdl | beos* | bsd* | darwin* | freebsd* | gnu* | gph-linux | haiku* | hpux* | iphone | ios7 | irix*| k*bsd*-gnu* | linux* | maemo | mint* | netbsd* | openbsd* | riscos | solaris* | sunos* | uclinux* | webos) ++ 3ds | android | androidsdl | beos* | bsd* | darwin* | freebsd* | gnu* | gph-linux | haiku* | hpux* | iphone | ios7 | irix*| k*bsd*-gnu* | linux* | maemo | mint* | netbsd* | openbsd* | riscos | redox* | solaris* | sunos* | uclinux* | webos) + _posix=yes + ;; + os2-emx*) diff --git a/recipes/fonts/dejavu/recipe.toml b/recipes/fonts/dejavu/recipe.toml new file mode 100644 index 000000000..c97c6db17 --- /dev/null +++ b/recipes/fonts/dejavu/recipe.toml @@ -0,0 +1,15 @@ +[source] +tar="http://sourceforge.net/projects/dejavu/files/dejavu/2.37/dejavu-fonts-ttf-2.37.tar.bz2" +blake3="b702bac8a0f8e0802758549da3b4d8041c3c83c3894e1e8a960eab53af18cce8" + +[build] +template = "custom" +script = """ +#TODO: Mono style included in Sans directory +for style in Sans Serif +do + DEST="${COOKBOOK_STAGE}/ui/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 new file mode 100644 index 000000000..a9a67d20d --- /dev/null +++ b/recipes/fonts/freefont/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar="https://ftp.gnu.org/gnu/freefont/freefont-otf-20120503.tar.gz" +blake3="e950397741d84981106cf648fbc143c7827b61d637c86c916232d47aabdfe253" + +[build] +template = "custom" +script = """ +for style in Mono Sans Serif +do + DEST="${COOKBOOK_STAGE}/ui/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 new file mode 100644 index 000000000..5f68ac6f4 --- /dev/null +++ b/recipes/fonts/ibm-plex/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar="https://github.com/IBM/plex/archive/refs/tags/v6.3.0.tar.gz" +blake3="6c67f5bf8069762eea1e31f5cca5b4e6f57ea1151b34b338046c7976072ccdef" + +[build] +template = "custom" +script = """ +for style in Mono Sans Serif +do + DEST="${COOKBOOK_STAGE}/ui/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 new file mode 100644 index 000000000..a6dab3aeb --- /dev/null +++ b/recipes/fonts/intel-one-mono/recipe.toml @@ -0,0 +1,11 @@ +[source] +tar="https://github.com/intel/intel-one-mono/archive/refs/tags/V1.3.0.tar.gz" +blake3="9caff71b0a9fe8627253c55889964612ea4ae144584a283cd2fe88b7a14a4140" + +[build] +template = "custom" +script = """ +DEST="${COOKBOOK_STAGE}/ui/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 new file mode 100644 index 000000000..7076bb1d4 --- /dev/null +++ b/recipes/fonts/noto-color-emoji/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://github.com/googlefonts/noto-emoji" +rev = "e8073ab740292f8d5f19b5de144087ac58044d06" +[build] +template = "custom" +script = """ +DEST="${COOKBOOK_STAGE}/ui/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 new file mode 100644 index 000000000..428dabd70 --- /dev/null +++ b/recipes/fonts/ttf-hack/recipe.toml @@ -0,0 +1,11 @@ +[source] +tar = "https://github.com/source-foundry/Hack/releases/download/v3.003/Hack-v3.003-ttf.tar.xz" +blake3 = "acd40f61f6f512b0808d4bf530ab4aeb5a8ec3aa1f65bf5a1d08964d1bc3d044" + +[build] +template = "custom" +script = """ +for file in "${COOKBOOK_SOURCE}"/*.ttf; do + install -D -m 644 "$file" "${COOKBOOK_STAGE}/ui/fonts/Mono/Hack/$(basename "$file")" +done +""" \ No newline at end of file diff --git a/recipes/games/classicube/manifest b/recipes/games/classicube/manifest new file mode 100644 index 000000000..681eca1be --- /dev/null +++ b/recipes/games/classicube/manifest @@ -0,0 +1,4 @@ +name=ClassiCube +category=Games +binary=/usr/games/classicube/ClassiCube +icon=/ui/icons/apps/classicube.png diff --git a/recipes/games/classicube/recipe.toml b/recipes/games/classicube/recipe.toml new file mode 100644 index 000000000..083f334be --- /dev/null +++ b/recipes/games/classicube/recipe.toml @@ -0,0 +1,25 @@ +[source] +git = "https://github.com/jackpot51/ClassiCube.git" + +[build] +template = "custom" +dependencies = [ + "liborbital", + "mesa", + "sdl2", + "zlib", +] +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" -C src redox + +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}/ui/icons/apps" +cp -v "${COOKBOOK_SOURCE}/misc/CCicon.png" "${COOKBOOK_STAGE}/ui/icons/apps/classicube.png" +""" diff --git a/recipes/games/devilutionx/recipe.toml b/recipes/games/devilutionx/recipe.toml new file mode 100644 index 000000000..d6ac4ff73 --- /dev/null +++ b/recipes/games/devilutionx/recipe.toml @@ -0,0 +1,37 @@ +[source] +tar = "https://github.com/diasurgical/devilutionX/archive/refs/tags/1.5.4.tar.gz" +blake3 = "d4a61ff3a7c69d86a29158918aad48ab9c4866c6a22a3e8da5feadbb7d23b3ca" + +[build] +template = "custom" +dependencies = [ + "bzip2", + "libiconv", + "liborbital", + "sdl1", + "zlib", +] +script = """ +DYNAMIC_INIT + +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DBUILD_TESTING=OFF + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=ON + -DCMAKE_CXX_COMPILER="${TARGET}-g++" + -DCMAKE_C_COMPILER="${TARGET}-gcc" + -DCMAKE_INSTALL_PREFIX="/" + -DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}" + -DCMAKE_VERBOSE_MAKEFILE=ON + -DDEVILUTIONX_SYSTEM_BZIP2=ON + -DDEVILUTIONX_SYSTEM_ZLIB=ON + -DNONET=ON + -DSDL_LIBRARY="-lSDL -lorbital" + -DUSE_SDL1=ON + "${COOKBOOK_SOURCE}" +) +cookbook_configure +mkdir -v "${COOKBOOK_STAGE}/bin" +cp -v devilutionx "${COOKBOOK_STAGE}/bin" +""" diff --git a/recipes/games/eduke32/icon.png b/recipes/games/eduke32/icon.png new file mode 100644 index 000000000..4cbfd1650 Binary files /dev/null and b/recipes/games/eduke32/icon.png differ diff --git a/recipes/games/eduke32/manifest b/recipes/games/eduke32/manifest new file mode 100644 index 000000000..27dfe096c --- /dev/null +++ b/recipes/games/eduke32/manifest @@ -0,0 +1,4 @@ +name=EDuke32 +category=Games +binary=/usr/games/eduke32 +icon=/ui/icons/apps/eduke32.png diff --git a/recipes/games/eduke32/recipe.toml b/recipes/games/eduke32/recipe.toml new file mode 100644 index 000000000..2cc38c167 --- /dev/null +++ b/recipes/games/eduke32/recipe.toml @@ -0,0 +1,36 @@ +[source] +tar = "https://dukeworld.com/eduke32/synthesis/20181010-7067/eduke32_src_20181010-7067.tar.xz" +blake3 = "b0b759fe9ca51849f42669e4832ae1ae1f9ad7938529769108f7cf6a6a176558" +patches = ["redox.patch"] + +[build] +dependencies = [ + "sdl1", + "sdl1-mixer", + "liborbital", + "libiconv", + "libogg", + "libvorbis", +] +template = "custom" +script = """ +DYNAMIC_INIT + +# Copy source to build directory +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" +export SDLCONFIG="${COOKBOOK_SYSROOT}/bin/sdl-config --prefix=${COOKBOOK_SYSROOT}" + +PLATFORM=REDOX "${COOKBOOK_MAKE}" -j"$($NPROC)" + +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}/ui/icons/apps" +cp -v "${COOKBOOK_RECIPE}/icon.png" "${COOKBOOK_STAGE}/ui/icons/apps/eduke32.png" +""" diff --git a/recipes/games/eduke32/redox.patch b/recipes/games/eduke32/redox.patch new file mode 100644 index 000000000..5d5fa8af3 --- /dev/null +++ b/recipes/games/eduke32/redox.patch @@ -0,0 +1,158 @@ +diff -rupwN source/Common.mak source-new/Common.mak +--- source/Common.mak 2018-07-14 15:36:44.000000000 -0600 ++++ source-new/Common.mak 2023-01-20 10:38:24.948044222 -0700 +@@ -93,7 +93,7 @@ endif + + ##### Makefile meta-settings + +-PRETTY_OUTPUT := 1 ++PRETTY_OUTPUT := 0 + + NULLSTREAM := /dev/null + +@@ -172,6 +172,10 @@ ifeq ($(PLATFORM),WII) + CCFULLPATH = $(DEVKITPPC)/bin/$(CC) + endif + ++ifeq ($(PLATFORM),REDOX) ++ CROSS := $(TARGET)- ++endif ++ + CC := $(CROSS)gcc$(CROSS_SUFFIX) + CXX := $(CROSS)g++$(CROSS_SUFFIX) + +@@ -383,6 +387,16 @@ else ifeq ($(PLATFORM),$(filter $(PLATFO + override NOASM := 1 + else ifeq ($(PLATFORM),$(filter $(PLATFORM),BEOS SKYOS)) + override NOASM := 1 ++else ifeq ($(PLATFORM),REDOX) ++ override HAVE_FLAC := 0 ++ override HAVE_GTK2 := 0 ++ override HAVE_XMP := 0 ++ override MIXERTYPE := SDL ++ override NETCODE := 0 ++ override NOASM := 1 ++ override USE_OPENGL := 0 ++ OPTOPT := -mtune=generic ++ SDL_TARGET := 1 + endif + + ifneq (i386,$(strip $(IMPLICIT_ARCH))) +@@ -868,7 +882,7 @@ ifeq ($(RENDERTYPE),SDL) + SDLCONFIG := sdl2-config + SDLNAME := SDL2 + else ifeq ($(SDL_TARGET),1) +- SDLCONFIG := sdl-config ++ #SDLCONFIG := sdl-config + SDLNAME := SDL + ifeq (0,$(RELEASE)) + COMPILERFLAGS += -DNOSDLPARACHUTE +@@ -957,9 +971,11 @@ else ifeq ($(PLATFORM),WII) + LIBS += -laesnd_tueidj -lfat -lwiiuse -lbte -lwiikeyboard -logc + else ifeq ($(SUBPLATFORM),LINUX) + LIBS += -lrt ++else ifeq ($(PLATFORM),REDOX) ++ LIBS += -lorbital -lvorbisfile -lvorbis -logg + endif + +-ifeq (,$(filter $(PLATFORM),WINDOWS WII)) ++ifeq (,$(filter $(PLATFORM),WINDOWS WII REDOX)) + ifneq ($(PLATFORM),BSD) + LIBS += -ldl + endif +Binary files source/.Common.mak.swp and source-new/.Common.mak.swp differ +diff -rupwN source/source/build/include/compat.h source-new/source/build/include/compat.h +--- source/source/build/include/compat.h 2018-10-06 23:21:24.000000000 -0600 ++++ source-new/source/build/include/compat.h 2023-01-20 10:31:10.843745693 -0700 +@@ -7,6 +7,9 @@ + + #pragma once + ++# define B_LITTLE_ENDIAN 1 ++# define B_BIG_ENDIAN 0 ++ + #ifdef _WIN32 + # include "windows_inc.h" + #endif +@@ -400,6 +403,7 @@ defined __x86_64__ || defined __amd64__ + #include + #include + #include ++#include + + #include + #include +@@ -542,8 +546,8 @@ typedef FILE BFILE; + # define BS_IWRITE S_IWUSR + # define BS_IREAD S_IRUSR + #else +-# define BS_IWRITE S_IWRITE +-# define BS_IREAD S_IREAD ++# define BS_IWRITE S_IWUSR ++# define BS_IREAD S_IRUSR + #endif + + #if defined(__cplusplus) && defined(_MSC_VER) +diff -rupwN source/source/build/src/baselayer.cpp source-new/source/build/src/baselayer.cpp +--- source/source/build/src/baselayer.cpp 2018-10-06 23:21:43.000000000 -0600 ++++ source-new/source/build/src/baselayer.cpp 2023-01-20 10:31:49.591772332 -0700 +@@ -498,7 +498,7 @@ int32_t baselayer_init(void) + + void maybe_redirect_outputs(void) + { +-#if !(defined __APPLE__ && defined __BIG_ENDIAN__) ++#if 0 + char *argp; + + // pipe standard outputs to files +diff -rupwN source/source/build/src/sdlayer.cpp source-new/source/build/src/sdlayer.cpp +--- source/source/build/src/sdlayer.cpp 2018-10-06 23:23:44.000000000 -0600 ++++ source-new/source/build/src/sdlayer.cpp 2023-01-20 10:30:49.223730830 -0700 +@@ -305,7 +305,7 @@ void wm_setapptitle(const char *name) + // + + /* XXX: libexecinfo could be used on systems without gnu libc. */ +-#if !defined _WIN32 && defined __GNUC__ && !defined __OpenBSD__ && !(defined __APPLE__ && defined __BIG_ENDIAN__) && !defined GEKKO && !defined EDUKE32_TOUCH_DEVICES && !defined __OPENDINGUX__ ++#if 0 + # define PRINTSTACKONSEGV 1 + # include + #endif +diff -rupwN source/source/duke3d/src/common.cpp source-new/source/duke3d/src/common.cpp +--- source/source/duke3d/src/common.cpp 2018-10-06 23:20:23.000000000 -0600 ++++ source-new/source/duke3d/src/common.cpp 2023-01-20 10:30:49.223730830 -0700 +@@ -1173,6 +1173,7 @@ int32_t S_OpenAudio(const char *fn, char + Bfree(testfn); + return origfp; + } ++#endif + + void Duke_CommonCleanup(void) + { +@@ -1181,4 +1182,3 @@ void Duke_CommonCleanup(void) + DO_FREE_AND_NULL(g_rtsNamePtr); + } + +-#endif +diff -rupwN source/source/duke3d/src/game.cpp source-new/source/duke3d/src/game.cpp +--- source/source/duke3d/src/game.cpp 2018-10-06 23:23:48.000000000 -0600 ++++ source-new/source/duke3d/src/game.cpp 2023-01-20 10:30:49.223730830 -0700 +@@ -6697,7 +6697,7 @@ MAIN_LOOP_RESTART: + static char buf[128]; + #ifndef GEKKO + int32_t flag = 1; +- ioctl(0, FIONBIO, &flag); ++ //ioctl(0, FIONBIO, &flag); + #endif + if ((nb = read(0, &ch, 1)) > 0 && bufpos < sizeof(buf)) + { +diff -rupwN source/source/enet/include/enet/unix.h source-new/source/enet/include/enet/unix.h +--- source/source/enet/include/enet/unix.h 2014-06-16 17:16:08.000000000 -0600 ++++ source-new/source/enet/include/enet/unix.h 2023-01-20 10:30:49.223730830 -0700 +@@ -6,6 +6,7 @@ + #define __ENET_UNIX_H__ + + #include ++#include + #include + #include + #if defined(GEKKO) diff --git a/recipes/games/freeciv/recipe.toml b/recipes/games/freeciv/recipe.toml new file mode 100644 index 000000000..3f3493fde --- /dev/null +++ b/recipes/games/freeciv/recipe.toml @@ -0,0 +1,51 @@ +[source] +tar = "https://files.freeciv.org/stable/freeciv-3.1.4.tar.xz" +blake3 = "212630af5e50fb72662ca62a71cdd57318d0cf309b53e46377dd24c8199923a4" + +[build] +dependencies = [ + "curl", + "freetype2", + "libiconv", + "libicu", + "liborbital", + "libjpeg", + "libpng", + "openssl1", + "mesa", + "nghttp2", + "sdl2", + "sdl2-gfx", + "sdl2-image", + "sdl2-ttf", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +export CURL_LIBS="-lcurl -lnghttp2 -lssl -lcrypto" +export CURL_MIME_API_LIBS="${CURL_LIBS}" +export ICU_LIBS="-licuuc -licudata -lstdc++" +export SDL2_LIBS="\ + -lSDL2_gfx \ + -lSDL2_image \ + -lSDL2_ttf \ + -lSDL2 \ + -lorbital \ + $("${PKG_CONFIG}" --libs osmesa) \ + -ljpeg \ + -lpng \ + -lz \ +" +COOKBOOK_CONFIGURE_FLAGS+=( + --enable-fcdb=no + --enable-fcmp=no + --enable-ipv6=no + --enable-client=sdl2 + ac_cv_lib_SDL2_gfx_rotozoomSurface=yes + ac_cv_lib_SDL2_image_IMG_Load=yes + ac_cv_lib_SDL2_ttf_TTF_OpenFont=yes +) +export V=1 +cookbook_configure +""" diff --git a/recipes/games/freedoom/recipe.toml b/recipes/games/freedoom/recipe.toml new file mode 100644 index 000000000..fdba3bed0 --- /dev/null +++ b/recipes/games/freedoom/recipe.toml @@ -0,0 +1,33 @@ +[source] +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" +for file in "${COOKBOOK_SOURCE}/"*.wad +do + game="$(basename "$file" .wad)" + + wad="/share/games/doom/$game.wad" + cp -v "$file" "${COOKBOOK_STAGE}$wad" + + bin="/usr/games/$game" + echo "#!/bin/ion" > "${COOKBOOK_STAGE}$bin" + 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" + + cp -v "${COOKBOOK_SOURCE}/$game.png" "${COOKBOOK_STAGE}/ui/icons/apps/$game.png" +done +""" + +[package] +dependencies = [ + "ion", + "prboom", +] diff --git a/recipes/games/game-2048/recipe.toml b/recipes/games/game-2048/recipe.toml new file mode 100644 index 000000000..f1ff19de1 --- /dev/null +++ b/recipes/games/game-2048/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/2048-rs.git" +#git_upstream = "https://github.com/pierrechevalier83/2048-rs.git" +[build] +template = "cargo" diff --git a/recipes/games/gigalomania/manifest b/recipes/games/gigalomania/manifest new file mode 100644 index 000000000..94fb93b69 --- /dev/null +++ b/recipes/games/gigalomania/manifest @@ -0,0 +1,4 @@ +name=Gigalomania +category=Games +binary=/usr/games/gigalomania/gigalomania +icon=/ui/icons/apps/gigalomania.png diff --git a/recipes/games/gigalomania/recipe.toml b/recipes/games/gigalomania/recipe.toml new file mode 100644 index 000000000..5a000cba2 --- /dev/null +++ b/recipes/games/gigalomania/recipe.toml @@ -0,0 +1,36 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/gigalomania.git" +branch = "master" + +[build] +template = "custom" +dependencies = [ + "sdl1-mixer", + "sdl1-image", + "sdl1", + "liborbital", + "libogg", + "libpng", + "libjpeg", + "libvorbis", + "zlib" +] +script = """ +DYNAMIC_INIT + +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +export CPPHOST="${TARGET}-g++" + +"${REDOX_MAKE}" all -j"$(${NPROC})" + +"${REDOX_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}/ui/icons/apps" +cp -v "gigalomania64.png" "${COOKBOOK_STAGE}/ui/icons/apps/gigalomania.png" +""" \ No newline at end of file diff --git a/recipes/games/hematite/recipe.toml b/recipes/games/hematite/recipe.toml new file mode 100644 index 000000000..4034a0713 --- /dev/null +++ b/recipes/games/hematite/recipe.toml @@ -0,0 +1,22 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/hematite.git" +branch = "redox" +upstream = "https://github.com/PistonDevelopers/hematite.git" + +[build] +template = "custom" +dependencies = [ + "mesa", + "zlib" +] +script = """ +cargo rustc \ + --target "$TARGET" \ + --release \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + -- \ + -L "${COOKBOK_SYSROOT}/lib" \ + -C link-args="-Wl,-Bstatic $("${TARGET}-pkg-config" --libs osmesa) -lz -lstdc++ -lc -lgcc" +mkdir -pv "${COOKBOOK_STAGE}/bin" +cp -v "target/${TARGET}/release/hematite" "${COOKBOOK_STAGE}/bin/hematite" +""" diff --git a/recipes/games/neverball/manifest-neverball b/recipes/games/neverball/manifest-neverball new file mode 100644 index 000000000..431aadb30 --- /dev/null +++ b/recipes/games/neverball/manifest-neverball @@ -0,0 +1,4 @@ +name=Neverball +category=Games +binary=/usr/games/neverball/neverball +icon=/ui/icons/apps/neverball.png diff --git a/recipes/games/neverball/manifest-neverputt b/recipes/games/neverball/manifest-neverputt new file mode 100644 index 000000000..debe4f673 --- /dev/null +++ b/recipes/games/neverball/manifest-neverputt @@ -0,0 +1,4 @@ +name=Neverputt +category=Games +binary=/usr/games/neverball/neverputt +icon=/ui/icons/apps/neverputt.png diff --git a/recipes/games/neverball/recipe.toml b/recipes/games/neverball/recipe.toml new file mode 100644 index 000000000..7a525e40a --- /dev/null +++ b/recipes/games/neverball/recipe.toml @@ -0,0 +1,54 @@ +[source] +tar = "https://neverball.org/neverball-1.6.0.tar.gz" +blake3 = "74f3b68595f475e89fd2ca8b5fc349837ff36fbbe141f321dfc232dbf8fccf51" +patches = ["redox.patch"] + +[build] +dependencies = [ + "expat", + "freetype2", + "libdrm", + "libjpeg", + "libogg", + "liborbital", + "libpng", + "libvorbis", + "mesa", + "sdl2", + "sdl2-ttf", + "zlib", +] +template = "custom" +script = """ +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" + +# Copy assets +cp -rv data "${COOKBOOK_STAGE}/usr/games/neverball" + +# For each game +for bin in neverball neverputt +do + # Install binary + "${STRIP}" -v "${bin}" -o "${COOKBOOK_STAGE}/usr/games/neverball/${bin}" + + # Install manifest + cp -v "${COOKBOOK_RECIPE}/manifest-${bin}" "${COOKBOOK_STAGE}/ui/apps/${bin}" + + # Install icon + cp -v "dist/${bin}_64.png" "${COOKBOOK_STAGE}/ui/icons/apps/${bin}.png" +done +""" diff --git a/recipes/games/neverball/redox.patch b/recipes/games/neverball/redox.patch new file mode 100644 index 000000000..7457ccff7 --- /dev/null +++ b/recipes/games/neverball/redox.patch @@ -0,0 +1,87 @@ +diff -ruwN neverball-1.6.0/Makefile source/Makefile +--- neverball-1.6.0/Makefile 2014-05-21 07:21:43.000000000 -0600 ++++ source/Makefile 2023-09-09 20:03:22.113348963 -0600 +@@ -38,11 +38,11 @@ + ifeq ($(DEBUG),1) + CFLAGS := -g + CXXFLAGS := -g +- CPPFLAGS := ++ CPPFLAGS += + else + CFLAGS := -O2 + CXXFLAGS := -O2 +- CPPFLAGS := -DNDEBUG ++ CPPFLAGS += -DNDEBUG + endif + + #------------------------------------------------------------------------------ +@@ -64,8 +64,8 @@ + + # Preprocessor... + +-SDL_CPPFLAGS := $(shell sdl2-config --cflags) +-PNG_CPPFLAGS := $(shell libpng-config --cflags) ++SDL_CPPFLAGS := $(shell $(PKG_CONFIG) sdl2 --cflags) ++PNG_CPPFLAGS := $(shell $(PKG_CONFIG) libpng --cflags) + + ALL_CPPFLAGS := $(SDL_CPPFLAGS) $(PNG_CPPFLAGS) -Ishare + +@@ -124,8 +124,8 @@ + #------------------------------------------------------------------------------ + # Libraries + +-SDL_LIBS := $(shell sdl2-config --libs) +-PNG_LIBS := $(shell libpng-config --libs) ++SDL_LIBS := $(shell $(PKG_CONFIG) sdl2 --libs) ++PNG_LIBS := $(shell $(PKG_CONFIG) libpng --libs) + + ifeq ($(ENABLE_FS),stdio) + FS_LIBS := +@@ -148,7 +148,7 @@ + endif + endif + +-OGL_LIBS := -lGL ++OGL_LIBS := -lorbital $(shell $(PKG_CONFIG) osmesa --libs) + + ifeq ($(PLATFORM),mingw) + ifneq ($(ENABLE_NLS),0) +@@ -175,8 +175,8 @@ + /usr/local/lib)) + endif + +-OGG_LIBS := -lvorbisfile +-TTF_LIBS := -lSDL2_ttf ++OGG_LIBS := $(shell $(PKG_CONFIG) ogg vorbis vorbisfile --libs) ++TTF_LIBS := $(shell $(PKG_CONFIG) SDL2_ttf --libs) -lfreetype + + ALL_LIBS := $(HMD_LIBS) $(TILT_LIBS) $(INTL_LIBS) $(TTF_LIBS) \ + $(OGG_LIBS) $(SDL_LIBS) $(OGL_LIBS) $(BASE_LIBS) +@@ -411,11 +411,11 @@ + + all : $(BALL_TARG) $(PUTT_TARG) $(MAPC_TARG) sols locales desktops + +-ifeq ($(ENABLE_HMD),libovr) ++#ifeq ($(ENABLE_HMD),libovr) + LINK := $(CXX) $(ALL_CXXFLAGS) +-else +-LINK := $(CC) $(ALL_CFLAGS) +-endif ++#else ++#LINK := $(CC) $(ALL_CFLAGS) ++#endif + + $(BALL_TARG) : $(BALL_OBJS) + $(LINK) -o $(BALL_TARG) $(BALL_OBJS) $(LDFLAGS) $(ALL_LIBS) +diff -ruwN neverball-1.6.0/share/text.h source/share/text.h +--- neverball-1.6.0/share/text.h 2014-05-21 07:21:43.000000000 -0600 ++++ source/share/text.h 2023-09-09 20:02:10.117248865 -0600 +@@ -15,7 +15,7 @@ + + /*---------------------------------------------------------------------------*/ + +-char text_input[MAXSTR]; ++extern char text_input[MAXSTR]; + + void text_input_start(void (*cb)(int typing)); + void text_input_stop(void); diff --git a/recipes/games/openjazz/recipe.toml b/recipes/games/openjazz/recipe.toml new file mode 100644 index 000000000..676b85c69 --- /dev/null +++ b/recipes/games/openjazz/recipe.toml @@ -0,0 +1,44 @@ +[source] +tar = "https://github.com/AlisterT/openjazz/archive/refs/tags/20240919.tar.gz" +blake3 = "c419066dd7bf50510c5ef0746fc47450ab8f5a17a0010a1bc0ad67d0e63538da" + +[build] +template = "custom" +dependencies = [ + "liborbital", + "libiconv", + "sdl1", + "zlib", +] +script = """ +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include" +export CXXFLAGS="${CXXFLAGS} -I${COOKBOOK_SYSROOT}/include" +export DATAPATH="/usr/share/games/openjazz/" + +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=ON + -DCMAKE_CXX_COMPILER="${TARGET}-g++" + -DCMAKE_C_COMPILER="${TARGET}-gcc" + -DCMAKE_INSTALL_PREFIX="/" + -DCMAKE_VERBOSE_MAKEFILE=ON + -DLEGACY_SDL=ON + -DSDL_LIBRARY="-lSDL -lorbital" + -DNETWORK=ON + "${COOKBOOK_SOURCE}" +) + +cookbook_configure + +ASSETS_DIR="${COOKBOOK_STAGE}${DATAPATH}" +INSTALL_DIR="${COOKBOOK_STAGE}/usr/games" +ICON_DIR="${COOKBOOK_STAGE}/ui/icons/apps" +MAN_ROOT="${COOKBOOK_STAGE}/usr/share/man" +mkdir -p "${ASSETS_DIR}" "${INSTALL_DIR}" "${ICON_DIR}" "${MAN_ROOT}" + +cp -v "${COOKBOOK_SOURCE}/res/unix/OpenJazz.png" "${ICON_DIR}" +# TODO: Man pages need to be compiled +# cp -v "${COOKBOOK_SOURCE}/res/unix/OpenJazz.6" "${MAN_ROOT}/man6" +mv OpenJazz "${INSTALL_DIR}" +""" diff --git a/recipes/games/openjk/recipe.toml b/recipes/games/openjk/recipe.toml new file mode 100644 index 000000000..b1c8322e0 --- /dev/null +++ b/recipes/games/openjk/recipe.toml @@ -0,0 +1,60 @@ +[source] +git = "https://github.com/jackpot51/OpenJK" +upstream = "https://github.com/JACoders/OpenJK.git" + +[build] +template = "custom" +dependencies = [ + "libjpeg", + "liborbital", + "libpng", + "mesa", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT + +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL2" +export CXXFLAGS="${CXXFLAGS} -I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL2" +cat > redox.cmake <pid) { + case 0: { + close(0); ++#if defined(__redox__) ++ int d = open("null:", O_RDONLY); ++#else + int d = open("/dev/null", O_RDONLY); ++#endif + if (d != -1 && dup2(d, 1) != -1 && dup2(d, 2) != -1) { + execvp(this->params[0], this->params); + } +diff -ruw source/src/os/unix/unix.cpp source-new/src/os/unix/unix.cpp +--- source/src/os/unix/unix.cpp 2019-06-19 08:34:01.294040885 -0600 ++++ source-new/src/os/unix/unix.cpp 2019-06-27 16:39:06.400266392 -0600 +@@ -69,12 +69,12 @@ + + bool FiosIsRoot(const char *path) + { +-#if !defined(__MORPHOS__) && !defined(__AMIGAOS__) ++#if !defined(__redox__) + return path[1] == '\0'; + #else +- /* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */ ++ /* On Redox paths look like: "scheme:/directory/subdirectory" */ + const char *s = strchr(path, ':'); +- return s != NULL && s[1] == '\0'; ++ return (s != NULL) && (strlen(s) == 2) && (s[1] == '/') && (s[2] == '\0'); + #endif + } + +@@ -106,10 +106,10 @@ + { + char filename[MAX_PATH]; + int res; +-#if defined(__MORPHOS__) || defined(__AMIGAOS__) +- /* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */ ++#if defined(__redox__) ++ /* On Redox paths look like: "scheme:/directory/subdirectory" */ + if (FiosIsRoot(path)) { +- res = seprintf(filename, lastof(filename), "%s:%s", path, ent->d_name); ++ res = seprintf(filename, lastof(filename), "%s%s", path, ent->d_name); + } else // XXX - only next line! + #else + assert(path[strlen(path) - 1] == PATHSEPCHAR); +@@ -370,7 +370,7 @@ + if (child_pid != 0) return; + + const char *args[3]; +- args[0] = "xdg-open"; ++ args[0] = "netsurf-fb"; + args[1] = url; + args[2] = NULL; + execvp(args[0], const_cast(args)); +diff -ruw source/src/rev.cpp.in source-new/src/rev.cpp.in +--- source/src/rev.cpp.in 2019-06-19 08:34:01.298040904 -0600 ++++ source-new/src/rev.cpp.in 2019-06-27 16:39:06.400266392 -0600 +@@ -57,7 +57,7 @@ + * (compiling from sources without any version control software) + * and 2 is for modified revision. + */ +-const byte _openttd_revision_modified = !!MODIFIED!!; ++const byte _openttd_revision_modified = 2; + + /** + * The NewGRF revision of OTTD: +diff -ruw source/src/stdafx.h source-new/src/stdafx.h +--- source/src/stdafx.h 2019-06-19 08:34:01.334041067 -0600 ++++ source-new/src/stdafx.h 2019-06-27 16:39:06.400266392 -0600 +@@ -12,6 +12,9 @@ + #ifndef STDAFX_H + #define STDAFX_H + ++#include ++#include ++ + #if defined(__APPLE__) + #include "os/macosx/osx_stdafx.h" + #endif /* __APPLE__ */ +diff -ruw source/src/string.cpp source-new/src/string.cpp +--- source/src/string.cpp 2019-06-19 08:34:01.334041067 -0600 ++++ source-new/src/string.cpp 2019-06-27 16:39:06.400266392 -0600 +@@ -528,7 +528,7 @@ + return length; + } + +-#ifdef DEFINE_STRCASESTR ++#if 0 + char *strcasestr(const char *haystack, const char *needle) + { + size_t hay_len = strlen(haystack); diff --git a/recipes/games/opentyrian/manifest b/recipes/games/opentyrian/manifest new file mode 100644 index 000000000..bcda89e35 --- /dev/null +++ b/recipes/games/opentyrian/manifest @@ -0,0 +1,4 @@ +name=OpenTyrian +category=Games +binary=/usr/games/opentyrian +icon=/ui/icons/apps/opentyrian.png diff --git a/recipes/games/opentyrian/recipe.toml b/recipes/games/opentyrian/recipe.toml new file mode 100644 index 000000000..84fc86159 --- /dev/null +++ b/recipes/games/opentyrian/recipe.toml @@ -0,0 +1,52 @@ +# Version date: 02-August-2024 +# +# Notes: +# As Tyrian is an ancient, sprite based game, the code isn't updated +# super frequently. So instead of just pinning the version to the last +# official release in 2022, I'm pulling from main because it's unlikely +# anything will break. The last two commits were small fixes, one in 2023 +# and one in 2024. + +[source] +git = "https://github.com/opentyrian/opentyrian" +patches = [ "redox.patch" ] + +[build] +template = "custom" +dependencies = [ + "liborbital", + "mesa", + "sdl2", + "zlib", + # "sdl2-net" +] +script = """ +DYNAMIC_INIT + +# Build system is only a standalone Makefile +COOKBOOK_CONFIGURE="true" +COOKBOOK_CONFIGURE_FLAGS="" + +# See Makefile for variables to override +export PKG_CONFIG="${TARGET}-pkg-config" +ASSETSDIR="${COOKBOOK_STAGE}/usr/share/games/tyrian" +export WITH_NETWORK=false +export REDOX_OVERRIDE=true +export prefix="/usr" +export bindir="${prefix}/games" +export icondir="/ui/icons/apps" +export gamesdir="${prefix}/share/games" + +if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then + LDFLAGS+=" -lstdc++" +fi + +# Prepare the sources and download Tyrian (freeware) +rsync -av --delete "${COOKBOOK_SOURCE}/" "${COOKBOOK_RECIPE}/tyrian21.zip.sha" ./ +mkdir -p "${ASSETSDIR}" +curl -OL https://camanis.net/tyrian/tyrian21.zip +sha256sum -c tyrian21.zip.sha +unzip -jd "${ASSETSDIR}" tyrian21.zip + +cookbook_configure +""" diff --git a/recipes/games/opentyrian/redox.patch b/recipes/games/opentyrian/redox.patch new file mode 100644 index 000000000..e0de2aec7 --- /dev/null +++ b/recipes/games/opentyrian/redox.patch @@ -0,0 +1,60 @@ +Binary files source/.git/index and source-new/.git/index differ +diff '--color=auto' -rupwN source/Makefile source-new/Makefile +--- source/Makefile 2024-10-21 02:46:06.720225834 -0400 ++++ source-new/Makefile 2024-10-25 01:03:37.283351544 -0400 +@@ -5,10 +5,11 @@ ifneq ($(filter Msys Cygwin, $(shell una + TYRIAN_DIR = C:\\TYRIAN + else + PLATFORM := UNIX +- TYRIAN_DIR = $(gamesdir)/tyrian ++ TYRIAN_DIR ?= $(gamesdir)/tyrian + endif + +-WITH_NETWORK := true ++WITH_NETWORK ?= true ++REDOX_OVERRIDE ?= false + + ################################################################################ + +@@ -114,11 +115,15 @@ installdirs : + mkdir -p $(DESTDIR)$(docdir) + mkdir -p $(DESTDIR)$(man6dir) + mkdir -p $(DESTDIR)$(desktopdir) +- mkdir -p $(DESTDIR)$(icondir)/hicolor/22x22/apps +- mkdir -p $(DESTDIR)$(icondir)/hicolor/24x24/apps +- mkdir -p $(DESTDIR)$(icondir)/hicolor/32x32/apps +- mkdir -p $(DESTDIR)$(icondir)/hicolor/48x48/apps +- mkdir -p $(DESTDIR)$(icondir)/hicolor/128x128/apps ++ if [ "$(REDOX_OVERRIDE)" = "true" ]; then\ ++ mkdir -p $(DESTDIR)$(icondir);\ ++ else\ ++ mkdir -p $(DESTDIR)$(icondir)/hicolor/22x22/apps;\ ++ mkdir -p $(DESTDIR)$(icondir)/hicolor/24x24/apps;\ ++ mkdir -p $(DESTDIR)$(icondir)/hicolor/32x32/apps;\ ++ mkdir -p $(DESTDIR)$(icondir)/hicolor/48x48/apps;\ ++ mkdir -p $(DESTDIR)$(icondir)/hicolor/128x128/apps;\ ++ fi;\ + + .PHONY : install + install : $(TARGET) installdirs +@@ -126,11 +131,15 @@ install : $(TARGET) installdirs + $(INSTALL_DATA) NEWS README $(DESTDIR)$(docdir)/ + $(INSTALL_DATA) linux/man/opentyrian.6 $(DESTDIR)$(man6dir)/opentyrian$(man6ext) + $(INSTALL_DATA) linux/opentyrian.desktop $(DESTDIR)$(desktopdir)/ +- $(INSTALL_DATA) linux/icons/tyrian-22.png $(DESTDIR)$(icondir)/hicolor/22x22/apps/opentyrian.png +- $(INSTALL_DATA) linux/icons/tyrian-24.png $(DESTDIR)$(icondir)/hicolor/24x24/apps/opentyrian.png +- $(INSTALL_DATA) linux/icons/tyrian-32.png $(DESTDIR)$(icondir)/hicolor/32x32/apps/opentyrian.png +- $(INSTALL_DATA) linux/icons/tyrian-48.png $(DESTDIR)$(icondir)/hicolor/48x48/apps/opentyrian.png +- $(INSTALL_DATA) linux/icons/tyrian-128.png $(DESTDIR)$(icondir)/hicolor/128x128/apps/opentyrian.png ++ if [ "$(REDOX_OVERRIDE)" = "true" ]; then\ ++ $(INSTALL_DATA) linux/icons/tyrian-32.png $(DESTDIR)$(icondir)/opentyrian.png;\ ++ else\ ++ $(INSTALL_DATA) linux/icons/tyrian-22.png $(DESTDIR)$(icondir)/hicolor/22x22/apps/opentyrian.png;\ ++ $(INSTALL_DATA) linux/icons/tyrian-24.png $(DESTDIR)$(icondir)/hicolor/24x24/apps/opentyrian.png;\ ++ $(INSTALL_DATA) linux/icons/tyrian-32.png $(DESTDIR)$(icondir)/hicolor/32x32/apps/opentyrian.png;\ ++ $(INSTALL_DATA) linux/icons/tyrian-48.png $(DESTDIR)$(icondir)/hicolor/48x48/apps/opentyrian.png;\ ++ $(INSTALL_DATA) linux/icons/tyrian-128.png $(DESTDIR)$(icondir)/hicolor/128x128/apps/opentyrian.png;\ ++ fi;\ + + .PHONY : uninstall + uninstall : diff --git a/recipes/games/opentyrian/tyrian21.zip.sha b/recipes/games/opentyrian/tyrian21.zip.sha new file mode 100644 index 000000000..a57cd4a9e --- /dev/null +++ b/recipes/games/opentyrian/tyrian21.zip.sha @@ -0,0 +1 @@ +7790d09a2a3addcd33c66ef063d5900eb81cc9c342f4807eb8356364dd1d9277 tyrian21.zip diff --git a/recipes/games/prboom/01_redox.patch b/recipes/games/prboom/01_redox.patch new file mode 100644 index 000000000..6318a4093 --- /dev/null +++ b/recipes/games/prboom/01_redox.patch @@ -0,0 +1,16 @@ +diff -burpN source-original/src/m_misc.c source/src/m_misc.c +--- source-original/src/m_misc.c 2008-11-09 10:13:04.000000000 -0700 ++++ source/src/m_misc.c 2024-09-07 10:09:06.890301682 -0600 +@@ -954,6 +954,12 @@ void M_LoadDefaults (void) + // read the file in, overriding any set defaults + + f = fopen (defaultfile, "r"); ++#if defined(__redox__) ++ if (f) { ++ printf("disabling load of config file on redox\n"); ++ f = NULL; ++ } ++#endif + if (f) + { + while (!feof(f)) diff --git a/recipes/games/prboom/recipe.toml b/recipes/games/prboom/recipe.toml new file mode 100644 index 000000000..efdb13149 --- /dev/null +++ b/recipes/games/prboom/recipe.toml @@ -0,0 +1,35 @@ +[source] +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" +""" + +[build] +template = "custom" +dependencies = [ + "sdl1", + "liborbital", + "sdl1-mixer", + "libogg", + "libvorbis" +] +script = """ +DYNAMIC_INIT +export MIXER_LIBS="-lSDL_mixer -lvorbisfile -lvorbis -logg" +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-cpu-opt + --disable-i386-asm + --disable-gl + --disable-sdltest + --without-net + --with-sdl-prefix="${COOKBOOK_SYSROOT}" + ac_cv_lib_SDL_mixer_Mix_OpenAudio=yes + ac_cv_type_gid_t=yes + ac_cv_type_uid_t=yes +) +cookbook_configure +""" + diff --git a/recipes/games/quakespasm/manifest b/recipes/games/quakespasm/manifest new file mode 100644 index 000000000..814d6b06e --- /dev/null +++ b/recipes/games/quakespasm/manifest @@ -0,0 +1,4 @@ +name=QuakeSpasm +category=Games +binary=/usr/games/quakespasm +icon=/ui/icons/apps/quakespasm.png diff --git a/recipes/games/quakespasm/recipe.toml b/recipes/games/quakespasm/recipe.toml new file mode 100644 index 000000000..169a874e6 --- /dev/null +++ b/recipes/games/quakespasm/recipe.toml @@ -0,0 +1,52 @@ +# TODO: Promote + +# Version: 0.96.3 +# Version date: 31-July-2024 + +[source] +git = "https://github.com/sezero/quakespasm" +rev = "cc32abe09ed417ce3be10af300d2dc2f686349ba" + +[build] +template = "custom" +dependencies = [ + "libiconv", + "libogg", + "liborbital", + "libvorbis", + "mesa", + # "sdl1", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT + +# Skip configuring because QuakeSpasm uses a custom build system +COOKBOOK_CONFIGURE="true" +COOKBOOK_CONFIGURE_FLAGS="" + +# Ensure the build system is aware of Redox +# The build system uses sdl-config for Unix, but SDL recommends using pkg-config +export HOST_OS="redox" +export PKG_CONFIG="${TARGET}-pkg-config" + +# Config options for the Makefile. Set as necessary (see Makefile). +# MP3 is disabled because libmad doesn't compile at the moment +# Other options weren't tested, but SDL and SDL2 both compile fine +export USE_SDL2=1 +export USE_CODEC_MP3=0 +export DO_USERDIRS=1 + +if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then + LDFLAGS+=" -lstdc++" +fi + +# Source is in Quake/ and icons are in Misc/ +rsync -av --delete "${COOKBOOK_SOURCE}/Quake/" "${COOKBOOK_SOURCE}/Misc" ./ + +# According to frantic grepping, the Redox build system doesn't apply patches to git +git apply "${COOKBOOK_RECIPE}/redox.patch" + +cookbook_configure +""" diff --git a/recipes/games/quakespasm/redox.patch b/recipes/games/quakespasm/redox.patch new file mode 100644 index 000000000..c3ff6a46e --- /dev/null +++ b/recipes/games/quakespasm/redox.patch @@ -0,0 +1,110 @@ +diff '--color=auto' -rupwN source/Makefile source-new/Makefile +--- source/Makefile 2024-10-15 21:21:14.824589882 -0400 ++++ source-new/Makefile 2024-10-16 00:42:27.651948743 -0400 +@@ -4,28 +4,34 @@ + # "make SDL_CONFIG=/path/to/sdl-config" for unusual SDL installations. + # "make DO_USERDIRS=1" to enable user directories support + ++# Base install directory ++DESTDIR ?= "/" ++INSTALLDIR = "${DESTDIR}/usr/games/" ++DATADIR = "${DESTDIR}/usr/share/games/quake1/id1/" ++ICODIR = "${DESTDIR}/ui/icons/apps/" ++ + # Enable/Disable user directories support +-DO_USERDIRS=0 ++DO_USERDIRS ?= 0 + + ### Enable/Disable SDL2 +-USE_SDL2=0 ++USE_SDL2 ?= 0 + + ### Enable/Disable codecs for streaming music support +-USE_CODEC_WAVE=1 +-USE_CODEC_FLAC=0 +-USE_CODEC_MP3=1 +-USE_CODEC_VORBIS=1 +-USE_CODEC_OPUS=0 ++USE_CODEC_WAVE ?= 1 ++USE_CODEC_FLAC ?= 0 ++USE_CODEC_MP3 ?= 1 ++USE_CODEC_VORBIS ?= 1 ++USE_CODEC_OPUS ?= 0 + # either xmp or mikmod (or modplug) +-USE_CODEC_MIKMOD=0 +-USE_CODEC_XMP=0 +-USE_CODEC_MODPLUG=0 +-USE_CODEC_UMX=0 ++USE_CODEC_MIKMOD ?= 0 ++USE_CODEC_XMP ?= 0 ++USE_CODEC_MODPLUG ?= 0 ++USE_CODEC_UMX ?= 0 + + # which library to use for mp3 decoding: mad or mpg123 +-MP3LIB=mad ++MP3LIB ?= mad + # which library to use for ogg decoding: vorbis or tremor +-VORBISLIB=vorbis ++VORBISLIB ?= vorbis + + # --------------------------- + # Helper functions +@@ -35,7 +41,7 @@ check_gcc = $(shell if echo | $(CC) $(1) + + # --------------------------- + +-HOST_OS = $(shell uname|sed -e s/_.*//|tr '[:upper:]' '[:lower:]') ++HOST_OS ?= $(shell uname|sed -e s/_.*//|tr '[:upper:]' '[:lower:]') + + DEBUG ?= 0 + +@@ -49,7 +55,7 @@ LINKER = $(CC) + STRIP ?= strip + PKG_CONFIG ?= pkg-config + +-CPUFLAGS= ++CPUFLAGS ?= + LDFLAGS?= + DFLAGS ?= + CFLAGS ?= -Wall -Wno-trigraphs -MMD +@@ -81,11 +87,19 @@ endif + + ifeq ($(USE_SDL2),1) + SDL_CONFIG ?= sdl2-config ++SDL_VERSION = sdl2 + else + SDL_CONFIG ?= sdl-config ++SDL_VERSION = sdl + endif ++ ++ifeq ($(HOST_OS),redox) ++SDL_CFLAGS = $(shell $(PKG_CONFIG) --cflags $(SDL_VERSION)) ++SDL_LIBS = $(shell $(PKG_CONFIG) --libs $(SDL_VERSION)) ++else + SDL_CFLAGS = $(shell $(SDL_CONFIG) --cflags) + SDL_LIBS = $(shell $(SDL_CONFIG) --libs) ++endif + + NET_LIBS = + ifeq ($(HOST_OS),sunos) +@@ -164,6 +178,8 @@ endif + + ifeq ($(HOST_OS),haiku) + COMMON_LIBS= -lGL ++else ifeq ($(HOST_OS),redox) ++COMMON_LIBS= -lorbital $(shell $(PKG_CONFIG) --libs osmesa zlib) + else + COMMON_LIBS= -lGL -lm + endif +@@ -290,7 +306,10 @@ install: quakespasm + cp quakespasm.pak $(QS_APP_DIR) + else + install: quakespasm +- cp quakespasm /usr/local/games/quake ++ mkdir -p "${INSTALLDIR}" "${DATADIR}" "${ICODIR}" ++ cp quakespasm "${INSTALLDIR}/quakespasm" ++ # xxx Probably requires resizing ++ cp Misc/QuakeSpasm_512.png "${ICODIR}/quakespasm.png" + endif + + sinclude $(OBJS:.o=.d) diff --git a/recipes/games/redox-games/recipe.toml b/recipes/games/redox-games/recipe.toml new file mode 100644 index 000000000..50a9957fd --- /dev/null +++ b/recipes/games/redox-games/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/games.git" + +[build] +template = "cargo" diff --git a/recipes/games/sm64ex/.gitignore b/recipes/games/sm64ex/.gitignore new file mode 100644 index 000000000..09b26b184 --- /dev/null +++ b/recipes/games/sm64ex/.gitignore @@ -0,0 +1 @@ +/baserom.us.z64 diff --git a/recipes/games/sm64ex/manifest b/recipes/games/sm64ex/manifest new file mode 100644 index 000000000..38f7a22b7 --- /dev/null +++ b/recipes/games/sm64ex/manifest @@ -0,0 +1,4 @@ +name=Super Mario 64 EX +category=Games +binary=/bin/sm64 +icon=/ui/icons/apps/sm64ex.png diff --git a/recipes/games/sm64ex/recipe.toml b/recipes/games/sm64ex/recipe.toml new file mode 100644 index 000000000..10992c486 --- /dev/null +++ b/recipes/games/sm64ex/recipe.toml @@ -0,0 +1,36 @@ +[source] +git = "https://github.com/jackpot51/sm64ex.git" + +[build] +template = "custom" +dependencies = [ + "liborbital", + "mesa", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT + +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +# You must find your own ROM +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_LDFLAGS="${LDFLAGS}" +unset CFLAGS LDFLAGS + +export CROSS="${TARGET}-" +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +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}/ui/icons/apps" +wget -O "${COOKBOOK_STAGE}/ui/icons/apps/sm64ex.png" https://evilgames.eu/texture-packs/thumb/sm64-reloaded.png +""" diff --git a/recipes/games/sopwith/recipe.toml b/recipes/games/sopwith/recipe.toml new file mode 100644 index 000000000..219c5c334 --- /dev/null +++ b/recipes/games/sopwith/recipe.toml @@ -0,0 +1,31 @@ +[source] +tar = "https://github.com/fragglet/sdl-sopwith/releases/download/sdl-sopwith-1.8.4/sopwith-1.8.4.tar.gz" +blake3 = "44e1404a9c4bea257d7778d2a4b1512231603a74b0a7b18eac5d18f36730ed3e" + +[build] +template = "custom" +dependencies = [ + "sdl1", + "liborbital", + "libiconv", +] +script = """ +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" +export LIBS="-lSDL -lorbital" # TODO: Uses sdl-config instead of pkg-config + +# For some reason, cook_configure breaks spectacularly on this +# We will just copy instead +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +wget -O autotools/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" + +./configure \\ + --build="$(gcc -dumpmachine)" \\ + --host="${TARGET}" \\ + --prefix="" \\ + --with-sdl-prefix="${COOKBOOK_SYSROOT}" + +make -j"$(nproc)" + +make DESTDIR="${COOKBOOK_STAGE}" install +""" \ No newline at end of file diff --git a/recipes/games/spacecadetpinball/recipe.toml b/recipes/games/spacecadetpinball/recipe.toml new file mode 100644 index 000000000..2828ce3bc --- /dev/null +++ b/recipes/games/spacecadetpinball/recipe.toml @@ -0,0 +1,26 @@ +[source] +git = "https://gitlab.redox-os.org/xTibor/SpaceCadetPinball.git" +upstream = "https://github.com/k4zmu2a/SpaceCadetPinball.git" +branch = "redox" + +[build] +template = "custom" +dependencies = [ + "libogg", + "liborbital", + "libvorbis", + "mesa", + "sdl2", + "sdl2-mixer", + "zlib", +] +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS=( + -DSDL2_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include/SDL2" + -DSDL2_LIBRARY="-lSDL2_mixer -lvorbisfile -lvorbis -logg -lSDL2 -lorbital $("${TARGET}-pkg-config" --libs osmesa)" + -DSDL2_MIXER_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include/SDL2" + -DSDL2_MIXER_LIBRARY="SDL2_mixer" +) +cookbook_cmake +""" diff --git a/recipes/graphics/procedural-wallpapers-rs/recipe.toml b/recipes/graphics/procedural-wallpapers-rs/recipe.toml new file mode 100644 index 000000000..1b9cccac4 --- /dev/null +++ b/recipes/graphics/procedural-wallpapers-rs/recipe.toml @@ -0,0 +1,6 @@ +[source] +git = "https://github.com/lukas-kirschner/procedural-wallpapers-rs.git" + +[build] +template = "cargo" +package_path = "procedural_wallpapers" diff --git a/recipes/groups/dev-essential/recipe.toml b/recipes/groups/dev-essential/recipe.toml new file mode 100644 index 000000000..efe81319b --- /dev/null +++ b/recipes/groups/dev-essential/recipe.toml @@ -0,0 +1,22 @@ +[package] +dependencies = [ + "autoconf", + "automake", + "cargo", + "gcc13", + "gcc13.cxx", + "llvm21", + "gnu-binutils", + "gnu-make", + "gnu-grep", + "ripgrep", + "libffi", + "rustpython", + "lua54", + "nasm", + "patch", + "pkg-config", + "rust", + "sed", + "strace", +] diff --git a/recipes/groups/dev-redox/recipe.toml b/recipes/groups/dev-redox/recipe.toml new file mode 100644 index 000000000..120c5cbc0 --- /dev/null +++ b/recipes/groups/dev-redox/recipe.toml @@ -0,0 +1,20 @@ +[package] +dependencies = [ + "dev-essential", + "redox-tests", + "exampled", + "gdbserver", + "libgmp", + "libiconv", + "liborbital", + "libsodium", + "libxml2", + "ncurses", + "nghttp2", + "openssl3", + "orbclient", + "pcre", + "terminfo", + "xz", + "zlib", +] diff --git a/recipes/groups/redox-tests/recipe.toml b/recipes/groups/redox-tests/recipe.toml new file mode 100644 index 000000000..eb8ef05db --- /dev/null +++ b/recipes/groups/redox-tests/recipe.toml @@ -0,0 +1,6 @@ +[package] +dependencies = [ + "acid", + "resist", + "relibc-tests", +] diff --git a/recipes/groups/x11-full/recipe.toml b/recipes/groups/x11-full/recipe.toml new file mode 100644 index 000000000..e58d3c011 --- /dev/null +++ b/recipes/groups/x11-full/recipe.toml @@ -0,0 +1,9 @@ +[package] +dependencies = [ + "x11-minimal", + "twm", + "xev", + "xeyes", + "xkbutils", + "xterm", +] diff --git a/recipes/groups/x11-minimal/recipe.toml b/recipes/groups/x11-minimal/recipe.toml new file mode 100644 index 000000000..3ed893af0 --- /dev/null +++ b/recipes/groups/x11-minimal/recipe.toml @@ -0,0 +1,8 @@ +[package] +dependencies = [ + "xinit", + "xkbcomp", + "xkeyboard-config", + "xserver-xorg", + "xserver-xorg-video-orbital", +] diff --git a/recipes/gui/installer-gui/manifest b/recipes/gui/installer-gui/manifest new file mode 100644 index 000000000..9bdf825f1 --- /dev/null +++ b/recipes/gui/installer-gui/manifest @@ -0,0 +1,6 @@ +name=Redox Installer +category=System +binary=/usr/bin/redox_installer_gui +icon=/usr/share/icons/Pop/48x48/apps/system-os-installer.svg +author=Jeremy Soller +description=GUI Installer for Redox diff --git a/recipes/gui/installer-gui/recipe.toml b/recipes/gui/installer-gui/recipe.toml new file mode 100644 index 000000000..4f95b53d6 --- /dev/null +++ b/recipes/gui/installer-gui/recipe.toml @@ -0,0 +1,12 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/installer-gui.git" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo + +mkdir -pv "${COOKBOOK_STAGE}/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/redox-installer-gui" +""" diff --git a/recipes/gui/orbdata/recipe.toml b/recipes/gui/orbdata/recipe.toml new file mode 100644 index 000000000..6ac4c9374 --- /dev/null +++ b/recipes/gui/orbdata/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/orbdata.git" + +[build] +template = "custom" +script = """ +cp -rv "${COOKBOOK_SOURCE}/"* "${COOKBOOK_STAGE}/" +""" diff --git a/recipes/gui/orbital/recipe.toml b/recipes/gui/orbital/recipe.toml new file mode 100644 index 000000000..0ae660fd4 --- /dev/null +++ b/recipes/gui/orbital/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/orbital.git" + +[build] +template = "cargo" + +[package] +dependencies = [ + "orbdata" +] diff --git a/recipes/gui/orbterm/recipe.toml b/recipes/gui/orbterm/recipe.toml new file mode 100644 index 000000000..e67f2a1c6 --- /dev/null +++ b/recipes/gui/orbterm/recipe.toml @@ -0,0 +1,22 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/orbterm.git" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +mkdir -pv "${COOKBOOK_STAGE}/ui" +cp -rv "${COOKBOOK_SOURCE}/apps" "${COOKBOOK_STAGE}/ui/apps" + +"${COOKBOOK_CARGO}" install \ + --path "${COOKBOOK_SOURCE}" \ + --root "${COOKBOOK_STAGE}/usr" \ + --locked \ + --no-track \ + ${install_flags} +""" + +[package] +dependencies = [ + "orbital" +] diff --git a/recipes/gui/orbutils-background/recipe.toml b/recipes/gui/orbutils-background/recipe.toml new file mode 100644 index 000000000..9b13e8168 --- /dev/null +++ b/recipes/gui/orbutils-background/recipe.toml @@ -0,0 +1,12 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/orbutils.git" + +[build] +template = "cargo" +package_path = "orbutils" +cargoflags = "--bin background" + +[package] +dependencies = [ + "orbital" +] diff --git a/recipes/gui/orbutils-launcher/recipe.toml b/recipes/gui/orbutils-launcher/recipe.toml new file mode 100644 index 000000000..78125ba93 --- /dev/null +++ b/recipes/gui/orbutils-launcher/recipe.toml @@ -0,0 +1,11 @@ +[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 new file mode 100644 index 000000000..6871a92e6 --- /dev/null +++ b/recipes/gui/orbutils-orblogin/recipe.toml @@ -0,0 +1,12 @@ +[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 new file mode 100644 index 000000000..bc506edfe --- /dev/null +++ b/recipes/gui/orbutils/recipe.toml @@ -0,0 +1,20 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/orbutils.git" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +mkdir -pv "${COOKBOOK_STAGE}/ui" +cp -rv "${COOKBOOK_SOURCE}/apps" "${COOKBOOK_STAGE}/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 +""" diff --git a/recipes/icons/cosmic-icons/recipe.toml b/recipes/icons/cosmic-icons/recipe.toml new file mode 100644 index 000000000..ed0a464bb --- /dev/null +++ b/recipes/icons/cosmic-icons/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://github.com/pop-os/cosmic-icons.git" +rev = "f93dcdfa1060c2cf3f8cf0b56b0338292edcafa5" +shallow_clone = true +[build] +template = "custom" +script = """ +cd "${COOKBOOK_SOURCE}" +just rootdir="${COOKBOOK_STAGE}" prefix="" install +""" diff --git a/recipes/icons/hicolor-icon-theme/recipe.toml b/recipes/icons/hicolor-icon-theme/recipe.toml new file mode 100644 index 000000000..c7bfc9def --- /dev/null +++ b/recipes/icons/hicolor-icon-theme/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.freedesktop.org/xdg/default-icon-theme.git" + +[build] +template = "custom" +script = """ +meson setup --reconfigure -Dprefix=/usr . "${COOKBOOK_SOURCE}" +env DESTDIR="${COOKBOOK_STAGE}" meson install +""" diff --git a/recipes/icons/pop-icon-theme/recipe.toml b/recipes/icons/pop-icon-theme/recipe.toml new file mode 100644 index 000000000..44daacee9 --- /dev/null +++ b/recipes/icons/pop-icon-theme/recipe.toml @@ -0,0 +1,12 @@ +[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" +""" diff --git a/recipes/libs/atk/recipe.toml b/recipes/libs/atk/recipe.toml new file mode 100644 index 000000000..6ad310a1d --- /dev/null +++ b/recipes/libs/atk/recipe.toml @@ -0,0 +1,21 @@ +[source] +tar = "https://download.gnome.org/sources/atk/2.38/atk-2.38.0.tar.xz" +blake3 = "cbc1b7ba03009ee5cc0e646d8a86117e0d65bf8d105f2e8714fbde0299a8012e" +script = """ +GNU_CONFIG_GET config.sub +""" + +[build] +dependencies = [ + "gettext", + "glib", + #TODO "gobject-introspection", + "libffi", + "libiconv", + "pcre2", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson -Dintrospection=false +""" diff --git a/recipes/libs/cairo/recipe.toml b/recipes/libs/cairo/recipe.toml new file mode 100644 index 000000000..47b1d5ebd --- /dev/null +++ b/recipes/libs/cairo/recipe.toml @@ -0,0 +1,35 @@ +[source] +tar = "https://www.cairographics.org/releases/cairo-1.18.4.tar.xz" +blake3 = "b9fa14e02f85ec4e72396c62236c98502d04dbbdf8daf01ab9557a1c7aa7106e" +patches = ["redox.patch"] + +[build] +dependencies = [ + "expat", + "freetype2", + "fontconfig", + "gettext", + "glib", + "libffi", + "libiconv", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "pcre2", + "pixman", + "x11proto", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +#TODO: fix mutex implementation +#TODO: why are math defines missing? +CFLAGS="${CFLAGS} -DCAIRO_NO_MUTEX=1 -DM_SQRT2=1.41421356237309504880 -DM_LN2=0.69314718055994530942" +cookbook_meson \ + -Dxlib-xcb=enabled \ + -Dtests=disabled +""" diff --git a/recipes/libs/cairo/redox.patch b/recipes/libs/cairo/redox.patch new file mode 100644 index 000000000..110b39a1e --- /dev/null +++ b/recipes/libs/cairo/redox.patch @@ -0,0 +1,50 @@ +diff -ruwN cairo-1.18.4/meson.build source/meson.build +--- cairo-1.18.4/meson.build 2025-03-08 05:35:35.000000000 -0700 ++++ source/meson.build 2025-05-04 18:07:04.594213814 -0600 +@@ -440,13 +440,13 @@ + if feature_conf.get('CAIRO_HAS_XCB_SURFACE', 0) == 1 + xcbshm_dep = dependency('xcb-shm', required: get_option('xcb')) + if xcbshm_dep.found() +- feature_conf.set('CAIRO_HAS_XCB_SHM_FUNCTIONS', 1) +- deps += [xcbshm_dep] +- built_features += [{ +- 'name': 'cairo-xcb-shm', +- 'description': 'XCB/SHM functions', +- 'deps': [xcbshm_dep], +- }] ++ #feature_conf.set('CAIRO_HAS_XCB_SHM_FUNCTIONS', 1) ++ #deps += [xcbshm_dep] ++ #built_features += [{ ++ # 'name': 'cairo-xcb-shm', ++ # 'description': 'XCB/SHM functions', ++ # 'deps': [xcbshm_dep], ++ #}] + endif + endif + +diff -ruwN cairo-1.18.4/perf/Makefile.in source/perf/Makefile.in +--- cairo-1.18.4/perf/Makefile.in 1969-12-31 17:00:00.000000000 -0700 ++++ source/perf/Makefile.in 2025-05-01 12:52:11.400963345 -0600 +@@ -0,0 +1,3 @@ ++all: ++ ++install: +diff -ruwN cairo-1.18.4/src/cairo-ps-surface.c source/src/cairo-ps-surface.c +--- cairo-1.18.4/src/cairo-ps-surface.c 2025-03-08 05:35:35.000000000 -0700 ++++ source/src/cairo-ps-surface.c 2025-05-04 18:08:43.821264417 -0600 +@@ -102,7 +102,7 @@ + #define DEBUG_FALLBACK(s) + #endif + +-#ifndef HAVE_CTIME_R ++#if !defined(HAVE_CTIME_R) && !defined(__redox__) + static char *ctime_r(const time_t *timep, char *buf) + { + (void)buf; +diff -ruwN cairo-1.18.4/test/Makefile.in source/test/Makefile.in +--- cairo-1.18.4/test/Makefile.in 1969-12-31 17:00:00.000000000 -0700 ++++ source/test/Makefile.in 2025-05-01 12:52:11.400963345 -0600 +@@ -0,0 +1,3 @@ ++all: ++ ++install: diff --git a/recipes/libs/duktape/recipe.toml b/recipes/libs/duktape/recipe.toml new file mode 100644 index 000000000..13b3f1781 --- /dev/null +++ b/recipes/libs/duktape/recipe.toml @@ -0,0 +1,16 @@ +[source] +tar = "https://duktape.org/duktape-2.7.0.tar.xz" +blake3 = "b0a17da888847bc9c73624ae3ba7f858ec327a9bbce9d287aee6a2489e518448" + +[build] +template = "custom" +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +sed -i "s/= gcc/= ${TARGET}-gcc/g" Makefile.cmdline + +"${COOKBOOK_MAKE}" -f Makefile.cmdline -j"$($NPROC)" + +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +cp ./duk "${COOKBOOK_STAGE}/usr/bin/duk" +""" \ No newline at end of file diff --git a/recipes/libs/expat/recipe.toml b/recipes/libs/expat/recipe.toml new file mode 100644 index 000000000..37f15adb0 --- /dev/null +++ b/recipes/libs/expat/recipe.toml @@ -0,0 +1,20 @@ +[source] +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 +""" + +[build] +template = "custom" +script = """ +DYNAMIC_STATIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --without-docbook + --without-examples + --without-tests + --without-xmlwf +) +cookbook_configure +""" diff --git a/recipes/libs/ffmpeg6/binutils-2.41.patch b/recipes/libs/ffmpeg6/binutils-2.41.patch new file mode 100644 index 000000000..33fd3d484 --- /dev/null +++ b/recipes/libs/ffmpeg6/binutils-2.41.patch @@ -0,0 +1,76 @@ +From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001 +From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= +Date: Sun, 16 Jul 2023 18:18:02 +0300 +Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift + instructions within inline assembly + +Fixes assembling with binutil as >= 2.41 + +Signed-off-by: James Almer +--- + libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++--- + 1 file changed, 23 insertions(+), 3 deletions(-) + +diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h +index 6298f5ed19..ca7e2dffc1 100644 +--- a/libavcodec/x86/mathops.h ++++ b/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + +-- +2.30.2 + diff --git a/recipes/libs/ffmpeg6/ffmpeg.patch b/recipes/libs/ffmpeg6/ffmpeg.patch new file mode 100644 index 000000000..9d24920c0 --- /dev/null +++ b/recipes/libs/ffmpeg6/ffmpeg.patch @@ -0,0 +1,24 @@ +diff -rupN source-original/configure source/configure +--- source-original/configure 2018-03-04 11:13:59.000000000 +0100 ++++ source/configure 2018-03-04 11:18:10.026033282 +0100 +@@ -5141,6 +5141,8 @@ case $target_os in + ;; + minix) + ;; ++ redox) ++ ;; + none) + ;; + *) +diff -rupN source-original/fftools/ffmpeg.c source/fftools/ffmpeg.c +--- source-original/fftools/ffmpeg.c 2018-03-04 11:13:59.000000000 +0100 ++++ source/fftools/ffmpeg.c 2018-03-04 11:45:38.326394016 +0100 +@@ -91,7 +91,7 @@ + + #if HAVE_TERMIOS_H + #include +-#include ++//#include + #include + #include + #elif HAVE_KBHIT diff --git a/recipes/libs/ffmpeg6/manifest b/recipes/libs/ffmpeg6/manifest new file mode 100644 index 000000000..eba3e599e --- /dev/null +++ b/recipes/libs/ffmpeg6/manifest @@ -0,0 +1,15 @@ +name=ffplay +binary=/usr/bin/ffplay +accept=*.mp3 +accept=*.ogg +accept=*.opus +accept=*.m4a +accept=*.flac +accept=*.wav +accept=*.mp4 +accept=*.mkv +accept=*.webm +accept=*.3gp +accept=*.mov +author=FFMPEG Developers +description=FFMPEG Media Player diff --git a/recipes/libs/ffmpeg6/recipe.toml b/recipes/libs/ffmpeg6/recipe.toml new file mode 100644 index 000000000..8f15ca3a4 --- /dev/null +++ b/recipes/libs/ffmpeg6/recipe.toml @@ -0,0 +1,40 @@ +[source] +tar = "https://ffmpeg.org/releases/ffmpeg-6.0.tar.xz" +blake3 = "4879074c357102f85932673044c57c144b0c188ae58edec2a115965536ee340f" +patches = [ + "ffmpeg.patch", + "binutils-2.41.patch", +] + +[build] +template = "custom" +dependencies = [ + "liborbital", + "mesa", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT + +export LDFLAGS="$LDFLAGS -lSDL2 -lorbital -lOSMesa -lstdc++" +ARCH="${TARGET%%-*}" +COOKBOOK_CONFIGURE_FLAGS=( + --enable-cross-compile + --target-os=redox + --arch="${ARCH}" + --cross_prefix="${TARGET}-" + --prefix=/usr + --disable-doc + --enable-shared + --disable-static + --disable-network + --enable-sdl2 + --enable-zlib + --enable-encoder=png + --enable-decoder=png +) +cookbook_configure +mkdir -pv "${COOKBOOK_STAGE}/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/ffplay" +""" diff --git a/recipes/libs/freetype2/recipe.toml b/recipes/libs/freetype2/recipe.toml new file mode 100644 index 000000000..ca3ce1e40 --- /dev/null +++ b/recipes/libs/freetype2/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://sourceforge.net/projects/freetype/files/freetype2/2.13.3/freetype-2.13.3.tar.xz/download" +blake3 = "07a01894ccdb584943ce817b57341a8595ce9a92bfaa77c602ec4757dfabd5e2" + +[build] +template = "custom" +dependencies = [ + "libpng", + "zlib" +] +script = """ +DYNAMIC_STATIC_INIT +cookbook_meson +""" diff --git a/recipes/libs/fribidi/recipe.toml b/recipes/libs/fribidi/recipe.toml new file mode 100644 index 000000000..65257a46e --- /dev/null +++ b/recipes/libs/fribidi/recipe.toml @@ -0,0 +1,10 @@ +[source] +tar = "https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz" +blake3 = "c16ee250f73f149d7d52dc7d285eb73ac755bad7907d237391e23f429b2b71d5" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson -Dbin=false -Dtests=false +""" diff --git a/recipes/libs/glib/recipe.toml b/recipes/libs/glib/recipe.toml new file mode 100644 index 000000000..b0bc71075 --- /dev/null +++ b/recipes/libs/glib/recipe.toml @@ -0,0 +1,22 @@ +[source] +tar = "https://download.gnome.org/sources/glib/2.87/glib-2.87.0.tar.xz" +blake3 = "26b77ae24bc02f85d1c6742fe601167b056085f117cda70da7b805cefa6195e9" +patches = [ + "redox.patch", +] + +[build] +template = "custom" +dependencies = [ + "gettext", + "libffi", + "libiconv", + "pcre2", + "zlib", +] +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Ddefault_library=shared \ + -Dxattr=false +""" diff --git a/recipes/libs/glib/redox.patch b/recipes/libs/glib/redox.patch new file mode 100644 index 000000000..47f8a2fe7 --- /dev/null +++ b/recipes/libs/glib/redox.patch @@ -0,0 +1,223 @@ +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 +@@ -29,7 +29,7 @@ + gint rrtype) + { + /* g_resolver_records_from_res_query() is only available on Unix */ +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) && !defined(__redox__) + 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 +@@ -104,7 +104,7 @@ + */ + #undef G_CREDENTIALS_HAS_PID + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__redox__) + #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 +@@ -47,6 +47,10 @@ + #include + #endif + ++#if defined(__redox__) ++#undef AT_FDCWD ++#endif ++ + #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 +@@ -40,13 +40,17 @@ + #include + #include + #include ++#if !defined(__redox__) + #include ++#endif + #include + #include + #include + + #include ++#if !defined(__redox__) + #include ++#endif + @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 +@@ -698,7 +698,7 @@ + } + + +-#if defined(G_OS_UNIX) ++#if defined(G_OS_UNIX) && !defined(__redox__) + + #if defined __BIONIC__ && !defined BIND_4_COMPAT + /* Copy from bionic/libc/private/arpa_nameser_compat.h +@@ -1393,7 +1393,11 @@ + { + GList *records; + +-#if defined(G_OS_UNIX) ++#if defined(__redox__) ++ g_set_error (error, G_RESOLVER_ERROR, G_RESOLVER_ERROR_INTERNAL, ++ _("No support for resolving “%s” on redox"), rrname); ++ return NULL; ++#elif defined(G_OS_UNIX) + 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 +@@ -496,7 +496,7 @@ + GSocket *socket; + gint n; + gssize num_bytes_read; +-#ifdef __linux__ ++#if defined(__linux__) || defined(__redox__) + gboolean turn_off_so_passcreds; + #endif + +@@ -512,7 +512,7 @@ + * already. We also need to turn it off when we're done. See + * #617483 for more discussion. + */ +-#ifdef __linux__ ++#if defined(__linux__) || defined(__redox__) + { + gint opt_val; + +@@ -626,7 +626,7 @@ + + out: + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__redox__) + 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 +@@ -1114,7 +1114,7 @@ + } + + /* QNX {{{2 */ +-#elif defined (HAVE_QNX) ++#elif defined (HAVE_QNX) || defined(__redox__) + + static char * + get_mtab_monitor_file (void) +@@ -1758,6 +1758,28 @@ + return NULL; + } + ++#elif defined(__redox__) ++ ++static GUnixMountPoint ** ++_g_unix_mount_points_get_from_file (const char *table_path, ++ uint64_t *time_read_out, ++ size_t *n_points_out) ++{ ++ /* Not supported on Redox. */ ++ if (time_read_out != NULL) ++ *time_read_out = 0; ++ if (n_points_out != NULL) ++ *n_points_out = 0; ++ return NULL; ++} ++ ++static GList * ++_g_get_unix_mount_points (void) ++{ ++ /* Not supported on Redox. */ ++ return NULL; ++} ++ + /* 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 +@@ -18,7 +18,7 @@ + + gnetworking_h_nameser_compat_include = '' + +-if host_system not in ['windows', 'android'] ++if host_system not in ['windows', 'android', 'redox'] + # Don't check for C_IN on Android since it does not define it in public + # headers, we define it ourselves wherever necessary + if not cc.compiles('''#include +@@ -39,7 +39,7 @@ + + network_libs = [ ] + network_args = [ ] +-if host_system != 'windows' ++if host_system not in ['windows', 'redox'] + # 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 +@@ -243,7 +243,7 @@ + } + else /* We should prefer EXTERNAL whenever it is allowed. */ + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(__redox__) + /* 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 +@@ -74,6 +74,10 @@ + #include + #endif /* defined (__FreeBSD__ )*/ + ++#if defined(__redox__) ++#include ++#endif ++ + G_STATIC_ASSERT (sizeof (ssize_t) == GLIB_SIZEOF_SSIZE_T); + G_STATIC_ASSERT (G_ALIGNOF (gssize) == G_ALIGNOF (ssize_t)); + G_STATIC_ASSERT (G_SIGNEDNESS_OF (ssize_t) == 1); +@@ -1004,6 +1008,20 @@ + g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_NOSYS, + "g_unix_fd_query_path() not supported on HURD"); + return NULL; ++#elif defined(__redox__) ++ char file_path[PATH_MAX] = {0}; ++ ++ if (redox_fpath (fd, file_path, PATH_MAX) < 0) ++ { ++ int errsv = errno; ++ ++ g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errsv), ++ "Error querying file information for FD %d: %s", ++ fd, g_strerror (errsv)); ++ return NULL; ++ } ++ ++ return g_strdup (file_path); + #else + #error "g_unix_fd_query_path() not supported on this platform" + #endif diff --git a/recipes/libs/gstreamer/recipe.toml b/recipes/libs/gstreamer/recipe.toml new file mode 100644 index 000000000..4944a00b2 --- /dev/null +++ b/recipes/libs/gstreamer/recipe.toml @@ -0,0 +1,79 @@ +[source] +tar = "https://gitlab.freedesktop.org/gstreamer/gstreamer/-/archive/1.24.12/gstreamer-1.24.12.tar.gz" +blake3 = "181daf73050f7472ec656e7461b7f67028d6002c1133870576033a32e43a364f" +patches = ["redox.patch"] + +[build] +template = "custom" +dependencies = [ + "bzip2", + "cairo", + "curl", + "expat", + #TODO: "ffmpeg6", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + "harfbuzz", + "libass", + "libffi", + "libgmp", + "libiconv", + "libicu", + "libjpeg", + "libmodplug1", + "libnettle", + "libogg", + "libpng", + "libpsl", + "libpthread-stubs", + "libsndfile", + "libsoup", + "libvorbis", + "libwebp", + "libx11", + "libxau", + "libxcb", + #TODO: "libxdamage", + "libxext", + "libxfixes", + "libxi", + "libxml2", + "libxxf86vm", + "mesa-x11", + "nghttp2", + #TODO: "openal", + "openssl1", + "pango", + "pcre2", + "pixman", + "sqlite3", + "x11proto", + "xextproto", + "xz", + "zlib", +] +script = """ +DYNAMIC_INIT + +export GLIB_GENMARSHAL="$(which glib-genmarshal)" +export GLIB_MKENUMS="$(which glib-mkenums)" + +CFLAGS="${CFLAGS} -DM_LN2=0.69314718055994530942" +cookbook_meson \ + -Ddevtools=disabled \ + -Dexamples=disabled \ + -Dlibav=disabled \ + -Dlibnice=disabled \ + -Dorc=disabled \ + -Dtests=disabled \ + -Dtools=enabled \ + -Dgstreamer:check=disabled \ + -Dgstreamer:coretracers=disabled \ + -Dgst-plugins-bad:shm=disabled \ + -Dgst-plugins-base:xshm=disabled \ + -Dgst-plugins-good:ximagesrc-xshm=disabled +""" diff --git a/recipes/libs/gstreamer/redox.patch b/recipes/libs/gstreamer/redox.patch new file mode 100644 index 000000000..5818879f5 --- /dev/null +++ b/recipes/libs/gstreamer/redox.patch @@ -0,0 +1,19 @@ +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 @@ + install: false) + endif + +-executable('mklicensestables', 'mklicensestables.c', +- c_args : gst_plugins_base_args, +- include_directories: [configinc], +- dependencies : [tag_dep, gst_base_dep], +- install : false) ++#executable('mklicensestables', 'mklicensestables.c', ++# c_args : gst_plugins_base_args, ++# include_directories: [configinc], ++# dependencies : [tag_dep, gst_base_dep], ++# install : false) + + gst_tag_dir = meson.current_source_dir() diff --git a/recipes/libs/harfbuzz/recipe.toml b/recipes/libs/harfbuzz/recipe.toml new file mode 100644 index 000000000..33c03043b --- /dev/null +++ b/recipes/libs/harfbuzz/recipe.toml @@ -0,0 +1,23 @@ +[source] +tar = "https://github.com/harfbuzz/harfbuzz/releases/download/11.0.1/harfbuzz-11.0.1.tar.xz" +blake3 = "51f0edaaf2e9b7a7176d3252f15d03d409ef7ad35f77b050c407de89f85b77c5" + +[build] +template = "custom" +dependencies = [ + "freetype2", + "gettext", + "glib", + "libffi", + "libiconv", + "libicu", + "libpng", + "pcre2", + "zlib" +] +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Ddocs=disabled \ + -Dtests=disabled +""" diff --git a/recipes/libs/jansson/jansson.patch b/recipes/libs/jansson/jansson.patch new file mode 100644 index 000000000..2224e95c1 --- /dev/null +++ b/recipes/libs/jansson/jansson.patch @@ -0,0 +1,12 @@ +diff -ru source-new/config.sub source/config.sub +--- source-new/config.sub 2017-11-06 18:59:18.499577613 -0800 ++++ source/config.sub 2017-11-02 19:26:02.253397873 -0700 +@@ -1368,7 +1368,7 @@ + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. +- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ ++ -gnu* | -bsd* | -redox* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ diff --git a/recipes/libs/jansson/recipe.toml b/recipes/libs/jansson/recipe.toml new file mode 100644 index 000000000..2e2538d9f --- /dev/null +++ b/recipes/libs/jansson/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://github.com/akheron/jansson/releases/download/v2.10/jansson-2.10.tar.gz" +blake3 = "3c74f374a6c7ac5e323f72d87e49e5309ca922ca26cfe4992873b31f28776624" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/libs/libarchive/recipe.toml b/recipes/libs/libarchive/recipe.toml new file mode 100644 index 000000000..033f271ee --- /dev/null +++ b/recipes/libs/libarchive/recipe.toml @@ -0,0 +1,9 @@ +[source] +tar = "https://libarchive.org/downloads/libarchive-3.6.2.tar.xz" +blake3 = "f98695fe81235a74fa3fc2c3ba0f0d4f13ea15f9be3850b83e304cf5d78be710" +patches = [ + "redox.patch" +] + +[build] +template = "configure" diff --git a/recipes/libs/libarchive/redox.patch b/recipes/libs/libarchive/redox.patch new file mode 100644 index 000000000..de545f297 --- /dev/null +++ b/recipes/libs/libarchive/redox.patch @@ -0,0 +1,13 @@ +diff -ruwN source/configure source-new/configure +--- source/configure 2022-12-09 20:38:47.000000000 +0700 ++++ source-new/configure 2025-09-14 17:17:50.138530195 +0700 +@@ -19039,7 +19039,8 @@ + ac_fn_c_check_func "$LINENO" "fstatat" "ac_cv_func_fstatat" + if test "x$ac_cv_func_fstatat" = xyes + then : +- printf "%s\n" "#define HAVE_FSTATAT 1" >>confdefs.h ++# When fstatat works, remove this patch ++# printf "%s\n" "#define HAVE_FSTATAT 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "fstatfs" "ac_cv_func_fstatfs" diff --git a/recipes/libs/libatomic/recipe.toml b/recipes/libs/libatomic/recipe.toml new file mode 100644 index 000000000..e6f08a2e2 --- /dev/null +++ b/recipes/libs/libatomic/recipe.toml @@ -0,0 +1,16 @@ +[source] +same_as = "../../dev/gcc13" + +[build] +template = "custom" +dependencies = [ + "libgmp", + "libmpfr", + "mpc", + "zlib" +] +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/libatomic/configure" +cookbook_configure +""" diff --git a/recipes/libs/libcosmic/recipe.toml b/recipes/libs/libcosmic/recipe.toml new file mode 100644 index 000000000..cd89c2f61 --- /dev/null +++ b/recipes/libs/libcosmic/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/libcosmic.git" +branch = "redox" + +[build] +template = "custom" +script = """ +cookbook_cargo_packages cosmic +""" diff --git a/recipes/libs/libffi/recipe.toml b/recipes/libs/libffi/recipe.toml new file mode 100644 index 000000000..8851cfcea --- /dev/null +++ b/recipes/libs/libffi/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://github.com/libffi/libffi/releases/download/v3.4.5/libffi-3.4.5.tar.gz" +blake3 = "f9a2cfe1d2ac8d211c18c99f9cfafe5537925101bfb92c2d44d844680dd82264" +script = """ +DYNAMIC_INIT +cp ${COOKBOOK_HOST_SYSROOT}/share/aclocal/libtool.m4 ./m4/ +cp -fp ${COOKBOOK_HOST_SYSROOT}/share/libtool/build-aux/ltmain.sh ./ +cp ${COOKBOOK_HOST_SYSROOT}/share/aclocal/ltversion.m4 ./m4/ + +autotools_recursive_regenerate -I$(realpath ./m4) +""" + +[build] +template = "custom" +script = """ +DYNAMIC_STATIC_INIT +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/libs/libflac/recipe.toml b/recipes/libs/libflac/recipe.toml new file mode 100644 index 000000000..fbf20faa5 --- /dev/null +++ b/recipes/libs/libflac/recipe.toml @@ -0,0 +1,8 @@ +[source] +tar = "https://github.com/xiph/flac/releases/download/1.4.2/flac-1.4.2.tar.xz" +blake3 = "d165b9a18eb83b6f6e9993cc2074547566df706fc61464eb17ff088fd0c88104" +[build] +template = "configure" +dependencies = [ + "libogg", +] diff --git a/recipes/libs/libgcc/recipe.toml b/recipes/libs/libgcc/recipe.toml new file mode 100644 index 000000000..da72a5e9d --- /dev/null +++ b/recipes/libs/libgcc/recipe.toml @@ -0,0 +1,6 @@ +[build] +template = "custom" +script = """ +mkdir -p "${COOKBOOK_STAGE}/lib" +cp -av ${COOKBOOK_HOST_SYSROOT}/${GNU_TARGET}/lib/libgcc_s.so* ${COOKBOOK_STAGE}/lib/ +""" diff --git a/recipes/libs/libgmp/recipe.toml b/recipes/libs/libgmp/recipe.toml new file mode 100644 index 000000000..d43a6ab9f --- /dev/null +++ b/recipes/libs/libgmp/recipe.toml @@ -0,0 +1,18 @@ +# GNU Multiple Precision Arithmetic Library (GMP) is a free and open source +# library for arbitrary-precision arithmetic, operating on signed integers, +# rational numbers, and floating-point numbers. + +[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 +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/libs/libiconv/01_redox.patch b/recipes/libs/libiconv/01_redox.patch new file mode 100644 index 000000000..1e083ca81 --- /dev/null +++ b/recipes/libs/libiconv/01_redox.patch @@ -0,0 +1,36 @@ +diff '--color=auto' -ur source/srclib/getprogname.c source-new/srclib/getprogname.c +--- source/srclib/getprogname.c 2022-01-04 19:33:29.000000000 +1100 ++++ source-new/srclib/getprogname.c 2024-11-24 00:42:48.384997609 +1100 +@@ -28,6 +28,14 @@ + # include + #endif + ++#if defined(__redox__) ++# include ++# include ++# include ++# include ++# include ++#endif ++ + #ifdef __MVS__ + # ifndef _OPEN_SYS + # define _OPEN_SYS +@@ -287,6 +295,17 @@ + close (fd); + } + return "?"; ++# elif defined(__redox__) ++ char filename[PATH_MAX]; ++ int fd = open ("sys:exe", O_RDONLY); ++ if (fd > 0) { ++ int len = read(fd, filename, PATH_MAX-1); ++ if (len > 0) { ++ filename[len] = '\0'; ++ return strdup(filename); ++ } ++ } ++ return NULL; + # else + # error "getprogname module not ported to this OS" + # endif diff --git a/recipes/libs/libiconv/recipe.toml b/recipes/libs/libiconv/recipe.toml new file mode 100644 index 000000000..a70ef8268 --- /dev/null +++ b/recipes/libs/libiconv/recipe.toml @@ -0,0 +1,27 @@ +[source] +tar = "https://ftp.gnu.org/gnu/libiconv/libiconv-1.17.tar.gz" +blake3 = "820b3b9fd3e2181bfb95475f01e9a3451e6d751e4f8c98ebcdcca1d8aa720f7f" +patches = [ + "01_redox.patch" +] +script = """ +DYNAMIC_INIT +cp ${COOKBOOK_HOST_SYSROOT}/share/aclocal/libtool.m4 ./m4/ +cp ${COOKBOOK_HOST_SYSROOT}/share/aclocal/libtool.m4 ./libcharset/m4/ +cp -fp ${COOKBOOK_HOST_SYSROOT}/share/libtool/build-aux/ltmain.sh ./build-aux/ +cp -fp ${COOKBOOK_HOST_SYSROOT}/share/libtool/build-aux/ltmain.sh ./libcharset/build-aux/ +cp ${COOKBOOK_HOST_SYSROOT}/share/aclocal/ltversion.m4 ./m4/ +cp ${COOKBOOK_HOST_SYSROOT}/share/aclocal/ltversion.m4 ./libcharset/m4/ + +autotools_recursive_regenerate -I$(realpath ./m4) -I$(realpath ./srcm4) +""" + +[build] +template = "custom" +script = """ +DYNAMIC_STATIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + ac_cv_have_decl_program_invocation_name=no +) +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/libs/libjpeg/recipe.toml b/recipes/libs/libjpeg/recipe.toml new file mode 100644 index 000000000..b7b417412 --- /dev/null +++ b/recipes/libs/libjpeg/recipe.toml @@ -0,0 +1,11 @@ +# libjpeg-turbo is compatible with libjpeg +[source] +tar = "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.0/libjpeg-turbo-3.1.0.tar.gz" +blake3 = "3efc14da55c56fc0a6a50f109d9e1ee8a91f5ae7dd17a21d3aebe04a65f3ee96" + +[build] +template = "custom" +script = """ +DYNAMIC_STATIC_INIT +cookbook_cmake +""" diff --git a/recipes/libs/libmodplug1/recipe.toml b/recipes/libs/libmodplug1/recipe.toml new file mode 100644 index 000000000..3e3420c02 --- /dev/null +++ b/recipes/libs/libmodplug1/recipe.toml @@ -0,0 +1,14 @@ +[source] +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 +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/libs/libmpfr/recipe.toml b/recipes/libs/libmpfr/recipe.toml new file mode 100644 index 000000000..ab5477a93 --- /dev/null +++ b/recipes/libs/libmpfr/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://www.mpfr.org/mpfr-current/mpfr-4.2.2.tar.xz" +blake3 = "11d59d061ef8db588650bc7dc5172594a6e5aad013994801c6f63011a62b191d" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "libgmp", +] +script = """ +DYNAMIC_INIT +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/libs/libnettle/recipe.toml b/recipes/libs/libnettle/recipe.toml new file mode 100644 index 000000000..b5dd3ce43 --- /dev/null +++ b/recipes/libs/libnettle/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://ftp.gnu.org/gnu/nettle/nettle-3.9.1.tar.gz" +blake3 = "e4bfbda32f4fdf5ed96c152efe3a3867193b690faa5378d02a2a6fd052ee3393" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "libgmp" +] +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/libs/libogg/recipe.toml b/recipes/libs/libogg/recipe.toml new file mode 100644 index 000000000..9e219c87c --- /dev/null +++ b/recipes/libs/libogg/recipe.toml @@ -0,0 +1,10 @@ +[source] +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 +""" + +[build] +template = "configure" diff --git a/recipes/libs/liborbital/recipe.toml b/recipes/libs/liborbital/recipe.toml new file mode 100644 index 000000000..469d57f10 --- /dev/null +++ b/recipes/libs/liborbital/recipe.toml @@ -0,0 +1,12 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/liborbital.git" + +[build] +template = "custom" +script = """ +DYNAMIC_STATIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +"${COOKBOOK_CARGO}" build --release +# other than x86_64 this will trigger error because of lacking .so files, which is fine +"${COOKBOOK_MAKE}" install HOST="${TARGET}" DESTDIR="${COOKBOOK_STAGE}" || true +""" diff --git a/recipes/libs/libpng/recipe.toml b/recipes/libs/libpng/recipe.toml new file mode 100644 index 000000000..cd413dafd --- /dev/null +++ b/recipes/libs/libpng/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://github.com/pnggroup/libpng/archive/refs/tags/v1.6.46.tar.gz" +blake3 = "36f4bbb48c70975116b00ab0cff577931b96f703b2774ac3b33131d001419435" +script = """ +DYNAMIC_INIT +chmod +w config.sub +GNU_CONFIG_GET config.sub +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = ["zlib"] +script = """ +DYNAMIC_STATIC_INIT +cookbook_configure +""" diff --git a/recipes/libs/libpsl/recipe.toml b/recipes/libs/libpsl/recipe.toml new file mode 100644 index 000000000..cbc487885 --- /dev/null +++ b/recipes/libs/libpsl/recipe.toml @@ -0,0 +1,14 @@ +[source] +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 +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/libs/libsodium/recipe.toml b/recipes/libs/libsodium/recipe.toml new file mode 100644 index 000000000..8f6a2db3e --- /dev/null +++ b/recipes/libs/libsodium/recipe.toml @@ -0,0 +1,15 @@ +[source] +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" +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/libs/libssh2/recipe.toml b/recipes/libs/libssh2/recipe.toml new file mode 100644 index 000000000..1b33f11ab --- /dev/null +++ b/recipes/libs/libssh2/recipe.toml @@ -0,0 +1,15 @@ +[source] +tar = "https://www.libssh2.org/download/libssh2-1.10.0.tar.gz" +blake3 = "2447216ce82c1d22301456bb02f60dfb6688f1461417b90f900c099a87f1292f" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = ["openssl1"] +script = """ +DYNAMIC_INIT +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/libs/libstdcxx-v3/recipe.toml b/recipes/libs/libstdcxx-v3/recipe.toml new file mode 100644 index 000000000..be917ca27 --- /dev/null +++ b/recipes/libs/libstdcxx-v3/recipe.toml @@ -0,0 +1,18 @@ +[source] +same_as = "../../dev/gcc13" + +[build] +template = "custom" +dependencies = [ + "libgmp", + "libmpfr", + "mpc", + "zlib" +] +script = """ +DYNAMIC_INIT +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" +cookbook_configure +""" diff --git a/recipes/libs/libstdcxx/recipe.toml b/recipes/libs/libstdcxx/recipe.toml new file mode 100644 index 000000000..cd9664481 --- /dev/null +++ b/recipes/libs/libstdcxx/recipe.toml @@ -0,0 +1,8 @@ +[build] +template = "custom" +script = """ +if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then +mkdir -p "${COOKBOOK_STAGE}/lib" +cp -av ${COOKBOOK_HOST_SYSROOT}/${GNU_TARGET}/lib/libstdc++.so* ${COOKBOOK_STAGE}/lib/ +fi +""" diff --git a/recipes/libs/liburcu/0001-Fix-compilation-on-Redox-OS.patch b/recipes/libs/liburcu/0001-Fix-compilation-on-Redox-OS.patch new file mode 100644 index 000000000..2918bb147 --- /dev/null +++ b/recipes/libs/liburcu/0001-Fix-compilation-on-Redox-OS.patch @@ -0,0 +1,25 @@ +From: bjorn3 <17426603+bjorn3@users.noreply.github.com> +Date: Sat, 6 Dec 2025 15:59:20 +0100 +Subject: [PATCH] Fix compilation on Redox OS + +--- + include/urcu/syscall-compat.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/include/urcu/syscall-compat.h b/include/urcu/syscall-compat.h +index 23b266e..2c3b03f 100644 +--- a/include/urcu/syscall-compat.h ++++ b/include/urcu/syscall-compat.h +@@ -33,7 +33,8 @@ + #include + + #elif defined(__CYGWIN__) || defined(__APPLE__) || \ +- defined(__FreeBSD__) || defined(__DragonFly__) ++ defined(__FreeBSD__) || defined(__DragonFly__) || \ ++ defined(__redox__) + /* Don't include anything on these platforms. */ + + #else +-- +2.47.3 + diff --git a/recipes/libs/liburcu/recipe.toml b/recipes/libs/liburcu/recipe.toml new file mode 100644 index 000000000..80a257cdb --- /dev/null +++ b/recipes/libs/liburcu/recipe.toml @@ -0,0 +1,6 @@ +[source] +tar = "https://lttng.org/files/urcu/userspace-rcu-0.14.0.tar.bz2" +patches = ["0001-Fix-compilation-on-Redox-OS.patch"] + +[build] +template = "configure" diff --git a/recipes/libs/libuv/recipe.toml b/recipes/libs/libuv/recipe.toml new file mode 100644 index 000000000..23b563c32 --- /dev/null +++ b/recipes/libs/libuv/recipe.toml @@ -0,0 +1,15 @@ +[source] +tar = "https://dist.libuv.org/dist/v1.51.0/libuv-v1.51.0.tar.gz" +blake3 = "e8b5e68bc2d0776ac4ea67df59d694fca58d5cc570c103443a2284e723d01fc2" +patches = ["redox.patch"] + +[build] +template = "custom" +script = """ +DYNAMIC_INIT + +COOKBOOK_CMAKE_FLAGS+=( + -DBUILD_TESTING=Off +) +cookbook_cmake +""" diff --git a/recipes/libs/libuv/redox.patch b/recipes/libs/libuv/redox.patch new file mode 100644 index 000000000..a99c1c54e --- /dev/null +++ b/recipes/libs/libuv/redox.patch @@ -0,0 +1,353 @@ +diff -ruwN source/CMakeLists.txt source-new/CMakeLists.txt +--- source/CMakeLists.txt 2025-04-25 16:50:27.000000000 +0700 ++++ source-new/CMakeLists.txt 2025-10-10 11:19:40.329762962 +0700 +@@ -1,3 +1,4 @@ ++set (CMAKE_CXX_STANDARD 99) + cmake_minimum_required(VERSION 3.10) + + if(POLICY CMP0091) +@@ -323,6 +324,18 @@ + src/unix/hurd.c) + endif() + ++ ++if(CMAKE_SYSTEM_NAME STREQUAL "UnixPaths") # Redox ++ list(APPEND uv_libraries dl) ++ list(APPEND uv_sources ++ src/unix/no-fsevents.c ++ src/unix/proctitle.c ++ src/unix/posix-hrtime.c ++ src/unix/posix-poll.c ++ src/unix/redox.c ++ ) ++endif() ++ + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND uv_defines _GNU_SOURCE _POSIX_C_SOURCE=200112) + list(APPEND uv_libraries dl rt) +diff -ruwN source/include/uv/unix.h source-new/include/uv/unix.h +--- source/include/uv/unix.h 2025-04-25 16:50:27.000000000 +0700 ++++ source-new/include/uv/unix.h 2025-10-10 11:18:29.024386515 +0700 +@@ -66,6 +66,7 @@ + defined(__MSYS__) || \ + defined(__HAIKU__) || \ + defined(__QNX__) || \ ++ defined(__redox__) || \ + defined(__GNU__) + # include "uv/posix.h" + #endif +diff -ruwN source/src/unix/core.c source-new/src/unix/core.c +--- source/src/unix/core.c 2025-04-25 16:50:27.000000000 +0700 ++++ source-new/src/unix/core.c 2025-10-10 11:23:22.143824390 +0700 +@@ -110,6 +110,10 @@ + # include + #endif + ++#if defined(__redox__) ++#define MSG_CMSG_CLOEXEC 0x40000000 //linux specific flag ++#endif ++ + static void uv__run_pending(uv_loop_t* loop); + + /* Verify that uv_buf_t is ABI-compatible with struct iovec. */ +@@ -722,7 +726,8 @@ + defined(__FreeBSD__) || \ + defined(__NetBSD__) || \ + defined(__OpenBSD__) || \ +- defined(__linux__) ++ defined(__linux__) || \ ++ defined(__redox__) + ssize_t rc; + rc = recvmsg(fd, msg, flags | MSG_CMSG_CLOEXEC); + if (rc == -1) +@@ -1644,6 +1649,11 @@ + * So the output parameter priority is actually the nice value. + */ + int uv_thread_getpriority(uv_thread_t tid, int* priority) { ++#ifdef __redox__ ++ if (priority == NULL) ++ return UV_EINVAL; ++ *priority = 0; ++#else + int r; + int policy; + struct sched_param param; +@@ -1670,6 +1680,7 @@ + #endif + + *priority = param.sched_priority; ++#endif + return 0; + } + +@@ -1695,7 +1706,7 @@ + * If the function fails, the return value is non-zero. + */ + int uv_thread_setpriority(uv_thread_t tid, int priority) { +-#if !defined(__GNU__) ++#if !defined(__GNU__) && !defined(__redox__) + int r; + int min; + int max; +diff -ruwN source/src/unix/fs.c source-new/src/unix/fs.c +--- source/src/unix/fs.c 2025-04-25 16:50:27.000000000 +0700 ++++ source-new/src/unix/fs.c 2025-10-10 11:18:29.024993834 +0700 +@@ -77,7 +77,8 @@ + defined(__MVS__) || \ + defined(__NetBSD__) || \ + defined(__HAIKU__) || \ +- defined(__QNX__) ++ defined(__QNX__) || \ ++ defined(__redox__) + # include + #else + # include +@@ -683,13 +684,13 @@ + defined(__MVS__) || \ + defined(__NetBSD__) || \ + defined(__HAIKU__) || \ +- defined(__QNX__) ++ defined(__QNX__) || \ ++ defined(__redox__) + struct statvfs buf; + + if (0 != statvfs(req->path, &buf)) + #else + struct statfs buf; +- + if (0 != statfs(req->path, &buf)) + #endif /* defined(__sun) */ + return -1; +@@ -705,7 +706,8 @@ + defined(__OpenBSD__) || \ + defined(__NetBSD__) || \ + defined(__HAIKU__) || \ +- defined(__QNX__) ++ defined(__QNX__) || \ ++ defined(__redox__) + stat_fs->f_type = 0; /* f_type is not supported. */ + #else + stat_fs->f_type = buf.f_type; +diff -ruwN source/src/unix/proctitle.c source-new/src/unix/proctitle.c +--- source/src/unix/proctitle.c 2025-04-25 16:50:27.000000000 +0700 ++++ source-new/src/unix/proctitle.c 2025-10-10 11:18:29.025229760 +0700 +@@ -30,7 +30,13 @@ + size_t cap; /* Maximum capacity. Computed once in uv_setup_args(). */ + }; + ++#if defined(__redox__) ++void uv__set_process_title(const char* title) { ++ // requires sys/prctl ++} ++#else + extern void uv__set_process_title(const char* title); ++#endif + + static uv_mutex_t process_title_mutex; + static uv_once_t process_title_mutex_once = UV_ONCE_INIT; +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 @@ ++/* Copyright libuv contributors. All rights reserved. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to ++ * deal in the Software without restriction, including without limitation the ++ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ++ * IN THE SOFTWARE. ++ */ ++ ++#include "uv.h" ++#include "internal.h" ++ ++#include ++#include ++#include ++ ++static void ++get_mem_info(uint64_t* totalmem, uint64_t* freemem) { ++ *totalmem = 0; ++ *freemem = 0; ++} ++ ++ ++void uv_loadavg(double avg[3]) { ++ avg[0] = 0.0; ++ avg[1] = 0.0; ++ avg[2] = 0.0; ++} ++ ++ ++int uv_exepath(char* buffer, size_t* size) { ++ if (buffer == NULL || size == NULL || *size == 0) { ++ return UV_EINVAL; ++ } ++ FILE* fp = fopen("/scheme/sys/exe", "r"); ++ if (fp == NULL) { ++ return -errno; ++ } ++ if (fgets(buffer, *size, fp) == NULL) { ++ fclose(fp); ++ return UV_EIO; ++ } ++ fclose(fp); ++ buffer[strcspn(buffer, "\r\n")] = '\0'; ++ *size = strlen(buffer); ++ return 0; ++} ++ ++int uv_interface_addresses(uv_interface_address_t** addresses, int* count) { ++ return 0; ++} ++ ++ ++uint64_t uv_get_free_memory(void) { ++ return 0; ++} ++ ++ ++uint64_t uv_get_total_memory(void) { ++ return 0; ++} ++ ++ ++uint64_t uv_get_constrained_memory(void) { ++ return 0; ++} ++ ++ ++uint64_t uv_get_available_memory(void) { ++ return uv_get_free_memory(); ++} ++ ++ ++int uv_resident_set_memory(size_t* rss) { ++ return 0; ++} ++ ++ ++int uv_uptime(double* uptime) { ++ return 0; ++} ++ ++ ++int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { ++ return 0; ++} ++ ++void uv_free_interface_addresses(uv_interface_address_t* addresses, ++ int count) { ++} +diff -ruwN source/src/unix/stream.c source-new/src/unix/stream.c +--- source/src/unix/stream.c 2025-04-25 16:50:27.000000000 +0700 ++++ source-new/src/unix/stream.c 2025-10-10 11:18:29.028522718 +0700 +@@ -29,7 +29,14 @@ + #include + + #include ++#if defined(__redox__) ++#define _GNU_SOURCE ++#include + #include ++#include ++#else ++#include ++#endif + #include + #include + #include +@@ -39,6 +46,7 @@ + # include + # include + # include ++#endif + + /* Forward declaration */ + typedef struct uv__stream_select_s uv__stream_select_t; +@@ -58,7 +66,6 @@ + fd_set* swrite; + size_t swrite_sz; + }; +-#endif /* defined(__APPLE__) */ + + union uv__cmsg { + struct cmsghdr hdr; +diff -ruwN source/src/unix/tcp.c source-new/src/unix/tcp.c +--- source/src/unix/tcp.c 2025-04-25 16:50:27.000000000 +0700 ++++ source-new/src/unix/tcp.c 2025-10-10 11:26:03.504101758 +0700 +@@ -31,7 +31,7 @@ + #include + + /* ifaddrs is not implemented on AIX and IBM i PASE */ +-#if !defined(_AIX) ++#if !defined(_AIX) && !defined(__redox__) + #include + #endif + +@@ -228,7 +228,7 @@ + static int uv__ipv6_link_local_scope_id(void) { + struct sockaddr_in6* a6; + int rv; +-#if defined(_AIX) ++#if defined(_AIX) || defined(__redox__) + /* AIX & IBM i do not have ifaddrs + * so fallback to use uv_interface_addresses */ + uv_interface_address_t* interfaces; +@@ -268,7 +268,7 @@ + } + + freeifaddrs(ifa); +-#endif /* defined(_AIX) */ ++#endif /* defined(_AIX) || defined(__redox__) */ + + return rv; + } +diff -ruwN source/src/unix/thread.c source-new/src/unix/thread.c +--- source/src/unix/thread.c 2025-04-25 16:50:27.000000000 +0700 ++++ source-new/src/unix/thread.c 2025-10-10 11:25:10.712328011 +0700 +@@ -897,7 +897,7 @@ + abort(); + } + +-#if defined(_AIX) || defined(__MVS__) || defined(__PASE__) ++#if defined(_AIX) || defined(__redox__) || defined(__MVS__) || defined(__PASE__) + int uv__thread_setname(const char* name) { + return UV_ENOSYS; + } +@@ -937,6 +937,7 @@ + + #if (defined(__ANDROID_API__) && __ANDROID_API__ < 26) || \ + defined(_AIX) || \ ++ defined(__redox__) || \ + defined(__MVS__) || \ + defined(__PASE__) + int uv__thread_getname(uv_thread_t* tid, char* name, size_t size) { +diff -ruwN source/src/unix/udp.c source-new/src/unix/udp.c +--- source/src/unix/udp.c 2025-04-25 16:50:27.000000000 +0700 ++++ source-new/src/unix/udp.c 2025-10-10 11:18:29.028778883 +0700 +@@ -31,6 +31,12 @@ + #include + #endif + #include ++#if defined(__redox__) ++#include ++#include ++#include ++#include ++#endif + + #if defined(IPV6_JOIN_GROUP) && !defined(IPV6_ADD_MEMBERSHIP) + # define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP diff --git a/recipes/libs/libvorbis/recipe.toml b/recipes/libs/libvorbis/recipe.toml new file mode 100644 index 000000000..7cbeca05c --- /dev/null +++ b/recipes/libs/libvorbis/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://github.com/xiph/vorbis/releases/download/v1.3.7/libvorbis-1.3.7.tar.xz" +blake3 = "c67f3f74ec26d93a5571c4404a64eb6e6587d7d77b46b552f7b410f5bc5b1f03" +script = """ +DYNAMIC_INIT +GNU_CONFIG_GET config.sub +autotools_recursive_regenerate +""" + +[build] +template = "configure" +dependencies = [ + "libogg" +] diff --git a/recipes/libs/libxml2/recipe.toml b/recipes/libs/libxml2/recipe.toml new file mode 100644 index 000000000..f37f42966 --- /dev/null +++ b/recipes/libs/libxml2/recipe.toml @@ -0,0 +1,21 @@ +[source] +tar = "https://download.gnome.org/sources/libxml2/2.11/libxml2-2.11.3.tar.xz" +blake3 = "0653d3750576299c4cb88740942165671b576ff93019f3d669b3f37136225ab7" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "xz", + "zlib" +] +script = """ +DYNAMIC_STATIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --without-python +) +cookbook_configure +""" diff --git a/recipes/libs/lua-compat-53/recipe.toml b/recipes/libs/lua-compat-53/recipe.toml new file mode 100644 index 000000000..edbca1c43 --- /dev/null +++ b/recipes/libs/lua-compat-53/recipe.toml @@ -0,0 +1,11 @@ +[source] +git = "https://github.com/lunarmodules/lua-compat-5.3.git" +[build] +template = "custom" +dependencies = [ + "lua54" +] +script = """ +mkdir -pv "${COOKBOOK_STAGE}/include" +cp -r "$COOKBOOK_SOURCE/c-api/." "${COOKBOOK_STAGE}/include" +""" diff --git a/recipes/libs/luv/recipe.toml b/recipes/libs/luv/recipe.toml new file mode 100644 index 000000000..ed5a3b877 --- /dev/null +++ b/recipes/libs/luv/recipe.toml @@ -0,0 +1,17 @@ +[source] +git = "https://github.com/luvit/luv.git" +[build] +template = "custom" +dependencies = [ + "libuv", + "luajit" +] +script = """ +DYNAMIC_INIT +COOKBOOK_CMAKE_FLAGS+=( + -DWITH_LUA_ENGINE=Luajit + -DLUA_BUILD_TYPE=System + -DWITH_SHARED_LIBUV=On +) +cookbook_cmake +""" diff --git a/recipes/libs/mesa-glu/recipe.toml b/recipes/libs/mesa-glu/recipe.toml new file mode 100644 index 000000000..db79f16ac --- /dev/null +++ b/recipes/libs/mesa-glu/recipe.toml @@ -0,0 +1,12 @@ +[source] +tar = "https://archive.mesa3d.org/glu/glu-9.0.3.tar.xz" +blake3 = "beed1665ed983540e7502289ec50c7e66d840820af3e9ef21c9c4a7e9686ab9f" + +[build] +dependencies = ["mesa"] +template = "custom" +script = """ +DYNAMIC_INIT + +cookbook_meson -Dgl_provider=osmesa +""" diff --git a/recipes/libs/mesa/recipe.toml b/recipes/libs/mesa/recipe.toml new file mode 100644 index 000000000..232145af5 --- /dev/null +++ b/recipes/libs/mesa/recipe.toml @@ -0,0 +1,47 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/mesa.git" +upstream = "https://gitlab.freedesktop.org/mesa/mesa" +branch = "redox-24.0" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "expat", + "libdrm", + "liborbital", + "llvm21", + "zlib", +] +dev-dependencies = [ + "llvm21.dev", + "host:llvm21.dev", + "host:llvm21.runtime", +] +script = """ +DYNAMIC_INIT + +#TODO: Should be CPPFLAGS but cookbook_meson isn't reading it +export CFLAGS+=" -DHAVE_PTHREAD=1 -I${COOKBOOK_SYSROOT}/include/libdrm" +export LLVM_CONFIG="${TARGET}-llvm-config" +export LDFLAGS+=" -lorbital" + +if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then + COOKBOOK_MESON_FLAGS+=(-Dshared-llvm=enabled) +else + COOKBOOK_MESON_FLAGS+=(-Dshared-llvm=disabled) +fi + +cookbook_meson \ + -Ddri-drivers-path=/usr/lib/dri \ + -Degl=enabled \ + -Dglx=disabled \ + -Dllvm=enabled \ + -Dosmesa=true \ + -Dplatforms=redox \ + -Dshader-cache=disabled + +# 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" +LLVMLIBS+=" -lLLVMMCJIT -lLLVMScalarOpts -lLLVMTransformUtils -lLLVMCoroutines -lLLVMLTO" +sed -i "s/ -lOSMesa / -lOSMesa ${LLVMLIBS} -lstdc++ /" "${COOKBOOK_STAGE}/usr/lib/pkgconfig/osmesa.pc" +""" diff --git a/recipes/libs/mpc/recipe.toml b/recipes/libs/mpc/recipe.toml new file mode 100644 index 000000000..a3d31b915 --- /dev/null +++ b/recipes/libs/mpc/recipe.toml @@ -0,0 +1,20 @@ + # C library for the arithmetic of complex numbers with arbitrarily high + # precision and correct rounding of the result. + +[source] +tar = "https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "libgmp", + "libmpfr", +] +script = """ +DYNAMIC_INIT +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/libs/ncurses/recipe.toml b/recipes/libs/ncurses/recipe.toml new file mode 100644 index 000000000..87fc7479c --- /dev/null +++ b/recipes/libs/ncurses/recipe.toml @@ -0,0 +1,30 @@ +[source] +tar = "https://ftp.gnu.org/gnu/ncurses/ncurses-6.4.tar.gz" +blake3 = "0d1c9fdf53c0ca4bd66ba707d49a079d2dd6f5a960cdec74a56e29952c4ffe73" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-db-install + --disable-stripping + --without-ada + --without-manpages + --without-tests + cf_cv_func_mkstemp=yes +) +if [ "${COOKBOOK_DYNAMIC}" == "1" ] +then + COOKBOOK_CONFIGURE_FLAGS+=(--with-shared) +fi +cookbook_configure +""" + +[package] +dependencies = [ + "terminfo", +] diff --git a/recipes/libs/ncurses/redox.patch b/recipes/libs/ncurses/redox.patch new file mode 100644 index 000000000..b446db168 --- /dev/null +++ b/recipes/libs/ncurses/redox.patch @@ -0,0 +1,12 @@ +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 @@ + fi + cf_cv_rm_so_locs=yes + ;; +- (linux*|gnu*|k*bsd*-gnu) ++ (linux*|gnu*|k*bsd*-gnu|redox*) + if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then + LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" diff --git a/recipes/libs/ncursesw/recipe.toml b/recipes/libs/ncursesw/recipe.toml new file mode 100644 index 000000000..80eee8273 --- /dev/null +++ b/recipes/libs/ncursesw/recipe.toml @@ -0,0 +1,26 @@ +[source] +same_as = "../ncurses" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-db-install + --disable-ext-colors + --disable-stripping + --enable-widec + --without-ada + --without-manpages + --without-tests + --with-shared + cf_cv_func_mkstemp=yes + cf_cv_wint_t=yes +) +cookbook_configure +""" + +[package] +dependencies = [ + "terminfo", +] diff --git a/recipes/libs/nghttp2/recipe.toml b/recipes/libs/nghttp2/recipe.toml new file mode 100644 index 000000000..41bea400a --- /dev/null +++ b/recipes/libs/nghttp2/recipe.toml @@ -0,0 +1,18 @@ +[source] +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 +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT + +COOKBOOK_CONFIGURE_FLAGS+=( + --enable-lib-only +) +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/libs/openssl1/recipe.toml b/recipes/libs/openssl1/recipe.toml new file mode 100644 index 000000000..d7050cdbc --- /dev/null +++ b/recipes/libs/openssl1/recipe.toml @@ -0,0 +1,30 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/openssl.git" +branch = "redox-v1" +shallow_clone = true +[build] +template = "custom" +script = """ +DYNAMIC_INIT +ARCH="${TARGET%%-*}" +OS=$(echo "${TARGET}" | cut -d - -f3) +COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/Configure" +COOKBOOK_CONFIGURE_FLAGS=( + threads + no-dgram + "${OS}-${ARCH}" + --prefix="/" +) + +if [ "${COOKBOOK_DYNAMIC}" = "1" ]; then + COOKBOOK_CONFIGURE_FLAGS+=(shared) +else + COOKBOOK_CONFIGURE_FLAGS+=(no-shared) +fi + +export CC="${CC_WRAPPER} ${GNU_TARGET}-gcc" +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" +"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install_sw install_ssldirs DESTDIR="${COOKBOOK_STAGE}" +rm -rfv "${COOKBOOK_STAGE}/"{share,ssl} +""" diff --git a/recipes/libs/pango/recipe.toml b/recipes/libs/pango/recipe.toml new file mode 100644 index 000000000..8080ad3c4 --- /dev/null +++ b/recipes/libs/pango/recipe.toml @@ -0,0 +1,40 @@ +[source] +tar = "https://download.gnome.org/sources/pango/1.56/pango-1.56.3.tar.xz" +blake3 = "78542feaaf007c1d648b94c4e9b6655ed7515d27ce434766aea99bef886c21ac" +patches = ["redox.patch"] + +[build] +dependencies = [ + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gettext", + "glib", + "harfbuzz", + "libffi", + "libiconv", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxft", + "libxrender", + "pcre", + "pcre2", + "pixman", + "x11proto", + "xcb-proto", + "xextproto", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Dbuild-examples=false \ + -Dbuild-testsuite=false +""" diff --git a/recipes/libs/pango/redox.patch b/recipes/libs/pango/redox.patch new file mode 100644 index 000000000..d04c9538d --- /dev/null +++ b/recipes/libs/pango/redox.patch @@ -0,0 +1,14 @@ +diff -ruwN pango-1.56.3/meson.build source/meson.build +--- pango-1.56.3/meson.build 2025-03-16 05:45:47.000000000 -0600 ++++ source/meson.build 2025-05-01 13:51:05.834742120 -0600 +@@ -551,8 +551,8 @@ + pango_inc = include_directories('pango') + + subdir('pango') +-subdir('utils') +-subdir('tools') ++#TODO: fails to build on Redox: subdir('utils') ++#TODO: fails to build on Redox: subdir('tools') + subdir('docs') + if get_option('build-testsuite') + subdir('tests') diff --git a/recipes/libs/pcre/recipe.toml b/recipes/libs/pcre/recipe.toml new file mode 100644 index 000000000..773c8f48c --- /dev/null +++ b/recipes/libs/pcre/recipe.toml @@ -0,0 +1,17 @@ +[source] +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 = [ + "redox.patch" +] + +[build] +template = "custom" +script = """ +DYNAMIC_STATIC_INIT +cookbook_configure +""" diff --git a/recipes/libs/pcre/redox.patch b/recipes/libs/pcre/redox.patch new file mode 100644 index 000000000..6e438bacc --- /dev/null +++ b/recipes/libs/pcre/redox.patch @@ -0,0 +1,17 @@ +diff -ruwN source/pcretest.c source-new/pcretest.c +--- source/pcretest.c 2017-06-13 10:49:46.000000000 -0600 ++++ source-new/pcretest.c 2019-01-05 11:04:15.198224299 -0700 +@@ -3168,7 +3168,7 @@ + ((stack_size = get_value((pcre_uint8 *)argv[op+1], &endptr)), + *endptr == 0)) + { +-#if defined(_WIN32) || defined(WIN32) || defined(__minix) || defined(NATIVE_ZOS) || defined(__VMS) ++#if defined(_WIN32) || defined(WIN32) || defined(__minix) || defined(NATIVE_ZOS) || defined(__VMS) || defined(__redox__) + printf("PCRE: -S not supported on this OS\n"); + exit(1); + #else +@@ -5770,4 +5770,3 @@ + } + + /* End of pcretest.c */ +- diff --git a/recipes/libs/pcre2/recipe.toml b/recipes/libs/pcre2/recipe.toml new file mode 100644 index 000000000..09c4d86b0 --- /dev/null +++ b/recipes/libs/pcre2/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.45/pcre2-10.45.tar.bz2" +blake3 = "aea544846f9a03c1ec62c9f8d1c9a4187cc3cce557e53e6876eb6a58c7cdd9fe" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_STATIC_INIT +cookbook_configure +""" diff --git a/recipes/libs/pixman/recipe.toml b/recipes/libs/pixman/recipe.toml new file mode 100644 index 000000000..50bb30ea0 --- /dev/null +++ b/recipes/libs/pixman/recipe.toml @@ -0,0 +1,11 @@ +[source] +tar = "https://www.cairographics.org/releases/pixman-0.46.0.tar.xz" +blake3 = "379369245a0bbd13784bf550c87622964a6aba87edf598ffa137dc10201746e0" +patches = ["redox.patch"] + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson -Dtests=disabled +""" diff --git a/recipes/libs/pixman/redox.patch b/recipes/libs/pixman/redox.patch new file mode 100644 index 000000000..953a7fd63 --- /dev/null +++ b/recipes/libs/pixman/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN source/test/fence-image-self-test.c source-new/test/fence-image-self-test.c +--- source/test/fence-image-self-test.c 2018-04-11 06:07:58.000000000 -0600 ++++ source-new/test/fence-image-self-test.c 2019-01-06 15:29:38.878720123 -0700 +@@ -29,7 +29,7 @@ + #include "utils.h" + + +-#if FENCE_MALLOC_ACTIVE && defined (HAVE_SIGACTION) ++#if FENCE_MALLOC_ACTIVE && defined (HAVE_SIGACTION) && !defined(__redox__) + + #include + #include diff --git a/recipes/libs/readline/recipe.toml b/recipes/libs/readline/recipe.toml new file mode 100644 index 000000000..82eb522bf --- /dev/null +++ b/recipes/libs/readline/recipe.toml @@ -0,0 +1,21 @@ +[source] +tar = "https://ftp.gnu.org/gnu/readline/readline-7.0.tar.gz" +blake3 = "962483e201f36f05a5ccb507bb7330b4d4e4989fd52f41eb15ba65582ad02703" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "ncurses", +] +script = """ +DYNAMIC_INIT +cookbook_configure +OS=$(echo "${TARGET}" | cut -d - -f3) +if [ "${OS}" = "redox" ]; then + ln -s "libhistory.so.7" "${COOKBOOK_STAGE}"/usr/lib/libhistory.so + ln -s "libreadline.so.7" "${COOKBOOK_STAGE}"/usr/lib/libreadline.so +fi +""" diff --git a/recipes/libs/readline/redox.patch b/recipes/libs/readline/redox.patch new file mode 100644 index 000000000..7b632e527 --- /dev/null +++ b/recipes/libs/readline/redox.patch @@ -0,0 +1,21 @@ +diff -ru source/support/config.sub source-new/support/config.sub +--- source/support/config.sub 2013-12-17 16:49:47.000000000 +0100 ++++ source-new/support/config.sub 2017-08-14 09:09:20.158401733 +0200 +@@ -2,7 +2,7 @@ + # Configuration validation subroutine script. + # Copyright 1992-2013 Free Software Foundation, Inc. + +-timestamp='2013-10-01' ++timestamp='2017-08-14' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +@@ -1351,7 +1351,7 @@ + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. +- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ ++ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* | -redox* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ diff --git a/recipes/libs/redox-fatfs/recipe.toml b/recipes/libs/redox-fatfs/recipe.toml new file mode 100644 index 000000000..462ccfaa8 --- /dev/null +++ b/recipes/libs/redox-fatfs/recipe.toml @@ -0,0 +1,4 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/redox-fatfs.git" +[build] +template = "cargo" diff --git a/recipes/libs/sdl-gfx/recipe.toml b/recipes/libs/sdl-gfx/recipe.toml new file mode 100644 index 000000000..540b8d158 --- /dev/null +++ b/recipes/libs/sdl-gfx/recipe.toml @@ -0,0 +1,27 @@ +[source] +tar = "https://sourceforge.net/projects/sdlgfx/files/SDL_gfx-2.0.25.tar.gz" +blake3 = "e6f571a38e51d369b010f4b10eb35b95e3d2edae2edd796241c47ea8376581e6" +patches = ["redox.patch"] +script = """ +./autogen.sh +""" + +[build] +template = "custom" +dependencies = [ + "sdl1", + "liborbital", + "libiconv", +] +script = """ +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/ + --build="$(gcc -dumpmachine)" + --host="${TARGET}" + --disable-shared +) + +cookbook_configure + +rm -f "${COOKBOOK_STAGE}/lib/"*.la +""" \ No newline at end of file diff --git a/recipes/libs/sdl-gfx/redox.patch b/recipes/libs/sdl-gfx/redox.patch new file mode 100644 index 000000000..c44c611f5 --- /dev/null +++ b/recipes/libs/sdl-gfx/redox.patch @@ -0,0 +1,20 @@ +--- source/config.sub 2013-10-27 23:04:13.000000000 +0100 ++++ build/config.sub 2019-08-13 10:13:07.072063540 +0200 +@@ -125,7 +125,7 @@ case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ +- kopensolaris*-gnu* | \ ++ kopensolaris*-gnu* | redox* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` +@@ -1346,7 +1346,7 @@ case $os in + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ +- | -sym* | -kopensolaris* \ ++ | -sym* | -kopensolaris* | -redox* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ diff --git a/recipes/libs/sdl1-image/recipe.toml b/recipes/libs/sdl1-image/recipe.toml new file mode 100644 index 000000000..ee73b9214 --- /dev/null +++ b/recipes/libs/sdl1-image/recipe.toml @@ -0,0 +1,26 @@ +[source] +tar = "https://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz" +blake3 = "731a6f8cad9fff22c82394bd1c0c34ce4aa60fa8923f3755a3e3239f1e269389" +patches = ["redox.patch"] +script = """ +./autogen.sh +""" + +[build] +template = "custom" +dependencies = [ + "sdl1", + "liborbital", + "libiconv", + "libjpeg", + "libpng", + "zlib" +] +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-sdltest + --enable-png + --enable-jpg +) +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/libs/sdl1-image/redox.patch b/recipes/libs/sdl1-image/redox.patch new file mode 100644 index 000000000..9366f51c1 --- /dev/null +++ b/recipes/libs/sdl1-image/redox.patch @@ -0,0 +1,12 @@ +diff -rupNw source-original/config.sub source/config.sub +--- source-original/config.sub 2012-01-19 07:30:05.000000000 +0100 ++++ source/config.sub 2018-05-01 17:31:52.766229515 +0200 +@@ -1276,7 +1276,7 @@ case $os in + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ +- | -kopensolaris* \ ++ | -kopensolaris* | -redox* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ \ No newline at end of file diff --git a/recipes/libs/sdl1-mixer/recipe.toml b/recipes/libs/sdl1-mixer/recipe.toml new file mode 100644 index 000000000..59755cff9 --- /dev/null +++ b/recipes/libs/sdl1-mixer/recipe.toml @@ -0,0 +1,30 @@ +[source] +tar = "https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.12.tar.gz" +blake3 = "ef23bab2d42250dfdc51ce6939ee7b393973ff11a0dd3481f32180b489d2661c" +patches = ["redox.patch"] +script = """ +./autogen.sh +""" + +[build] +dependencies = [ + "libogg", + "liborbital", + "libvorbis", + "sdl1", +] +template = "custom" +script = """ +DYNAMIC_INIT +export LIBS="-lvorbis -logg" +COOKBOOK_CONFIGURE_FLAGS+=( + --enable-music-ogg + --enable-music-midi + --disable-sdltest + --disable-music-cmd + --disable-music-mp3 + --disable-smpegtest + --disable-music-mod +) +cookbook_configure +""" diff --git a/recipes/libs/sdl1-mixer/redox.patch b/recipes/libs/sdl1-mixer/redox.patch new file mode 100644 index 000000000..c08dca81b --- /dev/null +++ b/recipes/libs/sdl1-mixer/redox.patch @@ -0,0 +1,55 @@ +diff -ruwN source/build-scripts/config.sub source-new/build-scripts/config.sub +--- source/build-scripts/config.sub 2012-01-15 15:01:05.000000000 -0700 ++++ source-new/build-scripts/config.sub 2022-11-20 12:23:50.849108724 -0700 +@@ -1276,7 +1276,7 @@ + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ +- | -kopensolaris* \ ++ | -kopensolaris* | -redox* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ +diff -ruwN source/Makefile.in source-new/Makefile.in +--- source/Makefile.in 2012-01-15 15:01:04.000000000 -0700 ++++ source-new/Makefile.in 2022-11-20 12:23:50.849108724 -0700 +@@ -66,10 +66,10 @@ + $(LIBTOOL) --mode=link $(CC) -o $@ $(OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) + + $(objects)/playwave$(EXE): $(objects)/playwave.lo $(objects)/$(TARGET) +- $(LIBTOOL) --mode=link $(CC) -o $@ $(objects)/playwave.lo $(SDL_CFLAGS) $(SDL_LIBS) $(objects)/$(TARGET) ++ $(LIBTOOL) --mode=link $(CC) -o $@ $(objects)/playwave.lo $(SDL_CFLAGS) $(SDL_LIBS) $(objects)/$(TARGET) --static + + $(objects)/playmus$(EXE): $(objects)/playmus.lo $(objects)/$(TARGET) +- $(LIBTOOL) --mode=link $(CC) -o $@ $(objects)/playmus.lo $(SDL_CFLAGS) $(SDL_LIBS) $(objects)/$(TARGET) ++ $(LIBTOOL) --mode=link $(CC) -o $@ $(objects)/playmus.lo $(SDL_CFLAGS) $(SDL_LIBS) $(objects)/$(TARGET) --static + + install: all install-hdrs install-lib #install-bin + install-hdrs: +diff -ruwN source/timidity/config.h source-new/timidity/config.h +--- source/timidity/config.h 2012-01-15 15:01:05.000000000 -0700 ++++ source-new/timidity/config.h 2022-11-20 12:26:04.067581857 -0700 +@@ -162,6 +162,7 @@ + then specify the library directory in the configuration file. */ + #define CONFIG_FILE "timidity.cfg" + #define CONFIG_FILE_ETC "/etc/timidity.cfg" ++#define CONFIG_FILE_ETC_TIMIDITY_FREEPATS "/etc/timidity/freepats.cfg" + + #if defined(__WIN32__) || defined(__OS2__) + #define DEFAULT_PATH "C:\\TIMIDITY" +diff -ruwN source/timidity/timidity.c source-new/timidity/timidity.c +--- source/timidity/timidity.c 2012-01-15 15:01:05.000000000 -0700 ++++ source-new/timidity/timidity.c 2022-11-20 12:26:42.248290658 -0700 +@@ -286,10 +286,12 @@ + if (!env || read_config_file(env)<0) { + if (read_config_file(CONFIG_FILE)<0) { + if (read_config_file(CONFIG_FILE_ETC)<0) { ++ if (read_config_file(CONFIG_FILE_ETC_TIMIDITY_FREEPATS)<0) { + return(-1); + } + } + } ++ } + + if (channels < 1 || channels == 3 || channels == 5 || channels > 6) return(-1); + diff --git a/recipes/libs/sdl1-ttf/recipe.toml b/recipes/libs/sdl1-ttf/recipe.toml new file mode 100644 index 000000000..4d0280e6e --- /dev/null +++ b/recipes/libs/sdl1-ttf/recipe.toml @@ -0,0 +1,31 @@ +[source] +tar = "https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz" +blake3 = "a684e57553e43b55ab28b064d1d5d44b8749299f259da31a62d671fc1d5505ee" +patches = ["redox.patch"] +script = """ +./autogen.sh +""" + +[build] +template = "custom" +dependencies = [ + "sdl1", + "liborbital", + "freetype2", + "libpng", + "zlib", +] +script = """ +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/freetype2" + +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/ + --build="$(gcc -dumpmachine)" + --host="${TARGET}" + --disable-shared +) + +cookbook_configure + +rm -f "${COOKBOOK_STAGE}/lib/"*.la +""" \ No newline at end of file diff --git a/recipes/libs/sdl1-ttf/redox.patch b/recipes/libs/sdl1-ttf/redox.patch new file mode 100644 index 000000000..d2b7ecd79 --- /dev/null +++ b/recipes/libs/sdl1-ttf/redox.patch @@ -0,0 +1,62 @@ +diff -ruw source/config.sub source-new/config.sub +--- source/config.sub 2012-01-14 21:44:08.000000000 -0700 ++++ source-new/config.sub 2018-12-10 12:17:28.136784814 -0700 +@@ -1276,7 +1276,7 @@ + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ +- | -kopensolaris* \ ++ | -kopensolaris* | -redox* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ +Only in source-new: config.sub.orig +diff -ruw source/configure.in source-new/configure.in +--- source/configure.in 2012-01-14 21:44:08.000000000 -0700 ++++ source-new/configure.in 2018-12-10 12:17:12.724883206 -0700 +@@ -91,38 +91,13 @@ + AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue) + + dnl Check for the FreeType 2 library +-dnl +-dnl Get the cflags and libraries from the freetype-config script +-dnl +-AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is +-installed (optional)], +- freetype_prefix="$withval", freetype_prefix="") +-AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix +-where FREETYPE is installed (optional)], +- freetype_exec_prefix="$withval", freetype_exec_prefix="") +- +-if test x$freetype_exec_prefix != x ; then +- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix" +- if test x${FREETYPE_CONFIG+set} != xset ; then +- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config +- fi +-fi +-if test x$freetype_prefix != x ; then +- freetype_args="$freetype_args --prefix=$freetype_prefix" +- if test x${FREETYPE_CONFIG+set} != xset ; then +- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config +- fi +-fi +-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) +-no_freetype="" +-if test "$FREETYPE_CONFIG" = "no" ; then +- AC_MSG_ERROR([ +-*** Unable to find FreeType2 library (http://www.freetype.org/) ++#PKG_CHECK_MODULES([FT2], [freetype2 >= 7.0.1], [], [dnl ++# AC_CHECK_FT2(,,[AC_MSG_ERROR([dnl ++#*** Unable to find FreeType2 library (http://www.freetype.org/)])] ++# ) ++#]) +-]) +-else +- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`" +- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`" +-fi ++CFLAGS="$CFLAGS $FT2_CFLAGS" ++LIBS="$LIBS $FT2_LIBS -lfreetype -lpng -lz" + + dnl Check for SDL + SDL_VERSION=1.2.4 diff --git a/recipes/libs/sdl1/recipe.toml b/recipes/libs/sdl1/recipe.toml new file mode 100644 index 000000000..5c1d18452 --- /dev/null +++ b/recipes/libs/sdl1/recipe.toml @@ -0,0 +1,20 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/sdl1.2.git" + +[build] +template = "custom" +dependencies = [ + "liborbital" +] +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-loadso + --disable-pulseaudio + --disable-video-x11 + --enable-clock_gettime + --enable-pthread-sem + --enable-redoxaudio + --enable-video-orbital +) +cookbook_configure +""" diff --git a/recipes/libs/sdl2-gfx/recipe.toml b/recipes/libs/sdl2-gfx/recipe.toml new file mode 100644 index 000000000..a9b968f0e --- /dev/null +++ b/recipes/libs/sdl2-gfx/recipe.toml @@ -0,0 +1,25 @@ +[source] +tar = "http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-1.0.4.tar.gz" +blake3 = "2e9bd2dc0f004349b51418f33219ebf5cd69f25ed0ba660373652a662cbb857c" +script = """ +GNU_CONFIG_GET config.sub +""" + +[build] +dependencies = [ + "freetype2", + "liborbital", + "libpng", + "mesa", + "sdl2", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +export SDL_LIBS="-lSDL2 -lorbital $("${PKG_CONFIG}" --libs osmesa) -lpng -lz -lm -lpthread -lstdc++" +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-sdltest +) +cookbook_configure +""" diff --git a/recipes/libs/sdl2-image/recipe.toml b/recipes/libs/sdl2-image/recipe.toml new file mode 100644 index 000000000..0fd67360e --- /dev/null +++ b/recipes/libs/sdl2-image/recipe.toml @@ -0,0 +1,26 @@ +[source] +tar = "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.4.tar.gz" + +[build] +template = "custom" +dependencies = [ + "libjpeg", + "liborbital", + "libpng", + "mesa", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT +export SDL_LIBS="-lSDL2 -lorbital $("${TARGET}-pkg-config" --libs osmesa) -lstdc++" +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/usr + --host="${TARGET}" + --disable-sdltest + --enable-shared + --enable-png + --enable-jpg +) +cookbook_configure +""" diff --git a/recipes/libs/sdl2-mixer/recipe.toml b/recipes/libs/sdl2-mixer/recipe.toml new file mode 100644 index 000000000..b95425adf --- /dev/null +++ b/recipes/libs/sdl2-mixer/recipe.toml @@ -0,0 +1,31 @@ +[source] +tar = "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.8.1.tar.gz" +blake3 = "fa0798ce7ffdb5f89545311292374e5b7af479df8bc99a4aacfb40d2ab2f8384" + +[build] +template = "custom" +dependencies = [ + "sdl2", + "liborbital", + "mesa", + "zlib", + "libogg", + "libvorbis", +] +script = """ +DYNAMIC_INIT + +export SDL_LIBS="-lSDL2 -lorbital -lOSMesa -lvorbis -logg -lz -lm -lpthread -lstdc++" +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/ + --host="${TARGET}" + --disable-sdltest + --enable-music-ogg + --disable-music-cmd + --disable-music-mp3 + --disable-smpegtest + --disable-music-midi + --disable-music-mod +) +cookbook_configure +""" diff --git a/recipes/libs/sdl2-mixer/redox.patch b/recipes/libs/sdl2-mixer/redox.patch new file mode 100644 index 000000000..607c370f8 --- /dev/null +++ b/recipes/libs/sdl2-mixer/redox.patch @@ -0,0 +1,16 @@ +diff -ruw source/Makefile.in source-new/Makefile.in +--- source/Makefile.in 2018-10-31 08:58:59.000000000 -0600 ++++ source-new/Makefile.in 2019-06-19 15:23:18.015149749 -0600 +@@ -65,10 +65,10 @@ + $(LIBTOOL) --mode=link $(CC) -o $@ $(OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) + + $(objects)/playwave$(EXE): $(objects)/playwave.lo $(objects)/$(TARGET) +- $(LIBTOOL) --mode=link $(CC) -o $@ $(objects)/playwave.lo $(SDL_CFLAGS) $(objects)/$(TARGET) $(SDL_LIBS) $(LDFLAGS) ++ $(LIBTOOL) --mode=link $(CC) -o $@ $(objects)/playwave.lo $(SDL_CFLAGS) $(objects)/$(TARGET) $(SDL_LIBS) $(LDFLAGS) --static + + $(objects)/playmus$(EXE): $(objects)/playmus.lo $(objects)/$(TARGET) +- $(LIBTOOL) --mode=link $(CC) -o $@ $(objects)/playmus.lo $(SDL_CFLAGS) $(objects)/$(TARGET) $(SDL_LIBS) $(LDFLAGS) ++ $(LIBTOOL) --mode=link $(CC) -o $@ $(objects)/playmus.lo $(SDL_CFLAGS) $(objects)/$(TARGET) $(SDL_LIBS) $(LDFLAGS) --static + + install: all install-hdrs install-lib #install-bin + install-hdrs: diff --git a/recipes/libs/sdl2-ttf/recipe.toml b/recipes/libs/sdl2-ttf/recipe.toml new file mode 100644 index 000000000..d6252b3ea --- /dev/null +++ b/recipes/libs/sdl2-ttf/recipe.toml @@ -0,0 +1,29 @@ +[source] +tar = "https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.15.tar.gz" +blake3 = "9814a07f33a3501b414f0fc7fa962e7d7ffc56748406f3798b7698b8d7e7fe12" +script = """ +DYNAMIC_INIT +./autogen.sh +""" + +[build] +dependencies = [ + "expat", + "freetype2", + "libdrm", + "liborbital", + "libpng", + "mesa", + "sdl2", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +export SDL_LIBS="-lSDL2 -lorbital $("${PKG_CONFIG}" --libs osmesa) -lpng -lz -lm -lpthread -lstdc++" +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-sdltest + --enable-opengl +) +cookbook_configure +""" diff --git a/recipes/libs/sdl2/recipe.toml b/recipes/libs/sdl2/recipe.toml new file mode 100644 index 000000000..76f865993 --- /dev/null +++ b/recipes/libs/sdl2/recipe.toml @@ -0,0 +1,28 @@ +#TODO: TEST +[source] +git = "https://gitlab.redox-os.org/redox-os/sdl2.git" + +[build] +template = "custom" +dependencies = [ + "liborbital", + "mesa", + "zlib", +] +script = """ +DYNAMIC_INIT +export LDFLAGS="${LDFLAGS} -lorbital -lOSMesa -lstdc++" +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-pulseaudio + --disable-video-x11 + --enable-audio + --enable-dummyaudio + --enable-redoxaudio + --enable-threads + --enable-video-orbital +) +cookbook_configure + +# Hack to add OSMesa +sed -i "s/Requires:/Requires: osmesa >= 8.0.0/" "${COOKBOOK_STAGE}/usr/lib/pkgconfig/sdl2.pc" +""" diff --git a/recipes/libs/unibilium/recipe.toml b/recipes/libs/unibilium/recipe.toml new file mode 100644 index 000000000..5252c1d3c --- /dev/null +++ b/recipes/libs/unibilium/recipe.toml @@ -0,0 +1,15 @@ +[source] +tar = "https://github.com/neovim/unibilium/archive/refs/tags/v2.1.2.tar.gz" +blake3 = "856a7593a412942f4716bb55bfdd225f3ce92cb013b9d4a44693255f0570b1c7" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +cookbook_configure +""" diff --git a/recipes/libs/utf8proc/recipe.toml b/recipes/libs/utf8proc/recipe.toml new file mode 100644 index 000000000..c34c12f19 --- /dev/null +++ b/recipes/libs/utf8proc/recipe.toml @@ -0,0 +1,23 @@ +[source] +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 +""" diff --git a/recipes/libs/zlib/recipe.toml b/recipes/libs/zlib/recipe.toml new file mode 100644 index 000000000..626018c72 --- /dev/null +++ b/recipes/libs/zlib/recipe.toml @@ -0,0 +1,25 @@ +[source] +tar = "https://www.zlib.net/fossils/zlib-1.3.tar.gz" +blake3 = "ec1abc6f672a7a6ee6f49ba544cc9529f73121b478310473be44fee22a140ebf" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS=(--prefix="/usr") +if [ "${COOKBOOK_DYNAMIC}" == "1" ] +then + COOKBOOK_CONFIGURE_FLAGS+=(--shared) +else + COOKBOOK_CONFIGURE_FLAGS+=(--static) +fi +# See https://stackoverflow.com/questions/21396988/zlib-build-not-configuring-properly-with-cross-compiler-ignores-ar. +env CHOST="${TARGET}" "${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" +"${COOKBOOK_MAKE}" -j "$(nproc)" +"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" +solib="${COOKBOOK_STAGE}/usr/lib/libz.so.1.3" +if [ -e "${solib}" ] +then + patchelf --set-soname 'libz.so.1.3' "${solib}" +fi +""" \ No newline at end of file diff --git a/recipes/math/calculator/recipe.toml b/recipes/math/calculator/recipe.toml new file mode 100644 index 000000000..33006ff5a --- /dev/null +++ b/recipes/math/calculator/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/orbcalculator.git" + +[build] +template = "cargo" diff --git a/recipes/net/curl/recipe.toml b/recipes/net/curl/recipe.toml new file mode 100644 index 000000000..68436ab3d --- /dev/null +++ b/recipes/net/curl/recipe.toml @@ -0,0 +1,39 @@ +[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/wget/recipe.toml b/recipes/net/download/wget/recipe.toml new file mode 100644 index 000000000..fb2d6ab4b --- /dev/null +++ b/recipes/net/download/wget/recipe.toml @@ -0,0 +1,10 @@ +[source] +tar = "https://ftp.gnu.org/gnu/wget/wget-1.21.4.tar.gz" +[build] +dependencies = [ + "openssl1", +] +template = "configure" +configureflags = [ + "--with-ssl=openssl" +] diff --git a/recipes/net/http/simple-http-server/recipe.toml b/recipes/net/http/simple-http-server/recipe.toml new file mode 100644 index 000000000..86c96318a --- /dev/null +++ b/recipes/net/http/simple-http-server/recipe.toml @@ -0,0 +1,11 @@ +[source] +git = "https://github.com/TheWaWaR/simple-http-server" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/net/nginx/recipe.toml b/recipes/net/nginx/recipe.toml new file mode 100644 index 000000000..b74f659cb --- /dev/null +++ b/recipes/net/nginx/recipe.toml @@ -0,0 +1,64 @@ +#TODO FastCGI not working +[source] +tar = "https://nginx.org/download/nginx-1.28.0.tar.gz" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "pcre", + "openssl1", + "zlib", +] +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}"/* ./ +ARCH="${TARGET%%-*}" +COOKBOOK_CONFIGURE_FLAGS=( + --crossbuild=Redox:$ARCH + --with-cc="$CC" + --with-cc-opt="$CFLAGS" + --with-ld-opt="$LDFLAGS" + --sbin-path=/usr/bin/nginx + --modules-path=/usr/lib/nginx/modules + --conf-path=/etc/nginx/nginx.conf + --error-log-path=/var/log/nginx/error.log + --http-log-path=/var/log/nginx/access.log + --http-client-body-temp-path=/var/lib/nginx/body + --http-proxy-temp-path=/var/lib/nginx/proxy + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi + --http-scgi-temp-path=/var/lib/nginx/scgi + --pid-path=/var/run/nginx.pid + --lock-path=/var/lock/nginx.lock + --user=nginx + --group=nginx + --with-compat + --with-debug + --with-pcre + --with-pcre-jit + --with-stream + --with-stream_realip_module + --with-stream_ssl_module + --with-stream_ssl_preread_module + --with-threads + --with-http_ssl_module + --with-http_v2_module + --with-http_realip_module + --with-http_gzip_static_module + --with-http_stub_status_module + --with-http_addition_module +) + +unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP + +cookbook_configure + +mkdir -p "$COOKBOOK_STAGE"/var/lib/nginx/{body,proxy,fastcgi,uwsgi,scgi} \ + "$COOKBOOK_STAGE"/var/log/nginx/ +#TODO: pkgar don't track empty directories +touch "$COOKBOOK_STAGE"/var/lib/nginx/{body,proxy,fastcgi,uwsgi,scgi}/.tmp \ + "$COOKBOOK_STAGE"/var/log/nginx/.tmp +""" diff --git a/recipes/net/nginx/redox.patch b/recipes/net/nginx/redox.patch new file mode 100644 index 000000000..bc5eee54b --- /dev/null +++ b/recipes/net/nginx/redox.patch @@ -0,0 +1,85 @@ +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 +@@ -53,7 +53,7 @@ + + yes) + # /bin/sh is used to intercept "Killed" or "Abort trap" messages +- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then ++ #if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then + echo " found" + ngx_found=yes + +@@ -61,9 +61,9 @@ + have=$ngx_have_feature . auto/have + fi + +- else +- echo " found but is not working" +- fi ++ #else ++ # echo " found but is not working" ++ #fi + ;; + + value) +diff -ruwN source/auto/types/sizeof source-new/auto/types/sizeof +--- source/auto/types/sizeof 2025-04-23 18:48:54.000000000 +0700 ++++ source-new/auto/types/sizeof 2025-09-16 02:44:58.618532943 +0700 +@@ -33,7 +33,7 @@ + END + + +-ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ ++ngx_test="gcc $CC_TEST_FLAGS $CC_AUX_FLAGS \ + -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs" + + eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" +diff -ruwN source/auto/types/typedef source-new/auto/types/typedef +--- source/auto/types/typedef 2025-04-23 18:48:54.000000000 +0700 ++++ source-new/auto/types/typedef 2025-09-16 02:44:58.618532943 +0700 +@@ -34,7 +34,7 @@ + + END + +- ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ ++ ngx_test="gcc $CC_TEST_FLAGS $CC_AUX_FLAGS \ + -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs" + + eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" +diff -ruwN source/src/os/unix/ngx_process.c source-new/src/os/unix/ngx_process.c +--- source/src/os/unix/ngx_process.c 2025-04-23 18:48:54.000000000 +0700 ++++ source-new/src/os/unix/ngx_process.c 2025-09-16 02:44:58.618532943 +0700 +@@ -143,6 +143,7 @@ + } + + on = 1; ++ /* + if (ioctl(ngx_processes[s].channel[0], FIOASYNC, &on) == -1) { + ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, + "ioctl(FIOASYNC) failed while spawning \"%s\"", name); +@@ -156,6 +157,7 @@ + ngx_close_channel(ngx_processes[s].channel, cycle->log); + return NGX_INVALID_PID; + } ++ */ + + if (fcntl(ngx_processes[s].channel[0], F_SETFD, FD_CLOEXEC) == -1) { + ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, +diff -ruwN source/src/os/unix/ngx_process_cycle.c source-new/src/os/unix/ngx_process_cycle.c +--- source/src/os/unix/ngx_process_cycle.c 2025-04-23 18:48:54.000000000 +0700 ++++ source-new/src/os/unix/ngx_process_cycle.c 2025-09-27 02:17:21.509383985 +0700 +@@ -804,11 +804,13 @@ + exit(2); + } + ++ /* + if (initgroups(ccf->username, ccf->group) == -1) { + ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, + "initgroups(%s, %d) failed", + ccf->username, ccf->group); + } ++ */ + + #if (NGX_HAVE_PR_SET_KEEPCAPS && NGX_HAVE_CAPABILITIES) + if (ccf->transparent && ccf->user) { diff --git a/recipes/net/openssh/recipe.toml b/recipes/net/openssh/recipe.toml new file mode 100644 index 000000000..b1b643580 --- /dev/null +++ b/recipes/net/openssh/recipe.toml @@ -0,0 +1,36 @@ +#TODO lack of resolv.h, expect dns not working +#TODO lack of utmpx.h, expect no way to track login in sshd +[source] +tar = "https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz" +patches = [ + "redox.patch", +] +[build] +template = "custom" +dependencies = [ + "openssl3", + "zlib", + "zstd", +] +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-strip + --sysconfdir=/etc/ssh +) +cookbook_configure +mv "${COOKBOOK_STAGE}"/usr/sbin/sshd "${COOKBOOK_STAGE}"/usr/bin/sshd +rmdir "${COOKBOOK_STAGE}"/usr/sbin + +# Extracted from `make host-key-force` +# TODO: Postscript to generate this +# ssh-keygen -t dsa -f "${COOKBOOK_STAGE}"/etc/ssh/ssh_host_dsa_key -N "" +# ssh-keygen -t rsa -f "${COOKBOOK_STAGE}"/etc/ssh/ssh_host_rsa_key -N "" +# ssh-keygen -t ed25519 -f "${COOKBOOK_STAGE}"/etc/ssh/ssh_host_ed25519_key -N "" +# ssh-keygen -t ecdsa -f "${COOKBOOK_STAGE}"/etc/ssh/ssh_host_ecdsa_key -N "" + +CONFIG_FILE="${COOKBOOK_STAGE}"/etc/ssh/sshd_config + +# ipv6 is not working yet +sed -i "s/#AddressFamily any/AddressFamily inet/g" "${CONFIG_FILE}" +""" diff --git a/recipes/net/openssh/redox.patch b/recipes/net/openssh/redox.patch new file mode 100644 index 000000000..a061b1735 --- /dev/null +++ b/recipes/net/openssh/redox.patch @@ -0,0 +1,686 @@ +diff -ruwN source/configure source-new/configure +--- source/configure 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/configure 2025-09-06 23:54:58.147442355 +0700 +@@ -12606,6 +12606,10 @@ + printf "%s\n" "#define BROKEN_POLL 1" >>confdefs.h + + ;; ++*-*-redox) ++ ++ # todo ++ ;; + mips-sony-bsd|mips-sony-newsos4) + + printf "%s\n" "#define NEED_SETPGRP 1" >>confdefs.h +diff -ruwN source/defines.h source-new/defines.h +--- source/defines.h 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/defines.h 2025-09-07 01:35:40.209700338 +0700 +@@ -52,6 +52,18 @@ + #define IPPORT_RESERVED 0 + #endif + ++#ifndef IPPORT_RESERVED ++#define IPPORT_RESERVED 1024 ++#endif ++ ++#ifndef IN_LOOPBACKNET ++#define IN_LOOPBACKNET 127 ++#endif ++ ++#ifndef MAXDNAME ++#define MAXDNAME 256 ++#endif ++ + /* + * Definitions for IP type of service (ip_tos) + */ +@@ -454,19 +466,21 @@ + # define _PATH_DEVNULL "/dev/null" + #endif + +-/* user may have set a different path */ +-#if defined(_PATH_MAILDIR) && defined(MAIL_DIRECTORY) +-# undef _PATH_MAILDIR +-#endif /* defined(_PATH_MAILDIR) && defined(MAIL_DIRECTORY) */ +- +-#ifdef MAIL_DIRECTORY +-# define _PATH_MAILDIR MAIL_DIRECTORY ++#ifndef _PATH_MAILDIR ++# define _PATH_MAILDIR "/var/mail" + #endif + + #ifndef _PATH_NOLOGIN + # define _PATH_NOLOGIN "/etc/nologin" + #endif + ++#ifndef ST_RDONLY ++#define ST_RDONLY 1 ++#endif ++#ifndef ST_NOSUID ++#define ST_NOSUID 2 ++#endif ++ + /* Define this to be the path of the xauth program. */ + #ifdef XAUTH_PATH + #define _PATH_XAUTH XAUTH_PATH +diff -ruwN source/hostfile.c source-new/hostfile.c +--- source/hostfile.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/hostfile.c 2025-09-06 21:09:36.555438339 +0700 +@@ -44,7 +44,9 @@ + #include + + #include ++#ifndef __redox__ + #include ++#endif + #include + #include + #include +diff -ruwN source/loginrec.c source-new/loginrec.c +--- source/loginrec.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/loginrec.c 2025-09-06 21:09:36.556438304 +0700 +@@ -1033,7 +1033,7 @@ + return (0); + } + # else +- if (!utmpx_write_direct(li, &ut)) { ++ if (!utmpx_write_direct(li, &utx)) { + logit("%s: utmp_write_direct() failed", __func__); + return (0); + } +diff -ruwN source/loginrec.h source-new/loginrec.h +--- source/loginrec.h 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/loginrec.h 2025-09-06 21:09:36.556438304 +0700 +@@ -30,6 +30,7 @@ + **/ + + #include "includes.h" ++#include "openbsd-compat/utmpx.h" + + struct ssh; + +diff -ruwN source/misc.c source-new/misc.c +--- source/misc.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/misc.c 2025-09-07 01:21:42.201992304 +0700 +@@ -2843,7 +2843,6 @@ + error("%s: dup2: %s", tag, strerror(errno)); + _exit(1); + } +- closefrom(STDERR_FILENO + 1); + + if (geteuid() == 0 && + initgroups(pw->pw_name, pw->pw_gid) == -1) { +diff -ruwN source/monitor.c source-new/monitor.c +--- source/monitor.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/monitor.c 2025-09-07 00:46:23.435378053 +0700 +@@ -484,18 +484,19 @@ + pfd[0].events = POLLIN; + pfd[1].fd = pmonitor->m_log_recvfd; + pfd[1].events = pfd[1].fd == -1 ? 0 : POLLIN; +- if (poll(pfd, pfd[1].fd == -1 ? 1 : 2, -1) == -1) { ++ // redox can't handle timeout -1 (the poll stuck) ++ if (poll(pfd, pfd[1].fd == -1 ? 1 : 2, 1000) == -1) { + if (errno == EINTR || errno == EAGAIN) + continue; + fatal_f("poll: %s", strerror(errno)); + } + if (pfd[1].revents) { ++ + /* + * Drain all log messages before processing next + * monitor request. + */ + monitor_read_log(pmonitor); +- continue; + } + if (pfd[0].revents) + break; /* Continues below */ +@@ -1577,7 +1578,8 @@ + res = pty_allocate(&s->ptyfd, &s->ttyfd, s->tty, sizeof(s->tty)); + if (res == 0) + goto error; +- pty_setowner(authctxt->pw, s->tty); ++ // non sense in redox ++ // pty_setowner(authctxt->pw, s->tty); + + if ((r = sshbuf_put_u32(m, 1)) != 0 || + (r = sshbuf_put_cstring(m, s->tty)) != 0) +diff -ruwN source/openbsd-compat/bsd-statvfs.h source-new/openbsd-compat/bsd-statvfs.h +--- source/openbsd-compat/bsd-statvfs.h 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/openbsd-compat/bsd-statvfs.h 2025-09-06 21:09:36.556438304 +0700 +@@ -37,13 +37,6 @@ + typedef unsigned long fsfilcnt_t; + #endif + +-#ifndef ST_RDONLY +-#define ST_RDONLY 1 +-#endif +-#ifndef ST_NOSUID +-#define ST_NOSUID 2 +-#endif +- + /* as defined in IEEE Std 1003.1, 2004 Edition */ + struct statvfs { + unsigned long f_bsize; /* File system block size. */ +diff -ruwN source/openbsd-compat/getrrsetbyname.c source-new/openbsd-compat/getrrsetbyname.c +--- source/openbsd-compat/getrrsetbyname.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/openbsd-compat/getrrsetbyname.c 2025-09-06 21:09:36.556438304 +0700 +@@ -67,6 +67,52 @@ + #endif + #define _THREAD_PRIVATE(a,b,c) (c) + ++#ifdef __redox__ ++ ++#include ++#include ++ ++/* ++ * Minimalist replacement for for systems that lack it, ++ * such as Redox OS. This provides the basic structures needed by ++ * the OpenSSH compatibility layer. ++ */ ++ ++// Define necessary constants ++#define MAXNS 3 /* max # name servers we'll track */ ++#define MAXDNSRCH 6 /* max # domains in search path */ ++#define MAXRESOLVSORT 10 /* number of nets to sort on */ ++#define MAXDNAME 256 /* max length of a domain name */ ++ ++/* ++ * A simplified, portable version of the resolver state structure. ++ * Glibc-specific fields, hooks, and complex unions have been removed. ++ */ ++struct __res_state { ++ int retrans; /* retransmission time interval */ ++ int retry; /* number of times to retransmit */ ++ unsigned long options; /* option flags */ ++ int nscount; /* number of name servers */ ++ struct sockaddr_in nsaddr_list[MAXNS]; /* address of name servers */ ++ unsigned short id; /* current message id */ ++ char *dnsrch[MAXDNSRCH + 1]; /* components of domain to search */ ++ char defdname[MAXDNAME]; /* default domain name */ ++ ++ struct { ++ struct in_addr addr; ++ uint32_t mask; ++ } sort_list[MAXRESOLVSORT]; ++ ++ int res_h_errno; /* last error code for this context */ ++ ++ // Simplified bitfields, removing glibc internals ++ unsigned ndots : 4; /* threshold for initial abs. query */ ++ unsigned nsort : 4; /* number of elements in sort_list[] */ ++}; ++ ++typedef struct __res_state *res_state; ++#endif /* __redox */ ++ + #ifndef HAVE__RES_EXTERN + struct __res_state _res; + #endif +@@ -167,6 +213,24 @@ + struct dns_rr *next; + }; + ++#ifdef __redox__ ++typedef struct { ++ uint16_t id; ++ uint8_t rd : 1; ++ uint8_t tc : 1; ++ uint8_t aa : 1; ++ uint8_t opcode : 4; ++ uint8_t qr : 1; ++ uint8_t rcode : 4; ++ uint8_t z : 3; ++ uint8_t ra : 1; ++ uint16_t qdcount; ++ uint16_t ancount; ++ uint16_t nscount; ++ uint16_t arcount; ++} HEADER; ++#endif ++ + struct dns_response { + HEADER header; + struct dns_query *query; +@@ -221,10 +285,10 @@ + } + + /* initialize resolver */ +- if ((_resp->options & RES_INIT) == 0 && res_init() == -1) { ++ // if (res_init() == -1) { + result = ERRSET_FAIL; + goto fail; +- } ++ // } + + #ifdef DEBUG + _resp->options |= RES_DEBUG; +@@ -482,12 +546,12 @@ + prev->next = curr; + + /* name */ +- length = dn_expand(answer, answer + size, *cp, name, +- sizeof(name)); +- if (length < 0) { ++ // length = dn_expand(answer, answer + size, *cp, name, ++ // sizeof(name)); ++ // if (length < 0) { + free_dns_query(head); + return (NULL); +- } ++ // } + curr->name = strdup(name); + if (curr->name == NULL) { + free_dns_query(head); +@@ -542,12 +606,12 @@ + prev->next = curr; + + /* name */ +- length = dn_expand(answer, answer + size, *cp, name, +- sizeof(name)); +- if (length < 0) { ++ // length = dn_expand(answer, answer + size, *cp, name, ++ // sizeof(name)); ++ // if (length < 0) { + free_dns_rr(head); + return (NULL); +- } ++ // } + curr->name = strdup(name); + if (curr->name == NULL) { + free_dns_rr(head); +diff -ruwN source/openbsd-compat/getrrsetbyname.h source-new/openbsd-compat/getrrsetbyname.h +--- source/openbsd-compat/getrrsetbyname.h 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/openbsd-compat/getrrsetbyname.h 2025-09-06 21:09:36.557438268 +0700 +@@ -54,9 +54,13 @@ + + #include + #include ++#ifndef __redox__ + #include ++#endif + #include ++#ifndef __redox__ + #include ++#endif + + #ifndef HFIXEDSZ + #define HFIXEDSZ 12 +diff -ruwN source/openbsd-compat/inet_ntop.c source-new/openbsd-compat/inet_ntop.c +--- source/openbsd-compat/inet_ntop.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/openbsd-compat/inet_ntop.c 2025-09-06 21:09:36.557438268 +0700 +@@ -26,7 +26,9 @@ + #include + #include + #include ++#ifndef __redox__ + #include ++#endif + #include + #include + #include +diff -ruwN source/openbsd-compat/openbsd-compat.h source-new/openbsd-compat/openbsd-compat.h +--- source/openbsd-compat/openbsd-compat.h 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/openbsd-compat/openbsd-compat.h 2025-09-06 21:09:36.557438268 +0700 +@@ -36,6 +36,8 @@ + + #include /* for wchar_t */ + ++#include "getopt.h" ++ + /* OpenBSD function replacements */ + #include "base64.h" + #include "sigact.h" +diff -ruwN source/openbsd-compat/utmpx.c source-new/openbsd-compat/utmpx.c +--- source/openbsd-compat/utmpx.c 1970-01-01 07:00:00.000000000 +0700 ++++ source-new/openbsd-compat/utmpx.c 2025-09-06 21:09:36.557438268 +0700 +@@ -0,0 +1,13 @@ ++#include "utmpx.h" ++#include // For NULL ++ ++#ifdef __redox__ ++ ++void endutxent(void) { /* Do nothing */ } ++struct utmpx *getutxent(void) { return NULL; } ++struct utmpx *getutxid(const struct utmpx *ut) { return NULL; } ++struct utmpx *getutxline(const struct utmpx *ut) { return NULL; } ++struct utmpx *pututxline(const struct utmpx *ut) { return NULL; } ++void setutxent(void) { /* Do nothing */ } ++ ++#endif +\ No newline at end of file +diff -ruwN source/openbsd-compat/utmpx.h source-new/openbsd-compat/utmpx.h +--- source/openbsd-compat/utmpx.h 1970-01-01 07:00:00.000000000 +0700 ++++ source-new/openbsd-compat/utmpx.h 2025-09-06 21:09:36.557438268 +0700 +@@ -0,0 +1,69 @@ ++#ifndef _COMPAT_UTMPX_H ++#define _COMPAT_UTMPX_H ++#ifdef __redox__ ++#include ++#include ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/* ++ * This header provides a POSIX-compliant definition of the utmpx structure ++ * and related functions for systems that lack a native , such as Redox OS. ++ */ ++ ++// Define standard sizes for character arrays, based on common practice (e.g., Linux) ++#define UT_LINESIZE 32 ++#define UT_NAMESIZE 32 ++#define UT_HOSTSIZE 256 ++#define UT_IDSIZE 4 ++ ++/* ++ * The utmpx structure, containing user accounting information. ++ */ ++struct utmpx { ++ char ut_user[UT_NAMESIZE]; /* User login name */ ++ char ut_id[UT_IDSIZE]; /* Unspecified terminal id */ ++ char ut_line[UT_LINESIZE]; /* Device name of tty */ ++ pid_t ut_pid; /* Process ID */ ++ short ut_type; /* Type of entry */ ++ struct timeval ut_tv; /* Time entry was made */ ++ // Non-standard but very common fields, often needed for compatibility ++ char ut_host[UT_HOSTSIZE]; /* Host name for remote login */ ++ // Padding to align the structure, if necessary ++ char __padding[16]; ++}; ++ ++/* ++ * Symbolic constants for the ut_type field. ++ */ ++#define EMPTY 0 /* No valid user accounting information */ ++#define BOOT_TIME 1 /* Time of system boot */ ++#define OLD_TIME 2 /* Time when system clock changed */ ++#define NEW_TIME 3 /* Time after system clock changed */ ++#define USER_PROCESS 4 /* A user process */ ++#define INIT_PROCESS 5 /* A process spawned by the init process */ ++#define LOGIN_PROCESS 6 /* The session leader of a logged-in user */ ++#define DEAD_PROCESS 7 /* A session leader who has exited */ ++ ++/* ++ * Function prototypes for utmpx database manipulation. ++ * ++ * NOTE: These are stubs. Since Redox OS does not have a utmp/utmpx ++ * database, these functions won't have a real implementation. They ++ * are declared here to satisfy the linker. ++ */ ++void endutxent(void); ++struct utmpx *getutxent(void); ++struct utmpx *getutxid(const struct utmpx *); ++struct utmpx *getutxline(const struct utmpx *); ++struct utmpx *pututxline(const struct utmpx *); ++void setutxent(void); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* __redox__ */ ++#endif /* _COMPAT_UTMPX_H */ +\ No newline at end of file +diff -ruwN source/readconf.c source-new/readconf.c +--- source/readconf.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/readconf.c 2025-09-07 01:21:42.201992304 +0700 +@@ -554,7 +554,6 @@ + + if (stdfd_devnull(1, 1, 0) == -1) + fatal_f("stdfd_devnull failed"); +- closefrom(STDERR_FILENO + 1); + + argv[0] = shell; + argv[1] = "-c"; +diff -ruwN source/readpass.c source-new/readpass.c +--- source/readpass.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/readpass.c 2025-09-07 01:21:42.201992304 +0700 +@@ -278,7 +278,6 @@ + if (pid == 0) { + if (stdfd_devnull(1, 1, 0) == -1) + fatal_f("stdfd_devnull failed"); +- closefrom(STDERR_FILENO + 1); + setenv("SSH_ASKPASS_PROMPT", "none", 1); /* hint to UI */ + execlp(askpass, askpass, prompt, (char *)NULL); + error_f("exec(%s): %s", askpass, strerror(errno)); +diff -ruwN source/regress/netcat.c source-new/regress/netcat.c +--- source/regress/netcat.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/regress/netcat.c 2025-09-06 21:09:36.558438233 +0700 +@@ -1384,7 +1384,9 @@ + #include + #include + #include ++#ifndef __redox__ + #include ++#endif + + #define SOCKS_PORT "1080" + #define HTTP_PROXY_PORT "3128" +diff -ruwN source/session.c source-new/session.c +--- source/session.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/session.c 2025-09-07 01:22:43.637928015 +0700 +@@ -1365,10 +1365,12 @@ + exit(1); + } + /* Initialize the group list. */ ++#ifndef __redox__ + if (initgroups(pw->pw_name, pw->pw_gid) < 0) { + perror("initgroups"); + exit(1); + } ++#endif + endgrent(); + #endif + +@@ -1490,7 +1492,6 @@ + * initgroups, because at least on Solaris 2.3 it leaves file + * descriptors open. + */ +- closefrom(STDERR_FILENO + 1); + } + + /* +@@ -1624,7 +1625,6 @@ + exit(1); + } + +- closefrom(STDERR_FILENO + 1); + + do_rc_files(ssh, s, shell); + +diff -ruwN source/sshbuf-misc.c source-new/sshbuf-misc.c +--- source/sshbuf-misc.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/sshbuf-misc.c 2025-09-06 21:09:36.559438198 +0700 +@@ -28,7 +28,9 @@ + #include + #include + #include ++#ifndef __redox__ + #include ++#endif + #include + #include + +diff -ruwN source/ssh.c source-new/ssh.c +--- source/ssh.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/ssh.c 2025-09-07 01:22:43.638928030 +0700 +@@ -689,7 +689,6 @@ + * Discard other fds that are hanging around. These can cause problem + * with backgrounded ssh processes started by ControlPersist. + */ +- closefrom(STDERR_FILENO + 1); + + __progname = ssh_get_progname(av[0]); + +diff -ruwN source/sshconnect2.c source-new/sshconnect2.c +--- source/sshconnect2.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/sshconnect2.c 2025-09-07 01:22:58.683157171 +0700 +@@ -2057,7 +2057,6 @@ + sock = STDERR_FILENO + 1; + if (fcntl(sock, F_SETFD, 0) == -1) /* keep the socket on exec */ + debug3_f("fcntl F_SETFD: %s", strerror(errno)); +- closefrom(sock + 1); + + debug3_f("[child] pid=%ld, exec %s", + (long)getpid(), _PATH_SSH_KEY_SIGN); +diff -ruwN source/sshd.c source-new/sshd.c +--- source/sshd.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/sshd.c 2025-09-07 01:39:34.681252169 +0700 +@@ -1222,7 +1222,7 @@ + debug("setgroups(): %.200s", strerror(errno)); + + /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ +- sanitise_stdfd(); ++ // sanitise_stdfd(); + + /* Initialize configuration options to their default values. */ + initialize_server_options(&options); +@@ -1344,7 +1344,6 @@ + if (!test_flag && !do_dump_cfg && !path_absolute(av[0])) + fatal("sshd requires execution with an absolute path"); + +- closefrom(STDERR_FILENO + 1); + + /* Reserve fds we'll need later for reexec things */ + if ((devnull = open(_PATH_DEVNULL, O_RDWR)) == -1) +@@ -1482,13 +1481,13 @@ + options.host_key_files[i]); + key->sk_flags &= ~SSH_SK_USER_PRESENCE_REQD; + } +- if (r == 0 && key != NULL && +- (r = sshkey_shield_private(key)) != 0) { +- do_log2_r(r, ll, "Unable to shield host key \"%s\"", +- options.host_key_files[i]); +- sshkey_free(key); +- key = NULL; +- } ++ // if (r == 0 && key != NULL && ++ // (r = sshkey_shield_private(key)) != 0) { ++ // do_log2_r(r, ll, "Unable to shield host key \"%s\"", ++ // options.host_key_files[i]); ++ // sshkey_free(key); ++ // key = NULL; ++ // } + if ((r = sshkey_load_public(options.host_key_files[i], + &pubkey, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR) + do_log2_r(r, ll, "Unable to load host key \"%s\"", +@@ -1600,8 +1599,7 @@ + } + + /* Ensure privsep directory is correctly configured. */ +- need_chroot = ((getuid() == 0 || geteuid() == 0) || +- options.kerberos_authentication); ++ need_chroot = 0;// ((getuid() == 0 || geteuid() == 0) || options.kerberos_authentication); + if ((getpwnam(SSH_PRIVSEP_USER)) == NULL && need_chroot) { + fatal("Privilege separation user %s does not exist", + SSH_PRIVSEP_USER); +@@ -1773,7 +1771,7 @@ + close(startup_pipe); + } + log_redirect_stderr_to(NULL); +- closefrom(REEXEC_MIN_FREE_FD); ++ // closefrom(REEXEC_MIN_FREE_FD); + + ssh_signal(SIGHUP, SIG_IGN); /* avoid reset to SIG_DFL */ + execv(rexec_argv[0], rexec_argv); +diff -ruwN source/sshd-session.c source-new/sshd-session.c +--- source/sshd-session.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/sshd-session.c 2025-09-06 21:15:43.796191268 +0700 +@@ -1031,7 +1031,7 @@ + if (!rexeced_flag) + fatal("sshd-session should not be executed directly"); + +- closefrom(REEXEC_MIN_FREE_FD); ++ // closefrom(REEXEC_MIN_FREE_FD); + + seed_rng(); + +@@ -1073,7 +1073,7 @@ + options.timing_secret = timing_secret; + + /* Store privilege separation user for later use if required. */ +- privsep_chroot = (getuid() == 0 || geteuid() == 0); ++ privsep_chroot = 0;// (getuid() == 0 || geteuid() == 0); + if ((privsep_pw = getpwnam(SSH_PRIVSEP_USER)) == NULL) { + if (privsep_chroot || options.kerberos_authentication) + fatal("Privilege separation user %s does not exist", +diff -ruwN source/sshkey.c source-new/sshkey.c +--- source/sshkey.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/sshkey.c 2025-09-06 21:09:36.567437916 +0700 +@@ -43,7 +43,9 @@ + #include + #include + #include ++#ifndef __redox__ + #include ++#endif + #include + #ifdef HAVE_UTIL_H + #include +diff -ruwN source/ssh-sk-client.c source-new/ssh-sk-client.c +--- source/ssh-sk-client.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/ssh-sk-client.c 2025-09-07 01:21:42.201992304 +0700 +@@ -91,7 +91,6 @@ + } + close(pair[0]); + close(pair[1]); +- closefrom(STDERR_FILENO + 1); + debug_f("starting %s %s", helper, + verbosity == NULL ? "" : verbosity); + execlp(helper, helper, verbosity, (char *)NULL); +diff -ruwN source/ssh-sk-helper.c source-new/ssh-sk-helper.c +--- source/ssh-sk-helper.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/ssh-sk-helper.c 2025-09-07 01:22:43.638928030 +0700 +@@ -303,7 +303,6 @@ + * Rearrange our file descriptors a little; we don't trust the + * providers not to fiddle with stdin/out. + */ +- closefrom(STDERR_FILENO + 1); + if ((in = dup(STDIN_FILENO)) == -1 || (out = dup(STDOUT_FILENO)) == -1) + fatal("%s: dup: %s", __progname, strerror(errno)); + close(STDIN_FILENO); +diff -ruwN source/uidswap.c source-new/uidswap.c +--- source/uidswap.c 2024-07-01 11:36:28.000000000 +0700 ++++ source-new/uidswap.c 2025-09-07 00:01:52.531094834 +0700 +@@ -37,7 +37,7 @@ + * POSIX saved uids or not. + */ + +-#if defined(_POSIX_SAVED_IDS) && !defined(BROKEN_SAVED_UIDS) ++#if !defined(BROKEN_SAVED_UIDS) + /* Lets assume that posix saved ids also work with seteuid, even though that + is not part of the posix specification. */ + #define SAVED_IDS_WORK_WITH_SETEUID +@@ -83,6 +83,9 @@ + privileged = 1; + temporarily_use_uid_effective = 1; + ++ // getgroups broken in redox ++#ifndef __redox__ ++ + saved_egroupslen = getgroups(0, NULL); + if (saved_egroupslen == -1) + fatal("getgroups: %.100s", strerror(errno)); +@@ -119,6 +122,7 @@ + /* Set the effective uid to the given (unprivileged) uid. */ + if (setgroups(user_groupslen, user_groups) == -1) + fatal("setgroups: %.100s", strerror(errno)); ++#endif + #ifndef SAVED_IDS_WORK_WITH_SETEUID + /* Propagate the privileged gid to all of our gids. */ + if (setgid(getegid()) == -1) +@@ -168,8 +172,11 @@ + fatal("%s: setgid failed: %s", __func__, strerror(errno)); + #endif /* SAVED_IDS_WORK_WITH_SETEUID */ + ++ // setgroups broken in redox ++#ifndef __redox__ + if (setgroups(saved_egroupslen, saved_egroups) == -1) + fatal("setgroups: %.100s", strerror(errno)); ++#endif + temporarily_use_uid_effective = 0; + } + diff --git a/recipes/net/redox-ssh/recipe.toml b/recipes/net/redox-ssh/recipe.toml new file mode 100644 index 000000000..277727fbc --- /dev/null +++ b/recipes/net/redox-ssh/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/redox-ssh.git" + +[build] +template = "cargo" diff --git a/recipes/net/rsync/recipe.toml b/recipes/net/rsync/recipe.toml new file mode 100644 index 000000000..4a967f270 --- /dev/null +++ b/recipes/net/rsync/recipe.toml @@ -0,0 +1,12 @@ +[source] +tar = "https://download.samba.org/pub/rsync/src/rsync-3.4.1.tar.gz" +patches = ["redox.patch"] + +[build] +template = "configure" +dependencies = [ + "zstd", + "lz4", + "openssl1", + "xxhash", +] diff --git a/recipes/net/rsync/redox.patch b/recipes/net/rsync/redox.patch new file mode 100644 index 000000000..07a929b01 --- /dev/null +++ b/recipes/net/rsync/redox.patch @@ -0,0 +1,25 @@ +diff -ruwN source/rsync.h source-new/rsync.h +--- source/rsync.h 2025-01-16 02:21:54.000000000 +0700 ++++ source-new/rsync.h 2025-09-08 12:18:06.427647717 +0700 +@@ -483,6 +483,21 @@ + #include + #endif + ++#ifdef __redox__ ++ ++// no sys/sysmacros.h, probably no problem ++#include ++#define major(dev) (0) ++#define minor(dev) (0) ++#define makedev(maj, min) (0) ++ ++// no openat yet ++#undef O_NOFOLLOW ++#undef O_DIRECTORY ++#undef AT_FDCWD ++ ++#endif ++ + #ifdef MAKEDEV_TAKES_3_ARGS + #define MAKEDEV(devmajor,devminor) makedev(0,devmajor,devminor) + #else diff --git a/recipes/other/ca-certificates/recipe.toml b/recipes/other/ca-certificates/recipe.toml new file mode 100644 index 000000000..b7674f22b --- /dev/null +++ b/recipes/other/ca-certificates/recipe.toml @@ -0,0 +1,11 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/ca-certificates.git" + +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/etc/ssl" +cp -rv "${COOKBOOK_SOURCE}/certs" "${COOKBOOK_STAGE}/etc/ssl/certs" +#TODO: remove deprecated location after all recipes are fixed +ln -s etc/ssl "${COOKBOOK_STAGE}/ssl" +""" diff --git a/recipes/other/cookbook/recipe.toml b/recipes/other/cookbook/recipe.toml new file mode 100644 index 000000000..a367acbb2 --- /dev/null +++ b/recipes/other/cookbook/recipe.toml @@ -0,0 +1,29 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/redox.git" + +[build] +template = "custom" +script = """ +cookbook_cargo + +mkdir -pv "${COOKBOOK_STAGE}/home/user/cookbook" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/cookbook" +""" + +[package] +dependencies = [ + # TODO: When rust working, use this + # "dev-essential", + "autoconf", + "automake", + "gcc13", + "gcc13.cxx", + "git", + "gnu-make", + "libtool", + "patch", + "pkg-config", + "pkgar", + "sed", + "wget", +] diff --git a/recipes/other/generaluser-gs/recipe.toml b/recipes/other/generaluser-gs/recipe.toml new file mode 100644 index 000000000..24aae0d32 --- /dev/null +++ b/recipes/other/generaluser-gs/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/generaluser-gs.git" + +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/usr/share/generaluser-gs" +cp -Rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/usr/share/generaluser-gs" +""" diff --git a/recipes/other/jeremy/recipe.toml b/recipes/other/jeremy/recipe.toml new file mode 100644 index 000000000..47c300e07 --- /dev/null +++ b/recipes/other/jeremy/recipe.toml @@ -0,0 +1,11 @@ +# This is a private repository that sets up my user +[source] +git = "https://gitlab.redox-os.org/jackpot51/jeremy.git" + +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/home" +cp -rv "${COOKBOOK_SOURCE}" "${COOKBOOK_STAGE}/home/user" +rm -rf "${COOKBOOK_STAGE}/home/user/.git" +""" diff --git a/recipes/other/myfiles/recipe.toml b/recipes/other/myfiles/recipe.toml new file mode 100644 index 000000000..3cb6ba09a --- /dev/null +++ b/recipes/other/myfiles/recipe.toml @@ -0,0 +1,6 @@ +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/home/user" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user" +""" diff --git a/recipes/other/rustconf2025/recipe.toml b/recipes/other/rustconf2025/recipe.toml new file mode 100644 index 000000000..7bd748111 --- /dev/null +++ b/recipes/other/rustconf2025/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://github.com/jackpot51/rustconf2025.git" + +[build] +template = "custom" +script = """ +mkdir -p "${COOKBOOK_STAGE}/home/user" +cp -v "${COOKBOOK_SOURCE}/"*.pdf "${COOKBOOK_STAGE}/home/user" +""" diff --git a/recipes/other/shared-mime-info/recipe.toml b/recipes/other/shared-mime-info/recipe.toml new file mode 100755 index 000000000..d0f6b1a71 --- /dev/null +++ b/recipes/other/shared-mime-info/recipe.toml @@ -0,0 +1,26 @@ +# This does not build update-mime-database to avoid bringing in C code to Redox +[source] +tar = "https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.4/shared-mime-info-2.4.tar.gz" +blake3 = "ad130f2f923ab3d5455c643e6257abf3598339fdd134ad0fac4e5dbbbf070eb9" + +[build] +template = "custom" +script = """ +mkdir -p "${COOKBOOK_STAGE}/usr/share/mime/packages" +msgfmt --xml \ + --template="${COOKBOOK_SOURCE}/data/freedesktop.org.xml.in" \ + -d "${COOKBOOK_SOURCE}/po" \ + -o "${COOKBOOK_STAGE}/usr/share/mime/packages/freedesktop.org.xml" +update-mime-database -V "${COOKBOOK_STAGE}/usr/share/mime" +mkdir -p "${COOKBOOK_STAGE}/usr/share/pkgconfig" +cat > "${COOKBOOK_STAGE}/usr/share/pkgconfig/shared-mime-info.pc" <type == cm_simple && command->value.Simple->words == 0 && command->value.Simple->redirects == 0); + if (posixly_correct && nullcmd) + { +-#if defined (HAVE_GETRUSAGE) ++#if defined (HAVE_GETRUSAGE) && defined (HAVE_GETTIMEOFDAY) + selfb.ru_utime.tv_sec = kidsb.ru_utime.tv_sec = selfb.ru_stime.tv_sec = kidsb.ru_stime.tv_sec = 0; + selfb.ru_utime.tv_usec = kidsb.ru_utime.tv_usec = selfb.ru_stime.tv_usec = kidsb.ru_stime.tv_usec = 0; + before = shellstart; +-#else ++#elif defined (HAVE_TIMES) + before.tms_utime = before.tms_stime = before.tms_cutime = before.tms_cstime = 0; + tbefore = shell_start_time; + #endif +diff -ruwN source/general.c source-new/general.c +--- source/general.c 2022-11-24 05:10:12.000000000 +0700 ++++ source-new/general.c 2025-09-19 17:09:24.754782168 +0700 +@@ -589,6 +589,7 @@ + void + check_dev_tty () + { ++#if !defined(__redox__) + int tty_fd; + char *tty; + +@@ -603,6 +604,7 @@ + } + if (tty_fd >= 0) + close (tty_fd); ++#endif + } + + /* Return 1 if PATH1 and PATH2 are the same file. This is kind of +diff -ruwN source/include/posixwait.h source-new/include/posixwait.h +--- source/include/posixwait.h 2019-03-30 00:25:52.000000000 +0700 ++++ source-new/include/posixwait.h 2025-09-01 04:36:35.276926707 +0700 +@@ -34,7 +34,7 @@ + + /* How to get the status of a job. For Posix, this is just an + int, but for other systems we have to crack the union wait. */ +-#if !defined (_POSIX_VERSION) ++#if 0 + typedef union wait WAIT; + # define WSTATUS(t) (t.w_status) + #else /* _POSIX_VERSION */ +@@ -50,7 +50,7 @@ + + /* More Posix P1003.1 definitions. In the POSIX versions, the parameter is + passed as an `int', in the non-POSIX version, as `union wait'. */ +-#if defined (_POSIX_VERSION) ++#if 1 + + # if !defined (WSTOPSIG) + # define WSTOPSIG(s) ((s) >> 8) +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 +@@ -805,7 +805,7 @@ + int result; + unsigned char c; + int fd; +-#if defined (HAVE_PSELECT) ++#if defined (HAVE_PSELECT) || defined (HAVE_SELECT) + sigset_t empty_set; + fd_set readfds; + #endif +diff -ruwN source/lib/readline/terminal.c source-new/lib/readline/terminal.c +--- source/lib/readline/terminal.c 2022-04-05 21:44:17.000000000 +0700 ++++ source-new/lib/readline/terminal.c 2025-09-01 04:36:35.286927174 +0700 +@@ -102,7 +102,7 @@ + + static int tcap_initialized; + +-#if !defined (__linux__) && !defined (NCURSES_VERSION) ++#if !defined (__linux__) && !defined (NCURSES_VERSION) && !defined (__redox__) + # if defined (__EMX__) || defined (NEED_EXTERN_PC) + extern + # endif /* __EMX__ || NEED_EXTERN_PC */ +diff -ruwN source/lib/sh/getcwd.c source-new/lib/sh/getcwd.c +--- source/lib/sh/getcwd.c 2012-03-10 22:48:50.000000000 +0700 ++++ source-new/lib/sh/getcwd.c 2025-09-01 04:36:35.286927174 +0700 +@@ -20,7 +20,7 @@ + + #include + +-#if !defined (HAVE_GETCWD) ++#if !defined (HAVE_GETCWD) && !defined(__redox__) + + #if !defined (__GNUC__) && !defined (HAVE_ALLOCA_H) && defined (_AIX) + #pragma alloca +diff -ruwN source/lib/sh/input_avail.c source-new/lib/sh/input_avail.c +--- source/lib/sh/input_avail.c 2021-05-24 22:16:33.000000000 +0700 ++++ source-new/lib/sh/input_avail.c 2025-09-01 04:36:35.298927735 +0700 +@@ -33,7 +33,7 @@ + # include + #endif /* HAVE_SYS_FILE_H */ + +-#if defined (HAVE_PSELECT) ++#if defined (HAVE_PSELECT) || defined (HAVE_SELECT) + # include + #endif + +diff -ruwN source/lib/sh/strtoimax.c source-new/lib/sh/strtoimax.c +--- source/lib/sh/strtoimax.c 2021-09-10 21:32:35.000000000 +0700 ++++ source-new/lib/sh/strtoimax.c 2025-09-01 04:36:35.301927876 +0700 +@@ -55,6 +55,8 @@ + extern long long strtoll PARAMS((const char *, char **, int)); + #endif + ++#if !defined (__redox__) ++ + #ifdef strtoimax + #undef strtoimax + #endif +@@ -79,6 +81,8 @@ + return (strtol (ptr, endptr, base)); + } + ++#endif ++ + #ifdef TESTING + # include + int +diff -ruwN source/parse.y source-new/parse.y +--- source/parse.y 2022-12-14 00:09:02.000000000 +0700 ++++ source-new/parse.y 2025-09-01 04:36:35.302927923 +0700 +@@ -2625,6 +2625,7 @@ + parser_state |= PST_ENDALIAS; + /* We need to do this to make sure last_shell_getc_is_singlebyte returns + true, since we are returning a single-byte space. */ ++#if defined (HANDLE_MULTIBYTE) + if (shell_input_line_index == shell_input_line_len && last_shell_getc_is_singlebyte == 0) + { + #if 0 +@@ -2638,6 +2639,7 @@ + shell_input_line_property[shell_input_line_index - 1] = 1; + #endif + } ++#endif /* HANDLE_MULTIBYTE */ + return ' '; /* END_ALIAS */ + } + #endif +diff -ruwN source/y.tab.c source-new/y.tab.c +--- source/y.tab.c 2022-12-14 00:09:02.000000000 +0700 ++++ source-new/y.tab.c 2025-09-01 04:36:35.307928157 +0700 +@@ -4936,6 +4936,7 @@ + parser_state |= PST_ENDALIAS; + /* We need to do this to make sure last_shell_getc_is_singlebyte returns + true, since we are returning a single-byte space. */ ++#if defined (HANDLE_MULTIBYTE) + if (shell_input_line_index == shell_input_line_len && last_shell_getc_is_singlebyte == 0) + { + #if 0 +@@ -4949,6 +4950,7 @@ + shell_input_line_property[shell_input_line_index - 1] = 1; + #endif + } ++#endif /* HANDLE_MULTIBYTE */ + return ' '; /* END_ALIAS */ + } + #endif diff --git a/recipes/shells/nushell/recipe.toml b/recipes/shells/nushell/recipe.toml new file mode 100644 index 000000000..e2559c668 --- /dev/null +++ b/recipes/shells/nushell/recipe.toml @@ -0,0 +1,20 @@ +#TODO: build fails to link, we need the following in relibc +# - getgrgid_r +# - getgrouplist +# Additionally, openssl fails to link fprintf and sscanf + +[source] +git = "https://github.com/jackpot51/nushell.git" +branch = "redox" + +[build] +dependencies = [ + "openssl1" +] +template = "custom" +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo +""" + diff --git a/recipes/sound/freepats/recipe.toml b/recipes/sound/freepats/recipe.toml new file mode 100644 index 000000000..67bc257fe --- /dev/null +++ b/recipes/sound/freepats/recipe.toml @@ -0,0 +1,12 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/freepats.git" + +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/share/freepats" +cp -Rv "${COOKBOOK_SOURCE}/"* "${COOKBOOK_STAGE}/share/freepats" +mkdir -pv "${COOKBOOK_STAGE}/etc/timidity" +echo "dir /share/freepats" > "${COOKBOOK_STAGE}/etc/timidity/freepats.cfg" +echo "source /share/freepats/freepats.cfg" >> "${COOKBOOK_STAGE}/etc/timidity/freepats.cfg" +""" diff --git a/recipes/sound/rodioplay/recipe.toml b/recipes/sound/rodioplay/recipe.toml new file mode 100644 index 000000000..84b246e1a --- /dev/null +++ b/recipes/sound/rodioplay/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/rodioplay.git" + +[build] +template = "cargo" diff --git a/recipes/sound/timidity/recipe.toml b/recipes/sound/timidity/recipe.toml new file mode 100644 index 000000000..98c254961 --- /dev/null +++ b/recipes/sound/timidity/recipe.toml @@ -0,0 +1,35 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/timidity.git" +branch = "redox" +script = """ +autoreconf -f -i + +wget -O autoconf/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" +""" + +[build] +template = "custom" +script = """ +export LDFLAGS="-static" + +COOKBOOK_CONFIGURE_FLAGS=( + --build="$(gcc -dumpmachine)" + --host="${TARGET}" + --prefix="" + --enable-vt100 +) + +cookbook_configure + +# Create configuration files +mkdir -pv "${COOKBOOK_STAGE}/etc/timidity" +echo "soundfont /share/generaluser-gs/generaluser-gs.sf2" >> "${COOKBOOK_STAGE}/etc/timidity/timidity.cfg" + +mkdir -pv "${COOKBOOK_STAGE}/share/timidity" +echo "soundfont /share/generaluser-gs/generaluser-gs.sf2" >> "${COOKBOOK_STAGE}/share/timidity/timidity.cfg" +""" + +[package] +dependencies = [ + "generaluser-gs", +] \ No newline at end of file diff --git a/recipes/tests/acid/recipe.toml b/recipes/tests/acid/recipe.toml new file mode 100644 index 000000000..1f1262905 --- /dev/null +++ b/recipes/tests/acid/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/acid.git" + +[build] +template = "cargo" diff --git a/recipes/tests/benchmarks/recipe.toml b/recipes/tests/benchmarks/recipe.toml new file mode 100644 index 000000000..17e613527 --- /dev/null +++ b/recipes/tests/benchmarks/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/benchmarks" + +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/benchmarks +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/benchmarks +""" diff --git a/recipes/tests/hello-redox/files/test.c b/recipes/tests/hello-redox/files/test.c new file mode 100644 index 000000000..dba479b03 --- /dev/null +++ b/recipes/tests/hello-redox/files/test.c @@ -0,0 +1,5 @@ +#include + +int main(void) { + printf("Hello, Redox!\\n"); +} diff --git a/recipes/tests/hello-redox/files/test.cpp b/recipes/tests/hello-redox/files/test.cpp new file mode 100644 index 000000000..65a037754 --- /dev/null +++ b/recipes/tests/hello-redox/files/test.cpp @@ -0,0 +1,6 @@ +#include + +int main() +{ + std::cout << "Hello, Redox!" << std::endl; +} diff --git a/recipes/tests/hello-redox/files/test.go b/recipes/tests/hello-redox/files/test.go new file mode 100644 index 000000000..10b79ce66 --- /dev/null +++ b/recipes/tests/hello-redox/files/test.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("Hello, Redox!") +} diff --git a/recipes/tests/hello-redox/files/test.java b/recipes/tests/hello-redox/files/test.java new file mode 100644 index 000000000..b6aca3d7c --- /dev/null +++ b/recipes/tests/hello-redox/files/test.java @@ -0,0 +1,5 @@ +public class Java { + public static void main(String[] args) { + System.out.println("Hello Redox"); + } +} diff --git a/recipes/tests/hello-redox/files/test.js b/recipes/tests/hello-redox/files/test.js new file mode 100644 index 000000000..d9bc174a7 --- /dev/null +++ b/recipes/tests/hello-redox/files/test.js @@ -0,0 +1 @@ +console.log("Hello Redox"); diff --git a/recipes/tests/hello-redox/files/test.lua b/recipes/tests/hello-redox/files/test.lua new file mode 100644 index 000000000..253def8be --- /dev/null +++ b/recipes/tests/hello-redox/files/test.lua @@ -0,0 +1 @@ +print("Hello, Redox!") diff --git a/recipes/tests/hello-redox/files/test.py b/recipes/tests/hello-redox/files/test.py new file mode 100644 index 000000000..253def8be --- /dev/null +++ b/recipes/tests/hello-redox/files/test.py @@ -0,0 +1 @@ +print("Hello, Redox!") diff --git a/recipes/tests/hello-redox/files/test.rs b/recipes/tests/hello-redox/files/test.rs new file mode 100644 index 000000000..42c716df0 --- /dev/null +++ b/recipes/tests/hello-redox/files/test.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, Redox!"); +} diff --git a/recipes/tests/hello-redox/files/test.zig b/recipes/tests/hello-redox/files/test.zig new file mode 100644 index 000000000..276595f1b --- /dev/null +++ b/recipes/tests/hello-redox/files/test.zig @@ -0,0 +1,5 @@ +const std = @import("std"); + +pub fn main() !void { + std.debug.print("Hello, Redox!\n", .{}); +} diff --git a/recipes/tests/hello-redox/recipe.toml b/recipes/tests/hello-redox/recipe.toml new file mode 100644 index 000000000..6801e8339 --- /dev/null +++ b/recipes/tests/hello-redox/recipe.toml @@ -0,0 +1,6 @@ +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/home/user/hello-redox" +cp -rv "${COOKBOOK_RECIPE}"/files/* "${COOKBOOK_STAGE}/home/user/hello-redox" +""" diff --git a/recipes/tests/openposixtestsuite/recipe.toml b/recipes/tests/openposixtestsuite/recipe.toml new file mode 100644 index 000000000..3ff2cb7e7 --- /dev/null +++ b/recipes/tests/openposixtestsuite/recipe.toml @@ -0,0 +1,19 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/openposixtestsuite.git" +branch = "redox" + +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/share/openposixtestsuite" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/share/openposixtestsuite" +""" + +[package] +dependencies = [ + "gcc13", + "gnu-binutils", + "gnu-make", + "sed", +] + diff --git a/recipes/tests/os-test-bins/recipe.toml b/recipes/tests/os-test-bins/recipe.toml new file mode 100644 index 000000000..96edb9d30 --- /dev/null +++ b/recipes/tests/os-test-bins/recipe.toml @@ -0,0 +1,28 @@ +[source] +same_as = "../os-test" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +SRC=${COOKBOOK_SOURCE} +DST=${COOKBOOK_STAGE}/root/os-test +if [ -z "$TESTBIN" ]; then +pushd ${SRC} +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 + echo "./$filename" >> $DST/run.sh +done +popd +else + mkdir -p $(dirname $DST/$TESTBIN) + ${CC} ${CFLAGS} ${LDFLAGS} "$SRC/$TESTBIN.c" -o "$DST/$TESTBIN" -Wall +fi + +if [ -n "TESTBIN" ]; then +"${COOKBOOK_REDOXER}" write-exec "$DST/$TESTBIN" +fi +""" diff --git a/recipes/tests/os-test-result/recipe.toml b/recipes/tests/os-test-result/recipe.toml new file mode 100644 index 000000000..f0fded6b0 --- /dev/null +++ b/recipes/tests/os-test-result/recipe.toml @@ -0,0 +1,101 @@ +[source] +same_as = "../os-test" + +[build] +template = "custom" +dev-dependencies = [ + "host:redoxer", +# allows rebuilding relibc without updating prefix + "relibc", + "gnu-grep", + "libarchive", +] +script = """ +if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then +# TODO: libc conflict on toolchain +export LD_LIBRARY_PATH="/lib/${GNU_TARGET}:${LD_LIBRARY_PATH}" +fi + +rsync -a "${COOKBOOK_SOURCE}/" ./ +os=$(echo "${TARGET}" | cut -d - -f3) +case "$os" in + linux) OS=Linux;; + redox) OS=Redox;; +esac + +# allows linking to relibc instead of prefix/host libc +export CC="env LIBRARY_PATH=${COOKBOOK_SYSROOT}/lib ${GNU_TARGET}-gcc" +export CFLAGS="\ +-nostdinc \ +-nostdlib \ +-isystem ${COOKBOOK_SYSROOT}/include \ +-static \ +--sysroot ${COOKBOOK_SYSROOT} \ +${COOKBOOK_SYSROOT}/lib/crt0.o \ +${COOKBOOK_SYSROOT}/lib/crti.o \ +${COOKBOOK_SYSROOT}/lib/crtn.o \ +${COOKBOOK_SYSROOT}/lib/libc.a \ +" + +make OS=${OS} CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS= \ + LDFLAGS= EXTRA_LDFLAGS= \ + CC_FOR_BUILD="${CC_WRAPPER} cc" CFLAGS_FOR_BUILD= CPPFLAGS_FOR_BUILD= \ + LDFLAGS_FOR_BUILD= -j ${COOKBOOK_MAKE_JOBS} all + +skips=( + # Skip hanging tests on Linux/Redox with relibc + basic/stdio/putc_unlocked +) + +if [ "$OS" = "Redox" ]; then +skips+=( + # Skip hanging tests on Redox with relibc + # https://gitlab.redox-os.org/redox-os/redox/-/issues/1752 + basic/sys_socket/accept + basic/sys_socket/recv + basic/sys_socket/send + basic/sys_socket/shutdown + signal/ppoll-block-close + signal/ppoll-block-close-raise + signal/ppoll-block-raise + signal/ppoll-block-sleep-raise-write + signal/ppoll-block-sleep-raise + signal/ppoll-block-sleep-write-raise +) +fi + +for skip in "${skips[@]}" +do + mkdir -p out.known/${os}/"$(dirname "${skip}")" + echo "skipped" > 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 + echo 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 new file mode 100644 index 000000000..9b0d02354 --- /dev/null +++ b/recipes/tests/os-test/recipe.toml @@ -0,0 +1,20 @@ +# TODO remove gnu-grep when extrautils grep supports grep -E +[source] +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" +""" + +[package] +dependencies = [ + "gcc13", + "gnu-binutils", + "gnu-grep", + "gnu-make", + "libarchive", + "sed", +] diff --git a/recipes/tests/redox-posix-tests/recipe.toml b/recipes/tests/redox-posix-tests/recipe.toml new file mode 100644 index 000000000..dae4b48cc --- /dev/null +++ b/recipes/tests/redox-posix-tests/recipe.toml @@ -0,0 +1,18 @@ +[source] +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" +""" + +[package] +dependencies = [ + "gcc13", + "gnu-binutils", + "gnu-make", +] + diff --git a/recipes/tests/relibc-tests-bins/recipe.toml b/recipes/tests/relibc-tests-bins/recipe.toml new file mode 100644 index 000000000..80dfd9f6a --- /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 new file mode 100644 index 000000000..c854833dd --- /dev/null +++ b/recipes/tests/relibc-tests/recipe.toml @@ -0,0 +1,9 @@ +[source] +same_as = "../../core/relibc" + +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/share/relibc" +cp -rv "${COOKBOOK_SOURCE}/tests" "${COOKBOOK_STAGE}/share/relibc-tests" +""" diff --git a/recipes/tests/resist/recipe.toml b/recipes/tests/resist/recipe.toml new file mode 100644 index 000000000..7f0ecb237 --- /dev/null +++ b/recipes/tests/resist/recipe.toml @@ -0,0 +1,10 @@ +[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/vttest/recipe.toml b/recipes/tests/vttest/recipe.toml new file mode 100644 index 000000000..020c41925 --- /dev/null +++ b/recipes/tests/vttest/recipe.toml @@ -0,0 +1,21 @@ +[source] +tar = "https://invisible-island.net/archives/vttest/vttest-20140305.tgz" +blake3 = "b515b9a5e1f1498ed99e1a1c172fbcfdf2b7a214e185bd2005cc994407ded89e" +patches = ["redox.patch"] +script = """ +GNU_CONFIG_GET config.sub +""" + +[build] +template = "custom" +script = """ +export LDFLAGS="-static" + +COOKBOOK_CONFIGURE_FLAGS=( + --build="$(gcc -dumpmachine)" + --host="${TARGET}" + --prefix="" +) + +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/tests/vttest/redox.patch b/recipes/tests/vttest/redox.patch new file mode 100644 index 000000000..8fe39620c --- /dev/null +++ b/recipes/tests/vttest/redox.patch @@ -0,0 +1,80 @@ +diff -u source_original/main.c source/main.c +--- source_original/main.c 2014-01-16 22:15:19.000000000 +0100 ++++ source/main.c 2017-10-30 18:31:22.365280877 +0100 +@@ -1295,8 +1295,8 @@ + void + initterminal(int pn) + { +- init_ttymodes(pn); +- setup_terminal(""); ++ //init_ttymodes(pn); ++ //setup_terminal(""); + } + + /* Set up my personal prejudices */ +Common subdirectories: source_original/package and source/package +diff -u source_original/unix_io.c source/unix_io.c +--- source_original/unix_io.c 2014-01-16 23:11:39.000000000 +0100 ++++ source/unix_io.c 2017-10-30 18:48:13.927899071 +0100 +@@ -40,17 +40,17 @@ + lval = last_char; + brkrd = FALSE; + reading = TRUE; +-#ifdef HAVE_ALARM +- signal(SIGALRM, give_up); +- alarm(60); /* timeout after 1 minute, in case user's keyboard is hung */ +-#endif ++//#ifdef HAVE_ALARM ++// signal(SIGALRM, give_up); ++// alarm(60); /* timeout after 1 minute, in case user's keyboard is hung */ ++//#endif + if (read(0, &one_byte, (size_t) 1) < 0) + ch = EOF; + else + ch = (int) one_byte; +-#ifdef HAVE_ALARM +- alarm(0); +-#endif ++//#ifdef HAVE_ALARM ++// alarm(0); ++//#endif + reading = FALSE; + #ifdef DEBUG + { +@@ -178,21 +178,21 @@ + void + inflush(void) + { +- int val; +- +-#ifdef HAVE_RDCHK +- while (rdchk(0)) +- read(0, &val, 1); +-#else +-#if USE_FIONREAD +- int l1; +- ioctl(0, FIONREAD, &l1); +- while (l1-- > 0L) +- read(0, &val, (size_t) 1); +-#else +- while (read(2, &val, (size_t) 1) > 0) ; +-#endif +-#endif ++// int val; ++// ++//#ifdef HAVE_RDCHK ++// while (rdchk(0)) ++// read(0, &val, 1); ++//#else ++//#if USE_FIONREAD ++// int l1; ++// ioctl(0, FIONREAD, &l1); ++// while (l1-- > 0L) ++// read(0, &val, (size_t) 1); ++//#else ++// while (read(2, &val, (size_t) 1) > 0) ; ++//#endif ++//#endif + } + + void diff --git a/recipes/tools/bzip2/recipe.toml b/recipes/tools/bzip2/recipe.toml new file mode 100644 index 000000000..b7fdd3835 --- /dev/null +++ b/recipes/tools/bzip2/recipe.toml @@ -0,0 +1,35 @@ +[source] +tar = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" +blake3 = "97af3f520629c65fe41292f77e6ca798fe594d7987bfb2aebe7c6fcdc7ab5ed2" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT + +# This installs the static library regardless of config options +# The static lib is preferred according to the README because it's faster +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" \ + AR="${AR}" \ + CC="${CC}" \ + RANLIB="${RANLIB}" \ + PREFIX="${COOKBOOK_STAGE}" \ + install + +# However, distros distribute libbz2 as well so we'll support it too +# Linking the lib fails if we don't rebuild the objects from earlier +"${COOKBOOK_MAKE}" clean + +# This DOES NOT build/clobber the binaries already built above +"${COOKBOOK_MAKE}" -f Makefile-libbz2_so \ + -j"${COOKBOOK_MAKE_JOBS}" \ + AR="${AR}" \ + CC="${CC}" \ + RANLIB="${RANLIB}" \ + PREFIX="${COOKBOOK_STAGE}" + +cp -av libbz2.so* "${COOKBOOK_STAGE}/lib" +ln -sr "${COOKBOOK_STAGE}/lib/libbz2.so.1.0" "${COOKBOOK_STAGE}/lib/libbz2.so.1" +ln -sr "${COOKBOOK_STAGE}/lib/libbz2.so.1.0" "${COOKBOOK_STAGE}/lib/libbz2.so" +""" diff --git a/recipes/tools/cleye/recipe.toml b/recipes/tools/cleye/recipe.toml new file mode 100644 index 000000000..a2da3ae23 --- /dev/null +++ b/recipes/tools/cleye/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/cleye.git" + +[build] +template = "cargo" diff --git a/recipes/tools/cosmic-edit/manifest b/recipes/tools/cosmic-edit/manifest new file mode 100644 index 000000000..d0688c7ce --- /dev/null +++ b/recipes/tools/cosmic-edit/manifest @@ -0,0 +1,17 @@ +name=COSMIC Text Editor +binary=/bin/cosmic-edit +icon=/ui/icons/apps/accessories-text-editor.png +accept=*.asm +accept=*.conf +accept=*.html +accept=*.ion +accept=*.list +accept=*.lua +accept=*.md +accept=*.rc +accept=*.rs +accept=*.sh +accept=*.toml +accept=*.txt +author=Jeremy Soller +description=COSMIC Text Editor diff --git a/recipes/tools/cosmic-edit/recipe.toml b/recipes/tools/cosmic-edit/recipe.toml new file mode 100644 index 000000000..bd7c4482f --- /dev/null +++ b/recipes/tools/cosmic-edit/recipe.toml @@ -0,0 +1,19 @@ +[source] +git = "https://github.com/pop-os/cosmic-edit.git" +branch = "master" + +[build] +template = "custom" +script = """ +cookbook_cargo --no-default-features +mkdir -pv "${COOKBOOK_STAGE}/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/30_cosmic-edit" +#TODO: install with just? +APPID="com.system76.CosmicEdit" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.desktop" "${COOKBOOK_STAGE}/usr/share/applications/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/metainfo/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.metainfo.xml" "${COOKBOOK_STAGE}/usr/share/metainfo/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/" +cp -rv "${COOKBOOK_SOURCE}/res/icons/hicolor/" "${COOKBOOK_STAGE}/usr/share/icons/" +""" diff --git a/recipes/tools/cosmic-files/manifest b/recipes/tools/cosmic-files/manifest new file mode 100644 index 000000000..df778a48e --- /dev/null +++ b/recipes/tools/cosmic-files/manifest @@ -0,0 +1,5 @@ +name=COSMIC File Manager +binary=/bin/cosmic-files +icon=/ui/icons/apps/system-file-manager.png +author=Jeremy Soller +description=COSMIC File Manager diff --git a/recipes/tools/cosmic-files/recipe.toml b/recipes/tools/cosmic-files/recipe.toml new file mode 100644 index 000000000..f62a4eac3 --- /dev/null +++ b/recipes/tools/cosmic-files/recipe.toml @@ -0,0 +1,36 @@ +[source] +git = "https://github.com/pop-os/cosmic-files.git" +branch = "master" + +[build] +template = "custom" +dependencies = [ + "gettext", + "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}/Cargo.toml" \ + --release \ + --bin cosmic-files \ + --no-default-features \ + --features desktop \ + -- \ + -L "${COOKBOOK_SYSROOT}/lib" \ + -C link-arg="-liconv" +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" +#TODO: install with just? +APPID="com.system76.CosmicFiles" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.desktop" "${COOKBOOK_STAGE}/usr/share/applications/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/metainfo/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.metainfo.xml" "${COOKBOOK_STAGE}/usr/share/metainfo/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/" +cp -rv "${COOKBOOK_SOURCE}/res/icons/hicolor/" "${COOKBOOK_STAGE}/usr/share/icons/" +""" \ No newline at end of file diff --git a/recipes/tools/cosmic-reader/manifest b/recipes/tools/cosmic-reader/manifest new file mode 100644 index 000000000..99f5ab65c --- /dev/null +++ b/recipes/tools/cosmic-reader/manifest @@ -0,0 +1,6 @@ +name=COSMIC Reader +binary=/bin/cosmic-reader +icon=/ui/icons/apps/accessories-text-editor.png +accept=*.pdf +author=Jeremy Soller +description=COSMIC Reader diff --git a/recipes/tools/cosmic-reader/recipe.toml b/recipes/tools/cosmic-reader/recipe.toml new file mode 100644 index 000000000..01619a800 --- /dev/null +++ b/recipes/tools/cosmic-reader/recipe.toml @@ -0,0 +1,37 @@ +[source] +git = "https://github.com/pop-os/cosmic-reader.git" +branch = "master" + +[build] +template = "custom" +dependencies = [ + "expat", + "fontconfig", + "freetype2", + "libpng", + "zlib", +] +script = """ +DYNAMIC_INIT +export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=${COOKBOOK_HOST_SYSROOT}/${GNU_TARGET} -I${COOKBOOK_HOST_SYSROOT}/${GNU_TARGET}/include" +"${COOKBOOK_CARGO}" rustc \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --release \ + --bin cosmic-reader \ + --no-default-features \ + --features mupdf \ + -- \ + -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" +#TODO: install with just? +APPID="com.system76.CosmicReader" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.desktop" "${COOKBOOK_STAGE}/usr/share/applications/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/thumbnailers/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.thumbnailer" "${COOKBOOK_STAGE}/usr/share/thumbnailers/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/" +cp -rv "${COOKBOOK_SOURCE}/res/icons/hicolor/" "${COOKBOOK_STAGE}/usr/share/icons/" +""" diff --git a/recipes/tools/cosmic-settings/recipe.toml b/recipes/tools/cosmic-settings/recipe.toml new file mode 100644 index 000000000..f2a3f372d --- /dev/null +++ b/recipes/tools/cosmic-settings/recipe.toml @@ -0,0 +1,35 @@ +[source] +git = "https://github.com/pop-os/cosmic-settings.git" +branch = "master" + +[build] +template = "custom" +dependencies = [ + "gettext", + "libiconv", +] +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" +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" +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 new file mode 100644 index 000000000..1eb1406f1 --- /dev/null +++ b/recipes/tools/cosmic-store/recipe.toml @@ -0,0 +1,25 @@ +[source] +git = "https://github.com/pop-os/cosmic-store.git" +branch = "master" + +[build] +template = "custom" +dependencies = [ + "gettext", + "libxkbcommon", + "openssl1", +] +script = """ +DYNAMIC_INIT +export GETTEXT_DIR="${COOKBOOK_SYSROOT}" +export GETTEXT_STATIC=1 +cookbook_cargo --no-default-features --features desktop,pkgar +#TODO: install with just? +APPID="com.system76.CosmicStore" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.desktop" "${COOKBOOK_STAGE}/usr/share/applications/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/metainfo/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.metainfo.xml" "${COOKBOOK_STAGE}/usr/share/metainfo/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/" +cp -rv "${COOKBOOK_SOURCE}/res/icons/hicolor/" "${COOKBOOK_STAGE}/usr/share/icons/" +""" diff --git a/recipes/tools/cosmic-term/manifest b/recipes/tools/cosmic-term/manifest new file mode 100644 index 000000000..2b6f00d14 --- /dev/null +++ b/recipes/tools/cosmic-term/manifest @@ -0,0 +1,5 @@ +name=COSMIC Terminal +binary=/bin/cosmic-term +icon=/ui/icons/apps/utilities-terminal.png +author=Jeremy Soller +description=COSMIC Terminal diff --git a/recipes/tools/cosmic-term/recipe.toml b/recipes/tools/cosmic-term/recipe.toml new file mode 100644 index 000000000..f1232c534 --- /dev/null +++ b/recipes/tools/cosmic-term/recipe.toml @@ -0,0 +1,20 @@ +[source] +git = "https://github.com/pop-os/cosmic-term.git" +branch = "master" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo --no-default-features +mkdir -pv "${COOKBOOK_STAGE}/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/10_cosmic-term" +#TODO: install with just? +APPID="com.system76.CosmicTerm" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.desktop" "${COOKBOOK_STAGE}/usr/share/applications/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/metainfo/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.metainfo.xml" "${COOKBOOK_STAGE}/usr/share/metainfo/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/" +cp -rv "${COOKBOOK_SOURCE}/res/icons/hicolor/" "${COOKBOOK_STAGE}/usr/share/icons/" +""" \ No newline at end of file diff --git a/recipes/tools/cosmic-text/recipe.toml b/recipes/tools/cosmic-text/recipe.toml new file mode 100644 index 000000000..353feb358 --- /dev/null +++ b/recipes/tools/cosmic-text/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://github.com/pop-os/cosmic-text.git" +branch = "main" + +[build] +template = "custom" +script = """ +cookbook_cargo_packages editor +""" diff --git a/recipes/tools/diffutils/diffutils.patch b/recipes/tools/diffutils/diffutils.patch new file mode 100644 index 000000000..2df8a37ed --- /dev/null +++ b/recipes/tools/diffutils/diffutils.patch @@ -0,0 +1,88 @@ +diff -ruw source/lib/cmpbuf.c source-new/lib/cmpbuf.c +--- source/lib/cmpbuf.c 2017-01-01 04:22:36.000000000 -0700 ++++ source-new/lib/cmpbuf.c 2018-12-29 07:31:43.920193561 -0700 +@@ -71,8 +71,8 @@ + ancient AIX hosts that set errno to EINTR after uncaught + SIGCONT. See + (1993-04-22). */ +- if (! SA_RESTART && errno == EINTR) +- continue; ++ //if (! SA_RESTART && errno == EINTR) ++ // continue; + + return SIZE_MAX; + } +diff -ruw source/lib/getdtablesize.c source-new/lib/getdtablesize.c +--- source/lib/getdtablesize.c 2017-05-18 10:23:32.000000000 -0600 ++++ source-new/lib/getdtablesize.c 2018-12-29 07:32:31.709586573 -0700 +@@ -109,6 +109,7 @@ + int + getdtablesize (void) + { ++#if !defined(__redox__) + struct rlimit lim; + + if (getrlimit (RLIMIT_NOFILE, &lim) == 0 +@@ -117,6 +118,7 @@ + && lim.rlim_cur != RLIM_SAVED_CUR + && lim.rlim_cur != RLIM_SAVED_MAX) + return lim.rlim_cur; ++#endif + + return INT_MAX; + } +diff -ruw source/lib/getprogname.c source-new/lib/getprogname.c +--- source/lib/getprogname.c 2017-01-31 11:36:50.000000000 -0700 ++++ source-new/lib/getprogname.c 2018-12-29 07:34:15.432575388 -0700 +@@ -51,6 +51,14 @@ + # include + #endif + ++#if defined(__redox__) ++# include ++# include ++# include ++# include ++# include ++#endif ++ + #include "dirname.h" + + #ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */ +@@ -177,6 +185,17 @@ + } + } + return NULL; ++# elif defined(__redox__) ++ char filename[PATH_MAX]; ++ int fd = open ("sys:exe", O_RDONLY); ++ if (fd > 0) { ++ int len = read(fd, filename, PATH_MAX-1); ++ if (len > 0) { ++ filename[len] = '\0'; ++ return strdup(filename); ++ } ++ } ++ return NULL; + # else + # error "getprogname module not ported to this OS" + # endif +diff -ruw source/lib/sigprocmask.c source-new/lib/sigprocmask.c +--- source/lib/sigprocmask.c 2017-05-18 10:23:32.000000000 -0600 ++++ source-new/lib/sigprocmask.c 2018-12-29 07:45:02.610557142 -0700 +@@ -126,6 +126,7 @@ + return 0; + } + ++#if !defined(__redox__) + int + sigemptyset (sigset_t *set) + { +@@ -180,6 +181,7 @@ + *set = ((2U << (NSIG - 1)) - 1) & ~ SIGABRT_COMPAT_MASK; + return 0; + } ++#endif + + /* Set of currently blocked signals. */ + static volatile sigset_t blocked_set /* = 0 */; diff --git a/recipes/tools/diffutils/recipe.toml b/recipes/tools/diffutils/recipe.toml new file mode 100644 index 000000000..a742e0259 --- /dev/null +++ b/recipes/tools/diffutils/recipe.toml @@ -0,0 +1,21 @@ +[source] +tar = "https://ftp.gnu.org/gnu/diffutils/diffutils-3.6.tar.xz" +blake3 = "086a95093c15edcdb826e75ff4de6c2213de6fbd2eb13538d07bdc3286dfb4a4" +patches = ["diffutils.patch"] +script = """ +autoreconf +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + gt_cv_locale_fr=false + gt_cv_locale_fr_utf8=false + gt_cv_locale_ja=false + gt_cv_locale_tr_utf8=false + gt_cv_locale_zh_CN=false +) +cookbook_configure +""" diff --git a/recipes/tools/fd/recipe.toml b/recipes/tools/fd/recipe.toml new file mode 100644 index 000000000..ab67ead88 --- /dev/null +++ b/recipes/tools/fd/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://github.com/sharkdp/fd.git" +rev = "840a565d3aadbeb303b10a01c0aa3561924dfc46" +[build] +template = "cargo" diff --git a/recipes/tools/friar/recipe.toml b/recipes/tools/friar/recipe.toml new file mode 100644 index 000000000..8ef922902 --- /dev/null +++ b/recipes/tools/friar/recipe.toml @@ -0,0 +1,4 @@ +[source] +git = "https://github.com/jackpot51/friar.git" +[build] +template = "cargo" diff --git a/recipes/tools/gettext/recipe.toml b/recipes/tools/gettext/recipe.toml new file mode 100644 index 000000000..af6676d16 --- /dev/null +++ b/recipes/tools/gettext/recipe.toml @@ -0,0 +1,36 @@ +# GNU gettext utilities are a set of tools that provides a framework to help +# other GNU packages produce multi-lingual messages. +[source] +tar = "https://ftp.gnu.org/gnu/gettext/gettext-0.22.5.tar.gz" +blake3 = "cb3f3a34da7ce1a92746df81f5b78c5d53841973a24eb80ab76537263d380ec0" +patches = [ + "redox.patch" +] +script = """ +DYNAMIC_INIT +GNU_CONFIG_GET build-aux/config.sub +( cd gettext-runtime/libasprintf && autoreconf -fvi -I${COOKBOOK_HOST_SYSROOT}/share/aclocal ) +( cd gettext-runtime/intl && autoreconf -fvi -I${COOKBOOK_HOST_SYSROOT}/share/aclocal ) +( cd gettext-runtime && autoreconf -fvi -I${COOKBOOK_HOST_SYSROOT}/share/aclocal ) +( cd gettext-tools && autoreconf -fvi -I${COOKBOOK_HOST_SYSROOT}/share/aclocal ) +( cd libtextstyle && autoreconf -fvi -I${COOKBOOK_HOST_SYSROOT}/share/aclocal ) +autoreconf -fvi -I${COOKBOOK_HOST_SYSROOT}/share/aclocal +""" + +[build] +template = "custom" +dependencies = [ + "libiconv" +] +script = """ +DYNAMIC_STATIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + ac_cv_have_decl_program_invocation_name=no + gt_cv_locale_fr=false + gt_cv_locale_fr_utf8=false + gt_cv_locale_ja=false + gt_cv_locale_tr_utf8=false + gt_cv_locale_zh_CN=false +) +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/tools/gettext/redox.patch b/recipes/tools/gettext/redox.patch new file mode 100644 index 000000000..8b6f307d0 --- /dev/null +++ b/recipes/tools/gettext/redox.patch @@ -0,0 +1,46 @@ +diff -ruwN source/gettext-tools/gnulib-lib/getdtablesize.c source-new/gettext-tools/gnulib-lib/getdtablesize.c +--- source/gettext-tools/gnulib-lib/getdtablesize.c 2016-06-11 06:59:58.000000000 -0600 ++++ source-new/gettext-tools/gnulib-lib/getdtablesize.c 2019-01-05 08:45:36.015291070 -0700 +@@ -84,6 +84,14 @@ + return dtablesize; + } + ++#elif defined(__redox__) ++ ++int ++getdtablesize (void) ++{ ++ return INT_MAX; ++} ++ + #else + + # include +diff -ruwN source/gettext-tools/gnulib-lib/spawni.c source-new/gettext-tools/gnulib-lib/spawni.c +--- source/gettext-tools/gnulib-lib/spawni.c 2016-06-11 07:00:02.000000000 -0600 ++++ source-new/gettext-tools/gnulib-lib/spawni.c 2019-01-05 08:55:44.661641522 -0700 +@@ -51,10 +51,10 @@ + # include + #else + # if !HAVE_SETEUID +-# define seteuid(id) setresuid (-1, id, -1) ++# define seteuid(id) setreuid (-1, id) + # endif + # if !HAVE_SETEGID +-# define setegid(id) setresgid (-1, id, -1) ++# define setegid(id) setregid (-1, id) + # endif + # define local_seteuid(id) seteuid (id) + # define local_setegid(id) setegid (id) +diff -ruwN source/gettext-tools/Makefile.am source-new/gettext-tools/Makefile.am +--- source/gettext-tools/Makefile.am 2023-09-19 03:08:31.000000000 +0700 ++++ source-new/gettext-tools/Makefile.am 2025-10-05 12:39:33.287595871 +0700 +@@ -19,7 +19,7 @@ + AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies + ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4 + +-SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests examples doc ++SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 + + EXTRA_DIST = misc/DISCLAIM + MOSTLYCLEANFILES = core *.stackdump diff --git a/recipes/tools/gnu-binutils/01_build_fix.patch b/recipes/tools/gnu-binutils/01_build_fix.patch new file mode 100644 index 000000000..9bf0ddacd --- /dev/null +++ b/recipes/tools/gnu-binutils/01_build_fix.patch @@ -0,0 +1,24 @@ +diff '--color=auto' -ur source/gprofng/libcollector/configure.ac source-new/gprofng/libcollector/configure.ac +--- source/gprofng/libcollector/configure.ac 2024-08-17 09:00:00.000000000 +1000 ++++ source-new/gprofng/libcollector/configure.ac 2024-12-04 15:59:58.407412951 +1100 +@@ -18,7 +18,7 @@ + + m4_include([../../bfd/version.m4]) + AC_INIT([gprofng], [BFD_VERSION]) +-AC_CONFIG_MACRO_DIRS([../../config ../..]) ++#AC_CONFIG_MACRO_DIRS([../../config ../..]) + AC_CONFIG_AUX_DIR(../..) + AC_CANONICAL_TARGET + AM_INIT_AUTOMAKE +diff '--color=auto' -ur source/libiberty/configure.ac source-new/libiberty/configure.ac +--- source/libiberty/configure.ac 2024-08-17 09:00:00.000000000 +1000 ++++ source-new/libiberty/configure.ac 2024-12-04 15:59:31.572203764 +1100 +@@ -37,7 +37,7 @@ + libiberty_topdir="${srcdir}/.." + fi + AC_SUBST(libiberty_topdir) +-AC_CONFIG_AUX_DIR($libiberty_topdir) ++AC_CONFIG_AUX_DIR([.]) + + dnl Very limited version of automake's enable-maintainer-mode + diff --git a/recipes/tools/gnu-binutils/recipe.toml b/recipes/tools/gnu-binutils/recipe.toml new file mode 100644 index 000000000..dfb90fd77 --- /dev/null +++ b/recipes/tools/gnu-binutils/recipe.toml @@ -0,0 +1,37 @@ +[source] +tar = "https://ftp.gnu.org/gnu/binutils/binutils-2.43.1.tar.xz" +patches = ["01_build_fix.patch"] +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/ +""" + +[build] +template = "custom" +dependencies = [ + "expat", + "libgmp", + "libmpfr", + "zlib", +] +script = """ +DYNAMIC_INIT + +COOKBOOK_CONFIGURE_FLAGS+=( + --target="${GNU_TARGET}" + --disable-werror + --disable-dependency-tracking + --disable-nls + --enable-colored-disassembly + --enable-gdb + --with-system-zlib + --with-multilib + --with-interwork + --with-pic + --with-expat +) + +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/tools/gnu-grep/grep.patch b/recipes/tools/gnu-grep/grep.patch new file mode 100644 index 000000000..8b3d8b98e --- /dev/null +++ b/recipes/tools/gnu-grep/grep.patch @@ -0,0 +1,68 @@ +Only in source: grep.patch +diff -ru source/lib/getdtablesize.c source-new/lib/getdtablesize.c +--- source/lib/getdtablesize.c 2017-07-23 20:50:44.287742363 -0700 ++++ source-new/lib/getdtablesize.c 2017-07-23 20:51:06.271284748 -0700 +@@ -109,15 +109,6 @@ + int + getdtablesize (void) + { +- struct rlimit lim; +- +- if (getrlimit (RLIMIT_NOFILE, &lim) == 0 +- && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX +- && lim.rlim_cur != RLIM_INFINITY +- && lim.rlim_cur != RLIM_SAVED_CUR +- && lim.rlim_cur != RLIM_SAVED_MAX) +- return lim.rlim_cur; +- + return INT_MAX; + } + +diff -ru source/lib/getprogname.c source-new/lib/getprogname.c +--- source/lib/getprogname.c 2017-01-16 09:29:13.000000000 -0800 ++++ source-new/lib/getprogname.c 2017-07-23 20:49:21.133618122 -0700 +@@ -43,13 +43,11 @@ + # include + #endif + +-#ifdef __sgi + # include + # include + # include + # include +-# include +-#endif ++# include + + #include "dirname.h" + +@@ -178,7 +176,16 @@ + } + return NULL; + # else +-# error "getprogname module not ported to this OS" ++ char filename[PATH_MAX]; ++ int fd = open ("sys:exe", O_RDONLY); ++ if (fd > 0) { ++ int len = read(fd, filename, PATH_MAX-1); ++ if (len > 0) { ++ filename[len] = '\0'; ++ return strdup(filename); ++ } ++ } ++ return NULL; + # endif + } + +diff -ru source/src/grep.c source-new/src/grep.c +--- source/src/grep.c 2017-07-02 10:41:41.000000000 -0700 ++++ source-new/src/grep.c 2017-07-23 20:53:10.439131874 -0700 +@@ -2895,7 +2895,7 @@ + #ifdef _SC_PAGESIZE + long psize = sysconf (_SC_PAGESIZE); + #else +- long psize = getpagesize (); ++ long psize = 4096; + #endif + if (! (0 < psize && psize <= (SIZE_MAX - sizeof (uword)) / 2)) + abort (); diff --git a/recipes/tools/gnu-grep/recipe.toml b/recipes/tools/gnu-grep/recipe.toml new file mode 100644 index 000000000..b3ad6e403 --- /dev/null +++ b/recipes/tools/gnu-grep/recipe.toml @@ -0,0 +1,15 @@ +[source] +tar = "https://ftp.gnu.org/gnu/grep/grep-3.1.tar.xz" +blake3 = "46b6e24dfa1b0f309f4eae3c450d612396c8faa6510b53a55f629e4f4c70b4a3" +patches = ["grep.patch"] + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --prefix=/ +) +cookbook_configure +rm -rf "${COOKBOOK_STAGE}"/{lib,share} +""" diff --git a/recipes/tools/helix/recipe.toml b/recipes/tools/helix/recipe.toml new file mode 100644 index 000000000..a4a50cc3c --- /dev/null +++ b/recipes/tools/helix/recipe.toml @@ -0,0 +1,17 @@ +#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 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" + +[build] +template = "custom" +script = """ +export HELIX_DISABLE_AUTO_GRAMMAR_BUILD=1 +COOKBOOK_SOURCE+="/helix-term" +cookbook_cargo +mv "${COOKBOOK_STAGE}/usr/bin/hx" "${COOKBOOK_STAGE}/usr/bin/helix" +""" + diff --git a/recipes/tools/libc-bench/recipe.toml b/recipes/tools/libc-bench/recipe.toml new file mode 100644 index 000000000..89c8ebfad --- /dev/null +++ b/recipes/tools/libc-bench/recipe.toml @@ -0,0 +1,15 @@ +[source] +tar = "https://www.etalabs.net/releases/libc-bench-20110206.tar.gz" +blake3 = "64093102f29faa76da455f55a7b4be25b6d74d5c3d6fe88dbbc38aaae185182f" +patches = ["redox.patch"] + +[build] +template = "custom" +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +"${COOKBOOK_MAKE}" -j"$(${NPROC})" + +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +cp -v "libc-bench" "${COOKBOOK_STAGE}/usr/bin" +""" \ No newline at end of file diff --git a/recipes/tools/libc-bench/redox.patch b/recipes/tools/libc-bench/redox.patch new file mode 100644 index 000000000..475c7472e --- /dev/null +++ b/recipes/tools/libc-bench/redox.patch @@ -0,0 +1,42 @@ +diff -ruw source/Makefile source-new/Makefile +--- source/Makefile 2011-01-31 00:13:00.000000000 -0700 ++++ source-new/Makefile 2018-12-25 09:07:37.564520567 -0700 +@@ -4,7 +4,7 @@ + + CFLAGS = -Os + LDFLAGS = -static +-LIBS = -lpthread -lrt -lpthread ++LIBS = -lpthread + + + all: libc-bench +diff -ruw source/utf8.c source-new/utf8.c +--- source/utf8.c 2011-01-24 20:08:38.000000000 -0700 ++++ source-new/utf8.c 2018-12-25 08:52:35.893821291 -0700 +@@ -3,7 +3,7 @@ + #include + #include + #include +-#include ++//#include + + size_t b_utf8_bigbuf(void *dummy) + { +@@ -18,7 +18,7 @@ + || setlocale(LC_CTYPE, "en.UTF-8") + || setlocale(LC_CTYPE, "de_DE-8") + || setlocale(LC_CTYPE, "fr_FR-8"); +- if (strcmp(nl_langinfo(CODESET), "UTF-8")) return -1; ++ //if (strcmp(nl_langinfo(CODESET), "UTF-8")) return -1; + + buf = malloc(500000); + wbuf = malloc(500000*sizeof(wchar_t)); +@@ -56,7 +56,7 @@ + || setlocale(LC_CTYPE, "en.UTF-8") + || setlocale(LC_CTYPE, "de_DE-8") + || setlocale(LC_CTYPE, "fr_FR-8"); +- if (strcmp(nl_langinfo(CODESET), "UTF-8")) return -1; ++ //if (strcmp(nl_langinfo(CODESET), "UTF-8")) return -1; + + buf = malloc(500000); + l = 0; diff --git a/recipes/tools/lsd/recipe.toml b/recipes/tools/lsd/recipe.toml new file mode 100644 index 000000000..6fb14e4a8 --- /dev/null +++ b/recipes/tools/lsd/recipe.toml @@ -0,0 +1,4 @@ +[source] +git = "https://github.com/lsd-rs/lsd" +[build] +template = "cargo" diff --git a/recipes/tools/nano/recipe.toml b/recipes/tools/nano/recipe.toml new file mode 100644 index 000000000..875e01e72 --- /dev/null +++ b/recipes/tools/nano/recipe.toml @@ -0,0 +1,16 @@ +[source] +tar = "https://www.nano-editor.org/dist/v7/nano-7.2.tar.xz" +[build] +template = "custom" +dependencies = [ + "ncurses", +] +script = """ +DYNAMIC_INIT +cookbook_configure +""" + +[package] +dependencies = [ + "terminfo" +] diff --git a/recipes/tools/onefetch/recipe.toml b/recipes/tools/onefetch/recipe.toml new file mode 100644 index 000000000..43ca14e6a --- /dev/null +++ b/recipes/tools/onefetch/recipe.toml @@ -0,0 +1,4 @@ +[source] +git = "https://github.com/o2sh/onefetch" +[build] +template = "cargo" diff --git a/recipes/tools/patchelf/recipe.toml b/recipes/tools/patchelf/recipe.toml new file mode 100644 index 000000000..1399164ce --- /dev/null +++ b/recipes/tools/patchelf/recipe.toml @@ -0,0 +1,14 @@ +[source] +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 +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/tools/pathfinder/recipe.toml b/recipes/tools/pathfinder/recipe.toml new file mode 100644 index 000000000..f89e57d01 --- /dev/null +++ b/recipes/tools/pathfinder/recipe.toml @@ -0,0 +1,22 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/pathfinder.git" +branch = "redox" +upstream = "https://github.com/servo/pathfinder.git" + +[build] +template = "custom" +dependencies = [ + "mesa", + "zlib", +] +script = """ +cargo rustc \ + --target "$TARGET" \ + --release \ + --manifest-path "${COOKBOOK_SOURCE}/examples/canvas_glutin_minimal/Cargo.toml" \ + -- \ + -L "${COOK_SYSROOT}/lib" \ + -C link-args="-Wl,-Bstatic $("${TARGET}-pkg-config" --libs osmesa) -lz -lstdc++ -lc -lgcc" +mkdir -pv "${COOKBOOK_STAGE}/bin" +cp -v "target/${TARGET}/release/canvas_glutin_minimal" "${COOKBOOK_STAGE}/bin/pathfinder" +""" diff --git a/recipes/tools/perg/recipe.toml b/recipes/tools/perg/recipe.toml new file mode 100644 index 000000000..e073545da --- /dev/null +++ b/recipes/tools/perg/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://github.com/guerinoni/perg.git" +rev = "e206fab6bbd9c363c686fa7503d318304e48ddbe" +[build] +template = "cargo" diff --git a/recipes/tools/periodictable/recipe.toml b/recipes/tools/periodictable/recipe.toml new file mode 100644 index 000000000..109b3d42c --- /dev/null +++ b/recipes/tools/periodictable/recipe.toml @@ -0,0 +1,18 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/periodictable.git" + +[build] +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" +""" + +[package] +dependencies = [ + "orbital", +] \ No newline at end of file diff --git a/recipes/tools/powerline/recipe.toml b/recipes/tools/powerline/recipe.toml new file mode 100644 index 000000000..e8f2b616f --- /dev/null +++ b/recipes/tools/powerline/recipe.toml @@ -0,0 +1,17 @@ +[source] +git = "https://github.com/jD91mZM2/powerline-rs" + +[build] +template = "custom" +script = """ +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}" \ + --root "${COOKBOOK_STAGE}/usr" \ + --no-track \ + --no-default-features \ + --features chrono \ + ${install_flags} +""" diff --git a/recipes/tools/ripgrep/recipe.toml b/recipes/tools/ripgrep/recipe.toml new file mode 100644 index 000000000..b2e0cd6a3 --- /dev/null +++ b/recipes/tools/ripgrep/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://github.com/jackpot51/ripgrep.git" + +[build] +template = "cargo" diff --git a/recipes/tools/schismtracker/recipe.toml b/recipes/tools/schismtracker/recipe.toml new file mode 100644 index 000000000..7d08b5ad5 --- /dev/null +++ b/recipes/tools/schismtracker/recipe.toml @@ -0,0 +1,28 @@ +[source] +tar = "https://github.com/schismtracker/schismtracker/archive/20181223.tar.gz" +blake3 = "057e973f4f84cf898e2240d67c0e92f25086d8b9ffdc7e0c7ef81dd8dc81bc70" +patches = ["redox.patch"] +script = """ +autoreconf -i +""" + +[build] +template = "custom" +dependencies = [ + "sdl1", + "liborbital", + "libiconv", +] +script = """ +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" +export SDL_CONFIG="${COOKBOOK_SYSROOT}/bin/sdl-config" + +COOKBOOK_CONFIGURE_FLAGS=( + --build="$(gcc -dumpmachine)" + --host="${TARGET}" + --prefix="" + --with-sdl-prefix="${COOKBOOK_SYSROOT}" +) + +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/tools/schismtracker/redox.patch b/recipes/tools/schismtracker/redox.patch new file mode 100644 index 000000000..0850319ad --- /dev/null +++ b/recipes/tools/schismtracker/redox.patch @@ -0,0 +1,24 @@ +diff -rupNw source-original/Makefile.am source/Makefile.am +--- source-original/Makefile.am 2018-08-10 07:04:54.000000000 +0200 ++++ source/Makefile.am 2018-12-30 23:18:07.957244170 +0100 +@@ -223,7 +223,7 @@ files_macosx = \ + endif + + if USE_NETWORK +-cflags_network=-DUSE_NETWORK ++#cflags_network=-DUSE_NETWORK + endif + + +diff -rupNw source-original/schism/main.c source/schism/main.c +--- source-original/schism/main.c 2018-08-10 07:04:54.000000000 +0200 ++++ source/schism/main.c 2018-12-30 23:19:24.954046191 +0100 +@@ -1033,7 +1033,7 @@ int main(int argc, char **argv) + + video_fullscreen(0); + +- tzset(); // localtime_r wants this ++ //tzset(); // localtime_r wants this + srand(time(NULL)); + parse_options(argc, argv); /* shouldn't this be like, first? */ + diff --git a/recipes/tools/sed/recipe.toml b/recipes/tools/sed/recipe.toml new file mode 100644 index 000000000..c9f58cec0 --- /dev/null +++ b/recipes/tools/sed/recipe.toml @@ -0,0 +1,8 @@ +[source] +tar = "https://ftp.gnu.org/gnu/sed/sed-4.4.tar.xz" +patches = [ + "sed.patch" +] + +[build] +template = "configure" diff --git a/recipes/tools/sed/sed.patch b/recipes/tools/sed/sed.patch new file mode 100644 index 000000000..ea10d0c5b --- /dev/null +++ b/recipes/tools/sed/sed.patch @@ -0,0 +1,11 @@ +diff -ruN sed-4.4/sed/mbcs.c source/sed/mbcs.c +--- sed-4.4/sed/mbcs.c 2017-01-01 03:17:10.000000000 -0800 ++++ source/sed/mbcs.c 2025-06-06 04:36:30.129312397 -0700 +@@ -38,6 +38,7 @@ + int + is_mb_char (int ch, mbstate_t *cur_stat) + { ++ return 0; // FIXME: Implement mbrtowc in relibc, then remove this line + const char c = ch ; + const int mb_pending = !mbsinit (cur_stat); + const int result = mbrtowc (NULL, &c, 1, cur_stat); diff --git a/recipes/tools/shellharden/recipe.toml b/recipes/tools/shellharden/recipe.toml new file mode 100644 index 000000000..b56441192 --- /dev/null +++ b/recipes/tools/shellharden/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://github.com/anordal/shellharden.git" +rev = "bd24c99d5d1e76452b6d0749404837c1c95d923c" +[build] +template = "cargo" diff --git a/recipes/tools/shellstorm/recipe.toml b/recipes/tools/shellstorm/recipe.toml new file mode 100644 index 000000000..daa6d4d46 --- /dev/null +++ b/recipes/tools/shellstorm/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/shellstorm.git" + +[build] +template = "cargo" diff --git a/recipes/tools/smith/recipe.toml b/recipes/tools/smith/recipe.toml new file mode 100644 index 000000000..fabc0dee4 --- /dev/null +++ b/recipes/tools/smith/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/Smith.git" + +[build] +template = "cargo" diff --git a/recipes/tools/sodium/recipe.toml b/recipes/tools/sodium/recipe.toml new file mode 100644 index 000000000..66fe407fb --- /dev/null +++ b/recipes/tools/sodium/recipe.toml @@ -0,0 +1,19 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/sodium.git" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +"${COOKBOOK_CARGO}" install \ + --path "${COOKBOOK_SOURCE}" \ + --root "${COOKBOOK_STAGE}/usr" \ + --locked \ + --no-track \ + --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" +""" diff --git a/recipes/tools/tokei/recipe.toml b/recipes/tools/tokei/recipe.toml new file mode 100644 index 000000000..752ec64b2 --- /dev/null +++ b/recipes/tools/tokei/recipe.toml @@ -0,0 +1,4 @@ +[source] +git = "https://github.com/XAMPPRocky/tokei.git" +[build] +template = "cargo" diff --git a/recipes/tools/twin-commander/recipe.toml b/recipes/tools/twin-commander/recipe.toml new file mode 100644 index 000000000..bc3caef61 --- /dev/null +++ b/recipes/tools/twin-commander/recipe.toml @@ -0,0 +1,5 @@ +[source] +git = "https://github.com/kivimango/twin-commander.git" + +[build] +template = "cargo" diff --git a/recipes/tools/vim/recipe.toml b/recipes/tools/vim/recipe.toml new file mode 100644 index 000000000..850bce190 --- /dev/null +++ b/recipes/tools/vim/recipe.toml @@ -0,0 +1,26 @@ +[source] +tar = "https://github.com/vim/vim/archive/refs/tags/v9.1.0821.tar.gz" +blake3 = "d1f5802ceb047b09143f1764bf4016f084cf7e6c026c7047919264c9f262a5dd" +patches = ["vim.patch"] + +[build] +dependencies = ["ncurses"] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +export vim_cv_toupper_broken=no +export vim_cv_tgetent=zero +export vim_cv_terminfo=yes +export vim_cv_tty_group=world +export vim_cv_getcwd_broken=no +export vim_cv_stat_ignores_slash=yes +export vim_cv_memmove_handles_overlap=yes + +COOKBOOK_CONFIGURE="./configure" +COOKBOOK_CONFIGURE_FLAGS+=( + --with-tlib=ncurses +) +cookbook_configure +""" diff --git a/recipes/tools/vim/vim.patch b/recipes/tools/vim/vim.patch new file mode 100644 index 000000000..0537b2c95 --- /dev/null +++ b/recipes/tools/vim/vim.patch @@ -0,0 +1,66 @@ +diff -ruwN source/src/configure.ac source-new/src/configure.ac +--- source/src/configure.ac 2024-10-29 04:05:26.000000000 +0700 ++++ source-new/src/configure.ac 2025-08-06 03:15:52.796303989 +0700 +@@ -3759,7 +3759,7 @@ + dnl Check for functions in one big call, to reduce the size of configure. + dnl Can only be used for functions that do not require any include. + AC_CHECK_FUNCS(fchdir fchown fchmod fsync getcwd getpseudotty \ +- getpwent getpwnam getpwuid getrlimit gettimeofday localtime_r lstat \ ++ getpwent getpwnam getpwuid gettimeofday localtime_r lstat \ + memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \ + getpgid setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \ + sigprocmask sigvec strcasecmp strcoll strerror strftime stricmp strncasecmp \ +diff -ruwN source/src/feature.h source-new/src/feature.h +--- source/src/feature.h 2024-10-29 04:05:26.000000000 +0700 ++++ source-new/src/feature.h 2025-08-06 03:16:27.596296730 +0700 +@@ -272,6 +272,7 @@ + */ + #if defined(FEAT_NORMAL) \ + && defined(FEAT_EVAL) \ ++ && !defined (__redox__) /* disable setitimer */ \ + && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) \ + && (!defined(MACOS_X) || defined(HAVE_DISPATCH_DISPATCH_H))) \ + || defined(MSWIN)) +diff -ruwN source/src/libvterm/include/vterm.h source-new/src/libvterm/include/vterm.h +--- source/src/libvterm/include/vterm.h 2024-10-29 04:05:26.000000000 +0700 ++++ source-new/src/libvterm/include/vterm.h 2025-08-06 03:15:02.506316769 +0700 +@@ -17,9 +17,11 @@ + #define FALSE 0 + + // VIM: from stdint.h ++#if !defined (__redox__) + typedef unsigned char uint8_t; + typedef unsigned short uint16_t; + typedef unsigned int uint32_t; ++#endif + + // VIM: define max screen cols and rows + #define VTERM_MAX_COLS 1000 +diff -ruwN source/src/memfile.c source-new/src/memfile.c +--- source/src/memfile.c 2024-10-29 04:05:26.000000000 +0700 ++++ source-new/src/memfile.c 2025-08-06 03:15:36.896308173 +0700 +@@ -599,6 +599,8 @@ + // No sync() on Stratus VOS + # if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__) + fflush(NULL); ++# elif defined(__redox__) ++ fsync(mfp->mf_fd); + # else + sync(); + # endif +diff -ruwN source/src/auto/configure source-new/src/auto/configure +--- source/src/auto/configure 2024-10-29 04:05:26.000000000 +0700 ++++ source-new/src/auto/configure 2025-08-06 03:56:11.765660165 +0700 +@@ -13358,12 +13358,6 @@ + printf "%s\n" "#define HAVE_GETPWUID 1" >>confdefs.h + + fi +-ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit" +-if test "x$ac_cv_func_getrlimit" = xyes +-then : +- printf "%s\n" "#define HAVE_GETRLIMIT 1" >>confdefs.h +- +-fi + ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday" + if test "x$ac_cv_func_gettimeofday" = xyes + then : diff --git a/recipes/tools/xz/recipe.toml b/recipes/tools/xz/recipe.toml new file mode 100644 index 000000000..51ca7e47b --- /dev/null +++ b/recipes/tools/xz/recipe.toml @@ -0,0 +1,21 @@ +[source] +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 +""" + +[build] +template = "custom" +script = """ +DYNAMIC_STATIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-lzmadec + --disable-lzmainfo + --disable-xz + --disable-xzdec + --enable-threads=no +) +cookbook_configure +""" diff --git a/recipes/tui/goaccess/recipe.toml b/recipes/tui/goaccess/recipe.toml new file mode 100644 index 000000000..7fcff9e39 --- /dev/null +++ b/recipes/tui/goaccess/recipe.toml @@ -0,0 +1,44 @@ + +[source] +tar = "https://tar.goaccess.io/goaccess-1.9.4.tar.gz" +blake3 = "a7a7641c98956e8941191956129141e071321851d004269c7d21bce536d9224a" + +#git = "https://github.com/allinurl/goaccess.git" +#branch = "master" + +patches = [ + "redox1.patch", + "redox2.patch", +] + +# This is only needed when compiling from git. The tar.gz already has the make files. +script = """ +autoreconf -fiv +automake --add-missing --copy --force-missing +""" + +[build] +dependencies = ["ncursesw"] +template = "custom" + +script = """ +# Compile bin2c to be executed on the host +gcc -O2 -o "$COOKBOOK_BUILD/bin2c" "$COOKBOOK_SOURCE/src/bin2c.c" +chmod +x "$COOKBOOK_BUILD/bin2c" + +# Compile goaccess +export COOKBOOK_NOSTRIP=1 +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --host=$ARCH-unknown-redox + --enable-utf8 + --disable-geoip + --prefix=/usr + --disable-dependency-tracking + --with-bin2c-path="$COOKBOOK_BUILD/src/bin2c" +) +cookbook_configure +""" + + + diff --git a/recipes/tui/goaccess/redox1.patch b/recipes/tui/goaccess/redox1.patch new file mode 100644 index 000000000..f44ddb0a9 --- /dev/null +++ b/recipes/tui/goaccess/redox1.patch @@ -0,0 +1,34 @@ +From 2444d71e7815c8b7f3bd4462b8418d9c7e8c5667 Mon Sep 17 00:00:00 2001 +From: Rafael Senties Martinelli +Date: Sun, 19 Oct 2025 19:42:46 +0200 +Subject: [PATCH 1/2] Ensure fixed-width integers and PIPE_BUF are defined for + Redox or minimal libc + +--- + src/websocket.h | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/websocket.h b/src/websocket.h +index 79d03dff..31847b10 100644 +--- a/src/websocket.h ++++ b/src/websocket.h +@@ -45,8 +45,15 @@ + #include + #endif + +-#if defined(__linux__) || defined(__CYGWIN__) ++#if defined(__linux__) || defined(__CYGWIN__) || defined(__redox__) + # include ++#if defined(__redox__) ++# include /* for uint*_t types */ ++# include /* for PIPE_BUF */ ++# ifndef PIPE_BUF ++# define PIPE_BUF 4096 ++# endif ++#endif + #if ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 9)) + #if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) + # include +-- +2.51.1.dirty + diff --git a/recipes/tui/goaccess/redox2.patch b/recipes/tui/goaccess/redox2.patch new file mode 100644 index 000000000..482b7fcdd --- /dev/null +++ b/recipes/tui/goaccess/redox2.patch @@ -0,0 +1,60 @@ +From 4a564a6b0f9d4ee7a804b9dbb391e7421187014b Mon Sep 17 00:00:00 2001 +From: Rafael Senties Martinelli +Date: Sun, 19 Oct 2025 20:08:10 +0200 +Subject: [PATCH 2/2] Add option to ignore building bin2c + +--- + Makefile.am | 9 +++++++++ + configure.ac | 16 ++++++++++++++++ + 2 files changed, 25 insertions(+) + +diff --git a/Makefile.am b/Makefile.am +index 7696c8f5..8d0fcdcd 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -51,6 +51,15 @@ CLEANFILES = \ + resources/js/charts.js.tmp \ + resources/js/app.js.tmp + ++# Prevent rebuilding bin2c if binary already exists ++bin2c$(EXEEXT): ++if USE_PREBUILT_BIN2C ++ @echo "Using prebuilt bin2c from $(BIN2C_PATH)" ++ cp $(BIN2C_PATH) bin2c$(EXEEXT) ++else ++ $(AM_V_CCLD)$(LINK) $(bin2c_OBJECTS) $(bin2c_LDADD) $(LIBS) ++endif ++ + # Tpls + src/tpls.h: bin2c$(EXEEXT) $(srcdir)/resources/tpls.html + if HAS_SEDTR +diff --git a/configure.ac b/configure.ac +index 790499ce..feaf72d2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -105,6 +105,22 @@ if test "$with_getline" = "yes"; then + AC_DEFINE([WITH_GETLINE], 1, [Build using GNU getline.]) + fi + ++# bin2c ++AC_ARG_WITH([bin2c-path], ++ [AS_HELP_STRING([--with-bin2c-path=PATH], [Use prebuilt bin2c binary at PATH])], ++ [BIN2C_PATH="$withval"], ++ [BIN2C_PATH=""]) ++ ++if test -n "$BIN2C_PATH"; then ++ USE_PREBUILT_BIN2C=true ++else ++ USE_PREBUILT_BIN2C=false ++fi ++ ++AM_CONDITIONAL([USE_PREBUILT_BIN2C], [test "$USE_PREBUILT_BIN2C" = true]) ++AC_SUBST([BIN2C_PATH]) ++ ++ + # UTF8 + AC_ARG_ENABLE([utf8],[AS_HELP_STRING([--enable-utf8],[Enable ncurses library that handles wide characters. Default is disabled])],[utf8="$enableval"],[utf8=no]) + +-- +2.51.1.dirty + diff --git a/recipes/tui/mdp/recipe.toml b/recipes/tui/mdp/recipe.toml new file mode 100644 index 000000000..ca3be43af --- /dev/null +++ b/recipes/tui/mdp/recipe.toml @@ -0,0 +1,19 @@ +[source] +git = "https://github.com/visit1985/mdp.git" + +[build] +template = "custom" +dependencies = [ + "ncursesw", + "terminfo" +] +script = """ +rsync -av --delete --exclude='.git' "${COOKBOOK_SOURCE}/" ./ + +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/ncursesw" + +"${COOKBOOK_MAKE}" -j"$(${NPROC})" + +# Install +"${REDOX_MAKE}" DESTDIR="${COOKBOOK_STAGE}" PREFIX="" install +""" \ No newline at end of file diff --git a/recipes/tui/ncdu/recipe.toml b/recipes/tui/ncdu/recipe.toml new file mode 100644 index 000000000..bd885f8db --- /dev/null +++ b/recipes/tui/ncdu/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://dev.yorhel.nl/download/ncdu-1.22.tar.gz" +blake3 = "b7838c03ded7207a328a26c840ec3d62d3be6bbf7269a70ea3430c6cbf065960" + +[package] +dependencies = ["terminfo"] + +[build] +template = "custom" +dependencies = ["ncurses"] +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/video/sdl-player/recipe.toml b/recipes/video/sdl-player/recipe.toml new file mode 100644 index 000000000..b870523b3 --- /dev/null +++ b/recipes/video/sdl-player/recipe.toml @@ -0,0 +1,18 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/sdl-player.git" + +[build] +template = "custom" +dependencies = [ + "ffmpeg6", + "liborbital", + "sdl1", + "zlib" +] +script = """ +rsync -av --delete --exclude='.git' "${COOKBOOK_SOURCE}/" ./ +"${COOKBOOK_MAKE}" -j"$(${NPROC})" + +mkdir -pv "${COOKBOOK_STAGE}/bin" +cp -v "player" "${COOKBOOK_STAGE}/bin/sdl-player" +""" diff --git a/recipes/web/netsurf/01_redox.patch b/recipes/web/netsurf/01_redox.patch new file mode 100644 index 000000000..9330b42e7 --- /dev/null +++ b/recipes/web/netsurf/01_redox.patch @@ -0,0 +1,140 @@ +diff -ruwN source/Makefile source-new/Makefile +--- source/Makefile 2023-12-28 07:57:05.071795200 +0700 ++++ source-new/Makefile 2025-07-20 11:58:36.652747547 +0700 +@@ -110,7 +110,7 @@ + + # prefixed install macro for each host sub target + define do_build_prefix_install +- $(MAKE) install --directory=$1 HOST=$(BUILD) PREFIX=$(TMP_PREFIX) Q=$(Q) DESTDIR= ++ $(MAKE) install --directory=$1 HOST=$(BUILD) PREFIX=$(TMP_PREFIX) Q=$(Q) DESTDIR= CC=cc LDFLAGS= + + endef + +diff -ruwN source/buildsystem/makefiles/Makefile.tools source-new/buildsystem/makefiles/Makefile.tools +--- source/buildsystem/makefiles/Makefile.tools 2023-12-28 07:57:21.479359900 +0700 ++++ source-new/buildsystem/makefiles/Makefile.tools 2025-07-20 11:58:36.662747547 +0700 +@@ -135,7 +135,7 @@ + endif + + # Search the path for the compiler +- toolpath_ := $(shell /bin/which $(CC__)) ++ toolpath_ := $(shell which $(CC__)) + ifeq ($(toolpath_),) + toolpath_ := /opt/netsurf/$(HOST)/cross/bin/ + CC__ := $(toolpath_)$(HOST)-gcc +diff -ruwN source/buildsystem/makefiles/Makefile.top source-new/buildsystem/makefiles/Makefile.top +--- source/buildsystem/makefiles/Makefile.top 2023-12-28 07:57:21.479359900 +0700 ++++ source-new/buildsystem/makefiles/Makefile.top 2025-07-20 11:58:36.662747547 +0700 +@@ -462,7 +462,7 @@ + + define build_c + ifeq ($$(findstring $$(BUILDDIR)/$2,$$(BUILDFILES)),) +- $$(BUILDDIR)/$2: $$(BUILDDIR)/stamp $1 ++ $$(BUILDDIR)/$2: $$(BUILDDIR)/stamp $1 | $$(PRE_TARGETS) + $$(VQ)$$(ECHO) $$(ECHOFLAGS) " COMPILE: $1" + $$(Q)$$(CC) -MMD -MP $$($3) -o $$@ -c $1 + +diff -ruwN source/libnsfb/Makefile source-new/libnsfb/Makefile +--- source/libnsfb/Makefile 2023-12-28 07:57:22.311338000 +0700 ++++ source-new/libnsfb/Makefile 2025-07-20 11:58:36.652747547 +0700 +@@ -43,10 +43,10 @@ + NSFB_XCB_PKG_NAMES := xcb xcb-icccm xcb-image xcb-keysyms xcb-atom + + # determine which surface handlers can be compiled based upon avalable library +-$(eval $(call pkg_config_package_available,NSFB_VNC_AVAILABLE,libvncserver)) ++#$(eval $(call pkg_config_package_available,NSFB_VNC_AVAILABLE,libvncserver)) + $(eval $(call pkg_config_package_available,NSFB_SDL_AVAILABLE,sdl)) +-$(eval $(call pkg_config_package_available,NSFB_XCB_AVAILABLE,$(NSFB_XCB_PKG_NAMES))) +-$(eval $(call pkg_config_package_available,NSFB_WLD_AVAILABLE,wayland-client)) ++#$(eval $(call pkg_config_package_available,NSFB_XCB_AVAILABLE,$(NSFB_XCB_PKG_NAMES))) ++#$(eval $(call pkg_config_package_available,NSFB_WLD_AVAILABLE,wayland-client)) + + # Flags and setup for each support library + ifeq ($(NSFB_SDL_AVAILABLE),yes) +diff -ruwN source/libnsfb/src/plot.h source-new/libnsfb/src/plot.h +--- source/libnsfb/src/plot.h 2023-12-28 07:57:22.315338000 +0700 ++++ source-new/libnsfb/src/plot.h 2025-07-20 11:58:36.652747547 +0700 +@@ -46,7 +46,7 @@ + #error "Endian determination failed" + #endif + #else +- #include ++ #include + #if defined(__BYTE_ORDER__) + #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + #define NSFB_BE_BYTE_ORDER +diff -ruwN source/netsurf/Makefile.config source-new/netsurf/Makefile.config +--- source/netsurf/Makefile.config 1970-01-01 07:00:00.000000000 +0700 ++++ source-new/netsurf/Makefile.config 2025-07-20 11:58:36.652747547 +0700 +@@ -0,0 +1,28 @@ ++override NETSURF_HOMEPAGE := "https://www.redox-os.org/" ++override NETSURF_FB_FRONTEND := sdl ++ ++override NETSURF_USE_JPEG := YES ++override NETSURF_USE_BMP := YES ++override NETSURF_USE_OPENSSL := YES ++override NETSURF_USE_CURL := YES ++override NETSURF_USE_PNG := YES ++ ++override NETSURF_USE_LIBICONV_PLUG := NO ++override NETSURF_USE_NSSVG := NO ++override NETSURF_USE_RSVG := NO ++override NETSURF_USE_DUKTAPE := YES ++override NETSURF_USE_HARU_PDF := NO ++override NETSURF_USE_VIDEO := NO ++ ++override NETSURF_FB_FONTLIB := freetype ++override NETSURF_FB_FONTPATH := /ui/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 ++override NETSURF_FB_FONT_SANS_SERIF_ITALIC_BOLD := Sans/Fira/Bold.ttf ++override NETSURF_FB_FONT_SERIF := Sans/Fira/Regular.ttf ++override NETSURF_FB_FONT_SERIF_BOLD := Sans/Fira/Bold.ttf ++override NETSURF_FB_FONT_MONOSPACE := Mono/Fira/Regular.ttf ++override NETSURF_FB_FONT_MONOSPACE_BOLD := Mono/Fira/Bold.ttf ++override NETSURF_FB_FONT_CURSIVE := Sans/Fira/Regular.ttf ++override NETSURF_FB_FONT_FANTASY := Sans/Fira/Regular.ttf +diff -ruwN source/netsurf/frontends/framebuffer/Makefile source-new/netsurf/frontends/framebuffer/Makefile +--- source/netsurf/frontends/framebuffer/Makefile 2023-12-28 07:57:22.987320000 +0700 ++++ source-new/netsurf/frontends/framebuffer/Makefile 2025-07-20 11:58:36.662747547 +0700 +@@ -200,7 +200,7 @@ + install-framebuffer: + $(VQ)echo " INSTALL: $(DESTDIR)/$(PREFIX)" + $(Q)$(INSTALL) -d $(DESTDIR)/$(NETSURF_FRAMEBUFFER_BIN) +- $(Q)$(INSTALL) -T $(EXETARGET) $(DESTDIR)/$(NETSURF_FRAMEBUFFER_BIN)/netsurf-fb ++ $(Q)$(INSTALL) $(EXETARGET) $(DESTDIR)/$(NETSURF_FRAMEBUFFER_BIN)/netsurf-fb + $(Q)$(INSTALL) -d $(DESTDIR)/$(NETSURF_FRAMEBUFFER_RESOURCES) + $(Q)for F in $(NETSURF_FRAMEBUFFER_RESOURCE_LIST); do $(INSTALL) -m 644 $(FRONTEND_RESOURCES_DIR)/$$F $(DESTDIR)/$(NETSURF_FRAMEBUFFER_RESOURCES); done + $(Q)$(INSTALL) -m 644 -T $(MESSAGES_TARGET)/en/Messages $(DESTDIR)/$(NETSURF_FRAMEBUFFER_RESOURCES)/Messages +diff -ruwN source/netsurf/utils/config.h source-new/netsurf/utils/config.h +--- source/netsurf/utils/config.h 2023-12-28 07:57:23.095317100 +0700 ++++ source-new/netsurf/utils/config.h 2025-07-20 12:12:51.782724549 +0700 +@@ -63,7 +63,8 @@ + defined(__BEOS__) || \ + defined(__amigaos4__) || \ + defined(__AMIGA__) || \ +- defined(__MINT__)) ++ defined(__MINT__) || \ ++ defined(__redox__)) + #undef HAVE_STRPTIME + #undef HAVE_STRFTIME + #else +@@ -136,7 +137,7 @@ + #endif + + #define HAVE_MMAP +-#if (defined(_WIN32) || defined(__riscos__) || defined(__HAIKU__) || defined(__BEOS__) || defined(__amigaos4__) || defined(__AMIGA__) || defined(__MINT__)) ++#if (defined(_WIN32) || defined(__riscos__) || defined(__HAIKU__) || defined(__BEOS__) || defined(__amigaos4__) || defined(__AMIGA__) || defined(__MINT__) || defined(__redox__)) + #undef HAVE_MMAP + #endif + +@@ -149,7 +150,7 @@ + #define HAVE_DIRFD + #define HAVE_UNLINKAT + #define HAVE_FSTATAT +-#if (defined(_WIN32) || defined(__riscos__) || defined(__HAIKU__) || defined(__BEOS__) || defined(__amigaos4__) || defined(__AMIGA__) || defined(__MINT__)) ++#if (defined(_WIN32) || defined(__riscos__) || defined(__HAIKU__) || defined(__BEOS__) || defined(__amigaos4__) || defined(__AMIGA__) || defined(__MINT__) || defined(__redox__)) + #undef HAVE_DIRFD + #undef HAVE_UNLINKAT + #undef HAVE_FSTATAT diff --git a/recipes/web/netsurf/manifest b/recipes/web/netsurf/manifest new file mode 100644 index 000000000..b1edac6ab --- /dev/null +++ b/recipes/web/netsurf/manifest @@ -0,0 +1,6 @@ +name=Netsurf +binary=/usr/bin/netsurf-fb +icon=/ui/icons/apps/internet-web-browser.png +accept=*.html +author=The Netsurf Developers +description=Browser for Redox diff --git a/recipes/web/netsurf/recipe.toml b/recipes/web/netsurf/recipe.toml new file mode 100644 index 000000000..fabdc0321 --- /dev/null +++ b/recipes/web/netsurf/recipe.toml @@ -0,0 +1,45 @@ +[source] +tar = "https://download.netsurf-browser.org/netsurf/releases/source-full/netsurf-all-3.11.tar.gz" +blake3 = "cd406668a9ed5712efac1a8685125b83626690b73bbc6cb5de82ef00e3f65087" +patches = [ + "./01_redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "curl", + "expat", + "libjpeg", + "libpng", + "nghttp2", + "openssl1", + "sdl1", + "zlib", + "freetype2", + "liborbital", + "libiconv" +] +script = """ +DYNAMIC_INIT + +# Netsurf does not currently support out-of-tree builds :( +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +export TARGET="framebuffer" +export CFLAGS="${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" + +"$COOKBOOK_MAKE" PREFIX=/usr V=1 -j"$($NPROC)" +"$COOKBOOK_MAKE" DESTDIR="$COOKBOOK_STAGE" PREFIX=/usr install -j"$($NPROC)" +mkdir -pv "$COOKBOOK_STAGE/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "$COOKBOOK_STAGE/ui/apps/00_netsurf" +""" + +[package] +dependencies = [ + "ca-certificates", + "orbital", +] diff --git a/recipes/web/website/recipe.toml b/recipes/web/website/recipe.toml new file mode 100644 index 000000000..5dc7f9372 --- /dev/null +++ b/recipes/web/website/recipe.toml @@ -0,0 +1,24 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/website" +[build] +template = "custom" +script = """ +export PATH="$HOME/.local/bin:$HOME/.local/opt/node/bin:$PATH" +if ! command -v node &> /dev/null; then + echo "Installing Node via webi..." + curl -sS https://webi.sh/node | sh +fi +if ! command -v hugo &> /dev/null; then + echo "Installing Hugo via webi..." + curl -sS https://webi.sh/hugo | sh +fi +if ! command -v postcss &> /dev/null; then + echo "Installing PostCSS via npm..." + npm install -g postcss-cli +fi + +rsync -a "${COOKBOOK_SOURCE}/" ./ +./hugo.sh +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/website +cp -rv "${COOKBOOK_BUILD}"/build/public/* "${COOKBOOK_STAGE}"/usr/share/website +""" diff --git a/recipes/wip/a11y/orca/recipe.toml b/recipes/wip/a11y/orca/recipe.toml new file mode 100644 index 000000000..4048dc4af --- /dev/null +++ b/recipes/wip/a11y/orca/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# dependencies: https://gitlab.gnome.org/GNOME/orca/#dependencies +[source] +tar = "https://download.gnome.org/sources/orca/48/orca-48.6.tar.xz" +[build] +template = "custom" +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 new file mode 100644 index 000000000..ca9318b4d --- /dev/null +++ b/recipes/wip/ai/nnx/recipe.toml @@ -0,0 +1,11 @@ +#TODO fs2 crate error +[source] +git = "https://github.com/webonnx/wonnx" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages wonnx-cli +""" diff --git a/recipes/wip/ai/rustgpt/recipe.toml b/recipes/wip/ai/rustgpt/recipe.toml new file mode 100644 index 000000000..5f3f5588a --- /dev/null +++ b/recipes/wip/ai/rustgpt/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tekaratzas/RustGPT" +[build] +template = "cargo" diff --git a/recipes/wip/ai/tgs/recipe.toml b/recipes/wip/ai/tgs/recipe.toml new file mode 100644 index 000000000..4a05776a9 --- /dev/null +++ b/recipes/wip/ai/tgs/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libtorch work +[source] +git = "https://github.com/warpy-ai/tgs" +[build] +template = "cargo" +dependencies = [ + "libtorch", +] diff --git a/recipes/wip/analysis/binsider/recipe.toml b/recipes/wip/analysis/binsider/recipe.toml new file mode 100644 index 000000000..b7f70805f --- /dev/null +++ b/recipes/wip/analysis/binsider/recipe.toml @@ -0,0 +1,5 @@ +#TODO async-io and rustix crates error +[source] +git = "https://github.com/orhun/binsider" +[build] +template = "cargo" diff --git a/recipes/wip/analysis/cutter/recipe.toml b/recipes/wip/analysis/cutter/recipe.toml new file mode 100644 index 000000000..33fc1fcf9 --- /dev/null +++ b/recipes/wip/analysis/cutter/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# 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" +[build] +template = "cmake" +dependencies = [ + "libzip", + "zlib", + "qt5-base", + "qt5-svg", +] diff --git a/recipes/wip/analysis/email-sleuth/recipe.toml b/recipes/wip/analysis/email-sleuth/recipe.toml new file mode 100644 index 000000000..36bdabc62 --- /dev/null +++ b/recipes/wip/analysis/email-sleuth/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/tokenizer-decode/email-sleuth" +[build] +template = "cargo" diff --git a/recipes/wip/analysis/flowgger/recipe.toml b/recipes/wip/analysis/flowgger/recipe.toml new file mode 100644 index 000000000..efcaed09d --- /dev/null +++ b/recipes/wip/analysis/flowgger/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/awslabs/flowgger/wiki/Installation +[source] +git = "https://github.com/awslabs/flowgger" +[build] +template = "cargo" diff --git a/recipes/wip/analysis/netdata/recipe.toml b/recipes/wip/analysis/netdata/recipe.toml new file mode 100644 index 000000000..fc4f14ddb --- /dev/null +++ b/recipes/wip/analysis/netdata/recipe.toml @@ -0,0 +1,11 @@ +#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" +[build] +template = "cmake" +dependencies = [ + "zlib", + "libuv", + "libuuid", +] diff --git a/recipes/wip/analysis/rizin/recipe.toml b/recipes/wip/analysis/rizin/recipe.toml new file mode 100644 index 000000000..385be03bd --- /dev/null +++ b/recipes/wip/analysis/rizin/recipe.toml @@ -0,0 +1,6 @@ +#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" +[build] +template = "meson" diff --git a/recipes/wip/archives/7-zip/recipe.toml b/recipes/wip/archives/7-zip/recipe.toml new file mode 100644 index 000000000..4930f7e03 --- /dev/null +++ b/recipes/wip/archives/7-zip/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "make", see https://github.com/mcmilk/7-Zip/tree/master/DOC#readme +[source] +tar = "https://7-zip.org/a/7z2301-src.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/archives/lzip/recipe.toml b/recipes/wip/archives/lzip/recipe.toml new file mode 100644 index 000000000..070f1835c --- /dev/null +++ b/recipes/wip/archives/lzip/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://download.savannah.gnu.org/releases/lzip/lzip-1.24.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/archives/mlar/recipe.toml b/recipes/wip/archives/mlar/recipe.toml new file mode 100644 index 000000000..5fd0cc565 --- /dev/null +++ b/recipes/wip/archives/mlar/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ANSSI-FR/MLA" +[build] +template = "custom" +script = """ +cookbook_cargo_packages mlar +""" diff --git a/recipes/wip/archives/orz/recipe.toml b/recipes/wip/archives/orz/recipe.toml new file mode 100644 index 000000000..758d96655 --- /dev/null +++ b/recipes/wip/archives/orz/recipe.toml @@ -0,0 +1,5 @@ +#TODO don't run +[source] +git = "https://github.com/richox/orz" +[build] +template = "cargo" diff --git a/recipes/wip/archives/ouch/recipe.toml b/recipes/wip/archives/ouch/recipe.toml new file mode 100644 index 000000000..851597f28 --- /dev/null +++ b/recipes/wip/archives/ouch/recipe.toml @@ -0,0 +1,10 @@ +#TODO compilation error +[source] +git = "https://github.com/ouch-org/ouch" +[build] +template = "cargo" +dependencies = [ + "zlib", + "bzip2", + "xz", +] diff --git a/recipes/wip/archives/plzip/recipe.toml b/recipes/wip/archives/plzip/recipe.toml new file mode 100644 index 000000000..731425322 --- /dev/null +++ b/recipes/wip/archives/plzip/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing headers +[source] +tar = "https://download.savannah.gnu.org/releases/lzip/plzip/plzip-1.11.tar.gz" +[build] +template = "configure" +dependencies = [ + "lzlib", +] diff --git a/recipes/wip/archives/unzrip/recipe.toml b/recipes/wip/archives/unzrip/recipe.toml new file mode 100644 index 000000000..e31e1140d --- /dev/null +++ b/recipes/wip/archives/unzrip/recipe.toml @@ -0,0 +1,8 @@ +#TODO make zstd work (after cargo update) +[source] +git = "https://github.com/quininer/unzrip" +[build] +template = "cargo" +dependencies = [ + "zstd", +] diff --git a/recipes/wip/backup/borg/recipe.toml b/recipes/wip/backup/borg/recipe.toml new file mode 100644 index 000000000..6df0b093c --- /dev/null +++ b/recipes/wip/backup/borg/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing script for pip +# 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", + "libacl", + "libattr", + "xxhash", + "lz4", + "zstd", +] diff --git a/recipes/wip/backup/vorta/recipe.toml b/recipes/wip/backup/vorta/recipe.toml new file mode 100644 index 000000000..830541fed --- /dev/null +++ b/recipes/wip/backup/vorta/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for pip +# build instructions - https://vorta.borgbase.com/install/linux/#install-from-source +[source] +git = "https://github.com/borgbase/vorta" +rev = "f2b42742f9a56f15a46f2b287825122032fcdb90" +[build] +template = "custom" diff --git a/recipes/wip/benchmarks/cargo/cargo-benchcmp/recipe.toml b/recipes/wip/benchmarks/cargo/cargo-benchcmp/recipe.toml new file mode 100644 index 000000000..a9fbc1c1f --- /dev/null +++ b/recipes/wip/benchmarks/cargo/cargo-benchcmp/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/BurntSushi/cargo-benchcmp" +[build] +template = "cargo" diff --git a/recipes/wip/benchmarks/cargo/cargo-criterion/recipe.toml b/recipes/wip/benchmarks/cargo/cargo-criterion/recipe.toml new file mode 100644 index 000000000..6ba7cb273 --- /dev/null +++ b/recipes/wip/benchmarks/cargo/cargo-criterion/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/bheisler/cargo-criterion" +[build] +template = "cargo" diff --git a/recipes/wip/benchmarks/dacapo-benchmarks/recipe.toml b/recipes/wip/benchmarks/dacapo-benchmarks/recipe.toml new file mode 100644 index 000000000..0fc1315ba --- /dev/null +++ b/recipes/wip/benchmarks/dacapo-benchmarks/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing data type to download the Java bytecode +# download link - https://download.dacapobench.org/chopin/dacapo-23.11-chopin.zip +[source] + +[build] +template = "custom" diff --git a/recipes/wip/benchmarks/hpc/hpcc/recipe.toml b/recipes/wip/benchmarks/hpc/hpcc/recipe.toml new file mode 100644 index 000000000..6cc31de23 --- /dev/null +++ b/recipes/wip/benchmarks/hpc/hpcc/recipe.toml @@ -0,0 +1,5 @@ +#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 new file mode 100644 index 000000000..fe63ce86e --- /dev/null +++ b/recipes/wip/benchmarks/hpc/hpcg/recipe.toml @@ -0,0 +1,5 @@ +#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 new file mode 100644 index 000000000..b641cd416 --- /dev/null +++ b/recipes/wip/benchmarks/hpc/minibude/recipe.toml @@ -0,0 +1,5 @@ +#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/hyperfine/recipe.toml b/recipes/wip/benchmarks/hyperfine/recipe.toml new file mode 100644 index 000000000..a51d22b58 --- /dev/null +++ b/recipes/wip/benchmarks/hyperfine/recipe.toml @@ -0,0 +1,5 @@ +#TODO libc::RUSAGE_CHILDREN +[source] +git = "https://github.com/sharkdp/hyperfine" +[build] +template = "cargo" diff --git a/recipes/wip/benchmarks/io/blogbench/recipe.toml b/recipes/wip/benchmarks/io/blogbench/recipe.toml new file mode 100644 index 000000000..b6c2aff2f --- /dev/null +++ b/recipes/wip/benchmarks/io/blogbench/recipe.toml @@ -0,0 +1,5 @@ +#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/io/fio/recipe.toml b/recipes/wip/benchmarks/io/fio/recipe.toml new file mode 100644 index 000000000..80c3bd768 --- /dev/null +++ b/recipes/wip/benchmarks/io/fio/recipe.toml @@ -0,0 +1,6 @@ +#TODO configuration problem +[source] +git = "https://github.com/axboe/fio" +rev = "624e263f6acb1563471a83601ce19dfb77ac5694" +[build] +template = "configure" diff --git a/recipes/wip/benchmarks/io/simple-disk-benchmark/recipe.toml b/recipes/wip/benchmarks/io/simple-disk-benchmark/recipe.toml new file mode 100644 index 000000000..64101a1eb --- /dev/null +++ b/recipes/wip/benchmarks/io/simple-disk-benchmark/recipe.toml @@ -0,0 +1,5 @@ +#TODO source code error +[source] +git = "https://github.com/schwa/simple-disk-benchmark-rs" +[build] +template = "cargo" diff --git a/recipes/wip/benchmarks/rodinia/recipe.toml b/recipes/wip/benchmarks/rodinia/recipe.toml new file mode 100644 index 000000000..ae1b0752d --- /dev/null +++ b/recipes/wip/benchmarks/rodinia/recipe.toml @@ -0,0 +1,5 @@ +#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/rpc-perf/recipe.toml b/recipes/wip/benchmarks/rpc-perf/recipe.toml new file mode 100644 index 000000000..be0a4045b --- /dev/null +++ b/recipes/wip/benchmarks/rpc-perf/recipe.toml @@ -0,0 +1,8 @@ +#TODO make zstd work +[source] +git = "https://github.com/iopsystems/rpc-perf" +[build] +template = "cargo" +dependencies = [ + "zstd", +] diff --git a/recipes/wip/benchmarks/stress-ng/recipe.toml b/recipes/wip/benchmarks/stress-ng/recipe.toml new file mode 100644 index 000000000..18e673540 --- /dev/null +++ b/recipes/wip/benchmarks/stress-ng/recipe.toml @@ -0,0 +1,20 @@ +#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 new file mode 100644 index 000000000..19495073d --- /dev/null +++ b/recipes/wip/benchmarks/suite/phoronix-test-suite/recipe.toml @@ -0,0 +1,5 @@ +#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 new file mode 100644 index 000000000..2384fba7b --- /dev/null +++ b/recipes/wip/codecs/dav1d/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://code.videolan.org/videolan/dav1d#compile +[source] +git = "https://code.videolan.org/videolan/dav1d" +rev = "48035599cdd4e4415732e408c407e0c1cd1c7444" +[build] +template = "meson" diff --git a/recipes/wip/codecs/faad2/recipe.toml b/recipes/wip/codecs/faad2/recipe.toml new file mode 100644 index 000000000..1fcb64152 --- /dev/null +++ b/recipes/wip/codecs/faad2/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +git = "https://github.com/knik0/faad2" +rev = "2.11.2" +[build] +template = "cmake" diff --git a/recipes/wip/codecs/kvazaar/recipe.toml b/recipes/wip/codecs/kvazaar/recipe.toml new file mode 100644 index 000000000..d8739d013 --- /dev/null +++ b/recipes/wip/codecs/kvazaar/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://github.com/ultravideo/kvazaar/releases/download/v2.2.0/kvazaar-2.2.0.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/codecs/rav1e/recipe.toml b/recipes/wip/codecs/rav1e/recipe.toml new file mode 100644 index 000000000..3ee7f5376 --- /dev/null +++ b/recipes/wip/codecs/rav1e/recipe.toml @@ -0,0 +1,5 @@ +#TODO "malloc(): invalid size (unsorted)" error +[source] +git = "https://github.com/xiph/rav1e" +[build] +template = "cargo" diff --git a/recipes/wip/codecs/svt-av1/recipe.toml b/recipes/wip/codecs/svt-av1/recipe.toml new file mode 100644 index 000000000..8d0875f99 --- /dev/null +++ b/recipes/wip/codecs/svt-av1/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for building, see 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" +[build] +template = "custom" diff --git a/recipes/wip/codecs/svt-hevc/recipe.toml b/recipes/wip/codecs/svt-hevc/recipe.toml new file mode 100644 index 000000000..78c54ef7c --- /dev/null +++ b/recipes/wip/codecs/svt-hevc/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/OpenVisualCloud/SVT-HEVC#linux-operating-systems-64-bit +[source] +git = "https://github.com/OpenVisualCloud/SVT-HEVC" +rev = "b65eba07e6dee37407631cc441561960838b0333" +[build] +template = "cmake" diff --git a/recipes/wip/codecs/svt-vp9/recipe.toml b/recipes/wip/codecs/svt-vp9/recipe.toml new file mode 100644 index 000000000..47574a5fd --- /dev/null +++ b/recipes/wip/codecs/svt-vp9/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/OpenVisualCloud/SVT-VP9#linux-operating-systems-64-bit +[source] +git = "https://github.com/OpenVisualCloud/SVT-VP9" +[build] +template = "cmake" diff --git a/recipes/wip/codecs/uvg266/recipe.toml b/recipes/wip/codecs/uvg266/recipe.toml new file mode 100644 index 000000000..4005e380b --- /dev/null +++ b/recipes/wip/codecs/uvg266/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ultravideo/uvg266#compiling-uvg266 +[source] +git = "https://github.com/ultravideo/uvg266" +rev = "9add13b7053a6ba3f6b22bf82728e01fc437a447" +[build] +template = "cmake" diff --git a/recipes/wip/codecs/vvenc/recipe.toml b/recipes/wip/codecs/vvenc/recipe.toml new file mode 100644 index 000000000..0a2eb4172 --- /dev/null +++ b/recipes/wip/codecs/vvenc/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/fraunhoferhhi/vvenc/wiki/Build#build-using-plain-cmake +[source] +git = "https://github.com/fraunhoferhhi/vvenc" +rev = "eea6fce28c8e822a0ece7a343a10fd5d6dd0e7bb" +[build] +template = "cmake" diff --git a/recipes/wip/codecs/wavpack/recipe.toml b/recipes/wip/codecs/wavpack/recipe.toml new file mode 100644 index 000000000..3f4a28a84 --- /dev/null +++ b/recipes/wip/codecs/wavpack/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error - missing header +[source] +tar = "https://github.com/dbry/WavPack/releases/download/5.7.0/wavpack-5.7.0.tar.xz" +[build] +template = "configure" +dependencies = [ + "libiconv", +] diff --git a/recipes/wip/codecs/x264/recipe.toml b/recipes/wip/codecs/x264/recipe.toml new file mode 100644 index 000000000..2bf5be8b0 --- /dev/null +++ b/recipes/wip/codecs/x264/recipe.toml @@ -0,0 +1,5 @@ +#TODO the redox target is not supported on the configure script +[source] +git = "https://code.videolan.org/videolan/x264" +[build] +template = "configure" diff --git a/recipes/wip/codecs/x265/recipe.toml b/recipes/wip/codecs/x265/recipe.toml new file mode 100644 index 000000000..ce61981df --- /dev/null +++ b/recipes/wip/codecs/x265/recipe.toml @@ -0,0 +1,6 @@ +#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" +[build] +template = "cmake" diff --git a/recipes/wip/containers/crun-vm/recipe.toml b/recipes/wip/containers/crun-vm/recipe.toml new file mode 100644 index 000000000..c28e391ed --- /dev/null +++ b/recipes/wip/containers/crun-vm/recipe.toml @@ -0,0 +1,6 @@ +#TODO camino crate error +# dependencies - https://github.com/containers/crun-vm/blob/main/docs/1-installing.md#from-source +[source] +git = "https://github.com/containers/crun-vm" +[build] +template = "cargo" diff --git a/recipes/wip/containers/crun/recipe.toml b/recipes/wip/containers/crun/recipe.toml new file mode 100644 index 000000000..9619bb48f --- /dev/null +++ b/recipes/wip/containers/crun/recipe.toml @@ -0,0 +1,5 @@ +#TODO disable systemd and SELinux +[source] +tar = "https://github.com/containers/crun/releases/download/1.17/crun-1.17.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/containers/docker/recipe.toml b/recipes/wip/containers/docker/recipe.toml new file mode 100644 index 000000000..ceb2a3863 --- /dev/null +++ b/recipes/wip/containers/docker/recipe.toml @@ -0,0 +1,6 @@ +#TODO implement a Cookbook template for the Go programming language +[source] +git = "https://github.com/docker/cli" +branch = "27.x" +[build] +template = "go" diff --git a/recipes/wip/containers/podman/recipe.toml b/recipes/wip/containers/podman/recipe.toml new file mode 100644 index 000000000..3bcc67201 --- /dev/null +++ b/recipes/wip/containers/podman/recipe.toml @@ -0,0 +1,6 @@ +#TODO Implement a Cookbook template for the Go programming language +[source] +git = "https://github.com/containers/podman" +branch = "v5.2" +[build] +template = "go" diff --git a/recipes/wip/containers/skopeo/recipe.toml b/recipes/wip/containers/skopeo/recipe.toml new file mode 100644 index 000000000..0b72488cd --- /dev/null +++ b/recipes/wip/containers/skopeo/recipe.toml @@ -0,0 +1,6 @@ +#TODO Implement the Cookbook template for the Go programming language +[source] +git = "https://github.com/containers/skopeo" +branch = "release-1.16" +[build] +template = "go" diff --git a/recipes/wip/containers/youki/recipe.toml b/recipes/wip/containers/youki/recipe.toml new file mode 100644 index 000000000..75df049dc --- /dev/null +++ b/recipes/wip/containers/youki/recipe.toml @@ -0,0 +1,8 @@ +#TODO require cgroups +[source] +git = "https://github.com/containers/youki" +[build] +template = "custom" +script = """ +cookbook_cargo_packages youki +""" diff --git a/recipes/wip/crypto/data2sound/recipe.toml b/recipes/wip/crypto/data2sound/recipe.toml new file mode 100644 index 000000000..19a8ba259 --- /dev/null +++ b/recipes/wip/crypto/data2sound/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/TheAwiteb/data2sound" +[build] +template = "cargo" diff --git a/recipes/wip/crypto/morse2sound/recipe.toml b/recipes/wip/crypto/morse2sound/recipe.toml new file mode 100644 index 000000000..d48af2d82 --- /dev/null +++ b/recipes/wip/crypto/morse2sound/recipe.toml @@ -0,0 +1,5 @@ +#TODO slice-deque crate error (after cargo update) +[source] +git = "https://github.com/irevenko/morse2sound" +[build] +template = "cargo" diff --git a/recipes/wip/crypto/qrrs/recipe.toml b/recipes/wip/crypto/qrrs/recipe.toml new file mode 100644 index 000000000..900a77bcf --- /dev/null +++ b/recipes/wip/crypto/qrrs/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/Lenivaya/qrrs" +[build] +template = "cargo" diff --git a/recipes/wip/crypto/qrscan/recipe.toml b/recipes/wip/crypto/qrscan/recipe.toml new file mode 100644 index 000000000..75f60e703 --- /dev/null +++ b/recipes/wip/crypto/qrscan/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash crate error +[source] +git = "https://github.com/sayanarijit/qrscan" +[build] +template = "cargo" diff --git a/recipes/wip/crypto/qrtool/recipe.toml b/recipes/wip/crypto/qrtool/recipe.toml new file mode 100644 index 000000000..5302949cb --- /dev/null +++ b/recipes/wip/crypto/qrtool/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/sorairolake/qrtool" +[build] +template = "cargo" diff --git a/recipes/wip/crypto/steg86/recipe.toml b/recipes/wip/crypto/steg86/recipe.toml new file mode 100644 index 000000000..607cbeb4c --- /dev/null +++ b/recipes/wip/crypto/steg86/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/woodruffw/steg86" +[build] +template = "cargo" diff --git a/recipes/wip/crypto/stupidfs/recipe.toml b/recipes/wip/crypto/stupidfs/recipe.toml new file mode 100644 index 000000000..b598425ac --- /dev/null +++ b/recipes/wip/crypto/stupidfs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/GoldenStack/stupidfs" +[build] +template = "cargo" diff --git a/recipes/wip/data-integrity/b3sum/recipe.toml b/recipes/wip/data-integrity/b3sum/recipe.toml new file mode 100644 index 000000000..3ec0df134 --- /dev/null +++ b/recipes/wip/data-integrity/b3sum/recipe.toml @@ -0,0 +1,10 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/BLAKE3-team/BLAKE3" +shallow_clone = true +[build] +template = "custom" +script = """ +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/b3sum" +cookbook_cargo +""" diff --git a/recipes/wip/data-integrity/fim/recipe.toml b/recipes/wip/data-integrity/fim/recipe.toml new file mode 100644 index 000000000..954aadc8b --- /dev/null +++ b/recipes/wip/data-integrity/fim/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Achiefs/fim" +[build] +template = "cargo" diff --git a/recipes/wip/data-integrity/hashgood/recipe.toml b/recipes/wip/data-integrity/hashgood/recipe.toml new file mode 100644 index 000000000..98552982c --- /dev/null +++ b/recipes/wip/data-integrity/hashgood/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/thombles/hashgood" +[build] +template = "cargo" diff --git a/recipes/wip/data-integrity/rapidhash/recipe.toml b/recipes/wip/data-integrity/rapidhash/recipe.toml new file mode 100644 index 000000000..c1c746e76 --- /dev/null +++ b/recipes/wip/data-integrity/rapidhash/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/hoxxep/rapidhash" +[build] +template = "custom" +script = """ +cookbook_cargo_packages rapidhash +""" diff --git a/recipes/wip/data-recovery/foremost/recipe.toml b/recipes/wip/data-recovery/foremost/recipe.toml new file mode 100644 index 000000000..faa9dbdbd --- /dev/null +++ b/recipes/wip/data-recovery/foremost/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for gnu make, see the README inside the tarball +[source] +tar = "http://foremost.sourceforge.net/pkg/foremost-1.5.7.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/data-recovery/testdisk/recipe.toml b/recipes/wip/data-recovery/testdisk/recipe.toml new file mode 100644 index 000000000..3c92e0a86 --- /dev/null +++ b/recipes/wip/data-recovery/testdisk/recipe.toml @@ -0,0 +1,14 @@ +#TODO compilation error +# build instructions - https://www.cgsecurity.org/wiki/TestDisk_Compilation +# add optional libraries to expand the features - https://www.cgsecurity.org/wiki/TestDisk_Compilation#Libraries +[source] +tar = "https://www.cgsecurity.org/testdisk-7.2.tar.bz2" +[build] +template = "custom" +dependencies = [ + "ncurses", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_configure +""" diff --git a/recipes/wip/data/poppler-data/recipe.toml b/recipes/wip/data/poppler-data/recipe.toml new file mode 100644 index 000000000..3262c088a --- /dev/null +++ b/recipes/wip/data/poppler-data/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for gnu make +[source] +tar = "https://poppler.freedesktop.org/poppler-data-0.4.12.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/db/clickhouse/recipe.toml b/recipes/wip/db/clickhouse/recipe.toml new file mode 100644 index 000000000..67eff9c3b --- /dev/null +++ b/recipes/wip/db/clickhouse/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://clickhouse.com/docs/en/development/build#how-to-build-clickhouse-on-any-linux +[source] +git = "https://github.com/ClickHouse/ClickHouse" +rev = "v25.10.2.65-stable" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "curl", + "openssl3", + "xz", +] diff --git a/recipes/wip/db/cockroachdb/recipe.toml b/recipes/wip/db/cockroachdb/recipe.toml new file mode 100644 index 000000000..6d548c7d3 --- /dev/null +++ b/recipes/wip/db/cockroachdb/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for Bazel, see https://cockroachlabs.atlassian.net/wiki/spaces/CRDB/pages/181338446/Getting+and+building+CockroachDB+from+source +[source] +git = "https://github.com/cockroachdb/cockroach" +rev = "0ad77cfcc5a81b96dd2f27ed608536388b680537" +[build] +template = "custom" diff --git a/recipes/wip/db/gobang/recipe.toml b/recipes/wip/db/gobang/recipe.toml new file mode 100644 index 000000000..275810a14 --- /dev/null +++ b/recipes/wip/db/gobang/recipe.toml @@ -0,0 +1,5 @@ +#TODO update mio to 0.8 (after cargo update and patch on ring) +[source] +git = "https://github.com/TaKO8Ki/gobang" +[build] +template = "cargo" diff --git a/recipes/wip/db/influxdb/recipe.toml b/recipes/wip/db/influxdb/recipe.toml new file mode 100644 index 000000000..faad6d63e --- /dev/null +++ b/recipes/wip/db/influxdb/recipe.toml @@ -0,0 +1,6 @@ +#TODO nonsense error "Cargo.toml doesn't exist" +#TODO configure the CLI and service +[source] +git = "https://github.com/influxdata/influxdb" +[build] +template = "cargo" diff --git a/recipes/wip/db/iotdb/recipe.toml b/recipes/wip/db/iotdb/recipe.toml new file mode 100644 index 000000000..7a8a21482 --- /dev/null +++ b/recipes/wip/db/iotdb/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for Maven, see https://github.com/apache/iotdb#build-iotdb-from-source +[source] +git = "https://github.com/apache/iotdb" +rev = "5d0bfb0c25082b61cb8830aa04ec34a13edccd31" +[build] +template = "custom" diff --git a/recipes/wip/db/jdbrowser/recipe.toml b/recipes/wip/db/jdbrowser/recipe.toml new file mode 100644 index 000000000..987a8589e --- /dev/null +++ b/recipes/wip/db/jdbrowser/recipe.toml @@ -0,0 +1,5 @@ +#TODO wayland-backend crate error +[source] +git = "https://github.com/Jkeyuk/JDbrowser" +[build] +template = "cargo" diff --git a/recipes/wip/db/limbo/recipe.toml b/recipes/wip/db/limbo/recipe.toml new file mode 100644 index 000000000..ac1a00d86 --- /dev/null +++ b/recipes/wip/db/limbo/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error on the sqlite3 parser +[source] +git = "https://github.com/tursodatabase/limbo" +[build] +template = "custom" +script = """ +cookbook_cargo_packages limbo_cli +""" diff --git a/recipes/wip/db/mariadb-lts/recipe.toml b/recipes/wip/db/mariadb-lts/recipe.toml new file mode 100644 index 000000000..0666ff401 --- /dev/null +++ b/recipes/wip/db/mariadb-lts/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +# build instructions: +# https://mariadb.com/kb/en/generic-build-instructions/ +# https://mariadb.com/kb/en/cross-compiling-mariadb/ +[source] +tar = "https://archive.mariadb.org/mariadb-10.11.6/source/mariadb-10.11.6.tar.gz" +[build] +template = "cmake" +dependencies = [ + "ncurses", + "zlib", + "libevent", + "openssl1", + "curl", + "libxml2", + "boost", + "libaio", +] diff --git a/recipes/wip/db/mariadb/recipe.toml b/recipes/wip/db/mariadb/recipe.toml new file mode 100644 index 000000000..1ebf6c886 --- /dev/null +++ b/recipes/wip/db/mariadb/recipe.toml @@ -0,0 +1,19 @@ +#TODO not compiled or tested +# build instructions: +# https://mariadb.com/kb/en/generic-build-instructions/ +# https://mariadb.com/kb/en/cross-compiling-mariadb/ +[source] +tar = "https://dlm.mariadb.com/4509471/MariaDB/mariadb-12.1.2/source/mariadb-12.1.2.tar.gz" +[build] +template = "cmake" +dependencies = [ + "ncurses", + "zlib", + "libevent", + "openssl3", + "curl", + "libxml2", + "boost", + "libaio", +] + diff --git a/recipes/wip/db/memcached/recipe.toml b/recipes/wip/db/memcached/recipe.toml new file mode 100644 index 000000000..5e6ebc378 --- /dev/null +++ b/recipes/wip/db/memcached/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://docs.memcached.org/serverguide/#from-source +[source] +tar = "https://www.memcached.org/files/memcached-1.6.22.tar.gz" +[build] +template = "configure" +dependencies = [ + "libevent", +] diff --git a/recipes/wip/db/mongodb6/recipe.toml b/recipes/wip/db/mongodb6/recipe.toml new file mode 100644 index 000000000..aed11b08e --- /dev/null +++ b/recipes/wip/db/mongodb6/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for SCons, see https://github.com/mongodb/mongo/blob/master/docs/building.md +[source] +git = "https://github.com/mongodb/mongo" +branch = "v6.0" +[build] +template = "custom" +dependencies = [ + "curl", + "xz", +] diff --git a/recipes/wip/db/mongodb7/recipe.toml b/recipes/wip/db/mongodb7/recipe.toml new file mode 100644 index 000000000..69d167b51 --- /dev/null +++ b/recipes/wip/db/mongodb7/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for SCons, see https://github.com/mongodb/mongo/blob/master/docs/building.md +[source] +git = "https://github.com/mongodb/mongo" +branch = "v7.2" +[build] +template = "custom" +dependencies = [ + "curl", + "xz", +] diff --git a/recipes/wip/db/mysql-server/recipe.toml b/recipes/wip/db/mysql-server/recipe.toml new file mode 100644 index 000000000..c94fb4448 --- /dev/null +++ b/recipes/wip/db/mysql-server/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://dev.mysql.com/doc/refman/8.2/en/installing-source-distribution.html +[source] +tar = "https://dev.mysql.com/downloads/file/?id=523432" +[build] +template = "cmake" +dependencies = [ + "boost", + "ncurses", + "openssl3", +] diff --git a/recipes/wip/db/mysql-shell/recipe.toml b/recipes/wip/db/mysql-shell/recipe.toml new file mode 100644 index 000000000..596ca67dd --- /dev/null +++ b/recipes/wip/db/mysql-shell/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script +[source] +tar = "https://dev.mysql.com/downloads/file/?id=524161" +[build] +template = "custom" diff --git a/recipes/wip/db/postgresql16/recipe.toml b/recipes/wip/db/postgresql16/recipe.toml new file mode 100644 index 000000000..e247d0b6b --- /dev/null +++ b/recipes/wip/db/postgresql16/recipe.toml @@ -0,0 +1,17 @@ +#TODO waiting on sigjmp_buf and related POSIX functions in relibc +[source] +tar = "https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.bz2" +script = """ +cp "${COOKBOOK_SOURCE}/src/backend/utils/errcodes.h" "${COOKBOOK_SOURCE}/src/include/utils/errcodes.h" +""" +[build] +template = "configure" +configureflags = [ + "--without-icu", + "--without-readline", + "--with-template=redox", +] +dependencies = [ + "readline", + "zlib", +] diff --git a/recipes/wip/db/rainfrog/recipe.toml b/recipes/wip/db/rainfrog/recipe.toml new file mode 100644 index 000000000..b28e5e1a2 --- /dev/null +++ b/recipes/wip/db/rainfrog/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/achristmascarl/rainfrog" +[build] +template = "cargo" +[package] +dependencies = [ + "nerd-fonts", +] diff --git a/recipes/wip/db/rocksdb/recipe.toml b/recipes/wip/db/rocksdb/recipe.toml new file mode 100644 index 000000000..94e5507e7 --- /dev/null +++ b/recipes/wip/db/rocksdb/recipe.toml @@ -0,0 +1,15 @@ +#TODO missing script for gnu make: https://github.com/facebook/rocksdb/blob/main/INSTALL.md +[source] +git = "https://github.com/facebook/rocksdb" +rev = "v10.7.5" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "zlib", + "lz4", + "bzip2", + "zstd", + "snappy", + "gflags", +] diff --git a/recipes/wip/db/skytable/recipe.toml b/recipes/wip/db/skytable/recipe.toml new file mode 100644 index 000000000..0bf74a609 --- /dev/null +++ b/recipes/wip/db/skytable/recipe.toml @@ -0,0 +1,11 @@ +#TODO libsky crate error +[source] +git = "https://github.com/skytable/skytable" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages skysh skyd +""" diff --git a/recipes/wip/db/sqlite3/recipe.toml b/recipes/wip/db/sqlite3/recipe.toml new file mode 100644 index 000000000..5bc410b9c --- /dev/null +++ b/recipes/wip/db/sqlite3/recipe.toml @@ -0,0 +1,15 @@ +#TODO incomplete port +#TODO Complied, works for basic use cases. pthread mutexes compiled in, but not working. +#TODO Calls triggering mutexes yield the following errors: +#relibc getrlimit(7, 0x7ffffffffc38): not implemented +#relibc getgroups(65536, 0x14920): not implemented +#Runtime error near line 1: disk I/O error (10) +[source] +tar = "https://sqlite.org/2025/sqlite-autoconf-3490200.tar.gz" +blake3 = "96e071dc4f964311882334e927f017d8383915b1b140adcf308957dff213aa8c" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" +[build] +template = "configure" diff --git a/recipes/wip/db/sqllogictest/recipe.toml b/recipes/wip/db/sqllogictest/recipe.toml new file mode 100644 index 000000000..1e47a39c5 --- /dev/null +++ b/recipes/wip/db/sqllogictest/recipe.toml @@ -0,0 +1,14 @@ +#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 + + +[source] +git = "https://github.com/risinglightdb/sqllogictest-rs.git" +[build] +template = "custom" +script = """ +cookbook_cargo_packages sqllogictest-bin +""" diff --git a/recipes/wip/db/tidb-server/recipe.toml b/recipes/wip/db/tidb-server/recipe.toml new file mode 100644 index 000000000..088b3fe4e --- /dev/null +++ b/recipes/wip/db/tidb-server/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://pingcap.github.io/tidb-dev-guide/get-started/build-tidb-from-source.html#build +[source] +git = "https://github.com/pingcap/tidb" +rev = "8445821f105477d5e31de9d8451b7fbf35a02cd1" +[build] +template = "custom" diff --git a/recipes/wip/demos/albedo/recipe.toml b/recipes/wip/demos/albedo/recipe.toml new file mode 100644 index 000000000..2b11feef0 --- /dev/null +++ b/recipes/wip/demos/albedo/recipe.toml @@ -0,0 +1,8 @@ +#TODO nanorand crate error +[source] +git = "https://github.com/albedo-engine/albedo" +[build] +template = "custom" +script = """ +cookbook_cargo_examples gpu_picking +""" diff --git a/recipes/wip/demos/appcui/recipe.toml b/recipes/wip/demos/appcui/recipe.toml new file mode 100644 index 000000000..53a0a4243 --- /dev/null +++ b/recipes/wip/demos/appcui/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/gdt050579/AppCUI-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages examples +""" diff --git a/recipes/wip/demos/avian/recipe.toml b/recipes/wip/demos/avian/recipe.toml new file mode 100644 index 000000000..7343d2b6d --- /dev/null +++ b/recipes/wip/demos/avian/recipe.toml @@ -0,0 +1,8 @@ +#TODO requires rustc 1.82.0 +[source] +git = "https://github.com/Jondolf/avian" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..39e7f7163 --- /dev/null +++ b/recipes/wip/demos/avt/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/asciinema/avt" +[build] +template = "custom" +script = """ +cookbook_cargo_examples text +""" diff --git a/recipes/wip/demos/bevy/recipe.toml b/recipes/wip/demos/bevy/recipe.toml new file mode 100644 index 000000000..a314e0725 --- /dev/null +++ b/recipes/wip/demos/bevy/recipe.toml @@ -0,0 +1,8 @@ +#TODO async-io crate error +[source] +git = "https://github.com/bevyengine/bevy" +[build] +template = "custom" +script = """ +cookbook_cargo_examples hello_world +""" diff --git a/recipes/wip/demos/blade/recipe.toml b/recipes/wip/demos/blade/recipe.toml new file mode 100644 index 000000000..15c6c1f42 --- /dev/null +++ b/recipes/wip/demos/blade/recipe.toml @@ -0,0 +1,8 @@ +#TODO x11rb and rustix crates error +[source] +git = "https://github.com/kvark/blade" +[build] +template = "custom" +script = """ +cookbook_cargo_examples bunnymark particle ray-query scene +""" diff --git a/recipes/wip/demos/blitz/recipe.toml b/recipes/wip/demos/blitz/recipe.toml new file mode 100644 index 000000000..a11aeeb65 --- /dev/null +++ b/recipes/wip/demos/blitz/recipe.toml @@ -0,0 +1,11 @@ +#TODO fontique crate error +[source] +git = "https://github.com/DioxusLabs/blitz" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_examples url markdown +""" diff --git a/recipes/wip/demos/blockish/recipe.toml b/recipes/wip/demos/blockish/recipe.toml new file mode 100644 index 000000000..30fdd578a --- /dev/null +++ b/recipes/wip/demos/blockish/recipe.toml @@ -0,0 +1,8 @@ +#TODO glutin crate error +[source] +git = "https://github.com/yazgoo/blockish" +[build] +template = "custom" +script = """ +cookbook_cargo_examples euc gif tiny-skia +""" diff --git a/recipes/wip/demos/blockishfire/recipe.toml b/recipes/wip/demos/blockishfire/recipe.toml new file mode 100644 index 000000000..120cabefe --- /dev/null +++ b/recipes/wip/demos/blockishfire/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate (cargo update don't fix it) +[source] +git = "https://github.com/yazgoo/blockishfire" +[build] +template = "cargo" diff --git a/recipes/wip/demos/blue-engine/recipe.toml b/recipes/wip/demos/blue-engine/recipe.toml new file mode 100644 index 000000000..477d74702 --- /dev/null +++ b/recipes/wip/demos/blue-engine/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/AryanpurTech/BlueEngine" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..cf348e622 --- /dev/null +++ b/recipes/wip/demos/bones/recipe.toml @@ -0,0 +1,8 @@ +#TODO iroh-quinn-udp crate error +[source] +git = "https://github.com/fishfolk/bones" +[build] +template = "custom" +script = """ +cookbook_cargo_packages demo_hello_world +""" diff --git a/recipes/wip/demos/colored/recipe.toml b/recipes/wip/demos/colored/recipe.toml new file mode 100644 index 000000000..73cc848f3 --- /dev/null +++ b/recipes/wip/demos/colored/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/colored-rs/colored" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..23b165575 --- /dev/null +++ b/recipes/wip/demos/comfy/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/darthdeus/comfy" +[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 +""" diff --git a/recipes/wip/demos/console-rs/recipe.toml b/recipes/wip/demos/console-rs/recipe.toml new file mode 100644 index 000000000..874259927 --- /dev/null +++ b/recipes/wip/demos/console-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/console-rs/console" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..a2b8426e6 --- /dev/null +++ b/recipes/wip/demos/contrast-renderer/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Lichtso/contrast_renderer" +[build] +template = "custom" +script = """ +cookbook_cargo_examples showcase +""" diff --git a/recipes/wip/demos/cubecl/recipe.toml b/recipes/wip/demos/cubecl/recipe.toml new file mode 100644 index 000000000..94699865e --- /dev/null +++ b/recipes/wip/demos/cubecl/recipe.toml @@ -0,0 +1,18 @@ +#TODO cubecl-macros crate error +[source] +git = "https://github.com/tracel-ai/cubecl" +[build] +template = "custom" +script = """ +package=gelu +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${package}" \ + --release + --no-default-features + --wgpu + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${package}" \ + "${COOKBOOK_STAGE}/usr/bin/${package}" +""" diff --git a/recipes/wip/demos/dioxus-examples/recipe.toml b/recipes/wip/demos/dioxus-examples/recipe.toml new file mode 100644 index 000000000..ec46366b9 --- /dev/null +++ b/recipes/wip/demos/dioxus-examples/recipe.toml @@ -0,0 +1,10 @@ +#TODO wry crate error +[source] +git = "https://github.com/DioxusLabs/dioxus" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..ab79f6a30 --- /dev/null +++ b/recipes/wip/demos/doomfire/recipe.toml @@ -0,0 +1,8 @@ +#TODO discover how to build the "doomfire-minifb" example +[source] +git = "https://github.com/r-marques/doomfire" +[build] +template = "custom" +script = """ +cookbook_cargo_examples doomfire-minifb +""" diff --git a/recipes/wip/demos/egui/recipe.toml b/recipes/wip/demos/egui/recipe.toml new file mode 100644 index 000000000..d4a6089b0 --- /dev/null +++ b/recipes/wip/demos/egui/recipe.toml @@ -0,0 +1,8 @@ +#TODO glutin crate error +[source] +git = "https://github.com/emilk/egui" +[build] +template = "custom" +script = """ +cookbook_cargo_packages hello_world +""" diff --git a/recipes/wip/demos/euc/recipe.toml b/recipes/wip/demos/euc/recipe.toml new file mode 100644 index 000000000..da60f8a54 --- /dev/null +++ b/recipes/wip/demos/euc/recipe.toml @@ -0,0 +1,8 @@ +#TODO minifb crate error +[source] +git = "https://github.com/zesterer/euc" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..84b8e46c4 --- /dev/null +++ b/recipes/wip/demos/feoxdb/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mehrantsi/FeOxDB" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..4bf90364e --- /dev/null +++ b/recipes/wip/demos/ferris-says/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/rust-lang/ferris-says" +[build] +template = "custom" +script = """ +cookbook_cargo_packages fsays +""" diff --git a/recipes/wip/demos/firewheel/recipe.toml b/recipes/wip/demos/firewheel/recipe.toml new file mode 100644 index 000000000..e79a248ad --- /dev/null +++ b/recipes/wip/demos/firewheel/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/BillyDM/firewheel" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..f1bd17a6b --- /dev/null +++ b/recipes/wip/demos/firework-rs/recipe.toml @@ -0,0 +1,17 @@ +#TODO fix the script +[source] +git = "https://github.com/Wayoung7/firework-rs" +[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}" +cookbook_cargo_examples fountain heart vortex +""" diff --git a/recipes/wip/demos/fonterator/recipe.toml b/recipes/wip/demos/fonterator/recipe.toml new file mode 100644 index 000000000..ae463a62e --- /dev/null +++ b/recipes/wip/demos/fonterator/recipe.toml @@ -0,0 +1,21 @@ +#TODO write a script that can use multiple examples and the "monospace-font" flag +[source] +git = "https://github.com/ardaku/fonterator" +[build] +template = "custom" +script = """ +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" \ + --example "${example}" \ + --release \ + --features "monospace-font" + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/${build_type}/examples/${example}" \ + "${COOKBOOK_STAGE}/usr/bin/${recipe}_${example}" + done +""" diff --git a/recipes/wip/demos/fractal-rs/recipe.toml b/recipes/wip/demos/fractal-rs/recipe.toml new file mode 100644 index 000000000..f31f377d3 --- /dev/null +++ b/recipes/wip/demos/fractal-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO glutin crate error +[source] +git = "https://github.com/aetherknight/fractal-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages fractal-piston +""" diff --git a/recipes/wip/demos/freya/recipe.toml b/recipes/wip/demos/freya/recipe.toml new file mode 100644 index 000000000..b6dbaf889 --- /dev/null +++ b/recipes/wip/demos/freya/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/marc2332/freya" +[build] +template = "custom" +dependencies = [ + "openssl1", + "gtk3", +] +script = """ +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 \ +images_slideshow infinite_list input keyboard_navigation menu mouse_trace \ +opacity pointer popup position progress_bar radio render_canvas rotate scroll \ +selectable_text sequential_animation shader shader_editor shadow simple_editor \ +speedometer svg tab table text text_editors tic_tac_toe touch ui website window_size +""" diff --git a/recipes/wip/demos/fundsp/recipe.toml b/recipes/wip/demos/fundsp/recipe.toml new file mode 100644 index 000000000..3ddd0d97a --- /dev/null +++ b/recipes/wip/demos/fundsp/recipe.toml @@ -0,0 +1,11 @@ +#TODO can't find the fontconfig files +[source] +git = "https://github.com/SamiPerttu/fundsp" +[build] +template = "custom" +dependencies = [ + "fontconfig", +] +script = """ +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 new file mode 100644 index 000000000..cafac2540 --- /dev/null +++ b/recipes/wip/demos/funutd/recipe.toml @@ -0,0 +1,8 @@ +#TODO rfd crate error +[source] +git = "https://github.com/SamiPerttu/funutd" +[build] +template = "custom" +script = """ +cookbook_cargo_examples editor +""" diff --git a/recipes/wip/demos/fyrox/recipe.toml b/recipes/wip/demos/fyrox/recipe.toml new file mode 100644 index 000000000..ba3c1057b --- /dev/null +++ b/recipes/wip/demos/fyrox/recipe.toml @@ -0,0 +1,9 @@ +#TODO glutin crate error +[source] +git = "https://github.com/FyroxEngine/Fyrox-demo-projects" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..20fc1c827 --- /dev/null +++ b/recipes/wip/demos/genpdf-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://git.sr.ht/~ireas/genpdf-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_examples demo +""" diff --git a/recipes/wip/demos/gfx-shader-watch/recipe.toml b/recipes/wip/demos/gfx-shader-watch/recipe.toml new file mode 100644 index 000000000..22564a197 --- /dev/null +++ b/recipes/wip/demos/gfx-shader-watch/recipe.toml @@ -0,0 +1,8 @@ +#TODO glutin crate error +[source] +git = "https://github.com/alexheretic/gfx-shader-watch" +[build] +template = "custom" +script = """ +cookbook_cargo_examples watch-shaders +""" diff --git a/recipes/wip/demos/ggez/recipe.toml b/recipes/wip/demos/ggez/recipe.toml new file mode 100644 index 000000000..542ad8e5a --- /dev/null +++ b/recipes/wip/demos/ggez/recipe.toml @@ -0,0 +1,8 @@ +#TODO require rustc 1.81 +[source] +git = "https://github.com/ggez/ggez" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..624312f71 --- /dev/null +++ b/recipes/wip/demos/globe-rs/recipe.toml @@ -0,0 +1,9 @@ +#TODO update the mio crate version (after cargo update) +[source] +git = "https://github.com/adamsky/globe" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..d6cae2876 --- /dev/null +++ b/recipes/wip/demos/hotline/recipe.toml @@ -0,0 +1,8 @@ +#TODO hot-lib-reloader crate error +[source] +git = "https://github.com/polymonster/hotline" +[build] +template = "custom" +script = """ +cookbook_cargo_examples triangle +""" diff --git a/recipes/wip/demos/iced-7guis/recipe.toml b/recipes/wip/demos/iced-7guis/recipe.toml new file mode 100644 index 000000000..655cea56d --- /dev/null +++ b/recipes/wip/demos/iced-7guis/recipe.toml @@ -0,0 +1,5 @@ +#TODO require rustc 1.80.1 +[source] +git = "https://github.com/dcampbell24/iced_7guis" +[build] +template = "cargo" diff --git a/recipes/wip/demos/if-watch/recipe.toml b/recipes/wip/demos/if-watch/recipe.toml new file mode 100644 index 000000000..be84f4aa8 --- /dev/null +++ b/recipes/wip/demos/if-watch/recipe.toml @@ -0,0 +1,8 @@ +#TODO require the "smol" feature flag +[source] +git = "https://github.com/mxinden/if-watch" +[build] +template = "custom" +script = """ +cookbook_cargo_examples if_watch +""" diff --git a/recipes/wip/demos/imgui-examples/recipe.toml b/recipes/wip/demos/imgui-examples/recipe.toml new file mode 100644 index 000000000..560d8ce65 --- /dev/null +++ b/recipes/wip/demos/imgui-examples/recipe.toml @@ -0,0 +1,6 @@ +#TODO build sdl2 opengl examples, see: https://github.com/ocornut/imgui/pull/3027 +[source] +git = "https://github.com/Qix-/imgui" +branch = "cmake" +[build] +template = "cmake" diff --git a/recipes/wip/demos/iocraft/recipe.toml b/recipes/wip/demos/iocraft/recipe.toml new file mode 100644 index 000000000..18ad8f48f --- /dev/null +++ b/recipes/wip/demos/iocraft/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ccbrown/iocraft" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..0d5a8bc98 --- /dev/null +++ b/recipes/wip/demos/kira/recipe.toml @@ -0,0 +1,8 @@ +#TODO ahash crate error +[source] +git = "https://github.com/tesselode/kira-examples" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..8d9578590 --- /dev/null +++ b/recipes/wip/demos/kiss3d/recipe.toml @@ -0,0 +1,8 @@ +#TODO winit crate error (even after cargo update) +[source] +git = "https://github.com/sebcrozet/kiss3d" +[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 +""" diff --git a/recipes/wip/demos/lenia/recipe.toml b/recipes/wip/demos/lenia/recipe.toml new file mode 100644 index 000000000..fa5768ac2 --- /dev/null +++ b/recipes/wip/demos/lenia/recipe.toml @@ -0,0 +1,5 @@ +#TODO winit crate error (after cargo update) +[source] +git = "https://github.com/BirdbrainEngineer/lenia" +[build] +template = "cargo" diff --git a/recipes/wip/demos/lyon/recipe.toml b/recipes/wip/demos/lyon/recipe.toml new file mode 100644 index 000000000..78479f9e8 --- /dev/null +++ b/recipes/wip/demos/lyon/recipe.toml @@ -0,0 +1,10 @@ +#TODO compiled but not tested +#TODO fix the packaging +#TODO move to the "graphics" category +[source] +git = "https://github.com/nical/lyon" +[build] +template = "custom" +script = """ +cookbook_cargo_packages lyon_cli wgpu-example svg-rendering-example +""" diff --git a/recipes/wip/demos/macroquad/recipe.toml b/recipes/wip/demos/macroquad/recipe.toml new file mode 100644 index 000000000..d7d56592b --- /dev/null +++ b/recipes/wip/demos/macroquad/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/not-fl3/macroquad" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..9a14f3e90 --- /dev/null +++ b/recipes/wip/demos/mage/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/baad-c0de/mage-core" +[build] +template = "custom" +script = """ +cookbook_cargo_examples basic hello +""" diff --git a/recipes/wip/demos/mesa-demos/recipe.toml b/recipes/wip/demos/mesa-demos/recipe.toml new file mode 100644 index 000000000..f5577ef3f --- /dev/null +++ b/recipes/wip/demos/mesa-demos/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.freedesktop.org/mesa/demos/-/blob/main/README.rst?ref_type=heads +[source] +tar = "https://archive.mesa3d.org/demos/mesa-demos-9.0.0.tar.xz" +[build] +template = "meson" +dependencies = [ + "freeglut", +] diff --git a/recipes/wip/demos/mousefood/recipe.toml b/recipes/wip/demos/mousefood/recipe.toml new file mode 100644 index 000000000..b2214ef9b --- /dev/null +++ b/recipes/wip/demos/mousefood/recipe.toml @@ -0,0 +1,24 @@ +#TODO not compiled or tested +#TODO maybe need a patch to use the sdl2 dependency from redox +[source] +git = "https://github.com/j-g00da/mousefood" +[build] +template = "custom" +dependencies = [ + "sdl2", +] +script = """ +recipe="$(basename "${COOKBOOK_RECIPE}")" + for example in simulator + do + "${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ + --example "${example}" \ + --release \ + --features=simulator + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/${build_type}/examples/${example}" \ + "${COOKBOOK_STAGE}/usr/bin/${recipe}_${example}" + done +""" diff --git a/recipes/wip/demos/notan/recipe.toml b/recipes/wip/demos/notan/recipe.toml new file mode 100644 index 000000000..6a73d3757 --- /dev/null +++ b/recipes/wip/demos/notan/recipe.toml @@ -0,0 +1,9 @@ +#TODO environment leak on CMake +[source] +git = "https://github.com/Nazariglez/notan" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..27ff75613 --- /dev/null +++ b/recipes/wip/demos/pingora/recipe.toml @@ -0,0 +1,8 @@ +#TODO jemalloc-sys crate error +[source] +git = "https://github.com/cloudflare/pingora" +[build] +template = "custom" +script = """ +cookbook_cargo_examples server client +""" diff --git a/recipes/wip/demos/pipes-rs/recipe.toml b/recipes/wip/demos/pipes-rs/recipe.toml new file mode 100644 index 000000000..9759825ee --- /dev/null +++ b/recipes/wip/demos/pipes-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO libmalloc-sys crate error +[source] +git = "https://github.com/lhvy/pipes-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages pipes-rs +""" diff --git a/recipes/wip/demos/piston/recipe.toml b/recipes/wip/demos/piston/recipe.toml new file mode 100644 index 000000000..d8816796f --- /dev/null +++ b/recipes/wip/demos/piston/recipe.toml @@ -0,0 +1,8 @@ +#TODO glutin crate error +[source] +git = "https://github.com/pistondevelopers/piston-examples" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..481118943 --- /dev/null +++ b/recipes/wip/demos/pix-engine/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/lukexor/pix-engine" +[build] +template = "custom" +dependencies = [ + "sdl2", + "sdl2-image", + "sdl2-mixer", + "sdl2-ttf", + "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 +""" diff --git a/recipes/wip/demos/pixels/recipe.toml b/recipes/wip/demos/pixels/recipe.toml new file mode 100644 index 000000000..c6ca5a0df --- /dev/null +++ b/recipes/wip/demos/pixels/recipe.toml @@ -0,0 +1,8 @@ +#TODO webbrowser crate error +[source] +git = "https://github.com/parasyte/pixels" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..f9b7e0be3 --- /dev/null +++ b/recipes/wip/demos/rain/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error +[source] +git = "https://github.com/saschagrunert/rain" +[build] +template = "custom" +script = """ +cookbook_cargo_examples demo +""" diff --git a/recipes/wip/demos/rapier/recipe.toml b/recipes/wip/demos/rapier/recipe.toml new file mode 100644 index 000000000..6dbe10772 --- /dev/null +++ b/recipes/wip/demos/rapier/recipe.toml @@ -0,0 +1,9 @@ +#TODO x11rb, rustix and webbrowser crates error +[source] +git = "https://github.com/dimforge/rapier" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..80dd86b19 --- /dev/null +++ b/recipes/wip/demos/ratzilla/recipe.toml @@ -0,0 +1,31 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/orhun/ratzilla" +[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 +""" diff --git a/recipes/wip/demos/rend3/recipe.toml b/recipes/wip/demos/rend3/recipe.toml new file mode 100644 index 000000000..87b59d639 --- /dev/null +++ b/recipes/wip/demos/rend3/recipe.toml @@ -0,0 +1,8 @@ +#TODO webbrowser crate error +[source] +git = "https://github.com/BVE-Reborn/rend3" +[build] +template = "custom" +script = """ +cookbook_cargo_packages rend3-examples-package +""" diff --git a/recipes/wip/demos/renderling/recipe.toml b/recipes/wip/demos/renderling/recipe.toml new file mode 100644 index 000000000..d8c9aeeaf --- /dev/null +++ b/recipes/wip/demos/renderling/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/schell/renderling" +[build] +template = "custom" +script = """ +cookbook_cargo_packages example +""" diff --git a/recipes/wip/demos/reticulum-rs/recipe.toml b/recipes/wip/demos/reticulum-rs/recipe.toml new file mode 100644 index 000000000..f4064148a --- /dev/null +++ b/recipes/wip/demos/reticulum-rs/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# the protobuf compiler needs to be installed +[source] +git = "https://github.com/BeechatNetworkSystemsLtd/Reticulum-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_examples tcp_client kaonic_client +""" diff --git a/recipes/wip/demos/rootvg/recipe.toml b/recipes/wip/demos/rootvg/recipe.toml new file mode 100644 index 000000000..611dcd550 --- /dev/null +++ b/recipes/wip/demos/rootvg/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/MeadowlarkDAW/rootvg" +[build] +template = "custom" +script = """ +cookbook_cargo_examples demo +""" diff --git a/recipes/wip/demos/rpt/recipe.toml b/recipes/wip/demos/rpt/recipe.toml new file mode 100644 index 000000000..91658f4a4 --- /dev/null +++ b/recipes/wip/demos/rpt/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ekzhang/rpt" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..f2cd28e89 --- /dev/null +++ b/recipes/wip/demos/rsille/recipe.toml @@ -0,0 +1,21 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/nidhoggfgg/rsille" +[build] +template = "custom" +script = """ +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" \ + --example "${example}" \ + --release \ + --features=img + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/${build_type}/examples/${example}" \ + "${COOKBOOK_STAGE}/usr/bin/${recipe}_${example}" + done +""" diff --git a/recipes/wip/demos/rui/recipe.toml b/recipes/wip/demos/rui/recipe.toml new file mode 100644 index 000000000..00c861daf --- /dev/null +++ b/recipes/wip/demos/rui/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/audulus/rui" +[build] +template = "custom" +script = """ +cookbook_cargo_packages calculator synth +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 new file mode 100644 index 000000000..e47657cab --- /dev/null +++ b/recipes/wip/demos/ruscii/recipe.toml @@ -0,0 +1,8 @@ +#TODO device_query crate error +[source] +git = "https://github.com/lemunozm/ruscii" +[build] +template = "custom" +script = """ +cookbook_cargo_examples pong space_invaders +""" diff --git a/recipes/wip/demos/rust-cairo-demo/recipe.sh b/recipes/wip/demos/rust-cairo-demo/recipe.sh new file mode 100644 index 000000000..7c1c4c28d --- /dev/null +++ b/recipes/wip/demos/rust-cairo-demo/recipe.sh @@ -0,0 +1,18 @@ +GIT=https://gitlab.redox-os.org/redox-os/rust-cairo-demo.git +BUILD_DEPENDS=(cairo expat fontconfig freetype2 libpng pixman zlib) + +function recipe_build { + sysroot="$(realpath ../sysroot)" + cargo rustc --target "$TARGET" --release ${CARGOFLAGS} \ + -- \ + -L "${sysroot}/lib" \ + -l cairo \ + -l fontconfig \ + -l expat \ + -l pixman-1 \ + -l freetype \ + -l png \ + -l z + skip=1 +} + diff --git a/recipes/wip/demos/rust-cairo/recipe.sh b/recipes/wip/demos/rust-cairo/recipe.sh new file mode 100644 index 000000000..033b28df0 --- /dev/null +++ b/recipes/wip/demos/rust-cairo/recipe.sh @@ -0,0 +1,25 @@ +GIT=https://gitlab.redox-os.org/redox-os/rust-cairo.git +BUILD_DEPENDS=(cairo expat fontconfig freetype2 libpng pixman zlib) +CARGOFLAGS="--example gui" + +function recipe_build { + sysroot="$(realpath ../sysroot)" + cargo rustc --target "$TARGET" --release ${CARGOFLAGS} \ + -- \ + -L "${sysroot}/lib" \ + -l cairo \ + -l fontconfig \ + -l expat \ + -l pixman-1 \ + -l freetype \ + -l png \ + -l z + skip=1 +} + +function recipe_stage { + dest="$(realpath $1)" + mkdir -pv "$dest/bin" + cp -v "target/${TARGET}/release/examples/gui" "$dest/bin/rust-cairo" + skip=1 +} diff --git a/recipes/wip/demos/rustubble/recipe.toml b/recipes/wip/demos/rustubble/recipe.toml new file mode 100644 index 000000000..022603b18 --- /dev/null +++ b/recipes/wip/demos/rustubble/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/warpy-ai/rustubble" +[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 +""" diff --git a/recipes/wip/demos/rustui/recipe.toml b/recipes/wip/demos/rustui/recipe.toml new file mode 100644 index 000000000..cda858c7b --- /dev/null +++ b/recipes/wip/demos/rustui/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/broccolingual/rustui" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..e1e799b2e --- /dev/null +++ b/recipes/wip/demos/rusty-rain/recipe.toml @@ -0,0 +1,5 @@ +#TODO working but don't exit and hang the orbterm window +[source] +git = "https://github.com/cowboy8625/rusty-rain" +[build] +template = "cargo" diff --git a/recipes/wip/demos/servo-gtk/recipe.toml b/recipes/wip/demos/servo-gtk/recipe.toml new file mode 100644 index 000000000..c512b5467 --- /dev/null +++ b/recipes/wip/demos/servo-gtk/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/nacho/servo-gtk" +[build] +template = "custom" +dependencies = [ + "gtk4" +] +script = """ +cookbook_cargo_examples browser +""" diff --git a/recipes/wip/demos/simdjson-rs/recipe.toml b/recipes/wip/demos/simdjson-rs/recipe.toml new file mode 100644 index 000000000..464baef0e --- /dev/null +++ b/recipes/wip/demos/simdjson-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/simd-lite/simd-json" +[build] +template = "custom" +script = """ +cookbook_cargo_examples perf +""" diff --git a/recipes/wip/demos/slint/recipe.toml b/recipes/wip/demos/slint/recipe.toml new file mode 100644 index 000000000..ccdff83c1 --- /dev/null +++ b/recipes/wip/demos/slint/recipe.toml @@ -0,0 +1,13 @@ +#TODO make libwayland work +[source] +git = "https://github.com/slint-ui/slint" +[build] +template = "custom" +dependencies = [ + "libwayland", +] +script = """ +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 new file mode 100644 index 000000000..581486de3 --- /dev/null +++ b/recipes/wip/demos/soft-ratatui/recipe.toml @@ -0,0 +1,6 @@ +#TODO glutin crate error +[source] +git = "https://github.com/gold-silver-copper/soft_ratatui" +[build] +template = "cargo" +package_path = "egui_colors_example" diff --git a/recipes/wip/demos/speedy2d/recipe.toml b/recipes/wip/demos/speedy2d/recipe.toml new file mode 100644 index 000000000..5a84ea166 --- /dev/null +++ b/recipes/wip/demos/speedy2d/recipe.toml @@ -0,0 +1,8 @@ +#TODO glutin crate error +[source] +git = "https://github.com/QuantumBadger/Speedy2D" +[build] +template = "custom" +script = """ +cookbook_cargo_examples animation hello_world moving_text +""" diff --git a/recipes/wip/demos/spinners/recipe.toml b/recipes/wip/demos/spinners/recipe.toml new file mode 100644 index 000000000..42bd81e8c --- /dev/null +++ b/recipes/wip/demos/spinners/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/FGRibreau/spinners" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..c531d028d --- /dev/null +++ b/recipes/wip/demos/spinoff/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ad4mx/spinoff" +[build] +template = "custom" +script = """ +cookbook_cargo_examples simple stop_and_persist stream +""" diff --git a/recipes/wip/demos/tachyonfx/recipe.toml b/recipes/wip/demos/tachyonfx/recipe.toml new file mode 100644 index 000000000..840d1d58c --- /dev/null +++ b/recipes/wip/demos/tachyonfx/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/junkdog/tachyonfx" +[build] +template = "custom" +script = """ +cookbook_cargo_examples basic-effects open-window tweens +""" diff --git a/recipes/wip/demos/taffy/recipe.toml b/recipes/wip/demos/taffy/recipe.toml new file mode 100644 index 000000000..0be378225 --- /dev/null +++ b/recipes/wip/demos/taffy/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/DioxusLabs/taffy" +[build] +template = "custom" +script = """ +cookbook_cargo_examples basic +""" diff --git a/recipes/wip/demos/tenki/recipe.toml b/recipes/wip/demos/tenki/recipe.toml new file mode 100644 index 000000000..cd4343c87 --- /dev/null +++ b/recipes/wip/demos/tenki/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ckaznable/tenki" +[build] +template = "cargo" diff --git a/recipes/wip/demos/termtree/recipe.toml b/recipes/wip/demos/termtree/recipe.toml new file mode 100644 index 000000000..d23b074fe --- /dev/null +++ b/recipes/wip/demos/termtree/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/rust-cli/termtree" +[build] +template = "custom" +script = """ +cookbook_cargo_examples tree +""" diff --git a/recipes/wip/demos/ternimal/recipe.toml b/recipes/wip/demos/ternimal/recipe.toml new file mode 100644 index 000000000..9132d89ff --- /dev/null +++ b/recipes/wip/demos/ternimal/recipe.toml @@ -0,0 +1,8 @@ +#TODO probably wrong script, see https://github.com/p-e-w/ternimal#building +[source] +git = "https://github.com/p-e-w/ternimal" +[build] +template = "custom" +script = """ +rustc -O "${COOKBOOK_SOURCE}"/ternimal.rs +""" diff --git a/recipes/wip/demos/terra/recipe.toml b/recipes/wip/demos/terra/recipe.toml new file mode 100644 index 000000000..098123fe5 --- /dev/null +++ b/recipes/wip/demos/terra/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/fintelia/terra" +[build] +template = "cargo" +dependencies = [ + "openssl1", + "mesa", +] diff --git a/recipes/wip/demos/three-d/recipe.toml b/recipes/wip/demos/three-d/recipe.toml new file mode 100644 index 000000000..1bc0882b0 --- /dev/null +++ b/recipes/wip/demos/three-d/recipe.toml @@ -0,0 +1,11 @@ +#TODO glutin crate error +[source] +git = "https://github.com/asny/three-d" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +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 +""" diff --git a/recipes/wip/demos/tquic/recipe.toml b/recipes/wip/demos/tquic/recipe.toml new file mode 100644 index 000000000..18850514b --- /dev/null +++ b/recipes/wip/demos/tquic/recipe.toml @@ -0,0 +1,10 @@ +#TODO tikv-jemalloc-sys crate error +[source] +git = "https://github.com/Tencent/tquic" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..c46f893fd --- /dev/null +++ b/recipes/wip/demos/uniocr/recipe.toml @@ -0,0 +1,11 @@ +#TODO xcap crate error +[source] +git = "https://github.com/mediar-ai/uniOCR" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_examples basic batch_processing +""" diff --git a/recipes/wip/demos/usfx/recipe.toml b/recipes/wip/demos/usfx/recipe.toml new file mode 100644 index 000000000..4d7eca8d8 --- /dev/null +++ b/recipes/wip/demos/usfx/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tversteeg/usfx" +[build] +template = "custom" +dependencies = [ + "libalsa", + "sdl2", +] +script = """ +cookbook_cargo_examples cpal music sdl2 +""" diff --git a/recipes/wip/demos/vizia/recipe.toml b/recipes/wip/demos/vizia/recipe.toml new file mode 100644 index 000000000..661efd38b --- /dev/null +++ b/recipes/wip/demos/vizia/recipe.toml @@ -0,0 +1,11 @@ +#TODO make libwayland work +[source] +git = "https://github.com/vizia/vizia" +[build] +template = "custom" +dependencies = [ + "libwayland", +] +script = """ +cookbook_cargo_examples animation dragdrop number input timers +""" diff --git a/recipes/wip/demos/wavy/recipe.toml b/recipes/wip/demos/wavy/recipe.toml new file mode 100644 index 000000000..8dc2e261f --- /dev/null +++ b/recipes/wip/demos/wavy/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ardaku/wavy" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..b46016b45 --- /dev/null +++ b/recipes/wip/demos/wgpu-sky-rendering/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/bmatthieu3/wgpu-sky-rendering" +[build] +template = "cargo" diff --git a/recipes/wip/demos/xaos/recipe.toml b/recipes/wip/demos/xaos/recipe.toml new file mode 100644 index 000000000..a13d2112a --- /dev/null +++ b/recipes/wip/demos/xaos/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for QMake, see https://github.com/xaos-project/XaoS/wiki/Developer's-Guide#build-instructions-for-version-43 +[source] +git = "https://github.com/xaos-project/XaoS" +rev = "7f36177f32a23eea88911afb90878046912d7e2d" +[build] +template = "custom" +dependencies = [ + "qt6-base", + "mesa", +] diff --git a/recipes/wip/demos/xilem/recipe.toml b/recipes/wip/demos/xilem/recipe.toml new file mode 100644 index 000000000..75f76028a --- /dev/null +++ b/recipes/wip/demos/xilem/recipe.toml @@ -0,0 +1,8 @@ +#TODO xilem_core crate error +[source] +git = "https://github.com/linebender/xilem" +[build] +template = "custom" +script = """ +cookbook_cargo_examples components +""" diff --git a/recipes/wip/dev/analysis/binocle/recipe.toml b/recipes/wip/dev/analysis/binocle/recipe.toml new file mode 100644 index 000000000..3bdd8bae9 --- /dev/null +++ b/recipes/wip/dev/analysis/binocle/recipe.toml @@ -0,0 +1,5 @@ +#TODO "No suitable wgpu::Adapter found" error on execution +[source] +git = "https://github.com/sharkdp/binocle" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/binwalk/recipe.toml b/recipes/wip/dev/analysis/binwalk/recipe.toml new file mode 100644 index 000000000..8ee40ae95 --- /dev/null +++ b/recipes/wip/dev/analysis/binwalk/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ReFirmLabs/binwalk" +[build] +template = "cargo" +dependencies = [ + "fontconfig", + "xz", +] diff --git a/recipes/wip/dev/analysis/code-minimap/recipe.toml b/recipes/wip/dev/analysis/code-minimap/recipe.toml new file mode 100644 index 000000000..c0a18e39b --- /dev/null +++ b/recipes/wip/dev/analysis/code-minimap/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/wfxr/code-minimap" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/codevis/recipe.toml b/recipes/wip/dev/analysis/codevis/recipe.toml new file mode 100644 index 000000000..809a63564 --- /dev/null +++ b/recipes/wip/dev/analysis/codevis/recipe.toml @@ -0,0 +1,5 @@ +#TODO open crate error (after cargo update) +[source] +git = "https://github.com/sloganking/codevis" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/debtmap/recipe.toml b/recipes/wip/dev/analysis/debtmap/recipe.toml new file mode 100644 index 000000000..11a61f1ea --- /dev/null +++ b/recipes/wip/dev/analysis/debtmap/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/iepathos/debtmap" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/feluda/recipe.toml b/recipes/wip/dev/analysis/feluda/recipe.toml new file mode 100644 index 000000000..75902a3f1 --- /dev/null +++ b/recipes/wip/dev/analysis/feluda/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/anistark/feluda" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/analysis/hex/recipe.toml b/recipes/wip/dev/analysis/hex/recipe.toml new file mode 100644 index 000000000..1a2f38dcb --- /dev/null +++ b/recipes/wip/dev/analysis/hex/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/sitkevij/hex" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/hgrep/recipe.toml b/recipes/wip/dev/analysis/hgrep/recipe.toml new file mode 100644 index 000000000..634ca89fc --- /dev/null +++ b/recipes/wip/dev/analysis/hgrep/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error, missing mimalloc sys/syscall.h +[source] +git = "https://github.com/rhysd/hgrep" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/hl/recipe.toml b/recipes/wip/dev/analysis/hl/recipe.toml new file mode 100644 index 000000000..b6a227d5e --- /dev/null +++ b/recipes/wip/dev/analysis/hl/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/pamburus/hl" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/honggfuzz-rs/recipe.toml b/recipes/wip/dev/analysis/honggfuzz-rs/recipe.toml new file mode 100644 index 000000000..de6a688dc --- /dev/null +++ b/recipes/wip/dev/analysis/honggfuzz-rs/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rust-fuzz/honggfuzz-rs" +[build] +template = "cargo" +dependencies = [ + "gnu-binutils", + "libunwind", + "xz", +] diff --git a/recipes/wip/dev/analysis/hx/recipe.toml b/recipes/wip/dev/analysis/hx/recipe.toml new file mode 100644 index 000000000..46f32c475 --- /dev/null +++ b/recipes/wip/dev/analysis/hx/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://github.com/krpors/hx#compiling-and-running +[source] +git = "https://github.com/krpors/hx" +rev = "c124b40586f701e47b35628fde286d20bf9988ca" +[build] +template = "custom" diff --git a/recipes/wip/dev/analysis/pratdiff/recipe.toml b/recipes/wip/dev/analysis/pratdiff/recipe.toml new file mode 100644 index 000000000..05bfd0b92 --- /dev/null +++ b/recipes/wip/dev/analysis/pratdiff/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/fowles/pratdiff" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/rust-ontologist/recipe.toml b/recipes/wip/dev/analysis/rust-ontologist/recipe.toml new file mode 100644 index 000000000..8a2422e9d --- /dev/null +++ b/recipes/wip/dev/analysis/rust-ontologist/recipe.toml @@ -0,0 +1,5 @@ +#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 new file mode 100644 index 000000000..2fc9fdf9a --- /dev/null +++ b/recipes/wip/dev/analysis/statui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Mohamed-Badry/statui" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/tinywatcher/recipe.toml b/recipes/wip/dev/analysis/tinywatcher/recipe.toml new file mode 100644 index 000000000..cf09d2e52 --- /dev/null +++ b/recipes/wip/dev/analysis/tinywatcher/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tinywatcher/tinywatcher" +[build] +template = "cargo" diff --git a/recipes/wip/dev/analysis/zizmor/recipe.toml b/recipes/wip/dev/analysis/zizmor/recipe.toml new file mode 100644 index 000000000..7355c743b --- /dev/null +++ b/recipes/wip/dev/analysis/zizmor/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/woodruffw/zizmor" +[build] +template = "custom" +script = """ +cookbook_cargo_packages zizmor +""" diff --git a/recipes/wip/dev/build-system/ant/recipe.toml b/recipes/wip/dev/build-system/ant/recipe.toml new file mode 100644 index 000000000..3c04f05e1 --- /dev/null +++ b/recipes/wip/dev/build-system/ant/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building: https://ant.apache.org/manual/install.html#buildingant +[source] +tar = "https://downloads.apache.org/ant/source/apache-ant-1.10.14-src.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/dev/build-system/ccache/recipe.toml b/recipes/wip/dev/build-system/ccache/recipe.toml new file mode 100644 index 000000000..74601d948 --- /dev/null +++ b/recipes/wip/dev/build-system/ccache/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +#TODO missing dependencies: https://github.com/ccache/ccache/blob/master/doc/INSTALL.md#dependencies +# build instructions: https://github.com/ccache/ccache/blob/master/doc/INSTALL.md +[source] +tar = "https://github.com/ccache/ccache/releases/download/v4.10.2/ccache-4.10.2.tar.gz" +[build] +template = "cmake" +cmakeflags = [ + "-DENABLE_TESTING=OFF", + "-DREDIS_STORAGE_BACKEND=OFF", +] +dependencies = [ + "libfmt", + "xxhash", + "zstd", +] diff --git a/recipes/wip/dev/build-system/hadrian/recipe.toml b/recipes/wip/dev/build-system/hadrian/recipe.toml new file mode 100644 index 000000000..768f235fd --- /dev/null +++ b/recipes/wip/dev/build-system/hadrian/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building, see https://github.com/ghc/hadrian +[source] +tar = "https://downloads.haskell.org/~ghc/9.8.1/hadrian-bootstrap-sources/hadrian-bootstrap-sources-9.6.2.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/dev/build-system/just/recipe.toml b/recipes/wip/dev/build-system/just/recipe.toml new file mode 100644 index 000000000..b60502904 --- /dev/null +++ b/recipes/wip/dev/build-system/just/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/casey/just" +[build] +template = "custom" +script = """ +cookbook_cargo_packages just +""" diff --git a/recipes/wip/dev/build-system/lux/recipe.toml b/recipes/wip/dev/build-system/lux/recipe.toml new file mode 100644 index 000000000..01b279087 --- /dev/null +++ b/recipes/wip/dev/build-system/lux/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/lumen-oss/lux" +[build] +template = "custom" +script = """ +cookbook_cargo_packages lux-cli +""" diff --git a/recipes/wip/dev/build-system/meson/recipe.toml b/recipes/wip/dev/build-system/meson/recipe.toml new file mode 100644 index 000000000..77fcb41c4 --- /dev/null +++ b/recipes/wip/dev/build-system/meson/recipe.toml @@ -0,0 +1,5 @@ +#TODO create a standalone script: https://github.com/mesonbuild/meson#creating-a-standalone-script +[source] +tar = "https://github.com/mesonbuild/meson/releases/download/1.3.0/meson-1.3.0.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/dev/build-system/ninja-build/recipe.toml b/recipes/wip/dev/build-system/ninja-build/recipe.toml new file mode 100644 index 000000000..d6e10e418 --- /dev/null +++ b/recipes/wip/dev/build-system/ninja-build/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ninja-build/ninja#building-ninja-itself +[source] +git = "https://github.com/ninja-build/ninja" +rev = "v1.13.1" +[build] +template = "cmake" diff --git a/recipes/wip/dev/build-system/werk/recipe.toml b/recipes/wip/dev/build-system/werk/recipe.toml new file mode 100644 index 000000000..4635fa1a3 --- /dev/null +++ b/recipes/wip/dev/build-system/werk/recipe.toml @@ -0,0 +1,8 @@ +#TODO async and rustix crates error +[source] +git = "https://github.com/simonask/werk" +[build] +template = "custom" +script = """ +cookbook_cargo_packages werk-cli +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-about/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-about/recipe.toml new file mode 100644 index 000000000..b0efb1ff3 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-about/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/EmbarkStudios/cargo-about" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-all-features/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-all-features/recipe.toml new file mode 100644 index 000000000..e4eba3c79 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-all-features/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/frewsxcv/cargo-all-features" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-attribution/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-attribution/recipe.toml new file mode 100644 index 000000000..f85099b93 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-attribution/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/ameknite/cargo-attribution" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-audit/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-audit/recipe.toml new file mode 100644 index 000000000..826180ae6 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-audit/recipe.toml @@ -0,0 +1,14 @@ +#TODO camino crate error (after a patch on the ring crate) +[source] +git = "https://github.com/rustsec/rustsec" +[build] +template = "custom" +dependencies = [ + "openssl1", + "libssh2", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo_packages cargo-audit +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-auditable/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-auditable/recipe.toml new file mode 100644 index 000000000..c64d92fd0 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-auditable/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/rust-secure-code/cargo-auditable" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cargo-auditable +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-auto/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-auto/recipe.toml new file mode 100644 index 000000000..e2ca13dc0 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-auto/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/automation-tasks-rs/cargo-auto" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-autodd/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-autodd/recipe.toml new file mode 100644 index 000000000..28dc3b5be --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-autodd/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/nwiizo/cargo-autodd" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-binutils/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-binutils/recipe.toml new file mode 100644 index 000000000..7cde054af --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-binutils/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/rust-embedded/cargo-binutils" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-bloat/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-bloat/recipe.toml new file mode 100644 index 000000000..3b402d03c --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-bloat/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/RazrFalcon/cargo-bloat" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-c/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-c/recipe.toml new file mode 100644 index 000000000..6f410ef5e --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-c/recipe.toml @@ -0,0 +1,5 @@ +#TODO require rustc 1.75 or newer +[source] +git = "https://github.com/lu-zero/cargo-c" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-cache/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-cache/recipe.toml new file mode 100644 index 000000000..8bdb0ca01 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-cache/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/matthiaskrgr/cargo-cache" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-careful/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-careful/recipe.toml new file mode 100644 index 000000000..4c10161cc --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-careful/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/RalfJung/cargo-careful" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-check-deadlock/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-check-deadlock/recipe.toml new file mode 100644 index 000000000..1bbf81ce3 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-check-deadlock/recipe.toml @@ -0,0 +1,5 @@ +#TODO require the components rust-src rustc-dev llvm-tools-preview to be installed +[source] +git = "https://github.com/hlisdero/cargo-check-deadlock" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-checkmate/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-checkmate/recipe.toml new file mode 100644 index 000000000..445481f33 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-checkmate/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/cargo-checkmate/cargo-checkmate" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-clone-crate/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-clone-crate/recipe.toml new file mode 100644 index 000000000..80e325735 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-clone-crate/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ehuss/cargo-clone-crate" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-clone/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-clone/recipe.toml new file mode 100644 index 000000000..b3fe303f9 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-clone/recipe.toml @@ -0,0 +1,11 @@ +#TODO cargo-util crate error +[source] +git = "https://github.com/JanLikar/cargo-clone" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages cargo-clone +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-compete/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-compete/recipe.toml new file mode 100644 index 000000000..b602fb799 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-compete/recipe.toml @@ -0,0 +1,5 @@ +#TODO serde crate error (after cargo update) +[source] +git = "https://github.com/qryxip/cargo-compete" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-component/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-component/recipe.toml new file mode 100644 index 000000000..bacbc60a6 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-component/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/bytecodealliance/cargo-component" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-crev/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-crev/recipe.toml new file mode 100644 index 000000000..e5d735367 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-crev/recipe.toml @@ -0,0 +1,11 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/crev-dev/cargo-crev" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages cargo-crev +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-deny/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-deny/recipe.toml new file mode 100644 index 000000000..bd0f8c9f9 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-deny/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error (after a patch on the ring crate) +[source] +git = "https://github.com/EmbarkStudios/cargo-deny" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-depsize/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-depsize/recipe.toml new file mode 100644 index 000000000..1c08a4e61 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-depsize/recipe.toml @@ -0,0 +1,8 @@ +#TODO cargo-util crate error +[source] +git = "https://github.com/Alfex4936/cargo-depsize" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-derivefmt/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-derivefmt/recipe.toml new file mode 100644 index 000000000..ce753166a --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-derivefmt/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/dcchut/cargo-derivefmt" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cargo-derivefmt +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-diet/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-diet/recipe.toml new file mode 100644 index 000000000..76e2a85ea --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-diet/recipe.toml @@ -0,0 +1,5 @@ +#TODO termsize crate error +[source] +git = "https://github.com/the-lean-crate/cargo-diet" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-dist/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-dist/recipe.toml new file mode 100644 index 000000000..167362565 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-dist/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/axodotdev/cargo-dist" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cargo-dist +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-docs-rs/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-docs-rs/recipe.toml new file mode 100644 index 000000000..660e65e13 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-docs-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/dtolnay/cargo-docs-rs" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-docs/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-docs/recipe.toml new file mode 100644 index 000000000..c19b8e181 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-docs/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/btwiuse/cargo-docs" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-duplicates/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-duplicates/recipe.toml new file mode 100644 index 000000000..4b842c460 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-duplicates/recipe.toml @@ -0,0 +1,8 @@ +#TODO cargo-util crate error +[source] +git = "https://github.com/Keruspe/cargo-duplicates" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-edit/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-edit/recipe.toml new file mode 100644 index 000000000..a833b92ae --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-edit/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/killercup/cargo-edit" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-equip/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-equip/recipe.toml new file mode 100644 index 000000000..a0a8fc9d4 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-equip/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/qryxip/cargo-equip" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-expand/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-expand/recipe.toml new file mode 100644 index 000000000..6fb87a608 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-expand/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/dtolnay/cargo-expand" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-featalign/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-featalign/recipe.toml new file mode 100644 index 000000000..23bbf9295 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-featalign/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/hack-ink/cargo-featalign" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-feature-combinations/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-feature-combinations/recipe.toml new file mode 100644 index 000000000..146c87100 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-feature-combinations/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/romnn/cargo-feature-combinations" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-feature/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-feature/recipe.toml new file mode 100644 index 000000000..b713840e5 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-feature/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/Riey/cargo-feature" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-files/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-files/recipe.toml new file mode 100644 index 000000000..9fb302b77 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-files/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/dcchut/cargo-files" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cargo-files +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-fixture/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-fixture/recipe.toml new file mode 100644 index 000000000..9e914954d --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-fixture/recipe.toml @@ -0,0 +1,5 @@ +#TODO async-io and rustix crates error +[source] +git = "https://github.com/vojtechkral/cargo-fixture" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-ft/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-ft/recipe.toml new file mode 100644 index 000000000..9d5ef4d8a --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-ft/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/stormshield/cargo-ft" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-fuzz/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-fuzz/recipe.toml new file mode 100644 index 000000000..30db380bc --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-fuzz/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after an update on proc-macro2) +[source] +git = "https://github.com/rust-fuzz/cargo-fuzz" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-gc/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-gc/recipe.toml new file mode 100644 index 000000000..4a321ea35 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-gc/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/waynexia/cargo-gc" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-geiger/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-geiger/recipe.toml new file mode 100644 index 000000000..863ce563e --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-geiger/recipe.toml @@ -0,0 +1,13 @@ +#TODO camino crate error +[source] +git = "https://github.com/rust-secure-code/cargo-geiger" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo_packages cargo-geiger +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-generate/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-generate/recipe.toml new file mode 100644 index 000000000..7eed481ab --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-generate/recipe.toml @@ -0,0 +1,8 @@ +#TODO fs_at crate error +[source] +git = "https://github.com/cargo-generate/cargo-generate" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-get/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-get/recipe.toml new file mode 100644 index 000000000..53a41880d --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-get/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/nicolaiunrein/cargo-get" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-goggles/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-goggles/recipe.toml new file mode 100644 index 000000000..95b73e1f1 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-goggles/recipe.toml @@ -0,0 +1,5 @@ +#TODO serde crate error +[source] +git = "https://github.com/M4SS-Code/cargo-goggles" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-guppy/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-guppy/recipe.toml new file mode 100644 index 000000000..8db3eff88 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-guppy/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/guppy-rs/guppy" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cargo-guppy +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-hack/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-hack/recipe.toml new file mode 100644 index 000000000..f609428e6 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-hack/recipe.toml @@ -0,0 +1,5 @@ +#TODO serde crate error +[source] +git = "https://github.com/taiki-e/cargo-hack" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-hackerman/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-hackerman/recipe.toml new file mode 100644 index 000000000..e356801d7 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-hackerman/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/pacak/hackerman" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-hakari/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-hakari/recipe.toml new file mode 100644 index 000000000..a99ae45af --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-hakari/recipe.toml @@ -0,0 +1,8 @@ +#TODO atomicwrites and rustix crates error +[source] +git = "https://github.com/guppy-rs/guppy" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cargo-hakari +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-http-registry/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-http-registry/recipe.toml new file mode 100644 index 000000000..fb51cdf90 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-http-registry/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/d-e-s-o/cargo-http-registry" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-info/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-info/recipe.toml new file mode 100644 index 000000000..e7a16a15c --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-info/recipe.toml @@ -0,0 +1,8 @@ +#TODO openssl error +[source] +git = "https://gitlab.com/imp/cargo-info" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-lambda/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-lambda/recipe.toml new file mode 100644 index 000000000..95bff1a14 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-lambda/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/cargo-lambda/cargo-lambda" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cargo-lambda +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-leet/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-leet/recipe.toml new file mode 100644 index 000000000..0e8956b1f --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-leet/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/rust-practice/cargo-leet" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-leptos/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-leptos/recipe.toml new file mode 100644 index 000000000..60bfc093f --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-leptos/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/leptos-rs/cargo-leptos" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-license/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-license/recipe.toml new file mode 100644 index 000000000..7ba34deee --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-license/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/onur/cargo-license" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-limit/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-limit/recipe.toml new file mode 100644 index 000000000..a7bfeca5b --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-limit/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/cargo-limit/cargo-limit" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-list/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-list/recipe.toml new file mode 100644 index 000000000..4959c583a --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-list/recipe.toml @@ -0,0 +1,8 @@ +#TODO update the redox_syscall crate version on the dependency tree +[source] +git = "https://github.com/qtfkwk/cargo-list" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-llvm-cov/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-llvm-cov/recipe.toml new file mode 100644 index 000000000..0edd437f4 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-llvm-cov/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/taiki-e/cargo-llvm-cov" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-llvm-lines/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-llvm-lines/recipe.toml new file mode 100644 index 000000000..e9fefa366 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-llvm-lines/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/dtolnay/cargo-llvm-lines" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-loc/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-loc/recipe.toml new file mode 100644 index 000000000..0e1af283a --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-loc/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/Shnatsel/cargo-loc" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-lockup/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-lockup/recipe.toml new file mode 100644 index 000000000..0e0fe239e --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-lockup/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/collinoc/cargo-lookup" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-machete/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-machete/recipe.toml new file mode 100644 index 000000000..7fcd1a66f --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-machete/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/bnjbvr/cargo-machete" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-make/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-make/recipe.toml new file mode 100644 index 000000000..3c7599e74 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-make/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/sagiegurari/cargo-make" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-modules/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-modules/recipe.toml new file mode 100644 index 000000000..e8e49b795 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-modules/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/regexident/cargo-modules" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-msrv/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-msrv/recipe.toml new file mode 100644 index 000000000..60eac40ca --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-msrv/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error (after a patch on ring) +[source] +git = "https://github.com/foresterre/cargo-msrv" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-multivers/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-multivers/recipe.toml new file mode 100644 index 000000000..83b4b406a --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-multivers/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/ronnychevalier/cargo-multivers" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-mutants/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-mutants/recipe.toml new file mode 100644 index 000000000..156d2e2e7 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-mutants/recipe.toml @@ -0,0 +1,6 @@ +#TODO camino crate error +[source] +git = "https://github.com/sourcefrog/cargo-mutants" + +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-nextest/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-nextest/recipe.toml new file mode 100644 index 000000000..43f484daa --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-nextest/recipe.toml @@ -0,0 +1,8 @@ +#TODO shared_child and libc crates error +[source] +git = "https://github.com/nextest-rs/nextest" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cargo-nextest +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-outofdate/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-outofdate/recipe.toml new file mode 100644 index 000000000..d2ab84152 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-outofdate/recipe.toml @@ -0,0 +1,8 @@ +#TODO cargo-util crate error +[source] +git = "https://github.com/quininer/cargo-outofdate" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-packager/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-packager/recipe.toml new file mode 100644 index 000000000..b918f8935 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-packager/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/crabnebula-dev/cargo-packager" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cargo-packager +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-patch/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-patch/recipe.toml new file mode 100644 index 000000000..34a3a6861 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-patch/recipe.toml @@ -0,0 +1,8 @@ +#TODO ahash crate error +[source] +git = "https://github.com/itmettkeDE/cargo-patch" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-preflight/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-preflight/recipe.toml new file mode 100644 index 000000000..7675d75de --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-preflight/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/supinie/cargo-preflight" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-public-api/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-public-api/recipe.toml new file mode 100644 index 000000000..3583dd6ba --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-public-api/recipe.toml @@ -0,0 +1,11 @@ +#TODO camino crate error +[source] +git = "https://github.com/Enselic/cargo-public-api" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages cargo-public-api +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-px/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-px/recipe.toml new file mode 100644 index 000000000..f317d168c --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-px/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash crate error +[source] +git = "https://github.com/LukeMathWalker/cargo-px" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-qtest/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-qtest/recipe.toml new file mode 100644 index 000000000..ace273e98 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-qtest/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/onur-ozkan/cargo-qtest" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-rdme/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-rdme/recipe.toml new file mode 100644 index 000000000..47435ad90 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-rdme/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/orium/cargo-rdme" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-release/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-release/recipe.toml new file mode 100644 index 000000000..1322d13f6 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-release/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/crate-ci/cargo-release" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-remark/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-remark/recipe.toml new file mode 100644 index 000000000..4439c6c8d --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-remark/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/kobzol/cargo-remark" +[build] +template = "custom" +script = """ +cookbook_cargo --no-default-features +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-run-bin/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-run-bin/recipe.toml new file mode 100644 index 000000000..4101bffc3 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-run-bin/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +git = "https://github.com/dustinblackman/cargo-run-bin" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-scaffold/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-scaffold/recipe.toml new file mode 100644 index 000000000..b93d37c94 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-scaffold/recipe.toml @@ -0,0 +1,13 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/iomentum/cargo-scaffold" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-selector/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-selector/recipe.toml new file mode 100644 index 000000000..844aa3ec3 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-selector/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/lusingander/cargo-selector" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-semver-checks/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-semver-checks/recipe.toml new file mode 100644 index 000000000..f1b86896c --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-semver-checks/recipe.toml @@ -0,0 +1,5 @@ +#TODO serde crate error +[source] +git = "https://github.com/obi1kenobi/cargo-semver-checks" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-shear/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-shear/recipe.toml new file mode 100644 index 000000000..77ae7800e --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-shear/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/Boshen/cargo-shear" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-show-asm/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-show-asm/recipe.toml new file mode 100644 index 000000000..d66b2f692 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-show-asm/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/pacak/cargo-show-asm" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-single-line/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-single-line/recipe.toml new file mode 100644 index 000000000..d338daa59 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-single-line/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/mexus/cargo-single-line" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-smart-release/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-smart-release/recipe.toml new file mode 100644 index 000000000..8f5faae3d --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-smart-release/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/Byron/cargo-smart-release" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-spellcheck/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-spellcheck/recipe.toml new file mode 100644 index 000000000..673f2e910 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-spellcheck/recipe.toml @@ -0,0 +1,8 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/drahnr/cargo-spellcheck" +[build] +template = "cargo" +dependencies = [ + "llvm18", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-subspace/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-subspace/recipe.toml new file mode 100644 index 000000000..2e5ca44a8 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-subspace/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ethowitz/cargo-subspace" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-supply-chain/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-supply-chain/recipe.toml new file mode 100644 index 000000000..9ce9539fc --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-supply-chain/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error (after cargo update) +[source] +git = "https://github.com/rust-secure-code/cargo-supply-chain" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-sweep/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-sweep/recipe.toml new file mode 100644 index 000000000..1fd87697d --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-sweep/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/holmgr/cargo-sweep" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-sync-rdme/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-sync-rdme/recipe.toml new file mode 100644 index 000000000..f5b5205b0 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-sync-rdme/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/gifnksm/cargo-sync-rdme" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-tally/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-tally/recipe.toml new file mode 100644 index 000000000..4ddf19b28 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-tally/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/dtolnay/cargo-tally" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-tarpaulin/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-tarpaulin/recipe.toml new file mode 100644 index 000000000..85ed8020f --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-tarpaulin/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/xd009642/tarpaulin" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-temp/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-temp/recipe.toml new file mode 100644 index 000000000..1256d37ad --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-temp/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/yozhgoor/cargo-temp" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-trend/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-trend/recipe.toml new file mode 100644 index 000000000..17dc0d5d9 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-trend/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/dalance/cargo-trend" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-trim/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-trim/recipe.toml new file mode 100644 index 000000000..aedfce428 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-trim/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +git = "https://github.com/iamsauravsharma/cargo-trim" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-udeps/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-udeps/recipe.toml new file mode 100644 index 000000000..558e9db24 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-udeps/recipe.toml @@ -0,0 +1,8 @@ +#TODO cargo-util crate error +[source] +git = "https://github.com/est31/cargo-udeps" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-ui/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-ui/recipe.toml new file mode 100644 index 000000000..63f293241 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-ui/recipe.toml @@ -0,0 +1,12 @@ +#TODO make libxkbcommon work +[source] +git = "https://github.com/slint-ui/cargo-ui" +[build] +template = "custom" +dependencies = [ + "fontconfig", + "libxkbcommon", +] +script = """ +cookbook_cargo --no-default-features slint-backend-gl-all +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-unfmt/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-unfmt/recipe.toml new file mode 100644 index 000000000..c152514d2 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-unfmt/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/fprasx/cargo-unfmt" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-unmaintained/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-unmaintained/recipe.toml new file mode 100644 index 000000000..bb667444e --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-unmaintained/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after a camino crate patch) +[source] +git = "https://github.com/trailofbits/cargo-unmaintained" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-update/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-update/recipe.toml new file mode 100644 index 000000000..22e60891d --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-update/recipe.toml @@ -0,0 +1,11 @@ +#TODO compilation error +[source] +git = "https://github.com/nabijaczleweli/cargo-update" +[build] +template = "cargo" +dependencies = [ + "curl", + "openssl1", + "libssh2", + "libgit2", +] diff --git a/recipes/wip/dev/cargo-tools/cargo-vendor-filterer/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-vendor-filterer/recipe.toml new file mode 100644 index 000000000..cf0070877 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-vendor-filterer/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/coreos/cargo-vendor-filterer" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-vet/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-vet/recipe.toml new file mode 100644 index 000000000..fdfc4ee8a --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-vet/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error (after cargo update and a patch on the ring crate) +[source] +git = "https://github.com/mozilla/cargo-vet" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-wasi/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-wasi/recipe.toml new file mode 100644 index 000000000..a08d2924c --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-wasi/recipe.toml @@ -0,0 +1,5 @@ +#TODO fs2 crate error +[source] +git = "https://github.com/bytecodealliance/cargo-wasi" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-wasix/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-wasix/recipe.toml new file mode 100644 index 000000000..2030bf924 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-wasix/recipe.toml @@ -0,0 +1,5 @@ +#TODO fs2 crate error +[source] +git = "https://github.com/wasix-org/cargo-wasix" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-watch/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-watch/recipe.toml new file mode 100644 index 000000000..c169773eb --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-watch/recipe.toml @@ -0,0 +1,5 @@ +#TODO nix crate error +[source] +git = "https://github.com/watchexec/cargo-watch" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-whatfeatures/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-whatfeatures/recipe.toml new file mode 100644 index 000000000..de618ea87 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-whatfeatures/recipe.toml @@ -0,0 +1,11 @@ +#TODO camino crate error +[source] +git = "https://github.com/museun/cargo-whatfeatures" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo --features rustls +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-wizard/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-wizard/recipe.toml new file mode 100644 index 000000000..b44601dbc --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-wizard/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/Kobzol/cargo-wizard" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-workspace-version/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-workspace-version/recipe.toml new file mode 100644 index 000000000..521b93ce3 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-workspace-version/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/ava-labs/cargo-workspace-version" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/cargo-workspaces/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-workspaces/recipe.toml new file mode 100644 index 000000000..29f8f64eb --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-workspaces/recipe.toml @@ -0,0 +1,9 @@ +#TODO camino crate error +[source] +git = "https://github.com/pksunkara/cargo-workspaces" +[build] +template = "custom" +script = """ +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}"/cargo-workspaces +cookbook_cargo +""" diff --git a/recipes/wip/dev/cargo-tools/cargo-zigbuild/recipe.toml b/recipes/wip/dev/cargo-tools/cargo-zigbuild/recipe.toml new file mode 100644 index 000000000..ff0823b61 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/cargo-zigbuild/recipe.toml @@ -0,0 +1,8 @@ +#TODO make zig work +[source] +git = "https://github.com/rust-cross/cargo-zigbuild" +[build] +template = "cargo" +dependencies = [ + "zig" +] diff --git a/recipes/wip/dev/cargo-tools/carwash/recipe.toml b/recipes/wip/dev/cargo-tools/carwash/recipe.toml new file mode 100644 index 000000000..235368265 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/carwash/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/epistates/carwash" +[build] +template = "cargo" diff --git a/recipes/wip/dev/cargo-tools/crunch/recipe.toml b/recipes/wip/dev/cargo-tools/crunch/recipe.toml new file mode 100644 index 000000000..a68c8db89 --- /dev/null +++ b/recipes/wip/dev/cargo-tools/crunch/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/liamaharon/crunch-cli" +[build] +template = "cargo" diff --git a/recipes/wip/dev/debug/dr-memory/recipe.toml b/recipes/wip/dev/debug/dr-memory/recipe.toml new file mode 100644 index 000000000..3175b2c0f --- /dev/null +++ b/recipes/wip/dev/debug/dr-memory/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +git = "https://github.com/DynamoRIO/drmemory" +rev = "release_2.6.0" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "libunwind", +] diff --git a/recipes/wip/dev/debug/gdb/recipe.toml b/recipes/wip/dev/debug/gdb/recipe.toml new file mode 100644 index 000000000..ec52462b5 --- /dev/null +++ b/recipes/wip/dev/debug/gdb/recipe.toml @@ -0,0 +1,32 @@ +#TODO port to redox +[source] +tar = "https://ftp.gnu.org/gnu/gdb/gdb-15.1.tar.xz" +[build] +template = "custom" +dependencies = [ + "libgmp", + "libmpfr", + "ncurses", + "readline", +] +script = """ +DYNAMIC_INIT + +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-binutils + --disable-ld + --disable-gold + --disable-gas + --disable-sim + --disable-gprof + --disable-gprofng + --disable-intl + --with-system-readline + --with-gmp="${COOKBOOK_SYSROOT}" + --with-mpfr="${COOKBOOK_SYSROOT}" + --with-curses +) + +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" +cookbook_configure +""" diff --git a/recipes/wip/dev/debug/nnd/recipe.toml b/recipes/wip/dev/debug/nnd/recipe.toml new file mode 100644 index 000000000..4542522f3 --- /dev/null +++ b/recipes/wip/dev/debug/nnd/recipe.toml @@ -0,0 +1,8 @@ +#TODO nnd crate error +[source] +git = "https://github.com/al13n321/nnd" +[build] +template = "custom" +script = """ +cookbook_cargo --profile=dbgo +""" diff --git a/recipes/wip/dev/debug/rr-debugger/recipe.toml b/recipes/wip/dev/debug/rr-debugger/recipe.toml new file mode 100644 index 000000000..91729d186 --- /dev/null +++ b/recipes/wip/dev/debug/rr-debugger/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://github.com/rr-debugger/rr/wiki/Building-And-Installing +[source] +git = "https://github.com/rr-debugger/rr" +rev = "5.9.0" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "zlib", + "capnproto", + "zstd", +] diff --git a/recipes/wip/dev/debug/termfu/recipe.toml b/recipes/wip/dev/debug/termfu/recipe.toml new file mode 100644 index 000000000..5b9cef4a6 --- /dev/null +++ b/recipes/wip/dev/debug/termfu/recipe.toml @@ -0,0 +1,15 @@ +#TODO missing script for gnu make +# build instructions: https://github.com/jvalcher/termfu#installation +[source] +git = "https://github.com/jvalcher/termfu" +rev = "v0.2.2" +[build] +template = "custom" +dependencies = [ + "ncurses", +] +[package] +dependencies = [ + "gdb", + "python312", +] diff --git a/recipes/wip/dev/debug/yetty/recipe.toml b/recipes/wip/dev/debug/yetty/recipe.toml new file mode 100644 index 000000000..8a1170b6f --- /dev/null +++ b/recipes/wip/dev/debug/yetty/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/aa55-dev/yeTTY" +rev = "v0.1.3" +[build] +template = "cmake" +dependencies = [ + "qt6-base", + "qt6-multimedia", + "qt6-serialport", + "zstd", + "boost", + "libbacktrace", + "ktexteditor6", +] diff --git a/recipes/wip/dev/framework/biome/recipe.toml b/recipes/wip/dev/framework/biome/recipe.toml new file mode 100644 index 000000000..63303b72e --- /dev/null +++ b/recipes/wip/dev/framework/biome/recipe.toml @@ -0,0 +1,9 @@ +#TODO tikv-jemalloc-sys crate error +[source] +git = "https://github.com/biomejs/biome" +shallow_clone = true +[build] +template = "custom" +script = """ +cookbook_cargo_packages biome_cli +""" diff --git a/recipes/wip/dev/framework/deno/recipe.toml b/recipes/wip/dev/framework/deno/recipe.toml new file mode 100644 index 000000000..c81bf2494 --- /dev/null +++ b/recipes/wip/dev/framework/deno/recipe.toml @@ -0,0 +1,10 @@ +#TODO v8 crate error +#TODO lacking librusty_v8 crate binaries for redox +[source] +git = "https://github.com/denoland/deno" +shallow_clone = true +[build] +template = "custom" +script = """ +cookbook_cargo_packages deno +""" diff --git a/recipes/wip/dev/framework/feather/recipe.toml b/recipes/wip/dev/framework/feather/recipe.toml new file mode 100644 index 000000000..9b1ad27ea --- /dev/null +++ b/recipes/wip/dev/framework/feather/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/BersisSe/feather-cli" +[build] +template = "cargo" diff --git a/recipes/wip/dev/framework/moonzoon/recipe.toml b/recipes/wip/dev/framework/moonzoon/recipe.toml new file mode 100644 index 000000000..e44c482c8 --- /dev/null +++ b/recipes/wip/dev/framework/moonzoon/recipe.toml @@ -0,0 +1,11 @@ +#TODO camino crate error, require the WebAssembly target on Rustup. +[source] +git = "https://github.com/MoonZoon/MoonZoon" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages mzoon +""" diff --git a/recipes/wip/dev/framework/sphere/recipe.toml b/recipes/wip/dev/framework/sphere/recipe.toml new file mode 100644 index 000000000..aee70f270 --- /dev/null +++ b/recipes/wip/dev/framework/sphere/recipe.toml @@ -0,0 +1,14 @@ +#TODO compilation error +[source] +git = "https://github.com/Nakadra/sphere-runtime" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo +mkdir -pv "${COOKBOOK_STAGE}/usr/share/sphere" +cp -rv "${COOKBOOK_SOURCE}/*.sphere" "${COOKBOOK_STAGE}/usr/share/sphere" +echo "entrypoint = "echo 'Hello, from my first Sphere!'"" > "${COOKBOOK_STAGE}/usr/share/sphere/hello.sphere" +""" diff --git a/recipes/wip/dev/game-engine/defold-engine/recipe.toml b/recipes/wip/dev/game-engine/defold-engine/recipe.toml new file mode 100644 index 000000000..13d89a562 --- /dev/null +++ b/recipes/wip/dev/game-engine/defold-engine/recipe.toml @@ -0,0 +1,22 @@ +#TODO missing script for building, see https://github.com/defold/defold/blob/dev/README_BUILD.md +#TODO build the editor, see https://github.com/defold/defold/blob/dev/editor/README_BUILD.md +# probably the SDKs can't run on Redox, avoid them +[source] +git = "https://github.com/defold/defold" +rev = "4e156b7cf37a380122aada30dacbf2b590ead76b" +[build] +template = "custom" +dependencies = [ + "libxi", + "libxext", + "mesa-glu", + "mesa", + "curl", + "freeglut", + "libuuid", + "openal", + "ncurses", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +""" diff --git a/recipes/wip/dev/game-engine/fyrox-template/recipe.toml b/recipes/wip/dev/game-engine/fyrox-template/recipe.toml new file mode 100644 index 000000000..76a3b2f15 --- /dev/null +++ b/recipes/wip/dev/game-engine/fyrox-template/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/FyroxEngine/Fyrox" +shallow_clone = true +[build] +template = "custom" +script = """ +cookbook_cargo_packages fyrox-template +""" diff --git a/recipes/wip/dev/game-engine/godot4/recipe.toml b/recipes/wip/dev/game-engine/godot4/recipe.toml new file mode 100644 index 000000000..0fb6802a2 --- /dev/null +++ b/recipes/wip/dev/game-engine/godot4/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for scons: https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_linuxbsd.html +#TODO discover minimum dependencies from scons log +[source] +tar = "https://github.com/godotengine/godot/releases/download/4.5.1-stable/godot-4.5.1-stable.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/dev/game-engine/redot4/recipe.toml b/recipes/wip/dev/game-engine/redot4/recipe.toml new file mode 100644 index 000000000..e8d8b95b0 --- /dev/null +++ b/recipes/wip/dev/game-engine/redot4/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for scons: https://docs.redotengine.org/en/stable/contributing/development/compiling/compiling_for_linuxbsd +#TODO discover minimum dependencies from scons log +[source] +tar = "https://github.com/Redot-Engine/redot-engine/releases/download/redot-4.3.1-stable/Redot-4.3.1-stable.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/dev/git-tools/auto-commit/recipe.toml b/recipes/wip/dev/git-tools/auto-commit/recipe.toml new file mode 100644 index 000000000..008262f53 --- /dev/null +++ b/recipes/wip/dev/git-tools/auto-commit/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/m1guelpf/auto-commit" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/git-tools/git-absorb/recipe.toml b/recipes/wip/dev/git-tools/git-absorb/recipe.toml new file mode 100644 index 000000000..698827f1e --- /dev/null +++ b/recipes/wip/dev/git-tools/git-absorb/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/tummychow/git-absorb" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/git-chain/recipe.toml b/recipes/wip/dev/git-tools/git-chain/recipe.toml new file mode 100644 index 000000000..4d6058053 --- /dev/null +++ b/recipes/wip/dev/git-tools/git-chain/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/dashed/git-chain" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/git-tools/git-cliff/recipe.toml b/recipes/wip/dev/git-tools/git-cliff/recipe.toml new file mode 100644 index 000000000..5e4506d25 --- /dev/null +++ b/recipes/wip/dev/git-tools/git-cliff/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after a patch on the ring crate) +[source] +git = "https://github.com/orhun/git-cliff" +[build] +template = "custom" +script = """ +cookbook_cargo_packages git-cliff +""" diff --git a/recipes/wip/dev/git-tools/git-grab/recipe.toml b/recipes/wip/dev/git-tools/git-grab/recipe.toml new file mode 100644 index 000000000..c3a6e00fe --- /dev/null +++ b/recipes/wip/dev/git-tools/git-grab/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/wezm/git-grab" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/git-graph/recipe.toml b/recipes/wip/dev/git-tools/git-graph/recipe.toml new file mode 100644 index 000000000..ef9aacff2 --- /dev/null +++ b/recipes/wip/dev/git-tools/git-graph/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/mlange-42/git-graph" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/git-ignore-generator/recipe.toml b/recipes/wip/dev/git-tools/git-ignore-generator/recipe.toml new file mode 100644 index 000000000..320e0d616 --- /dev/null +++ b/recipes/wip/dev/git-tools/git-ignore-generator/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after a cargo update and a patch on the ring crate) +[source] +git = "https://github.com/sondr3/git-ignore" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/git-interactive-rebase-tool/recipe.toml b/recipes/wip/dev/git-tools/git-interactive-rebase-tool/recipe.toml new file mode 100644 index 000000000..dae20f2f5 --- /dev/null +++ b/recipes/wip/dev/git-tools/git-interactive-rebase-tool/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/MitMaro/git-interactive-rebase-tool" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/git-lfs/recipe.toml b/recipes/wip/dev/git-tools/git-lfs/recipe.toml new file mode 100644 index 000000000..1816e464d --- /dev/null +++ b/recipes/wip/dev/git-tools/git-lfs/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for GNU Make, see https://github.com/git-lfs/git-lfs?tab=readme-ov-file#from-source +[source] +tar = "https://github.com/git-lfs/git-lfs/releases/download/v3.5.1/git-lfs-v3.5.1.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/dev/git-tools/git-repo-manager/recipe.toml b/recipes/wip/dev/git-tools/git-repo-manager/recipe.toml new file mode 100644 index 000000000..b7b975feb --- /dev/null +++ b/recipes/wip/dev/git-tools/git-repo-manager/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/hakoerber/git-repo-manager" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/git-tools/git-statuses/recipe.toml b/recipes/wip/dev/git-tools/git-statuses/recipe.toml new file mode 100644 index 000000000..778c3fccc --- /dev/null +++ b/recipes/wip/dev/git-tools/git-statuses/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bircni/git-statuses" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/git-subset/recipe.toml b/recipes/wip/dev/git-tools/git-subset/recipe.toml new file mode 100644 index 000000000..bc4f4862b --- /dev/null +++ b/recipes/wip/dev/git-tools/git-subset/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/jasonwhite/git-subset" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/git-tools/git-tool-rs/recipe.toml b/recipes/wip/dev/git-tools/git-tool-rs/recipe.toml new file mode 100644 index 000000000..24c04fe1c --- /dev/null +++ b/recipes/wip/dev/git-tools/git-tool-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +git = "https://github.com/SierraSoftworks/git-tool" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/git-tools-rs/recipe.toml b/recipes/wip/dev/git-tools/git-tools-rs/recipe.toml new file mode 100644 index 000000000..bc563046d --- /dev/null +++ b/recipes/wip/dev/git-tools/git-tools-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO users crate error +[source] +git = "https://github.com/cecton/git-tools" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/gitlogue/recipe.toml b/recipes/wip/dev/git-tools/gitlogue/recipe.toml new file mode 100644 index 000000000..995192a09 --- /dev/null +++ b/recipes/wip/dev/git-tools/gitlogue/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/unhappychoice/gitlogue" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/lazygh/recipe.toml b/recipes/wip/dev/git-tools/lazygh/recipe.toml new file mode 100644 index 000000000..ecc9e929c --- /dev/null +++ b/recipes/wip/dev/git-tools/lazygh/recipe.toml @@ -0,0 +1,5 @@ +#TODO x11rb and rustix crates error +[source] +git = "https://github.com/kmj-007/lazygh" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/lazygit/recipe.toml b/recipes/wip/dev/git-tools/lazygit/recipe.toml new file mode 100644 index 000000000..0969eefb1 --- /dev/null +++ b/recipes/wip/dev/git-tools/lazygit/recipe.toml @@ -0,0 +1,23 @@ +#TODO: Incomplete std/syscall porting, or vendor patches +[source] +git = "https://github.com/jesseduffield/lazygit" + +[build] +template = "custom" +dev-dependencies = [ + "host:go" +] +script = """ +export GOTOOLCHAIN=local +case "${TARGET}" in + x86_64-unknown-linux-gnu) export GOARCH=amd64 GOOS=linux;; + aarch64-unknown-linux-gnu) export GOARCH=arm64 GOOS=linux;; + i586-unknown-redox) export GOARCH=386 GOOS=redox;; + x86_64-unknown-redox) export GOARCH=amd64 GOOS=redox;; + aarch64-unknown-redox) export GOARCH=arm64 GOOS=redox;; + riscv64gc-unknown-redox) export GOARCH=riscv64 GOOS=redox;; +esac + +mkdir -p $COOKBOOK_STAGE/usr/bin +go build -C ${COOKBOOK_SOURCE} -o $COOKBOOK_STAGE/usr/bin/lazygit +""" diff --git a/recipes/wip/dev/git-tools/patchy/recipe.toml b/recipes/wip/dev/git-tools/patchy/recipe.toml new file mode 100644 index 000000000..34c524912 --- /dev/null +++ b/recipes/wip/dev/git-tools/patchy/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/nik-rev/patchy" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/riff/recipe.toml b/recipes/wip/dev/git-tools/riff/recipe.toml new file mode 100644 index 000000000..24d743ab4 --- /dev/null +++ b/recipes/wip/dev/git-tools/riff/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/walles/riff" +[build] +template = "cargo" diff --git a/recipes/wip/dev/git-tools/serie/recipe.toml b/recipes/wip/dev/git-tools/serie/recipe.toml new file mode 100644 index 000000000..df2889e71 --- /dev/null +++ b/recipes/wip/dev/git-tools/serie/recipe.toml @@ -0,0 +1,5 @@ +#TODO x11rb and rustix crates error +[source] +git = "https://github.com/lusingander/serie" +[build] +template = "cargo" diff --git a/recipes/wip/dev/graphics/bonzomatic/recipe.toml b/recipes/wip/dev/graphics/bonzomatic/recipe.toml new file mode 100644 index 000000000..d12b8a2d0 --- /dev/null +++ b/recipes/wip/dev/graphics/bonzomatic/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +#TODO missing dependencies +# build instructions - https://github.com/Gargaj/Bonzomatic#linux +[source] +git = "https://github.com/Gargaj/Bonzomatic" +[build] +template = "cmake" +dependencies = [ + "libx11", + "libalsa", + "mesa-glu", +] diff --git a/recipes/wip/dev/graphics/pilka/recipe.toml b/recipes/wip/dev/graphics/pilka/recipe.toml new file mode 100644 index 000000000..ce576d59c --- /dev/null +++ b/recipes/wip/dev/graphics/pilka/recipe.toml @@ -0,0 +1,5 @@ +#TODO winit crate error (after cargo update) +[source] +git = "https://github.com/pudnax/pilka" +[build] +template = "cargo" diff --git a/recipes/wip/dev/graphics/sh4der-jockey/recipe.toml b/recipes/wip/dev/graphics/sh4der-jockey/recipe.toml new file mode 100644 index 000000000..d3001c4c5 --- /dev/null +++ b/recipes/wip/dev/graphics/sh4der-jockey/recipe.toml @@ -0,0 +1,5 @@ +#TODO winit crate error +[source] +git = "https://github.com/slerpyyy/sh4der-jockey" +[build] +template = "cargo" diff --git a/recipes/wip/dev/hw/librepcb/recipe.toml b/recipes/wip/dev/hw/librepcb/recipe.toml new file mode 100644 index 000000000..8e7d82cfc --- /dev/null +++ b/recipes/wip/dev/hw/librepcb/recipe.toml @@ -0,0 +1,21 @@ +#TODO not compiled or tested +# build instructions: https://librepcb.org/docs/installation/build-from-sources/ +# commented out optional dependencies +[source] +git = "https://github.com/LibrePCB/LibrePCB" +rev = "1.3.0" +shallow_clone = true +[build] +template = "cmake" +cmakeflags = [ + "-DUSE_GLU=0", + "-DUSE_OPENCASCADE=0", +] +dependencies = [ + "qt6-base", + "qt6-imageformats", + "openssl3", + "zlib", + #"opencascade", + #"mesa-glu", +] diff --git a/recipes/wip/dev/ide/asm-lsp/recipe.toml b/recipes/wip/dev/ide/asm-lsp/recipe.toml new file mode 100644 index 000000000..843262e6b --- /dev/null +++ b/recipes/wip/dev/ide/asm-lsp/recipe.toml @@ -0,0 +1,11 @@ +#TODO linking error +[source] +git = "https://github.com/bergercookie/asm-lsp" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages asm-lsp +""" diff --git a/recipes/wip/dev/ide/astronvim/recipe.toml b/recipes/wip/dev/ide/astronvim/recipe.toml new file mode 100644 index 000000000..2bdafc579 --- /dev/null +++ b/recipes/wip/dev/ide/astronvim/recipe.toml @@ -0,0 +1,9 @@ +#TODO promote +[source] +git = "https://github.com/AstroNvim/AstroNvim" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/home/user/.config/nvim +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/home/user/.config/nvim +""" diff --git a/recipes/wip/dev/ide/rust-analyzer/recipe.toml b/recipes/wip/dev/ide/rust-analyzer/recipe.toml new file mode 100644 index 000000000..016bf088d --- /dev/null +++ b/recipes/wip/dev/ide/rust-analyzer/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rust-lang/rust-analyzer" +shallow_clone = true +[build] +template = "custom" +script = """ +cookbook_cargo_packages rust-analyzer +""" diff --git a/recipes/wip/dev/lang/artichoke/recipe.toml b/recipes/wip/dev/lang/artichoke/recipe.toml new file mode 100644 index 000000000..0bf2fc0c1 --- /dev/null +++ b/recipes/wip/dev/lang/artichoke/recipe.toml @@ -0,0 +1,5 @@ +#TODO iana-time-zone crate error +[source] +git = "https://github.com/artichoke/artichoke" +[build] +template = "cargo" diff --git a/recipes/wip/dev/lang/brimstone/recipe.toml b/recipes/wip/dev/lang/brimstone/recipe.toml new file mode 100644 index 000000000..4a1ab8da5 --- /dev/null +++ b/recipes/wip/dev/lang/brimstone/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Hans-Halverson/brimstone" +[build] +template = "cargo" diff --git a/recipes/wip/dev/lang/cjit/recipe.toml b/recipes/wip/dev/lang/cjit/recipe.toml new file mode 100644 index 000000000..7c3020f12 --- /dev/null +++ b/recipes/wip/dev/lang/cjit/recipe.toml @@ -0,0 +1,6 @@ +#TODO write a gnu make target for redox, see: https://github.com/dyne/cjit#build-from-source +[source] +git = "https://github.com/dyne/cjit" +rev = "9a4321e64ea1af10e9e3c63de45af80b36846cda" +[build] +template = "custom" diff --git a/recipes/wip/dev/lang/elixir/recipe.toml b/recipes/wip/dev/lang/elixir/recipe.toml new file mode 100644 index 000000000..33906690c --- /dev/null +++ b/recipes/wip/dev/lang/elixir/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://github.com/elixir-lang/elixir#compiling-from-source +[source] +git = "https://github.com/elixir-lang/elixir" +rev = "927b10df80ee1c1c7396e68efe00d06bc3e80420" +[build] +template = "custom" diff --git a/recipes/wip/dev/lang/elm/recipe.toml b/recipes/wip/dev/lang/elm/recipe.toml new file mode 100644 index 000000000..b379c2b65 --- /dev/null +++ b/recipes/wip/dev/lang/elm/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for building, lacking build instructions +[source] +git = "https://github.com/elm/compiler" +rev = "c9aefb6230f5e0bda03205ab0499f6e4af924495" +[build] +template = "custom" diff --git a/recipes/wip/dev/lang/erlang/recipe.toml b/recipes/wip/dev/lang/erlang/recipe.toml new file mode 100644 index 000000000..02c55a5df --- /dev/null +++ b/recipes/wip/dev/lang/erlang/recipe.toml @@ -0,0 +1,16 @@ +#TODO probably wrong script, see 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" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export ERL_TOP="${COOKBOOK_SOURCE}" +COOKBOOK_CONFIGURE_FLAGS+=( + --without-termcap + --enable-bootstrap-only +) +cookbook_configure +""" diff --git a/recipes/wip/dev/lang/gawk/recipe.toml b/recipes/wip/dev/lang/gawk/recipe.toml new file mode 100644 index 000000000..098055aea --- /dev/null +++ b/recipes/wip/dev/lang/gawk/recipe.toml @@ -0,0 +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" + +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + ac_cv_func_gethostbyname=no + ac_cv_func_connect=no +) +cookbook_configure +""" diff --git a/recipes/wip/dev/lang/ghc/recipe.toml b/recipes/wip/dev/lang/ghc/recipe.toml new file mode 100644 index 000000000..9ab877b51 --- /dev/null +++ b/recipes/wip/dev/lang/ghc/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for Hadrian, see 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" +[build] +template = "custom" diff --git a/recipes/wip/dev/lang/ghostscript/recipe.toml b/recipes/wip/dev/lang/ghostscript/recipe.toml new file mode 100644 index 000000000..feced6dbd --- /dev/null +++ b/recipes/wip/dev/lang/ghostscript/recipe.toml @@ -0,0 +1,6 @@ +#TODO error on the libtiff configure script +#TODO 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" +[build] +template = "configure" diff --git a/recipes/wip/dev/lang/go/recipe.toml b/recipes/wip/dev/lang/go/recipe.toml new file mode 100644 index 000000000..24f3afd65 --- /dev/null +++ b/recipes/wip/dev/lang/go/recipe.toml @@ -0,0 +1,53 @@ +#TODO compiling, not tested further +[source] +git = "https://github.com/willnode/go" +branch = "go-1.25-redox" +shallow_clone = true + +[build] +template = "custom" +script = """ +export PATH=$HOME/go/bin:$PATH + +export GOPATH=${COOKBOOK_BUILD}/gopath +if ! command -v go &> /dev/null; then + GO_TARBALL=go1.24.6.linux-$( [ "$(uname -m)" = "aarch64" ] && echo "arm64" || echo "amd64" ).tar.gz + GO_DOWNLOAD_URL="https://dl.google.com/go/${GO_TARBALL}" + echo "Installing Go..." + wget -q --show-progress "${GO_DOWNLOAD_URL}" + tar -C "$HOME" -xzf "${GO_TARBALL}" +fi + +# Go does not support out-of-tree builds :( +rsync -a --delete "${COOKBOOK_SOURCE}/" ./ + +case "${TARGET}" in + x86_64-unknown-linux-gnu) export GOARCH=amd64 GOOS=linux;; + aarch64-unknown-linux-gnu) export GOARCH=arm64 GOOS=linux;; + i586-unknown-redox) export GOARCH=386 GOOS=redox;; + x86_64-unknown-redox) export GOARCH=amd64 GOOS=redox;; + aarch64-unknown-redox) export GOARCH=arm64 GOOS=redox;; + riscv64gc-unknown-redox) export GOARCH=riscv64 GOOS=redox;; +esac + +export CGO_ENABLED=1 +echo "go1.25.0" > VERSION # to set -trimpath +(cd ./src && bash ./make.bash) + +mkdir -p "${COOKBOOK_STAGE}"/usr/bin \ + "${COOKBOOK_STAGE}"/usr/lib/golang/{bin,lib,misc,pkg/include,pkg/tool,src} + +if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then + rsync -a bin/* "${COOKBOOK_STAGE}"/usr/lib/golang/bin/ +else + rsync -a bin/${GOOS}_${GOARCH}/* "${COOKBOOK_STAGE}"/usr/lib/golang/bin/ +fi +rsync -a lib/* "${COOKBOOK_STAGE}"/usr/lib/golang/lib/ +rsync -a misc/* "${COOKBOOK_STAGE}"/usr/lib/golang/misc/ +rsync -a pkg/include/* "${COOKBOOK_STAGE}"/usr/lib/golang/pkg/include/ +rsync -a pkg/tool/${GOOS}_${GOARCH} "${COOKBOOK_STAGE}"/usr/lib/golang/pkg/tool/ +rsync -a src/* "${COOKBOOK_STAGE}"/usr/lib/golang/src/ +cat go.env > "${COOKBOOK_STAGE}"/usr/lib/golang/go.env +ln -s "../lib/golang/bin/go" "${COOKBOOK_STAGE}"/usr/bin/go +ln -s "../lib/golang/bin/gofmt" "${COOKBOOK_STAGE}"/usr/bin/gofmt +""" diff --git a/recipes/wip/dev/lang/goiaba/recipe.toml b/recipes/wip/dev/lang/goiaba/recipe.toml new file mode 100644 index 000000000..9bbecea18 --- /dev/null +++ b/recipes/wip/dev/lang/goiaba/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/raphamorim/goiaba" +[build] +template = "cargo" diff --git a/recipes/wip/dev/lang/java/openjdk11/recipe.toml b/recipes/wip/dev/lang/java/openjdk11/recipe.toml new file mode 100644 index 000000000..b24c06a02 --- /dev/null +++ b/recipes/wip/dev/lang/java/openjdk11/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/openjdk/jdk11u/blob/master/doc/building.md +[source] +git = "https://github.com/openjdk/jdk11u" +rev = "jdk-11.0.29-ga" +shallow_clone = true +script = "chmod a+x configure" +[build] +template = "configure" +configureflags = [ + "--enable-headless-only=yes", +] +dependencies = [ + "fontconfig", +] diff --git a/recipes/wip/dev/lang/java/openjdk17/recipe.toml b/recipes/wip/dev/lang/java/openjdk17/recipe.toml new file mode 100644 index 000000000..ef2d8f79a --- /dev/null +++ b/recipes/wip/dev/lang/java/openjdk17/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/openjdk/jdk17u/blob/master/doc/building.md +[source] +git = "https://github.com/openjdk/jdk17u" +rev = "jdk-17.0.17-ga" +shallow_clone = true +script = "chmod a+x configure" +[build] +template = "configure" +configureflags = [ + "--enable-headless-only=yes", +] +dependencies = [ + "fontconfig", +] diff --git a/recipes/wip/dev/lang/java/openjdk21/recipe.toml b/recipes/wip/dev/lang/java/openjdk21/recipe.toml new file mode 100644 index 000000000..d7256e3a2 --- /dev/null +++ b/recipes/wip/dev/lang/java/openjdk21/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/openjdk/jdk21u/blob/master/doc/building.md +[source] +git = "https://github.com/openjdk/jdk21u" +rev = "jdk-21.0.9-ga" +shallow_clone = true +script = "chmod a+x configure" +[build] +template = "configure" +configureflags = [ + "--enable-headless-only=yes", +] +dependencies = [ + "fontconfig", +] diff --git a/recipes/wip/dev/lang/java/openjdk8/recipe.toml b/recipes/wip/dev/lang/java/openjdk8/recipe.toml new file mode 100644 index 000000000..958e8a5f0 --- /dev/null +++ b/recipes/wip/dev/lang/java/openjdk8/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/openjdk/jdk8u/blob/master/doc/building.md +[source] +git = "https://github.com/openjdk/jdk8u" +rev = "jdk8u472-ga" +shallow_clone = true +script = "chmod a+x configure" +[build] +template = "configure" +configureflags = [ + "--enable-headless-only=yes", +] +dependencies = [ + "freetype2", +] diff --git a/recipes/wip/dev/lang/lacc/recipe.toml b/recipes/wip/dev/lang/lacc/recipe.toml new file mode 100644 index 000000000..445575efa --- /dev/null +++ b/recipes/wip/dev/lang/lacc/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/larmel/lacc" +rev = "30839843daaff9d87574b5854854c9ee4610cdcd" +[build] +template = "configure" diff --git a/recipes/wip/dev/lang/llvm-mingw/recipe.toml b/recipes/wip/dev/lang/llvm-mingw/recipe.toml new file mode 100644 index 000000000..93bef5ac7 --- /dev/null +++ b/recipes/wip/dev/lang/llvm-mingw/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script, read the llvm18 recipe for reference +# build instructions: https://github.com/mstorsjo/llvm-mingw#building-from-source +[source] +git = "https://github.com/mstorsjo/llvm-mingw" +rev = "40ccfd163eee35468c0cc5f356649d13029aec8b" +[build] +template = "custom" +dependencies = [ + "zlib", +] diff --git a/recipes/wip/dev/lang/mono/recipe.toml b/recipes/wip/dev/lang/mono/recipe.toml new file mode 100644 index 000000000..9aefc5e6a --- /dev/null +++ b/recipes/wip/dev/lang/mono/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize the redox target +[source] +tar = "https://dl.winehq.org/mono/sources/mono/mono-6.14.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/dev/lang/nodejs-21/recipe.toml b/recipes/wip/dev/lang/nodejs-21/recipe.toml new file mode 100644 index 000000000..e7cbeaff6 --- /dev/null +++ b/recipes/wip/dev/lang/nodejs-21/recipe.toml @@ -0,0 +1,74 @@ +#TODO page fault +[source] +tar = "https://nodejs.org/dist/v21.7.3/node-v21.7.3.tar.xz" +blake3 = "95a56db4f9729b2f8384ab58ccb2ec0c41da05991f7400ef97bd76748d77870b" +patches = ["redox.patch"] + +[build] +template = "custom" +dependencies = [ + "libbrotli", + "c-ares", + "libuv", + "ngtcp2", + "nghttp2", + "nghttp3", + "openssl3", + "sqlite3", + "zlib", + "zstd", +] + +dev-dependencies = [ + "host:libbrotli", + "host:c-ares", + "host:libuv", + "host:ngtcp2", + "host:nghttp2", + "host:nghttp3", + "host:openssl3", + "host:sqlite3", + "host:zlib", + "host:zstd", +] + +script = """ +DYNAMIC_INIT +export PYTHONDONTWRITEBYTECODE=1 COOKBOOK_NOSTRIP=true +export CC_host="$CC_WRAPPER gcc" CXX_host="$CC_WRAPPER g++" + +rsync -av "${COOKBOOK_SOURCE}/" ./ + +case "${TARGET}" in + x86_64-unknown-linux-gnu) export NODE_CPU=x64 NODE_OS=linux;; + aarch64-unknown-linux-gnu) export NODE_CPU=arm64 NODE_OS=linux;; + i586-unknown-redox) export NODE_CPU=ia32 NODE_OS=redox;; + x86_64-unknown-redox) export NODE_CPU=x64 NODE_OS=redox;; + aarch64-unknown-redox) export NODE_CPU=arm64 NODE_OS=redox;; +esac + +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/usr + --dest-cpu=${NODE_CPU} + --dest-os=${NODE_OS} + --shared-cares + --shared-libuv + --shared-ngtcp2 + --shared-nghttp2 + --shared-nghttp3 + --shared-openssl + --shared-zlib + --disable-shared-readonly-heap + --without-node-snapshot + --without-node-code-cache + --v8-lite-mode +# TODO: Find a way to separate host and target flags instead? +# --shared-zlib-includes="${COOKBOOK_TOOLCHAIN}/include" + --shared-openssl-includes="${COOKBOOK_SYSROOT}/include" + --shared-zlib-libpath="${COOKBOOK_TOOLCHAIN}/lib" + --shared-openssl-libpath="${COOKBOOK_SYSROOT}/lib" + --cross-compiling +) +COOKBOOK_CONFIGURE="./configure" +cookbook_configure +""" diff --git a/recipes/wip/dev/lang/nodejs-21/redox.patch b/recipes/wip/dev/lang/nodejs-21/redox.patch new file mode 100644 index 000000000..82f99e0ae --- /dev/null +++ b/recipes/wip/dev/lang/nodejs-21/redox.patch @@ -0,0 +1,594 @@ +diff -ruwN source/configure source-new/configure +--- source/configure 2024-04-10 19:46:11.000000000 +0700 ++++ source-new/configure 2025-11-30 18:13:57.842696765 +0700 +@@ -4,6 +4,7 @@ + # Note that the mix of single and double quotes is intentional, + # as is the fact that the ] goes on a new line. + _=[ 'exec' '/bin/sh' '-c' ''' ++command -v python3.13 >/dev/null && exec python3.13 "$0" "$@" + command -v python3.12 >/dev/null && exec python3.12 "$0" "$@" + command -v python3.11 >/dev/null && exec python3.11 "$0" "$@" + command -v python3.10 >/dev/null && exec python3.10 "$0" "$@" +@@ -24,7 +25,7 @@ + from distutils.spawn import find_executable as which + + print('Node.js configure: Found Python {}.{}.{}...'.format(*sys.version_info)) +-acceptable_pythons = ((3, 12), (3, 11), (3, 10), (3, 9), (3, 8), (3, 7), (3, 6)) ++acceptable_pythons = ((3, 13), (3, 12), (3, 11), (3, 10), (3, 9), (3, 8), (3, 7), (3, 6)) + if sys.version_info[:2] in acceptable_pythons: + import configure + else: +diff -ruwN source/configure.py source-new/configure.py +--- source/configure.py 2024-04-10 19:46:11.000000000 +0700 ++++ source-new/configure.py 2025-10-10 13:46:04.244040340 +0700 +@@ -46,7 +46,7 @@ + parser = argparse.ArgumentParser() + + valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux', +- 'android', 'aix', 'cloudabi', 'os400', 'ios') ++ 'android', 'aix', 'cloudabi', 'os400', 'ios', 'redox') + valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el', 'ppc', + 'ppc64', 'x64', 'x86', 'x86_64', 's390x', 'riscv64', 'loong64') + valid_arm_float_abi = ('soft', 'softfp', 'hard') +diff -ruwN source/deps/v8/bazel/config/BUILD.bazel source-new/deps/v8/bazel/config/BUILD.bazel +--- source/deps/v8/bazel/config/BUILD.bazel 2024-04-10 19:46:12.000000000 +0700 ++++ source-new/deps/v8/bazel/config/BUILD.bazel 2025-10-10 15:52:40.317126983 +0700 +@@ -144,6 +144,11 @@ + ) + + config_setting( ++ name = "is_redox", ++ constraint_values = ["@platforms//os:redox"], ++) ++ ++config_setting( + name = "is_linux", + constraint_values = ["@platforms//os:linux"], + ) +@@ -204,6 +209,7 @@ + selects.config_setting_group( + name = "is_non_android_posix", + match_any = [ ++ ":is_redox", + ":is_linux", + ":is_macos", + ], +diff -ruwN source/deps/v8/BUILD.bazel source-new/deps/v8/BUILD.bazel +--- source/deps/v8/BUILD.bazel 2024-04-10 19:46:12.000000000 +0700 ++++ source-new/deps/v8/BUILD.bazel 2025-10-10 16:05:33.775461039 +0700 +@@ -758,6 +758,11 @@ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-darwin.cc", + ], ++ "@v8//bazel/config:is_redox": [ ++ "src/base/debug/stack_trace_posix.cc", ++ "src/base/platform/platform-redox.cc", ++ "src/base/platform/platform-redox.h", ++ ], + "@v8//bazel/config:is_windows": [ + "src/base/debug/stack_trace_win.cc", + "src/base/platform/platform-win32.cc", +diff -ruwN source/deps/v8/BUILD.gn source-new/deps/v8/BUILD.gn +--- source/deps/v8/BUILD.gn 2024-04-10 19:46:12.000000000 +0700 ++++ source-new/deps/v8/BUILD.gn 2025-10-10 21:27:40.939874152 +0700 +@@ -5538,8 +5538,9 @@ + if (v8_enable_webassembly) { + # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both + # based on Darwin and thus POSIX-compliant to a similar degree. +- if (is_linux || is_chromeos || is_mac || is_ios || ++ if (is_linux || is_redox || is_chromeos || is_mac || is_ios || + target_os == "freebsd") { ++ assert(false, "gatchs") + sources += [ + "src/trap-handler/handler-inside-posix.cc", + "src/trap-handler/handler-outside-posix.cc", +@@ -5590,8 +5591,8 @@ + if (v8_enable_webassembly) { + # Trap handling is enabled on arm64 Mac and Linux and in simulators on + # x64 on Linux, Mac, and Windows. +- if ((current_cpu == "arm64" && (is_linux || is_chromeos || is_apple)) || +- (current_cpu == "x64" && (is_linux || is_chromeos || is_mac))) { ++ if ((current_cpu == "arm64" && (is_linux || is_redox || is_chromeos || is_apple)) || ++ (current_cpu == "x64" && (is_linux || is_redox || is_chromeos || is_mac))) { + sources += [ + "src/trap-handler/handler-inside-posix.cc", + "src/trap-handler/handler-outside-posix.cc", +@@ -6174,6 +6175,11 @@ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-darwin.cc", + ] ++ } else if (is_redox) { ++ sources += [ ++ "src/base/debug/stack_trace_posix.cc", ++ "src/base/platform/platform-redox.cc", ++ ] + } else if (is_ios) { + sources += [ + "src/base/debug/stack_trace_posix.cc", +diff -ruwN source/deps/v8/include/v8config.h source-new/deps/v8/include/v8config.h +--- source/deps/v8/include/v8config.h 2024-04-10 19:46:12.000000000 +0700 ++++ source-new/deps/v8/include/v8config.h 2025-10-10 22:03:04.057821844 +0700 +@@ -159,6 +159,11 @@ + # define V8_OS_QNX 1 + # define V8_OS_STRING "qnx" + ++#elif defined(__redox__) ++# define V8_OS_POSIX 1 ++# define V8_OS_REDOX 1 ++# define V8_OS_STRING "redox" ++ + #elif defined(_WIN32) + # define V8_OS_WIN 1 + # define V8_OS_STRING "windows" +@@ -185,6 +190,7 @@ + && !defined(V8_TARGET_OS_IOS) \ + && !defined(V8_TARGET_OS_LINUX) \ + && !defined(V8_TARGET_OS_MACOS) \ ++ && !defined(V8_TARGET_OS_REDOX) \ + && !defined(V8_TARGET_OS_WIN) \ + && !defined(V8_TARGET_OS_CHROMEOS) + # error No known target OS defined. +@@ -197,6 +203,7 @@ + || defined(V8_TARGET_OS_IOS) \ + || defined(V8_TARGET_OS_LINUX) \ + || defined(V8_TARGET_OS_MACOS) \ ++ || defined(V8_TARGET_OS_REDOX) \ + || defined(V8_TARGET_OS_WIN) \ + || defined(V8_TARGET_OS_CHROMEOS) + # error A target OS is defined but V8_HAVE_TARGET_OS is unset. +@@ -223,6 +230,10 @@ + # define V8_TARGET_OS_MACOS + #endif + ++#ifdef V8_OS_REDOX ++# define V8_TARGET_OS_REDOX ++#endif ++ + #ifdef V8_OS_WIN + # define V8_TARGET_OS_WIN + #endif +@@ -239,6 +250,8 @@ + # define V8_TARGET_OS_STRING "linux" + #elif defined(V8_TARGET_OS_MACOS) + # define V8_TARGET_OS_STRING "macos" ++#elif defined(V8_TARGET_OS_REDOX) ++# define V8_TARGET_OS_STRING "redox" + #elif defined(V8_TARGET_OS_WINDOWS) + # define V8_TARGET_OS_STRING "windows" + #else +diff -ruwN source/deps/v8/src/base/platform/memory.h source-new/deps/v8/src/base/platform/memory.h +--- source/deps/v8/src/base/platform/memory.h 2024-04-10 19:46:12.000000000 +0700 ++++ source-new/deps/v8/src/base/platform/memory.h 2025-10-10 13:46:04.297422792 +0700 +@@ -23,9 +23,9 @@ + #include + #endif // !V8_OS_DARWIN + +-#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN ++#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_REDOX) || V8_OS_WIN + #define V8_HAS_MALLOC_USABLE_SIZE 1 +-#endif // (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN ++#endif // (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_REDOX) || V8_OS_WIN + + namespace v8::base { + +diff -ruwN source/deps/v8/src/base/platform/platform-posix.cc source-new/deps/v8/src/base/platform/platform-posix.cc +--- source/deps/v8/src/base/platform/platform-posix.cc 2024-04-10 19:46:12.000000000 +0700 ++++ source-new/deps/v8/src/base/platform/platform-posix.cc 2025-10-10 13:46:04.416447015 +0700 +@@ -28,6 +28,10 @@ + #include // for sysctl + #endif + ++#if defined(__redox__) ++ #define PTHREAD_STACK_MIN 1024 * 1024 ++#endif ++ + #if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT) + #define LOG_TAG "v8" + #include +@@ -69,7 +73,7 @@ + #include + #endif + +-#if !defined(_AIX) && !defined(V8_OS_FUCHSIA) ++#if !defined(_AIX) && !defined(V8_OS_FUCHSIA) && !defined(V8_OS_REDOX) + #include + #endif + +@@ -135,7 +139,7 @@ + int flags = MAP_ANONYMOUS; + flags |= (page_type == PageType::kShared) ? MAP_SHARED : MAP_PRIVATE; + if (access == OS::MemoryPermission::kNoAccess) { +-#if !V8_OS_AIX && !V8_OS_FREEBSD && !V8_OS_QNX ++#if !V8_OS_AIX && !V8_OS_FREEBSD && !V8_OS_QNX && !V8_OS_REDOX + flags |= MAP_NORESERVE; + #endif // !V8_OS_AIX && !V8_OS_FREEBSD && !V8_OS_QNX + #if V8_OS_QNX +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 +@@ -0,0 +1,63 @@ ++// Copyright 2014 the V8 project authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++// Platform specific code for Redox goes here. For the POSIX comaptible parts ++// the implementation is in platform-posix.cc. ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++#undef MAP_TYPE ++ ++#include "src/base/macros.h" ++#include "src/base/platform/platform-posix-time.h" ++#include "src/base/platform/platform-posix.h" ++#include "src/base/platform/platform.h" ++ ++namespace v8 { ++namespace base { ++ ++ ++int64_t get_gmt_offset(const tm& localtm) { ++ // replacement for tm->tm_gmtoff field in glibc ++ // returns seconds east of UTC, taking DST into account ++ struct timeval tv; ++ struct timezone tz; ++ int ret_code = gettimeofday(&tv, &tz); ++ // 0 = success, -1 = failure ++ DCHECK_NE(ret_code, -1); ++ if (ret_code == -1) { ++ return 0; ++ } ++ return (-tz.tz_minuteswest * 60) + (localtm.tm_isdst > 0 ? 3600 : 0); ++} ++ ++TimezoneCache* OS::CreateTimezoneCache() { ++ return new PosixDefaultTimezoneCache(); ++} ++ ++static unsigned StringToLong(char* buffer) { ++ return static_cast(strtol(buffer, nullptr, 16)); ++} ++ ++std::vector OS::GetSharedLibraryAddresses() { ++ UNREACHABLE(); ++} ++ ++void OS::SignalCodeMovingGC() {} ++ ++void OS::AdjustSchedulingParams() {} ++ ++std::vector OS::GetFreeMemoryRangesWithin( ++ OS::Address boundary_start, OS::Address boundary_end, size_t minimum_size, ++ size_t alignment) { ++ return {}; ++} ++ ++} // namespace base ++} // namespace v8 +diff -ruwN source/deps/v8/src/libsampler/sampler.cc source-new/deps/v8/src/libsampler/sampler.cc +--- source/deps/v8/src/libsampler/sampler.cc 2024-04-10 19:46:13.000000000 +0700 ++++ source-new/deps/v8/src/libsampler/sampler.cc 2025-10-10 13:46:04.417193700 +0700 +@@ -16,11 +16,11 @@ + #include + #include + +-#if !V8_OS_QNX && !V8_OS_AIX ++#if !V8_OS_QNX && !V8_OS_AIX && !V8_OS_REDOX + #include + #endif + +-#if V8_OS_AIX || V8_TARGET_ARCH_S390X ++#if V8_OS_AIX || V8_OS_REDOX || V8_TARGET_ARCH_S390X + + #include "src/base/platform/time.h" + +diff -ruwN source/deps/v8/src/trap-handler/handler-inside-posix.cc source-new/deps/v8/src/trap-handler/handler-inside-posix.cc +--- source/deps/v8/src/trap-handler/handler-inside-posix.cc 2024-04-10 19:46:13.000000000 +0700 ++++ source-new/deps/v8/src/trap-handler/handler-inside-posix.cc 2025-10-11 12:32:56.074858844 +0700 +@@ -23,6 +23,7 @@ + // context. Some additional code is used both inside and outside the signal + // handler. This code can be found in handler-shared.cc. + ++#ifndef __redox__ + #include "src/trap-handler/handler-inside-posix.h" + + #include +@@ -102,7 +103,6 @@ + asm("v8_simulator_probe_memory_continuation"); + #endif + #endif // V8_TRAP_HANDLER_VIA_SIMULATOR +- + bool TryHandleSignal(int signum, siginfo_t* info, void* context) { + // Ensure the faulting thread was actually running Wasm code. This should be + // the first check in the trap handler to guarantee that the +@@ -197,3 +197,5 @@ + } // namespace trap_handler + } // namespace internal + } // namespace v8 ++ ++#endif +diff -ruwN source/deps/v8/src/trap-handler/handler-inside-posix.h source-new/deps/v8/src/trap-handler/handler-inside-posix.h +--- source/deps/v8/src/trap-handler/handler-inside-posix.h 2024-04-10 19:46:13.000000000 +0700 ++++ source-new/deps/v8/src/trap-handler/handler-inside-posix.h 2025-10-10 21:44:55.221873295 +0700 +@@ -4,7 +4,7 @@ + + #ifndef V8_TRAP_HANDLER_HANDLER_INSIDE_POSIX_H_ + #define V8_TRAP_HANDLER_HANDLER_INSIDE_POSIX_H_ +- ++#ifndef __redox__ + #include + + #include "include/v8config.h" +@@ -28,5 +28,5 @@ + } // namespace trap_handler + } // namespace internal + } // namespace v8 +- ++#endif + #endif // V8_TRAP_HANDLER_HANDLER_INSIDE_POSIX_H_ +diff -ruwN source/deps/v8/src/wasm/std-object-sizes.h source-new/deps/v8/src/wasm/std-object-sizes.h +--- source/deps/v8/src/wasm/std-object-sizes.h 2024-04-10 19:46:13.000000000 +0700 ++++ source-new/deps/v8/src/wasm/std-object-sizes.h 2025-10-10 13:46:04.591737114 +0700 +@@ -54,24 +54,7 @@ + return raw * 4 / 3; + } + +-// To make it less likely for size estimation functions to become outdated +-// when the classes they're responsible for change, we insert static asserts +-// about the respective class's size into them to at least catch some possible +-// future modifications. Since object sizes are toolchain specific, we define +-// restrictions here under which we enable these checks. +-// When one of these checks fails, that probably means you've added fields to +-// a class guarded by it. Update the respective EstimateCurrentMemoryConsumption +-// function accordingly, and then update the check's expected size. +-#if V8_TARGET_ARCH_X64 && defined(__clang__) && V8_TARGET_OS_LINUX && \ +- !V8_USE_ADDRESS_SANITIZER && !V8_USE_MEMORY_SANITIZER && defined(DEBUG) && \ +- V8_COMPRESS_POINTERS && !defined(V8_GC_MOLE) && defined(_LIBCPP_VERSION) +-#define UPDATE_WHEN_CLASS_CHANGES(classname, size) \ +- static_assert(sizeof(classname) == size, \ +- "Update {EstimateCurrentMemoryConsumption} when adding " \ +- "fields to " #classname) +-#else + #define UPDATE_WHEN_CLASS_CHANGES(classname, size) (void)0 +-#endif + + } // namespace v8::internal::wasm + +diff -ruwN source/src/debug_utils.cc source-new/src/debug_utils.cc +--- source/src/debug_utils.cc 2024-04-10 19:46:14.000000000 +0700 ++++ source-new/src/debug_utils.cc 2025-10-10 13:46:04.755669055 +0700 +@@ -14,7 +14,7 @@ + + #if defined(__linux__) && !defined(__GLIBC__) || \ + defined(__UCLIBC__) || \ +- defined(_AIX) ++ defined(_AIX) || defined(__redox__) + #define HAVE_EXECINFO_H 0 + #else + #define HAVE_EXECINFO_H 1 +diff -ruwN source/src/node_credentials.cc source-new/src/node_credentials.cc +--- source/src/node_credentials.cc 2024-04-10 19:46:14.000000000 +0700 ++++ source-new/src/node_credentials.cc 2025-10-10 13:46:04.816900208 +0700 +@@ -182,7 +182,7 @@ + + static uid_t uid_by_name(Isolate* isolate, Local value) { + if (value->IsUint32()) { +- static_assert(std::is_same::value); ++ // static_assert(std::is_same::value); + return value.As()->Value(); + } else { + Utf8Value name(isolate, value); +@@ -192,7 +192,7 @@ + + static gid_t gid_by_name(Isolate* isolate, Local value) { + if (value->IsUint32()) { +- static_assert(std::is_same::value); ++ // static_assert(std::is_same::value); + return value.As()->Value(); + } else { + Utf8Value name(isolate, value); +diff -ruwN source/src/node_dotenv.cc source-new/src/node_dotenv.cc +--- source/src/node_dotenv.cc 2024-04-10 19:46:14.000000000 +0700 ++++ source-new/src/node_dotenv.cc 2025-11-30 23:39:21.486092041 +0700 +@@ -16,10 +16,14 @@ + * The inspiration for this implementation comes from the original dotenv code, + * available at https://github.com/motdotla/dotenv + */ ++ ++// redox crash on compiling this regex ++#if !defined(__redox__) + const std::regex LINE( + "\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^']" + ")*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\r\n]+)?\\s*(?" + ":#.*)?"); // NOLINT(whitespace/line_length) ++#endif + + std::vector Dotenv::GetPathFromArgs( + const std::vector& args) { +@@ -102,6 +106,7 @@ + } + + void Dotenv::ParseContent(const std::string_view content) { ++#if !defined(__redox__) + std::string lines = std::string(content); + lines = std::regex_replace(lines, std::regex("\r\n?"), "\n"); + +@@ -131,6 +136,7 @@ + store_.insert_or_assign(std::string(key), value); + lines = match.suffix(); + } ++#endif + } + + Dotenv::ParseResult Dotenv::ParsePath(const std::string_view path) { +diff -ruwN source/src/node_report.cc source-new/src/node_report.cc +--- source/src/node_report.cc 2024-04-10 19:46:14.000000000 +0700 ++++ source-new/src/node_report.cc 2025-10-10 13:46:05.190512964 +0700 +@@ -524,7 +524,7 @@ + while (line != -1) { + l = ss.substr(0, line); + l.erase(l.begin(), std::find_if(l.begin(), l.end(), [](int ch) { +- return !std::iswspace(ch); ++ return !std::isspace(ch); + })); + writer->json_element(l); + ss = ss.substr(line + 1); +diff -ruwN source/tools/gyp/pylib/gyp/common.py source-new/tools/gyp/pylib/gyp/common.py +--- source/tools/gyp/pylib/gyp/common.py 2024-04-10 19:46:15.000000000 +0700 ++++ source-new/tools/gyp/pylib/gyp/common.py 2025-10-10 21:36:23.972976264 +0700 +@@ -445,6 +445,8 @@ + return "netbsd" + if sys.platform.startswith("aix"): + return "aix" ++ if sys.platform.startswith("redox"): ++ return "redox" + if sys.platform.startswith(("os390", "zos")): + return "zos" + if sys.platform == "os400": +diff -ruwN source/tools/gyp/pylib/gyp/generator/make.py source-new/tools/gyp/pylib/gyp/generator/make.py +--- source/tools/gyp/pylib/gyp/generator/make.py 2024-04-10 19:46:15.000000000 +0700 ++++ source-new/tools/gyp/pylib/gyp/generator/make.py 2025-10-10 14:27:51.496602771 +0700 +@@ -1868,7 +1868,7 @@ + self.flavor not in ("mac", "openbsd", "netbsd", "win") + and not self.is_standalone_static_library + ): +- if self.flavor in ("linux", "android"): ++ if self.flavor in ("linux", "android", "redox"): + self.WriteMakeRule( + [self.output_binary], + link_deps, +@@ -1883,7 +1883,7 @@ + postbuilds=postbuilds, + ) + else: +- if self.flavor in ("linux", "android"): ++ if self.flavor in ("linux", "android", "redox"): + self.WriteMakeRule( + [self.output_binary], + link_deps, +diff -ruwN source/tools/v8_gypfiles/d8.gyp source-new/tools/v8_gypfiles/d8.gyp +--- source/tools/v8_gypfiles/d8.gyp 2024-04-10 19:46:15.000000000 +0700 ++++ source-new/tools/v8_gypfiles/d8.gyp 2025-10-10 21:34:47.141291162 +0700 +@@ -47,7 +47,7 @@ + }], + ['(OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="netbsd" \ + or OS=="openbsd" or OS=="solaris" or OS=="android" \ +- or OS=="qnx" or OS=="aix" or OS=="os400")', { ++ or OS=="qnx" or OS=="aix" or OS=="redox" or OS=="os400")', { + 'sources': [ '<(V8_ROOT)/src/d8/d8-posix.cc', ] + }], + [ 'OS=="win"', { +diff -ruwN source/tools/v8_gypfiles/toolchain.gypi source-new/tools/v8_gypfiles/toolchain.gypi +--- source/tools/v8_gypfiles/toolchain.gypi 2024-04-10 19:46:15.000000000 +0700 ++++ source-new/tools/v8_gypfiles/toolchain.gypi 2025-10-10 21:57:05.129575573 +0700 +@@ -575,6 +575,12 @@ + 'V8_TARGET_OS_MACOS', + ] + }], ++ ['OS=="redox"', { ++ 'defines': [ ++ 'V8_HAVE_TARGET_OS', ++ 'V8_TARGET_OS_REDOX', ++ ] ++ }], + ['OS=="win"', { + 'defines': [ + 'V8_HAVE_TARGET_OS', +@@ -661,7 +667,7 @@ + ], + }], + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ +- or OS=="netbsd" or OS=="qnx" or OS=="aix" or OS=="os400"', { ++ or OS=="netbsd" or OS=="qnx" or OS=="aix" or OS=="redox" or OS=="os400"', { + 'conditions': [ + [ 'v8_no_strict_aliasing==1', { + 'cflags': [ '-fno-strict-aliasing' ], +diff -ruwN source/tools/v8_gypfiles/v8.gyp source-new/tools/v8_gypfiles/v8.gyp +--- source/tools/v8_gypfiles/v8.gyp 2024-04-10 19:46:15.000000000 +0700 ++++ source-new/tools/v8_gypfiles/v8.gyp 2025-10-11 12:14:17.137386469 +0700 +@@ -606,7 +606,7 @@ + }], + ['v8_enable_webassembly==1', { + 'conditions': [ +- ['OS=="linux" or OS=="mac" or OS=="ios" or OS=="freebsd"', { ++ ['OS=="linux" or OS=="redox" or OS=="mac" or OS=="ios" or OS=="freebsd"', { + 'sources': [ + '<(V8_ROOT)/src/trap-handler/handler-inside-posix.h', + ], +@@ -637,7 +637,7 @@ + }], + ['v8_enable_webassembly==1', { + 'conditions': [ +- ['((_toolset=="host" and host_arch=="arm64" or _toolset=="target" and target_arch=="arm64") and (OS=="linux" or OS=="mac")) or ((_toolset=="host" and host_arch=="x64" or _toolset=="target" and target_arch=="x64") and (OS=="linux" or OS=="mac"))', { ++ ['((_toolset=="host" and host_arch=="arm64" or _toolset=="target" and target_arch=="arm64") and (OS=="linux" or OS=="mac")) or ((_toolset=="host" and host_arch=="x64" or _toolset=="target" and target_arch=="x64") and (OS=="linux" or OS=="redox" or OS=="mac"))', { + 'sources': [ + '<(V8_ROOT)/src/trap-handler/handler-inside-posix.h', + ], +@@ -941,7 +941,7 @@ + }], + ['v8_enable_webassembly==1', { + 'conditions': [ +- ['OS=="linux" or OS=="mac" or OS=="ios" or OS=="freebsd"', { ++ ['OS=="linux" or OS=="redox" or OS=="mac" or OS=="ios" or OS=="freebsd"', { + 'sources': [ + '<(V8_ROOT)/src/trap-handler/handler-inside-posix.cc', + '<(V8_ROOT)/src/trap-handler/handler-outside-posix.cc', +@@ -969,7 +969,7 @@ + 'conditions': [ + ['v8_enable_webassembly==1', { + 'conditions': [ +- ['((_toolset=="host" and host_arch=="arm64" or _toolset=="target" and target_arch=="arm64") and (OS=="linux" or OS=="mac" or OS=="ios")) or ((_toolset=="host" and host_arch=="x64" or _toolset=="target" and target_arch=="x64") and (OS=="linux" or OS=="mac"))', { ++ ['((_toolset=="host" and host_arch=="arm64" or _toolset=="target" and target_arch=="arm64") and (OS=="linux" or OS=="redox" or OS=="mac" or OS=="ios")) or ((_toolset=="host" and host_arch=="x64" or _toolset=="target" and target_arch=="x64") and (OS=="linux" or OS=="redox" or OS=="mac"))', { + 'sources': [ + '<(V8_ROOT)/src/trap-handler/handler-inside-posix.cc', + '<(V8_ROOT)/src/trap-handler/handler-outside-posix.cc', +@@ -981,7 +981,7 @@ + '<(V8_ROOT)/src/trap-handler/handler-outside-win.cc', + ], + }], +- ['(_toolset=="host" and host_arch=="x64" or _toolset=="target" and target_arch=="x64") and (OS=="linux" or OS=="mac" or OS=="win")', { ++ ['(_toolset=="host" and host_arch=="x64" or _toolset=="target" and target_arch=="x64") and (OS=="linux" or OS=="redox" or OS=="mac" or OS=="win")', { + 'sources': [ + '<(V8_ROOT)/src/trap-handler/handler-outside-simulator.cc', + ], +@@ -1323,6 +1323,35 @@ + # end of conditions from 'BUILD.gn' + + # Node.js validated ++ ['OS=="redox"', { ++ 'link_settings': { ++ 'target_conditions': [ ++ ['_toolset=="host"', { ++ 'libraries': [ ++ '-ldl' ++ ], ++ }], ++ ], ++ }, ++ 'sources': [ ++ '<(V8_ROOT)/src/base/platform/platform-posix.cc', ++ '<(V8_ROOT)/src/base/platform/platform-posix.h', ++ '<(V8_ROOT)/src/base/platform/platform-posix-time.cc', ++ '<(V8_ROOT)/src/base/platform/platform-posix-time.h', ++ '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', ++ ], ++ 'target_conditions': [ ++ ['_toolset=="host"', { ++ 'sources': [ ++ '<(V8_ROOT)/src/base/platform/platform-linux.cc', ++ ], ++ }, { ++ 'sources': [ ++ '<(V8_ROOT)/src/base/platform/platform-redox.cc', ++ ], ++ }], ++ ], ++ }], + ['OS=="solaris"', { + 'link_settings': { + 'libraries': [ diff --git a/recipes/wip/dev/lang/nodejs-24/01_redox.patch b/recipes/wip/dev/lang/nodejs-24/01_redox.patch new file mode 100644 index 000000000..f80a89936 --- /dev/null +++ b/recipes/wip/dev/lang/nodejs-24/01_redox.patch @@ -0,0 +1,12 @@ +diff -ruwN source/configure.py source-new/configure.py +--- source/configure.py 2025-07-31 15:37:54.000000000 +0700 ++++ source-new/configure.py 2025-08-03 00:37:51.836604059 +0700 +@@ -44,7 +44,7 @@ + # parse our options + parser = argparse.ArgumentParser() + +-valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux', ++valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux', 'redox', + 'android', 'aix', 'cloudabi', 'os400', 'ios', 'openharmony') + valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el', + 'ppc64', 'x64', 'x86', 'x86_64', 's390x', 'riscv64', 'loong64') diff --git a/recipes/wip/dev/lang/nodejs-24/recipe.toml b/recipes/wip/dev/lang/nodejs-24/recipe.toml new file mode 100644 index 000000000..cfd29f13d --- /dev/null +++ b/recipes/wip/dev/lang/nodejs-24/recipe.toml @@ -0,0 +1,63 @@ +#TODO requires stdc++20 +[source] +tar = "https://nodejs.org/dist/v24.5.0/node-v24.9.0.tar.xz" +blake3 = "c710713c9144dc2dfadaef1d180b295d85edd9945513017fc700af68eb08a251" +patches = ["01_redox.patch"] + +[build] +template = "custom" +dependencies = [ +# "ada", + "libbrotli", + "c-ares", + "libuv", + "ngtcp2", + "nghttp2", +# "http-parser", + "nghttp3", + "openssl1", + "simdjson", + "simdutf", + "sqlite3", +# "uvwasi", + "zlib", + "zstd", +] +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +case "${TARGET}" in + x86-unknown-redox) + export NODE_CPU=x32 + ;; + x86_64-unknown-redox) + export NODE_CPU=x64 + ;; + aarch64-unknown-redox) + export NODE_CPU=arm64 + ;; +esac + +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=${COOKBOOK_STAGE} + --dest-cpu=${NODE_CPU} + --dest-os=redox + --shared-cares + --shared-libuv + --shared-ngtcp2 + --shared-nghttp2 + --shared-nghttp3 + --shared-openssl + --shared-simdjson + --shared-simdutf + --shared-zlib + --shared-zstd + --cross-compiling + --without-sqlite + --without-inspector + --without-intl +) +COOKBOOK_CONFIGURE="./configure" +cookbook_configure +""" diff --git a/recipes/wip/dev/lang/perl5/configure_tool.sh b/recipes/wip/dev/lang/perl5/configure_tool.sh new file mode 100644 index 000000000..23d3878e1 --- /dev/null +++ b/recipes/wip/dev/lang/perl5/configure_tool.sh @@ -0,0 +1,351 @@ +# Toolchain detection + +tryprog() { + log "trying $1=$2" + if command -v $2 1>/dev/null 2>/dev/null; then + define "$1" "$2" + result "$2" + return 0 + else + return 1 + fi +} + +tryfromenv() { + if [ "$mode" = "buildmini" ]; then + getenv ev "HOST$2" + else + getenv ev "$2" + fi + + if [ -n "$ev" ]; then + tryprog $1 "$ev" && return 0 + die "Supplied $ev is not usable" + fi + + unset ev + return 1 +} + +# This is only a function for easy access to return-s +# try.out contains `$cc --version` output. +# +# Figuring out gcc is necessary to make sure -fwrapv fix gets applied. + +detect_cc_version() { + _v=`sed -ne '/^gcc version \([0-9][0-9.]*\).*/s//\1/p' try.out` + + if [ -n "$_v" ]; then + define cctype 'gcc' + define ccversion "$_v" + define gccversion "$_v" + result "gcc $_v" + return + fi + + _v=`sed -ne '/^clang version \([0-9][0-9.]*\).*/s//\1/p' try.out` + + if [ -n "$_v" ]; then + define cctype 'clang' + define ccversion "$_v" + define gccversion "0.0" + result "clang $_v" + return + fi + + define cctype 'cc' + define ccversion '' + define gccversion '0.0' + result 'unknown' +} + +# whichprog symbol VAR prog1 prog2 +whichprog() { + mstart "Checking for $1" + hinted "$1" && return 0 + + # Maybe we've got $CC or $HOSTCC? + tryfromenv "$1" "$2" && return 0 + + # For anything that sounds like a native compilation, + # try no-prefix tools *first*. This is to avoid using + # long names is case the host happens to have them. + if [ "$mode" = 'native' -o "$mode" = 'buildmini' ]; then + tryprog $1 "$3" && return 0 + fi + + # Finally, try $target-gcc + test -n "$toolsprefix" && tryprog $1 "$toolsprefix$3" && return 0 + test -n "$target" && tryprog $1 "$target-$3" && return 0 + test -n "$targetarch" && tryprog $1 "$targetarch-$3" && return 0 + + result "none found" + return 1 +} + +whichprog cc CC gcc || whichprog cc CC cc || die "No C compiler found" +#whichprog ld LD ld # while correct, this breaks MM library test +whichprog ar AR ar || die "Cannot find ar" +whichprog nm NM nm +whichprog ranlib RANLIB ranlib +whichprog readelf READELF readelf || die "Cannot find readelf" +whichprog objdump OBJDUMP objdump || die "Cannot find objdump" + +# XXX: this looks wrong, but the usemmldlt code depends on $ld being able +# to compile try.c. What kind of moron could have written that. Oh wait. +# +# But, there was probably a reason to assume this, likely becase mainline +# Configure did and still does the same. So, ugh, leaving it as is for now. +# Speak of backward bug compatibility. +define ld "$cc" + +log + +mstart "Trying $cc" +if not hinted 'cctype'; then + run $cc -v >try.out 2>&1 + try_dump_out + detect_cc_version +fi + +mstart "Checking whether $cc is a C++ compiler" +if not hinted 'd_cplusplus'; then + try_start + try_cat < try.out 2>>$cfglog; then + define d_cplusplus 'undef' + result "probably no" + else + _r=`grep -v '^#' try.out | grep . | head -1 | grep '^YES'` + if [ -n "$_r" ]; then + define d_cplusplus 'define' + result "yes" + else + define d_cplusplus 'undef' + result 'no' + fi + fi +fi + +mstart "Deciding how to declare external symbols" +if not hinted "extern_C"; then + case "$d_cplusplus" in + define) + define "extern_C" 'extern "C"' + result "$extern_C" + ;; + *) + define "extern_C" 'extern' + result "$extern_C" + ;; + esac +fi + +# File name extensions, must be set before running any compile/link tests +define _o '.o' +define _a '.a' +define so 'so' +define _exe '' + +# Used only for modules +define cccdlflags '-fPIC -Wno-unused-function' +define ccdlflags '-Wl,-E' + +# Misc flags setup +predef lddlflags "-shared" # modules +predef ccflags '' # perl and modules +predef ldflags '' # perl only? +predef cppflags '' # unused? + +# setfromvar what SHELLVAR +setfromenv() { + getenv v "$2" + test -n "$v" && append "$1" "$v" +} + +if [ "$mode" = 'target' -o "$mode" = 'native' ]; then + setfromenv ccflags CFLAGS + setfromenv ldflags LDFLAGS + if [ -n "$sysroot" ]; then + msg "Adding --sysroot to {cc,ld}flags" + prepend ccflags "--sysroot=$sysroot" + prepend ldflags "--sysroot=$sysroot" + # While cccdlflags are used together with ccflags, + # ld is always called with lddlflags *instead*of* ldflags + prepend lddlflags "--sysroot=$sysroot" + # Same for cpp + prepend cppflags "--sysroot=$sysroot" + fi +elif [ "$mode" = 'buildmini' ]; then + setfromenv ccflags HOSTCFLAGS + setfromenv ldflags HOSTLDFLAGS +fi + +# Use $ldflags as default value for $lddlflags, together with whatever +# hints provided, but avoid re-setting anyting specified in the command line +if [ -n "$ldflags" -a "$x_lddlflags" != "user" ]; then + append lddlflags "$ldflags" +fi + +# enddef ccflags # done later in _hdrs because of LARGEFILE_SOURCE +enddef ldflags +enddef lddlflags +enddef cppflags + +mstart "Checking whether ld supports scripts" +if not hinted 'ld_can_script'; then + cat > try.c < try.h </dev/null + + if run $cc $cccdlflags $ccdlflags $ccflags $lddlflags -o a.out try.c \ + -Wl,--version-script=try.h >/dev/null 2>&1 \ + && test -s a.out + then + define ld_can_script 'define' + result "yes" + else + define ld_can_script 'undef' + result "no" + fi +fi + +# Guessing OS is better done with the toolchain available. +# CC output is crucial here -- Android toolchains come with +# generic armeabi prefix and "android" is one of the few osname +# values that make difference later. + +mstart "Trying to guess target OS" +if not hinted 'osname'; then + run $cc -v > try.out 2>&1 + try_dump_out + + _ct=`sed -ne '/^Target: /s///p' try.out` + test -z "$_ct" && _ct="$targetarch" + + case "$_ct" in + *-mingw32) + define osname "MSWin32" + result "MSWin32" + ;; + *-android|*-androideabi) + define osname "android" + result "Android" + ;; + *-linux*) + define osname "linux" + result "Linux" + ;; + *-netbsd*) + define osname "netbsd" + result "NetBSD" + ;; + *-bsd*) + define osname "bsd" + result "BSD" + ;; + *-gnu*) + define osname "gnu" + result "GNU" + ;; + *-midipix*) + define osname "midipix" + result "Midipix" + ;; + *-redox*) + define osname "redox" + result "Redox" + ;; + *) + result "no" + ;; + esac +fi + +# Check whether debugging should be enabled +# Allow -DEBUGGING as well (sets EBUGGING=define) +case "$DEBUGGING:$EBUGGING" in + :*) + DEBUGGING=$EBUGGING + ;; +esac + +mstart "Checking whether to enable -g" +predef optimize '' +case "$DEBUGGING" in + both|define) + append optimize "-g" + result "yes" ;; + *) + result "no" ;; +esac + +mstart "Checking whether to use -DDEBUGGING" +case "$DEBUGGING" in + both|define) + append optimize '-DDEBUGGING' + result "yes" ;; + *) + result "no" ;; +esac + +# gcc 4.9 and above does some optimizations that break perl. +# see perl ticket 121505. +if [ "$cctype" = 'gcc' ]; then + case "$ccversion" in + 1.*|2.*|3.*) ;; + 4.9*) append 'optimize' '-fwrapv -fno-strict-aliasing' ;; + 4.*) ;; + *) append 'optimize' '-fwrapv -fno-strict-aliasing' ;; + esac +fi +enddef optimize + +# These are kind-of part of toolchain, but we do not test them + +# For newer gcc-s, -E alone is *not* enough! Perl expects cpp not to break +# lines, but gcc injects #line directives in-between tokens, subtly breaking +# try_preproc and Errno.pm +define cpp "$cc -E -P" +define cpprun "$cpp" +define cppstdin "$cpp" + +define cpplast - +define cppminus - +define cppsymbols + +define nm_opt +define nm_so_opt + +# cperl wants to know this for some reason +mstart "Checking whether address sanitizer is enabled" +if not hinted sanitize_address 'yes' 'no'; then + case "$ccflags" in + *-fsanitize=address*|*-faddress-sanitizer*) + define sanitize_address 'define' + result 'yes' + ;; + *) + define sanitize_address 'undef' + result 'no' + ;; + esac +fi diff --git a/recipes/wip/dev/lang/perl5/recipe.toml b/recipes/wip/dev/lang/perl5/recipe.toml new file mode 100644 index 000000000..9c2f8568e --- /dev/null +++ b/recipes/wip/dev/lang/perl5/recipe.toml @@ -0,0 +1,41 @@ +#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) +#TODO needs further testing +[source] +tar = "https://www.cpan.org/src/5.0/perl-5.40.0.tar.gz" +blake3 = "8bfcbb999e0795a64ca90e1ba7308f49c30ab2619ffa25fa425527c4bfca5e0f" +script = """ +curl -L -O --time-cond perl-cross-1.6.tar.gz https://github.com/arsv/perl-cross/releases/download/1.6/perl-cross-1.6.tar.gz +tar --strip-components=1 -xvf perl-cross-1.6.tar.gz +GNU_CONFIG_GET ./cnf/config.sub +""" +[build] +template = "custom" +dev-dependencies = ["relibc"] +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +#Note: since perl-cross can run only inside the source-tree (out-of-tree is bugged) it's easier to do everything in the build directory +cp ${COOKBOOK_RECIPE}/configure_tool.sh ${COOKBOOK_BUILD}/cnf/configure_tool.sh +cp ${COOKBOOK_RECIPE}/redox ${COOKBOOK_BUILD}/cnf/hints/redox +#Note: non-standard configure, familiar flags can have different meaning! +./configure --host-cc="gcc" --host-cpp="g++" --target=${TARGET} --sysroot=${COOKBOOK_SYSROOT} +sed -i "s/^#define Netdb_name_t.*/#define Netdb_name_t const char*/" config.h +sed -i "s/^# HAS_NANOSLEEP.*/#define HAS_NANOSLEEP/" config.h +sed -i "s|^/.#define I_GRP.*|#define I_GRP|" config.h +echo "#define HAS_GROUP" >> config.h +make -j4 +make install DESTDIR="${COOKBOOK_STAGE}" +pushd . +cd "${COOKBOOK_STAGE}/usr/share/man/man3" +for f in *; do +case "$f" in +*::*) +mv "$f" "${f//::/__}"; +;; +esac +done +popd +""" diff --git a/recipes/wip/dev/lang/perl5/redox b/recipes/wip/dev/lang/perl5/redox new file mode 100644 index 000000000..5b62f5bc4 --- /dev/null +++ b/recipes/wip/dev/lang/perl5/redox @@ -0,0 +1,5 @@ +# NetBSD syscalls +d_nanosleep='define' + +# libraries to test +libswanted='m dl' diff --git a/recipes/wip/dev/lang/php80/recipe.toml b/recipes/wip/dev/lang/php80/recipe.toml new file mode 100644 index 000000000..0a45f6995 --- /dev/null +++ b/recipes/wip/dev/lang/php80/recipe.toml @@ -0,0 +1,79 @@ +#TODO promote +[source] +tar = "https://www.php.net/distributions/php-8.0.30.tar.xz" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "bzip2", + "curl", + "gettext", + "libffi", + "libgmp", + "libavif", + "libicu", + "libjpeg", + "libedit", + "libonig", + "libpng", + "libsodium", + "libwebp", + "libxml2", + "libiconv", + "libzip", + "ncurses", + "nghttp2", + "openssl1", + "pcre", + "sqlite3", + "xz", + "zlib", +] +script = """ +DYNAMIC_INIT +export SUFFIX="80" + +# extension stuff +export CURL_LIBS="-lcurl -lnghttp2 -lssl -lcrypto" +export CXXFLAGS="-std=c++17" +COOKBOOK_CONFIGURE_FLAGS+=( + --program-suffix=${SUFFIX} + --sysconfdir=/etc + --with-config-file-path=/etc/php/$SUFFIX + --with-config-file-scan-dir=/etc/php/$SUFFIX/conf.d + --with-iconv="${COOKBOOK_SYSROOT}/usr" + --disable-opcache + --enable-bcmath + --enable-calendar +# --enable-fpm # need times function + --enable-gd + --enable-intl + --enable-mbstring + --with-curl + --with-gettext + --with-gmp + --with-jpeg + --with-webp + --with-avif + --with-ffi + --with-libedit + --with-openssl + --with-sodium + --with-zip +) + +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" "$@" +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install \ + INSTALL_ROOT="${COOKBOOK_STAGE}" \ + datarootdir=/usr/share localstatedir=/var + +for bin in "php-cgi" "php-config" "php" "phpdbg" "phpize"; do + ln -s "$bin$SUFFIX" ${COOKBOOK_STAGE}/usr/bin/$bin +done +mkdir -p ${COOKBOOK_STAGE}/etc/php/$SUFFIX/conf.d +cp ${COOKBOOK_SOURCE}/php.ini* ${COOKBOOK_STAGE}/etc/php/$SUFFIX/ +""" diff --git a/recipes/wip/dev/lang/php80/redox.patch b/recipes/wip/dev/lang/php80/redox.patch new file mode 100644 index 000000000..4fcf8326c --- /dev/null +++ b/recipes/wip/dev/lang/php80/redox.patch @@ -0,0 +1,92 @@ +diff -ruwN source/configure source-new/configure +--- source/configure 2023-08-04 00:13:08.000000000 +0700 ++++ source-new/configure 2025-09-20 05:04:59.993364619 +0700 +@@ -46043,7 +46043,7 @@ + fi + + +- ax_cxx_compile_alternatives="11 0x" ax_cxx_compile_cxx11_required=truednl ++ ax_cxx_compile_alternatives="17 0x" ax_cxx_compile_cxx11_required=truednl + ac_ext=cpp + ac_cpp='$CXXCPP $CPPFLAGS' + ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -72692,7 +72692,7 @@ + printf %s "(cached) " >&6 + else $as_nop + +- php_cv_crypt_r_style=none ++ php_cv_crypt_r_style=struct_crypt_data_gnu_source + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +diff -ruwN source/ext/intl/config.m4 source-new/ext/intl/config.m4 +--- source/ext/intl/config.m4 2023-08-04 00:13:08.000000000 +0700 ++++ source-new/ext/intl/config.m4 2025-09-20 05:05:18.892414632 +0700 +@@ -83,7 +83,7 @@ + breakiterator/codepointiterator_methods.cpp" + + PHP_REQUIRE_CXX() +- PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX) ++ PHP_CXX_COMPILE_STDCXX(17, mandatory, PHP_INTL_STDCXX) + PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $PHP_INTL_STDCXX $ICU_CXXFLAGS" + case $host_alias in + *cygwin*) PHP_INTL_CXX_FLAGS="$PHP_INTL_CXX_FLAGS -D_POSIX_C_SOURCE=200809L" +diff -ruwN source/ext/phar/Makefile.frag source-new/ext/phar/Makefile.frag +--- source/ext/phar/Makefile.frag 2023-08-04 00:13:08.000000000 +0700 ++++ source-new/ext/phar/Makefile.frag 2025-09-19 23:19:19.020178026 +0700 +@@ -9,20 +9,7 @@ + pharcmd: $(builddir)/phar.php $(builddir)/phar.phar + + PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 +-PHP_PHARCMD_EXECUTABLE = ` \ +- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \ +- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \ +- if test "x$(PHP_MODULES)" != "x"; then \ +- $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \ +- for i in bz2 zlib phar; do \ +- if test -f "$(top_builddir)/modules/$$i.la"; then \ +- . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \ +- fi; \ +- done; \ +- fi; \ +- else \ +- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \ +- fi;` ++PHP_PHARCMD_EXECUTABLE = "true" + PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";` + + $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc +@@ -42,9 +29,3 @@ + + install-pharcmd: pharcmd + -@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir) +- $(INSTALL) $(builddir)/phar.phar $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix).phar +- -@rm -f $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix) +- $(LN_S) -f $(program_prefix)phar$(program_suffix).phar $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix) +- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1 +- @$(INSTALL_DATA) $(builddir)/phar.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phar$(program_suffix).1 +- @$(INSTALL_DATA) $(builddir)/phar.phar.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phar$(program_suffix).phar.1 +diff -ruwN source/ext/posix/posix.c source-new/ext/posix/posix.c +--- source/ext/posix/posix.c 2023-08-04 00:13:08.000000000 +0700 ++++ source-new/ext/posix/posix.c 2025-09-19 22:21:28.998031846 +0700 +@@ -443,7 +443,7 @@ + + ZEND_PARSE_PARAMETERS_NONE(); + +- if ((ticks = times(&t)) == -1) { ++ { + POSIX_G(last_error) = errno; + RETURN_FALSE; + } +diff -ruwN source/ext/standard/hrtime.c source-new/ext/standard/hrtime.c +--- source/ext/standard/hrtime.c 2023-08-04 00:13:08.000000000 +0700 ++++ source-new/ext/standard/hrtime.c 2025-09-19 23:34:34.839471333 +0700 +@@ -70,6 +70,8 @@ + return -1; + } + ++#elif defined(__redox__) ++ /* pass */ + #elif PHP_HRTIME_PLATFORM_POSIX + + #if !_POSIX_MONOTONIC_CLOCK diff --git a/recipes/wip/dev/lang/python37/config.site b/recipes/wip/dev/lang/python37/config.site new file mode 100644 index 000000000..c27302406 --- /dev/null +++ b/recipes/wip/dev/lang/python37/config.site @@ -0,0 +1,2 @@ +ac_cv_file__dev_ptmx=no +ac_cv_file__dev_ptc=no diff --git a/recipes/wip/dev/lang/python37/recipe.toml b/recipes/wip/dev/lang/python37/recipe.toml new file mode 100644 index 000000000..beb86e4c6 --- /dev/null +++ b/recipes/wip/dev/lang/python37/recipe.toml @@ -0,0 +1,23 @@ +#TODO not compiled or tested +#TODO does the patch is still needed? +#TODO maybe the script is wrong +[source] +tar = "https://www.python.org/ftp/python/3.7.17/Python-3.7.17.tar.xz" +patches = [ + "redox.patch", +] +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cp ../config.site ./ +sed -i 's|#define HAVE_PTHREAD_KILL 1|/* #undef HAVE_PTHREAD_KILL */|g' pyconfig.h +sed -i 's|#define HAVE_SCHED_SETSCHEDULER 1|/* #undef HAVE_SCHED_SETSCHEDULER */|g' pyconfig.h +sed -i 's|#define HAVE_SYS_RESOURCE_H 1|/* #undef HAVE_SYS_RESOURCE_H */|g' pyconfig.h +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-ipv6 +) +cookbook_configure +""" diff --git a/recipes/wip/dev/lang/python37/redox.patch b/recipes/wip/dev/lang/python37/redox.patch new file mode 100644 index 000000000..6f1da623d --- /dev/null +++ b/recipes/wip/dev/lang/python37/redox.patch @@ -0,0 +1,91 @@ +diff -ruwN source/configure source-new/configure +--- source/configure 2019-07-08 12:03:50.000000000 -0600 ++++ source-new/configure 2019-07-16 21:25:29.432607847 -0600 +@@ -3261,6 +3261,9 @@ + *-*-cygwin*) + ac_sys_system=Cygwin + ;; ++ *-*-redox*) ++ ac_sys_system=Redox ++ ;; + *) + # for now, limit cross builds to known configurations + MACHDEP="unknown" +@@ -3293,7 +3296,7 @@ + + if test "$cross_compiling" = yes; then + case "$host" in +- *-*-linux*) ++ *-*-linux*|*-*-redox*) + case "$host_cpu" in + arm*) + _host_cpu=arm +diff -ruwN source/Lib/distutils/util.py source-new/Lib/distutils/util.py +--- source/Lib/distutils/util.py 2019-07-08 12:03:50.000000000 -0600 ++++ source-new/Lib/distutils/util.py 2019-07-16 22:07:35.994862914 -0600 +@@ -131,7 +131,7 @@ + if not os.path.isabs(pathname): + return os.path.join(new_root, pathname) + else: +- return os.path.join(new_root, pathname[1:]) ++ return os.path.join(new_root, pathname.lstrip('/')) + + elif os.name == 'nt': + (drive, path) = os.path.splitdrive(pathname) +diff -ruwN source/Modules/main.c source-new/Modules/main.c +--- source/Modules/main.c 2019-07-08 12:03:50.000000000 -0600 ++++ source-new/Modules/main.c 2019-07-16 21:46:53.037866142 -0600 +@@ -56,6 +56,16 @@ + } \ + } while (0) + ++#if defined(__redox__) ++wchar_t * wcstok(wchar_t * wcs, const wchar_t * delimiters, wchar_t ** ptr) { ++ return NULL; ++} ++ ++long wcstol(const wchar_t *restrict nptr, wchar_t **restrict endptr, int base) { ++ return 0; ++} ++#endif ++ + #ifdef MS_WINDOWS + #define WCSTOK wcstok_s + #else +diff -ruwN source/Python/pathconfig.c source-new/Python/pathconfig.c +--- source/Python/pathconfig.c 2019-07-08 12:03:50.000000000 -0600 ++++ source-new/Python/pathconfig.c 2019-07-16 21:55:34.549726910 -0600 +@@ -5,6 +5,10 @@ + #include "internal/pystate.h" + #include + ++#if defined(__redox__) ++wchar_t * wcstok(wchar_t * wcs, const wchar_t * delimiters, wchar_t ** ptr); ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +diff -ruwN source/Python/pytime.c source-new/Python/pytime.c +--- source/Python/pytime.c 2019-07-08 12:03:50.000000000 -0600 ++++ source-new/Python/pytime.c 2019-07-16 21:36:53.233119225 -0600 +@@ -7,6 +7,19 @@ + #include /* mach_absolute_time(), mach_timebase_info() */ + #endif + ++#if defined(__redox__) ++int clock_getres(clockid_t clk_id, struct timespec *res) { ++ if (res) { ++ res->tv_sec = 0; ++ res->tv_nsec = 1000; ++ return 0; ++ } else { ++ errno = EFAULT; ++ return -1; ++ } ++} ++#endif ++ + #define _PyTime_check_mul_overflow(a, b) \ + (assert(b > 0), \ + (_PyTime_t)(a) < _PyTime_MIN / (_PyTime_t)(b) \ diff --git a/recipes/wip/dev/lang/python39/recipe.toml b/recipes/wip/dev/lang/python39/recipe.toml new file mode 100644 index 000000000..f7bc5ddb2 --- /dev/null +++ b/recipes/wip/dev/lang/python39/recipe.toml @@ -0,0 +1,62 @@ +#TODO Fix dynamic loading of C modules +[source] +tar = "https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz" +patches = [ + 'redox.patch' +] + +[build] +template = "custom" +dependencies = [ + "bzip2", + "libffi", + "libuuid", + "ncurses", + "ncursesw", + "openssl1", + "readline", + "sqlite3", + "zlib", + "xz" +] +script = """ +DYNAMIC_INIT +export PYTHONDONTWRITEBYTECODE=1 +ARCH="${TARGET%%-*}" + +# Python cross-compilation requires the same Python version on the build machine +BUILDMACH_TARGET="$(gcc -dumpmachine)" +BUILDMACH_BUILD="${COOKBOOK_RECIPE}/target/${BUILDMACH_TARGET}/build" +BUILDMACH_STAGE="${COOKBOOK_RECIPE}/target/${BUILDMACH_TARGET}/stage" + +# If this is a fresh build then we also rebuild the build machine version +# (Cookbook clean does not remove it so we have to do it manually) +if [ -z "$(ls -A .)" ]; then + rm -rf "${BUILDMACH_BUILD}" "${BUILDMACH_STAGE}" +fi + +mkdir -p "${BUILDMACH_BUILD}" +mkdir -p "${BUILDMACH_STAGE}" + +cd "${BUILDMACH_BUILD}" +# Use env that does not use the Redox build tools +env -i PATH="$PATH" CC="$CC_WRAPPER gcc" "${COOKBOOK_SOURCE}/configure" +env -i PATH="$PATH" CC="$CC_WRAPPER gcc" "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install DESTDIR="${BUILDMACH_STAGE}" +cd - + +export PATH="${BUILDMACH_STAGE}/usr/local/bin:${PATH}" + +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/usr + --enable-shared + --disable-ipv6 + --host=${GNU_TARGET} + --build=$ARCH + --with-ensurepip=install + ac_cv_file__dev_ptmx=no + ac_cv_file__dev_ptc=no +) + +cookbook_configure +""" diff --git a/recipes/wip/dev/lang/python39/redox.patch b/recipes/wip/dev/lang/python39/redox.patch new file mode 100644 index 000000000..5f776a987 --- /dev/null +++ b/recipes/wip/dev/lang/python39/redox.patch @@ -0,0 +1,90 @@ +diff -ruwN source/configure source-new/configure +--- source/configure 2021-11-16 00:43:00.000000000 +0700 ++++ source-new/configure 2025-09-17 21:31:19.787497963 +0700 +@@ -3307,6 +3307,9 @@ + *-*-vxworks*) + ac_sys_system=VxWorks + ;; ++ *-*-redox*) ++ ac_sys_system=Redox ++ ;; + *) + # for now, limit cross builds to known configurations + MACHDEP="unknown" +@@ -3331,6 +3334,7 @@ + case $MACHDEP in + aix*) MACHDEP="aix";; + linux*) MACHDEP="linux";; ++ redox*) MACHDEP="redox";; + cygwin*) MACHDEP="cygwin";; + darwin*) MACHDEP="darwin";; + '') MACHDEP="unknown";; +@@ -3342,7 +3346,7 @@ + + if test "$cross_compiling" = yes; then + case "$host" in +- *-*-linux*) ++ *-*-linux*|*-*-redox*) + case "$host_cpu" in + arm*) + _host_cpu=arm +@@ -5951,7 +5955,7 @@ + PY3LIBRARY=libpython3.so + fi + ;; +- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*) ++ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|Redox*) + LDLIBRARY='libpython$(LDVERSION).so' + BLDLIBRARY='-L. -lpython$(LDVERSION)' + RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} +@@ -9551,7 +9555,7 @@ + BLDSHARED="$LDSHARED" + fi + ;; +- Linux*|GNU*|QNX*|VxWorks*) ++ Linux*|GNU*|QNX*|VxWorks*|Redox*) + LDSHARED='$(CC) -shared' + LDCXXSHARED='$(CXX) -shared';; + FreeBSD*) +@@ -9620,7 +9624,7 @@ + else CCSHARED="+z"; + fi;; + Linux-android*) ;; +- Linux*|GNU*) CCSHARED="-fPIC";; ++ Linux*|GNU*|Redox*) CCSHARED="-fPIC";; + FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";; + OpenUNIX*|UnixWare*) + if test "$GCC" = "yes" +@@ -9650,7 +9654,7 @@ + LINKFORSHARED="-Wl,-E -Wl,+s";; + # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";; + Linux-android*) LINKFORSHARED="-pie -Xlinker -export-dynamic";; +- Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";; ++ Linux*|GNU*|Redox*) LINKFORSHARED="-Xlinker -export-dynamic";; + # -u libsys_s pulls in all symbols in libsys + Darwin/*) + LINKFORSHARED="$extra_undefs -framework CoreFoundation" +diff -ruwN source/Include/pyport.h source-new/Include/pyport.h +--- source/Include/pyport.h 2021-11-16 00:43:00.000000000 +0700 ++++ source-new/Include/pyport.h 2025-09-17 21:31:56.613084352 +0700 +@@ -838,7 +838,7 @@ + # error "Py_TRACE_REFS ABI is not compatible with release and debug ABI" + #endif + +-#if defined(__ANDROID__) || defined(__VXWORKS__) ++#if defined(__ANDROID__) || defined(__VXWORKS__) || defined(__redox__) + /* Ignore the locale encoding: force UTF-8 */ + # define _Py_FORCE_UTF8_LOCALE + #endif +diff -ruwN source/Modules/timemodule.c source-new/Modules/timemodule.c +--- source/Modules/timemodule.c 2021-11-16 00:43:00.000000000 +0700 ++++ source-new/Modules/timemodule.c 2025-09-17 21:30:18.552349106 +0700 +@@ -1416,7 +1416,7 @@ + return 0; + } + +-#elif defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID) ++#elif defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID) && defined(CLOCK_THREAD_CPUTIME_ID) + #define HAVE_THREAD_TIME + + #if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability) diff --git a/recipes/wip/dev/lang/ristretto/recipe.toml b/recipes/wip/dev/lang/ristretto/recipe.toml new file mode 100644 index 000000000..5210a054f --- /dev/null +++ b/recipes/wip/dev/lang/ristretto/recipe.toml @@ -0,0 +1,8 @@ +#TODO require rustc 1.87 or newer +[source] +git = "https://github.com/theseus-rs/ristretto" +[build] +template = "custom" +script = """ +cookbook_cargo_packages ristretto_cli +""" diff --git a/recipes/wip/dev/lang/ruby/recipe.toml b/recipes/wip/dev/lang/ruby/recipe.toml new file mode 100644 index 000000000..ec3667183 --- /dev/null +++ b/recipes/wip/dev/lang/ruby/recipe.toml @@ -0,0 +1,11 @@ +#TODO compilation error +[source] +tar = "https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0.tar.gz" +[build] +template = "configure" +dependencies = [ + "openssl1", + "zlib", + "libyaml", + "libffi", +] diff --git a/recipes/wip/dev/lang/scc/recipe.toml b/recipes/wip/dev/lang/scc/recipe.toml new file mode 100644 index 000000000..9e681b4e4 --- /dev/null +++ b/recipes/wip/dev/lang/scc/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for gnu make +# build instructions: https://git.simple-cc.org/scc/file/README.html +[source] +git = "https://git.simple-cc.org/scc/" +rev = "1ed0ff0000999561feee336c289252faf2502a7e" +[build] +template = "custom" +[package] +dependencies = ["qbe"] diff --git a/recipes/wip/dev/lang/tcc/recipe.toml b/recipes/wip/dev/lang/tcc/recipe.toml new file mode 100644 index 000000000..76ca73072 --- /dev/null +++ b/recipes/wip/dev/lang/tcc/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://repo.or.cz/tinycc.git/blob/HEAD:/README +[source] +tar = "https://download.savannah.nongnu.org/releases/tinycc/tcc-0.9.27.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/dev/lang/tsuki/recipe.toml b/recipes/wip/dev/lang/tsuki/recipe.toml new file mode 100644 index 000000000..9aabdb16b --- /dev/null +++ b/recipes/wip/dev/lang/tsuki/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ultimaweapon/tsuki" +[build] +template = "cargo" diff --git a/recipes/wip/dev/lang/tur/recipe.toml b/recipes/wip/dev/lang/tur/recipe.toml new file mode 100644 index 000000000..13ffc9d4c --- /dev/null +++ b/recipes/wip/dev/lang/tur/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rezigned/tur" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..b6cc898d8 --- /dev/null +++ b/recipes/wip/dev/lang/vala/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for building, see https://gitlab.gnome.org/GNOME/vala#building-vala +[source] +tar = "https://download.gnome.org/sources/vala/0.56/vala-0.56.14.tar.xz" +[build] +template = "custom" +dependencies = [ + "glib", +] diff --git a/recipes/wip/dev/lang/wrecc/recipe.toml b/recipes/wip/dev/lang/wrecc/recipe.toml new file mode 100644 index 000000000..d1ac6f534 --- /dev/null +++ b/recipes/wip/dev/lang/wrecc/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/PhilippRados/wrecc" +[build] +template = "cargo" diff --git a/recipes/wip/dev/lang/xylo/recipe.toml b/recipes/wip/dev/lang/xylo/recipe.toml new file mode 100644 index 000000000..750f07dd5 --- /dev/null +++ b/recipes/wip/dev/lang/xylo/recipe.toml @@ -0,0 +1,10 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/giraffekey/xylo" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..5c9d26f7e --- /dev/null +++ b/recipes/wip/dev/lang/zig/recipe.toml @@ -0,0 +1,22 @@ +#TODO compiling, not tested further +[source] +git = "https://github.com/willnode/zig" +branch = "zig-0.15-redox" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}"/* ./ + +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/bin +cp ./zig2 "${COOKBOOK_STAGE}"/usr/bin/zig +""" diff --git a/recipes/wip/dev/managers/moon/recipe.toml b/recipes/wip/dev/managers/moon/recipe.toml new file mode 100644 index 000000000..c285304d1 --- /dev/null +++ b/recipes/wip/dev/managers/moon/recipe.toml @@ -0,0 +1,8 @@ +#TODO openssl-sys crate error (after cargo update) +[source] +git = "https://github.com/moonrepo/moon" +[build] +template = "custom" +script = """ +cookbook_cargo_packages moon_cli +""" diff --git a/recipes/wip/dev/managers/proto/recipe.toml b/recipes/wip/dev/managers/proto/recipe.toml new file mode 100644 index 000000000..135771ae4 --- /dev/null +++ b/recipes/wip/dev/managers/proto/recipe.toml @@ -0,0 +1,8 @@ +#TODO fs-set-times crate error +[source] +git = "https://github.com/moonrepo/proto" +[build] +template = "custom" +script = """ +cookbook_cargo_packages proto_cli +""" diff --git a/recipes/wip/dev/managers/ratifact/recipe.toml b/recipes/wip/dev/managers/ratifact/recipe.toml new file mode 100644 index 000000000..2c0d8df2b --- /dev/null +++ b/recipes/wip/dev/managers/ratifact/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/adolfousier/ratifact" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/abi-cafe/recipe.toml b/recipes/wip/dev/other/abi-cafe/recipe.toml new file mode 100644 index 000000000..5dc58fe76 --- /dev/null +++ b/recipes/wip/dev/other/abi-cafe/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after an update on the libc crate) +[source] +git = "https://github.com/Gankra/abi-cafe" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/add-determinism/recipe.toml b/recipes/wip/dev/other/add-determinism/recipe.toml new file mode 100644 index 000000000..de6c00d63 --- /dev/null +++ b/recipes/wip/dev/other/add-determinism/recipe.toml @@ -0,0 +1,5 @@ +#TODO source code error +[source] +git = "https://github.com/keszybz/add-determinism" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/allocscope/recipe.toml b/recipes/wip/dev/other/allocscope/recipe.toml new file mode 100644 index 000000000..5106b7cbc --- /dev/null +++ b/recipes/wip/dev/other/allocscope/recipe.toml @@ -0,0 +1,14 @@ +#TODO make all dependencies work +[source] +git = "https://github.com/matt-kimball/allocscope" +[build] +template = "custom" +dependencies = [ + "libiberty", + "ncurses", + "sqlite3", + "libunwind", +] +script = """ +cookbook_cargo_packages allocscope-trace allocscope-view +""" diff --git a/recipes/wip/dev/other/alquitran/recipe.toml b/recipes/wip/dev/other/alquitran/recipe.toml new file mode 100644 index 000000000..c008c9eeb --- /dev/null +++ b/recipes/wip/dev/other/alquitran/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ferivoz/alquitran" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/alt/recipe.toml b/recipes/wip/dev/other/alt/recipe.toml new file mode 100644 index 000000000..1c0a68939 --- /dev/null +++ b/recipes/wip/dev/other/alt/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/dotboris/alt" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/apitrace/recipe.toml b/recipes/wip/dev/other/apitrace/recipe.toml new file mode 100644 index 000000000..a95456155 --- /dev/null +++ b/recipes/wip/dev/other/apitrace/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/apitrace/apitrace/blob/master/docs/INSTALL.markdown#linux +[source] +git = "https://github.com/apitrace/apitrace" +rev = "9352fc02bba106fbbeef9e8452ef34643c0d0764" +[build] +template = "cmake" diff --git a/recipes/wip/dev/other/apr-util/recipe.toml b/recipes/wip/dev/other/apr-util/recipe.toml new file mode 100644 index 000000000..e2ce43a07 --- /dev/null +++ b/recipes/wip/dev/other/apr-util/recipe.toml @@ -0,0 +1,29 @@ +[source] +tar = "https://archive.apache.org/dist/apr/apr-util-1.6.0.tar.bz2" +patches = [ + "redox.patch", +] +[build] +template = "custom" +dependencies = [ + "apr", + "expat", +] +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --with-apr="${COOKBOOK_SYSROOT}" +) +export CFLAGS="-I${COOKBOOK_SYSROOT}/include/ -I${COOKBOOK_SYSROOT}/include/apr-1 " +ls ${COOKBOOK_SYSROOT}/include/ +export CFLAGS_="${CFLAGS}" +cd ${COOKBOOK_SOURCE} +autoreconf -fi +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" +sed -i build/rules.mk -e "s;\\(apr_builddir=\\)\\(.*\\);\\1${COOKBOOK_SYSROOT}\\2;" \\ + -e "s;--mode=link;& --tag=CC;g" -e "s;--mode=compile;& --tag=CC -v;g" \\ + +sed -i build/rules.mk -e "/apr_builders=/s;apr_builders=;apr_builders=${COOKBOOK_SYSROOT};" +sed -i build/rules.mk -e "/^CFLAGS=/s;=.*;=${CFLAGS_};" +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" +""" diff --git a/recipes/wip/dev/other/apr-util/redox.patch b/recipes/wip/dev/other/apr-util/redox.patch new file mode 100644 index 000000000..33ab356e3 --- /dev/null +++ b/recipes/wip/dev/other/apr-util/redox.patch @@ -0,0 +1,41 @@ +diff --git a/apu-config.in b/apu-config.in +index 82109e5..2d005c9 100644 +--- a/apu-config.in ++++ b/apu-config.in +@@ -140,12 +140,12 @@ while test $# -gt 0; do + ;; + --includes) + if test "$location" = "installed"; then +- flags="$flags -I$includedir $INCLUDES" ++ flags="$flags $INCLUDES" + elif test "$location" = "source"; then +- flags="$flags -I$APU_SOURCE_DIR/include $INCLUDES" ++ flags="$flags $INCLUDES" + else + # this is for VPATH builds +- flags="$flags -I$APU_BUILD_DIR/include -I$APU_SOURCE_DIR/include $INCLUDES" ++ flags="$flags $INCLUDES" + fi + ;; + --ldflags) +@@ -162,9 +162,9 @@ while test $# -gt 0; do + --link-ld) + if test "$location" = "installed"; then + ### avoid using -L if libdir is a "standard" location like /usr/lib +- flags="$flags -L$libdir -l$APRUTIL_LIBNAME" ++ flags="$flags -l$APRUTIL_LIBNAME" + else +- flags="$flags -L$APU_BUILD_DIR -l$APRUTIL_LIBNAME" ++ flags="$flags -l$APRUTIL_LIBNAME" + fi + ;; + --link-libtool) +@@ -178,7 +178,7 @@ while test $# -gt 0; do + ### avoid using -L if libdir is a "standard" location like /usr/lib + # Since the user is specifying they are linking with libtool, we + # *know* that -R will be recognized by libtool. +- flags="$flags -L$libdir -R$libdir -l$APRUTIL_LIBNAME" ++ flags="$flags -l$APRUTIL_LIBNAME" + else + flags="$flags $LA_FILE" + fi diff --git a/recipes/wip/dev/other/apr/recipe.toml b/recipes/wip/dev/other/apr/recipe.toml new file mode 100644 index 000000000..9991bfa6e --- /dev/null +++ b/recipes/wip/dev/other/apr/recipe.toml @@ -0,0 +1,16 @@ +[source] +tar = "https://dlcdn.apache.org//apr/apr-1.7.4.tar.bz2" +patches = ["redox.patch"] +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( +ac_cv_file__dev_zero=yes +ac_cv_working_getaddrinfo=no +apr_cv_process_shared_works=yes +apr_cv_mutex_robust_shared=yes +apr_cv_tcp_nodelay_with_cork=no +apr_cv_epoll=yes +) +cookbook_configure +""" diff --git a/recipes/wip/dev/other/apr/redox.patch b/recipes/wip/dev/other/apr/redox.patch new file mode 100644 index 000000000..9d6304859 --- /dev/null +++ b/recipes/wip/dev/other/apr/redox.patch @@ -0,0 +1,175 @@ +diff --git a/apr-config.in b/apr-config.in +index 626d3b0..b79d471 100644 +--- a/apr-config.in ++++ b/apr-config.in +@@ -180,14 +180,14 @@ while test $# -gt 0; do + ;; + --includes) + if test "$location" = "installed"; then +- flags="$flags -I$includedir $EXTRA_INCLUDES" ++ flags="$flags $EXTRA_INCLUDES" + elif test "$location" = "crosscompile"; then +- flags="$flags -I$APR_TARGET_DIR/$includedir $EXTRA_INCLUDES" ++ flags="$flags $EXTRA_INCLUDES" + elif test "$location" = "source"; then +- flags="$flags -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES" ++ flags="$flags $EXTRA_INCLUDES" + else + # this is for VPATH builds +- flags="$flags -I$APR_BUILD_DIR/include -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES" ++ flags="$flags $EXTRA_INCLUDES" + fi + ;; + --srcdir) +@@ -214,12 +214,12 @@ while test $# -gt 0; do + --link-ld) + if test "$location" = "installed"; then + ### avoid using -L if libdir is a "standard" location like /usr/lib +- flags="$flags -L$libdir -l${APR_LIBNAME}" ++ flags="$flags -l${APR_LIBNAME}" + elif test "$location" = "crosscompile"; then +- flags="$flags -L$APR_TARGET_DIR/$libdir -l${APR_LIBNAME}" ++ flags="$flags -l${APR_LIBNAME}" + else + ### this surely can't work since the library is in .libs? +- flags="$flags -L$APR_BUILD_DIR -l${APR_LIBNAME}" ++ flags="$flags -l${APR_LIBNAME}" + fi + ;; + --link-libtool) +@@ -233,9 +233,9 @@ while test $# -gt 0; do + ### avoid using -L if libdir is a "standard" location like /usr/lib + # Since the user is specifying they are linking with libtool, we + # *know* that -R will be recognized by libtool. +- flags="$flags -L$libdir -R$libdir -l${APR_LIBNAME}" ++ flags="$flags -l${APR_LIBNAME}" + elif test "$location" = "crosscompile"; then +- flags="$flags -L${APR_TARGET_DIR}/$libdir -l${APR_LIBNAME}" ++ flags="$flags -l${APR_LIBNAME}" + else + flags="$flags $LA_FILE" + fi +diff --git a/file_io/unix/open.c b/file_io/unix/open.c +index 49eb727..7b28aba 100644 +--- a/file_io/unix/open.c ++++ b/file_io/unix/open.c +@@ -101,12 +101,15 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, + #endif + + if ((flag & APR_FOPEN_READ) && (flag & APR_FOPEN_WRITE)) { ++ fprintf(stderr, "afo flag RDRW\n"); + oflags = O_RDWR; + } + else if (flag & APR_FOPEN_READ) { ++ fprintf(stderr, "afo flag RDONLY\n"); + oflags = O_RDONLY; + } + else if (flag & APR_FOPEN_WRITE) { ++ fprintf(stderr, "afo flag WRONLY\n"); + oflags = O_WRONLY; + } + else { +@@ -114,8 +117,10 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, + } + + if (flag & APR_FOPEN_CREATE) { ++ fprintf(stderr, "afo flag CREAT\n"); + oflags |= O_CREAT; + if (flag & APR_FOPEN_EXCL) { ++ fprintf(stderr, "afo flag EXCL\n"); + oflags |= O_EXCL; + } + } +@@ -124,19 +129,23 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, + } + + if (flag & APR_FOPEN_APPEND) { ++ fprintf(stderr, "afo flag APPEND\n"); + oflags |= O_APPEND; + } + if (flag & APR_FOPEN_TRUNCATE) { ++ fprintf(stderr, "afo flag TRUNC\n"); + oflags |= O_TRUNC; + } + #ifdef O_BINARY + if (flag & APR_FOPEN_BINARY) { ++ fprintf(stderr, "afo flag BINARY\n"); + oflags |= O_BINARY; + } + #endif + + if (flag & APR_FOPEN_NONBLOCK) { + #ifdef O_NONBLOCK ++ fprintf(stderr, "afo flag NONBLOCK\n"); + oflags |= O_NONBLOCK; + #else + return APR_ENOTIMPL; +@@ -147,14 +156,17 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, + /* Introduced in Linux 2.6.23. Silently ignored on earlier Linux kernels. + */ + if (!(flag & APR_FOPEN_NOCLEANUP)) { ++ fprintf(stderr, "afo flag CLOEXEC\n"); + oflags |= O_CLOEXEC; + } + #endif + + #if APR_HAS_LARGE_FILES && defined(_LARGEFILE64_SOURCE) ++ fprintf(stderr, "afo flag LARGEFILE\n"); + oflags |= O_LARGEFILE; + #elif defined(O_LARGEFILE) + if (flag & APR_FOPEN_LARGEFILE) { ++ fprintf(stderr, "afo flag LARGEFILE\n"); + oflags |= O_LARGEFILE; + } + #endif +@@ -164,18 +176,22 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, + rv = apr_thread_mutex_create(&thlock, + APR_THREAD_MUTEX_DEFAULT, pool); + if (rv) { ++ fprintf(stderr, "afo ret 1 %d\n", rv); + return rv; + } + } + #endif + + if (perm == APR_OS_DEFAULT) { ++ fprintf(stderr, "open %d %s\n", oflags, fname); + fd = open(fname, oflags, 0666); + } + else { ++ fprintf(stderr, "open %s %d %d\n", fname, oflags, apr_unix_perms2mode(perm)); + fd = open(fname, oflags, apr_unix_perms2mode(perm)); + } + if (fd < 0) { ++ fprintf(stderr, "afo ret 2 %d\n", errno); + return errno; + } + if (!(flag & APR_FOPEN_NOCLEANUP)) { +@@ -188,12 +204,14 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, + + if ((flags = fcntl(fd, F_GETFD)) == -1) { + close(fd); ++ fprintf(stderr, "afo ret 3 %d\n", errno); + return errno; + } + if ((flags & FD_CLOEXEC) == 0) { + flags |= FD_CLOEXEC; + if (fcntl(fd, F_SETFD, flags) == -1) { + close(fd); ++ fprintf(stderr, "afo ret 4 %d\n", errno); + return errno; + } + } +diff --git a/network_io/unix/sockopt.c b/network_io/unix/sockopt.c +index 6194e9b..a903f91 100644 +--- a/network_io/unix/sockopt.c ++++ b/network_io/unix/sockopt.c +@@ -372,7 +372,7 @@ apr_status_t apr_socket_opt_get(apr_socket_t *sock, + + apr_status_t apr_socket_atmark(apr_socket_t *sock, int *atmark) + { +-#ifndef BEOS_R5 ++#if !defined(BEOS_R5) && !defined(__redox__) + int oobmark; + + if (ioctl(sock->socketdes, SIOCATMARK, (void*) &oobmark) < 0) diff --git a/recipes/wip/dev/other/bender/recipe.toml b/recipes/wip/dev/other/bender/recipe.toml new file mode 100644 index 000000000..49828f814 --- /dev/null +++ b/recipes/wip/dev/other/bender/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/pulp-platform/bender" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/bison/recipe.toml b/recipes/wip/dev/other/bison/recipe.toml new file mode 100644 index 000000000..bacdc687c --- /dev/null +++ b/recipes/wip/dev/other/bison/recipe.toml @@ -0,0 +1,5 @@ +#TODO Compilation error +[source] +tar = "https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/bite/recipe.toml b/recipes/wip/dev/other/bite/recipe.toml new file mode 100644 index 000000000..4a3d0ddf2 --- /dev/null +++ b/recipes/wip/dev/other/bite/recipe.toml @@ -0,0 +1,5 @@ +#TODO rfd crate error +[source] +git = "https://github.com/WINSDK/bite" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/boon/recipe.toml b/recipes/wip/dev/other/boon/recipe.toml new file mode 100644 index 000000000..7d040b141 --- /dev/null +++ b/recipes/wip/dev/other/boon/recipe.toml @@ -0,0 +1,8 @@ +#TODO fs_at crate error +[source] +git = "https://github.com/camchenry/boon" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/bugstalker/recipe.toml b/recipes/wip/dev/other/bugstalker/recipe.toml new file mode 100644 index 000000000..ccbd8a292 --- /dev/null +++ b/recipes/wip/dev/other/bugstalker/recipe.toml @@ -0,0 +1,8 @@ +#TODO make the dependency work +[source] +git = "https://github.com/godzie44/BugStalker" +[build] +template = "cargo" +dependencies = [ + "libunwind", +] diff --git a/recipes/wip/dev/other/cackle/recipe.toml b/recipes/wip/dev/other/cackle/recipe.toml new file mode 100644 index 000000000..1d387def2 --- /dev/null +++ b/recipes/wip/dev/other/cackle/recipe.toml @@ -0,0 +1,10 @@ +#TODO camino crate error +#TODO Probably needs to be ported to Redox +[source] +git = "https://github.com/davidlattimore/cackle" +[build] +template = "cargo" +#script = """ +#cookbook_cargo --features unsupported-os +#""" +# Uncomment the above lines if the Cargo template doesn't work. \ No newline at end of file diff --git a/recipes/wip/dev/other/capnproto/recipe.toml b/recipes/wip/dev/other/capnproto/recipe.toml new file mode 100644 index 000000000..70b5c3446 --- /dev/null +++ b/recipes/wip/dev/other/capnproto/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://capnproto.org/capnproto-c++-1.0.1.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/ccs-tools/recipe.toml b/recipes/wip/dev/other/ccs-tools/recipe.toml new file mode 100644 index 000000000..cc683ce55 --- /dev/null +++ b/recipes/wip/dev/other/ccs-tools/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "make", see https://github.com/UIUC-PPL/ccs_tools#readme +[source] +git = "https://github.com/UIUC-PPL/ccs_tools" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/charm++/recipe.toml b/recipes/wip/dev/other/charm++/recipe.toml new file mode 100644 index 000000000..70f77ee73 --- /dev/null +++ b/recipes/wip/dev/other/charm++/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for cross-compilation, see https://charm.readthedocs.io/en/latest/charm++/manual.html#installing-charm +[source] +tar = "http://charm.cs.illinois.edu/distrib/charm-7.0.0.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/chars/recipe.toml b/recipes/wip/dev/other/chars/recipe.toml new file mode 100644 index 000000000..931cd8f28 --- /dev/null +++ b/recipes/wip/dev/other/chars/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/boinkor-net/chars" +[build] +template = "custom" +script = """ +cookbook_cargo_packages chars +""" diff --git a/recipes/wip/dev/other/cling/recipe.toml b/recipes/wip/dev/other/cling/recipe.toml new file mode 100644 index 000000000..9c3b32861 --- /dev/null +++ b/recipes/wip/dev/other/cling/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/vgvassilev/cling#building-from-source +[source] +git = "https://github.com/vgvassilev/cling" +rev = "ab81cdcc61f26dfd6a31fb141f1f4b335f6922be" +[build] +template = "cmake" diff --git a/recipes/wip/dev/other/colm/recipe.toml b/recipes/wip/dev/other/colm/recipe.toml new file mode 100644 index 000000000..21a0e1dbe --- /dev/null +++ b/recipes/wip/dev/other/colm/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://www.colm.net/files/colm/colm-0.14.7.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/colmena/recipe.toml b/recipes/wip/dev/other/colmena/recipe.toml new file mode 100644 index 000000000..da33c5c63 --- /dev/null +++ b/recipes/wip/dev/other/colmena/recipe.toml @@ -0,0 +1,5 @@ +#TODO sys-info crate error (after cargo update) +[source] +git = "https://github.com/zhaofengli/colmena" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/commit/recipe.toml b/recipes/wip/dev/other/commit/recipe.toml new file mode 100644 index 000000000..1fd3f8563 --- /dev/null +++ b/recipes/wip/dev/other/commit/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/alt-art/commit" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/cppunit/recipe.toml b/recipes/wip/dev/other/cppunit/recipe.toml new file mode 100644 index 000000000..047d081c4 --- /dev/null +++ b/recipes/wip/dev/other/cppunit/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "http://dev-www.libreoffice.org/src/cppunit-1.15.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/crates-tui/recipe.toml b/recipes/wip/dev/other/crates-tui/recipe.toml new file mode 100644 index 000000000..f7ded8dd9 --- /dev/null +++ b/recipes/wip/dev/other/crates-tui/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ratatui-org/crates-tui" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/criner/recipe.toml b/recipes/wip/dev/other/criner/recipe.toml new file mode 100644 index 000000000..2226020fa --- /dev/null +++ b/recipes/wip/dev/other/criner/recipe.toml @@ -0,0 +1,12 @@ +#TODO compiled but not tested (after cargo update) +#TODO missing script to properly move th binary +[source] +git = "https://github.com/the-lean-crate/criner" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages criner +""" diff --git a/recipes/wip/dev/other/crosstool-ng/recipe.toml b/recipes/wip/dev/other/crosstool-ng/recipe.toml new file mode 100644 index 000000000..f64605fd1 --- /dev/null +++ b/recipes/wip/dev/other/crosstool-ng/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't find libtool +[source] +tar = "http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.26.0.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/customasm/recipe.toml b/recipes/wip/dev/other/customasm/recipe.toml new file mode 100644 index 000000000..42728a55a --- /dev/null +++ b/recipes/wip/dev/other/customasm/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/hlorenzi/customasm" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/debugedit/recipe.toml b/recipes/wip/dev/other/debugedit/recipe.toml new file mode 100644 index 000000000..c7c0b40d0 --- /dev/null +++ b/recipes/wip/dev/other/debugedit/recipe.toml @@ -0,0 +1,8 @@ +#TODO make elfutils work +[source] +tar = "https://sourceware.org/ftp/debugedit/5.0/debugedit-5.0.tar.xz" +[build] +template = "configure" +dependencies = [ + "elfutils", +] diff --git a/recipes/wip/dev/other/deploy-rs/recipe.toml b/recipes/wip/dev/other/deploy-rs/recipe.toml new file mode 100644 index 000000000..aef3f5c8c --- /dev/null +++ b/recipes/wip/dev/other/deploy-rs/recipe.toml @@ -0,0 +1,9 @@ +#TODO add a command to properly move the binary +[source] +git = "https://github.com/serokell/deploy-rs" +[build] +template = "custom" +script = """ +mv "${COOKBOOK_STAGE}/usr/bin/deploy" "${COOKBOOK_STAGE}/usr/bin/deploy-rs" +cookbook_cargo +""" diff --git a/recipes/wip/dev/other/deps-rs/recipe.toml b/recipes/wip/dev/other/deps-rs/recipe.toml new file mode 100644 index 000000000..6409f7885 --- /dev/null +++ b/recipes/wip/dev/other/deps-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/deps-rs/deps.rs" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/difftastic/recipe.toml b/recipes/wip/dev/other/difftastic/recipe.toml new file mode 100644 index 000000000..99a4c7228 --- /dev/null +++ b/recipes/wip/dev/other/difftastic/recipe.toml @@ -0,0 +1,8 @@ +#TODO make mimalloc work +[source] +git = "https://github.com/Wilfred/difftastic" +[build] +template = "cargo" +dependencies = [ + "mimalloc", +] diff --git a/recipes/wip/dev/other/dioxus/recipe.toml b/recipes/wip/dev/other/dioxus/recipe.toml new file mode 100644 index 000000000..bbe739abe --- /dev/null +++ b/recipes/wip/dev/other/dioxus/recipe.toml @@ -0,0 +1,12 @@ +#TODO compilation error +#TODO need to install the bindgen-cli build tool from cargo: cargo install --force --locked bindgen-cli +[source] +git = "https://github.com/DioxusLabs/dioxus" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages dioxus-cli +""" diff --git a/recipes/wip/dev/other/doxygen/recipe.toml b/recipes/wip/dev/other/doxygen/recipe.toml new file mode 100644 index 000000000..ec69b8bfe --- /dev/null +++ b/recipes/wip/dev/other/doxygen/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://www.doxygen.nl/manual/install.html#install_src_unix +[source] +tar = "https://www.doxygen.nl/files/doxygen-1.9.8.src.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/dev/other/dtool/recipe.toml b/recipes/wip/dev/other/dtool/recipe.toml new file mode 100644 index 000000000..480a35e68 --- /dev/null +++ b/recipes/wip/dev/other/dtool/recipe.toml @@ -0,0 +1,5 @@ +#TODO update the redox_syscall version on the dependency tree +[source] +git = "https://github.com/guoxbin/dtool" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/ecargo/recipe.toml b/recipes/wip/dev/other/ecargo/recipe.toml new file mode 100644 index 000000000..ca92de77e --- /dev/null +++ b/recipes/wip/dev/other/ecargo/recipe.toml @@ -0,0 +1,5 @@ +#TODO glutin crate error +[source] +git = "https://github.com/crumblingstatue/ecargo" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/elfshaker/recipe.toml b/recipes/wip/dev/other/elfshaker/recipe.toml new file mode 100644 index 000000000..00835dc55 --- /dev/null +++ b/recipes/wip/dev/other/elfshaker/recipe.toml @@ -0,0 +1,5 @@ +#TODO rustc-serialize crate error (after an update on proc-macro2 and patch on ring) +[source] +git = "https://github.com/elfshaker/elfshaker" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/elfutils/recipe.toml b/recipes/wip/dev/other/elfutils/recipe.toml new file mode 100644 index 000000000..dcc701ab7 --- /dev/null +++ b/recipes/wip/dev/other/elfutils/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://sourceware.org/elfutils/ftp/0.190/elfutils-0.190.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/espmonitor/recipe.toml b/recipes/wip/dev/other/espmonitor/recipe.toml new file mode 100644 index 000000000..3281febb0 --- /dev/null +++ b/recipes/wip/dev/other/espmonitor/recipe.toml @@ -0,0 +1,8 @@ +#TODO termios crate error (after cargo update) +[source] +git = "https://github.com/esp-rs/espmonitor" +[build] +template = "custom" +script = """ +cookbook_cargo_packages espmonitor cargo-espmonitor +""" diff --git a/recipes/wip/dev/other/eww/recipe.toml b/recipes/wip/dev/other/eww/recipe.toml new file mode 100644 index 000000000..6626c45fb --- /dev/null +++ b/recipes/wip/dev/other/eww/recipe.toml @@ -0,0 +1,15 @@ +#TODO make gtk3 work +[source] +git = "https://github.com/elkowar/eww" +[build] +template = "custom" +dependencies = [ + "gtk3", + "pango", + "cairo", + "gdk-pixbuf", + "glib", +] +script = """ +cookbook_cargo_packages eww +""" diff --git a/recipes/wip/dev/other/fal/recipe.toml b/recipes/wip/dev/other/fal/recipe.toml new file mode 100644 index 000000000..c8e48a478 --- /dev/null +++ b/recipes/wip/dev/other/fal/recipe.toml @@ -0,0 +1,6 @@ +[source] +git = "https://github.com/4lDO2/fal-rs" + +[build] +template = "custom" +script = "cookbook_cargo_packages fal-frontend-redox" diff --git a/recipes/wip/dev/other/fazi/recipe.toml b/recipes/wip/dev/other/fazi/recipe.toml new file mode 100644 index 000000000..9ed656e7b --- /dev/null +++ b/recipes/wip/dev/other/fazi/recipe.toml @@ -0,0 +1,8 @@ +#TODO library source code error +[source] +git = "https://github.com/landaire/fazi" +[build] +template = "custom" +script = """ +cookbook_cargo_packages fazi +""" diff --git a/recipes/wip/dev/other/firedbg/recipe.toml b/recipes/wip/dev/other/firedbg/recipe.toml new file mode 100644 index 000000000..a185d58b3 --- /dev/null +++ b/recipes/wip/dev/other/firedbg/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script to properly move the binary +[source] +git = "https://github.com/SeaQL/FireDBG.for.Rust" +[build] +template = "custom" +script = """ +cookbook_cargo_packages firedbg-cli +""" diff --git a/recipes/wip/dev/other/flamegraph/recipe.toml b/recipes/wip/dev/other/flamegraph/recipe.toml new file mode 100644 index 000000000..21a22105b --- /dev/null +++ b/recipes/wip/dev/other/flamegraph/recipe.toml @@ -0,0 +1,8 @@ +#TODO require DTrace support +[source] +git = "https://github.com/flamegraph-rs/flamegraph" +[build] +template = "custom" +script = """ +cookbook_cargo_packages flamegraph +""" diff --git a/recipes/wip/dev/other/flex/recipe.toml b/recipes/wip/dev/other/flex/recipe.toml new file mode 100644 index 000000000..da86f6818 --- /dev/null +++ b/recipes/wip/dev/other/flex/recipe.toml @@ -0,0 +1,5 @@ +#TODO configuration error +[source] +tar = "https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/gegl/recipe.toml b/recipes/wip/dev/other/gegl/recipe.toml new file mode 100644 index 000000000..37b448db6 --- /dev/null +++ b/recipes/wip/dev/other/gegl/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/gegl/-/blob/master/docs/development.adoc?ref_type=heads#user-content-debugging +[source] +tar = "https://download.gimp.org/pub/gegl/0.4/gegl-0.4.46.tar.xz" +[build] +template = "meson" +dependencies = [ + "libpng", + "glib", +] diff --git a/recipes/wip/dev/other/gem5/recipe.toml b/recipes/wip/dev/other/gem5/recipe.toml new file mode 100644 index 000000000..692a8ed5b --- /dev/null +++ b/recipes/wip/dev/other/gem5/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for SCons, see https://www.gem5.org/documentation/general_docs/building +[source] +git = "https://github.com/gem5/gem5" +rev = "6835f0665744bba3d56921c9406ee97e841b60a0" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/get-blessed/recipe.toml b/recipes/wip/dev/other/get-blessed/recipe.toml new file mode 100644 index 000000000..6c4b14fdb --- /dev/null +++ b/recipes/wip/dev/other/get-blessed/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/josueBarretogit/get_blessed_rs" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/gex/recipe.toml b/recipes/wip/dev/other/gex/recipe.toml new file mode 100644 index 000000000..3d710cf22 --- /dev/null +++ b/recipes/wip/dev/other/gex/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Piturnah/gex" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/gexiv2/recipe.toml b/recipes/wip/dev/other/gexiv2/recipe.toml new file mode 100644 index 000000000..fe53453b7 --- /dev/null +++ b/recipes/wip/dev/other/gexiv2/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/gexiv2/-/blob/master/INSTALLING?ref_type=heads +[source] +tar = "https://download.gnome.org/sources/gexiv2/0.14/gexiv2-0.14.2.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/dev/other/gfold/recipe.toml b/recipes/wip/dev/other/gfold/recipe.toml new file mode 100644 index 000000000..f698808ea --- /dev/null +++ b/recipes/wip/dev/other/gfold/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/nickgerace/gfold" +[build] +template = "custom" +script = """ +cookbook_cargo_packages gfold +""" diff --git a/recipes/wip/dev/other/ghostpdl/recipe.toml b/recipes/wip/dev/other/ghostpdl/recipe.toml new file mode 100644 index 000000000..b6ebf1d7d --- /dev/null +++ b/recipes/wip/dev/other/ghostpdl/recipe.toml @@ -0,0 +1,5 @@ +#TODO error on the libtiff configure script +[source] +tar = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10021/ghostpdl-10.02.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/gist-rs/recipe.toml b/recipes/wip/dev/other/gist-rs/recipe.toml new file mode 100644 index 000000000..4d89631e6 --- /dev/null +++ b/recipes/wip/dev/other/gist-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/oz/gist" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/gitlab-cargo-shim/recipe.toml b/recipes/wip/dev/other/gitlab-cargo-shim/recipe.toml new file mode 100644 index 000000000..2827f4c87 --- /dev/null +++ b/recipes/wip/dev/other/gitlab-cargo-shim/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/w4/gitlab-cargo-shim" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/glibmm/recipe.toml b/recipes/wip/dev/other/glibmm/recipe.toml new file mode 100644 index 000000000..4ed01f0cb --- /dev/null +++ b/recipes/wip/dev/other/glibmm/recipe.toml @@ -0,0 +1,8 @@ +#TODO probably wrong template, see https://gitlab.gnome.org/GNOME/glibmm#building +[source] +tar = "https://download.gnome.org/sources/glibmm/2.78/glibmm-2.78.0.tar.xz" +[build] +template = "configure" +dependencies = [ + "glib", +] diff --git a/recipes/wip/dev/other/gperf/recipe.toml b/recipes/wip/dev/other/gperf/recipe.toml new file mode 100644 index 000000000..d15f30a48 --- /dev/null +++ b/recipes/wip/dev/other/gperf/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not fully tested +[source] +tar = "https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/graphene/recipe.toml b/recipes/wip/dev/other/graphene/recipe.toml new file mode 100644 index 000000000..40d77cfe4 --- /dev/null +++ b/recipes/wip/dev/other/graphene/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ebassi/graphene#installation +[source] +tar = "https://download.gnome.org/sources/graphene/1.10/graphene-1.10.8.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/dev/other/grcov/recipe.toml b/recipes/wip/dev/other/grcov/recipe.toml new file mode 100644 index 000000000..ead221f40 --- /dev/null +++ b/recipes/wip/dev/other/grcov/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/mozilla/grcov" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/gtest/recipe.toml b/recipes/wip/dev/other/gtest/recipe.toml new file mode 100644 index 000000000..b9370e250 --- /dev/null +++ b/recipes/wip/dev/other/gtest/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/google/googletest/blob/main/googletest/README.md +[source] +git = "https://github.com/google/googletest" +rev = "f8d7d77c06936315286eb55f8de22cd23c188571" +[build] +template = "cmake" diff --git a/recipes/wip/dev/other/guile/recipe.toml b/recipes/wip/dev/other/guile/recipe.toml new file mode 100644 index 000000000..dded977d1 --- /dev/null +++ b/recipes/wip/dev/other/guile/recipe.toml @@ -0,0 +1,14 @@ +#TODO make dependencies work +[source] +tar = "https://ftp.gnu.org/gnu/guile/guile-3.0.9.tar.xz" +[build] +template = "configure" +dependencies = [ + "libgmp", + "libiconv", + "libunistring", + "libgc", + "readline", + "libffi", + "libintl", +] diff --git a/recipes/wip/dev/other/harper/recipe.toml b/recipes/wip/dev/other/harper/recipe.toml new file mode 100644 index 000000000..6e4e81473 --- /dev/null +++ b/recipes/wip/dev/other/harper/recipe.toml @@ -0,0 +1,8 @@ +#TODO linking error +[source] +git = "https://github.com/Automattic/harper" +[build] +template = "custom" +script = """ +cookbook_cargo_packages harper-ls +""" diff --git a/recipes/wip/dev/other/headers/recipe.toml b/recipes/wip/dev/other/headers/recipe.toml new file mode 100644 index 000000000..70db59f0a --- /dev/null +++ b/recipes/wip/dev/other/headers/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libxcb work +[source] +git = "https://github.com/transmissions11/headers" +[build] +template = "cargo" +dependencies = [ + "libxcb", +] diff --git a/recipes/wip/dev/other/hexyl/recipe.toml b/recipes/wip/dev/other/hexyl/recipe.toml new file mode 100644 index 000000000..41ee1a16e --- /dev/null +++ b/recipes/wip/dev/other/hexyl/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/sharkdp/hexyl" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/honggfuzz/recipe.toml b/recipes/wip/dev/other/honggfuzz/recipe.toml new file mode 100644 index 000000000..a4a5c4b20 --- /dev/null +++ b/recipes/wip/dev/other/honggfuzz/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for "make", see https://github.com/google/honggfuzz#installation +[source] +git = "https://github.com/google/honggfuzz" +rev = "83a8415a372d84dcc69ac1e2c2f152190bcf76d1" +[build] +template = "custom" +dependencies = [ + "libunwind", +] diff --git a/recipes/wip/dev/other/htmlq/recipe.toml b/recipes/wip/dev/other/htmlq/recipe.toml new file mode 100644 index 000000000..5c3c402f3 --- /dev/null +++ b/recipes/wip/dev/other/htmlq/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/mgdm/htmlq" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/hvm/recipe.toml b/recipes/wip/dev/other/hvm/recipe.toml new file mode 100644 index 000000000..27791717c --- /dev/null +++ b/recipes/wip/dev/other/hvm/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/HigherOrderCO/HVM" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/icemaker/recipe.toml b/recipes/wip/dev/other/icemaker/recipe.toml new file mode 100644 index 000000000..1dd73e8aa --- /dev/null +++ b/recipes/wip/dev/other/icemaker/recipe.toml @@ -0,0 +1,5 @@ +#TODO tree-sitter-rust error +[source] +git = "https://github.com/matthiaskrgr/icemaker" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/inko/recipe.toml b/recipes/wip/dev/other/inko/recipe.toml new file mode 100644 index 000000000..0f6d33df9 --- /dev/null +++ b/recipes/wip/dev/other/inko/recipe.toml @@ -0,0 +1,5 @@ +#TODO Require LLVM 15 +[source] +tar = "https://releases.inko-lang.org/0.11.0.tar.gz" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/intltool/recipe.toml b/recipes/wip/dev/other/intltool/recipe.toml new file mode 100644 index 000000000..3a5ae285a --- /dev/null +++ b/recipes/wip/dev/other/intltool/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/irust/recipe.toml b/recipes/wip/dev/other/irust/recipe.toml new file mode 100644 index 000000000..5af88ce89 --- /dev/null +++ b/recipes/wip/dev/other/irust/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/sigmaSd/IRust" +[build] +template = "custom" +script = """ +cookbook_cargo_packages irust +""" diff --git a/recipes/wip/dev/other/ispc/recipe.toml b/recipes/wip/dev/other/ispc/recipe.toml new file mode 100644 index 000000000..d77f6174f --- /dev/null +++ b/recipes/wip/dev/other/ispc/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for building, see https://github.com/ispc/ispc/wiki/ISPC-Development-Guide#build-system +[source] +git = "https://github.com/ispc/ispc" +rev = "bd2c42d42e0cc3da1baf92160b82d4dc820a02ee" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/jaq/recipe.toml b/recipes/wip/dev/other/jaq/recipe.toml new file mode 100644 index 000000000..309ad16ab --- /dev/null +++ b/recipes/wip/dev/other/jaq/recipe.toml @@ -0,0 +1,8 @@ +#TODO mimalloc error +[source] +git = "https://github.com/01mf02/jaq" +[build] +template = "custom" +script = """ +cookbook_cargo_packages jaq +""" diff --git a/recipes/wip/dev/other/jco/recipe.toml b/recipes/wip/dev/other/jco/recipe.toml new file mode 100644 index 000000000..34035ea0c --- /dev/null +++ b/recipes/wip/dev/other/jco/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/bytecodealliance/jco" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/jq/recipe.toml b/recipes/wip/dev/other/jq/recipe.toml new file mode 100644 index 000000000..26932f402 --- /dev/null +++ b/recipes/wip/dev/other/jq/recipe.toml @@ -0,0 +1,5 @@ +#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/jujutsu/recipe.toml b/recipes/wip/dev/other/jujutsu/recipe.toml new file mode 100644 index 000000000..15e349b1e --- /dev/null +++ b/recipes/wip/dev/other/jujutsu/recipe.toml @@ -0,0 +1,11 @@ +#TODO mac_address crate error +[source] +git = "https://github.com/martinvonz/jj" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages jj-cli +""" diff --git a/recipes/wip/dev/other/kicad/recipe.toml b/recipes/wip/dev/other/kicad/recipe.toml new file mode 100644 index 000000000..8dfecdca8 --- /dev/null +++ b/recipes/wip/dev/other/kicad/recipe.toml @@ -0,0 +1,19 @@ +#TODO not compiled or tested +#TODO maybe missing dependencies, see https://dev-docs.kicad.org/en/build/getting-started/ +# build instructions: https://dev-docs.kicad.org/en/build/linux/ +[source] +git = "https://gitlab.com/kicad/code/kicad" +rev = "942661fc10e172febf9d9990de2471d4b1020618" +[build] +template = "cmake" +dependencies = [ + "wxwidgets-gtk3", + "cairo", + "boost", + "glew", + "zlib", + "freeglut", + "glm", + "curl", + "ngspice", +] diff --git a/recipes/wip/dev/other/kickstart/recipe.toml b/recipes/wip/dev/other/kickstart/recipe.toml new file mode 100644 index 000000000..b3d789da4 --- /dev/null +++ b/recipes/wip/dev/other/kickstart/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Keats/kickstart" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/knope/recipe.toml b/recipes/wip/dev/other/knope/recipe.toml new file mode 100644 index 000000000..f70300e83 --- /dev/null +++ b/recipes/wip/dev/other/knope/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/knope-dev/knope" +[build] +template = "custom" +script = """ +cookbook_cargo_packages knope +""" diff --git a/recipes/wip/dev/other/kondo/recipe.toml b/recipes/wip/dev/other/kondo/recipe.toml new file mode 100644 index 000000000..e23eda27d --- /dev/null +++ b/recipes/wip/dev/other/kondo/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/tbillington/kondo" +[build] +template = "custom" +script = """ +cookbook_cargo_packages kondo +""" diff --git a/recipes/wip/dev/other/ktra/recipe.toml b/recipes/wip/dev/other/ktra/recipe.toml new file mode 100644 index 000000000..b4113b6e0 --- /dev/null +++ b/recipes/wip/dev/other/ktra/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/moriturus/ktra" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/lading/recipe.toml b/recipes/wip/dev/other/lading/recipe.toml new file mode 100644 index 000000000..9d8a76b76 --- /dev/null +++ b/recipes/wip/dev/other/lading/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/DataDog/lading" +[build] +template = "custom" +script = """ +cookbook_cargo_packages lading +""" diff --git a/recipes/wip/dev/other/leetup/recipe.toml b/recipes/wip/dev/other/leetup/recipe.toml new file mode 100644 index 000000000..717945daf --- /dev/null +++ b/recipes/wip/dev/other/leetup/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/dragfire/leetup" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/leptosfmt/recipe.toml b/recipes/wip/dev/other/leptosfmt/recipe.toml new file mode 100644 index 000000000..662aa4c49 --- /dev/null +++ b/recipes/wip/dev/other/leptosfmt/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/bram209/leptosfmt" +[build] +template = "custom" +script = """ +cookbook_cargo_packages leptosfmt +""" diff --git a/recipes/wip/dev/other/level-zero/recipe.toml b/recipes/wip/dev/other/level-zero/recipe.toml new file mode 100644 index 000000000..75e9fe639 --- /dev/null +++ b/recipes/wip/dev/other/level-zero/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/oneapi-src/level-zero#building-and-installing +[source] +git = "https://github.com/oneapi-src/level-zero" +rev = "ea5be99d8d34480447ab1e3c7efc30d6f179b123" +[build] +template = "cmake" diff --git a/recipes/wip/dev/other/license-generator/recipe.toml b/recipes/wip/dev/other/license-generator/recipe.toml new file mode 100644 index 000000000..98958b468 --- /dev/null +++ b/recipes/wip/dev/other/license-generator/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/azu/license-generator" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/licensure/recipe.toml b/recipes/wip/dev/other/licensure/recipe.toml new file mode 100644 index 000000000..21c306418 --- /dev/null +++ b/recipes/wip/dev/other/licensure/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/chasinglogic/licensure" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/loadlibrary/recipe.toml b/recipes/wip/dev/other/loadlibrary/recipe.toml new file mode 100644 index 000000000..bf97a24ba --- /dev/null +++ b/recipes/wip/dev/other/loadlibrary/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for "make", see https://github.com/taviso/loadlibrary#building +[source] +git = "https://github.com/taviso/loadlibrary" +[build] +template = "custom" +dependencies = [ + "readline", +] diff --git a/recipes/wip/dev/other/lockdiff/recipe.toml b/recipes/wip/dev/other/lockdiff/recipe.toml new file mode 100644 index 000000000..edbb09062 --- /dev/null +++ b/recipes/wip/dev/other/lockdiff/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/your-tools/lockdiff" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/loco/recipe.toml b/recipes/wip/dev/other/loco/recipe.toml new file mode 100644 index 000000000..85d138a1e --- /dev/null +++ b/recipes/wip/dev/other/loco/recipe.toml @@ -0,0 +1,17 @@ +#TODO camino crate error +[source] +git = "https://github.com/loco-rs/loco" +[build] +template = "custom" +script = """ +binary=loco-rs +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${binary}" \ + --release + --cli + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${binary}" \ + "${COOKBOOK_STAGE}/usr/bin/${binary}" +""" diff --git a/recipes/wip/dev/other/lttng-ust/recipe.toml b/recipes/wip/dev/other/lttng-ust/recipe.toml new file mode 100644 index 000000000..fa22fa072 --- /dev/null +++ b/recipes/wip/dev/other/lttng-ust/recipe.toml @@ -0,0 +1,12 @@ +#TODO make dependencies work +[source] +tar = "http://lttng.org/files/lttng-ust/lttng-ust-2.13.6.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libxml2", + "lttng", + "liburcu", + "libuuid", + "popt", +] diff --git a/recipes/wip/dev/other/lurk/recipe.toml b/recipes/wip/dev/other/lurk/recipe.toml new file mode 100644 index 000000000..a94e58fea --- /dev/null +++ b/recipes/wip/dev/other/lurk/recipe.toml @@ -0,0 +1,5 @@ +#TODO users crate error +[source] +git = "https://github.com/JakWai01/lurk" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/margo/recipe.toml b/recipes/wip/dev/other/margo/recipe.toml new file mode 100644 index 000000000..cbc7749b3 --- /dev/null +++ b/recipes/wip/dev/other/margo/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +git = "https://github.com/integer32llc/margo" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/memtest-vulkan/recipe.toml b/recipes/wip/dev/other/memtest-vulkan/recipe.toml new file mode 100644 index 000000000..33ef2ee99 --- /dev/null +++ b/recipes/wip/dev/other/memtest-vulkan/recipe.toml @@ -0,0 +1,5 @@ +#TODO nix, fs4 and rustix crates error +[source] +git = "https://github.com/GpuZelenograd/memtest_vulkan" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/mise/recipe.toml b/recipes/wip/dev/other/mise/recipe.toml new file mode 100644 index 000000000..c554d91c1 --- /dev/null +++ b/recipes/wip/dev/other/mise/recipe.toml @@ -0,0 +1,8 @@ +#TODO shared_child and libc crates error +[source] +git = "https://github.com/jdx/mise" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/mkrs/recipe.toml b/recipes/wip/dev/other/mkrs/recipe.toml new file mode 100644 index 000000000..91e9c60e7 --- /dev/null +++ b/recipes/wip/dev/other/mkrs/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate +[source] +git = "https://github.com/qtfkwk/mkrs" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/mnn/recipe.toml b/recipes/wip/dev/other/mnn/recipe.toml new file mode 100644 index 000000000..605457a02 --- /dev/null +++ b/recipes/wip/dev/other/mnn/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# lacking English build instructions +[source] +git = "https://github.com/alibaba/MNN" +rev = "1ea55f467fb231655cf1e08f77d4a0f1043c4c29" +[build] +template = "cmake" diff --git a/recipes/wip/dev/other/mold/recipe.toml b/recipes/wip/dev/other/mold/recipe.toml new file mode 100644 index 000000000..7234cb240 --- /dev/null +++ b/recipes/wip/dev/other/mold/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions - https://github.com/rui314/mold#how-to-build +[source] +git = "https://github.com/rui314/mold" +rev = "b53197300b5bf9f02daccae536f65dda2d1431c5" +[build] +template = "cmake" diff --git a/recipes/wip/dev/other/morty/recipe.toml b/recipes/wip/dev/other/morty/recipe.toml new file mode 100644 index 000000000..42fd49aeb --- /dev/null +++ b/recipes/wip/dev/other/morty/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/pulp-platform/morty" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/ncnn/recipe.toml b/recipes/wip/dev/other/ncnn/recipe.toml new file mode 100644 index 000000000..b363536e7 --- /dev/null +++ b/recipes/wip/dev/other/ncnn/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux +[source] +git = "https://github.com/Tencent/ncnn" +[build] +template = "cmake" +dependencies = [ + "protobuf", + "libvulkan", + "opencv4", +] diff --git a/recipes/wip/dev/other/necessist/recipe.toml b/recipes/wip/dev/other/necessist/recipe.toml new file mode 100644 index 000000000..43deeb237 --- /dev/null +++ b/recipes/wip/dev/other/necessist/recipe.toml @@ -0,0 +1,12 @@ +#TODO camino crate error +[source] +git = "https://github.com/trailofbits/necessist" +[build] +template = "custom" +dependencies = [ + "sqlite3", + "openssl1", +] +script = """ +cookbook_cargo_packages necessist +""" diff --git a/recipes/wip/dev/other/netradiant/recipe.toml b/recipes/wip/dev/other/netradiant/recipe.toml new file mode 100644 index 000000000..eb1bf9872 --- /dev/null +++ b/recipes/wip/dev/other/netradiant/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/xonotic/netradiant#advanced-compilation +[source] +git = "https://gitlab.com/xonotic/netradiant" +[build] +template = "cmake" +dependencies = [ + "libxml2", + "mesa", + "gtk2", + "libjpeg", + "libpng", + "zlib", +] diff --git a/recipes/wip/dev/other/ngspice/recipe.toml b/recipes/wip/dev/other/ngspice/recipe.toml new file mode 100644 index 000000000..d8e6f1ab4 --- /dev/null +++ b/recipes/wip/dev/other/ngspice/recipe.toml @@ -0,0 +1,15 @@ +#TODO maybe wrong script, see https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/INSTALL +#TODO maybe missing dependencies +[source] +tar = "https://sourceforge.net/projects/ngspice/files/ng-spice-rework/42/ngspice-42.tar.gz/download" +[build] +template = "custom" +script = """ +cd release +COOKBOOK_CONFIGURE_FLAGS+=( + --with-x + --with-readline=yes + --disable-debug +) +cookbook_configure +""" diff --git a/recipes/wip/dev/other/not-perf/recipe.toml b/recipes/wip/dev/other/not-perf/recipe.toml new file mode 100644 index 000000000..af14fe02d --- /dev/null +++ b/recipes/wip/dev/other/not-perf/recipe.toml @@ -0,0 +1,8 @@ +#TODO perf_event_open crate error (after cargo update) +[source] +git = "https://github.com/koute/not-perf" +[build] +template = "custom" +script = """ +cookbook_cargo_packages nperf +""" diff --git a/recipes/wip/dev/other/novops/recipe.toml b/recipes/wip/dev/other/novops/recipe.toml new file mode 100644 index 000000000..d79cfa248 --- /dev/null +++ b/recipes/wip/dev/other/novops/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://pierrebeucher.github.io/novops/install.html#from-source +[source] +git = "https://github.com/PierreBeucher/novops" +rev = "e0891144108a889f18448b39aebe9d5a5ac2689d" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/omni/recipe.toml b/recipes/wip/dev/other/omni/recipe.toml new file mode 100644 index 000000000..de3529e6b --- /dev/null +++ b/recipes/wip/dev/other/omni/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/XaF/omni" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/omnibor-rs/recipe.toml b/recipes/wip/dev/other/omnibor-rs/recipe.toml new file mode 100644 index 000000000..2f407ee96 --- /dev/null +++ b/recipes/wip/dev/other/omnibor-rs/recipe.toml @@ -0,0 +1,17 @@ +#TODO Bash error with the "--build-binary" Cargo flag +[source] +git = "https://github.com/omnibor/omnibor-rs" +[build] +template = "custom" +script = """ +binary=omnibor +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --bin "${binary}" \ + --release + --build-binary + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${binary}" \ + "${COOKBOOK_STAGE}/usr/bin/${binary}" +""" diff --git a/recipes/wip/dev/other/opam/recipe.toml b/recipes/wip/dev/other/opam/recipe.toml new file mode 100644 index 000000000..1ad624f40 --- /dev/null +++ b/recipes/wip/dev/other/opam/recipe.toml @@ -0,0 +1,6 @@ +#TODO configuration problem +#TODO require the OCaml compiler on the host +[source] +tar = "https://github.com/ocaml/opam/releases/download/2.1.5/opam-full-2.1.5.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/opencascade/recipe.toml b/recipes/wip/dev/other/opencascade/recipe.toml new file mode 100644 index 000000000..1f4757573 --- /dev/null +++ b/recipes/wip/dev/other/opencascade/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://dev.opencascade.org/doc/overview/html/build_upgrade__building_occt.html +#TODO missing dependencies, see https://dev.opencascade.org/doc/overview/html/build_upgrade_building_3rdparty.html#build_3rdparty_linux +[source] +tar = "https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V7_8_0.tar.gz" +[build] +template = "cmake" +dependencies = [ + "freetype2", + "tcl", + "tk", +] diff --git a/recipes/wip/dev/other/openradioss/recipe.toml b/recipes/wip/dev/other/openradioss/recipe.toml new file mode 100644 index 000000000..770045fbb --- /dev/null +++ b/recipes/wip/dev/other/openradioss/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for building, see https://github.com/OpenRadioss/OpenRadioss/blob/main/HOWTO.md#building-on-linux +[source] +tar = "https://github.com/OpenRadioss/OpenRadioss" +[build] +template = "custom" +dependencies = [ + "openmpi", +] diff --git a/recipes/wip/dev/other/oxc/recipe.toml b/recipes/wip/dev/other/oxc/recipe.toml new file mode 100644 index 000000000..7d57d15cd --- /dev/null +++ b/recipes/wip/dev/other/oxc/recipe.toml @@ -0,0 +1,8 @@ +#TODO can't fetch the submodules because they need login +[source] +git = "https://github.com/oxc-project/oxc" +[build] +template = "custom" +script = """ +cookbook_cargo_packages oxc +""" diff --git a/recipes/wip/dev/other/oxidizer/recipe.toml b/recipes/wip/dev/other/oxidizer/recipe.toml new file mode 100644 index 000000000..62b3afe91 --- /dev/null +++ b/recipes/wip/dev/other/oxidizer/recipe.toml @@ -0,0 +1,5 @@ +#TODO rustc-serialize crate error +[source] +git = "https://github.com/ix/oxidizer" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/panamax/recipe.toml b/recipes/wip/dev/other/panamax/recipe.toml new file mode 100644 index 000000000..2b2e4de4d --- /dev/null +++ b/recipes/wip/dev/other/panamax/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/panamax-rs/panamax" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/phantom-ci/recipe.toml b/recipes/wip/dev/other/phantom-ci/recipe.toml new file mode 100644 index 000000000..b3cf34dec --- /dev/null +++ b/recipes/wip/dev/other/phantom-ci/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/helloimalemur/phantomci" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/piccolo/recipe.toml b/recipes/wip/dev/other/piccolo/recipe.toml new file mode 100644 index 000000000..af85d93cf --- /dev/null +++ b/recipes/wip/dev/other/piccolo/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/kyren/piccolo" +[build] +template = "custom" +script = """ +cookbook_cargo_examples interpreter +""" diff --git a/recipes/wip/dev/other/pixi/recipe.toml b/recipes/wip/dev/other/pixi/recipe.toml new file mode 100644 index 000000000..0ebe5237f --- /dev/null +++ b/recipes/wip/dev/other/pixi/recipe.toml @@ -0,0 +1,8 @@ +#TODO fs4 crate error (after cargo update) +[source] +git = "https://github.com/prefix-dev/pixi" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/precious/recipe.toml b/recipes/wip/dev/other/precious/recipe.toml new file mode 100644 index 000000000..cf6abee7d --- /dev/null +++ b/recipes/wip/dev/other/precious/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/houseabsolute/precious" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/probe-rs/recipe.toml b/recipes/wip/dev/other/probe-rs/recipe.toml new file mode 100644 index 000000000..9afdaeee9 --- /dev/null +++ b/recipes/wip/dev/other/probe-rs/recipe.toml @@ -0,0 +1,11 @@ +#TODO maybe missing dependencies +[source] +git = "https://github.com/probe-rs/probe-rs" +[build] +template = "custom" +dependencies = [ + "libudev", +] +script = """ +cookbook_cargo --features cli +""" diff --git a/recipes/wip/dev/other/projclean/recipe.toml b/recipes/wip/dev/other/projclean/recipe.toml new file mode 100644 index 000000000..7c8793225 --- /dev/null +++ b/recipes/wip/dev/other/projclean/recipe.toml @@ -0,0 +1,5 @@ +#TODO fs_at crate error +[source] +git = "https://github.com/sigoden/projclean" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/projections/recipe.toml b/recipes/wip/dev/other/projections/recipe.toml new file mode 100644 index 000000000..6ff8d1068 --- /dev/null +++ b/recipes/wip/dev/other/projections/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://github.com/charmplusplus/projections#compiling-projections +[source] +git = "https://github.com/charmplusplus/projections" +rev = "831b63af68f325c64dac307d9d2b5b07d9a21caa" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/protobuf/recipe.toml b/recipes/wip/dev/other/protobuf/recipe.toml new file mode 100644 index 000000000..9458f8c3a --- /dev/null +++ b/recipes/wip/dev/other/protobuf/recipe.toml @@ -0,0 +1,16 @@ +#TODO: Compilation error (relibc issues?) +# Also see https://github.com/protocolbuffers/protobuf/blob/main/cmake/README.md +[source] +git = "https://github.com/protocolbuffers/protobuf" +# Latest release: v31.1 +rev = "74211c0dfc2777318ab53c2cd2c317a2ef9012de" +shallow_clone = true + +[build] +template = "cmake" +cmakeflags = [ + "-Dprotobuf_BUILD_TESTS=OFF" +] +dependencies = [ + "zlib", +] diff --git a/recipes/wip/dev/other/protofetch/recipe.toml b/recipes/wip/dev/other/protofetch/recipe.toml new file mode 100644 index 000000000..33f03db52 --- /dev/null +++ b/recipes/wip/dev/other/protofetch/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/coralogix/protofetch" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/pxp/recipe.toml b/recipes/wip/dev/other/pxp/recipe.toml new file mode 100644 index 000000000..22f12f3ef --- /dev/null +++ b/recipes/wip/dev/other/pxp/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/pxp-lang/pxp" +[build] +template = "custom" +script = """ +cookbook_cargo_packages pxp-tools +""" diff --git a/recipes/wip/dev/other/qbe/recipe.toml b/recipes/wip/dev/other/qbe/recipe.toml new file mode 100644 index 000000000..5ed002476 --- /dev/null +++ b/recipes/wip/dev/other/qbe/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "make", see https://c9x.me/git/qbe.git/tree/README#n13 +[source] +tar = "https://c9x.me/compile/release/qbe-1.1.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/quicktest/recipe.toml b/recipes/wip/dev/other/quicktest/recipe.toml new file mode 100644 index 000000000..15691bc6f --- /dev/null +++ b/recipes/wip/dev/other/quicktest/recipe.toml @@ -0,0 +1,5 @@ +#TODO async-io and rustix crates error +[source] +git = "https://github.com/LuchoBazz/quicktest" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/radicle/recipe.toml b/recipes/wip/dev/other/radicle/recipe.toml new file mode 100644 index 000000000..ba49b09d3 --- /dev/null +++ b/recipes/wip/dev/other/radicle/recipe.toml @@ -0,0 +1,8 @@ +#TODO libc error +[source] +git = "https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git" +[build] +template = "custom" +script = """ +cookbook_cargo_packages radicle-cli radicle-node radicle-remote-helper +""" diff --git a/recipes/wip/dev/other/ragel/recipe.toml b/recipes/wip/dev/other/ragel/recipe.toml new file mode 100644 index 000000000..c4061a20c --- /dev/null +++ b/recipes/wip/dev/other/ragel/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing colm directory on the GNU Autotools flag +[source] +tar = "https://www.colm.net/files/ragel/ragel-6.10.tar.gz" +[build] +template = "custom" +dependencies = [ + "colm", +] +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --with-colm= +) +cookbook_configure +""" diff --git a/recipes/wip/dev/other/rattler-build/recipe.toml b/recipes/wip/dev/other/rattler-build/recipe.toml new file mode 100644 index 000000000..257b77a7d --- /dev/null +++ b/recipes/wip/dev/other/rattler-build/recipe.toml @@ -0,0 +1,8 @@ +#TODO openssl error +[source] +git = "https://github.com/prefix-dev/rattler-build" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/rbasefind/recipe.toml b/recipes/wip/dev/other/rbasefind/recipe.toml new file mode 100644 index 000000000..886bd0f94 --- /dev/null +++ b/recipes/wip/dev/other/rbasefind/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/sgayou/rbasefind" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/redict/recipe.toml b/recipes/wip/dev/other/redict/recipe.toml new file mode 100644 index 000000000..7e7ed8cb8 --- /dev/null +++ b/recipes/wip/dev/other/redict/recipe.toml @@ -0,0 +1,6 @@ +#TODO Missing script for "make", see https://redict.io/docs/install/#installing-from-source +[source] +git = "https://codeberg.org/redict/redict" +rev = "5684cdbd9f2aefb494dfb346292d4322319d236b" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/redis/recipe.toml b/recipes/wip/dev/other/redis/recipe.toml new file mode 100644 index 000000000..f86290f15 --- /dev/null +++ b/recipes/wip/dev/other/redis/recipe.toml @@ -0,0 +1,6 @@ +#TODO Missing script for "make", see https://redis.io/docs/install/install-redis/install-redis-from-source/ +[source] +git = "https://github.com/redis/redis" +rev = "7f4bae817614988c43c3024402d16edcbf3b3277" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/release-plz/recipe.toml b/recipes/wip/dev/other/release-plz/recipe.toml new file mode 100644 index 000000000..3e05dd15e --- /dev/null +++ b/recipes/wip/dev/other/release-plz/recipe.toml @@ -0,0 +1,14 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/MarcoIeni/release-plz" +rev = "68baf26d77a887c3ad90e4ad75ce77d9788f2442" +[build] +dependencies = [ + "openssl1", +] +template = "custom" +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo_packages release-plz +""" diff --git a/recipes/wip/dev/other/renderdoc/recipe.toml b/recipes/wip/dev/other/renderdoc/recipe.toml new file mode 100644 index 000000000..1fb82abeb --- /dev/null +++ b/recipes/wip/dev/other/renderdoc/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING/Compiling.md#linux +[source] +git = "https://github.com/baldurk/renderdoc" +rev = "5f95fb95a2a225a092372e7bd0bfd2073525d3ac" +[build] +template = "cmake" +dependencies = [ + "libxcb", + "mesa", + "qt5-base", + "pcre", +] diff --git a/recipes/wip/dev/other/resym/recipe.toml b/recipes/wip/dev/other/resym/recipe.toml new file mode 100644 index 000000000..716d6dff1 --- /dev/null +++ b/recipes/wip/dev/other/resym/recipe.toml @@ -0,0 +1,8 @@ +#TODO webbrowser crate error +[source] +git = "https://github.com/ergrelet/resym" +[build] +template = "custom" +script = """ +cookbook_cargo_packages resym resymc +""" diff --git a/recipes/wip/dev/other/rgit/recipe.toml b/recipes/wip/dev/other/rgit/recipe.toml new file mode 100644 index 000000000..8531793bc --- /dev/null +++ b/recipes/wip/dev/other/rgit/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error +[source] +git = "https://github.com/w4/rgit" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/rhack/recipe.toml b/recipes/wip/dev/other/rhack/recipe.toml new file mode 100644 index 000000000..0b6e1fa49 --- /dev/null +++ b/recipes/wip/dev/other/rhack/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/nakabonne/rhack" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/rudra/recipe.toml b/recipes/wip/dev/other/rudra/recipe.toml new file mode 100644 index 000000000..0cec8f00e --- /dev/null +++ b/recipes/wip/dev/other/rudra/recipe.toml @@ -0,0 +1,5 @@ +#TODO ouutdated redox_syscall crate? +[source] +git = "https://github.com/sslab-gatech/Rudra" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/rust-counter-strings/recipe.toml b/recipes/wip/dev/other/rust-counter-strings/recipe.toml new file mode 100644 index 000000000..deb3cd754 --- /dev/null +++ b/recipes/wip/dev/other/rust-counter-strings/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/thomaschaplin/rust-counter-strings" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/rusty-radamsa/recipe.toml b/recipes/wip/dev/other/rusty-radamsa/recipe.toml new file mode 100644 index 000000000..fdb789aef --- /dev/null +++ b/recipes/wip/dev/other/rusty-radamsa/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/microsoft/rusty-radamsa" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/shaderc/recipe.toml b/recipes/wip/dev/other/shaderc/recipe.toml new file mode 100644 index 000000000..6dde3f798 --- /dev/null +++ b/recipes/wip/dev/other/shaderc/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/google/shaderc#getting-and-building-shaderc +[source] +git = "https://github.com/google/shaderc" +rev = "3882b16417077aa8eaa7b5775920e7ba4b8a224d" +[build] +template = "cmake" diff --git a/recipes/wip/dev/other/silicon/recipe.toml b/recipes/wip/dev/other/silicon/recipe.toml new file mode 100644 index 000000000..b2b17b4f7 --- /dev/null +++ b/recipes/wip/dev/other/silicon/recipe.toml @@ -0,0 +1,8 @@ +#TODO the yeslogic-fontconfig-sys crate can't find the fontconfig dependency +[source] +git = "https://github.com/Aloxaf/silicon" +[build] +template = "cargo" +dependencies = [ + "fontconfig", +] diff --git a/recipes/wip/dev/other/souper/recipe.toml b/recipes/wip/dev/other/souper/recipe.toml new file mode 100644 index 000000000..2ebf55477 --- /dev/null +++ b/recipes/wip/dev/other/souper/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/google/souper#building-souper +[source] +git = "https://github.com/google/souper" +[build] +template = "cmake" diff --git a/recipes/wip/dev/other/steel/recipe.toml b/recipes/wip/dev/other/steel/recipe.toml new file mode 100644 index 000000000..7bbde1aec --- /dev/null +++ b/recipes/wip/dev/other/steel/recipe.toml @@ -0,0 +1,8 @@ +#TODO rustyline crate error +[source] +git = "https://github.com/mattwparas/steel" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/stgit/recipe.toml b/recipes/wip/dev/other/stgit/recipe.toml new file mode 100644 index 000000000..4f7ee3f82 --- /dev/null +++ b/recipes/wip/dev/other/stgit/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/stacked-git/stgit" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/other/stitch/recipe.toml b/recipes/wip/dev/other/stitch/recipe.toml new file mode 100644 index 000000000..22ecab471 --- /dev/null +++ b/recipes/wip/dev/other/stitch/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/makepad/stitch" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/svd2rust/recipe.toml b/recipes/wip/dev/other/svd2rust/recipe.toml new file mode 100644 index 000000000..8e7813165 --- /dev/null +++ b/recipes/wip/dev/other/svd2rust/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/rust-embedded/svd2rust" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/swig/recipe.toml b/recipes/wip/dev/other/swig/recipe.toml new file mode 100644 index 000000000..578430733 --- /dev/null +++ b/recipes/wip/dev/other/swig/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing pcre2.h +[source] +tar = "http://prdownloads.sourceforge.net/swig/swig-4.1.1.tar.gz" +[build] +template = "configure" +dependencies = [ + "pcre", +] diff --git a/recipes/wip/dev/other/tcl/recipe.toml b/recipes/wip/dev/other/tcl/recipe.toml new file mode 100644 index 000000000..ea2c70a20 --- /dev/null +++ b/recipes/wip/dev/other/tcl/recipe.toml @@ -0,0 +1,9 @@ +#TODO maybe wrong template, see https://www.tcl.tk/doc/howto/compile.html#unix +[source] +tar = "http://prdownloads.sourceforge.net/tcl/tcl8.6.13-src.tar.gz" +[build] +template = "custom" +script = """ +cd unix +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/wip/dev/other/tk/recipe.toml b/recipes/wip/dev/other/tk/recipe.toml new file mode 100644 index 000000000..a52bfa6f7 --- /dev/null +++ b/recipes/wip/dev/other/tk/recipe.toml @@ -0,0 +1,9 @@ +#TODO maybe wrong template, see https://www.tcl.tk/doc/howto/compile.html#unix +[source] +tar = "http://prdownloads.sourceforge.net/tcl/tk8.6.13-src.tar.gz" +[build] +template = "custom" +script = """ +cd unix +cookbook_configure +""" diff --git a/recipes/wip/dev/other/tnn/recipe.toml b/recipes/wip/dev/other/tnn/recipe.toml new file mode 100644 index 000000000..6d4224a6f --- /dev/null +++ b/recipes/wip/dev/other/tnn/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for building, see https://github.com/Tencent/TNN/blob/master/doc/en/user/compile_en.md#iv-compilex86-linux +[source] +git = "https://github.com/Tencent/TNN" +rev = "491dfc8653e200b5e8a428069638e191662a0882" +[build] +template = "custom" diff --git a/recipes/wip/dev/other/tokio-console/recipe.toml b/recipes/wip/dev/other/tokio-console/recipe.toml new file mode 100644 index 000000000..d89d5682c --- /dev/null +++ b/recipes/wip/dev/other/tokio-console/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/tokio-rs/console" +[build] +template = "custom" +script = """ +cookbook_cargo_packages tokio-console +""" diff --git a/recipes/wip/dev/other/tv/recipe.toml b/recipes/wip/dev/other/tv/recipe.toml new file mode 100644 index 000000000..2071fe2f5 --- /dev/null +++ b/recipes/wip/dev/other/tv/recipe.toml @@ -0,0 +1,5 @@ +#TODO update mio to 0.8 (after cargo update) +[source] +git = "https://github.com/alexhallam/tv" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/twiggy/recipe.toml b/recipes/wip/dev/other/twiggy/recipe.toml new file mode 100644 index 000000000..55db6fba0 --- /dev/null +++ b/recipes/wip/dev/other/twiggy/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/rustwasm/twiggy" +[build] +template = "custom" +script = """ +cookbook_cargo_packages twiggy +""" diff --git a/recipes/wip/dev/other/ucd-generate/recipe.toml b/recipes/wip/dev/other/ucd-generate/recipe.toml new file mode 100644 index 000000000..ea493a145 --- /dev/null +++ b/recipes/wip/dev/other/ucd-generate/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/BurntSushi/ucd-generate" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/ut/recipe.toml b/recipes/wip/dev/other/ut/recipe.toml new file mode 100644 index 000000000..5020af72f --- /dev/null +++ b/recipes/wip/dev/other/ut/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ksdme/ut" +[build] +template = "cargo" diff --git a/recipes/wip/dev/other/valgrind/recipe.toml b/recipes/wip/dev/other/valgrind/recipe.toml new file mode 100644 index 000000000..720d81fa8 --- /dev/null +++ b/recipes/wip/dev/other/valgrind/recipe.toml @@ -0,0 +1,5 @@ +#TODO port to redox +[source] +tar = "https://sourceware.org/pub/valgrind/valgrind-3.22.0.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/valkey/recipe.toml b/recipes/wip/dev/other/valkey/recipe.toml new file mode 100644 index 000000000..30c251925 --- /dev/null +++ b/recipes/wip/dev/other/valkey/recipe.toml @@ -0,0 +1,19 @@ +#TODO Compiling, server crashes in page fault +[source] +git = "https://github.com/valkey-io/valkey" +rev = "a47e8fa1505578d78cef5c5e11da0972c3dae560" # 8.1.3 + +[build] +template = "custom" +dependencies = [ + "openssl1" +] + +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}"/* ./ +${COOKBOOK_MAKE} MALLOC=libc BUILD_TLS=yes \ + WARN="-Wall -W -Wno-missing-field-initializers" \ + WARNINGS="-Wall -W -Wno-missing-field-initializers" \ + AR="${TARGET}-gcc-ar" +${COOKBOOK_MAKE} install PREFIX="${COOKBOOK_STAGE}"/usr +""" diff --git a/recipes/wip/dev/other/verrou/recipe.toml b/recipes/wip/dev/other/verrou/recipe.toml new file mode 100644 index 000000000..0417a70db --- /dev/null +++ b/recipes/wip/dev/other/verrou/recipe.toml @@ -0,0 +1,5 @@ +#TODO port to redox +[source] +tar = "https://github.com/edf-hpc/verrou/releases/download/v2.5.0/valgrind-3.21.0_verrou-2.5.0.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/dev/other/wrkflw/recipe.toml b/recipes/wip/dev/other/wrkflw/recipe.toml new file mode 100644 index 000000000..af0ca6d3f --- /dev/null +++ b/recipes/wip/dev/other/wrkflw/recipe.toml @@ -0,0 +1,11 @@ +#TODO can't find the openssl dependency +[source] +git = "https://github.com/bahdotsh/wrkflw" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages wrkflw +""" diff --git a/recipes/wip/dev/other/zeal/recipe.toml b/recipes/wip/dev/other/zeal/recipe.toml new file mode 100644 index 000000000..0f4eebf91 --- /dev/null +++ b/recipes/wip/dev/other/zeal/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://github.com/zealdocs/zeal#build-instructions +[source] +tar = "https://github.com/zealdocs/zeal/releases/download/v0.7.0/zeal-0.7.0.tar.xz" +[build] +template = "cmake" +dependencies = [ + "qt6-base", + "qt6-webengine", + "libarchive", + "sqlite3", + "mesa", +] diff --git a/recipes/wip/dev/other/zepter/recipe.toml b/recipes/wip/dev/other/zepter/recipe.toml new file mode 100644 index 000000000..547a5efc6 --- /dev/null +++ b/recipes/wip/dev/other/zepter/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/ggwpez/zepter" +[build] +template = "cargo" diff --git a/recipes/wip/dev/patchers/hexpatch/recipe.toml b/recipes/wip/dev/patchers/hexpatch/recipe.toml new file mode 100644 index 000000000..5c3086689 --- /dev/null +++ b/recipes/wip/dev/patchers/hexpatch/recipe.toml @@ -0,0 +1,5 @@ +#TODO mlua-sys crate error +[source] +git = "https://github.com/Etto48/HexPatch" +[build] +template = "cargo" diff --git a/recipes/wip/dev/performance/flamelens/recipe.toml b/recipes/wip/dev/performance/flamelens/recipe.toml new file mode 100644 index 000000000..be939a750 --- /dev/null +++ b/recipes/wip/dev/performance/flamelens/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/YS-L/flamelens" +[build] +template = "cargo" diff --git a/recipes/wip/dev/performance/samply/recipe.toml b/recipes/wip/dev/performance/samply/recipe.toml new file mode 100644 index 000000000..cbef16b25 --- /dev/null +++ b/recipes/wip/dev/performance/samply/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mstange/samply" +[build] +template = "custom" +script = """ +cookbook_cargo_packages samply +""" diff --git a/recipes/wip/dev/performance/tracy/recipe.toml b/recipes/wip/dev/performance/tracy/recipe.toml new file mode 100644 index 000000000..292a29a96 --- /dev/null +++ b/recipes/wip/dev/performance/tracy/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing script for gnu make: https://github.com/wolfpld/tracy/releases/latest/download/tracy.pdf +[source] +git = "https://github.com/wolfpld/tracy" +rev = "v0.13.0" +[build] +template = "custom" +dependencies = [ + "glfw3", + "freetype2", + "dbus", + "capstone", +] diff --git a/recipes/wip/dev/performance/vkpeak/recipe.toml b/recipes/wip/dev/performance/vkpeak/recipe.toml new file mode 100644 index 000000000..648645555 --- /dev/null +++ b/recipes/wip/dev/performance/vkpeak/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/nihui/vkpeak#build-from-source +[source] +git = "https://github.com/nihui/vkpeak" +rev = "20251010" +[build] +template = "cmake" +dependencies = [ + "libvulkan", +] diff --git a/recipes/wip/dev/python/py-spy/recipe.toml b/recipes/wip/dev/python/py-spy/recipe.toml new file mode 100644 index 000000000..317f587e6 --- /dev/null +++ b/recipes/wip/dev/python/py-spy/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash crate error +[source] +git = "https://github.com/benfred/py-spy" +[build] +template = "cargo" diff --git a/recipes/wip/dev/python/pyapp/recipe.toml b/recipes/wip/dev/python/pyapp/recipe.toml new file mode 100644 index 000000000..b9468f346 --- /dev/null +++ b/recipes/wip/dev/python/pyapp/recipe.toml @@ -0,0 +1,5 @@ +#TODO serde crate error +[source] +git = "https://github.com/ofek/pyapp" +[build] +template = "cargo" diff --git a/recipes/wip/dev/python/pylyzer/recipe.toml b/recipes/wip/dev/python/pylyzer/recipe.toml new file mode 100644 index 000000000..8fe7955f7 --- /dev/null +++ b/recipes/wip/dev/python/pylyzer/recipe.toml @@ -0,0 +1,5 @@ +#TODO erg_compiler crate error +[source] +git = "https://github.com/mtshiba/pylyzer" +[build] +template = "cargo" diff --git a/recipes/wip/dev/python/pyrev/recipe.toml b/recipes/wip/dev/python/pyrev/recipe.toml new file mode 100644 index 000000000..299bf3186 --- /dev/null +++ b/recipes/wip/dev/python/pyrev/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/hacbit/pyrev" +[build] +template = "cargo" diff --git a/recipes/wip/dev/python/pyscan/recipe.toml b/recipes/wip/dev/python/pyscan/recipe.toml new file mode 100644 index 000000000..b71924975 --- /dev/null +++ b/recipes/wip/dev/python/pyscan/recipe.toml @@ -0,0 +1,8 @@ +#TODO serde crate error (after cargo update) +[source] +git = "https://github.com/aswinnnn/pyscan" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/python/python-launcher/recipe.toml b/recipes/wip/dev/python/python-launcher/recipe.toml new file mode 100644 index 000000000..210ac4c84 --- /dev/null +++ b/recipes/wip/dev/python/python-launcher/recipe.toml @@ -0,0 +1,5 @@ +#TODO serde crate error (after cargo update) +[source] +git = "https://github.com/brettcannon/python-launcher" +[build] +template = "cargo" diff --git a/recipes/wip/dev/python/ruff/recipe.toml b/recipes/wip/dev/python/ruff/recipe.toml new file mode 100644 index 000000000..07ea6df33 --- /dev/null +++ b/recipes/wip/dev/python/ruff/recipe.toml @@ -0,0 +1,8 @@ +#TODO tikv-jemalloc-sys crate error +[source] +git = "https://github.com/charliermarsh/ruff" +[build] +template = "custom" +script = """ +cookbook_cargo_packages ruff_cli +""" diff --git a/recipes/wip/dev/python/rye/recipe.toml b/recipes/wip/dev/python/rye/recipe.toml new file mode 100644 index 000000000..14de331bb --- /dev/null +++ b/recipes/wip/dev/python/rye/recipe.toml @@ -0,0 +1,13 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/mitsuhiko/rye" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo_packages rye +""" diff --git a/recipes/wip/dev/python/uv/recipe.toml b/recipes/wip/dev/python/uv/recipe.toml new file mode 100644 index 000000000..7284a486d --- /dev/null +++ b/recipes/wip/dev/python/uv/recipe.toml @@ -0,0 +1,11 @@ +#TODO fs2 crate error +[source] +git = "https://github.com/astral-sh/uv" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages uv +""" diff --git a/recipes/wip/dev/rust-tools/bacon/recipe.toml b/recipes/wip/dev/rust-tools/bacon/recipe.toml new file mode 100644 index 000000000..eb359238e --- /dev/null +++ b/recipes/wip/dev/rust-tools/bacon/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate compilation error +[source] +git = "https://github.com/Canop/bacon" +[build] +template = "cargo" \ No newline at end of file diff --git a/recipes/wip/dev/rust-tools/c2rust/recipe.toml b/recipes/wip/dev/rust-tools/c2rust/recipe.toml new file mode 100644 index 000000000..d2d41eb9c --- /dev/null +++ b/recipes/wip/dev/rust-tools/c2rust/recipe.toml @@ -0,0 +1,11 @@ +#TODO compilation error +[source] +git = "https://github.com/immunant/c2rust" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages c2rust +""" diff --git a/recipes/wip/dev/rust-tools/cbindgen/recipe.toml b/recipes/wip/dev/rust-tools/cbindgen/recipe.toml new file mode 100644 index 000000000..ed4cd8900 --- /dev/null +++ b/recipes/wip/dev/rust-tools/cbindgen/recipe.toml @@ -0,0 +1,6 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/mozilla/cbindgen" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/dev/rust-tools/clippy/recipe.toml b/recipes/wip/dev/rust-tools/clippy/recipe.toml new file mode 100644 index 000000000..fbd5cd626 --- /dev/null +++ b/recipes/wip/dev/rust-tools/clippy/recipe.toml @@ -0,0 +1,6 @@ +#TODO camino crate error +[source] +git = "https://github.com/rust-lang/rust-clippy" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/dev/rust-tools/coq-of-rust/recipe.toml b/recipes/wip/dev/rust-tools/coq-of-rust/recipe.toml new file mode 100644 index 000000000..234fddf02 --- /dev/null +++ b/recipes/wip/dev/rust-tools/coq-of-rust/recipe.toml @@ -0,0 +1,8 @@ +#TODO require the rust-src rustc-dev llvm-tools-preview components +[source] +git = "https://github.com/formal-land/coq-of-rust" +[build] +template = "custom" +script = """ +cookbook_cargo_packages coq_of_rust_cli coq_of_rust_lib +""" diff --git a/recipes/wip/dev/rust-tools/crater/recipe.toml b/recipes/wip/dev/rust-tools/crater/recipe.toml new file mode 100644 index 000000000..88865b970 --- /dev/null +++ b/recipes/wip/dev/rust-tools/crater/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/rust-lang/crater" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/rust-tools/diplomat/recipe.toml b/recipes/wip/dev/rust-tools/diplomat/recipe.toml new file mode 100644 index 000000000..b47219bc1 --- /dev/null +++ b/recipes/wip/dev/rust-tools/diplomat/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script to properly move the binary +[source] +git = "https://github.com/rust-diplomat/diplomat" +[build] +template = "custom" +script = """ +cookbook_cargo_packages diplomat +""" diff --git a/recipes/wip/dev/rust-tools/dylint/recipe.toml b/recipes/wip/dev/rust-tools/dylint/recipe.toml new file mode 100644 index 000000000..6b7c876d2 --- /dev/null +++ b/recipes/wip/dev/rust-tools/dylint/recipe.toml @@ -0,0 +1,11 @@ +#TODO cargo-util crate error +[source] +git = "https://github.com/trailofbits/dylint" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages cargo-dylint dylint-link +""" diff --git a/recipes/wip/dev/rust-tools/evcxr-jupyter/recipe.toml b/recipes/wip/dev/rust-tools/evcxr-jupyter/recipe.toml new file mode 100644 index 000000000..5227b1b6e --- /dev/null +++ b/recipes/wip/dev/rust-tools/evcxr-jupyter/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/evcxr/evcxr" +[build] +template = "custom" +script = """ +cookbook_cargo_packages evcxr_jupyter +""" diff --git a/recipes/wip/dev/rust-tools/evcxr-repl/recipe.toml b/recipes/wip/dev/rust-tools/evcxr-repl/recipe.toml new file mode 100644 index 000000000..ea87ac273 --- /dev/null +++ b/recipes/wip/dev/rust-tools/evcxr-repl/recipe.toml @@ -0,0 +1,8 @@ +#TODO camino crate error +[source] +git = "https://github.com/evcxr/evcxr" +[build] +template = "custom" +script = """ +cookbook_cargo_packages evcxr_repl +""" diff --git a/recipes/wip/dev/rust-tools/ferrisup/recipe.toml b/recipes/wip/dev/rust-tools/ferrisup/recipe.toml new file mode 100644 index 000000000..d1eec35ec --- /dev/null +++ b/recipes/wip/dev/rust-tools/ferrisup/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Jitpomi/ferrisup" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/dev/rust-tools/kani/recipe.toml b/recipes/wip/dev/rust-tools/kani/recipe.toml new file mode 100644 index 000000000..183413018 --- /dev/null +++ b/recipes/wip/dev/rust-tools/kani/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/model-checking/kani" +[build] +template = "cargo" diff --git a/recipes/wip/dev/rust-tools/rust-script/recipe.toml b/recipes/wip/dev/rust-tools/rust-script/recipe.toml new file mode 100644 index 000000000..6d82981ea --- /dev/null +++ b/recipes/wip/dev/rust-tools/rust-script/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/fornwall/rust-script" +[build] +template = "cargo" diff --git a/recipes/wip/dev/rust-tools/rust-to-npm/recipe.toml b/recipes/wip/dev/rust-tools/rust-to-npm/recipe.toml new file mode 100644 index 000000000..c9ac5635f --- /dev/null +++ b/recipes/wip/dev/rust-tools/rust-to-npm/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/a11ywatch/rust-to-npm" +[build] +template = "custom" +script = """ +cookbook_cargo_packages rust-to-npm-cli +""" diff --git a/recipes/wip/dev/rust-tools/rustfmt/recipe.toml b/recipes/wip/dev/rust-tools/rustfmt/recipe.toml new file mode 100644 index 000000000..12d739b3c --- /dev/null +++ b/recipes/wip/dev/rust-tools/rustfmt/recipe.toml @@ -0,0 +1,6 @@ +#TODO serde crate error (after cargo update) +[source] +git = "https://github.com/rust-lang/rustfmt" +shallow_clone = true +[build] +template = "cargo" diff --git a/recipes/wip/dev/rust-tools/rustup/recipe.toml b/recipes/wip/dev/rust-tools/rustup/recipe.toml new file mode 100644 index 000000000..2985d4d1d --- /dev/null +++ b/recipes/wip/dev/rust-tools/rustup/recipe.toml @@ -0,0 +1,13 @@ +#TODO serde crate error +[source] +git = "https://github.com/rust-lang/rustup" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "openssl3", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/dev/rust-tools/sccache/recipe.toml b/recipes/wip/dev/rust-tools/sccache/recipe.toml new file mode 100644 index 000000000..9836a3f55 --- /dev/null +++ b/recipes/wip/dev/rust-tools/sccache/recipe.toml @@ -0,0 +1,13 @@ +#TODO libc error +[source] +git = "https://github.com/mozilla/sccache" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "openssl3", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/dev/rust-tools/scriptisto/recipe.toml b/recipes/wip/dev/rust-tools/scriptisto/recipe.toml new file mode 100644 index 000000000..899292dfe --- /dev/null +++ b/recipes/wip/dev/rust-tools/scriptisto/recipe.toml @@ -0,0 +1,5 @@ +#TODO users crate error +[source] +git = "https://github.com/igor-petruk/scriptisto" +[build] +template = "cargo" diff --git a/recipes/wip/dev/rust-tools/tagref/recipe.toml b/recipes/wip/dev/rust-tools/tagref/recipe.toml new file mode 100644 index 000000000..aeb923e8f --- /dev/null +++ b/recipes/wip/dev/rust-tools/tagref/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/stepchowfun/tagref" +[build] +template = "cargo" diff --git a/recipes/wip/dev/training/gittype/recipe.toml b/recipes/wip/dev/training/gittype/recipe.toml new file mode 100644 index 000000000..f92f63f10 --- /dev/null +++ b/recipes/wip/dev/training/gittype/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/unhappychoice/gittype" +[build] +template = "cargo" diff --git a/recipes/wip/dev/vcs/mercurial/recipe.toml b/recipes/wip/dev/vcs/mercurial/recipe.toml new file mode 100644 index 000000000..6a57d38c1 --- /dev/null +++ b/recipes/wip/dev/vcs/mercurial/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for GNU Make, see https://wiki.mercurial-scm.org/UnixInstall +#TODO require CPython header files +[source] +tar = "https://www.mercurial-scm.org/release/mercurial-6.6.2.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/dev/wasm/trunk/recipe.toml b/recipes/wip/dev/wasm/trunk/recipe.toml new file mode 100644 index 000000000..e03cb9db1 --- /dev/null +++ b/recipes/wip/dev/wasm/trunk/recipe.toml @@ -0,0 +1,5 @@ +#TODO fs_at and libc crates error +[source] +git = "https://github.com/trunk-rs/trunk" +[build] +template = "cargo" diff --git a/recipes/wip/dev/wasm/wasm-pack/recipe.toml b/recipes/wip/dev/wasm/wasm-pack/recipe.toml new file mode 100644 index 000000000..6dbb4af7c --- /dev/null +++ b/recipes/wip/dev/wasm/wasm-pack/recipe.toml @@ -0,0 +1,5 @@ +#TODO fs4 crate error +[source] +git = "https://github.com/rustwasm/wasm-pack" +[build] +template = "cargo" diff --git a/recipes/wip/dev/wasm/wasm-tools/recipe.toml b/recipes/wip/dev/wasm/wasm-tools/recipe.toml new file mode 100644 index 000000000..f02892265 --- /dev/null +++ b/recipes/wip/dev/wasm/wasm-tools/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/bytecodealliance/wasm-tools" +[build] +template = "cargo" diff --git a/recipes/wip/dev/wasm/wasmer/recipe.toml b/recipes/wip/dev/wasm/wasmer/recipe.toml new file mode 100644 index 000000000..cc2e90cd1 --- /dev/null +++ b/recipes/wip/dev/wasm/wasmer/recipe.toml @@ -0,0 +1,8 @@ +#TODO region crate error +[source] +git = "https://github.com/wasmerio/wasmer" +[build] +template = "custom" +script = """ +cookbook_cargo_packages wasmer-cli +""" diff --git a/recipes/wip/dev/wasm/wasmi/recipe.toml b/recipes/wip/dev/wasm/wasmi/recipe.toml new file mode 100644 index 000000000..24505714e --- /dev/null +++ b/recipes/wip/dev/wasm/wasmi/recipe.toml @@ -0,0 +1,8 @@ +#TODO fs-set-times and rustix crates error +[source] +git = "https://github.com/wasmi-labs/wasmi" +[build] +template = "custom" +script = """ +cookbook_cargo_packages wasmi_cli +""" diff --git a/recipes/wip/dev/wasm/wasminspect/recipe.toml b/recipes/wip/dev/wasm/wasminspect/recipe.toml new file mode 100644 index 000000000..c69cb0f20 --- /dev/null +++ b/recipes/wip/dev/wasm/wasminspect/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate +[source] +git = "https://github.com/kateinoigakukun/wasminspect" +[build] +template = "cargo" diff --git a/recipes/wip/dev/wasm/wasmtime/recipe.toml b/recipes/wip/dev/wasm/wasmtime/recipe.toml new file mode 100644 index 000000000..ed1295bb5 --- /dev/null +++ b/recipes/wip/dev/wasm/wasmtime/recipe.toml @@ -0,0 +1,9 @@ +#TODO requires *at functions in fcntl.h +#TODO (willnode) push changes upstream +[source] +git = "https://github.com/willnode/wasmtime" +branch = "v36-redox" +shallow_clone = true + +[build] +template = "cargo" diff --git a/recipes/wip/dev/wasm/wepl/recipe.toml b/recipes/wip/dev/wasm/wepl/recipe.toml new file mode 100644 index 000000000..351e6ef0d --- /dev/null +++ b/recipes/wip/dev/wasm/wepl/recipe.toml @@ -0,0 +1,5 @@ +#TODO fs-set-times crate error +[source] +git = "https://github.com/rylev/wepl" +[build] +template = "cargo" diff --git a/recipes/wip/dev/web/vox/recipe.toml b/recipes/wip/dev/web/vox/recipe.toml new file mode 100644 index 000000000..2a6be325f --- /dev/null +++ b/recipes/wip/dev/web/vox/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/emmyoh/vox" +[build] +template = "cargo" diff --git a/recipes/wip/dev/web/zola/recipe.toml b/recipes/wip/dev/web/zola/recipe.toml new file mode 100644 index 000000000..6ff72a66d --- /dev/null +++ b/recipes/wip/dev/web/zola/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/getzola/zola" +[build] +template = "cargo" diff --git a/recipes/wip/doc/bookokrat/recipe.toml b/recipes/wip/doc/bookokrat/recipe.toml new file mode 100644 index 000000000..62f589754 --- /dev/null +++ b/recipes/wip/doc/bookokrat/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bugzmanov/bookokrat" +[build] +template = "cargo" diff --git a/recipes/wip/doc/doctave/recipe.toml b/recipes/wip/doc/doctave/recipe.toml new file mode 100644 index 000000000..a15f8e2ef --- /dev/null +++ b/recipes/wip/doc/doctave/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/Doctave/doctave" +[build] +template = "cargo" diff --git a/recipes/wip/doc/gnome-doc-utils/recipe.toml b/recipes/wip/doc/gnome-doc-utils/recipe.toml new file mode 100644 index 000000000..550623abb --- /dev/null +++ b/recipes/wip/doc/gnome-doc-utils/recipe.toml @@ -0,0 +1,5 @@ +#TODO probably wrong template +[source] +tar = "https://download.gnome.org/sources/gnome-doc-utils/0.20/gnome-doc-utils-0.20.10.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/doc/gtk-doc/recipe.toml b/recipes/wip/doc/gtk-doc/recipe.toml new file mode 100644 index 000000000..853dfd10a --- /dev/null +++ b/recipes/wip/doc/gtk-doc/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/gtk-doc/1.33/gtk-doc-1.33.2.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/doc/mdbook/recipe.toml b/recipes/wip/doc/mdbook/recipe.toml new file mode 100644 index 000000000..9feb65077 --- /dev/null +++ b/recipes/wip/doc/mdbook/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/rust-lang/mdBook" +[build] +template = "cargo" diff --git a/recipes/wip/doc/newdoc/recipe.toml b/recipes/wip/doc/newdoc/recipe.toml new file mode 100644 index 000000000..42e18817c --- /dev/null +++ b/recipes/wip/doc/newdoc/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/redhat-documentation/newdoc" +[build] +template = "cargo" diff --git a/recipes/wip/doc/po4a/recipe.toml b/recipes/wip/doc/po4a/recipe.toml new file mode 100644 index 000000000..43aeecd36 --- /dev/null +++ b/recipes/wip/doc/po4a/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for installation, see https://github.com/mquinson/po4a#installation +[source] +tar = "https://github.com/mquinson/po4a/releases/download/v0.69/po4a-0.69.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/doc/tendril-wiki/recipe.toml b/recipes/wip/doc/tendril-wiki/recipe.toml new file mode 100644 index 000000000..044af2b68 --- /dev/null +++ b/recipes/wip/doc/tendril-wiki/recipe.toml @@ -0,0 +1,8 @@ +#TODO require a patch to update the ring crate +[source] +git = "https://github.com/jamestthompson3/tendril-wiki" +[build] +template = "custom" +script = """ +cookbook_cargo_packages tendril@1.0.10 +""" diff --git a/recipes/wip/doc/texinfo/recipe.toml b/recipes/wip/doc/texinfo/recipe.toml new file mode 100644 index 000000000..f8086a213 --- /dev/null +++ b/recipes/wip/doc/texinfo/recipe.toml @@ -0,0 +1,5 @@ +#TODO Compilation error +[source] +tar = "https://ftp.gnu.org/gnu/texinfo/texinfo-7.0.3.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/edu/bibiman/recipe.toml b/recipes/wip/edu/bibiman/recipe.toml new file mode 100644 index 000000000..29cbe8f55 --- /dev/null +++ b/recipes/wip/edu/bibiman/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://codeberg.org/lukeflo/bibiman" +[build] +template = "cargo" diff --git a/recipes/wip/edu/hacker-laws/recipe.toml b/recipes/wip/edu/hacker-laws/recipe.toml new file mode 100644 index 000000000..1d9fbcbb2 --- /dev/null +++ b/recipes/wip/edu/hacker-laws/recipe.toml @@ -0,0 +1,9 @@ +#TODO not tested +[source] +git = "https://github.com/dwmkerr/hacker-laws" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/hacker-laws +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/hacker-laws +""" diff --git a/recipes/wip/edu/nanocore/recipe.toml b/recipes/wip/edu/nanocore/recipe.toml new file mode 100644 index 000000000..f0d9ad828 --- /dev/null +++ b/recipes/wip/edu/nanocore/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/AfaanBilal/NanoCore" +[build] +template = "custom" +script = """ +cookbook_cargo +mkdir -pv "${COOKBOOK_STAGE}/usr/share/nanocore" +cp -rv "${COOKBOOK_SOURCE}"/programs/* "${COOKBOOK_STAGE}/usr/share/nanocore" +""" diff --git a/recipes/wip/edu/rustlings/recipe.toml b/recipes/wip/edu/rustlings/recipe.toml new file mode 100644 index 000000000..0d335328f --- /dev/null +++ b/recipes/wip/edu/rustlings/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/rust-lang/rustlings" +[build] +template = "cargo" diff --git a/recipes/wip/edu/rusty-tape/recipe.toml b/recipes/wip/edu/rusty-tape/recipe.toml new file mode 100644 index 000000000..f6c71a5ab --- /dev/null +++ b/recipes/wip/edu/rusty-tape/recipe.toml @@ -0,0 +1,10 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Kkobarii/Rusty-Tape" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/rusty-tape +cp -rv "${COOKBOOK_SOURCE}"/data/* "${COOKBOOK_STAGE}"/usr/share/rusty-tape +cookbook_cargo +""" diff --git a/recipes/wip/emulators/cpu/6502-emulator/recipe.toml b/recipes/wip/emulators/cpu/6502-emulator/recipe.toml new file mode 100644 index 000000000..06d2621d1 --- /dev/null +++ b/recipes/wip/emulators/cpu/6502-emulator/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash crate error (probably outdated) +[source] +git = "https://github.com/ArchUsr64/6502_emulator" +[build] +template = "cargo" diff --git a/recipes/wip/emulators/cpu/8086-emulator/recipe.toml b/recipes/wip/emulators/cpu/8086-emulator/recipe.toml new file mode 100644 index 000000000..50be9e791 --- /dev/null +++ b/recipes/wip/emulators/cpu/8086-emulator/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/YJDoc2/8086-Emulator" +[build] +template = "cargo" diff --git a/recipes/wip/emulators/cpu/mipsy/recipe.toml b/recipes/wip/emulators/cpu/mipsy/recipe.toml new file mode 100644 index 000000000..108aec676 --- /dev/null +++ b/recipes/wip/emulators/cpu/mipsy/recipe.toml @@ -0,0 +1,8 @@ +#TODO users crate error +[source] +git = "https://github.com/insou22/mipsy" +[build] +template = "custom" +script = """ +cookbook_cargo_packages mipsy +""" diff --git a/recipes/wip/emulators/cpu/rustzx/recipe.toml b/recipes/wip/emulators/cpu/rustzx/recipe.toml new file mode 100644 index 000000000..8397b5354 --- /dev/null +++ b/recipes/wip/emulators/cpu/rustzx/recipe.toml @@ -0,0 +1,12 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/rustzx/rustzx" +[build] +template = "custom" +dependencies = [ + "sdl2", +] +script = """ +DYNAMIC_INIT +cookbook_cargo_packages rustzx +""" diff --git a/recipes/wip/emulators/cpu/rvemu/recipe.toml b/recipes/wip/emulators/cpu/rvemu/recipe.toml new file mode 100644 index 000000000..695b600ba --- /dev/null +++ b/recipes/wip/emulators/cpu/rvemu/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/d0iasm/rvemu" +[build] +template = "custom" +script = """ +cookbook_cargo_packages rvemu-cli +""" diff --git a/recipes/wip/emulators/cpu/scemu/recipe.toml b/recipes/wip/emulators/cpu/scemu/recipe.toml new file mode 100644 index 000000000..d2917c6c6 --- /dev/null +++ b/recipes/wip/emulators/cpu/scemu/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/sha0coder/scemu" +[build] +template = "cargo" diff --git a/recipes/wip/emulators/cpu/unicorn/recipe.toml b/recipes/wip/emulators/cpu/unicorn/recipe.toml new file mode 100644 index 000000000..5e0f96ef1 --- /dev/null +++ b/recipes/wip/emulators/cpu/unicorn/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +# build instructions: https://github.com/unicorn-engine/unicorn/blob/master/docs/COMPILE.md +[source] +git = "https://github.com/unicorn-engine/unicorn" +rev = "2.1.4" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/emulators/game-console/azahar/recipe.toml b/recipes/wip/emulators/game-console/azahar/recipe.toml new file mode 100644 index 000000000..46599aa7b --- /dev/null +++ b/recipes/wip/emulators/game-console/azahar/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from cmake log +# build instructions - https://github.com/azahar-emu/azahar/wiki/Building-From-Source#linux +[source] +git = "https://github.com/azahar-emu/azahar" +rev = "2123.3" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "qt6-base", + "qt6-multimedia", +] diff --git a/recipes/wip/emulators/game-console/clementine/recipe.toml b/recipes/wip/emulators/game-console/clementine/recipe.toml new file mode 100644 index 000000000..475ea534a --- /dev/null +++ b/recipes/wip/emulators/game-console/clementine/recipe.toml @@ -0,0 +1,5 @@ +#TODO the webbrowser crate needs to be ported +[source] +git = "https://github.com/RIP-Comm/clementine" +[build] +template = "cargo" diff --git a/recipes/wip/emulators/game-console/dolphin-emu/recipe.toml b/recipes/wip/emulators/game-console/dolphin-emu/recipe.toml new file mode 100644 index 000000000..0cc024f5a --- /dev/null +++ b/recipes/wip/emulators/game-console/dolphin-emu/recipe.toml @@ -0,0 +1,22 @@ +#TODO not compiled or tested yet +#TODO discover minimum dependencies from cmake log +# build instructions: https://github.com/dolphin-emu/dolphin/wiki/Building-for-Linux +[source] +git = "https://github.com/dolphin-emu/dolphin" +rev = "71e15c2875f36458c8f29ee160f01606967bcd13" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + #"ffmpeg6", + #"libevdev", + #"libusb", + #"pango", + #"cairo", + "qt6-base", + "qt6-svg", + #"mesa-x11", + #"curl", + #"libvulkan", + #"openal", +] diff --git a/recipes/wip/emulators/game-console/finalburn-neo/recipe.toml b/recipes/wip/emulators/game-console/finalburn-neo/recipe.toml new file mode 100644 index 000000000..d5fa0a405 --- /dev/null +++ b/recipes/wip/emulators/game-console/finalburn-neo/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing script for "make", see https://github.com/finalburnneo/FBNeo/blob/master/README-SDL.md#sdl2 +[source] +git = "https://github.com/finalburnneo/FBNeo" +rev = "9cc496e02a8d1588e1226b648852488a491f1b75" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "sdl2", + "sdl2-image", +] diff --git a/recipes/wip/emulators/game-console/gameboy/boytacean/recipe.toml b/recipes/wip/emulators/game-console/gameboy/boytacean/recipe.toml new file mode 100644 index 000000000..0575e2f53 --- /dev/null +++ b/recipes/wip/emulators/game-console/gameboy/boytacean/recipe.toml @@ -0,0 +1,8 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/joamag/boytacean" +[build] +template = "cargo" +dependencies = [ + "sdl2", +] diff --git a/recipes/wip/emulators/game-console/gameboy/gameroy/recipe.toml b/recipes/wip/emulators/game-console/gameboy/gameroy/recipe.toml new file mode 100644 index 000000000..004d06dc5 --- /dev/null +++ b/recipes/wip/emulators/game-console/gameboy/gameroy/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Rodrigodd/gameroy" +[build] +template = "custom" +script = """ +cookbook_cargo_packages gameroy-native +""" diff --git a/recipes/wip/emulators/game-console/gameboy/mimic/recipe.toml b/recipes/wip/emulators/game-console/gameboy/mimic/recipe.toml new file mode 100644 index 000000000..7122d7c4e --- /dev/null +++ b/recipes/wip/emulators/game-console/gameboy/mimic/recipe.toml @@ -0,0 +1,5 @@ +#TODO update mio to 0.8 +[source] +git = "https://github.com/jawline/Mimic" +[build] +template = "cargo" diff --git a/recipes/wip/emulators/game-console/gopher64/recipe.toml b/recipes/wip/emulators/game-console/gopher64/recipe.toml new file mode 100644 index 000000000..f5b607651 --- /dev/null +++ b/recipes/wip/emulators/game-console/gopher64/recipe.toml @@ -0,0 +1,12 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/gopher64/gopher64" +[build] +template = "custom" +dependencies = [ + "sdl2", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/emulators/game-console/jgenesis/recipe.toml b/recipes/wip/emulators/game-console/jgenesis/recipe.toml new file mode 100644 index 000000000..5c8405987 --- /dev/null +++ b/recipes/wip/emulators/game-console/jgenesis/recipe.toml @@ -0,0 +1,12 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/jsgroth/jgenesis" +[build] +template = "custom" +dependencies = [ + "sdl2", +] +script = """ +DYNAMIC_INIT +cookbook_cargo_packages jgenesis-cli +""" diff --git a/recipes/wip/emulators/game-console/mame/recipe.toml b/recipes/wip/emulators/game-console/mame/recipe.toml new file mode 100644 index 000000000..5428ced96 --- /dev/null +++ b/recipes/wip/emulators/game-console/mame/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing script for gnu make: https://docs.mamedev.org/initialsetup/compilingmame.html +[source] +git = "https://github.com/mamedev/mame" +rev = "mame0282" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "sdl2", + "sdl2-ttf", + "fontconfig", + "qt5-base", + "qt5-tools", +] diff --git a/recipes/wip/emulators/game-console/melonds/recipe.toml b/recipes/wip/emulators/game-console/melonds/recipe.toml new file mode 100644 index 000000000..22fe56dbb --- /dev/null +++ b/recipes/wip/emulators/game-console/melonds/recipe.toml @@ -0,0 +1,20 @@ +#TODO not compiled or tested yet +# build instructions: https://github.com/melonDS-emu/melonDS/blob/master/BUILD.md#linux +[source] +git = "https://github.com/melonDS-emu/melonDS" +rev = "1.0" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "curl", + "libpcap", + "libenet", + "sdl2", + "qt6-base", + "qt6-multimedia", + "qt6-svg", + "libarchive", + "zstd", + "faad2", +] diff --git a/recipes/wip/emulators/game-console/meru/recipe.toml b/recipes/wip/emulators/game-console/meru/recipe.toml new file mode 100644 index 000000000..f2e3106f8 --- /dev/null +++ b/recipes/wip/emulators/game-console/meru/recipe.toml @@ -0,0 +1,8 @@ +#TODO ahash crate error +[source] +git = "https://github.com/tanakh/meru" +[build] +template = "custom" +script = """ +cookbook_cargo_packages meru +""" diff --git a/recipes/wip/emulators/game-console/mupen64plus-core/recipe.toml b/recipes/wip/emulators/game-console/mupen64plus-core/recipe.toml new file mode 100644 index 000000000..9eefea697 --- /dev/null +++ b/recipes/wip/emulators/game-console/mupen64plus-core/recipe.toml @@ -0,0 +1,11 @@ +#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/emulators/game-console/obliteration/recipe.toml b/recipes/wip/emulators/game-console/obliteration/recipe.toml new file mode 100644 index 000000000..494672161 --- /dev/null +++ b/recipes/wip/emulators/game-console/obliteration/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script: https://github.com/obhq/obliteration/blob/main/docs/building.md +[source] +git = "https://github.com/obhq/obliteration" +shallow_clone = true +[build] +template = "custom" diff --git a/recipes/wip/emulators/game-console/pcsx2/recipe.toml b/recipes/wip/emulators/game-console/pcsx2/recipe.toml new file mode 100644 index 000000000..c8161ae28 --- /dev/null +++ b/recipes/wip/emulators/game-console/pcsx2/recipe.toml @@ -0,0 +1,29 @@ +#TODO not compiled or tested +# build instructions: https://pcsx2.net/docs/advanced/building#building-on-linux +[source] +git = "https://github.com/PCSX2/pcsx2" +branch = "2.4.x" +shallow_clone = true +[build] +template = "cmake" +cmakeflags = [ + "-DCMAKE_CXX_COMPILER_LAUNCHER=ccache", + "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON", +] +# dependencies = [ +# "sdl2", +# "xz", +# "libpng", +# "qt6-base", +# "qt6-svg", +# "mesa-x11", +# "libaio", +# "harfbuzz", +# "libpcap", +# "pipewire", +# "libsamplerate", +# "soundtouch", +# "zlib", +# "libxml2", +# "ffmpeg6", +# ] diff --git a/recipes/wip/emulators/game-console/picodrive/recipe.toml b/recipes/wip/emulators/game-console/picodrive/recipe.toml new file mode 100644 index 000000000..73bce5266 --- /dev/null +++ b/recipes/wip/emulators/game-console/picodrive/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +#TODO discover the minimum dependencies from autotools log +[source] +git = "https://github.com/notaz/picodrive" +rev = "26ecb2b6358fefba24e3d68b9eb2efba7f10d5ee" +[build] +template = "configure" +configureflags = [ + "--platform=generic", + "--sound-drivers=sdl", +] diff --git a/recipes/wip/emulators/game-console/play/recipe.toml b/recipes/wip/emulators/game-console/play/recipe.toml new file mode 100644 index 000000000..9bf494869 --- /dev/null +++ b/recipes/wip/emulators/game-console/play/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/jpd002/Play-#building-for-unix +[source] +git = "https://github.com/jpd002/Play-" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "openal", + "libevdev", + "freealut", + "qt5-base", + "qt5-x11extras", + "sqlite3", +] diff --git a/recipes/wip/emulators/game-console/ppsspp/recipe.toml b/recipes/wip/emulators/game-console/ppsspp/recipe.toml new file mode 100644 index 000000000..054f3f9e6 --- /dev/null +++ b/recipes/wip/emulators/game-console/ppsspp/recipe.toml @@ -0,0 +1,37 @@ +#TODO not compiled or tested yet +# build instructions: https://github.com/hrydgard/ppsspp/wiki/Build-instructions +#git = "https://github.com/jackpot51/ppsspp" # wip orbital port +[source] +tar = "https://github.com/hrydgard/ppsspp/releases/download/v1.19.3/ppsspp-1.19.3.tar.xz" +[build] +template = "custom" +dependencies = [ + #"liborbital", + "mesa", + "mesa-glu", + "sdl2", + "sdl2-ttf", + "zlib", + "glew", + "fontconfig", + "curl", +] +script = """ +DYNAMIC_INIT +COOKBOOK_CMAKE_FLAGS+=( + -DCMAKE_C_FLAGS="-I${COOKBOOK_SYSROOT}/include" -I${COOKBOOK_SYSROOT}/include/SDL2" + -DCMAKE_CXX_FLAGS="-I${COOKBOOK_SYSROOT}/include" -I${COOKBOOK_SYSROOT}/include/SDL2" + -DOPENGL_opengl_LIBRARY="/dev/null" + -DOPENGL_glx_LIBRARY="/dev/null" + -DUSE_DISCORD=OFF + -DUSE_FFMPEG=OFF + -DUSE_MINIUPNPC=OFF + -DUSE_SYSTEM_LIBSDL2=ON + -DUSING_EGL=OFF + -DUSING_FBDEV=OFF + -DUSING_GLES2=OFF + -DUSING_X11_VULKAN=OFF + -DUNIX=ON +) +cookbook_cmake +""" diff --git a/recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml b/recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml new file mode 100644 index 000000000..09240d794 --- /dev/null +++ b/recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested yet +# build instructions: https://github.com/stenzek/duckstation#linux-1 +[source] +git = "https://github.com/stenzek/duckstation" +rev = "16e56d7824e15657be26e30030394d0668493635" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "sdl2", + "qt6-base", + "qt6-svg", + #"qt6-tools", +] diff --git a/recipes/wip/emulators/game-console/ps1/pcsx-rearmed/recipe.toml b/recipes/wip/emulators/game-console/ps1/pcsx-rearmed/recipe.toml new file mode 100644 index 000000000..1683bfa3c --- /dev/null +++ b/recipes/wip/emulators/game-console/ps1/pcsx-rearmed/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +#TODO discover the minimum dependencies from autotools log +# build instructions: https://github.com/notaz/pcsx_rearmed/blob/master/readme.txt#L22 +[source] +git = "https://github.com/notaz/pcsx_rearmed" +rev = "r25" +shallow_clone = true +[build] +template = "configure" diff --git a/recipes/wip/emulators/game-console/ps1/rpsx/recipe.toml b/recipes/wip/emulators/game-console/ps1/rpsx/recipe.toml new file mode 100644 index 000000000..42593ea63 --- /dev/null +++ b/recipes/wip/emulators/game-console/ps1/rpsx/recipe.toml @@ -0,0 +1,12 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/KieronJ/rpsx" +[build] +template = "custom" +dependencies = [ + "sdl2", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/emulators/game-console/ps1/trapezoid/recipe.toml b/recipes/wip/emulators/game-console/ps1/trapezoid/recipe.toml new file mode 100644 index 000000000..a91f5cb09 --- /dev/null +++ b/recipes/wip/emulators/game-console/ps1/trapezoid/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Amjad50/Trapezoid" +[build] +template = "custom" +dependencies = [ + "shaderc", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/emulators/game-console/rpcs3/recipe.toml b/recipes/wip/emulators/game-console/rpcs3/recipe.toml new file mode 100644 index 000000000..a1796e901 --- /dev/null +++ b/recipes/wip/emulators/game-console/rpcs3/recipe.toml @@ -0,0 +1,39 @@ +#TODO not compiled or tested yet +#TODO determine minimum dependencies from cmake log +# build instructions: https://github.com/RPCS3/rpcs3/blob/master/BUILDING.md +# customization: https://wiki.rpcs3.net/index.php?title=Help:Building_RPCS3#CMake_Build_Options +[source] +git = "https://github.com/RPCS3/rpcs3" +rev = "db8437b01cf24ba1146cf7d22e1be02202cc98f4" +shallow_clone = true +[build] +template = "cmake" +cmakeflags = [ + "-DUSE_NATIVE_INSTRUCTIONS=OFF", + "-DWITH_LLVM=OFF", + "-DUSE_ALSA=OFF", + "-DUSE_PULSE=OFF", + "-DUSE_LIBEVDEV=OFF", + "-DUSE_DISCORD_RPC=OFF", + "-DBUILD_LLVM_SUBMODULE=OFF", + "-DUSE_SYSTEM_FFMPEG=ON", + "-DUSE_VULKAN=OFF", +] +dependencies = [ + #"mesa-x11", + "qt6-base", + "qt6-multimedia", + "qt6-svg", + "qt6-declarative", + #"sdl2", + #"eudev", + #"glew", + #"openal", + #"zlib", + #"libpng", + #"libevdev", + #"libedit", + #"libvulkan", + #"pulseaudio", + #"ffmpeg6", +] diff --git a/recipes/wip/emulators/game-console/shadps4/recipe.toml b/recipes/wip/emulators/game-console/shadps4/recipe.toml new file mode 100644 index 000000000..12bdf524d --- /dev/null +++ b/recipes/wip/emulators/game-console/shadps4/recipe.toml @@ -0,0 +1,23 @@ +#TODO not compiled or tested +#TODO missing dependencies +# build instructions - https://github.com/shadps4-emu/shadPS4/blob/main/documents/building-linux.md +[source] +git = "https://github.com/shadps4-emu/shadPS4" +[build] +template = "cmake" +cmakeflags = [ + "-DENABLE_QT_GUI=ON" +] +dependencies = [ + "pulseaudio", + "openal", + "openssl3", + "libedit", + "eudev", + "libevdev", + "sdl2", + "sndio", + "qt6-base", + "qt6-multimedia", + "libvulkan", +] diff --git a/recipes/wip/emulators/game-console/snes9x/recipe.toml b/recipes/wip/emulators/game-console/snes9x/recipe.toml new file mode 100644 index 000000000..5963cd479 --- /dev/null +++ b/recipes/wip/emulators/game-console/snes9x/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +# build instructions: https://github.com/snes9xgit/snes9x/wiki/Compiling +[source] +git = "https://github.com/snes9xgit/snes9x" +rev = "1.63" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "sdl2", + "gtk3mm", + "libpng", + "zlib", + "libx11", + "libepoxy", +] diff --git a/recipes/wip/emulators/game-console/tetanes/recipe.toml b/recipes/wip/emulators/game-console/tetanes/recipe.toml new file mode 100644 index 000000000..e374365f0 --- /dev/null +++ b/recipes/wip/emulators/game-console/tetanes/recipe.toml @@ -0,0 +1,12 @@ +#TODO Not compiled or tested yet +[source] +git = "https://github.com/lukexor/tetanes" +[build] +template = "cargo" +dependencies = [ + "sdl2", + "sdl2-image", + "sdl2-mixer", + "sdl2-ttf", + "sdl2-gfx", +] diff --git a/recipes/wip/emulators/game-console/uoyabause/recipe.toml b/recipes/wip/emulators/game-console/uoyabause/recipe.toml new file mode 100644 index 000000000..b1f730447 --- /dev/null +++ b/recipes/wip/emulators/game-console/uoyabause/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested yet +# build instructions: https://github.com/devmiyax/yabause/blob/master/yabause/README.LIN#L77 +[source] +git = "https://github.com/devmiyax/yabause" +rev = "7d28bd54aa3188e90e4126ff9f7c27b945380488" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "gtk2", + "sdl2", + "mesa", + "gtkglext", +] diff --git a/recipes/wip/emulators/game-console/vita3k/recipe.toml b/recipes/wip/emulators/game-console/vita3k/recipe.toml new file mode 100644 index 000000000..cf8b54e2e --- /dev/null +++ b/recipes/wip/emulators/game-console/vita3k/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested yet +# build instructions: https://github.com/Vita3K/Vita3K/blob/master/building.md#linux +[source] +git = "https://github.com/Vita3K/Vita3K" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "sdl2", + "gtk3", + "openssl3", +] diff --git a/recipes/wip/emulators/game-console/xemu/recipe.toml b/recipes/wip/emulators/game-console/xemu/recipe.toml new file mode 100644 index 000000000..94832bf51 --- /dev/null +++ b/recipes/wip/emulators/game-console/xemu/recipe.toml @@ -0,0 +1,21 @@ +#TODO adapt build.sh script for cross-compilation +# build instructions: https://xemu.app/docs/dev/building-from-source/#linux +[source] +tar = "https://github.com/xemu-project/xemu/releases/download/v0.8.115/src.tar.gz" +[build] +template = "custom" +dependencies = [ + "sdl2", + "libepoxy", + "libsamplerate", + "pixman", + "gtk3", + "openssl3", + "libpcap", + "libslirp", +] +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +DYNAMIC_INIT +./build.sh +""" diff --git a/recipes/wip/emulators/game-console/xenia-canary/recipe.toml b/recipes/wip/emulators/game-console/xenia-canary/recipe.toml new file mode 100644 index 000000000..4cf2b0540 --- /dev/null +++ b/recipes/wip/emulators/game-console/xenia-canary/recipe.toml @@ -0,0 +1,15 @@ +#TODO missing script: https://github.com/xenia-canary/xenia-canary/blob/canary_experimental/docs/building.md#linux +[source] +git = "https://github.com/xenia-canary/xenia-canary" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "gtk3", + "sdl2", + "mesa-x11", + "lz4", + "libunwind", + "libpthread-stubs", + "libvulkan", +] diff --git a/recipes/wip/emulators/game-console/zsnes/recipe.toml b/recipes/wip/emulators/game-console/zsnes/recipe.toml new file mode 100644 index 000000000..1a32c2ec1 --- /dev/null +++ b/recipes/wip/emulators/game-console/zsnes/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing script for gnu make: https://github.com/xyproto/zsnes#build +[source] +git = "https://github.com/xyproto/zsnes" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "sdl1", + "zlib", + "mesa", + "libpng", +] diff --git a/recipes/wip/emulators/mobile/touchhle/recipe.toml b/recipes/wip/emulators/mobile/touchhle/recipe.toml new file mode 100644 index 000000000..c11451713 --- /dev/null +++ b/recipes/wip/emulators/mobile/touchhle/recipe.toml @@ -0,0 +1,13 @@ +#TODO make boost work +[source] +git = "https://github.com/hikari-no-yume/touchHLE" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "boost", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/emulators/mobile/wie/recipe.toml b/recipes/wip/emulators/mobile/wie/recipe.toml new file mode 100644 index 000000000..a24022cee --- /dev/null +++ b/recipes/wip/emulators/mobile/wie/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error +[source] +git = "https://github.com/dlunch/wie" +[build] +template = "custom" +script = """ +cookbook_cargo_packages wie_cli +""" diff --git a/recipes/wip/emulators/pc/darling/recipe.toml b/recipes/wip/emulators/pc/darling/recipe.toml new file mode 100644 index 000000000..a16300118 --- /dev/null +++ b/recipes/wip/emulators/pc/darling/recipe.toml @@ -0,0 +1,25 @@ +#TODO not compiled or tested +# build instructions: https://docs.darlinghq.org/build-instructions.html#building-and-installing +[source] +git = "https://github.com/darlinghq/darling" +shallow_clone = true +[build] +template = "cmake" +cmakeflags = [ + "-DTARGET_i386=OFF" +] +dependencies = [ + "libfuse3", + "libevdev", + "cairo", + "mesa", + "libtiff", + "freetype2", + "libxml2", + "fontconfig", + "libbsd", + "libgif", + "ffmpeg6", + "openssl3", + "libxkbfile", +] diff --git a/recipes/wip/emulators/pc/martypc/recipe.toml b/recipes/wip/emulators/pc/martypc/recipe.toml new file mode 100644 index 000000000..5ab9bbe00 --- /dev/null +++ b/recipes/wip/emulators/pc/martypc/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://github.com/dbalsom/martypc/wiki/Building-MartyPC#building-for-linux +[source] +git = "https://github.com/dbalsom/martypc" +[build] +template = "custom" +script = """ +cookbook_cargo_packages martypc_eframe +""" diff --git a/recipes/wip/emulators/pc/opengmk/recipe.toml b/recipes/wip/emulators/pc/opengmk/recipe.toml new file mode 100644 index 000000000..fda49cc62 --- /dev/null +++ b/recipes/wip/emulators/pc/opengmk/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/OpenGMK/OpenGMK" +[build] +template = "custom" +dependencies = [ + "libalsa", +] +script = """ +DYNAMIC_INIT +cookbook_cargo_packages gm8emulator +""" diff --git a/recipes/wip/emulators/pc/ruffle/recipe.toml b/recipes/wip/emulators/pc/ruffle/recipe.toml new file mode 100644 index 000000000..1882070aa --- /dev/null +++ b/recipes/wip/emulators/pc/ruffle/recipe.toml @@ -0,0 +1,14 @@ +#TODO camino crate error +# build instructions: https://github.com/ruffle-rs/ruffle#building-from-source +[source] +git = "https://github.com/ruffle-rs/ruffle" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "openssl3", +] +script = """ +DYNAMIC_INIT +cookbook_cargo_packages ruffle_desktop +""" diff --git a/recipes/wip/emulators/security/rust-u2f/recipe.toml b/recipes/wip/emulators/security/rust-u2f/recipe.toml new file mode 100644 index 000000000..547b23ff7 --- /dev/null +++ b/recipes/wip/emulators/security/rust-u2f/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for GNU Make, see https://github.com/danstiner/rust-u2f#building +#TODO missing service for Redox +[source] +git = "https://github.com/danstiner/rust-u2f" +[build] +template = "custom" diff --git a/recipes/wip/emulators/windows/boxedwine/recipe.toml b/recipes/wip/emulators/windows/boxedwine/recipe.toml new file mode 100644 index 000000000..6402cc4d9 --- /dev/null +++ b/recipes/wip/emulators/windows/boxedwine/recipe.toml @@ -0,0 +1,88 @@ +#TODO runtime crash +[source] +git = "https://github.com/jackpot51/Boxedwine" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "curl", + "liborbital", + "mesa", + "mesa-glu", + "nghttp2", + "openssl1", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT +cd "${COOKBOOK_SOURCE}/project/linux" +#TODO: USE MAKEFILE +#TODO: USE X64 CPU CORE +${TARGET}-gcc -std=c++17 -O2 \ + -Wall \ + -Wno-delete-incomplete \ + -Wno-unused-result \ + -Wno-unknown-pragmas \ + -Wno-unused-local-typedefs \ + -Wno-unused-variable \ + -Wno-unused-function \ + -Wno-unused-but-set-variable \ + -I "${COOKBOOK_SYSROOT}/include/SDL2" \ + -I../../include \ + -I../../lib/glew/include \ + -I../../lib/imgui \ + ../../lib/imgui/imgui.cpp \ + ../../lib/pugixml/src/*.cpp \ + ../../lib/imgui/imgui_draw.cpp \ + ../../lib/imgui/imgui_widgets.cpp \ + ../../lib/imgui/examples/imgui_impl_opengl2.cpp \ + ../../lib/imgui/examples/imgui_impl_sdl.cpp \ + ../../lib/imgui/addon/imguitinyfiledialogs.cpp \ + ../../source/sdl/*.cpp \ + ../../source/sdl/singleThreaded/*.cpp \ + ../../lib/glew/src/glew.cpp \ + ../../source/ui/*.cpp \ + ../../source/ui/controls/*.cpp \ + ../../source/ui/data/*.cpp \ + ../../source/ui/opengl/*.cpp \ + ../../source/ui/utils/*.cpp \ + ../../platform/sdl/*.cpp \ + ../../platform/linux/*.cpp \ + ../../source/emulation/cpu/*.cpp \ + ../../source/emulation/cpu/common/*.cpp \ + ../../source/emulation/cpu/normal/*.cpp \ + ../../source/emulation/softmmu/*.cpp \ + ../../source/io/*.cpp \ + ../../source/kernel/*.cpp \ + ../../source/kernel/devs/*.cpp \ + ../../source/kernel/proc/*.cpp \ + ../../source/kernel/sys/*.cpp \ + ../../source/kernel/loader/*.cpp \ + ../../source/util/*.cpp \ + ../../source/opengl/sdl/*.cpp \ + ../../source/opengl/*.cpp \ + ../../lib/tiny-process/process.cpp \ + ../../lib/tiny-process/process_unix.cpp \ + ../../lib/zlib/contrib/minizip/ioapi.c \ + ../../lib/zlib/contrib/minizip/mztools.c \ + ../../lib/zlib/contrib/minizip/unzip.c \ + ../../lib/zlib/contrib/minizip/zip.c \ + `${PKG_CONFIG} libcurl --cflags --libs` \ + `${PKG_CONFIG} sdl2 --cflags --libs` \ + -lz \ + -lstdc++ \ + "-DGLH=" \ + -DBOXEDWINE_64 \ + -DBOXEDWINE_HAS_SETJMP \ + -DBOXEDWINE_OPENGL_IMGUI_V2 \ + -DBOXEDWINE_OPENGL_SDL \ + -DBOXEDWINE_POSIX \ + -DBOXEDWINE_ZLIB \ + -DGLEW_OSMESA \ + -DSDL2=1 \ + -DSIMDE_SSE2_NO_NATIVE \ + -o "${COOKBOOK_BUILD}/boxedwine" +mkdir -p "${COOKBOOK_STAGE}/usr/bin" +cp -v "${COOKBOOK_BUILD}/boxedwine" "${COOKBOOK_STAGE}/usr/bin/boxedwine" +""" diff --git a/recipes/wip/emulators/windows/hangover/recipe.toml b/recipes/wip/emulators/windows/hangover/recipe.toml new file mode 100644 index 000000000..0d60487a1 --- /dev/null +++ b/recipes/wip/emulators/windows/hangover/recipe.toml @@ -0,0 +1,93 @@ +#TODO not compiled or tested +# build instructions: https://github.com/AndreRH/hangover/blob/master/docs/COMPILE.md +[source] +git = "https://github.com/AndreRH/hangover" +rev = "hangover-10.18" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "fontconfig", + "freetype2", + "gnutls3", + "gstreamer", + "sdl2", + "mesa-x11", + "libstdcxx", + "libx11", + "libxcomposite", + "libxcursor", + "libxi", + "libxfixes", + "libxrandr", + "libxrender", + "libxext", + "libxkbcommon", + #"libxkbregistry", +] +script = """ +DYNAMIC_INIT +mkdir -p wine-tools +pushd wine-tools +#TODO: easier way to build for host? +HOST_ENV=( + env + --unset=AR + --unset=AS + --unset=CC + --unset=CFLAGS + --unset=CPPFLAGS + --unset=CXX + --unset=GNU_TARGET + --unset=LD + --unset=LDFLAGS + --unset=NM + --unset=OBJCOPY + --unset=OBJDUMP + --unset=PKG_CONFIG + --unset=PKG_CONFIG_ALLOW_CROSS + --unset=PKG_CONFIG_FOR_BUILD + --unset=PKG_CONFIG_LIBDIR + --unset=PKG_CONFIG_PATH + --unset=PKG_CONFIG_SYSROOT_DIR + --unset=PREFIX_RUSTFLAGS + --unset=RANLIB + --unset=READELF + --unset=STRIP + --unset=TARGET +) +"${HOST_ENV[@]}" "${COOKBOOK_CONFIGURE}" --enable-win64 +"${HOST_ENV[@]}" "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" __tooldeps__ +popd + +COOKBOOK_CONFIGURE_FLAGS+=( + --enable-win64 + --enable-archs=x86_64,i386,arm + --disable-kerberos + --disable-tests + --without-capi + --without-coreaudio + --without-dbus + --without-gettext + --without-gettextpo + --without-gphoto + --without-gssapi + --without-inotify + --without-krb5 + --without-netapi + --without-opencl + --without-osmesa + --without-pcap + --without-pcsclite + --with-pthread + --without-pulse + --without-sane + --with-sdl + --without-udev + --without-unwind + --without-usb + --with-mingw + --with-wine-tools=wine-tools +) +cookbook_configure +""" diff --git a/recipes/wip/emulators/windows/retrowin32/recipe.toml b/recipes/wip/emulators/windows/retrowin32/recipe.toml new file mode 100644 index 000000000..3aa3fc77f --- /dev/null +++ b/recipes/wip/emulators/windows/retrowin32/recipe.toml @@ -0,0 +1,22 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/evmar/retrowin32" +[build] +template = "custom" +dependencies = [ + "sdl2", +] +script = """ +DYNAMIC_INIT +package=retrowin32 +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${package}" \ + --release + --x86-emu + --sdl + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${package}" \ + "${COOKBOOK_STAGE}/usr/bin/${package}" +""" diff --git a/recipes/wip/emulators/windows/wine-stable/recipe.toml b/recipes/wip/emulators/windows/wine-stable/recipe.toml new file mode 100644 index 000000000..1034be31b --- /dev/null +++ b/recipes/wip/emulators/windows/wine-stable/recipe.toml @@ -0,0 +1,96 @@ +#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" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "fontconfig", + "freetype2", + "gnutls3", + "gstreamer", + "sdl2", + "mesa-x11", + "libstdcxx", + "libx11", + "libxcomposite", + "libxcursor", + "libxi", + "libxfixes", + "libxrandr", + "libxrender", + "libxext", + "libxkbcommon", + #"libxkbregistry", +] +script = """ +DYNAMIC_INIT + +mkdir -p wine-tools +pushd wine-tools +#TODO: easier way to build for host? +HOST_ENV=( + env + --unset=AR + --unset=AS + --unset=CC + --unset=CFLAGS + --unset=CPPFLAGS + --unset=CXX + --unset=GNU_TARGET + --unset=LD + --unset=LDFLAGS + --unset=NM + --unset=OBJCOPY + --unset=OBJDUMP + --unset=PKG_CONFIG + --unset=PKG_CONFIG_ALLOW_CROSS + --unset=PKG_CONFIG_FOR_BUILD + --unset=PKG_CONFIG_LIBDIR + --unset=PKG_CONFIG_PATH + --unset=PKG_CONFIG_SYSROOT_DIR + --unset=PREFIX_RUSTFLAGS + --unset=RANLIB + --unset=READELF + --unset=STRIP + --unset=TARGET +) +"${HOST_ENV[@]}" "${COOKBOOK_CONFIGURE}" --enable-win64 +"${HOST_ENV[@]}" "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" __tooldeps__ +popd + +COOKBOOK_CONFIGURE_FLAGS+=( + --enable-win64 + --disable-kerberos + --disable-tests + --without-capi + --without-coreaudio + --without-dbus + --without-gettext + --without-gettextpo + --without-gphoto + --without-gssapi + --without-inotify + --without-krb5 + --without-netapi + --without-opencl + --without-osmesa + --without-pcap + --without-pcsclite + --with-pthread + --without-pulse + --without-sane + --with-sdl + --without-udev + --without-unwind + --without-usb + --with-wine-tools=wine-tools +) +cookbook_configure +""" diff --git a/recipes/wip/files/hf/recipe.toml b/recipes/wip/files/hf/recipe.toml new file mode 100644 index 000000000..6943199a7 --- /dev/null +++ b/recipes/wip/files/hf/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sorairolake/hf" +[build] +template = "cargo" diff --git a/recipes/wip/files/lsv/recipe.toml b/recipes/wip/files/lsv/recipe.toml new file mode 100644 index 000000000..bfc4defe3 --- /dev/null +++ b/recipes/wip/files/lsv/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/SecretDeveloper/lsv" +[build] +template = "cargo" diff --git a/recipes/wip/files/mc/recipe.toml b/recipes/wip/files/mc/recipe.toml new file mode 100644 index 000000000..1659d9daa --- /dev/null +++ b/recipes/wip/files/mc/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://github.com/MidnightCommander/mc/blob/master/doc/INSTALL +[source] +tar = "https://ftp.osuosl.org/pub/midnightcommander/mc-4.8.33.tar.xz" +[build] +template = "configure" +configureflags = [ + "--without-x", + "--without-gpm-mouse", +] +dependencies = [ + "ncurses", +] diff --git a/recipes/wip/files/unf/recipe.toml b/recipes/wip/files/unf/recipe.toml new file mode 100644 index 000000000..205fa1d80 --- /dev/null +++ b/recipes/wip/files/unf/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/io12/unf" +[build] +template = "cargo" diff --git a/recipes/wip/finance/bitcoin/btc-vanity/recipe.toml b/recipes/wip/finance/bitcoin/btc-vanity/recipe.toml new file mode 100644 index 000000000..a6f64b89f --- /dev/null +++ b/recipes/wip/finance/bitcoin/btc-vanity/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Emivvvvv/btc-vanity" +[build] +template = "cargo" diff --git a/recipes/wip/finance/bitcoin/electrum/recipe.toml b/recipes/wip/finance/bitcoin/electrum/recipe.toml new file mode 100644 index 000000000..fe4aea576 --- /dev/null +++ b/recipes/wip/finance/bitcoin/electrum/recipe.toml @@ -0,0 +1,12 @@ +# runtime dependencies - https://electrum.org/#download +[source] +tar = "https://download.electrum.org/4.5.5/Electrum-4.5.5.tar.gz" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/electrum +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/electrum +echo "#!/usr/bin/env sh \n python3 /usr/share/electrum/run_electrum" > "${COOKBOOK_STAGE}"/usr/bin/electrum +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/electrum +""" diff --git a/recipes/wip/finance/bitcoin/liana/recipe.toml b/recipes/wip/finance/bitcoin/liana/recipe.toml new file mode 100644 index 000000000..2418680bd --- /dev/null +++ b/recipes/wip/finance/bitcoin/liana/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/wizardsardine/liana" +[build] +template = "cargo" diff --git a/recipes/wip/finance/bitcoin/nakamoto-wallet/recipe.toml b/recipes/wip/finance/bitcoin/nakamoto-wallet/recipe.toml new file mode 100644 index 000000000..2fecaf7d9 --- /dev/null +++ b/recipes/wip/finance/bitcoin/nakamoto-wallet/recipe.toml @@ -0,0 +1,8 @@ +#TODO hidapi crate error - redox not supported (after cargo update) +[source] +git = "https://github.com/cloudhead/nakamoto" +[build] +template = "custom" +script = """ +cookbook_cargo_packages nakamoto-wallet +""" diff --git a/recipes/wip/finance/bitcoin/nakatoshi/recipe.toml b/recipes/wip/finance/bitcoin/nakatoshi/recipe.toml new file mode 100644 index 000000000..8bc38c884 --- /dev/null +++ b/recipes/wip/finance/bitcoin/nakatoshi/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ndelvalle/nakatoshi" +[build] +template = "cargo" diff --git a/recipes/wip/finance/bitcoin/ord/recipe.toml b/recipes/wip/finance/bitcoin/ord/recipe.toml new file mode 100644 index 000000000..16044aa40 --- /dev/null +++ b/recipes/wip/finance/bitcoin/ord/recipe.toml @@ -0,0 +1,8 @@ +#TODO the ring crate needs to be updated +[source] +git = "https://github.com/ordinals/ord" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/finance/bitcoin/pushtx/recipe.toml b/recipes/wip/finance/bitcoin/pushtx/recipe.toml new file mode 100644 index 000000000..43b24cf73 --- /dev/null +++ b/recipes/wip/finance/bitcoin/pushtx/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +#TODO add a command to properly move the executable +[source] +git = "https://github.com/alfred-hodler/pushtx" +[build] +template = "custom" +script = """ +cookbook_cargo_packages pushtx-cli +""" diff --git a/recipes/wip/finance/bitcoin/rusty-blockparser/recipe.toml b/recipes/wip/finance/bitcoin/rusty-blockparser/recipe.toml new file mode 100644 index 000000000..c7c853e1b --- /dev/null +++ b/recipes/wip/finance/bitcoin/rusty-blockparser/recipe.toml @@ -0,0 +1,5 @@ +#TODO fs2 crate error +[source] +git = "https://github.com/gcarq/rusty-blockparser" +[build] +template = "cargo" diff --git a/recipes/wip/finance/donation/cargo-fund/recipe.toml b/recipes/wip/finance/donation/cargo-fund/recipe.toml new file mode 100644 index 000000000..cb40c0335 --- /dev/null +++ b/recipes/wip/finance/donation/cargo-fund/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/acfoltzer/cargo-fund" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/finance/market/apcacli/recipe.toml b/recipes/wip/finance/market/apcacli/recipe.toml new file mode 100644 index 000000000..e2fdc08b5 --- /dev/null +++ b/recipes/wip/finance/market/apcacli/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/d-e-s-o/apcacli" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/finance/market/merkato/recipe.toml b/recipes/wip/finance/market/merkato/recipe.toml new file mode 100644 index 000000000..436229ca8 --- /dev/null +++ b/recipes/wip/finance/market/merkato/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sheep-farm/merkato" +rev = "0.2.0.1" +[build] +template = "meson" +dependencies = [ + "gtk4", +] diff --git a/recipes/wip/finance/market/tick-rs/recipe.toml b/recipes/wip/finance/market/tick-rs/recipe.toml new file mode 100644 index 000000000..844eedc07 --- /dev/null +++ b/recipes/wip/finance/market/tick-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/tarkah/tickrs" +[build] +template = "cargo" diff --git a/recipes/wip/finance/mgmt/gnucash/recipe.toml b/recipes/wip/finance/mgmt/gnucash/recipe.toml new file mode 100644 index 000000000..93880f581 --- /dev/null +++ b/recipes/wip/finance/mgmt/gnucash/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +#TODO discover the minimum dependencies from cmake log +# build instructions: https://wiki.gnucash.org/wiki/Building_On_Linux +# dependencies: https://wiki.gnucash.org/wiki/Dependencies +[source] +tar = "https://sourceforge.net/projects/gnucash/files/gnucash%20(stable)/5.13/gnucash-5.13.tar.bz2" +[build] +template = "cmake" diff --git a/recipes/wip/finance/mgmt/tackler-ng/recipe.toml b/recipes/wip/finance/mgmt/tackler-ng/recipe.toml new file mode 100644 index 000000000..edaf9a90a --- /dev/null +++ b/recipes/wip/finance/mgmt/tackler-ng/recipe.toml @@ -0,0 +1,10 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/e257-fi/tackler-ng" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/tackler-ng/examples +cp -rv "${COOKBOOK_SOURCE}"/examples/* "${COOKBOOK_STAGE}"/usr/share/tackler-ng/examples +cookbook_cargo_packages tackler +""" diff --git a/recipes/wip/finance/monero/gupax/recipe.toml b/recipes/wip/finance/monero/gupax/recipe.toml new file mode 100644 index 000000000..32645f793 --- /dev/null +++ b/recipes/wip/finance/monero/gupax/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/hinto-janai/gupax" +[build] +template = "cargo" diff --git a/recipes/wip/finance/monero/xmrig/recipe.toml b/recipes/wip/finance/monero/xmrig/recipe.toml new file mode 100644 index 000000000..991da573c --- /dev/null +++ b/recipes/wip/finance/monero/xmrig/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://xmrig.com/docs/miner/build/ubuntu +# customization - https://xmrig.com/docs/miner/cmake-options +[source] +git = "https://github.com/xmrig/xmrig" +rev = "8084ff37a5c8935c649a2e362da0fe570c79a2c2" +[build] +template = "cmake" +#cmakeflags = [ +# "-DOPENSSL_ROOT_DIR=${COOKBOOK_SYSROOT}" # test if the program need this +#] +dependencies = [ + "openssl1", + "libuv", +] diff --git a/recipes/wip/finance/rex/recipe.toml b/recipes/wip/finance/rex/recipe.toml new file mode 100644 index 000000000..2f335572a --- /dev/null +++ b/recipes/wip/finance/rex/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/TheRustyPickle/Rex" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/fonts/fontfor/recipe.toml b/recipes/wip/fonts/fontfor/recipe.toml new file mode 100644 index 000000000..d45353275 --- /dev/null +++ b/recipes/wip/fonts/fontfor/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/7sDream/fontfor" +[build] +template = "cargo" diff --git a/recipes/wip/fonts/fontforge/recipe.toml b/recipes/wip/fonts/fontforge/recipe.toml new file mode 100644 index 000000000..e7cb3f017 --- /dev/null +++ b/recipes/wip/fonts/fontforge/recipe.toml @@ -0,0 +1,17 @@ +#TODO missing script for Ninja, see https://github.com/fontforge/fontforge/blob/master/INSTALL.md +[source] +tar = "https://github.com/fontforge/fontforge/releases/download/20230101/fontforge-20230101.tar.xz" +[build] +template = "custom" +dependencies = [ + "libtiff", + "libjpeg", + "libpng", + "libgif", + "libxml2", + "gtk3", + "freetype2", + "pango", + "cairo", + "libspiro", +] diff --git a/recipes/wip/fonts/gerb/recipe.toml b/recipes/wip/fonts/gerb/recipe.toml new file mode 100644 index 000000000..c15fa3ab7 --- /dev/null +++ b/recipes/wip/fonts/gerb/recipe.toml @@ -0,0 +1,8 @@ +#TODO make GTK3 work +[source] +git = "https://github.com/epilys/gerb" +[build] +template = "cargo" +dependencies = [ + "gtk3", +] diff --git a/recipes/wip/fonts/nerd-fonts/recipe.toml b/recipes/wip/fonts/nerd-fonts/recipe.toml new file mode 100644 index 000000000..bf4e07383 --- /dev/null +++ b/recipes/wip/fonts/nerd-fonts/recipe.toml @@ -0,0 +1,10 @@ +#TODO probably wrong script +[source] +git = "https://github.com/ryanoasis/nerd-fonts" +rev = "7b41c66a1ef0c4ac5884a4203cb53c0901217e32" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/ui/fonts +cp -rv "${COOKBOOK_SOURCE}"/patched-fonts/* "${COOKBOOK_STAGE}"/ui/fonts +""" diff --git a/recipes/wip/fuse/archivemount/recipe.toml b/recipes/wip/fuse/archivemount/recipe.toml new file mode 100644 index 000000000..013a99c57 --- /dev/null +++ b/recipes/wip/fuse/archivemount/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/cybernoid/archivemount" +rev = "78c306538065de9b14f48cfc2024f50f843d3b29" +[build] +template = "configure" +dependencies = [ + "libfuse2", + "libarchive", +] diff --git a/recipes/wip/fuse/btfs/recipe.toml b/recipes/wip/fuse/btfs/recipe.toml new file mode 100644 index 000000000..0bf3fbdaf --- /dev/null +++ b/recipes/wip/fuse/btfs/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +#TODO maybe incomplete configuration +# build instructions - https://github.com/johang/btfs#building-from-git-on-a-recent-debianubuntu +[source] +git = "https://github.com/johang/btfs" +rev = "2b372f4596df3ff97e3b39d58b144a7cbfff012a" +script = "autoreconf -i" +[build] +template = "configure" +dependencies = [ + "libfuse3", + "libtorrent", + "curl", +] diff --git a/recipes/wip/fuse/cryfs/recipe.toml b/recipes/wip/fuse/cryfs/recipe.toml new file mode 100644 index 000000000..f7e8f0665 --- /dev/null +++ b/recipes/wip/fuse/cryfs/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://github.com/cryfs/cryfs#building-from-source +[source] +tar = "https://github.com/cryfs/cryfs/releases/download/1.0.1/cryfs-1.0.1.tar.xz" +[build] +template = "cmake" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/cvmfs/recipe.toml b/recipes/wip/fuse/cvmfs/recipe.toml new file mode 100644 index 000000000..3a6813bb8 --- /dev/null +++ b/recipes/wip/fuse/cvmfs/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#building-from-source +[source] +tar = "https://ecsft.cern.ch/dist/cvmfs/cvmfs-2.11.2/source.tar.gz" +[build] +template = "cmake" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/dislocker/recipe.toml b/recipes/wip/fuse/dislocker/recipe.toml new file mode 100644 index 000000000..ef6fece0a --- /dev/null +++ b/recipes/wip/fuse/dislocker/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Aorimn/dislocker/blob/master/INSTALL.md +[source] +git = "https://github.com/Aorimn/dislocker" +rev = "8b2aea09d431bd5497ae223c141ebaee7bdd481f" +[build] +template = "cmake" +dependencies = [ + "libfuse3", + "mbedtls", +] diff --git a/recipes/wip/fuse/dwarfs/recipe.toml b/recipes/wip/fuse/dwarfs/recipe.toml new file mode 100644 index 000000000..dd3623952 --- /dev/null +++ b/recipes/wip/fuse/dwarfs/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +# build instructions: https://github.com/mhx/dwarfs#building +#TODO missing dependencies, see https://github.com/mhx/dwarfs#dependencies +[source] +tar = "https://github.com/mhx/dwarfs/releases/download/v0.7.2/dwarfs-0.7.2.tar.xz" +[build] +template = "cmake" +dependencies = [ + "libfuse3", + "boost", + "libbrotli", + "libevent", + "openssl1", + "lz4", + "xz", + "libunwind", + "libfmt", +] diff --git a/recipes/wip/fuse/e2fsprogs/recipe.toml b/recipes/wip/fuse/e2fsprogs/recipe.toml new file mode 100644 index 000000000..35606ec41 --- /dev/null +++ b/recipes/wip/fuse/e2fsprogs/recipe.toml @@ -0,0 +1,6 @@ +#TODO maybe wrong template +# build instructions - https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/tree/INSTALL +[source] +tar = "http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.47.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/fuse/exfat-fuse/recipe.toml b/recipes/wip/fuse/exfat-fuse/recipe.toml new file mode 100644 index 000000000..485029688 --- /dev/null +++ b/recipes/wip/fuse/exfat-fuse/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/relan/exfat/releases/download/v1.4.0/fuse-exfat-1.4.0.tar.gz" +[build] +template = "configure" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/ffmpegfs/recipe.toml b/recipes/wip/fuse/ffmpegfs/recipe.toml new file mode 100644 index 000000000..f79f1d828 --- /dev/null +++ b/recipes/wip/fuse/ffmpegfs/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/nschlia/ffmpegfs/blob/master/INSTALL.md#building-ffmpegfs-yourself +[source] +tar = "https://github.com/nschlia/ffmpegfs/releases/download/v2.17/ffmpegfs-2.17.tar.gz" +[build] +template = "configure" +dependencies = [ + "libfuse3", + "sqlite3", + "ffmpeg6", +] diff --git a/recipes/wip/fuse/fuse-ext2/recipe.toml b/recipes/wip/fuse/fuse-ext2/recipe.toml new file mode 100644 index 000000000..9a612cc97 --- /dev/null +++ b/recipes/wip/fuse/fuse-ext2/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +#TODO missing dependencies +# build instructions: https://github.com/alperakcan/fuse-ext2#building +[source] +git = "https://github.com/alperakcan/fuse-ext2" +rev = "ae35afb9ab08d87c66c1e021df792b3a7c4308b0" +script = "./autogen.sh" +[build] +template = "configure" +dependencies = [ + "libfuse2", +] diff --git a/recipes/wip/fuse/fuse-nfs/recipe.toml b/recipes/wip/fuse/fuse-nfs/recipe.toml new file mode 100644 index 000000000..4fd68c7db --- /dev/null +++ b/recipes/wip/fuse/fuse-nfs/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sahlberg/fuse-nfs" +rev = "75827244f1615be20da880cbc68665416131088d" +script = "./setup.sh" +[build] +template = "configure" +dependencies = [ + "libfuse3", + "libnfs", +] diff --git a/recipes/wip/fuse/fuse-zip/recipe.toml b/recipes/wip/fuse/fuse-zip/recipe.toml new file mode 100644 index 000000000..3c8cf95be --- /dev/null +++ b/recipes/wip/fuse/fuse-zip/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for gnu make: https://bitbucket.org/agalanin/fuse-zip/src/master/INSTALL +[source] +git = "https://bitbucket.org/agalanin/fuse-zip" +rev = "0.7.2" +[build] +template = "custom" +dependencies = [ + "libfuse2", + "libzip", +] diff --git a/recipes/wip/fuse/glusterfs/recipe.toml b/recipes/wip/fuse/glusterfs/recipe.toml new file mode 100644 index 000000000..1557fc6d1 --- /dev/null +++ b/recipes/wip/fuse/glusterfs/recipe.toml @@ -0,0 +1,14 @@ +#TODO make all dependencies work +#TODO probably missing dependencies, see https://docs.gluster.org/en/latest/Developer-guide/Building-GlusterFS/#build-requirements +# customization - https://docs.gluster.org/en/latest/Developer-guide/Building-GlusterFS/#configuring-for-building +[source] +tar = "https://download.gluster.org/pub/gluster/glusterfs/9/LATEST/glusterfs-9.6.tar.gz" +[build] +template = "configure" +dependencies = [ + "openssl1", + "libxml2", + "libaio", + "sqlite3", + "libfuse3", +] diff --git a/recipes/wip/fuse/goofys/recipe.toml b/recipes/wip/fuse/goofys/recipe.toml new file mode 100644 index 000000000..767ca5fc7 --- /dev/null +++ b/recipes/wip/fuse/goofys/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for Go, see https://github.com/kahing/goofys/#installation +[source] +git = "https://github.com/kahing/goofys" +rev = "45b8d78375af1b24604439d2e60c567654bcdf88" +[build] +template = "custom" diff --git a/recipes/wip/fuse/hfsfuse/recipe.toml b/recipes/wip/fuse/hfsfuse/recipe.toml new file mode 100644 index 000000000..f5c1b7494 --- /dev/null +++ b/recipes/wip/fuse/hfsfuse/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for gnu make, see https://github.com/0x09/hfsfuse#building +[source] +tar = "https://github.com/0x09/hfsfuse/releases/download/0.242/hfsfuse-0.242.tar.gz" +[build] +template = "custom" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/httpdirfs/recipe.toml b/recipes/wip/fuse/httpdirfs/recipe.toml new file mode 100644 index 000000000..e772e3f1e --- /dev/null +++ b/recipes/wip/fuse/httpdirfs/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/fangfufu/httpdirfs#compilation +[source] +git = "https://github.com/fangfufu/httpdirfs" +rev = "d91bb2b2789be8a0f72c7baddac63ffb78299ad9" +[build] +template = "meson" +dependencies = [ + "libfuse3", + "openssl1", + "curl", + "expat", + "libuuid", + "libgumbo", +] diff --git a/recipes/wip/fuse/ifuse/recipe.toml b/recipes/wip/fuse/ifuse/recipe.toml new file mode 100644 index 000000000..cf08e3f9f --- /dev/null +++ b/recipes/wip/fuse/ifuse/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/libimobiledevice/ifuse/releases/download/1.1.4/ifuse-1.1.4.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libfuse3", + "libplist", + "libimobiledevice", +] diff --git a/recipes/wip/fuse/indexfs/recipe.toml b/recipes/wip/fuse/indexfs/recipe.toml new file mode 100644 index 000000000..f1d020130 --- /dev/null +++ b/recipes/wip/fuse/indexfs/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libfuse work +#TODO probably missing dependencies +# build instructions - https://github.com/MajenkoProjects/indexfs/blob/master/INSTALL +[source] +git = "https://github.com/MajenkoProjects/indexfs" +script = "./autogen.sh" +[build] +template = "configure" diff --git a/recipes/wip/fuse/lazyfs/recipe.toml b/recipes/wip/fuse/lazyfs/recipe.toml new file mode 100644 index 000000000..b257c8c05 --- /dev/null +++ b/recipes/wip/fuse/lazyfs/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for compilation: https://github.com/dsrhaslab/lazyfs#installation +[source] +git = "https://github.com/dsrhaslab/lazyfs" +rev = "0.3.0" +[build] +template = "custom" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/lis/recipe.toml b/recipes/wip/fuse/lis/recipe.toml new file mode 100644 index 000000000..400e1fbd9 --- /dev/null +++ b/recipes/wip/fuse/lis/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/riffcc/lis" +[build] +template = "cargo" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/littlefs/recipe.toml b/recipes/wip/fuse/littlefs/recipe.toml new file mode 100644 index 000000000..e900199a7 --- /dev/null +++ b/recipes/wip/fuse/littlefs/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for gnu make +[source] +git = "https://github.com/littlefs-project/littlefs-fuse" +rev = "v2.7.14" +[build] +template = "custom" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/loggedfs/recipe.toml b/recipes/wip/fuse/loggedfs/recipe.toml new file mode 100644 index 000000000..49494c3a8 --- /dev/null +++ b/recipes/wip/fuse/loggedfs/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing script for gnu make +# build instructions: https://github.com/rflament/loggedfs#installation-from-source +[source] +git = "https://github.com/rflament/loggedfs" +rev = "82aba9a93489797026ad1a37b637823ece4a7093" +[build] +template = "custom" +dependencies = [ + "libfuse3", + "pcre2", + "libxml2", +] diff --git a/recipes/wip/fuse/mergerfs/recipe.toml b/recipes/wip/fuse/mergerfs/recipe.toml new file mode 100644 index 000000000..531089a0e --- /dev/null +++ b/recipes/wip/fuse/mergerfs/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for gnu make: https://trapexit.github.io/mergerfs/preview/setup/build/ +[source] +tar = "https://github.com/trapexit/mergerfs/releases/download/2.40.2/mergerfs-2.40.2.tar.gz" +[build] +template = "custom" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/moosefs/recipe.toml b/recipes/wip/fuse/moosefs/recipe.toml new file mode 100644 index 000000000..d9936b701 --- /dev/null +++ b/recipes/wip/fuse/moosefs/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing script for building, see https://github.com/moosefs/moosefs#source-code +[source] +git = "https://github.com/moosefs/moosefs" +rev = "79bca600d6ddfecfcb29af2fc6632b4e3d00f1a5" +[build] +template = "custom" +dependencies = [ + "libfuse3", + "libpcap", + "zlib", +] diff --git a/recipes/wip/fuse/mount-zip/recipe.toml b/recipes/wip/fuse/mount-zip/recipe.toml new file mode 100644 index 000000000..845cdb1ac --- /dev/null +++ b/recipes/wip/fuse/mount-zip/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing script for gnu make: https://github.com/google/mount-zip/blob/main/INSTALL.md +[source] +git = "https://github.com/google/mount-zip" +rev = "v1.10" +[build] +template = "custom" +dependencies = [ + "libfuse3", + "libzip", + "libicu", + "boost", +] diff --git a/recipes/wip/fuse/ntfs-3g/recipe.toml b/recipes/wip/fuse/ntfs-3g/recipe.toml new file mode 100644 index 000000000..81e68eadb --- /dev/null +++ b/recipes/wip/fuse/ntfs-3g/recipe.toml @@ -0,0 +1,5 @@ +#TODO port to redox +[source] +tar = "https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2022.10.3.tgz" +[build] +template = "configure" diff --git a/recipes/wip/fuse/oku-fs/recipe.toml b/recipes/wip/fuse/oku-fs/recipe.toml new file mode 100644 index 000000000..ae673c402 --- /dev/null +++ b/recipes/wip/fuse/oku-fs/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/OkuBrowser/oku-fs" +[build] +template = "custom" +dependencies = [ + "libfuse3", +] +script = """ +cookbook_cargo --features fuse cli +""" diff --git a/recipes/wip/fuse/pifs/recipe.toml b/recipes/wip/fuse/pifs/recipe.toml new file mode 100644 index 000000000..9e37c4ed5 --- /dev/null +++ b/recipes/wip/fuse/pifs/recipe.toml @@ -0,0 +1,10 @@ +#TODO make libfuse 2.x works +#TODO probably wrong script, see https://github.com/philipl/pifs#readme +[source] +git = "https://github.com/philipl/pifs" +script = "./autogen.sh" +[build] +template = "configure" +dependencies = [ + "libfuse2", +] diff --git a/recipes/wip/fuse/rencfs/recipe.toml b/recipes/wip/fuse/rencfs/recipe.toml new file mode 100644 index 000000000..f74c67f3c --- /dev/null +++ b/recipes/wip/fuse/rencfs/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/radumarias/rencfs" +[build] +template = "cargo" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/s3fs/recipe.toml b/recipes/wip/fuse/s3fs/recipe.toml new file mode 100644 index 000000000..d7a32860e --- /dev/null +++ b/recipes/wip/fuse/s3fs/recipe.toml @@ -0,0 +1,14 @@ +#TODO make libfuse2 work +# build instructions - https://github.com/s3fs-fuse/s3fs-fuse/blob/master/COMPILATION.md +[source] +git = "https://github.com/s3fs-fuse/s3fs-fuse" +rev = "5371cd1468c84423729c334ac997f9621b797e9f" +script = "./autogen.sh" +[build] +template = "configure" +dependencies = [ + "libfuse2", + "curl", + "libxml2", + "openssl1", +] diff --git a/recipes/wip/fuse/securefs/recipe.toml b/recipes/wip/fuse/securefs/recipe.toml new file mode 100644 index 000000000..534d8ce0e --- /dev/null +++ b/recipes/wip/fuse/securefs/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for vcpkg: https://github.com/netheril96/securefs#build-from-source +[source] +git = "https://github.com/netheril96/securefs" +rev = "v2.0.0" +[build] +template = "custom" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/simple-mtpfs/recipe.toml b/recipes/wip/fuse/simple-mtpfs/recipe.toml new file mode 100644 index 000000000..4edc3c5da --- /dev/null +++ b/recipes/wip/fuse/simple-mtpfs/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions - https://github.com/phatina/simple-mtpfs/blob/master/INSTALL +[source] +git = "https://github.com/phatina/simple-mtpfs" +rev = "19e7bb9b608b0c0dce2ee6f56fac75901bc69529" +script = "./autogen.sh" +[build] +template = "configure" +dependencies = [ + "libfuse3", + "libmtp", +] diff --git a/recipes/wip/fuse/squashfuse/recipe.toml b/recipes/wip/fuse/squashfuse/recipe.toml new file mode 100644 index 000000000..026cf5174 --- /dev/null +++ b/recipes/wip/fuse/squashfuse/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing dependencies +[source] +tar = "https://github.com/vasi/squashfuse/releases/download/0.5.2/squashfuse-0.5.2.tar.gz" +[build] +template = "configure" +dependencies = [ + "libfuse3", + "zlib", + "liblzma", + "lz4", + "zstd", +] diff --git a/recipes/wip/fuse/unionfs-fuse/recipe.toml b/recipes/wip/fuse/unionfs-fuse/recipe.toml new file mode 100644 index 000000000..17a6fc61c --- /dev/null +++ b/recipes/wip/fuse/unionfs-fuse/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/rpodgorny/unionfs-fuse#how-to-build +[source] +git = "https://github.com/rpodgorny/unionfs-fuse" +rev = "v3.7" +[build] +template = "cmake" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/fuse/unreliablefs/recipe.toml b/recipes/wip/fuse/unreliablefs/recipe.toml new file mode 100644 index 000000000..e554b8afd --- /dev/null +++ b/recipes/wip/fuse/unreliablefs/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ligurio/unreliablefs" +rev = "fa432252c117e82a0a36343895936f4fae246b56" +[build] +template = "cmake" +dependencies = [ + "libfuse3", +] diff --git a/recipes/wip/games/action/battleship-rs/recipe.toml b/recipes/wip/games/action/battleship-rs/recipe.toml new file mode 100644 index 000000000..2c7344faa --- /dev/null +++ b/recipes/wip/games/action/battleship-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/deepu105/battleship-rs" +[build] +template = "cargo" diff --git a/recipes/wip/games/action/bevy-combat/recipe.toml b/recipes/wip/games/action/bevy-combat/recipe.toml new file mode 100644 index 000000000..0e7a07912 --- /dev/null +++ b/recipes/wip/games/action/bevy-combat/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ElliotB256/bevy_combat" +[build] +template = "cargo" diff --git a/recipes/wip/games/action/openlara/assets/README.md b/recipes/wip/games/action/openlara/assets/README.md new file mode 100644 index 000000000..3979e4944 --- /dev/null +++ b/recipes/wip/games/action/openlara/assets/README.md @@ -0,0 +1,2 @@ + +To make assets working, purchase from https://www.gog.com/en/game/tomb_raider_123, then add 'audio', 'level', and 'video' to this folder. Additional info can be read from https://github.com/XProger/OpenLara/pull/414/files diff --git a/recipes/wip/games/action/openlara/recipe.toml b/recipes/wip/games/action/openlara/recipe.toml new file mode 100644 index 000000000..4985f980e --- /dev/null +++ b/recipes/wip/games/action/openlara/recipe.toml @@ -0,0 +1,20 @@ +#TODO: Compiled, not tested further +[source] +git = "https://github.com/XProger/OpenLara" + +[build] +template = "custom" +dependencies = [ + "sdl2", +] +script = """ +DYNAMIC_INIT +SRC="${COOKBOOK_SOURCE}/src" +mkdir -p "${COOKBOOK_STAGE}/usr/games/OpenLara" +${CXX} "-I${COOKBOOK_SYSROOT}/include" "-I$SRC/" ${LDFLAGS} -DSDL2_GLES -D_GAPI_GLES2 -std=c++11 \ + -O3 -fno-exceptions -fno-rtti -ffunction-sections -fdata-sections -Wl,--gc-sections -DNDEBUG -D__SDL2__ \ + -dynamic -lSDL2 -lGLESv2 -lEGL $("${PKG_CONFIG}" --libs osmesa) -o OpenLara \ + $SRC/platform/sdl2/main.cpp "$SRC/libs/stb_vorbis/stb_vorbis.c" "$SRC/libs/minimp3/minimp3.cpp" "$SRC/libs/tinf/tinflate.c" +cp -rv "${COOKBOOK_RECIPE}/assets" "${COOKBOOK_STAGE}/usr/games/sdl2_gears/" +cp OpenLara ${COOKBOOK_STAGE}/usr/games/OpenLara/OpenLara +""" diff --git a/recipes/wip/games/action/opentomb/recipe.toml b/recipes/wip/games/action/opentomb/recipe.toml new file mode 100644 index 000000000..da9618736 --- /dev/null +++ b/recipes/wip/games/action/opentomb/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://github.com/opentomb/OpenTomb#compiling +[source] +git = "https://github.com/opentomb/OpenTomb" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "libpng", + "zlib", + "openal", + "mesa", +] diff --git a/recipes/wip/games/data/0ad-data/recipe.toml b/recipes/wip/games/data/0ad-data/recipe.toml new file mode 100644 index 000000000..6f681daa1 --- /dev/null +++ b/recipes/wip/games/data/0ad-data/recipe.toml @@ -0,0 +1,9 @@ +#TODO not tested +[source] +tar = "https://releases.wildfiregames.com/0ad-0.0.26-alpha-unix-data.tar.xz" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/0ad/ +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/0ad/ +""" diff --git a/recipes/wip/games/data/crosshare-data/recipe.toml b/recipes/wip/games/data/crosshare-data/recipe.toml new file mode 100644 index 000000000..9b482e413 --- /dev/null +++ b/recipes/wip/games/data/crosshare-data/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/crosshare-org/crosshare" +shallow_clone = true +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/usr/share/crosshare-data" +cp -rv "${COOKBOOK_SOURCE}"/app/__tests__/converter/puz/*.puz "${COOKBOOK_STAGE}/usr/share/crosshare-data" +""" diff --git a/recipes/wip/games/data/minetest-data/recipe.toml b/recipes/wip/games/data/minetest-data/recipe.toml new file mode 100644 index 000000000..eebc00114 --- /dev/null +++ b/recipes/wip/games/data/minetest-data/recipe.toml @@ -0,0 +1,10 @@ +#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/jazzdemo.rar.sha b/recipes/wip/games/data/openjazz-shareware-data/jazzdemo.rar.sha new file mode 100644 index 000000000..f1a300db3 --- /dev/null +++ b/recipes/wip/games/data/openjazz-shareware-data/jazzdemo.rar.sha @@ -0,0 +1 @@ +a71e91cc0136449e58e922dc555180a84b04562f2c04c45d1545765dc77e32fb jazzdemo.rar diff --git a/recipes/wip/games/data/openjazz-shareware-data/manifest b/recipes/wip/games/data/openjazz-shareware-data/manifest new file mode 100644 index 000000000..ae844ad7b --- /dev/null +++ b/recipes/wip/games/data/openjazz-shareware-data/manifest @@ -0,0 +1,4 @@ +name=Jazz Jackrabbit (shareware) +category=Games +binary=/usr/games/OpenJazz +icon=/ui/icons/apps/OpenJazz.png diff --git a/recipes/wip/games/data/openjazz-shareware-data/recipe.toml b/recipes/wip/games/data/openjazz-shareware-data/recipe.toml new file mode 100644 index 000000000..3fca5d816 --- /dev/null +++ b/recipes/wip/games/data/openjazz-shareware-data/recipe.toml @@ -0,0 +1,20 @@ +# TODO: Requires unrar-free in the build container + +[build] +template = "custom" +script = """ +ASSETS_DIR="${COOKBOOK_STAGE}/usr/share/games/openjazz/" +APP_DIR="${COOKBOOK_STAGE}/ui/apps" + +curl -vJL https://archive.org/download/jazz-jackrabbit/Jazz%20Jackrabbit.rar -o jazzdemo.rar +sha256sum -c "${COOKBOOK_RECIPE}/jazzdemo.rar.sha" + +unrar x -u jazzdemo.rar +mkdir -p "${ASSETS_DIR}" "${APP_DIR}" +unzip -uL Jazz/JAZZ.ZIP -d "${ASSETS_DIR}" + +cp -v manifest "${APP_DIR}/openjazz" +""" + +[package] +dependencies = [ "openjazz" ] diff --git a/recipes/wip/games/engines/gemrb/recipe.toml b/recipes/wip/games/engines/gemrb/recipe.toml new file mode 100644 index 000000000..76566f834 --- /dev/null +++ b/recipes/wip/games/engines/gemrb/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/gemrb/gemrb/blob/master/INSTALL +[source] +tar = "https://sourceforge.net/projects/gemrb/files/Releases//0.9.4/gemrb-0.9.4-sources.tar.gz" +[build] +template = "cmake" +cmakeflags = [ + "-DSDL_BACKEND=SDL2", +] +dependencies = [ + "sdl2", + "sdl2-mixer", + "zlib", + "libiconv", +] diff --git a/recipes/wip/games/engines/odamex/recipe.toml b/recipes/wip/games/engines/odamex/recipe.toml new file mode 100644 index 000000000..2118bb908 --- /dev/null +++ b/recipes/wip/games/engines/odamex/recipe.toml @@ -0,0 +1,20 @@ +#TODO not compiled or tested +# build instructions: https://github.com/odamex/odamex#compilation-instructions +[source] +tar = "https://github.com/odamex/odamex/releases/download/11.2.0/odamex/odamex-src-11.2.0.tar.xz" +[build] +template = "cmake" +cmakeflags = [ + "-DBUILD_SERVER=0", + "-DBUILD_CLIENT=1", + "-DBUILD_LAUNCHER=1", +] +dependencies = [ + "sdl2", + "sdl2-mixer", + "libpng", + "zlib", + "wxwidgets-gtk3", +] +[package] +dependencies = ["deutex"] diff --git a/recipes/wip/games/fps/assaultcube/recipe.toml b/recipes/wip/games/fps/assaultcube/recipe.toml new file mode 100644 index 000000000..b1c804916 --- /dev/null +++ b/recipes/wip/games/fps/assaultcube/recipe.toml @@ -0,0 +1,15 @@ +#TODO missing script for "make", see https://wiki.cubers.net/action/view/Linux_Support#Compiling_AssaultCube +[source] +git = "https://github.com/assaultcube/AC" +rev = "1ece5af7533983bb8f827616381d282470793d90" +[build] +template = "configure" +dependencies = [ + "sdl1", + "sdl1-image", + "openal", + "libogg", + "zlib", + "curl", + "libvorbis", +] diff --git a/recipes/wip/games/fps/betterspades/recipe.toml b/recipes/wip/games/fps/betterspades/recipe.toml new file mode 100644 index 000000000..d7ed6d1c0 --- /dev/null +++ b/recipes/wip/games/fps/betterspades/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +#TODO probably missing dependencies, see https://github.com/xtreme8000/BetterSpades#build-requirements +# build instructions: https://github.com/xtreme8000/BetterSpades#linux +[source] +git = "https://github.com/xtreme8000/BetterSpades" +[build] +template = "cmake" +dependencies = [ + "glfw3", + "openal", + "libenet", + "libdeflate", + "glew", + "mesa", +] diff --git a/recipes/wip/games/fps/chocolate-doom/recipe.toml b/recipes/wip/games/fps/chocolate-doom/recipe.toml new file mode 100644 index 000000000..6821d4c4d --- /dev/null +++ b/recipes/wip/games/fps/chocolate-doom/recipe.toml @@ -0,0 +1,14 @@ +#TODO Not compiled or tested yet +[source] +tar = "https://www.chocolate-doom.org/downloads/3.0.1/chocolate-doom-3.0.1.tar.gz" +[build] +template = "custom" +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/fps/crispy-doom/recipe.toml new file mode 100644 index 000000000..354bb2603 --- /dev/null +++ b/recipes/wip/games/fps/crispy-doom/recipe.toml @@ -0,0 +1,15 @@ +#TODO Not compiled/tested yet +[source] +git = "https://github.com/fabiangreffrath/crispy-doom" +rev = "593f5b97023ed39b7640073160c06895bbfc3d26" +[build] +template = "custom" +dependencies = [ + "sdl2", + "sdl2-mixer", + "sdl2-net", +] +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/games/fps/et-legacy/recipe.toml b/recipes/wip/games/fps/et-legacy/recipe.toml new file mode 100644 index 000000000..bff1a0201 --- /dev/null +++ b/recipes/wip/games/fps/et-legacy/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://github.com/etlegacy/etlegacy#compile-and-install +[source] +git = "https://github.com/etlegacy/etlegacy" +rev = "956269f4c13ebe31ba2a0f0b805588383209bd5b" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "openssl1", + "mesa", +] diff --git a/recipes/wip/games/fps/gzdoom/recipe.toml b/recipes/wip/games/fps/gzdoom/recipe.toml new file mode 100644 index 000000000..bbb08c2b3 --- /dev/null +++ b/recipes/wip/games/fps/gzdoom/recipe.toml @@ -0,0 +1,13 @@ +#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/ioquake3/recipe.toml b/recipes/wip/games/fps/ioquake3/recipe.toml new file mode 100644 index 000000000..8872ae5ea --- /dev/null +++ b/recipes/wip/games/fps/ioquake3/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for "make", see https://github.com/ioquake/ioq3#compilation-and-installation +[source] +git = "https://github.com/ioquake/ioq3" +[build] +template = "custom" +dependencies = [ + "sdl2", +] diff --git a/recipes/wip/games/fps/openarena/recipe.toml b/recipes/wip/games/fps/openarena/recipe.toml new file mode 100644 index 000000000..c1f423638 --- /dev/null +++ b/recipes/wip/games/fps/openarena/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing script for building, lacking build instructions +#TODO what is game code? - http://files.poulsander.com/~poul19/public_files/oa/dev088/oa-0.8.8.tar.bz2 +[source] +tar = "http://files.poulsander.com/~poul19/public_files/oa/dev088/openarena-engine-source-0.8.8.tar.bz2" +[build] +template = "custom" +dependencies = [ + "sdl1", + "openal", + "libvorbis", + "mesa", +] diff --git a/recipes/wip/games/fps/openspades-free/recipe.toml b/recipes/wip/games/fps/openspades-free/recipe.toml new file mode 100644 index 000000000..2c85ccf5a --- /dev/null +++ b/recipes/wip/games/fps/openspades-free/recipe.toml @@ -0,0 +1,30 @@ +#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 = "custom" +dependencies = [ + "glew", + "openssl1", + "sdl2", + "sdl2-image", + "freealut", + "freetype2", + "opus", + "opusfile", + "libjpeg", + "openal", + "curl", + "libxinerama", + "libxft", +] +script = """ +DYNAMIC_INIT +COOKBOOK_CMAKE_FLAGS+=( + -DOPENSPADES_NONFREE_RESOURCES=OFF +) +cookbook_cmake +wget https://github.com/DeathByDenim/openspades-free-pak/releases/download/latest/pak001-Free.pak \ +"${COOKBOOK_STAGE}"/usr/share/openspades/Resources +""" diff --git a/recipes/wip/games/fps/quake1-shareware/manifest b/recipes/wip/games/fps/quake1-shareware/manifest new file mode 100644 index 000000000..008df9c03 --- /dev/null +++ b/recipes/wip/games/fps/quake1-shareware/manifest @@ -0,0 +1,3 @@ +name=Quake shareware +category=Games +binary=/usr/games/quakespasm -basedir /use/share/games/quake/ diff --git a/recipes/wip/games/fps/quake1-shareware/pak0.pak.sha b/recipes/wip/games/fps/quake1-shareware/pak0.pak.sha new file mode 100644 index 000000000..036550110 --- /dev/null +++ b/recipes/wip/games/fps/quake1-shareware/pak0.pak.sha @@ -0,0 +1 @@ +35a9c55e5e5a284a159ad2a62e0e8def23d829561fe2f54eb402dbc0a9a946af /mnt/games1/home/steam_games/steamapps/common/Quake/id1/PAK0.PAK diff --git a/recipes/wip/games/fps/quake1-shareware/quake106.zip.sha b/recipes/wip/games/fps/quake1-shareware/quake106.zip.sha new file mode 100644 index 000000000..e7df387ba --- /dev/null +++ b/recipes/wip/games/fps/quake1-shareware/quake106.zip.sha @@ -0,0 +1 @@ +ec6c9d34b1ae0252ac0066045b6611a7919c2a0d78a3a66d9387a8f597553239 quake106.zip diff --git a/recipes/wip/games/fps/quake1-shareware/recipe.toml b/recipes/wip/games/fps/quake1-shareware/recipe.toml new file mode 100644 index 000000000..f721529c1 --- /dev/null +++ b/recipes/wip/games/fps/quake1-shareware/recipe.toml @@ -0,0 +1,24 @@ +# TODO: +# * Requires unarchivers + +[build] +template = "custom" +dependencies = ["lhasa", "unzrip"] +script = """ +curl -O "https://github.com/Jason2Brownlee/QuakeOfficialArchive/raw/refs/heads/main/bin/quake106.zip" +sha256sum -c quake106.zip.sha + +# The zip file contains a DOS installer which we don't need +# The actual demo content is within another archive +7z x quake106.zip + +# Actual game contents +lha xv resource.1 +sha256sum -c pak0.pak.sha + +# Now, the ID1 folder contains PAK0, the demo file +# Non-Windows/non-DOS systems expect the directory and file to be lowercased +OUT_DIR = "${COOKBOOK_STAGE}/usr/share/games/quake/id1/" +mkdir -p "${OUT_DIR}" +cp -v ID1/PAK0.PAK "${OUT_DIR}/pak0.pak" +""" diff --git a/recipes/wip/games/fps/rbdoom3-bfg/recipe.toml b/recipes/wip/games/fps/rbdoom3-bfg/recipe.toml new file mode 100644 index 000000000..4380a4c68 --- /dev/null +++ b/recipes/wip/games/fps/rbdoom3-bfg/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +# build instructions: https://github.com/RobertBeckebans/RBDOOM-3-BFG#compiling-on-linux- +#TODO require the Vulkan SDK, see https://vulkan.lunarg.com/ +[source] +git = "https://github.com/RobertBeckebans/RBDOOM-3-BFG" +rev = "39ae1202b4e61ccb8d8e59609f5cd62b04a62a58" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "openal", + "ffmpeg6", + "libvulkan", +] diff --git a/recipes/wip/games/fps/room4doom/recipe.toml b/recipes/wip/games/fps/room4doom/recipe.toml new file mode 100644 index 000000000..d4570fa26 --- /dev/null +++ b/recipes/wip/games/fps/room4doom/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/flukejones/room4doom" +[build] +template = "custom" +dependencies = [ + "sdl2", + "sdl2-mixer" +] +script = """ +cookbook_cargo_packages room4doom +""" diff --git a/recipes/wip/games/fps/rust-doom/recipe.toml b/recipes/wip/games/fps/rust-doom/recipe.toml new file mode 100644 index 000000000..22323a90b --- /dev/null +++ b/recipes/wip/games/fps/rust-doom/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/hovinen/rust-doom" +[build] +template = "custom" +script = """ +cookbook_cargo +mv "${COOKBOOK_STAGE}/usr/bin/rs_doom" "${COOKBOOK_STAGE}/usr/bin/doom-rs" +""" diff --git a/recipes/wip/games/fps/smokin-guns/recipe.toml b/recipes/wip/games/fps/smokin-guns/recipe.toml new file mode 100644 index 000000000..1ffe7447c --- /dev/null +++ b/recipes/wip/games/fps/smokin-guns/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for "make", see https://trac.smokin-guns.org/wiki/SmokinGuns/Building/linux +#TODO bundled with the ioquake3 engine? +#TODO determine dependencies +[source] +git = "https://github.com/smokin-guns/SmokinGuns" +[build] +template = "custom" diff --git a/recipes/wip/games/fps/unvanquished/recipe.toml b/recipes/wip/games/fps/unvanquished/recipe.toml new file mode 100644 index 000000000..be786ce68 --- /dev/null +++ b/recipes/wip/games/fps/unvanquished/recipe.toml @@ -0,0 +1,28 @@ +#TODO not compiled or tested +# build instructions: https://github.com/DaemonEngine/Daemon#build-instructions +# data files - https://github.com/Unvanquished/Unvanquished#downloading-the-games-assets +[source] +git = "https://github.com/DaemonEngine/Daemon" +[build] +template = "custom" +dependencies = [ + "zlib", + "libgmp", + "libnettle", + "curl", + "sdl2", + "glew", + "libpng", + "libjpeg", + "libwebp", + "freetype", + "openal", + "libogg", + "libvorbis", + "opus", + "opusfile", +] +script = """ +DYNAMIC_INIT +cookbook_cmake +""" diff --git a/recipes/wip/games/fps/vkquake/recipe.toml b/recipes/wip/games/fps/vkquake/recipe.toml new file mode 100644 index 000000000..b16b4f845 --- /dev/null +++ b/recipes/wip/games/fps/vkquake/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Novum/vkQuake#linux-1 +[source] +git = "https://github.com/Novum/vkQuake" +[build] +template = "meson" +dependencies = [ + "sdl2", + "libvulkan", + "libvorbis", + "libmad", +] diff --git a/recipes/wip/games/fps/vkquake2/recipe.toml b/recipes/wip/games/fps/vkquake2/recipe.toml new file mode 100644 index 000000000..982a96e3e --- /dev/null +++ b/recipes/wip/games/fps/vkquake2/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for gnu make +# build instructions: https://github.com/kondrak/vkQuake2#linux +[source] +git = "https://github.com/kondrak/vkQuake2" +rev = "bdd39b142fbadf581fd9d904968a83fb9b4a929a" +[build] +template = "custom" +dependencies = [ + "mesa-x11", +] diff --git a/recipes/wip/games/fps/xash3d-fwgs/recipe.toml b/recipes/wip/games/fps/xash3d-fwgs/recipe.toml new file mode 100644 index 000000000..4764d81ea --- /dev/null +++ b/recipes/wip/games/fps/xash3d-fwgs/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for waf, see https://github.com/FWGS/xash3d-fwgs#build-instructions +[source] +git = "https://github.com/FWGS/xash3d-fwgs" +[build] +template = "custom" +dependencies = [ + "sdl2", + "fontconfig", + "freetype2", +] diff --git a/recipes/wip/games/fps/xonotic/recipe.toml b/recipes/wip/games/fps/xonotic/recipe.toml new file mode 100644 index 000000000..ee3584953 --- /dev/null +++ b/recipes/wip/games/fps/xonotic/recipe.toml @@ -0,0 +1,17 @@ +#TODO missing script for "make", see https://gitlab.com/xonotic/xonotic/-/wikis/Compiling +[source] +git = "https://gitlab.com/xonotic/xonotic" +rev = "0100f2c8d7947267292db66714c1af55039809ad" +[build] +template = "custom" +dependencies = [ + "libgmp", + "sdl2", + "libjpeg", + "libpng", + "freetype2", + "libogg", + "libvorbis", + "curl", + "rsync", +] diff --git a/recipes/wip/games/fps/yquake2/recipe.toml b/recipes/wip/games/fps/yquake2/recipe.toml new file mode 100644 index 000000000..b907b4ff6 --- /dev/null +++ b/recipes/wip/games/fps/yquake2/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing script for "make", see https://github.com/yquake2/yquake2/blob/master/doc/020_installation.md#compiling-with-gcc-clang-or-mingw +[source] +tar = "https://deponie.yamagi.org/quake2/quake2-8.30.tar.xz" +[build] +template = "custom" +dependencies = [ + "mesa", + "openal", + "curl", + "sdl2", +] diff --git a/recipes/wip/games/fps/zerospades-free/recipe.toml b/recipes/wip/games/fps/zerospades-free/recipe.toml new file mode 100644 index 000000000..401f8af61 --- /dev/null +++ b/recipes/wip/games/fps/zerospades-free/recipe.toml @@ -0,0 +1,30 @@ +#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 = "custom" +dependencies = [ + "glew", + "openssl1", + "sdl2", + "sdl2-image", + "freealut", + "freetype2", + "opus", + "opusfile", + "libjpeg", + "openal", + "curl", + "libxinerama", + "libxft", +] +script = """ +DYNAMIC_INIT +COOKBOOK_CMAKE_FLAGS+=( + -DOPENSPADES_NONFREE_RESOURCES=OFF +) +cookbook_cmake +wget https://github.com/DeathByDenim/openspades-free-pak/releases/download/latest/pak001-Free.pak \ +"${COOKBOOK_STAGE}"/usr/share/openspades/Resources +""" diff --git a/recipes/wip/games/math/binbreak/recipe.toml b/recipes/wip/games/math/binbreak/recipe.toml new file mode 100644 index 000000000..13a358820 --- /dev/null +++ b/recipes/wip/games/math/binbreak/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/epic-64/binbreak" +[build] +template = "cargo" diff --git a/recipes/wip/games/math/cosmic-ext-2048/recipe.toml b/recipes/wip/games/math/cosmic-ext-2048/recipe.toml new file mode 100644 index 000000000..6f113f747 --- /dev/null +++ b/recipes/wip/games/math/cosmic-ext-2048/recipe.toml @@ -0,0 +1,14 @@ +#TODO zbus crate error +[source] +git = "https://github.com/Kartonrealista/cosmic-ext-2048" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/applications +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/metainfo +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/icons +cp -rv "${COOKBOOK_SOURCE}"/res/io.github.Kartonrealista.cosmic-ext-2048.desktop "${COOKBOOK_STAGE}"/usr/share/applications +cp -rv "${COOKBOOK_SOURCE}"/res/io.github.Kartonrealista.cosmic-ext-2048.metainfo.xml "${COOKBOOK_STAGE}"/usr/share/metainfo +cp -rv "${COOKBOOK_SOURCE}"/res/icons/hicolor "${COOKBOOK_STAGE}"/usr/share/icons +cookbook_cargo +""" diff --git a/recipes/wip/games/math/sudoku-rs/recipe.toml b/recipes/wip/games/math/sudoku-rs/recipe.toml new file mode 100644 index 000000000..70752838c --- /dev/null +++ b/recipes/wip/games/math/sudoku-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/crazymerlyn/sudoku" +[build] +template = "cargo" diff --git a/recipes/wip/games/math/tuxmath/recipe.toml b/recipes/wip/games/math/tuxmath/recipe.toml new file mode 100644 index 000000000..17b231262 --- /dev/null +++ b/recipes/wip/games/math/tuxmath/recipe.toml @@ -0,0 +1,15 @@ +#TODO missing script for building, see https://github.com/tux4kids/tuxmath/blob/master/doc/INSTALL +[source] +git = "https://github.com/tux4kids/tuxmath" +[build] +template = "custom" +dependencies = [ + "t4kcommon", + "sdl1", + "sdl1-image", + "sdl1-mixer", + "sdl1-ttf", + "sdl2-net", + "sdl-pango", + "librsvg", +] diff --git a/recipes/wip/games/music/performous-composer/recipe.toml b/recipes/wip/games/music/performous-composer/recipe.toml new file mode 100644 index 000000000..5393e0f2c --- /dev/null +++ b/recipes/wip/games/music/performous-composer/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions - https://github.com/performous/performous/wiki/Composer +[source] +git = "https://github.com/performous/composer" +[build] +template = "cmake" +dependencies = [ + "qt5-base", + "ffmpeg6", +] diff --git a/recipes/wip/games/music/performous/recipe.toml b/recipes/wip/games/music/performous/recipe.toml new file mode 100644 index 000000000..c1f4c3934 --- /dev/null +++ b/recipes/wip/games/music/performous/recipe.toml @@ -0,0 +1,26 @@ +#TODO not compiled or tested +# build instructions - https://github.com/performous/performous/wiki/Building-and-installing-from-source#build-and-install +# dependencies - https://github.com/performous/performous/wiki/Building-and-installing-from-source#installing-build-dependencies +[source] +git = "https://github.com/performous/performous" +branch = "1.3.1" +[build] +template = "cmake" +dependencies = [ + "openblas", + "fftw", + "libicu", + "libepoxy", + "sdl2", + "freetype2", + "pango", + "librsvg", + "libxml2", + "ffmpeg6", + "libjpeg", + "portaudio", + "boost", + "nlohmann-json", + "aubio", + "libfmt", +] diff --git a/recipes/wip/games/music/stepmania/recipe.toml b/recipes/wip/games/music/stepmania/recipe.toml new file mode 100644 index 000000000..f0bd55fc5 --- /dev/null +++ b/recipes/wip/games/music/stepmania/recipe.toml @@ -0,0 +1,25 @@ +#TODO not compiled or tested +# build instructions - https://github.com/stepmania/stepmania/wiki/Compiling-StepMania-Linux +# dependencies - https://github.com/stepmania/stepmania/wiki/Linux-Dependencies +[source] +git = "https://github.com/stepmania/stepmania" +[build] +template = "cmake" +dependencies = [ + "mesa", + "mesa-glu", + "glew", + "libx11", + "libxtst", + "libxrandr", + "libpng", + "libjpeg", + "zlib", + "bzip2", + "libogg", + "libvorbis", + "pulseaudio", + "libiberty", + "gtk3", + "libmad", +] diff --git a/recipes/wip/games/open-world/all-is-cubes/recipe.toml b/recipes/wip/games/open-world/all-is-cubes/recipe.toml new file mode 100644 index 000000000..227fbfa9c --- /dev/null +++ b/recipes/wip/games/open-world/all-is-cubes/recipe.toml @@ -0,0 +1,8 @@ +#TODO require rustc 1.87 or newer +[source] +git = "https://github.com/kpreid/all-is-cubes" +[build] +template = "custom" +script = """ +cookbook_cargo_packages all-is-cubes-desktop +""" diff --git a/recipes/wip/games/open-world/asciicker/recipe.toml b/recipes/wip/games/open-world/asciicker/recipe.toml new file mode 100644 index 000000000..2d6e1c9b0 --- /dev/null +++ b/recipes/wip/games/open-world/asciicker/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing script for gnu make +#TODO build the game, term and server +#TODO build the terminal and sdl2 frontends +# makeflags: -DSERVER -DGAME -DUSE_SDL2 -DPURE_TERM -DUSE_GPM +[source] +git = "https://github.com/msokalski/asciicker" +rev = "8ff75d0c5a8d2745a8ad6a8a841dd31a46e81635" +[build] +template = "custom" +dependencies = [ + "mesa", + "sdl2", + "libgpm", +] diff --git a/recipes/wip/games/open-world/cytopia-rs/recipe.toml b/recipes/wip/games/open-world/cytopia-rs/recipe.toml new file mode 100644 index 000000000..fd8c93edd --- /dev/null +++ b/recipes/wip/games/open-world/cytopia-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +git = "https://codeberg.org/Esther1024/pia-fork" +[build] +template = "cargo" diff --git a/recipes/wip/games/open-world/cytopia/recipe.toml b/recipes/wip/games/open-world/cytopia/recipe.toml new file mode 100644 index 000000000..ea8d27724 --- /dev/null +++ b/recipes/wip/games/open-world/cytopia/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +# build instructions: https://github.com/CytopiaTeam/Cytopia/wiki/Build-instructions +[source] +git = "https://github.com/CytopiaTeam/Cytopia" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "sdl2-ttf", + "sdl2-image", + "openal", + "zlib", + "libogg", + "libvorbis", + "libpng", + "libnoise", + "imgui", +] diff --git a/recipes/wip/games/open-world/ethertia/recipe.toml b/recipes/wip/games/open-world/ethertia/recipe.toml new file mode 100644 index 000000000..3ed24ae22 --- /dev/null +++ b/recipes/wip/games/open-world/ethertia/recipe.toml @@ -0,0 +1,5 @@ +#TODO webbrowser crate error +[source] +git = "https://github.com/Dreamtowards/Ethertum" +[build] +template = "cargo" diff --git a/recipes/wip/games/open-world/leafish/recipe.toml b/recipes/wip/games/open-world/leafish/recipe.toml new file mode 100644 index 000000000..6b8fba4bf --- /dev/null +++ b/recipes/wip/games/open-world/leafish/recipe.toml @@ -0,0 +1,9 @@ +#TODO make gtk3 work +[source] +git = "https://github.com/Lea-fish/Leafish" +[build] +template = "cargo" +dependencies = [ + "gtk3", + "openssl1", +] diff --git a/recipes/wip/games/open-world/luanti/recipe.toml b/recipes/wip/games/open-world/luanti/recipe.toml new file mode 100644 index 000000000..301836c74 --- /dev/null +++ b/recipes/wip/games/open-world/luanti/recipe.toml @@ -0,0 +1,37 @@ +#TODO not compiled or tested +# build instructions: https://github.com/minetest/minetest/blob/master/doc/compiling/linux.md +# customization - https://github.com/minetest/minetest/tree/master/doc/compiling#cmake-options +[source] +git = "https://github.com/minetest/minetest" +branch = "stable-5" +patches = ["redox.patch"] + +[build] +template = "custom" +dependencies = [ + "curl", + "freetype2", + "libiconv", + "libjpeg", + "libogg", + "libpng", + "libvorbis", + "luajit", + "openal", + #TODO: openssl not detected by cmake + "openssl1", + "sdl2", + "sqlite3", + "zlib", + "zstd", +] +script = """ +DYNAMIC_INIT +COOKBOOK_CMAKE_FLAGS+=( + -DOPENGL_opengl_LIBRARY=/dev/null + -DOPENGL_glx_LIBRARY=/dev/null + -DSDL2_INCLUDE_DIRS="${COOKBOOK_SYSROOT}/include/SDL2" + -DSDL2_LIBRARIES="$("${PKG_CONFIG}" --libs sdl2)" +) +cookbook_cmake +""" diff --git a/recipes/wip/games/open-world/luanti/redox.patch b/recipes/wip/games/open-world/luanti/redox.patch new file mode 100644 index 000000000..059621a9e --- /dev/null +++ b/recipes/wip/games/open-world/luanti/redox.patch @@ -0,0 +1,273 @@ +diff --git a/irr/src/CGUIEditBox.cpp b/irr/src/CGUIEditBox.cpp +index 5639a36a6..37a0b6151 100644 +--- a/irr/src/CGUIEditBox.cpp ++++ b/irr/src/CGUIEditBox.cpp +@@ -464,10 +464,10 @@ void CGUIEditBox::processKeyLR(const SEvent::SKeyInput &input, s32 &new_mark_beg + new_pos = i; + if (std::abs(i - CursorPos) > 2) { + // End of word +- if (!std::iswspace(prev_c) && std::iswspace(c)) ++ if (!::iswspace(prev_c) && ::iswspace(c)) + break; + // End of a sentence. +- if (std::iswpunct(prev_c) && !std::iswpunct(c)) ++ if (iswpunct(prev_c) && !iswpunct(c)) + break; + } + prev_c = c; +diff --git a/irr/src/CIrrDeviceSDL.cpp b/irr/src/CIrrDeviceSDL.cpp +index a44213d7c..dbf3611b1 100644 +--- a/irr/src/CIrrDeviceSDL.cpp ++++ b/irr/src/CIrrDeviceSDL.cpp +@@ -331,7 +331,9 @@ CIrrDeviceSDL::CIrrDeviceSDL(const SIrrlichtCreationParameters ¶m) : + // Minetest has its own code to synthesize mouse events from touch events, + // so we prevent SDL from doing it. + SDL_SetHint(SDL_HINT_TOUCH_MOUSE_EVENTS, "0"); ++#ifdef SDL_HINT_MOUSE_TOUCH_EVENTS + SDL_SetHint(SDL_HINT_MOUSE_TOUCH_EVENTS, "0"); ++#endif + + #if defined(SDL_HINT_APP_NAME) + SDL_SetHint(SDL_HINT_APP_NAME, "Luanti"); +diff --git a/irr/src/CMakeLists.txt b/irr/src/CMakeLists.txt +index b7360311a..b1c578726 100644 +--- a/irr/src/CMakeLists.txt ++++ b/irr/src/CMakeLists.txt +@@ -232,7 +232,7 @@ if(USE_SDL2) + set(USE_SDL2_SHARED TRUE) + endif() + if(NOT ANDROID) +- find_package(SDL2 REQUIRED) ++ #find_package(SDL2 REQUIRED) + else() + # provided by AndroidLibs.cmake + endif() +@@ -246,16 +246,16 @@ if(USE_SDL2) + #error\n\ + #endif\n\ + int main() {}" CHECK_SDL_VERSION) +- if(NOT CHECK_SDL_VERSION) +- message(FATAL_ERROR "SDL2 is too old, required is at least 2.0.10!") +- endif() ++ #if(NOT CHECK_SDL_VERSION) ++ # message(FATAL_ERROR "SDL2 is too old, required is at least 2.0.10!") ++ #endif() + + # ...no target either. +- if(NOT TARGET SDL2::SDL2) +- add_library(SDL2::SDL2 SHARED IMPORTED) +- set_target_properties(SDL2::SDL2 PROPERTIES +- IMPORTED_LOCATION "${SDL2_LIBRARIES}") +- endif() ++ #if(NOT TARGET SDL2::SDL2) ++ # add_library(SDL2::SDL2 SHARED IMPORTED) ++ # set_target_properties(SDL2::SDL2 PROPERTIES ++ # IMPORTED_LOCATION "${SDL2_LIBRARIES}") ++ #endif() + endif() + + # More special config +@@ -583,8 +583,9 @@ target_link_libraries(IrrlichtMt PRIVATE + ${ZLIB_LIBRARY} + ${JPEG_LIBRARY} + ${PNG_LIBRARY} +- "$<$:SDL2::SDL2>" +- "$<$:SDL2::SDL2-static>" ++ ${SDL2_LIBRARIES} ++ #"$<$:SDL2::SDL2>" ++ #"$<$:SDL2::SDL2-static>" + + "$<$:${OPENGL_LIBRARIES}>" + ${EGL_LIBRARY} +diff --git a/src/client/client.cpp b/src/client/client.cpp +index b1dfa5993..aec96371c 100644 +--- a/src/client/client.cpp ++++ b/src/client/client.cpp +@@ -1808,10 +1808,12 @@ void Client::showUpdateProgressTexture(void *args, u32 progress, u32 max_progres + + if (do_draw) { + targs->last_time_ms = time_ms; ++#if !defined(__redox__) + std::wostringstream strm; + strm << targs->text_base << L" " << targs->last_percent << L"%..."; + m_rendering_engine->draw_load_screen(strm.str(), targs->guienv, targs->tsrc, 0, + 72 + (u16) ((18. / 100.) * (double) targs->last_percent)); ++#endif + } + } + +diff --git a/src/porting.cpp b/src/porting.cpp +index 711b65db6..32520eef9 100644 +--- a/src/porting.cpp ++++ b/src/porting.cpp +@@ -25,7 +25,7 @@ + #if !defined(_WIN32) + #include + #include +- #if !defined(__ANDROID__) ++ #if !defined(__ANDROID__) && !defined(__redox__) + #include + #endif + #endif +@@ -883,7 +883,7 @@ static bool open_uri(const std::string &uri) + const char *argv[] = {"open", uri.c_str(), NULL}; + return posix_spawnp(NULL, "open", NULL, NULL, (char**)argv, + (*_NSGetEnviron())) == 0; +-#else ++#elif !defined(__redox__) + const char *argv[] = {"xdg-open", uri.c_str(), NULL}; + return posix_spawnp(NULL, "xdg-open", NULL, NULL, (char**)argv, environ) == 0; + #endif +diff --git a/src/porting.h b/src/porting.h +index 1a4bb9e7b..cc252f3e1 100644 +--- a/src/porting.h ++++ b/src/porting.h +@@ -162,6 +162,12 @@ inline void os_get_clock(struct timespec *ts) + # endif + struct timeval tv; + gettimeofday(&tv, NULL); ++#ifndef TIMEVAL_TO_TIMESPEC ++#define TIMEVAL_TO_TIMESPEC(tv, ts) ( \ ++ (ts)->tv_sec = (tv)->tv_sec, \ ++ (ts)->tv_nsec = (tv)->tv_usec * 1000, \ ++ (void)0 ) ++#endif + TIMEVAL_TO_TIMESPEC(&tv, ts); + #endif + } +diff --git a/src/server.cpp b/src/server.cpp +index 3c03e68a6..4825bcd62 100644 +--- a/src/server.cpp ++++ b/src/server.cpp +@@ -245,10 +245,14 @@ void Server::ShutdownState::tick(float dtime, Server *server) + + std::wstring Server::ShutdownState::getShutdownTimerMessage() const + { ++#if defined(__redox__) ++ return L""; ++#else + std::wstringstream ws; + ws << L"*** Server shutting down in " + << duration_to_string(myround(m_timer)).c_str() << "."; + return ws.str(); ++#endif + } + + /* +@@ -3180,11 +3184,15 @@ std::wstring Server::handleChat(const std::string &name, + if (player) { + switch (player->canSendChatMessage()) { + case RPLAYER_CHATRESULT_FLOODING: { ++#if defined(__redox__) ++ return L""; ++#else + std::wstringstream ws; + ws << L"You cannot send more messages. You are limited to " + << g_settings->getFloat("chat_message_limit_per_10sec") + << L" messages per 10 seconds."; + return ws.str(); ++#endif + } + case RPLAYER_CHATRESULT_KICK: + DenyAccess(player->getPeerId(), SERVER_ACCESSDENIED_CUSTOM_STRING, +diff --git a/src/threading/thread.cpp b/src/threading/thread.cpp +index 679eaa113..59dc8cc63 100644 +--- a/src/threading/thread.cpp ++++ b/src/threading/thread.cpp +@@ -332,7 +332,7 @@ bool Thread::setPriority(int prio) + + return SetThreadPriority(win32_native_handle(), prio); + +-#else ++#elif !defined(__redox__) + + struct sched_param sparam; + int policy; +diff --git a/src/translation.cpp b/src/translation.cpp +index 71469507d..ecb9d1b52 100644 +--- a/src/translation.cpp ++++ b/src/translation.cpp +@@ -126,6 +126,7 @@ void Translations::loadTrTranslation(const std::string &data) + // '\n' may also be escaped by '@'. + // All other escapes are preserved. + ++#if !defined(__redox__) + size_t i = 0; + std::wostringstream word1, word2; + while (i < wline.length() && wline[i] != L'=') { +@@ -192,6 +193,7 @@ void Translations::loadTrTranslation(const std::string &data) + } + + addTranslation(textdomain, word1.str(), word2.str()); ++#endif + } + } + +@@ -341,12 +343,14 @@ void Translations::loadPoEntry(const std::wstring &basefilename, const GettextPl + addTranslation(textdomain, original, translated->second); + } else { + std::vector translations; ++ #if !defined(__redox__) + for (int i = 0; ; i++) { + auto translated = entry.find(L"msgstr[" + std::to_wstring(i) + L"]"); + if (translated == entry.end()) + break; + translations.push_back(translated->second); + } ++ #endif + addPluralTranslation(textdomain, plural_form, original, translations); + addPluralTranslation(textdomain, plural_form, plural->second, translations); + } +diff --git a/src/unittest/test_serialization.cpp b/src/unittest/test_serialization.cpp +index 839a09060..9cbcc056d 100644 +--- a/src/unittest/test_serialization.cpp ++++ b/src/unittest/test_serialization.cpp +@@ -61,15 +61,21 @@ template std::string mkstr(const char (&s)[N]) + void TestSerialization::buildTestStrings() + { + std::ostringstream tmp_os; ++#if !defined(__redox__) + std::wostringstream tmp_os_w; ++#endif + std::ostringstream tmp_os_w_encoded; + for (int i = 0; i < 256; i++) { + tmp_os << (char)i; ++#if !defined(__redox__) + tmp_os_w << (wchar_t)i; ++#endif + tmp_os_w_encoded << (char)0 << (char)i; + } + teststring2 = tmp_os.str(); ++#if !defined(__redox__) + teststring2_w = tmp_os_w.str(); ++#endif + teststring2_w_encoded = tmp_os_w_encoded.str(); + } + +diff --git a/src/util/string.cpp b/src/util/string.cpp +index aeec51cb8..411bdc84a 100644 +--- a/src/util/string.cpp ++++ b/src/util/string.cpp +@@ -721,7 +721,9 @@ static void translate_string(std::wstring_view s, Translations *translations, + continue; + } + output += L'@'; ++ #if !defined (__redox__) + output += std::to_wstring(arg_number); ++ #endif + ++arg_number; + std::wstring arg; + translate_all(s, i, translations, arg); +diff --git a/src/util/string.h b/src/util/string.h +index 78881a9a4..f5a6ed95a 100644 +--- a/src/util/string.h ++++ b/src/util/string.h +@@ -325,7 +325,7 @@ inline bool my_isspace(const char c) + + inline bool my_isspace(const wchar_t c) + { +- return std::iswspace(c); ++ return ::iswspace(c); + } + + /** diff --git a/recipes/wip/games/open-world/teloren/recipe.toml b/recipes/wip/games/open-world/teloren/recipe.toml new file mode 100644 index 000000000..bc7e1dafc --- /dev/null +++ b/recipes/wip/games/open-world/teloren/recipe.toml @@ -0,0 +1,5 @@ +#TODO quinn-udp crate error +[source] +git = "https://github.com/zesterer/teloren" +[build] +template = "cargo" diff --git a/recipes/wip/games/open-world/veloren/recipe.toml b/recipes/wip/games/open-world/veloren/recipe.toml new file mode 100644 index 000000000..0265a9d8b --- /dev/null +++ b/recipes/wip/games/open-world/veloren/recipe.toml @@ -0,0 +1,17 @@ +#TODO quinn-udp crate error +[source] +git = "https://github.com/veloren/veloren" +shallow = true +[build] +template = "cargo" +package_path="client" +dependencies = [ + "glib", + "cairo", + "pango", + "atk", + "gdk-pixbuf", + "gtk3", + "eudev", + "mesa", +] diff --git a/recipes/wip/games/other/blightmud/recipe.toml b/recipes/wip/games/other/blightmud/recipe.toml new file mode 100644 index 000000000..a1c86b3f1 --- /dev/null +++ b/recipes/wip/games/other/blightmud/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Blightmud/Blightmud" +[build] +template = "cargo" +dependencies = [ + "openssl3", + "libalsa", +] diff --git a/recipes/wip/games/other/love/recipe.toml b/recipes/wip/games/other/love/recipe.toml new file mode 100644 index 000000000..4ee0050e5 --- /dev/null +++ b/recipes/wip/games/other/love/recipe.toml @@ -0,0 +1,79 @@ +[source] +tar = "https://github.com/love2d/love/archive/refs/tags/11.5.tar.gz" +blake3 = "1fe441b04af1c0aa12b5d12f274fd892e6f307bcc882888c3a1ec048294a25c7" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "freetype2", + "libmodplug1", + "libogg", + "liborbital", + "libpng", + "libtheora", + "libvorbis", + "luajit", + "openal", + "mesa", + "mpg123", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL2" +export CXXFLAGS="${CXXFLAGS} -I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL2" + +cat > redox.cmake <setText( text.c_str() ); ++ m_children[1].m_element->setText( stringw(m_value*m_step).c_str() ); + } + } + } diff --git a/recipes/wip/games/rpg/dcss/recipe.toml b/recipes/wip/games/rpg/dcss/recipe.toml new file mode 100644 index 000000000..29895a7de --- /dev/null +++ b/recipes/wip/games/rpg/dcss/recipe.toml @@ -0,0 +1,18 @@ +#TODO missing script for "make", see https://github.com/crawl/crawl/blob/master/crawl-ref/INSTALL.md#compiling +#TODO require DejaVu fonts +[source] +tar = "https://github.com/crawl/crawl/releases/download/0.30.0/stone_soup-0.30.0.tar.xz" +[build] +template = "custom" +dependencies = [ + "sdl2", + "sdl2-image", + "sqlite3", + "ncurses", + "pcre", + "zlib", + "libpng", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +""" diff --git a/recipes/wip/games/rpg/kingslayer/recipe.toml b/recipes/wip/games/rpg/kingslayer/recipe.toml new file mode 100644 index 000000000..e1d1df0f7 --- /dev/null +++ b/recipes/wip/games/rpg/kingslayer/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Zaechus/kingslayer" +[build] +template = "cargo" diff --git a/recipes/wip/games/rts/mindustry/recipe.toml b/recipes/wip/games/rts/mindustry/recipe.toml new file mode 100644 index 000000000..aaf90c745 --- /dev/null +++ b/recipes/wip/games/rts/mindustry/recipe.toml @@ -0,0 +1,12 @@ +#TODO make openjdk work +[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 +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/mindustry +""" diff --git a/recipes/wip/games/servers/cuberite/recipe.toml b/recipes/wip/games/servers/cuberite/recipe.toml new file mode 100644 index 000000000..7b19d796a --- /dev/null +++ b/recipes/wip/games/servers/cuberite/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/cuberite/cuberite/blob/master/COMPILING.md#building-1 +[source] +git = "https://github.com/cuberite/cuberite" +[build] +template = "cmake" diff --git a/recipes/wip/games/shooter/asciiarena/recipe.toml b/recipes/wip/games/shooter/asciiarena/recipe.toml new file mode 100644 index 000000000..8c0190051 --- /dev/null +++ b/recipes/wip/games/shooter/asciiarena/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated mio crate +[source] +git = "https://github.com/lemunozm/asciiarena" +[build] +template = "cargo" diff --git a/recipes/wip/games/shooter/call-of-ferris/recipe.toml b/recipes/wip/games/shooter/call-of-ferris/recipe.toml new file mode 100644 index 000000000..5c23987a5 --- /dev/null +++ b/recipes/wip/games/shooter/call-of-ferris/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error (after a cargo update) +[source] +git = "https://github.com/Andy-Python-Programmer/CallOfFerris" +[build] +template = "cargo" diff --git a/recipes/wip/games/shooter/empty-clip/recipe.toml b/recipes/wip/games/shooter/empty-clip/recipe.toml new file mode 100644 index 000000000..ba3f85208 --- /dev/null +++ b/recipes/wip/games/shooter/empty-clip/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +[source] +tar = "https://gitlab.com/jazztickets/uploads/-/raw/main/emptyclip-2.0.3-0d97724f-src.tar.gz" +[build] +template = "cmake" +dependencies = [ + "sdl3", + "libwebp", + "sqlite3", + "freetype2", + "openal", + "libvorbis", + "libogg", + "zlib", +] diff --git a/recipes/wip/games/simulation/egregoria/recipe.toml b/recipes/wip/games/simulation/egregoria/recipe.toml new file mode 100644 index 000000000..13e33904d --- /dev/null +++ b/recipes/wip/games/simulation/egregoria/recipe.toml @@ -0,0 +1,8 @@ +#TODO winit crate error +[source] +git = "https://github.com/Uriopass/Egregoria" +[build] +template = "custom" +script = """ +cookbook_cargo_packages native_app +""" diff --git a/recipes/wip/games/simulation/formicarium/recipe.toml b/recipes/wip/games/simulation/formicarium/recipe.toml new file mode 100644 index 000000000..905c3b502 --- /dev/null +++ b/recipes/wip/games/simulation/formicarium/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated libc crate +[source] +git = "https://github.com/gliderkite/formicarium" +[build] +template = "cargo" diff --git a/recipes/wip/games/simulation/game-of-life-piston/recipe.toml b/recipes/wip/games/simulation/game-of-life-piston/recipe.toml new file mode 100644 index 000000000..92552bf8f --- /dev/null +++ b/recipes/wip/games/simulation/game-of-life-piston/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated libc crate +[source] +git = "https://github.com/Arcterus/game-of-life" +[build] +template = "cargo" diff --git a/recipes/wip/games/simulation/game-of-life-rs/recipe.toml b/recipes/wip/games/simulation/game-of-life-rs/recipe.toml new file mode 100644 index 000000000..45d14fcb9 --- /dev/null +++ b/recipes/wip/games/simulation/game-of-life-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/kachark/game-of-life-rs" +[build] +template = "cargo" diff --git a/recipes/wip/games/simulation/nbodysim/recipe.toml b/recipes/wip/games/simulation/nbodysim/recipe.toml new file mode 100644 index 000000000..9914a961f --- /dev/null +++ b/recipes/wip/games/simulation/nbodysim/recipe.toml @@ -0,0 +1,10 @@ +#TODO outdated crates +[source] +git = "https://github.com/timokoesters/nbodysim" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/nbodysim +cp -rv "${COOKBOOK_SOURCE}"/examples/* "${COOKBOOK_STAGE}"/usr/share/nbodysim +cookbook_cargo +""" diff --git a/recipes/wip/games/simulation/sandbox-rs2/recipe.toml b/recipes/wip/games/simulation/sandbox-rs2/recipe.toml new file mode 100644 index 000000000..7465dd33a --- /dev/null +++ b/recipes/wip/games/simulation/sandbox-rs2/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash crate error +[source] +git = "https://github.com/JMS55/sandbox" +[build] +template = "cargo" diff --git a/recipes/wip/games/simulation/symbiants/recipe.toml b/recipes/wip/games/simulation/symbiants/recipe.toml new file mode 100644 index 000000000..e336e5082 --- /dev/null +++ b/recipes/wip/games/simulation/symbiants/recipe.toml @@ -0,0 +1,5 @@ +#TODO the Bevy engine require rustc 1.76 or newer +[source] +git = "https://github.com/MeoMix/symbiants" +[build] +template = "cargo" diff --git a/recipes/wip/games/space/endless-sky/recipe.toml b/recipes/wip/games/space/endless-sky/recipe.toml new file mode 100644 index 000000000..de8798177 --- /dev/null +++ b/recipes/wip/games/space/endless-sky/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +# build instructions: https://github.com/endless-sky/endless-sky/blob/master/docs/readme-cmake.md#building-the-game +[source] +git = "https://github.com/endless-sky/endless-sky" +rev = "95e72950e1554392666fa41bb18c978868aa6611" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "libpng", + "libjpeg", + "mesa", + "glew", + "openal", + "libmad", + "libuuid", +] diff --git a/recipes/wip/games/space/naev/recipe.toml b/recipes/wip/games/space/naev/recipe.toml new file mode 100644 index 000000000..994c24605 --- /dev/null +++ b/recipes/wip/games/space/naev/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +# build instructions: https://github.com/naev/naev/wiki/Compiling-on-*nix +[source] +tar = "https://github.com/naev/naev/releases/download/v0.10.6/naev-0.10.6-source.tar.xz" +[build] +template = "meson" +dependencies = [ + "sdl2", + "sdl2-image", + "libpng", + "libxml2", + "libwebp", + "mesa", + "openal", + "openblas", + "freetype2", + "libvorbis", +] diff --git a/recipes/wip/games/space/osirion/recipe.toml b/recipes/wip/games/space/osirion/recipe.toml new file mode 100644 index 000000000..b8707c179 --- /dev/null +++ b/recipes/wip/games/space/osirion/recipe.toml @@ -0,0 +1,15 @@ +#TODO make dependencies work +# data files - http://osirion.org/files/osirion-0.2.8-data.zip +[source] +tar = "http://osirion.org/files/osirion-0.2.8-src.tar.bz2" +[build] +template = "configure" +dependencies = [ + "zlib", + "bullet-physics", + "libpng", + "libjpeg", + "sdl2", + "openal", + "libvorbis", +] diff --git a/recipes/wip/games/space/outfly/recipe.toml b/recipes/wip/games/space/outfly/recipe.toml new file mode 100644 index 000000000..a5bd5537d --- /dev/null +++ b/recipes/wip/games/space/outfly/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://codeberg.org/outfly/outfly" +[build] +template = "cargo" diff --git a/recipes/wip/games/space/rebels-in-the-sky/recipe.toml b/recipes/wip/games/space/rebels-in-the-sky/recipe.toml new file mode 100644 index 000000000..607a298a1 --- /dev/null +++ b/recipes/wip/games/space/rebels-in-the-sky/recipe.toml @@ -0,0 +1,5 @@ +#TODO async-io and rustix crate error +[source] +git = "https://github.com/ricott1/rebels-in-the-sky" +[build] +template = "cargo" diff --git a/recipes/wip/games/space/rust-belt/recipe.toml b/recipes/wip/games/space/rust-belt/recipe.toml new file mode 100644 index 000000000..37a10b5be --- /dev/null +++ b/recipes/wip/games/space/rust-belt/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/johnthagen/rust-belt" +[build] +template = "cargo" +dependencies = [ + "sdl2", + "sdl2-mixer", +] diff --git a/recipes/wip/games/strategy/0ad/recipe.toml b/recipes/wip/games/strategy/0ad/recipe.toml new file mode 100644 index 000000000..dea0fc534 --- /dev/null +++ b/recipes/wip/games/strategy/0ad/recipe.toml @@ -0,0 +1,26 @@ +#TODO Missing script for a make build system, see https://trac.wildfiregames.com/wiki/BuildInstructions#Linux +#TODO The Atlas editor needs to be disabled with the build option "--disable-atlas" to avoid GTK3 dependency (WxWidgetsGTK) +#TODO Maybe needs to run update-workspaces.sh before +#TODO Require recipes for SpiderMonkey and libicu (Unicode) +[source] +tar = "https://releases.wildfiregames.com/0ad-0.0.26-alpha-unix-build.tar.xz" +[build] +template = "custom" +dependencies = [ + "boost", + "curl", + "libenet", + "libfmt", + "libgloox", + "libicu", + "libogg", + "libpng", + "libsodium", + "libvorbis", + "libxml2", + "miniupnpc", + "openal", + "sdl2", + "zlib", + "spidermonkey", +] diff --git a/recipes/wip/games/strategy/asmfish/recipe.toml b/recipes/wip/games/strategy/asmfish/recipe.toml new file mode 100644 index 000000000..514d29f0a --- /dev/null +++ b/recipes/wip/games/strategy/asmfish/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building, see https://github.com/lantonov/asmFish#building +[source] +git = "https://github.com/lantonov/asmFish" +[build] +template = "custom" diff --git a/recipes/wip/games/strategy/balatro-tui/recipe.toml b/recipes/wip/games/strategy/balatro-tui/recipe.toml new file mode 100644 index 000000000..d90b81b95 --- /dev/null +++ b/recipes/wip/games/strategy/balatro-tui/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Passeriform/BalatroTUI" +[build] +template = "custom" +script = """ +cookbook_cargo_packages balatro_tui +""" diff --git a/recipes/wip/games/strategy/castle-game/recipe.toml b/recipes/wip/games/strategy/castle-game/recipe.toml new file mode 100644 index 000000000..e24e8bd46 --- /dev/null +++ b/recipes/wip/games/strategy/castle-game/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated crates +[source] +git = "https://github.com/tversteeg/castle-game" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/cell-graph-risk/recipe.toml b/recipes/wip/games/strategy/cell-graph-risk/recipe.toml new file mode 100644 index 000000000..1d2991ee1 --- /dev/null +++ b/recipes/wip/games/strategy/cell-graph-risk/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated libc crate +[source] +git = "https://github.com/PSteinhaus/Cell-Graph-Risk" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/chess-engine/recipe.toml b/recipes/wip/games/strategy/chess-engine/recipe.toml new file mode 100644 index 000000000..1724e7672 --- /dev/null +++ b/recipes/wip/games/strategy/chess-engine/recipe.toml @@ -0,0 +1,9 @@ +#TODO maybe wrong script +[source] +git = "https://github.com/adam-mcdaniel/chess-engine" +[build] +template = "custom" +script = """ +cookbook_cargo_packages chess-gui +cookbook_cargo_examples terminal +""" diff --git a/recipes/wip/games/strategy/chess-tui/recipe.toml b/recipes/wip/games/strategy/chess-tui/recipe.toml new file mode 100644 index 000000000..c06966785 --- /dev/null +++ b/recipes/wip/games/strategy/chess-tui/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/thomas-mauran/chess-tui" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/chessmd/recipe.toml b/recipes/wip/games/strategy/chessmd/recipe.toml new file mode 100644 index 000000000..70d51cc98 --- /dev/null +++ b/recipes/wip/games/strategy/chessmd/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ChessMD/ChessMD" +rev = "v1.0" +[build] +template = "cmake" +dependencies = [ + "qt6-base", +] diff --git a/recipes/wip/games/strategy/hammurabi/recipe.toml b/recipes/wip/games/strategy/hammurabi/recipe.toml new file mode 100644 index 000000000..079b89bb7 --- /dev/null +++ b/recipes/wip/games/strategy/hammurabi/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/stjepangolemac/hammurabi" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/hnefatafl-copenhagen/recipe.toml b/recipes/wip/games/strategy/hnefatafl-copenhagen/recipe.toml new file mode 100644 index 000000000..50b08f452 --- /dev/null +++ b/recipes/wip/games/strategy/hnefatafl-copenhagen/recipe.toml @@ -0,0 +1,37 @@ +# TODO: +# 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" } + +[source] +git = "https://github.com/dcampbell24/hnefatafl" + +[build] +template = "custom" +script = """ +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ + --bin hnefatafl-client \ + --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" + +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 +mv "${COOKBOOK_STAGE}"/usr/bin/hnefatafl-client "${COOKBOOK_STAGE}"/usr/games/hnefatafl-client +""" + +[package] +dependencies = [ + "noto-color-emoji", +] diff --git a/recipes/wip/games/strategy/mazter/recipe.toml b/recipes/wip/games/strategy/mazter/recipe.toml new file mode 100644 index 000000000..89a18ebcc --- /dev/null +++ b/recipes/wip/games/strategy/mazter/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Canop/mazter" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/minesweep-rs/recipe.toml b/recipes/wip/games/strategy/minesweep-rs/recipe.toml new file mode 100644 index 000000000..882a5c6e5 --- /dev/null +++ b/recipes/wip/games/strategy/minesweep-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO ratatui crate error +[source] +git = "https://github.com/cpcloud/minesweep-rs" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/offline-chess-puzzles/recipe.toml b/recipes/wip/games/strategy/offline-chess-puzzles/recipe.toml new file mode 100644 index 000000000..48a9d0f1c --- /dev/null +++ b/recipes/wip/games/strategy/offline-chess-puzzles/recipe.toml @@ -0,0 +1,8 @@ +#TODO iced_winit crate error +[source] +git = "https://github.com/brianch/offline-chess-puzzles" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/games/strategy/rust-sudoku/recipe.toml b/recipes/wip/games/strategy/rust-sudoku/recipe.toml new file mode 100644 index 000000000..e09696772 --- /dev/null +++ b/recipes/wip/games/strategy/rust-sudoku/recipe.toml @@ -0,0 +1,5 @@ +#TODO glutin crate error +[source] +git = "https://github.com/xairy/rust-sudoku" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/rustoku/recipe.toml b/recipes/wip/games/strategy/rustoku/recipe.toml new file mode 100644 index 000000000..6ec767002 --- /dev/null +++ b/recipes/wip/games/strategy/rustoku/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/huangsam/rustoku" +[build] +template = "custom" +script = """ +cookbook_cargo_packages rustoku-cli +""" diff --git a/recipes/wip/games/strategy/ship-of-harkinian/recipe.toml b/recipes/wip/games/strategy/ship-of-harkinian/recipe.toml new file mode 100644 index 000000000..027a63941 --- /dev/null +++ b/recipes/wip/games/strategy/ship-of-harkinian/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://github.com/HarbourMasters/Shipwright/blob/develop/docs/BUILDING.md#linux +[source] +git = "https://github.com/HarbourMasters/Shipwright" +rev = "818addfdda660f6b4b54edd19636d6fd9d839f28" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "libpng", + "glew", +] diff --git a/recipes/wip/games/strategy/stockfish/recipe.toml b/recipes/wip/games/strategy/stockfish/recipe.toml new file mode 100644 index 000000000..61fc0a4ea --- /dev/null +++ b/recipes/wip/games/strategy/stockfish/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://disservin.github.io/stockfish-docs/pages/Compiling-from-source.html +[source] +git = "https://github.com/official-stockfish/Stockfish" +rev = "68e1e9b3811e16cad014b590d7443b9063b3eb52" +[build] +template = "custom" diff --git a/recipes/wip/games/strategy/tage/recipe.toml b/recipes/wip/games/strategy/tage/recipe.toml new file mode 100644 index 000000000..9beea3f9c --- /dev/null +++ b/recipes/wip/games/strategy/tage/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/jacopograndi/tage" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/tetris-demo/recipe.toml b/recipes/wip/games/strategy/tetris-demo/recipe.toml new file mode 100644 index 000000000..53f30f387 --- /dev/null +++ b/recipes/wip/games/strategy/tetris-demo/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated libc crate +[source] +git = "https://github.com/da-x/tetris-demo" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/tic-tac-toe-rs/recipe.toml b/recipes/wip/games/strategy/tic-tac-toe-rs/recipe.toml new file mode 100644 index 000000000..446d0e384 --- /dev/null +++ b/recipes/wip/games/strategy/tic-tac-toe-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/thomas-mauran/tic-tac-toe" +[build] +template = "cargo" diff --git a/recipes/wip/games/strategy/warsow/recipe.toml b/recipes/wip/games/strategy/warsow/recipe.toml new file mode 100644 index 000000000..6b16cde82 --- /dev/null +++ b/recipes/wip/games/strategy/warsow/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://warsow.net/warsow_21_sdk.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/games/syobonaction/01_redox.patch b/recipes/wip/games/syobonaction/01_redox.patch new file mode 100644 index 000000000..ad36cf73c --- /dev/null +++ b/recipes/wip/games/syobonaction/01_redox.patch @@ -0,0 +1,43 @@ +diff -rupNw source-original/DxLib.cpp source/DxLib.cpp +--- source-original/DxLib.cpp 2018-12-08 19:59:16.777579338 +0100 ++++ source/DxLib.cpp 2018-12-08 02:13:39.541585079 +0100 +@@ -24,7 +24,7 @@ int DxLib_Init() + return -1; + } + +- SDL_WM_SetCaption("Syobon Action (しょぼんのアクション)", ++ SDL_WM_SetCaption("Syobon Action", + NULL); + SDL_ShowCursor(SDL_DISABLE); + +diff -rupNw source-original/main.cpp source/main.cpp +--- source-original/main.cpp 2018-12-08 19:59:16.781579399 +0100 ++++ source/main.cpp 2018-12-08 18:11:33.716589712 +0100 +@@ -1,9 +1,11 @@ + #include "main.h" ++#include + + // プログラムは WinMain から始まります + //Changed to ansi c++ main() + int main(int argc, char *argv[]) + { ++ chdir("file:/share/syobonaction/"); + parseArgs(argc, argv); + if (DxLib_Init() == -1) + return 1; +diff -rupNw source-original/Makefile source/Makefile +--- source-original/Makefile 2018-12-08 19:59:16.777579338 +0100 ++++ source/Makefile 2018-12-08 01:32:40.319685337 +0100 +@@ -1,8 +1,8 @@ + SyobonAction:main.o loadg.o DxLib.o +- gcc main.o loadg.o DxLib.o -o SyobonAction `sdl-config --libs` -lSDL_gfx -lSDL_image -lSDL_mixer -lSDL_ttf ++ ${CXX} ${LDFLAGS} main.o loadg.o DxLib.o -o SyobonAction `${SDL_CONFIG} --libs` -lSDL_gfx -lSDL_image -lSDL_mixer -lpng -ljpeg -lz -lSDL -lSDL_ttf -lfreetype -lvorbisfile -lvorbis -logg + main.o:main.cpp +- gcc -c main.cpp ++ ${CXX} ${CPPFLAGS} `${SDL_CONFIG} --cflags` -c main.cpp + loadg.o:loadg.cpp +- gcc -c loadg.cpp ++ ${CXX} ${CPPFLAGS} `${SDL_CONFIG} --cflags` -c loadg.cpp + DxLib.o:DxLib.cpp +- gcc -c DxLib.cpp ++ ${CXX} ${CPPFLAGS} `${SDL_CONFIG} --cflags` -c DxLib.cpp diff --git a/recipes/wip/games/syobonaction/recipe.toml b/recipes/wip/games/syobonaction/recipe.toml new file mode 100644 index 000000000..576a90103 --- /dev/null +++ b/recipes/wip/games/syobonaction/recipe.toml @@ -0,0 +1,26 @@ +[source] +git = "https://github.com/angelXwind/OpenSyobonAction" +patches = [ + "01_redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "sdl1-mixer", + "sdl1-image", + "sdl-gfx", + "sdl1-ttf", +] +script = """ +DYNAMIC_INIT +export LDFLAGS="$LDFLAGS -lorbital" +rsync -a --delete "${COOKBOOK_SOURCE}/" ./ +make +mkdir -pv "${COOKBOOK_STAGE}/usr/bin" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/syobonaction" +cp -Rv ./SyobonAction "${COOKBOOK_STAGE}/usr/bin/syobonaction" +cp -Rv ./BGM "${COOKBOOK_STAGE}/usr/share/syobonaction" +cp -Rv ./res "${COOKBOOK_STAGE}/usr/share/syobonaction" +cp -Rv ./SE "${COOKBOOK_STAGE}/usr/share/syobonaction" +""" diff --git a/recipes/wip/games/tools/deutex/recipe.toml b/recipes/wip/games/tools/deutex/recipe.toml new file mode 100644 index 000000000..ff4f0bde2 --- /dev/null +++ b/recipes/wip/games/tools/deutex/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/Doom-Utils/deutex/releases/download/v5.2.3/deutex-5.2.3.tar.zst" +[build] +template = "configure" diff --git a/recipes/wip/games/tools/oxyromon/recipe.toml b/recipes/wip/games/tools/oxyromon/recipe.toml new file mode 100644 index 000000000..83d17aeb9 --- /dev/null +++ b/recipes/wip/games/tools/oxyromon/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/alucryd/oxyromon" +[build] +template = "cargo" diff --git a/recipes/wip/gnome/aisleriot/recipe.toml b/recipes/wip/gnome/aisleriot/recipe.toml new file mode 100644 index 000000000..59e8ce1af --- /dev/null +++ b/recipes/wip/gnome/aisleriot/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/aisleriot/3.22/aisleriot-3.22.35.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Ddocs=false", + "-Dsound=false", +] +dependencies = [ + "glib", + "gtk3", + "cairo", + "libcanberra", + "qt5-svg", + "librsvg", +] diff --git a/recipes/wip/gnome/brasero/recipe.toml b/recipes/wip/gnome/brasero/recipe.toml new file mode 100644 index 000000000..8854c5351 --- /dev/null +++ b/recipes/wip/gnome/brasero/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +#TODO missing dependencies: https://gitlab.gnome.org/GNOME/brasero/-/blob/master/README?ref_type=heads&plain=1#L64 +[source] +tar = "https://download.gnome.org/sources/brasero/3.12/brasero-3.12.3.tar.xz" +[build] +template = "configure" +dependencies = [ + "gtk3", + "gstreamer", + "libxml2", + "cairo", + "libcanberra", +] diff --git a/recipes/wip/gnome/cheese/recipe.toml b/recipes/wip/gnome/cheese/recipe.toml new file mode 100644 index 000000000..d7c159f7f --- /dev/null +++ b/recipes/wip/gnome/cheese/recipe.toml @@ -0,0 +1,21 @@ +#TODO not compiled or tested +# lacking build instructions: https://gitlab.gnome.org/GNOME/cheese/-/blob/master/meson.build +# probably missing dependencies +[source] +tar = "https://download.gnome.org/sources/cheese/44/cheese-44.1.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dgtk_doc=false" +] +dependencies = [ + "gtk3", + "glib", + "gdk-pixbuf", + "gstreamer", + "libcanberra", + "clutter", + "clutter-gtk", + "clutter-gst", + "gnome-video-effects", +] diff --git a/recipes/wip/gnome/evince/recipe.toml b/recipes/wip/gnome/evince/recipe.toml new file mode 100644 index 000000000..8e3f5d142 --- /dev/null +++ b/recipes/wip/gnome/evince/recipe.toml @@ -0,0 +1,19 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/evince/48/evince-48.1.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dgtk_doc=false", + "-Duser_doc=false", + "-Dintrospection=false", + "-Ddbus=false", +] +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "cairo", + "libxml2", + "cairo", +] diff --git a/recipes/wip/gnome/file-roller/recipe.toml b/recipes/wip/gnome/file-roller/recipe.toml new file mode 100644 index 000000000..d4e493be3 --- /dev/null +++ b/recipes/wip/gnome/file-roller/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/file-roller#building-locally +# the libportal dependency is for flatpak, maybe it's optional +[source] +tar = "https://download.gnome.org/sources/file-roller/44/file-roller-44.3.tar.xz" +[build] +template = "meson" +dependencies = [ + "glib", + "gtk3", + "libhandy", + "libarchive", +] diff --git a/recipes/wip/gnome/gimp/recipe.toml b/recipes/wip/gnome/gimp/recipe.toml new file mode 100644 index 000000000..7ce8bee4f --- /dev/null +++ b/recipes/wip/gnome/gimp/recipe.toml @@ -0,0 +1,36 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from autotools log +# build instructions: https://developer.gimp.org/core/setup/build/3.0/INSTALL +# all build options: https://gitlab.gnome.org/GNOME/gimp/-/blob/master/meson_options.txt?ref_type=heads +[source] +tar = "https://download.gimp.org/gimp/v3.0/gimp-3.0.6.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dcheck-update=no", + "-Dlibbacktrace=false", + "-Dlibunwind=false", + "-Dprint=false", +] +# dependencies = [ +# "gtk3", +# "gobject-introspection", +# "glib", +# "cairo", +# "pango", +# "liblcms", +# "libmypaint", +# "gexiv2", +# "gegl", +# "babl", +# "librsvg", +# "libtiff", +# "libjpeg", +# "libpng", +# "fontconfig", +# "freetype2", +# "atk", +# "harfbuzz", +# "bzip2", +# "zlib", +# ] diff --git a/recipes/wip/gnome/gnome-2048/recipe.toml b/recipes/wip/gnome/gnome-2048/recipe.toml new file mode 100644 index 000000000..ef81d2684 --- /dev/null +++ b/recipes/wip/gnome/gnome-2048/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/GNOME/gnome-2048" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/gnome/gnome-builder/recipe.toml b/recipes/wip/gnome/gnome-builder/recipe.toml new file mode 100644 index 000000000..1cc44d789 --- /dev/null +++ b/recipes/wip/gnome/gnome-builder/recipe.toml @@ -0,0 +1,39 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +# build instructions: https://builder.readthedocs.io/installation.html#via-release-tarball +[source] +tar = "https://download.gnome.org/sources/gnome-builder/49/gnome-builder-49.1.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dnetwork_tests=false", + "-Dwebkit=false", +] +# dependencies = [ +# "cairo", +# "cmark", +# "dbus", +# "dspy", +# "enchant", +# "llvm18", +# "gdk-pixbuf", +# "glib", +# "gobject-introspection", +# "gtk4", +# "gtk4mm", +# "gtksourceview", +# "libadwaita", +# "libdex", +# "libgit2", +# "libgspell-gtk4", +# "libpanel", +# "libpeas", +# "libsoup", +# "vala", +# "libvte", +# "libxml2", +# "json-glib", +# "jsonrpc-glib", +# "pango", +# "webkitgtk4", +# ] diff --git a/recipes/wip/gnome/gnome-calculator/recipe.toml b/recipes/wip/gnome/gnome-calculator/recipe.toml new file mode 100644 index 000000000..2b0c34330 --- /dev/null +++ b/recipes/wip/gnome/gnome-calculator/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from meson log +[source] +tar = "https://download.gnome.org/sources/gnome-calculator/49/gnome-calculator-49.1.1.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Ddisable-introspection=true", + "-Ddoc=false", +] +#dependencies = [ +# "glib", +# "libsoup", +# "mpc", +# "mpfr", +#] diff --git a/recipes/wip/gnome/gnome-chess/recipe.toml b/recipes/wip/gnome/gnome-chess/recipe.toml new file mode 100644 index 000000000..1659ac047 --- /dev/null +++ b/recipes/wip/gnome/gnome-chess/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +#TODO missing dependencies +[source] +tar = "https://download.gnome.org/sources/gnome-chess/49/gnome-chess-49.2.tar.xz" +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "librsvg", +] diff --git a/recipes/wip/gnome/gnome-files/recipe.toml b/recipes/wip/gnome/gnome-files/recipe.toml new file mode 100644 index 000000000..18199b870 --- /dev/null +++ b/recipes/wip/gnome/gnome-files/recipe.toml @@ -0,0 +1,19 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +[source] +tar = "https://download.gnome.org/sources/nautilus/49/nautilus-49.1.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dextensions=false", + "-Dintrospection=false", + "-Dpackagekit=false", + "-Dselinux=disabled", + "-Dcloudproviders=disabled", + "-Dtests=none", +] +#[package] # probably optional dependencies +#dependencies = [ +# "localsearch", +# "xdg-user-dirs-gtk", +#] diff --git a/recipes/wip/gnome/gnome-image-viewer/recipe.toml b/recipes/wip/gnome/gnome-image-viewer/recipe.toml new file mode 100644 index 000000000..923680ee6 --- /dev/null +++ b/recipes/wip/gnome/gnome-image-viewer/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/GNOME/loupe" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", + "liblcms", +] diff --git a/recipes/wip/gnome/gnome-sudoku/recipe.toml b/recipes/wip/gnome/gnome-sudoku/recipe.toml new file mode 100644 index 000000000..39b610fe6 --- /dev/null +++ b/recipes/wip/gnome/gnome-sudoku/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +#TODO missing dependencies +[source] +tar = "https://download.gnome.org/sources/gnome-sudoku/49/gnome-sudoku-49.2.tar.xz" +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "json-glib", +] diff --git a/recipes/wip/gnome/gnome-text-editor/recipe.toml b/recipes/wip/gnome/gnome-text-editor/recipe.toml new file mode 100644 index 000000000..ef9911ec9 --- /dev/null +++ b/recipes/wip/gnome/gnome-text-editor/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/gnome-text-editor/49/gnome-text-editor-49.0.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Deditorconfig=false" +] +dependencies = [ + "gtk4", + "gtksourceview", + "libadwaita", + "libspelling", +] diff --git a/recipes/wip/gnome/gnome-web/recipe.toml b/recipes/wip/gnome/gnome-web/recipe.toml new file mode 100644 index 000000000..b106ca738 --- /dev/null +++ b/recipes/wip/gnome/gnome-web/recipe.toml @@ -0,0 +1,40 @@ +# 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" + +[build] +dependencies = [ + "cairo", +# "gck2", +# "gcr4", + "gdk-pixbuf", + "gio2", +# "gio-unix2", +# "glib2", +# "granite7", +# "gsettings-desktop-schemas", + "gstreamer", + "gtk4", +# "gtk4-unix-print", +# "hogweed", +# "iso-codes", + "json-glib", + "libarchive", + "libadwaita", +# "libsecret", + "libsoup", + "libxml2", + "libnettle", +# "libportal-gtk4", + "sqlite3", +# "webkitgtk6", +# "webkitgtk-web-process-extension6" +] + +template = "custom" +script = """ +DYNAMIC_INIT + +cookbook_meson +""" diff --git a/recipes/wip/gnome/simple-scan/recipe.toml b/recipes/wip/gnome/simple-scan/recipe.toml new file mode 100644 index 000000000..e5e9d45b7 --- /dev/null +++ b/recipes/wip/gnome/simple-scan/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +[source] +tar = "https://download.gnome.org/sources/simple-scan/49/simple-scan-49.1.tar.xz" +[build] +template = "meson" +dependencies = [ + "sane-backends", +] diff --git a/recipes/wip/gnome/snapshot/recipe.toml b/recipes/wip/gnome/snapshot/recipe.toml new file mode 100644 index 000000000..2e9c341dc --- /dev/null +++ b/recipes/wip/gnome/snapshot/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.gnome.org/GNOME/snapshot" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "gstreamer", +] diff --git a/recipes/wip/graphics/converters/inkdrop/recipe.toml b/recipes/wip/graphics/converters/inkdrop/recipe.toml new file mode 100644 index 000000000..1509b6f4a --- /dev/null +++ b/recipes/wip/graphics/converters/inkdrop/recipe.toml @@ -0,0 +1,8 @@ +#TODO libc crate error +[source] +git = "https://github.com/matze/inkdrop" +[build] +template = "custom" +script = """ +cookbook_cargo_packages inkdrop-cli gcode-converter +""" diff --git a/recipes/wip/graphics/converters/vtracer/recipe.toml b/recipes/wip/graphics/converters/vtracer/recipe.toml new file mode 100644 index 000000000..42d6ca59d --- /dev/null +++ b/recipes/wip/graphics/converters/vtracer/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/visioncortex/vtracer" +[build] +template = "custom" +script = """ +cookbook_cargo_packages vtracer +""" diff --git a/recipes/wip/graphics/editors/blender-lts/recipe.toml b/recipes/wip/graphics/editors/blender-lts/recipe.toml new file mode 100644 index 000000000..6c0414383 --- /dev/null +++ b/recipes/wip/graphics/editors/blender-lts/recipe.toml @@ -0,0 +1,26 @@ +#TODO not compiled or tested +#TODO determine the minimum dependencies from cmake log +# build instructions: https://developer.blender.org/docs/handbook/building_blender/ +[source] +git = "https://projects.blender.org/blender/blender" +branch = "blender-v4.5-release" +[build] +template = "cmake" +# dependencies = [ +# "dbus", +# "libdecor", +# "libjpeg", +# "libpng", +# "freetype2", +# "fontconfig", +# "zstd", +# "bzip2", +# "xz", +# "sdl2", +# "libepoxy", +# "shaderc", +# "libxml2", +# "libharu", +# "mesa-x11", +# "libxkbcommon", +# ] diff --git a/recipes/wip/graphics/editors/blender/recipe.toml b/recipes/wip/graphics/editors/blender/recipe.toml new file mode 100644 index 000000000..1f47792b7 --- /dev/null +++ b/recipes/wip/graphics/editors/blender/recipe.toml @@ -0,0 +1,25 @@ +#TODO not compiled or tested +#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" +[build] +template = "cmake" +# dependencies = [ +# "dbus", +# "libdecor", +# "libjpeg", +# "libpng", +# "freetype2", +# "fontconfig", +# "zstd", +# "bzip2", +# "xz", +# "sdl2", +# "libepoxy", +# "shaderc", +# "libxml2", +# "libharu", +# "mesa-x11", +# "libxkbcommon", +# ] diff --git a/recipes/wip/graphics/editors/opentoonz/recipe.toml b/recipes/wip/graphics/editors/opentoonz/recipe.toml new file mode 100644 index 000000000..32b9b08bf --- /dev/null +++ b/recipes/wip/graphics/editors/opentoonz/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +#TODO missing dependencies +# build instructions: https://github.com/opentoonz/opentoonz/blob/master/doc/how_to_build_linux.md +[source] +git = "https://github.com/opentoonz/opentoonz" +rev = "dd4cb36142ebf65a2aa74ff8575002863d3e17fc" +[build] +template = "cmake" +dependencies = [ + "boost", + "qt5-base", + "freetype2", + "libpng", + "libmypaint", + "opencv4", +] diff --git a/recipes/wip/graphics/editors/pencil2d/recipe.toml b/recipes/wip/graphics/editors/pencil2d/recipe.toml new file mode 100644 index 000000000..38d91b987 --- /dev/null +++ b/recipes/wip/graphics/editors/pencil2d/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing script for qmake and gnu make +# build instructions - https://dev.pencil2d.org/build_linux.html +[source] +git = "https://github.com/pencil2d/pencil" +branch = "release/0.7.0" +[build] +template = "custom" +dependencies = [ + "qt6-base", + "qt6-multimedia", + "qt6-svg", +] diff --git a/recipes/wip/graphics/editors/texel/recipe.toml b/recipes/wip/graphics/editors/texel/recipe.toml new file mode 100644 index 000000000..ab2e14cd6 --- /dev/null +++ b/recipes/wip/graphics/editors/texel/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/almindor/texel" +[build] +template = "custom" +script = """ +cookbook_cargo --no-default-features --features ion +""" diff --git a/recipes/wip/graphics/other/appleseed/recipe.toml b/recipes/wip/graphics/other/appleseed/recipe.toml new file mode 100644 index 000000000..76def06ba --- /dev/null +++ b/recipes/wip/graphics/other/appleseed/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://github.com/appleseedhq/appleseed/wiki/Building-appleseed-on-Linux +[source] +git = "https://github.com/appleseedhq/appleseed" +rev = "015adb503af58cb80103e0c3ddeefc20d99d204f" +[build] +template = "cmake" +dependencies = [ + "zlib", + "qt5-base", + "libnsl", +] diff --git a/recipes/wip/graphics/other/c-ray/recipe.toml b/recipes/wip/graphics/other/c-ray/recipe.toml new file mode 100644 index 000000000..b89e7a024 --- /dev/null +++ b/recipes/wip/graphics/other/c-ray/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "make", see https://github.com/vkoskiv/c-ray#installation +[source] +git = "https://github.com/vkoskiv/c-ray" +[build] +template = "custom" diff --git a/recipes/wip/graphics/other/cmark/recipe.toml b/recipes/wip/graphics/other/cmark/recipe.toml new file mode 100644 index 000000000..8b616f4ac --- /dev/null +++ b/recipes/wip/graphics/other/cmark/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/commonmark/cmark#installing +[source] +git = "https://github.com/commonmark/cmark" +rev = "5ba25ff40eba44c811f79ab6a792baf945b8307c" +[build] +template = "cmake" diff --git a/recipes/wip/graphics/other/curvis/recipe.toml b/recipes/wip/graphics/other/curvis/recipe.toml new file mode 100644 index 000000000..a45c90a78 --- /dev/null +++ b/recipes/wip/graphics/other/curvis/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/fragarriss/CurVis" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/darktable/recipe.toml b/recipes/wip/graphics/other/darktable/recipe.toml new file mode 100644 index 000000000..6427794c0 --- /dev/null +++ b/recipes/wip/graphics/other/darktable/recipe.toml @@ -0,0 +1,20 @@ +#TODO not compiled or tested +# build instructions: https://github.com/darktable-org/darktable#linux +# dependencies: https://github.com/darktable-org/darktable#dependencies +[source] +tar = "https://github.com/darktable-org/darktable/releases/download/release-4.8.0/darktable-4.8.0.tar.xz" +[build] +template = "cmake" +dependencies = [ + "gtk3", + "glib", + "sqlite3", + "gexiv2", + "liblensfun", + "liblcms", + "libpugixml", + "libavif", + "libheif", + "libwebp", + "libgphoto2", +] diff --git a/recipes/wip/graphics/other/derive-rs/recipe.toml b/recipes/wip/graphics/other/derive-rs/recipe.toml new file mode 100644 index 000000000..354a2f681 --- /dev/null +++ b/recipes/wip/graphics/other/derive-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO very outdated crates +[source] +git = "https://github.com/erik/derive.rs" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/dify/recipe.toml b/recipes/wip/graphics/other/dify/recipe.toml new file mode 100644 index 000000000..4c782143e --- /dev/null +++ b/recipes/wip/graphics/other/dify/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/jihchi/dify" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/dssim/recipe.toml b/recipes/wip/graphics/other/dssim/recipe.toml new file mode 100644 index 000000000..2a61ed07c --- /dev/null +++ b/recipes/wip/graphics/other/dssim/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/kornelski/dssim" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/embree/recipe.toml b/recipes/wip/graphics/other/embree/recipe.toml new file mode 100644 index 000000000..d5a592036 --- /dev/null +++ b/recipes/wip/graphics/other/embree/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/embree/embree#linux-and-macos +[source] +git = "https://github.com/embree/embree" +rev = "be0accfd0b246e2b03355b8ee7710a22c1b49240" +[build] +template = "cmake" +dependencies = [ + "glfw", + "onetbb", +] diff --git a/recipes/wip/graphics/other/flowbetween/recipe.toml b/recipes/wip/graphics/other/flowbetween/recipe.toml new file mode 100644 index 000000000..4f92bf386 --- /dev/null +++ b/recipes/wip/graphics/other/flowbetween/recipe.toml @@ -0,0 +1,11 @@ +#TODO maybe missing dependencies, see https://github.com/Logicalshift/flowbetween/blob/master/user_interfaces/gtk_ui/Cargo.toml#L11 +[source] +git = "https://github.com/Logicalshift/flowbetween" +[build] +template = "custom" +dependencies = [ + "gtk3", +] +script = """ +cookbook_cargo --features gtk +""" diff --git a/recipes/wip/graphics/other/gaffer/recipe.toml b/recipes/wip/graphics/other/gaffer/recipe.toml new file mode 100644 index 000000000..d39f8c9bf --- /dev/null +++ b/recipes/wip/graphics/other/gaffer/recipe.toml @@ -0,0 +1,27 @@ +#TODO missing script for SCons, see https://github.com/gafferHQ/gaffer#building +#TODO missing dependencies, see https://github.com/GafferHQ/dependencies +[source] +git = "https://github.com/GafferHQ/gaffer" +rev = "9fe2e9c9025447913872d77c138a03eabcfa5df2" +[build] +template = "custom" +dependencies = [ + "inkscape", + "boost", + "embree", + "libfmt", + "freetype2", + "glew", + "imath", + "lz4", + "libffi", + "libjpeg", + "libpng", + "libtiff", + "openexr", + "openimageio", + "openssl1", + "onetbb", + "zlib", + "qt5-full", +] diff --git a/recipes/wip/graphics/other/glou/recipe.toml b/recipes/wip/graphics/other/glou/recipe.toml new file mode 100644 index 000000000..578130deb --- /dev/null +++ b/recipes/wip/graphics/other/glou/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Nurrl/glou" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/gmic-qt/recipe.toml b/recipes/wip/graphics/other/gmic-qt/recipe.toml new file mode 100644 index 000000000..65567e899 --- /dev/null +++ b/recipes/wip/graphics/other/gmic-qt/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for building, see https://github.com/c-koi/gmic-qt#build-instructions +#TODO probably missing dependencies +[source] +git = "https://github.com/c-koi/gmic-qt" +rev = "b616829854c0e482d63b9fe8eca48e73d7cd3bd8" +[build] +template = "custom" diff --git a/recipes/wip/graphics/other/gmic/recipe.toml b/recipes/wip/graphics/other/gmic/recipe.toml new file mode 100644 index 000000000..1c751bb5f --- /dev/null +++ b/recipes/wip/graphics/other/gmic/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing script for "make", see https://github.com/GreycLab/gmic-community/wiki/Building-from-Source +[source] +tar = "https://gmic.eu/files/source/gmic_3.3.2.tar.gz" +[build] +template = "custom" +dependencies = [ + "fftw", + "libpng", + "libjpeg", + "zlib", +] diff --git a/recipes/wip/graphics/other/graphviz/recipe.toml b/recipes/wip/graphics/other/graphviz/recipe.toml new file mode 100644 index 000000000..ca032bd7d --- /dev/null +++ b/recipes/wip/graphics/other/graphviz/recipe.toml @@ -0,0 +1,16 @@ +#TODO Not compiled or tested +#TODO customization - https://graphviz.org/download/source/#dependencies +[source] +tar = "https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/9.0.0/graphviz-9.0.0.tar.xz" +[build] +template = "configure" +dependencies = [ + "cairo", + "expat", + "freetype2", + "fontconfig", + "glib", + "libpng", + "pango", + "zlib", +] diff --git a/recipes/wip/graphics/other/halo/recipe.toml b/recipes/wip/graphics/other/halo/recipe.toml new file mode 100644 index 000000000..ebdc15873 --- /dev/null +++ b/recipes/wip/graphics/other/halo/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash crate error +[source] +git = "https://github.com/bungoboingo/halo" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/hdr10plus-tool/recipe.toml b/recipes/wip/graphics/other/hdr10plus-tool/recipe.toml new file mode 100644 index 000000000..b0d08f3c5 --- /dev/null +++ b/recipes/wip/graphics/other/hdr10plus-tool/recipe.toml @@ -0,0 +1,8 @@ +#TODO yeslogic-fontconfig-sys crate error +[source] +git = "https://github.com/quietvoid/hdr10plus_tool" +[build] +template = "cargo" +dependencies = [ + "fontconfig", +] diff --git a/recipes/wip/graphics/other/image-sieve/recipe.toml b/recipes/wip/graphics/other/image-sieve/recipe.toml new file mode 100644 index 000000000..636ce1ad4 --- /dev/null +++ b/recipes/wip/graphics/other/image-sieve/recipe.toml @@ -0,0 +1,5 @@ +#TODO glutin crate error +[source] +git = "https://github.com/Futsch1/image-sieve" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/incompact3d/recipe.toml b/recipes/wip/graphics/other/incompact3d/recipe.toml new file mode 100644 index 000000000..fed37f9e9 --- /dev/null +++ b/recipes/wip/graphics/other/incompact3d/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for "make", see https://github.com/xcompact3d/Incompact3d#source-download-and-compilation +#TODO probably missing dependencies +[source] +git = "https://github.com/xcompact3d/Incompact3d" +rev = "2546f404cf3bbf78bc745d6133173c37e46c82df" +[build] +template = "custom" diff --git a/recipes/wip/graphics/other/kantig/recipe.toml b/recipes/wip/graphics/other/kantig/recipe.toml new file mode 100644 index 000000000..b3700a09c --- /dev/null +++ b/recipes/wip/graphics/other/kantig/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/DenSASoftware/kantig" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/lpl/recipe.toml b/recipes/wip/graphics/other/lpl/recipe.toml new file mode 100644 index 000000000..5362bd10e --- /dev/null +++ b/recipes/wip/graphics/other/lpl/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/SOF3/lpl" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/luxcorerender/recipe.toml b/recipes/wip/graphics/other/luxcorerender/recipe.toml new file mode 100644 index 000000000..34ef517e9 --- /dev/null +++ b/recipes/wip/graphics/other/luxcorerender/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +# build instructions: https://wiki.luxcorerender.org/Compiling_LuxCore +#TODO probably missing dependencies +[source] +git = "https://github.com/LuxCoreRender/LuxCore" +rev = "c8f10e9ddf5171fa705782a3da3f48123f96a4cb" +[build] +template = "cmake" +dependencies = [ + "bzip2", + "libtiff", + "libpng", + "gtk3", + "boost", + "mesa", + "openimageio", + "openexr", +] diff --git a/recipes/wip/graphics/other/matugen/recipe.toml b/recipes/wip/graphics/other/matugen/recipe.toml new file mode 100644 index 000000000..7c3374d46 --- /dev/null +++ b/recipes/wip/graphics/other/matugen/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/InioX/matugen" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/naga/recipe.toml b/recipes/wip/graphics/other/naga/recipe.toml new file mode 100644 index 000000000..d0ab41620 --- /dev/null +++ b/recipes/wip/graphics/other/naga/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/gfx-rs/wgpu" +[build] +template = "custom" +script = """ +cookbook_cargo_packages naga-cli +mv "${COOKBOOK_STAGE}/usr/bin/naga_naga-cli" "${COOKBOOK_STAGE}/usr/bin/naga" +""" diff --git a/recipes/wip/graphics/other/ocrs/recipe.toml b/recipes/wip/graphics/other/ocrs/recipe.toml new file mode 100644 index 000000000..ec623d78d --- /dev/null +++ b/recipes/wip/graphics/other/ocrs/recipe.toml @@ -0,0 +1,8 @@ +#TODO add a command to move the executable to a propeer folder +[source] +git = "https://github.com/robertknight/ocrs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages ocrs-cli +""" diff --git a/recipes/wip/graphics/other/oculante/recipe.toml b/recipes/wip/graphics/other/oculante/recipe.toml new file mode 100644 index 000000000..7df3c88f9 --- /dev/null +++ b/recipes/wip/graphics/other/oculante/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/woelper/oculante" +[build] +template = "cargo" +dependencies = [ + "gtk3", + "libxcb", + "libalsa", +] diff --git a/recipes/wip/graphics/other/openscad/recipe.toml b/recipes/wip/graphics/other/openscad/recipe.toml new file mode 100644 index 000000000..c3c469ff1 --- /dev/null +++ b/recipes/wip/graphics/other/openscad/recipe.toml @@ -0,0 +1,17 @@ +#TODO missing script for building, see https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Building_on_Linux/UNIX#Build_the_OpenSCAD_binary +#TODO missing dependencies - https://github.com/openscad/openscad/#prerequisites +[source] +tar = "https://files.openscad.org/openscad-2021.01.src.tar.gz" +[build] +template = "custom" +dependencies = [ + "qt5-base", + "libgmp", + "libmpfr", + "boost", + "glew", + "glib", + "fontconfig", + "freetype2", + "harfbuzz", +] diff --git a/recipes/wip/graphics/other/ospray-studio/recipe.toml b/recipes/wip/graphics/other/ospray-studio/recipe.toml new file mode 100644 index 000000000..542e8cc38 --- /dev/null +++ b/recipes/wip/graphics/other/ospray-studio/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ospray/ospray_studio#standard-cmake-build +[source] +git = "https://github.com/ospray/ospray_studio" +rev = "d2c83a67c841f1329f47cf9648a56b3dacbcdcaa" +[build] +template = "cmake" +dependencies = [ + "ospray", + "onetbb", + "librkcommon", + "mesa", + "glfw", + "open-image-denoise", +] diff --git a/recipes/wip/graphics/other/ospray/recipe.toml b/recipes/wip/graphics/other/ospray/recipe.toml new file mode 100644 index 000000000..4470753ee --- /dev/null +++ b/recipes/wip/graphics/other/ospray/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ospray/OSPRay#building-and-finding-ospray +[source] +git = "https://github.com/ospray/OSPRay" +rev = "66fa8108485a8a92ff31ad2e06081bbaf391bc26" +[build] +template = "cmake" +dependencies = [ + "librkcommon", + "embree", + "ispc", + "onetbb", + "openvkl", + "open-image-denoise", +] diff --git a/recipes/wip/graphics/other/oxipng/recipe.toml b/recipes/wip/graphics/other/oxipng/recipe.toml new file mode 100644 index 000000000..f5c8ba612 --- /dev/null +++ b/recipes/wip/graphics/other/oxipng/recipe.toml @@ -0,0 +1,5 @@ +#TODO working but don't exit +[source] +git = "https://github.com/shssoichiro/oxipng" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/paraview-data/recipe.toml b/recipes/wip/graphics/other/paraview-data/recipe.toml new file mode 100644 index 000000000..685141e28 --- /dev/null +++ b/recipes/wip/graphics/other/paraview-data/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for installation, lacking instructions +[source] +tar = "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v5.11&type=data&os=Sources&downloadFile=ParaViewTestingDataFiles-v5.11.2.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/graphics/other/paraview/recipe.toml b/recipes/wip/graphics/other/paraview/recipe.toml new file mode 100644 index 000000000..3209ea4c6 --- /dev/null +++ b/recipes/wip/graphics/other/paraview/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://kitware.github.io/paraviewweb/docs/configure_and_build_pvweb.html +# build instructions (if the above doesn't work) - https://github.com/Kitware/ParaView/blob/master/Documentation/dev/build.md +[source] +tar = "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v5.11&type=source&os=Sources&downloadFile=ParaView-v5.11.2.tar.xz" +[build] +template = "cmake" diff --git a/recipes/wip/graphics/other/pix-image-viewer/recipe.toml b/recipes/wip/graphics/other/pix-image-viewer/recipe.toml new file mode 100644 index 000000000..36fcd779f --- /dev/null +++ b/recipes/wip/graphics/other/pix-image-viewer/recipe.toml @@ -0,0 +1,5 @@ +#TODO proc-macro2 crate error +[source] +git = "https://github.com/google/pix-image-viewer" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/pixsort/recipe.toml b/recipes/wip/graphics/other/pixsort/recipe.toml new file mode 100644 index 000000000..45e2998dc --- /dev/null +++ b/recipes/wip/graphics/other/pixsort/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/1jz/pixsort" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/rascii/recipe.toml b/recipes/wip/graphics/other/rascii/recipe.toml new file mode 100644 index 000000000..2eeb5a111 --- /dev/null +++ b/recipes/wip/graphics/other/rascii/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/orhnk/RASCII" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/rawtherapee/recipe.toml b/recipes/wip/graphics/other/rawtherapee/recipe.toml new file mode 100644 index 000000000..87c6b27c1 --- /dev/null +++ b/recipes/wip/graphics/other/rawtherapee/recipe.toml @@ -0,0 +1,22 @@ +#TODO not compiled or tested +# build instructions: https://rawpedia.rawtherapee.com/Linux#Compile_RawTherapee +#TODO missing dependencies, see https://rawpedia.rawtherapee.com/Linux#Dependencies +[source] +tar = "https://rawtherapee.com/shared/source/rawtherapee-5.9.tar.xz" +[build] +template = "cmake" +dependencies = [ + "gexiv2", + "expat", + "fftw", + "glib", + "gtk3", + "gtk3mm", + "libjpeg", + "liblcms", + "libpng", + "librsvg", + "libsigc++", + "libtiff", + "zlib", +] diff --git a/recipes/wip/graphics/other/reve/recipe.toml b/recipes/wip/graphics/other/reve/recipe.toml new file mode 100644 index 000000000..4bf45de06 --- /dev/null +++ b/recipes/wip/graphics/other/reve/recipe.toml @@ -0,0 +1,8 @@ +#TODO clearscreen crate error (after cargo update) +[source] +git = "https://github.com/ONdraid/reve" +[build] +template = "custom" +script = """ +cookbook_cargo_packages reve-cli +""" diff --git a/recipes/wip/graphics/other/rimage/recipe.toml b/recipes/wip/graphics/other/rimage/recipe.toml new file mode 100644 index 000000000..34b0f1357 --- /dev/null +++ b/recipes/wip/graphics/other/rimage/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/SalOne22/rimage" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/satty/recipe.toml b/recipes/wip/graphics/other/satty/recipe.toml new file mode 100644 index 000000000..c28c9fe48 --- /dev/null +++ b/recipes/wip/graphics/other/satty/recipe.toml @@ -0,0 +1,20 @@ +#TODO make gtk4 work +[source] +git = "https://github.com/gabm/Satty" +[build] +template = "custom" +dependencies = [ + "gtk4", + "libadwaita", + "cairo", + "glib", + "pango", + "gdk-pixbuf", +] +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/applications +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/icons/hicolor/scalable/apps +cp -rv "${COOKBOOK_SOURCE}"/satty.desktop "${COOKBOOK_STAGE}"/usr/share/applications +cp -rv "${COOKBOOK_SOURCE}"/assets/satty.svg "${COOKBOOK_STAGE}"/usr/share/icons/hicolor/scalable/apps +cookbook_cargo_packages satty +""" diff --git a/recipes/wip/graphics/other/shadergarden/recipe.toml b/recipes/wip/graphics/other/shadergarden/recipe.toml new file mode 100644 index 000000000..e626a6528 --- /dev/null +++ b/recipes/wip/graphics/other/shadergarden/recipe.toml @@ -0,0 +1,8 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/tonarino/shadergarden" +[build] +template = "cargo" +dependencies = [ + "ffmpeg6", +] diff --git a/recipes/wip/graphics/other/simp/recipe.toml b/recipes/wip/graphics/other/simp/recipe.toml new file mode 100644 index 000000000..4e0889548 --- /dev/null +++ b/recipes/wip/graphics/other/simp/recipe.toml @@ -0,0 +1,5 @@ +#TODO wayland-backend crate error +[source] +git = "https://github.com/Kl4rry/simp" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/smag/recipe.toml b/recipes/wip/graphics/other/smag/recipe.toml new file mode 100644 index 000000000..3ae1702ce --- /dev/null +++ b/recipes/wip/graphics/other/smag/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate (after cargo update) +[source] +git = "https://github.com/aantn/smag" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/toybrot/recipe.toml b/recipes/wip/graphics/other/toybrot/recipe.toml new file mode 100644 index 000000000..29594f379 --- /dev/null +++ b/recipes/wip/graphics/other/toybrot/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/VileLasagna/toyBrot#building-toybrot +[source] +git = "https://gitlab.com/VileLasagna/toyBrot" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "libpng", +] diff --git a/recipes/wip/graphics/other/tungsten-renderer/recipe.toml b/recipes/wip/graphics/other/tungsten-renderer/recipe.toml new file mode 100644 index 000000000..3ad8d162e --- /dev/null +++ b/recipes/wip/graphics/other/tungsten-renderer/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/tunabrain/tungsten#compilation +[source] +git = "https://github.com/tunabrain/tungsten" +[build] +template = "cmake" diff --git a/recipes/wip/graphics/other/viu/recipe.toml b/recipes/wip/graphics/other/viu/recipe.toml new file mode 100644 index 000000000..710d95c9d --- /dev/null +++ b/recipes/wip/graphics/other/viu/recipe.toml @@ -0,0 +1,5 @@ +#TODO working but don't exit +[source] +git = "https://github.com/atanunq/viu" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/other/vulkan-tools/recipe.toml b/recipes/wip/graphics/other/vulkan-tools/recipe.toml new file mode 100644 index 000000000..d6b879a40 --- /dev/null +++ b/recipes/wip/graphics/other/vulkan-tools/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/KhronosGroup/Vulkan-Tools/blob/main/BUILD.md +[source] +git = "https://github.com/KhronosGroup/Vulkan-Tools" +rev = "7e75f4d389799129b79f90d1401f15f511796dbd" +[build] +template = "cmake" +cmakeflags = [ + "-DUPDATE_DEPS=ON" +] diff --git a/recipes/wip/graphics/other/watch-stl/recipe.toml b/recipes/wip/graphics/other/watch-stl/recipe.toml new file mode 100644 index 000000000..d68c738e4 --- /dev/null +++ b/recipes/wip/graphics/other/watch-stl/recipe.toml @@ -0,0 +1,5 @@ +#TODO update the winit version +[source] +git = "https://github.com/bddap/watch-stl-rust" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/shaders/glsl-viewer/recipe.toml b/recipes/wip/graphics/shaders/glsl-viewer/recipe.toml new file mode 100644 index 000000000..fad66faaf --- /dev/null +++ b/recipes/wip/graphics/shaders/glsl-viewer/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +# build instructions: https://github.com/patriciogonzalezvivo/glslViewer/wiki/Compile-on-linux#3-compile +[source] +git = "https://github.com/patriciogonzalezvivo/glslViewer" +rev = "7eb6254cb4cedf03f1c78653f90905fe0c3b48fb" +[build] +template = "custom" +dependencies = [ + "mesa-glu", + "ncurses", + "ncursesw", + "ffmpeg6", + "glfw3", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_cmake +""" diff --git a/recipes/wip/graphics/shaders/glslang/recipe.toml b/recipes/wip/graphics/shaders/glslang/recipe.toml new file mode 100644 index 000000000..649845161 --- /dev/null +++ b/recipes/wip/graphics/shaders/glslang/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +# build instructions: https://github.com/KhronosGroup/glslang#building-cmake +[source] +git = "https://github.com/KhronosGroup/glslang" +rev = "16.0.0" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/graphics/shaders/shadertoy-rs/recipe.toml b/recipes/wip/graphics/shaders/shadertoy-rs/recipe.toml new file mode 100644 index 000000000..ac5c24074 --- /dev/null +++ b/recipes/wip/graphics/shaders/shadertoy-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated crates +[source] +git = "https://github.com/fmenozzi/shadertoy-rs" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/shaders/vibe/recipe.toml b/recipes/wip/graphics/shaders/vibe/recipe.toml new file mode 100644 index 000000000..1b32e2748 --- /dev/null +++ b/recipes/wip/graphics/shaders/vibe/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/TornaxO7/vibe" +[build] +template = "cargo" +dependencies = [ + "libxkbcommon", + "libwayland", + "libalsa", +] diff --git a/recipes/wip/graphics/terminal/3d-terminal-renderer/recipe.toml b/recipes/wip/graphics/terminal/3d-terminal-renderer/recipe.toml new file mode 100644 index 000000000..7369624a0 --- /dev/null +++ b/recipes/wip/graphics/terminal/3d-terminal-renderer/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ryanweideman/3d-terminal-renderer" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/terminal/aarty/recipe.toml b/recipes/wip/graphics/terminal/aarty/recipe.toml new file mode 100644 index 000000000..d1496dfa9 --- /dev/null +++ b/recipes/wip/graphics/terminal/aarty/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/0x61nas/aarty" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/terminal/ascii-image/recipe.toml b/recipes/wip/graphics/terminal/ascii-image/recipe.toml new file mode 100644 index 000000000..b1c70d4d8 --- /dev/null +++ b/recipes/wip/graphics/terminal/ascii-image/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/kpberry/image-to-ascii" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/terminal/blockpaint/recipe.toml b/recipes/wip/graphics/terminal/blockpaint/recipe.toml new file mode 100644 index 000000000..a6a611adc --- /dev/null +++ b/recipes/wip/graphics/terminal/blockpaint/recipe.toml @@ -0,0 +1,5 @@ +#TODO don't fetch private submodule +[source] +git = "https://github.com/wooster0/blockpaint" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/terminal/display3d/recipe.toml b/recipes/wip/graphics/terminal/display3d/recipe.toml new file mode 100644 index 000000000..ea99b3cf0 --- /dev/null +++ b/recipes/wip/graphics/terminal/display3d/recipe.toml @@ -0,0 +1,10 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/redpenguinyt/display3d" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/display3d +cp -rv "${COOKBOOK_SOURCE}"/resources/* "${COOKBOOK_STAGE}"/usr/share/display3d +cookbook_cargo +""" diff --git a/recipes/wip/graphics/terminal/img2text/recipe.toml b/recipes/wip/graphics/terminal/img2text/recipe.toml new file mode 100644 index 000000000..7463a88db --- /dev/null +++ b/recipes/wip/graphics/terminal/img2text/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/yvt/img2text" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/terminal/kakikun/recipe.toml b/recipes/wip/graphics/terminal/kakikun/recipe.toml new file mode 100644 index 000000000..006fa98e3 --- /dev/null +++ b/recipes/wip/graphics/terminal/kakikun/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/file-acomplaint/kakikun" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/terminal/sloth/recipe.toml b/recipes/wip/graphics/terminal/sloth/recipe.toml new file mode 100644 index 000000000..e356c4133 --- /dev/null +++ b/recipes/wip/graphics/terminal/sloth/recipe.toml @@ -0,0 +1,6 @@ +#TODO compilation error +[source] +git = "https://github.com/ecumene/rust-sloth" +script = "rm Cargo.lock" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/terminal/tapciify/recipe.toml b/recipes/wip/graphics/terminal/tapciify/recipe.toml new file mode 100644 index 000000000..a459d38b8 --- /dev/null +++ b/recipes/wip/graphics/terminal/tapciify/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/tapnisu/tapciify" +[build] +template = "cargo" diff --git a/recipes/wip/graphics/viewers/exhibit/recipe.toml b/recipes/wip/graphics/viewers/exhibit/recipe.toml new file mode 100644 index 000000000..9bdf621ef --- /dev/null +++ b/recipes/wip/graphics/viewers/exhibit/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Nokse22/Exhibit" +rev = "v1.5.1" +[build] +template = "meson" diff --git a/recipes/wip/graphics/vr/alvr/recipe.toml b/recipes/wip/graphics/vr/alvr/recipe.toml new file mode 100644 index 000000000..857198aaf --- /dev/null +++ b/recipes/wip/graphics/vr/alvr/recipe.toml @@ -0,0 +1,18 @@ +#TODO missing script for cargo-xtask, see: https://github.com/alvr-org/ALVR/wiki/Building-From-Source +#TODO probably missing dependencies, see: https://github.com/alvr-org/ALVR/wiki/Building-From-Source#streamer-building +[source] +git = "https://github.com/alvr-org/ALVR" +[build] +template = "custom" +dependencies = [ + "openssl1", + "gtk3", + "libvulkan", + "libunwind", + "x264", + "x265", + "libxcb", + "libxkbcommon", + "libva", + "pipewire", +] diff --git a/recipes/wip/gui/gpcl/recipe.toml b/recipes/wip/gui/gpcl/recipe.toml new file mode 100644 index 000000000..694a4b80a --- /dev/null +++ b/recipes/wip/gui/gpcl/recipe.toml @@ -0,0 +1,5 @@ +#TODO wayland-backend crate error +[source] +git = "https://github.com/dngulin/gpcl" +[build] +template = "cargo" diff --git a/recipes/wip/gui/ordinary/recipe.toml b/recipes/wip/gui/ordinary/recipe.toml new file mode 100644 index 000000000..7d2c19b4d --- /dev/null +++ b/recipes/wip/gui/ordinary/recipe.toml @@ -0,0 +1,8 @@ +#TODO update async-io and rustix +[source] +git = "https://gitlab.com/floers/ordinary" +[build] +template = "custom" +script = """ +cookbook_cargo_packages ordinary +""" diff --git a/recipes/wip/gui/slop/recipe.toml b/recipes/wip/gui/slop/recipe.toml new file mode 100644 index 000000000..02bc370d3 --- /dev/null +++ b/recipes/wip/gui/slop/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/naelstrof/slop" +rev = "v7.7" +[build] +template = "cmake" +dependencies = [ + "libxext", + "glew", + "libglm", +] diff --git a/recipes/wip/icons/adwaita-icon-theme/recipe.toml b/recipes/wip/icons/adwaita-icon-theme/recipe.toml new file mode 100644 index 000000000..ce90ad699 --- /dev/null +++ b/recipes/wip/icons/adwaita-icon-theme/recipe.toml @@ -0,0 +1,7 @@ +[source] +tar = "https://download.gnome.org/sources/adwaita-icon-theme/49/adwaita-icon-theme-49.0.tar.xz" +blake3 = "757eedf680c4ae564d887dd9eccfeab2d4101e0bdfdb10288a072ba4530fb0e5" +patches = ["redox.patch"] + +[build] +template = "meson" diff --git a/recipes/wip/icons/adwaita-icon-theme/redox.patch b/recipes/wip/icons/adwaita-icon-theme/redox.patch new file mode 100644 index 000000000..8b644fd85 --- /dev/null +++ b/recipes/wip/icons/adwaita-icon-theme/redox.patch @@ -0,0 +1,29 @@ +diff -ruwN source-old/meson.build source/meson.build +--- source-old/meson.build 2025-09-12 05:48:02.000000000 -0600 ++++ source/meson.build 2025-11-13 12:05:28.819996707 -0700 +@@ -90,14 +90,14 @@ + endforeach + endif + +-gtk_update_icon_cache = find_program( +- 'gtk4-update-icon-cache', +- 'gtk-update-icon-cache', +- required : true, +-) +-meson.add_install_script( +- gtk_update_icon_cache, +- '-qtf', +- get_option('prefix') / adwaita_dir, +- skip_if_destdir: true, +-) ++#gtk_update_icon_cache = find_program( ++# 'gtk4-update-icon-cache', ++# 'gtk-update-icon-cache', ++# required : true, ++#) ++#meson.add_install_script( ++# gtk_update_icon_cache, ++# '-qtf', ++# get_option('prefix') / adwaita_dir, ++# skip_if_destdir: true, ++#) diff --git a/recipes/wip/icons/breeze-icons/recipe.toml b/recipes/wip/icons/breeze-icons/recipe.toml new file mode 100644 index 000000000..2c1b4d96d --- /dev/null +++ b/recipes/wip/icons/breeze-icons/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/breeze-icons-5.112.0.tar.xz" +[build] +template = "cmake" diff --git a/recipes/wip/image/converters/dipc/recipe.toml b/recipes/wip/image/converters/dipc/recipe.toml new file mode 100644 index 000000000..a4bdfb619 --- /dev/null +++ b/recipes/wip/image/converters/dipc/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/doprz/dipc" +[build] +template = "cargo" diff --git a/recipes/wip/image/editors/ascii-draw/recipe.toml b/recipes/wip/image/editors/ascii-draw/recipe.toml new file mode 100644 index 000000000..f14432374 --- /dev/null +++ b/recipes/wip/image/editors/ascii-draw/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# probably missing dependencies +[source] +git = "https://github.com/Nokse22/ascii-draw" +rev = "v1.1.0" +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/image/editors/drawing/recipe.toml b/recipes/wip/image/editors/drawing/recipe.toml new file mode 100644 index 000000000..77a0e5c4e --- /dev/null +++ b/recipes/wip/image/editors/drawing/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from meson log +# build instructions: https://github.com/maoschanz/drawing/blob/master/CONTRIBUTING.md#install-from-source-code +# dependencies: https://github.com/maoschanz/drawing/blob/master/CONTRIBUTING.md#dependencies +[source] +git = "https://github.com/maoschanz/drawing" +rev = "1.0.2" +[build] +template = "meson" +#dependencies = [ +# "gtk3", +# "cairo", +#] diff --git a/recipes/wip/image/editors/inkscape/recipe.toml b/recipes/wip/image/editors/inkscape/recipe.toml new file mode 100644 index 000000000..49dd872a7 --- /dev/null +++ b/recipes/wip/image/editors/inkscape/recipe.toml @@ -0,0 +1,45 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +# build instructions: https://inkscape.org/develop/getting-started/#compile +[source] +tar = "https://inkscape.org/gallery/item/56344/inkscape-1.4.2.tar.xz" +[build] +template = "cmake" +# dependencies = [ +# "boost", +# "glib", +# "glibmm", +# "gtk3", +# "gtk3mm", +# "gdk-pixbuf", +# "gtksourceview", +# "cairo", +# "cairomm", +# "pango", +# "pangomm", +# "readline", +# "fontconfig", +# "freetype2", +# "imagemagick", +# "potrace", +# "zlib", +# "lib2geom", +# "atkmm", +# "harfbuzz", +# "libblas", +# "libsoup", +# "libsigc++", +# "librsvg", +# "librevenge", +# "libwpd", +# "libpng", +# "libvisio", +# "libxml2", +# "libxslt", +# "libcdr", +# "libgsl", +# "libgspell-gtk3", +# "libjpeg", +# "liblcms", +# "liblapack", +# ] diff --git a/recipes/wip/image/editors/rx/recipe.toml b/recipes/wip/image/editors/rx/recipe.toml new file mode 100644 index 000000000..adaa5125e --- /dev/null +++ b/recipes/wip/image/editors/rx/recipe.toml @@ -0,0 +1,6 @@ +#TODO compilation error +[source] +git = "https://github.com/cloudhead/rx" +script = "rm Cargo.lock" +[build] +template = "cargo" diff --git a/recipes/wip/image/editors/watermarker/recipe.toml b/recipes/wip/image/editors/watermarker/recipe.toml new file mode 100644 index 000000000..fcfd2ab74 --- /dev/null +++ b/recipes/wip/image/editors/watermarker/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/xomvio/watermarker" +[build] +template = "cargo" diff --git a/recipes/wip/image/editors/xpano/recipe.toml b/recipes/wip/image/editors/xpano/recipe.toml new file mode 100644 index 000000000..1d597d65f --- /dev/null +++ b/recipes/wip/image/editors/xpano/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +# build instructions: https://github.com/krupkat/xpano#development +# linux script: https://github.com/krupkat/xpano/blob/main/misc/build/build-ubuntu-22.sh +[source] +git = "https://github.com/krupkat/xpano" +rev = "5e626f66d2670a7f3fd04e805610ef98a506e401" +[build] +template = "cmake" +dependencies = [ + "gtk3", + "opencv4", + "sdl2", + "libspdlog", +] diff --git a/recipes/wip/image/other/converseen/recipe.toml b/recipes/wip/image/other/converseen/recipe.toml new file mode 100644 index 000000000..c6586e603 --- /dev/null +++ b/recipes/wip/image/other/converseen/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Faster3ck/Converseen/blob/main/INSTALL.md#install-converseen-using-qt6 +[source] +git = "https://github.com/Faster3ck/Converseen" +rev = "9b2821b5ed6673a7abebbe4ee42f4718ab366485" +[build] +template = "cmake" +dependencies = [ + "qt6-base", +] diff --git a/recipes/wip/image/other/curtail/recipe.toml b/recipes/wip/image/other/curtail/recipe.toml new file mode 100644 index 000000000..d80194e3c --- /dev/null +++ b/recipes/wip/image/other/curtail/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing dependencies: https://github.com/Huluti/Curtail#tech +# build instructions: https://github.com/Huluti/Curtail#build-from-source-nightly +[source] +git = "https://github.com/Huluti/Curtail" +rev = "1.13.0" +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/image/other/dominant-colours/recipe.toml b/recipes/wip/image/other/dominant-colours/recipe.toml new file mode 100644 index 000000000..cc92e1919 --- /dev/null +++ b/recipes/wip/image/other/dominant-colours/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/alexwlchan/dominant_colours" +[build] +template = "cargo" diff --git a/recipes/wip/image/other/ferrishot/recipe.toml b/recipes/wip/image/other/ferrishot/recipe.toml new file mode 100644 index 000000000..f4b54a5fb --- /dev/null +++ b/recipes/wip/image/other/ferrishot/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/nik-rev/ferrishot" +[build] +dependencies = [ + "mesa", + "libx11", + "libwayland", + "libxcb", +] +template = "cargo" diff --git a/recipes/wip/image/other/graphicsmagick/recipe.toml b/recipes/wip/image/other/graphicsmagick/recipe.toml new file mode 100644 index 000000000..9711bca14 --- /dev/null +++ b/recipes/wip/image/other/graphicsmagick/recipe.toml @@ -0,0 +1,17 @@ +#TODO compilation error - missing sys/poll.h +#TODO fix libwebp +#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] +template = "configure" +dependencies = [ + "bzip2", + "freetype2", + #"libwebp", + "libjpeg", + "libpng", + "libtiff", + "libxml2", + "zlib", +] diff --git a/recipes/wip/image/other/imageflow/recipe.toml b/recipes/wip/image/other/imageflow/recipe.toml new file mode 100644 index 000000000..2b1a79b51 --- /dev/null +++ b/recipes/wip/image/other/imageflow/recipe.toml @@ -0,0 +1,13 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/imazen/imageflow" +[build] +template = "custom" +dependencies = [ + "openssl1", + "libpng", +] +script = """ +cookbook_cargo_packages imageflow_tool_lib +mv "${COOKBOOK_STAGE}/usr/bin/imageflow_tool" "${COOKBOOK_STAGE}/usr/bin/imageflow-tool" +""" diff --git a/recipes/wip/image/other/imagemagick/recipe.toml b/recipes/wip/image/other/imagemagick/recipe.toml new file mode 100644 index 000000000..8ec99dcb7 --- /dev/null +++ b/recipes/wip/image/other/imagemagick/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://imagemagick.org/archive/releases/ImageMagick-7.1.1-23.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/image/other/jpegoptim/recipe.toml b/recipes/wip/image/other/jpegoptim/recipe.toml new file mode 100644 index 000000000..1f1cf17eb --- /dev/null +++ b/recipes/wip/image/other/jpegoptim/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/tjko/jpegoptim/releases/download/v1.5.6/jpegoptim-1.5.6.tar.gz" +[build] +template = "configure" +dependencies = [ + "libjpeg", +] diff --git a/recipes/wip/image/other/jxl-oxide/recipe.toml b/recipes/wip/image/other/jxl-oxide/recipe.toml new file mode 100644 index 000000000..57db5289b --- /dev/null +++ b/recipes/wip/image/other/jxl-oxide/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing header on compilation +[source] +git = "https://github.com/tirr-c/jxl-oxide" +[build] +template = "custom" +script = """ +cookbook_cargo_packages jxl-oxide-cli +""" diff --git a/recipes/wip/image/other/lsix/recipe.toml b/recipes/wip/image/other/lsix/recipe.toml new file mode 100644 index 000000000..b8fbaac93 --- /dev/null +++ b/recipes/wip/image/other/lsix/recipe.toml @@ -0,0 +1,10 @@ +#TODO promote +[source] +git = "https://github.com/hackerb9/lsix" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp "${COOKBOOK_SOURCE}"/lsix "${COOKBOOK_STAGE}"/usr/bin/lsix +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/lsix +""" diff --git a/recipes/wip/image/other/oxvg/recipe.toml b/recipes/wip/image/other/oxvg/recipe.toml new file mode 100644 index 000000000..9d50790f7 --- /dev/null +++ b/recipes/wip/image/other/oxvg/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/noahbald/oxvg" +[build] +template = "custom" +script = """ +cookbook_cargo_packages oxvg +""" diff --git a/recipes/wip/image/other/pngquant/recipe.toml b/recipes/wip/image/other/pngquant/recipe.toml new file mode 100644 index 000000000..fe7b2ccc7 --- /dev/null +++ b/recipes/wip/image/other/pngquant/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/kornelski/pngquant" +[build] +template = "cargo" diff --git a/recipes/wip/image/other/satpaper/recipe.toml b/recipes/wip/image/other/satpaper/recipe.toml new file mode 100644 index 000000000..18c378bf2 --- /dev/null +++ b/recipes/wip/image/other/satpaper/recipe.toml @@ -0,0 +1,5 @@ +#TODO atools crate error +[source] +git = "https://github.com/Colonial-Dev/satpaper" +[build] +template = "cargo" diff --git a/recipes/wip/image/other/sic/recipe.toml b/recipes/wip/image/other/sic/recipe.toml new file mode 100644 index 000000000..d7047f4a9 --- /dev/null +++ b/recipes/wip/image/other/sic/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/foresterre/sic" +[build] +template = "cargo" diff --git a/recipes/wip/image/upscaling/jdpixelupscaler/recipe.toml b/recipes/wip/image/upscaling/jdpixelupscaler/recipe.toml new file mode 100644 index 000000000..7399f8724 --- /dev/null +++ b/recipes/wip/image/upscaling/jdpixelupscaler/recipe.toml @@ -0,0 +1,10 @@ +#TODO maybe incomplete script +#TODO determine the dependencies +[source] +git = "https://codeberg.org/JakobDev/jdPixelUpscaler" +rev = "05eb4f3a4a9d24b6d818522483d88caa6b201e2e" +[build] +template = "custom" +dependencies = [ + "qt6-base", +] diff --git a/recipes/wip/image/upscaling/rscale2x/recipe.toml b/recipes/wip/image/upscaling/rscale2x/recipe.toml new file mode 100644 index 000000000..769df6d50 --- /dev/null +++ b/recipes/wip/image/upscaling/rscale2x/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/ahmetmutlugun/rscale2x" +[build] +template = "cargo" diff --git a/recipes/wip/image/upscaling/upscaler-rs/recipe.toml b/recipes/wip/image/upscaling/upscaler-rs/recipe.toml new file mode 100644 index 000000000..ecb4e7aa5 --- /dev/null +++ b/recipes/wip/image/upscaling/upscaler-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/DhruvDh/upscaler" +[build] +template = "cargo" diff --git a/recipes/wip/image/upscaling/upscaler/recipe.toml b/recipes/wip/image/upscaling/upscaler/recipe.toml new file mode 100644 index 000000000..6d6b73cfa --- /dev/null +++ b/recipes/wip/image/upscaling/upscaler/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/World/Upscaler#meson +[source] +git = "https://gitlab.gnome.org/World/Upscaler" +rev = "30c2a8411fac281ed548189a9fea45dc9efe5b68" +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/image/upscaling/upscayl-ncnn/recipe.toml b/recipes/wip/image/upscaling/upscayl-ncnn/recipe.toml new file mode 100644 index 000000000..de2f4f7b8 --- /dev/null +++ b/recipes/wip/image/upscaling/upscayl-ncnn/recipe.toml @@ -0,0 +1,7 @@ +#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" +[build] +template = "cmake" diff --git a/recipes/wip/image/upscaling/video2x/recipe.toml b/recipes/wip/image/upscaling/video2x/recipe.toml new file mode 100644 index 000000000..91d28ed00 --- /dev/null +++ b/recipes/wip/image/upscaling/video2x/recipe.toml @@ -0,0 +1,12 @@ +#TODO maybe incomplete script +[source] +git = "https://github.com/k4yt3x/video2x" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/video2x +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/video2x +echo "#!/usr/bin/env sh \n cd /usr/share/video2x \n python3 -m video2x" > "${COOKBOOK_STAGE}"/usr/bin/video2x +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/video2x +""" diff --git a/recipes/wip/kde/ark/recipe.toml b/recipes/wip/kde/ark/recipe.toml new file mode 100644 index 000000000..d5078e8ca --- /dev/null +++ b/recipes/wip/kde/ark/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +[source] +git = "https://invent.kde.org/utilities/ark" +branch = "release/25.08" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "libarchive", +] diff --git a/recipes/wip/kde/discover/recipe.toml b/recipes/wip/kde/discover/recipe.toml new file mode 100644 index 000000000..32828d4da --- /dev/null +++ b/recipes/wip/kde/discover/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from cmake log +[source] +git = "https://invent.kde.org/plasma/discover" +branch = "Plasma/6.5" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/kde/k3b/recipe.toml b/recipes/wip/kde/k3b/recipe.toml new file mode 100644 index 000000000..f9a01119c --- /dev/null +++ b/recipes/wip/kde/k3b/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +# build instructions: https://invent.kde.org/multimedia/k3b/-/blob/master/INSTALL.txt?ref_type=heads +[source] +git = "https://invent.kde.org/multimedia/k3b" +branch = "release/25.08" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "libcdio-paranoia", +] diff --git a/recipes/wip/kde/kamoso/recipe.toml b/recipes/wip/kde/kamoso/recipe.toml new file mode 100644 index 000000000..ced03c4e5 --- /dev/null +++ b/recipes/wip/kde/kamoso/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +#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" +[build] +template = "cmake" +dependencies = [ + "qt6-base", +] diff --git a/recipes/wip/kde/kde-dolphin/recipe.toml b/recipes/wip/kde/kde-dolphin/recipe.toml new file mode 100644 index 000000000..e562f033d --- /dev/null +++ b/recipes/wip/kde/kde-dolphin/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +[source] +git = "https://invent.kde.org/system/dolphin" +branch = "release/25.08" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/kde/kdenlive/recipe.toml b/recipes/wip/kde/kdenlive/recipe.toml new file mode 100644 index 000000000..95447b59f --- /dev/null +++ b/recipes/wip/kde/kdenlive/recipe.toml @@ -0,0 +1,42 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +# 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" +shallow_clone = true +[build] +template = "cmake" +# dependencies = [ +# "mlt", +# "ffmpeg6", +# "qt5-declarative", +# "qt5-tools", +# "qt5-multimedia", +# "qt5-svg", +# "qt5-quickcontrols", +# "qt5-quickcontrols2", +# "qt5-networkauth", +# "kf5-archive", +# "kf5-bookmarks", +# "kf5-codecs", +# "kf5-config", +# "kf5-configwidgets", +# "kf5-coreaddons", +# "kf5-crash", +# "kf5-dbusaddons", +# "kf5-declarative", +# "kf5-filemetadata", +# "kf5-guiaddons", +# "kf5-iconthemes", +# "kf5-init", +# "kf5-io", +# "kf5-newstuff", +# "kf5-notifications", +# "kf5-notifyconfig", +# "kf5-purpose", +# "kf5-textwidgets", +# "kf5-widgetaddons", +# "kf5-xmlgui", +# "breeze-icons", +# ] diff --git a/recipes/wip/kde/kdevelop/recipe.toml b/recipes/wip/kde/kdevelop/recipe.toml new file mode 100644 index 000000000..f1e1cb5db --- /dev/null +++ b/recipes/wip/kde/kdevelop/recipe.toml @@ -0,0 +1,52 @@ +#TODO not compiled or tested +#TODO probably missing dependencies, see https://packages.debian.org/source/trixie/kdevelop +# build instructions: https://kdevelop.org/build-it/ +[source] +git = "https://invent.kde.org/kdevelop/kdevelop" +branch = "release/25.08" +shallow_clone = true +[build] +template = "cmake" +# dependencies = [ +# "apr", +# "apr-util", +# "astyle", +# "boost", +# "libgrantlee", +# "libkomparediff2", +# "kf5-archive", +# "kf5-config", +# "kf5-crash", +# "kf5-cmutils", +# "kf5-extra-cmake-modules", +# "kf5-declarative", +# "kf5-doctools", +# "kf5-guiaddons", +# "kf5-i18n", +# "kf5-iconthemes", +# "kf5-itemmodels", +# "kf5-itemviews", +# "kf5-io", +# "kf5-jobwidgets", +# "kf5-newstuff", +# "kf5-notifications", +# "kf5-notifyconfig", +# "kf5-parts", +# "kf5-plasma-framework", +# "kf5-purpose", +# "kf5-runner", +# "kf5-service", +# "kf5-sonnet", +# "kf5-sysguard", +# "kf5-texteditor", +# "kf5-threadweaver", +# "kf5-widgetaddons", +# "kf5-windowsystem", +# "kf5-xmlgui", +# "qt5-base", +# "qt5-declarative", +# "qt5-tools", +# "qt5-webkit", +# "okteta", +# "shared-mime-info", +# ] diff --git a/recipes/wip/kde/kpatience/recipe.toml b/recipes/wip/kde/kpatience/recipe.toml new file mode 100644 index 000000000..7702e707b --- /dev/null +++ b/recipes/wip/kde/kpatience/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +[source] +git = "https://invent.kde.org/games/kpat" +branch = "release/25.08" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/kde/krita/recipe.toml b/recipes/wip/kde/krita/recipe.toml new file mode 100644 index 000000000..746db5b78 --- /dev/null +++ b/recipes/wip/kde/krita/recipe.toml @@ -0,0 +1,55 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +# 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" +shallow_clone = true +[build] +template = "cmake" +# dependencies = [ +# "gexiv2", +# "ffmpeg6", +# "fftw", +# "fontconfig", +# "freetype2", +# "fribidi", +# "libgif", +# "harfbuzz", +# "liblcms", +# "libpng", +# "libtiff", +# "libwebp", +# "qt5-base", +# "qt5-svg", +# "zlib", +# "libmypaint", +# "boost", +# "libheif", +# "libjpeg", +# "libjxl", +# "kf5-extra-cmake-modules", +# "kf5-completion", +# "kf5-config", +# "kf5-coreaddons", +# "kf5-crash", +# "kf5-guiaddons", +# "kf5-i18n", +# "kf5-itemviews", +# "kf5-widgetaddons", +# "kf5-windowsystem", +# "mlt", +# "opencolorio", +# "openexr", +# "openjpeg", +# "sdl2", +# "libxi", +# "zlib", +# "libeigen", +# "libgsl", +# "libseexpr-kde", +# "liblager", +# "libunibreak", +# "libxsimd", +# "libxtl", +# ] diff --git a/recipes/wip/kde/kwave/recipe.toml b/recipes/wip/kde/kwave/recipe.toml new file mode 100644 index 000000000..cf7dbe575 --- /dev/null +++ b/recipes/wip/kde/kwave/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://invent.kde.org/multimedia/kwave" +rev = "release/25.08" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "libpulse", + "libmad", + #"libsamplerate", + #"libogg", + #"libvorbis", + #"libflac", + #"fftw", +] diff --git a/recipes/wip/kde/skanpage/recipe.toml b/recipes/wip/kde/skanpage/recipe.toml new file mode 100644 index 000000000..398fb80f5 --- /dev/null +++ b/recipes/wip/kde/skanpage/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +[source] +git = "https://invent.kde.org/utilities/skanpage" +branch = "release/25.08" +shallow_clone = true +[build] +template = "cmake" +dependencies = [ + "sane-backends", +] diff --git a/recipes/wip/lang/uroman-rs/recipe.toml b/recipes/wip/lang/uroman-rs/recipe.toml new file mode 100644 index 000000000..8ca4ef102 --- /dev/null +++ b/recipes/wip/lang/uroman-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/stellanomia/uroman-rs" +[build] +template = "cargo" diff --git a/recipes/wip/libs/a11y/at-spi2-core/recipe.toml b/recipes/wip/libs/a11y/at-spi2-core/recipe.toml new file mode 100644 index 000000000..f9e0b9e60 --- /dev/null +++ b/recipes/wip/libs/a11y/at-spi2-core/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/main/INSTALL?ref_type=heads +[source] +tar = "https://download.gnome.org/sources/at-spi2-core/2.57/at-spi2-core-2.57.0.tar.xz" +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson +""" diff --git a/recipes/wip/libs/archives/libzip/recipe.toml b/recipes/wip/libs/archives/libzip/recipe.toml new file mode 100644 index 000000000..4e7ec064a --- /dev/null +++ b/recipes/wip/libs/archives/libzip/recipe.toml @@ -0,0 +1,8 @@ +#TODO Promote +[source] +tar = "https://libzip.org/download/libzip-1.10.1.tar.gz" +[build] +template = "cmake" +dependencies = [ + "zlib", +] diff --git a/recipes/wip/libs/audio/boca/recipe.toml b/recipes/wip/libs/audio/boca/recipe.toml new file mode 100644 index 000000000..3e63360b8 --- /dev/null +++ b/recipes/wip/libs/audio/boca/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing script for gnu make +# build instructions - https://github.com/enzo1982/boca/#installation +[source] +tar = "https://github.com/enzo1982/BoCA/releases/download/v1.0.7/boca-1.0.7.tar.gz" +[build] +template = "custom" +dependencies = [ + "libsmooth", + "pulseaudio", + "libcdio", + "libcdio-paranoia", + "expat", + "liburiparser", +] diff --git a/recipes/wip/libs/audio/libalsa/recipe.toml b/recipes/wip/libs/audio/libalsa/recipe.toml new file mode 100644 index 000000000..805791e3c --- /dev/null +++ b/recipes/wip/libs/audio/libalsa/recipe.toml @@ -0,0 +1,6 @@ +#TODO maybe wrong template +# build instructions - https://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=INSTALL;h=a2427e072bcaf951addc3e1db1fccccf44f3b59b;hb=HEAD +[source] +tar = "http://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.13.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/audio/libcanberra/recipe.toml b/recipes/wip/libs/audio/libcanberra/recipe.toml new file mode 100644 index 000000000..2de6513c3 --- /dev/null +++ b/recipes/wip/libs/audio/libcanberra/recipe.toml @@ -0,0 +1,20 @@ +#TODO no audio backend supported +[source] +tar = "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz" +blake3 = "ea02f4b5a00bfffce1d29ce73e1cf5351027208cbeb58bf9954e84ad120e6daa" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "gtk3", + "libtool", + "libvorbis", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/libs/audio/libopenshot-audio/recipe.toml b/recipes/wip/libs/audio/libopenshot-audio/recipe.toml new file mode 100644 index 000000000..752959856 --- /dev/null +++ b/recipes/wip/libs/audio/libopenshot-audio/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from cmake log +[source] +git = "https://github.com/OpenShot/libopenshot-audio" +rev = "v0.4.0" +shallow_clone = true +[build] +template = "cmake" diff --git a/recipes/wip/libs/audio/libopus/recipe.toml b/recipes/wip/libs/audio/libopus/recipe.toml new file mode 100644 index 000000000..0f63e4635 --- /dev/null +++ b/recipes/wip/libs/audio/libopus/recipe.toml @@ -0,0 +1,5 @@ +#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 new file mode 100644 index 000000000..f88873ab4 --- /dev/null +++ b/recipes/wip/libs/audio/mpg123/recipe.toml @@ -0,0 +1,11 @@ +#TODO compilation error +[source] +tar = "https://mpg123.de/download/mpg123-1.33.2.tar.bz2" +blake3 = "1e604dc14160a8852ef6b880643e3534f44e410af1fd5ba29a80ff960a54e834" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "configure" diff --git a/recipes/wip/libs/audio/openal/recipe.toml b/recipes/wip/libs/audio/openal/recipe.toml new file mode 100644 index 000000000..566e58fa7 --- /dev/null +++ b/recipes/wip/libs/audio/openal/recipe.toml @@ -0,0 +1,36 @@ +[source] +tar = "https://github.com/kcat/openal-soft/archive/refs/tags/1.24.1.tar.gz" +blake3 = "da65f839d4cee560371d08fc977f90757f964f49b14655b1d8d43f779c90a815" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "liborbital", + "libsndfile", + "mesa", + "sdl2", + "zlib", +] +script = """ +DYNAMIC_INIT +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL2" +export CXXFLAGS="${CXXFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL2" +COOKBOOK_CMAKE_FLAGS+=( + -DALSOFT_EXAMPLES=OFF + -DALSOFT_INSTALL_EXAMPLES=OFF + -DALSOFT_INSTALL_UTILS=OFF + -DALSOFT_UTILS=OFF + -DALSOFT_BACKEND_SDL2=ON + -DALSOFT_REQUIRE_SDL2=ON +) +if [ "${COOKBOOK_DYNAMIC}" == "1" ] +then + COOKBOOK_CMAKE_FLAGS+=(-DLIBTYPE=SHARED) +else + COOKBOOK_CMAKE_FLAGS+=(-DLIBTYPE=STATIC) +fi +cookbook_cmake +""" diff --git a/recipes/wip/libs/audio/openal/redox.patch b/recipes/wip/libs/audio/openal/redox.patch new file mode 100644 index 000000000..d787c7ce6 --- /dev/null +++ b/recipes/wip/libs/audio/openal/redox.patch @@ -0,0 +1,59 @@ +diff -ruwN openal-soft-1.24.1/CMakeLists.txt source/CMakeLists.txt +--- openal-soft-1.24.1/CMakeLists.txt 2024-11-27 20:21:16.000000000 -0700 ++++ source/CMakeLists.txt 2025-01-09 14:35:09.422985283 -0700 +@@ -1200,7 +1200,7 @@ + set(HAVE_SDL2 1) + set(ALC_OBJS ${ALC_OBJS} alc/backends/sdl2.cpp alc/backends/sdl2.h) + set(BACKENDS "${BACKENDS} SDL2,") +- set(EXTRA_LIBS ${EXTRA_LIBS} SDL2::SDL2) ++ set(EXTRA_LIBS ${EXTRA_LIBS} ${SDL2_LIBRARIES}) + else() + message(STATUS "Could NOT find SDL2") + endif() +diff -ruwN openal-soft-1.24.1/common/alstring.cpp source/common/alstring.cpp +--- openal-soft-1.24.1/common/alstring.cpp 2024-11-27 20:21:16.000000000 -0700 ++++ source/common/alstring.cpp 2025-01-09 09:35:50.263542017 -0700 +@@ -40,8 +40,8 @@ + auto ch1end = ch1 + std::min(str0.size(), str1.size()); + while(ch1 != ch1end) + { +- const auto u0 = std::towupper(Traits::to_int_type(*ch0)); +- const auto u1 = std::towupper(Traits::to_int_type(*ch1)); ++ const auto u0 = towupper(Traits::to_int_type(*ch0)); ++ const auto u1 = towupper(Traits::to_int_type(*ch1)); + if(const auto diff = static_cast(u0-u1)) return diff; + ++ch0; ++ch1; + } +diff -ruwN openal-soft-1.24.1/common/althreads.h source/common/althreads.h +--- openal-soft-1.24.1/common/althreads.h 2024-11-27 20:21:16.000000000 -0700 ++++ source/common/althreads.h 2025-01-09 09:31:58.064326293 -0700 +@@ -9,7 +9,7 @@ + #define WIN32_LEAN_AND_MEAN + #include + +-#elif defined(__APPLE__) ++#elif defined(__APPLE__) || defined(__redox__) + + #include + +@@ -79,7 +79,7 @@ + [[nodiscard]] + auto get() const noexcept -> T { return from_ptr(TlsGetValue(mTss)); } + +-#elif defined(__APPLE__) ++#elif defined(__APPLE__) || defined(__redox__) + + pthread_key_t mTss{}; + +diff -ruwN openal-soft-1.24.1/core/helpers.cpp source/core/helpers.cpp +--- openal-soft-1.24.1/core/helpers.cpp 2024-11-27 20:21:16.000000000 -0700 ++++ source/core/helpers.cpp 2025-01-09 09:36:47.992595649 -0700 +@@ -372,7 +372,7 @@ + bool SetRTPriorityPthread(int prio [[maybe_unused]]) + { + int err{ENOTSUP}; +-#if defined(HAVE_PTHREAD_SETSCHEDPARAM) && !defined(__OpenBSD__) ++#if defined(HAVE_PTHREAD_SETSCHEDPARAM) && !defined(__OpenBSD__) && !defined(__redox__) + /* Get the min and max priority for SCHED_RR. Limit the max priority to + * half, for now, to ensure the thread can't take the highest priority and + * go rogue. diff --git a/recipes/wip/libs/audio/opusfile/recipe.toml b/recipes/wip/libs/audio/opusfile/recipe.toml new file mode 100644 index 000000000..47d9e2198 --- /dev/null +++ b/recipes/wip/libs/audio/opusfile/recipe.toml @@ -0,0 +1,10 @@ +#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/audio/soundtouch/recipe.toml b/recipes/wip/libs/audio/soundtouch/recipe.toml new file mode 100644 index 000000000..e5e493ed0 --- /dev/null +++ b/recipes/wip/libs/audio/soundtouch/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building +[source] +tar = "https://www.surina.net/soundtouch/soundtouch-2.3.2.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/audio/speex/recipe.toml b/recipes/wip/libs/audio/speex/recipe.toml new file mode 100644 index 000000000..0f5ca93f8 --- /dev/null +++ b/recipes/wip/libs/audio/speex/recipe.toml @@ -0,0 +1,5 @@ +#TODO Compiled but not tested +[source] +tar = "http://downloads.xiph.org/releases/speex/speex-1.2.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/audio/speexdsp/recipe.toml b/recipes/wip/libs/audio/speexdsp/recipe.toml new file mode 100644 index 000000000..8562d8e34 --- /dev/null +++ b/recipes/wip/libs/audio/speexdsp/recipe.toml @@ -0,0 +1,5 @@ +#TODO Compiled but not tested +[source] +tar = "http://downloads.xiph.org/releases/speex/speexdsp-1.2.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/audio/zmusic/recipe.toml b/recipes/wip/libs/audio/zmusic/recipe.toml new file mode 100644 index 000000000..afd756bac --- /dev/null +++ b/recipes/wip/libs/audio/zmusic/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ZDoom/ZMusic#readme +[source] +git = "https://github.com/ZDoom/ZMusic" +[build] +template = "cmake" diff --git a/recipes/wip/libs/debug/libbacktrace/recipe.toml b/recipes/wip/libs/debug/libbacktrace/recipe.toml new file mode 100644 index 000000000..c5751ec6d --- /dev/null +++ b/recipes/wip/libs/debug/libbacktrace/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ianlancetaylor/libbacktrace" +rev = "b9e40069c0b47a722286b94eb5231f7f05c08713" +[build] +template = "configure" diff --git a/recipes/wip/libs/fs/libattr/recipe.toml b/recipes/wip/libs/fs/libattr/recipe.toml new file mode 100644 index 000000000..a73ef2d92 --- /dev/null +++ b/recipes/wip/libs/fs/libattr/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't find the sys/xattr.h file +[source] +tar = "https://download.savannah.nongnu.org/releases/attr/attr-2.5.2.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/fs/libnfs/recipe.toml b/recipes/wip/libs/fs/libnfs/recipe.toml new file mode 100644 index 000000000..ea2431a1a --- /dev/null +++ b/recipes/wip/libs/fs/libnfs/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/sahlberg/libnfs/blob/master/INSTALL +[source] +git = "https://github.com/sahlberg/libnfs" +rev = "libnfs-6.0.2" +[build] +template = "cmake" diff --git a/recipes/wip/libs/graphics/libnoise/recipe.toml b/recipes/wip/libs/graphics/libnoise/recipe.toml new file mode 100644 index 000000000..c9fff830a --- /dev/null +++ b/recipes/wip/libs/graphics/libnoise/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/qknight/libnoise" +[build] +template = "cmake" diff --git a/recipes/wip/libs/gtk/dconf/recipe.toml b/recipes/wip/libs/gtk/dconf/recipe.toml new file mode 100644 index 000000000..40fcd4697 --- /dev/null +++ b/recipes/wip/libs/gtk/dconf/recipe.toml @@ -0,0 +1,16 @@ +[source] +tar = "https://download.gnome.org/sources/dconf/0.49/dconf-0.49.0.tar.xz" +blake3 = "41ee23bdab3208f7a08efa134a481c852874dc5846433a665c5a5149511a7659" +patches = ["redox.patch"] + +[build] +dependencies = [ + "dbus", + "glib", +] +template = "meson" +mesonflags = [ + "-Dbash_completion=false", + "-Dvapi=false", + "--force-fallback-for=gvdb", +] diff --git a/recipes/wip/libs/gtk/dconf/redox.patch b/recipes/wip/libs/gtk/dconf/redox.patch new file mode 100644 index 000000000..4fe5cfc5b --- /dev/null +++ b/recipes/wip/libs/gtk/dconf/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN source-old/shm/dconf-shm.c source/shm/dconf-shm.c +--- source-old/shm/dconf-shm.c 2025-09-15 09:53:57.000000000 -0600 ++++ source/shm/dconf-shm.c 2025-11-15 08:08:47.412198178 -0700 +@@ -148,7 +148,7 @@ + + close (fd); + +- unlink (filename); ++ //TODO: redoxfs bug: unlink (filename); + } + + g_free (filename); diff --git a/recipes/wip/libs/gtk/gtk-engines/recipe.toml b/recipes/wip/libs/gtk/gtk-engines/recipe.toml new file mode 100644 index 000000000..6366c8cee --- /dev/null +++ b/recipes/wip/libs/gtk/gtk-engines/recipe.toml @@ -0,0 +1,5 @@ +#TODO configuration problem, can't recognize the Redox target +[source] +tar = "https://download.gnome.org/sources/gtk-engines/2.91/gtk-engines-2.91.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/gtk/gtk2/recipe.toml b/recipes/wip/libs/gtk/gtk2/recipe.toml new file mode 100644 index 000000000..306a084df --- /dev/null +++ b/recipes/wip/libs/gtk/gtk2/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-2-24/INSTALL.in +[source] +tar = "https://download.gnome.org/sources/gtk%2B/2.24/gtk%2B-2.24.33.tar.xz" +[build] +template = "configure" +dependencies = [ + "atk", + "glib", + "pango", + "gdk-pixbuf", + "atk", + "cairo", + "gobject-introspection", +] diff --git a/recipes/wip/libs/gtk/gtk2mm/recipe.toml b/recipes/wip/libs/gtk/gtk2mm/recipe.toml new file mode 100644 index 000000000..86f6f83d3 --- /dev/null +++ b/recipes/wip/libs/gtk/gtk2mm/recipe.toml @@ -0,0 +1,8 @@ +#TODO determine dependencies +[source] +tar = "https://download.gnome.org/sources/gtkmm/2.24/gtkmm-2.24.5.tar.xz" +[build] +template = "configure" +dependencies = [ + "gtk2", +] diff --git a/recipes/wip/libs/gtk/gtk3/recipe.toml b/recipes/wip/libs/gtk/gtk3/recipe.toml new file mode 100644 index 000000000..44958e1a0 --- /dev/null +++ b/recipes/wip/libs/gtk/gtk3/recipe.toml @@ -0,0 +1,52 @@ +#TODO promote +[source] +tar = "https://download.gnome.org/sources/gtk+/3.24/gtk%2B-3.24.43.tar.xz" +blake3 = "5feab2bad81e6b5906895f70ddce6227cf96a6a14b16af0ef72c79991a48ddf4" +patches = ["redox.patch"] + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + #TODO "gobject-introspection", + "harfbuzz", + "libepoxy", + "libffi", + "libiconv", + "libjpeg", + "libpng", + "libpthread-stubs", + "libwayland", + "libx11", + "libxau", + "libxkbcommon", + "libxcb", + "libxext", + "libxfixes", + "libxi", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre2", + "pixman", + "shared-mime-info", + "wayland-protocols", + "x11proto", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +CFLAGS="${CFLAGS} -DM_SQRT2=1.41421356237309504880" +cookbook_meson \ + -Dintrospection=false +""" diff --git a/recipes/wip/libs/gtk/gtk3/redox.patch b/recipes/wip/libs/gtk/gtk3/redox.patch new file mode 100644 index 000000000..6f6d523e1 --- /dev/null +++ b/recipes/wip/libs/gtk/gtk3/redox.patch @@ -0,0 +1,92 @@ +diff -ruwN source-old/gdk/wayland/gdkdevice-wayland.c source/gdk/wayland/gdkdevice-wayland.c +--- source-old/gdk/wayland/gdkdevice-wayland.c 2024-07-10 11:03:14.000000000 -0600 ++++ source/gdk/wayland/gdkdevice-wayland.c 2025-11-13 09:46:58.493081022 -0700 +@@ -44,6 +44,12 @@ + #include + #elif defined(HAVE_LINUX_INPUT_H) + #include ++#else ++#define BTN_LEFT 0x110 ++#define BTN_RIGHT 0x111 ++#define BTN_MIDDLE 0x112 ++#define BTN_STYLUS 0x14b ++#define BTN_STYLUS2 0x14c + #endif + + #define BUTTON_BASE (BTN_LEFT - 1) /* Used to translate to 1-indexed buttons */ +diff -ruwN source-old/gdk/wayland/gdkdisplay-wayland.c source/gdk/wayland/gdkdisplay-wayland.c +--- source-old/gdk/wayland/gdkdisplay-wayland.c 2024-07-10 11:03:14.000000000 -0600 ++++ source/gdk/wayland/gdkdisplay-wayland.c 2025-11-13 09:44:55.926622693 -0700 +@@ -28,7 +28,9 @@ + #endif + + #include ++#if defined (__NR_memfd_create) + #include ++#endif + + #include + #include "gdkwayland.h" +diff -ruwN source-old/gtk/a11y/gtkaccessibility.c source/gtk/a11y/gtkaccessibility.c +--- source-old/gtk/a11y/gtkaccessibility.c 2024-07-10 11:03:14.000000000 -0600 ++++ source/gtk/a11y/gtkaccessibility.c 2025-11-12 12:32:06.969908669 -0700 +@@ -37,7 +37,7 @@ + #include + #include + +-#ifdef GDK_WINDOWING_X11 ++#if defined(GDK_WINDOWING_X11) && !defined(__redox__) + #include + #endif + +@@ -254,7 +254,7 @@ + } + } + +-#ifdef GDK_WINDOWING_X11 ++#if defined(GDK_WINDOWING_X11) && !defined(__redox__) + /* + * If the focus widget is a GtkSocket without a plug + * then ignore the focus notification as the embedded +@@ -986,7 +986,7 @@ + _gtk_accessibility_override_atk_util (); + do_window_event_initialization (); + +-#ifdef GDK_WINDOWING_X11 ++#if defined(GDK_WINDOWING_X11) && !defined(__redox__) + atk_bridge_adaptor_init (NULL, NULL); + #endif + +diff -ruwN source-old/gtk/gtkmain.c source/gtk/gtkmain.c +--- source-old/gtk/gtkmain.c 2024-07-10 11:03:14.000000000 -0600 ++++ source/gtk/gtkmain.c 2025-11-12 12:32:06.970182803 -0700 +@@ -355,7 +355,7 @@ + check_setugid (void) + { + /* this isn't at all relevant on MS Windows and doesn't compile ... --hb */ +-#ifndef G_OS_WIN32 ++#if !defined(G_OS_WIN32) && !defined(__redox__) + uid_t ruid, euid, suid; /* Real, effective and saved user ID's */ + gid_t rgid, egid, sgid; /* Real, effective and saved group ID's */ + +diff -ruwN source-old/meson.build source/meson.build +--- source-old/meson.build 2024-07-10 11:03:14.000000000 -0600 ++++ source/meson.build 2025-11-12 12:32:06.970463189 -0700 +@@ -565,7 +565,7 @@ + xfixes_dep = dependency('xfixes', required: false) + xcomposite_dep = dependency('xcomposite', required: false) + fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep']) +- atkbridge_dep = dependency('atk-bridge-2.0', version: at_spi2_atk_req) ++ #TODO atkbridge_dep = dependency('atk-bridge-2.0', version: at_spi2_atk_req) + + backend_immodules += ['xim'] + +@@ -584,7 +584,7 @@ + x11_pkgs += ['xdamage'] + endif + +- atk_pkgs += ['atk-bridge-2.0'] ++ #atk_pkgs += ['atk-bridge-2.0'] + + cdata.set('HAVE_XDAMAGE', xdamage_dep.found() ? 1 : false) + cdata.set('HAVE_XCURSOR', xcursor_dep.found() ? 1 : false) diff --git a/recipes/wip/libs/gtk/gtk3mm/recipe.toml b/recipes/wip/libs/gtk/gtk3mm/recipe.toml new file mode 100644 index 000000000..3f47f818a --- /dev/null +++ b/recipes/wip/libs/gtk/gtk3mm/recipe.toml @@ -0,0 +1,13 @@ +#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" +[build] +template = "meson" +dependencies = [ + "libsigc++", + "gtk3", + "glibmm", + "cairomm10+", + "pangomm", +] diff --git a/recipes/wip/libs/gtk/gtk4/recipe.toml b/recipes/wip/libs/gtk/gtk4/recipe.toml new file mode 100644 index 000000000..67799892d --- /dev/null +++ b/recipes/wip/libs/gtk/gtk4/recipe.toml @@ -0,0 +1,19 @@ +#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" +[build] +template = "meson" +dependencies = [ + "glib", + "gdk-pixbuf", + "pango", + "cairo", + "libepoxy", + "atk", + "gobject-introspection", + "shared-mime-info", + "graphene", + "libxkbcommon", + "gstreamer", +] diff --git a/recipes/wip/libs/gtk/gtk4mm/recipe.toml b/recipes/wip/libs/gtk/gtk4mm/recipe.toml new file mode 100644 index 000000000..e2b22bc85 --- /dev/null +++ b/recipes/wip/libs/gtk/gtk4mm/recipe.toml @@ -0,0 +1,13 @@ +#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" +[build] +template = "meson" +dependencies = [ + "libsigc++", + "gtk4", + "glibmm", + "cairomm116+", + "pangomm", +] diff --git a/recipes/wip/libs/gtk/gtkglext/recipe.toml b/recipes/wip/libs/gtk/gtkglext/recipe.toml new file mode 100644 index 000000000..479bdf199 --- /dev/null +++ b/recipes/wip/libs/gtk/gtkglext/recipe.toml @@ -0,0 +1,5 @@ +#TODO configuration problem, can't recognize the Redox target +[source] +tar = "https://download.gnome.org/sources/gtkglext/1.2/gtkglext-1.2.0.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/gtk/gtksourceview/recipe.toml b/recipes/wip/libs/gtk/gtksourceview/recipe.toml new file mode 100644 index 000000000..39a4801d8 --- /dev/null +++ b/recipes/wip/libs/gtk/gtksourceview/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/gtksourceview#installation +[source] +tar = "https://download.gnome.org/sources/gtksourceview/5.10/gtksourceview-5.10.0.tar.xz" +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libxml2", + "fribidi", + "pcre", +] diff --git a/recipes/wip/libs/gtk/libayatana-appindicator-glib/recipe.toml b/recipes/wip/libs/gtk/libayatana-appindicator-glib/recipe.toml new file mode 100644 index 000000000..e37315218 --- /dev/null +++ b/recipes/wip/libs/gtk/libayatana-appindicator-glib/recipe.toml @@ -0,0 +1,10 @@ +[source] +tar = "https://github.com/AyatanaIndicators/libayatana-appindicator-glib/archive/refs/tags/2.0.1.tar.gz" +blake3 = "5c7e39f29b23cd5c14a6eacbe0c0bf16dfd28b9b013ec011421d5d6e5742ba2d" +patches = ["redox.patch"] + +[build] +dependencies = [ + "glib", +] +template = "cmake" diff --git a/recipes/wip/libs/gtk/libayatana-appindicator-glib/redox.patch b/recipes/wip/libs/gtk/libayatana-appindicator-glib/redox.patch new file mode 100644 index 000000000..db429a1ab --- /dev/null +++ b/recipes/wip/libs/gtk/libayatana-appindicator-glib/redox.patch @@ -0,0 +1,116 @@ +diff -ruwN source-old/bindings/CMakeLists.txt source/bindings/CMakeLists.txt +--- source-old/bindings/CMakeLists.txt 2025-06-15 04:50:44.000000000 -0600 ++++ source/bindings/CMakeLists.txt 2025-11-15 08:33:35.889512652 -0700 +@@ -1 +1 @@ +-add_subdirectory (vala) ++#TODO: valac: add_subdirectory (vala) +diff -ruwN source-old/CMakeLists.txt source/CMakeLists.txt +--- source-old/CMakeLists.txt 2025-06-15 04:50:44.000000000 -0600 ++++ source/CMakeLists.txt 2025-11-15 08:33:53.996379724 -0700 +@@ -38,7 +38,7 @@ + + add_subdirectory (src) + add_subdirectory (bindings) +-add_subdirectory (doc) ++#TODO: gi-docgen: add_subdirectory (doc) + + if (ENABLE_TESTS) + include (CTest) +diff -ruwN source-old/src/CMakeLists.txt source/src/CMakeLists.txt +--- source-old/src/CMakeLists.txt 2025-06-15 04:50:44.000000000 -0600 ++++ source/src/CMakeLists.txt 2025-11-15 08:32:53.644475333 -0700 +@@ -114,47 +114,49 @@ + target_link_options ("ayatana-appindicator-glib" PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/ayatana-appindicator.symbols") + install (TARGETS "ayatana-appindicator-glib" LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}") + +-# AyatanaAppIndicatorGlib-2.0.gir +- +-find_package (GObjectIntrospection REQUIRED) +- +-add_custom_command ( +- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir" +- DEPENDS "ayatana-appindicator-glib" +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +- COMMAND +- ${INTROSPECTION_SCANNER} +- ayatana-appindicator.c ayatana-appindicator.h +- --add-include-path=${CMAKE_CURRENT_BINARY_DIR} +- --c-include=libayatana-appindicator-glib/ayatana-appindicator.h +- --symbol-prefix=app +- --identifier-prefix=App +- --namespace=AyatanaAppIndicatorGlib +- --nsversion=2.0 +- --quiet +- --warn-all +- --include=Gio-2.0 +- --include=GObject-2.0 +- --library-path=${CMAKE_CURRENT_BINARY_DIR} +- --library="ayatana-appindicator-glib" +- --output "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir" +-) +- +-install (FILES "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir" DESTINATION "${CMAKE_INSTALL_FULL_DATADIR}/gir-1.0") +- +-# AyatanaAppIndicatorGlib-2.0.typelib +- +-add_custom_command ( +- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.typelib" +- DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir" +- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +- COMMAND +- ${INTROSPECTION_COMPILER} +- --includedir=${CMAKE_CURRENT_BINARY_DIR} +- ${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir +- -o "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.typelib" +-) +- +-install (FILES "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.typelib" DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/girepository-1.0") +- +-add_custom_target ("src" ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.typelib") ++#TODO: gobject-introspection ++## AyatanaAppIndicatorGlib-2.0.gir ++# ++#find_package (GObjectIntrospection REQUIRED) ++# ++#add_custom_command ( ++# OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir" ++# DEPENDS "ayatana-appindicator-glib" ++# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ++# COMMAND ++# ${INTROSPECTION_SCANNER} ++# ayatana-appindicator.c ayatana-appindicator.h ++# --add-include-path=${CMAKE_CURRENT_BINARY_DIR} ++# --c-include=libayatana-appindicator-glib/ayatana-appindicator.h ++# --symbol-prefix=app ++# --identifier-prefix=App ++# --namespace=AyatanaAppIndicatorGlib ++# --nsversion=2.0 ++# --quiet ++# --warn-all ++# --include=Gio-2.0 ++# --include=GObject-2.0 ++# --library-path=${CMAKE_CURRENT_BINARY_DIR} ++# --library="ayatana-appindicator-glib" ++# --output "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir" ++#) ++# ++#install (FILES "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir" DESTINATION "${CMAKE_INSTALL_FULL_DATADIR}/gir-1.0") ++# ++## AyatanaAppIndicatorGlib-2.0.typelib ++# ++#add_custom_command ( ++# OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.typelib" ++# DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir" ++# WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ++# COMMAND ++# ${INTROSPECTION_COMPILER} ++# --includedir=${CMAKE_CURRENT_BINARY_DIR} ++# ${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.gir ++# -o "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.typelib" ++#) ++# ++#install (FILES "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.typelib" DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/girepository-1.0") ++# ++#add_custom_target ("src" ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/AyatanaAppIndicatorGlib-2.0.typelib") ++# +\ No newline at end of file diff --git a/recipes/wip/libs/gtk/libhandy/recipe.toml b/recipes/wip/libs/gtk/libhandy/recipe.toml new file mode 100644 index 000000000..84ca2d7e3 --- /dev/null +++ b/recipes/wip/libs/gtk/libhandy/recipe.toml @@ -0,0 +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" +[build] +template = "meson" +dependencies = [ + "glib", + "gtk3", +] diff --git a/recipes/wip/libs/gtk/libwnck3/recipe.toml b/recipes/wip/libs/gtk/libwnck3/recipe.toml new file mode 100644 index 000000000..f91a8ce08 --- /dev/null +++ b/recipes/wip/libs/gtk/libwnck3/recipe.toml @@ -0,0 +1,45 @@ +[source] +tar = "https://download.gnome.org/sources/libwnck/43/libwnck-43.3.tar.xz" +blake3 = "711e508f062cc90c660b56f21c5fd237db156ea51fe364fb5e9e766556c2de42" + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + "gtk3", + "harfbuzz", + "libepoxy", + "libffi", + "libiconv", + "libjpeg", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "libxft", + "libxi", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre2", + "pixman", + "shared-mime-info", + "x11proto", + "zlib", +] +template = "meson" +mesonflags = [ + "-Dintrospection=disabled", +] diff --git a/recipes/wip/libs/gtk/vte/recipe.toml b/recipes/wip/libs/gtk/vte/recipe.toml new file mode 100644 index 000000000..948971ddf --- /dev/null +++ b/recipes/wip/libs/gtk/vte/recipe.toml @@ -0,0 +1,20 @@ +[source] +tar = "https://download.gnome.org/sources/vte/0.82/vte-0.82.1.tar.xz" +blake3 = "2d16b6808c0eaa801d59ccabcae13e76ccd6229869dad1efe0524a4c83b53a87" +patches = ["redox.patch"] + +[build] +dependencies = [ + "gnutls3", + "gtk3", + "lz4", + "simdutf", +] +template = "meson" +mesonflags = [ + "-Dgir=false", + "-Dgtk4=false", + "-Dvapi=false", + #TODO: package fast_float? + "--force-fallback-for=fast_float", +] diff --git a/recipes/wip/libs/gtk/vte/redox.patch b/recipes/wip/libs/gtk/vte/redox.patch new file mode 100644 index 000000000..3f3bda148 --- /dev/null +++ b/recipes/wip/libs/gtk/vte/redox.patch @@ -0,0 +1,63 @@ +diff -ruwN source-old/src/pty.cc source/src/pty.cc +--- source-old/src/pty.cc 2025-10-11 14:43:24.000000000 -0600 ++++ source/src/pty.cc 2025-11-17 17:54:03.387095202 -0700 +@@ -222,7 +222,7 @@ + if (peer_fd == -1) + _exit(127); + +-#ifdef TIOCSCTTY ++#if defined(TIOCSCTTY) && !defined(__redox__) + /* On linux, opening the PTY peer above already made it our controlling TTY (since + * previously there was none, after the setsid() call). However, it appears that e.g. + * on *BSD, that doesn't happen, so we need this explicit ioctl here. +diff -ruwN source-old/src/spawn.cc source/src/spawn.cc +--- source-old/src/spawn.cc 2025-10-11 14:43:24.000000000 -0600 ++++ source/src/spawn.cc 2025-11-17 17:53:20.394044419 -0700 +@@ -409,7 +409,7 @@ + if (peer_fd == -1) + return ExecError::GETPTPEER; + +-#ifdef TIOCSCTTY ++#if defined(TIOCSCTTY) && !defined(__redox__) + /* On linux, opening the PTY peer above already made it our controlling TTY (since + * previously there was none, after the setsid() call). However, it appears that e.g. + * on *BSD, that doesn't happen, so we need this explicit ioctl here. +diff -ruwN source-old/src/vte.cc source/src/vte.cc +--- source-old/src/vte.cc 2025-10-11 14:43:24.000000000 -0600 ++++ source/src/vte.cc 2025-11-17 17:54:44.394149937 -0700 +@@ -19,7 +19,9 @@ + #include "config.h" + + #include ++#if !defined(__redox__) + #include ++#endif + #include + #include + #include +diff -ruwN source-old/src/vteseq.cc source/src/vteseq.cc +--- source-old/src/vteseq.cc 2025-10-11 14:43:24.000000000 -0600 ++++ source/src/vteseq.cc 2025-11-17 17:59:27.278790468 -0700 +@@ -19,7 +19,9 @@ + + #include "config.h" + ++#if !defined(__redox__) + #include ++#endif + #include + #include + #include +diff -ruwN source-old/src/widget.cc source/src/widget.cc +--- source-old/src/widget.cc 2025-10-11 14:43:24.000000000 -0600 ++++ source/src/widget.cc 2025-11-17 18:22:10.229089619 -0700 +@@ -927,6 +927,9 @@ + } + + if (m_terminal->terminate_child()) { ++ #ifndef W_EXITCODE ++ #define W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) ++ #endif + int status = W_EXITCODE(0, SIGKILL); + emit_child_exited(status); + } diff --git a/recipes/wip/libs/gtk/xdg-user-dirs-gtk/recipe.toml b/recipes/wip/libs/gtk/xdg-user-dirs-gtk/recipe.toml new file mode 100644 index 000000000..53fbbc03d --- /dev/null +++ b/recipes/wip/libs/gtk/xdg-user-dirs-gtk/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/xdg-user-dirs-gtk/0.14/xdg-user-dirs-gtk-0.14.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/gtk/zenity/recipe.toml b/recipes/wip/libs/gtk/zenity/recipe.toml new file mode 100644 index 000000000..bc9f40acd --- /dev/null +++ b/recipes/wip/libs/gtk/zenity/recipe.toml @@ -0,0 +1,9 @@ +[source] +tar = "https://download.gnome.org/sources/zenity/3.44/zenity-3.44.5.tar.xz" +blake3 = "de4c662bd33107e9247c23d248e4b1b51a68994b01ecefda77422e1007b11c1e" + +[build] +dependencies = [ + "gtk3", +] +template = "meson" diff --git a/recipes/wip/libs/gui/clutter-gst/recipe.toml b/recipes/wip/libs/gui/clutter-gst/recipe.toml new file mode 100644 index 000000000..81b085ddb --- /dev/null +++ b/recipes/wip/libs/gui/clutter-gst/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/Archive/clutter-gst/-/blob/master/INSTALL +[source] +tar = "https://download.gnome.org/sources/clutter-gst/3.0/clutter-gst-3.0.27.tar.xz" +[build] +template = "configure" +dependencies = [ + "glib", + "cogl", + "clutter", + "gstreamer", +] diff --git a/recipes/wip/libs/gui/clutter-gtk/recipe.toml b/recipes/wip/libs/gui/clutter-gtk/recipe.toml new file mode 100644 index 000000000..3f4f8581a --- /dev/null +++ b/recipes/wip/libs/gui/clutter-gtk/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://download.gnome.org/sources/clutter-gtk/1.8/clutter-gtk-1.8.4.tar.xz" +[build] +template = "meson" +dependencies = [ + "clutter", + "gtk3", +] diff --git a/recipes/wip/libs/gui/clutter/recipe.toml b/recipes/wip/libs/gui/clutter/recipe.toml new file mode 100644 index 000000000..975ec92d9 --- /dev/null +++ b/recipes/wip/libs/gui/clutter/recipe.toml @@ -0,0 +1,19 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/Archive/clutter#building-and-installation +[source] +tar = "https://download.gnome.org/sources/clutter/1.26/clutter-1.26.4.tar.xz" +[build] +template = "configure" +dependencies = [ + "glib", + "json-glib", + "atk", + "cairo", + "pango", + "cogl", + "libxcb", + "libxcomposite + "libxdamage", + "libxext", + "libxkbcommon", +] diff --git a/recipes/wip/libs/gui/cogl/recipe.toml b/recipes/wip/libs/gui/cogl/recipe.toml new file mode 100644 index 000000000..346d3fd02 --- /dev/null +++ b/recipes/wip/libs/gui/cogl/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/cogl/1.22/cogl-1.22.8.tar.xz" +[build] +template = "configure" +dependencies = [ + "mesa-x11", + "libxcomposite", + "libxdamage", + "libxext", + "libxfixes", + #"libwayland", +] diff --git a/recipes/wip/libs/gui/girara/recipe.toml b/recipes/wip/libs/gui/girara/recipe.toml new file mode 100644 index 000000000..c26f68cca --- /dev/null +++ b/recipes/wip/libs/gui/girara/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://pwmt.org/projects/girara/installation/ +[source] +tar = "https://pwmt.org/projects/girara/download/girara-0.4.5.tar.xz" +[build] +template = "meson" +dependencies = [ + "gtk3", +] diff --git a/recipes/wip/libs/gui/imgui/recipe.toml b/recipes/wip/libs/gui/imgui/recipe.toml new file mode 100644 index 000000000..fd46155fb --- /dev/null +++ b/recipes/wip/libs/gui/imgui/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# cmake information: https://github.com/ocornut/imgui/pull/3027 +[source] +git = "https://github.com/Qix-/imgui" +branch = "cmake" +[build] +template = "cmake" diff --git a/recipes/wip/libs/image/libavif/recipe.toml b/recipes/wip/libs/image/libavif/recipe.toml new file mode 100644 index 000000000..faa25b329 --- /dev/null +++ b/recipes/wip/libs/image/libavif/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/AOMediaCodec/libavif#build-notes +[source] +git = "https://github.com/AOMediaCodec/libavif" +rev = "ecf2dfc1ef2908e0f4ddb0fdc03dd8db831d8ae7" +[build] +template = "cmake" diff --git a/recipes/wip/libs/image/libgphoto2/recipe.toml b/recipes/wip/libs/image/libgphoto2/recipe.toml new file mode 100644 index 000000000..59879f132 --- /dev/null +++ b/recipes/wip/libs/image/libgphoto2/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't find libtool +[source] +tar = "https://sourceforge.net/projects/gphoto/files/libgphoto/2.5.31/libgphoto2-2.5.31.tar.xz/download" +[build] +template = "configure" diff --git a/recipes/wip/libs/image/libheif/recipe.toml b/recipes/wip/libs/image/libheif/recipe.toml new file mode 100644 index 000000000..532fd6b0c --- /dev/null +++ b/recipes/wip/libs/image/libheif/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/strukturag/libheif#compiling +[source] +tar = "https://github.com/strukturag/libheif/releases/download/v1.17.5/libheif-1.17.5.tar.gz" +[build] +template = "cmake" +dependencies = [ + "x265", + "libde265", +] diff --git a/recipes/wip/libs/image/libjxl/recipe.toml b/recipes/wip/libs/image/libjxl/recipe.toml new file mode 100644 index 000000000..fc048b2c9 --- /dev/null +++ b/recipes/wip/libs/image/libjxl/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/libjxl/libjxl/blob/main/BUILDING.md +[source] +git = "https://github.com/libjxl/libjxl" +rev = "954b460768c08a147abf47689ad69b0e7beff65e" +[build] +template = "cmake" +dependencies = [ + "libbrotli", + "libjpeg", + "libgif", + "libpng", + "libwebp", + "openexr", +] diff --git a/recipes/wip/libs/image/libraw/recipe.toml b/recipes/wip/libs/image/libraw/recipe.toml new file mode 100644 index 000000000..78275719f --- /dev/null +++ b/recipes/wip/libs/image/libraw/recipe.toml @@ -0,0 +1,12 @@ +#TODO compilation error +#TODO make libjasper work +[source] +tar = "https://www.libraw.org/data/LibRaw-0.21.1.tar.gz" +[build] +template = "configure" +dependencies = [ + "zlib", + #"libjasper", + "libjpeg", + "liblcms", +] diff --git a/recipes/wip/libs/image/librsvg/recipe.toml b/recipes/wip/libs/image/librsvg/recipe.toml new file mode 100644 index 000000000..14e44666b --- /dev/null +++ b/recipes/wip/libs/image/librsvg/recipe.toml @@ -0,0 +1,26 @@ +#TODO: version 2.59 and newer require cargo-c +[source] +tar = "https://download.gnome.org/sources/librsvg/2.58/librsvg-2.58.5.tar.xz" +blake3 = "15ccac6309992ced51128825e9c3ebeb041705aeb8371507ffc4cebb6a1e4ce5" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "cairo", + "freetype2", + "gdk-pixbuf", + "glib", + "harfbuzz", + "libffi", + "libxml2", + "pango", +] +template = "custom" +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 diff --git a/recipes/wip/libs/image/libsixel/recipe.toml b/recipes/wip/libs/image/libsixel/recipe.toml new file mode 100644 index 000000000..94078fda5 --- /dev/null +++ b/recipes/wip/libs/image/libsixel/recipe.toml @@ -0,0 +1,16 @@ +#TODO can't find libjpeg +[source] +tar = "https://github.com/saitoha/libsixel/releases/download/v1.8.6/libsixel-1.8.6.tar.gz" +[build] +template = "custom" +dependencies = [ + "libpng", + "libjpeg", +] +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --with-jpeg + --with-png +) +cookbook_configure +""" diff --git a/recipes/wip/libs/image/libwebp/recipe.toml b/recipes/wip/libs/image/libwebp/recipe.toml new file mode 100644 index 000000000..5578ebc9f --- /dev/null +++ b/recipes/wip/libs/image/libwebp/recipe.toml @@ -0,0 +1,20 @@ +[source] +tar = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.5.0.tar.gz" +blake3 = "8272270920a317b854b059e86c320dbdb5a2032937072bbfd5f3304d601a92cb" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libgif", + "libjpeg", + "libpng", + "libtiff", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/libs/image/libwebp2/recipe.toml b/recipes/wip/libs/image/libwebp2/recipe.toml new file mode 100644 index 000000000..2bc5b9aef --- /dev/null +++ b/recipes/wip/libs/image/libwebp2/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://chromium.googlesource.com/codecs/libwebp2/#compiling +[source] +git = "https://chromium.googlesource.com/codecs/libwebp2" +[build] +template = "cmake" diff --git a/recipes/wip/libs/kf5/kf5-activities-stats/recipe.toml b/recipes/wip/libs/kf5/kf5-activities-stats/recipe.toml new file mode 100644 index 000000000..4d684d0de --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-activities-stats/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kactivities-stats-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-activities/recipe.toml b/recipes/wip/libs/kf5/kf5-activities/recipe.toml new file mode 100644 index 000000000..0f9b9e6d3 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-activities/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kactivities-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-apidox/recipe.toml b/recipes/wip/libs/kf5/kf5-apidox/recipe.toml new file mode 100644 index 000000000..2b4073c79 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-apidox/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kapidox-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-archive/recipe.toml b/recipes/wip/libs/kf5/kf5-archive/recipe.toml new file mode 100644 index 000000000..5578c6b44 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-archive/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, see https://invent.kde.org/frameworks/karchive/-/blob/master/INSTALL?ref_type=heads +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/karchive-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-attica/recipe.toml b/recipes/wip/libs/kf5/kf5-attica/recipe.toml new file mode 100644 index 000000000..27d31f4b3 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-attica/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/attica-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-auth/recipe.toml b/recipes/wip/libs/kf5/kf5-auth/recipe.toml new file mode 100644 index 000000000..2f4275f3b --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-auth/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kauth-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-baloo/recipe.toml b/recipes/wip/libs/kf5/kf5-baloo/recipe.toml new file mode 100644 index 000000000..5b395c8c7 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-baloo/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/baloo-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-bookmarks/recipe.toml b/recipes/wip/libs/kf5/kf5-bookmarks/recipe.toml new file mode 100644 index 000000000..5c2754ee5 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-bookmarks/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kbookmarks-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-calendarcore/recipe.toml b/recipes/wip/libs/kf5/kf5-calendarcore/recipe.toml new file mode 100644 index 000000000..7d75fda9b --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-calendarcore/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kcalendarcore-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-cmake-modules/recipe.toml b/recipes/wip/libs/kf5/kf5-cmake-modules/recipe.toml new file mode 100644 index 000000000..9cf7db39d --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-cmake-modules/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/extra-cmake-modules-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-cmutils/recipe.toml b/recipes/wip/libs/kf5/kf5-cmutils/recipe.toml new file mode 100644 index 000000000..f1b9a0ae4 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-cmutils/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kcmutils-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-codecs/recipe.toml b/recipes/wip/libs/kf5/kf5-codecs/recipe.toml new file mode 100644 index 000000000..333788a7e --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-codecs/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kcodecs-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-completion/recipe.toml b/recipes/wip/libs/kf5/kf5-completion/recipe.toml new file mode 100644 index 000000000..fec436200 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-completion/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kcompletion-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-config/recipe.toml b/recipes/wip/libs/kf5/kf5-config/recipe.toml new file mode 100644 index 000000000..63914aa99 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-config/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kconfig-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-configwidgets/recipe.toml b/recipes/wip/libs/kf5/kf5-configwidgets/recipe.toml new file mode 100644 index 000000000..4c51ea879 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-configwidgets/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kconfigwidgets-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-contacts/recipe.toml b/recipes/wip/libs/kf5/kf5-contacts/recipe.toml new file mode 100644 index 000000000..b58290090 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-contacts/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kcontacts-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-coreaddons/recipe.toml b/recipes/wip/libs/kf5/kf5-coreaddons/recipe.toml new file mode 100644 index 000000000..088f7e648 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-coreaddons/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kcoreaddons-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-crash/recipe.toml b/recipes/wip/libs/kf5/kf5-crash/recipe.toml new file mode 100644 index 000000000..a9093fb82 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-crash/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kcrash-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-dav/recipe.toml b/recipes/wip/libs/kf5/kf5-dav/recipe.toml new file mode 100644 index 000000000..4c873a5f0 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-dav/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kdav-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-dbusaddons/recipe.toml b/recipes/wip/libs/kf5/kf5-dbusaddons/recipe.toml new file mode 100644 index 000000000..db0c7eae8 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-dbusaddons/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kdbusaddons-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-declarative/recipe.toml b/recipes/wip/libs/kf5/kf5-declarative/recipe.toml new file mode 100644 index 000000000..a45a0080e --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-declarative/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kdeclarative-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-dnssd/recipe.toml b/recipes/wip/libs/kf5/kf5-dnssd/recipe.toml new file mode 100644 index 000000000..6272ce65d --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-dnssd/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kdnssd-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-doctools/recipe.toml b/recipes/wip/libs/kf5/kf5-doctools/recipe.toml new file mode 100644 index 000000000..a7812d080 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-doctools/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kdoctools-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-emoticons/recipe.toml b/recipes/wip/libs/kf5/kf5-emoticons/recipe.toml new file mode 100644 index 000000000..2d6c92718 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-emoticons/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kemoticons-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-filemetadata/recipe.toml b/recipes/wip/libs/kf5/kf5-filemetadata/recipe.toml new file mode 100644 index 000000000..16e1794b2 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-filemetadata/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kfilemetadata-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-frameworkintegration/recipe.toml b/recipes/wip/libs/kf5/kf5-frameworkintegration/recipe.toml new file mode 100644 index 000000000..06ab5bcac --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-frameworkintegration/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/frameworkintegration-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-globalaccel/recipe.toml b/recipes/wip/libs/kf5/kf5-globalaccel/recipe.toml new file mode 100644 index 000000000..834c41092 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-globalaccel/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kglobalaccel-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-guiaddons/recipe.toml b/recipes/wip/libs/kf5/kf5-guiaddons/recipe.toml new file mode 100644 index 000000000..d4e286559 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-guiaddons/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kguiaddons-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-holidays/recipe.toml b/recipes/wip/libs/kf5/kf5-holidays/recipe.toml new file mode 100644 index 000000000..f74648291 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-holidays/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kholidays-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-i18n/recipe.toml b/recipes/wip/libs/kf5/kf5-i18n/recipe.toml new file mode 100644 index 000000000..9d7634097 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-i18n/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/ki18n-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-iconthemes/recipe.toml b/recipes/wip/libs/kf5/kf5-iconthemes/recipe.toml new file mode 100644 index 000000000..65df52b66 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-iconthemes/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kiconthemes-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-idletime/recipe.toml b/recipes/wip/libs/kf5/kf5-idletime/recipe.toml new file mode 100644 index 000000000..2f81d93eb --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-idletime/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kidletime-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-init/recipe.toml b/recipes/wip/libs/kf5/kf5-init/recipe.toml new file mode 100644 index 000000000..e6df78a79 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-init/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kinit-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-io/recipe.toml b/recipes/wip/libs/kf5/kf5-io/recipe.toml new file mode 100644 index 000000000..ea49c5b83 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-io/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kio-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-itemmodels/recipe.toml b/recipes/wip/libs/kf5/kf5-itemmodels/recipe.toml new file mode 100644 index 000000000..0120f605a --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-itemmodels/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kitemmodels-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-itemviews/recipe.toml b/recipes/wip/libs/kf5/kf5-itemviews/recipe.toml new file mode 100644 index 000000000..51849a659 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-itemviews/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kitemviews-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-jobwidgets/recipe.toml b/recipes/wip/libs/kf5/kf5-jobwidgets/recipe.toml new file mode 100644 index 000000000..f8380024b --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-jobwidgets/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kjobwidgets-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-kded/recipe.toml b/recipes/wip/libs/kf5/kf5-kded/recipe.toml new file mode 100644 index 000000000..f983a3682 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-kded/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kded-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-kdesu/recipe.toml b/recipes/wip/libs/kf5/kf5-kdesu/recipe.toml new file mode 100644 index 000000000..a878b1cd5 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-kdesu/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kdesu-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-kirigami/recipe.toml b/recipes/wip/libs/kf5/kf5-kirigami/recipe.toml new file mode 100644 index 000000000..14f16f45c --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-kirigami/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kirigami-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-modem-manager/recipe.toml b/recipes/wip/libs/kf5/kf5-modem-manager/recipe.toml new file mode 100644 index 000000000..d934ab28f --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-modem-manager/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/modemmanager-qt5-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-networkmanager/recipe.toml b/recipes/wip/libs/kf5/kf5-networkmanager/recipe.toml new file mode 100644 index 000000000..4e374638c --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-networkmanager/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/networkmanager-qt5-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-newstuff/recipe.toml b/recipes/wip/libs/kf5/kf5-newstuff/recipe.toml new file mode 100644 index 000000000..f5736ca3a --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-newstuff/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/knewstuff-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-notifications/recipe.toml b/recipes/wip/libs/kf5/kf5-notifications/recipe.toml new file mode 100644 index 000000000..bea54a4ef --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-notifications/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/knotifications-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-notifyconfig/recipe.toml b/recipes/wip/libs/kf5/kf5-notifyconfig/recipe.toml new file mode 100644 index 000000000..f1bae3131 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-notifyconfig/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/knotifyconfig-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-package/recipe.toml b/recipes/wip/libs/kf5/kf5-package/recipe.toml new file mode 100644 index 000000000..bededd5eb --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-package/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kpackage-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-parts/recipe.toml b/recipes/wip/libs/kf5/kf5-parts/recipe.toml new file mode 100644 index 000000000..5251ea3a1 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-parts/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building, lacking build instructions +[source] +tar = "https://invent.kde.org/frameworks/kparts/-/archive/v5.112.0/kparts-v5.112.0.tar.bz2" +[build] +template = "custom" diff --git a/recipes/wip/libs/kf5/kf5-people/recipe.toml b/recipes/wip/libs/kf5/kf5-people/recipe.toml new file mode 100644 index 000000000..61bdbad2b --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-people/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kpeople-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-plasma-framework/recipe.toml b/recipes/wip/libs/kf5/kf5-plasma-framework/recipe.toml new file mode 100644 index 000000000..f42423a9c --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-plasma-framework/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/plasma-framework-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-plotting/recipe.toml b/recipes/wip/libs/kf5/kf5-plotting/recipe.toml new file mode 100644 index 000000000..c0b9511cc --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-plotting/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kplotting-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-prison/recipe.toml b/recipes/wip/libs/kf5/kf5-prison/recipe.toml new file mode 100644 index 000000000..81a489049 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-prison/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplte script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/prison-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-pty/recipe.toml b/recipes/wip/libs/kf5/kf5-pty/recipe.toml new file mode 100644 index 000000000..62d809cc6 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-pty/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kpty-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-purpose/recipe.toml b/recipes/wip/libs/kf5/kf5-purpose/recipe.toml new file mode 100644 index 000000000..c5e260e2c --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-purpose/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/purpose-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-qqc2-desktop-style/recipe.toml b/recipes/wip/libs/kf5/kf5-qqc2-desktop-style/recipe.toml new file mode 100644 index 000000000..c64dcb2a4 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-qqc2-desktop-style/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/qqc2-desktop-style-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-quickcharts/recipe.toml b/recipes/wip/libs/kf5/kf5-quickcharts/recipe.toml new file mode 100644 index 000000000..5ae322741 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-quickcharts/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kquickcharts-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-runner/recipe.toml b/recipes/wip/libs/kf5/kf5-runner/recipe.toml new file mode 100644 index 000000000..18a44150f --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-runner/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/krunner-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-service/recipe.toml b/recipes/wip/libs/kf5/kf5-service/recipe.toml new file mode 100644 index 000000000..65ea3bc41 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-service/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kservice-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-solid/recipe.toml b/recipes/wip/libs/kf5/kf5-solid/recipe.toml new file mode 100644 index 000000000..3025bb028 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-solid/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/solid-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-sonnet/recipe.toml b/recipes/wip/libs/kf5/kf5-sonnet/recipe.toml new file mode 100644 index 000000000..1f9f1387a --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-sonnet/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/sonnet-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-syndication/recipe.toml b/recipes/wip/libs/kf5/kf5-syndication/recipe.toml new file mode 100644 index 000000000..a99344ea6 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-syndication/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/syndication-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-syntax-highlighting/recipe.toml b/recipes/wip/libs/kf5/kf5-syntax-highlighting/recipe.toml new file mode 100644 index 000000000..74e0dda78 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-syntax-highlighting/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/syntax-highlighting-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-sysguard/recipe.toml b/recipes/wip/libs/kf5/kf5-sysguard/recipe.toml new file mode 100644 index 000000000..3135b3be4 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-sysguard/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building, lacking build instructions +[source] +tar = "https://invent.kde.org/plasma/libksysguard/-/archive/v5.27.10/libksysguard-v5.27.10.tar.bz2" +[build] +template = "custom" diff --git a/recipes/wip/libs/kf5/kf5-texteditor/recipe.toml b/recipes/wip/libs/kf5/kf5-texteditor/recipe.toml new file mode 100644 index 000000000..f8f2ed56d --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-texteditor/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/ktexteditor-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-textwidgets/recipe.toml b/recipes/wip/libs/kf5/kf5-textwidgets/recipe.toml new file mode 100644 index 000000000..de2867210 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-textwidgets/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/ktextwidgets-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-threadweaver/recipe.toml b/recipes/wip/libs/kf5/kf5-threadweaver/recipe.toml new file mode 100644 index 000000000..3943c71c1 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-threadweaver/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/threadweaver-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-unitconversion/recipe.toml b/recipes/wip/libs/kf5/kf5-unitconversion/recipe.toml new file mode 100644 index 000000000..418bc9cd1 --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-unitconversion/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kunitconversion-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-wayland/recipe.toml b/recipes/wip/libs/kf5/kf5-wayland/recipe.toml new file mode 100644 index 000000000..b298ff58c --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-wayland/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kwayland-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-widgetaddons/recipe.toml b/recipes/wip/libs/kf5/kf5-widgetaddons/recipe.toml new file mode 100644 index 000000000..01916dc3f --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-widgetaddons/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kwidgetaddons-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-windowsystem/recipe.toml b/recipes/wip/libs/kf5/kf5-windowsystem/recipe.toml new file mode 100644 index 000000000..fb90653ad --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-windowsystem/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kwindowsystem-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf5/kf5-xmlgui/recipe.toml b/recipes/wip/libs/kf5/kf5-xmlgui/recipe.toml new file mode 100644 index 000000000..0ded2726a --- /dev/null +++ b/recipes/wip/libs/kf5/kf5-xmlgui/recipe.toml @@ -0,0 +1,20 @@ +#TODO maybe incomplete script, lacking build instructions +[source] +tar = "https://download.kde.org/stable/frameworks/5.112/kxmlgui-5.112.0.tar.xz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE="cmake" +COOKBOOK_CONFIGURE_FLAGS=( + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CROSSCOMPILING=True + -DCMAKE_EXE_LINKER_FLAGS="-static" + -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 +""" diff --git a/recipes/wip/libs/kf6/kcodecs6/recipe.toml b/recipes/wip/libs/kf6/kcodecs6/recipe.toml new file mode 100644 index 000000000..96b16e6c0 --- /dev/null +++ b/recipes/wip/libs/kf6/kcodecs6/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.kde.org/stable/frameworks/6.19/kcodecs-6.19.0.tar.xz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/kf6/ktexteditor6/recipe.toml b/recipes/wip/libs/kf6/ktexteditor6/recipe.toml new file mode 100644 index 000000000..e6ebeec0c --- /dev/null +++ b/recipes/wip/libs/kf6/ktexteditor6/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.kde.org/stable/frameworks/6.19/ktexteditor-6.19.0.tar.xz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/lua/lpeg/recipe.toml b/recipes/wip/libs/lua/lpeg/recipe.toml new file mode 100644 index 000000000..484e5b3a5 --- /dev/null +++ b/recipes/wip/libs/lua/lpeg/recipe.toml @@ -0,0 +1,15 @@ +[source] +tar = "https://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.1.0.tar.gz" + +[build] +template = "custom" +dependencies = [ + "luajit", +] +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +make linux CC="${CC} -I${COOKBOOK_SYSROOT}/include/luajit-2.1" +mkdir -p ${COOKBOOK_STAGE}/usr/lib/pkgconfig +cp lpeg.so ${COOKBOOK_STAGE}/usr/lib/liblpeg.so.1 +ln -s "liblpeg.so.1" ${COOKBOOK_STAGE}/usr/lib/liblpeg.so +""" \ No newline at end of file diff --git a/recipes/wip/libs/ml/libtorch/recipe.toml b/recipes/wip/libs/ml/libtorch/recipe.toml new file mode 100644 index 000000000..535bfaee1 --- /dev/null +++ b/recipes/wip/libs/ml/libtorch/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/pytorch/pytorch/blob/main/docs/libtorch.rst#building-libtorch-using-cmake +[source] +git = "https://github.com/pytorch/pytorch" +branch = "release/2.3" +[build] +template = "cmake" +cmakeflags = [ + "-DPYTHON_EXECUTABLE=`which python3`", + "-DCMAKE_INSTALL_PREFIX=../pytorch-install ../pytorch", +] diff --git a/recipes/wip/libs/mobile/libimobiledevice/recipe.toml b/recipes/wip/libs/mobile/libimobiledevice/recipe.toml new file mode 100644 index 000000000..6e8e44195 --- /dev/null +++ b/recipes/wip/libs/mobile/libimobiledevice/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/libimobiledevice/libimobiledevice/releases/download/1.3.0/libimobiledevice-1.3.0.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libtatsu", + "libplist", + "libusbmuxd", + "openssl1", +] diff --git a/recipes/wip/libs/mobile/libusbmuxd/recipe.toml b/recipes/wip/libs/mobile/libusbmuxd/recipe.toml new file mode 100644 index 000000000..b690aec29 --- /dev/null +++ b/recipes/wip/libs/mobile/libusbmuxd/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/libimobiledevice/libusbmuxd/releases/download/2.1.0/libusbmuxd-2.1.0.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libplist", +] diff --git a/recipes/wip/libs/mozjs/recipe.toml b/recipes/wip/libs/mozjs/recipe.toml new file mode 100644 index 000000000..1a0e60574 --- /dev/null +++ b/recipes/wip/libs/mozjs/recipe.toml @@ -0,0 +1,39 @@ +#TODO "No suitable wgpu::Adapter found" error on execution +[source] +git = "https://gitlab.redox-os.org/njskalski/mozjs.git" +branch = "redox_mods" +[build] +template = "custom" + +#these dependencies are copied from Servo recipe. Some of them may be redundant, but I needed to reproduce the build bug. +dependencies = [ + "freetype2", + "gettext", + "glib", + "gstreamer", + "harfbuzz", + "libffi", + "libiconv", + "libx11", + "libxcb", + "libpng", + "openssl1", + "pcre", + "zlib", + + "x11proto", + "x11proto-kb", + "xcb-proto", + "xextproto", + "libxau", + "libpthread-stubs", + "fontconfig", + "expat", + "gcc13", +] + +script = """ +# Build the library crates +"${COOKBOOK_REDOXER}" build --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" --workspace --release +# Library crates don't need installation, they're used as dependencies +""" diff --git a/recipes/wip/libs/net/c-ares/recipe.toml b/recipes/wip/libs/net/c-ares/recipe.toml new file mode 100644 index 000000000..299898dc3 --- /dev/null +++ b/recipes/wip/libs/net/c-ares/recipe.toml @@ -0,0 +1,6 @@ +[source] +git = "https://github.com/c-ares/c-ares" +rev = "d3a507e920e7af18a5efb7f9f1d8044ed4750013" # 1.34.5 + +[build] +template = "cmake" diff --git a/recipes/wip/libs/net/glib-networking/recipe.toml b/recipes/wip/libs/net/glib-networking/recipe.toml new file mode 100644 index 000000000..f5cb23d88 --- /dev/null +++ b/recipes/wip/libs/net/glib-networking/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://download.gnome.org/sources/glib-networking/2.80/glib-networking-2.80.1.tar.xz" +blake3 = "114a3ea41ea33d8cd01a61381b49fbf60278212ddd88c65f70c26137217be3fd" +patches = ["redox.patch"] + +[build] +template = "custom" +dependencies = [ + "glib", + "gnutls3", +] +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Ddefault_library=shared \ + -Dgnome_proxy=disabled \ + -Dlibproxy=disabled +""" diff --git a/recipes/wip/libs/net/glib-networking/redox.patch b/recipes/wip/libs/net/glib-networking/redox.patch new file mode 100644 index 000000000..b0aaeb43b --- /dev/null +++ b/recipes/wip/libs/net/glib-networking/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN source-old/tls/tests/meson.build source/tls/tests/meson.build +--- source-old/tls/tests/meson.build 2025-01-08 14:51:06.000000000 -0700 ++++ source/tls/tests/meson.build 2025-11-10 20:33:28.041098208 -0700 +@@ -40,7 +40,7 @@ + test_programs = [ + ['certificate', [], deps, [], [mock_pkcs11_module]], + ['file-database', [], deps, [], []], +- ['connection', ['mock-interaction.c'], deps, [], [mock_pkcs11_module]], ++ #TODO: RTLD_NEXT on Redox: ['connection', ['mock-interaction.c'], deps, [], [mock_pkcs11_module]], + # DTLS tests are disabled until we fix https://gitlab.gnome.org/GNOME/glib-networking/issues/49 + # ['dtls-connection', ['mock-interaction.c', 'lossy-socket.c'], deps, [], [mock_pkcs11_module]], + ] diff --git a/recipes/wip/libs/net/libfilezilla/recipe.toml b/recipes/wip/libs/net/libfilezilla/recipe.toml new file mode 100644 index 000000000..991b9a1c6 --- /dev/null +++ b/recipes/wip/libs/net/libfilezilla/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions - https://svn.filezilla-project.org/filezilla/libfilezilla/trunk/INSTALL?view=markup +[source] +tar = "https://dl2.cdn.filezilla-project.org/libfilezilla/libfilezilla-0.48.1.tar.xz?h=ABnRzj5uctW-vLCfNWW5mQ&x=1722822577" +[build] +template = "configure" +dependencies = [ + "libnettle", + "gnutls3", +] diff --git a/recipes/wip/libs/net/libidn/recipe.toml b/recipes/wip/libs/net/libidn/recipe.toml new file mode 100644 index 000000000..f99833f81 --- /dev/null +++ b/recipes/wip/libs/net/libidn/recipe.toml @@ -0,0 +1,9 @@ +#TODO fix libunistring +[source] +tar = "https://ftp.gnu.org/gnu/libidn/libidn2-2.3.7.tar.gz" +[build] +template = "configure" +dependencies = [ + "libunistring", + "libiconv", +] diff --git a/recipes/wip/libs/net/libtirpc/recipe.toml b/recipes/wip/libs/net/libtirpc/recipe.toml new file mode 100644 index 000000000..470889936 --- /dev/null +++ b/recipes/wip/libs/net/libtirpc/recipe.toml @@ -0,0 +1,15 @@ +#TODO: does not compile +[source] +tar = "https://downloads.sourceforge.net/libtirpc/libtirpc-1.3.6.tar.bz2" +blake3 = "3ca1feefee3a216bb82bba35dfb455cac8524b8d8404767b01772f3b8fd00eea" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --disable-gssapi +""" diff --git a/recipes/wip/libs/net/libtorrent/recipe.toml b/recipes/wip/libs/net/libtorrent/recipe.toml new file mode 100644 index 000000000..6568ca2f4 --- /dev/null +++ b/recipes/wip/libs/net/libtorrent/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for bbv2, see - https://libtorrent.org/building.html +[source] +tar = "https://github.com/arvidn/libtorrent/releases/download/v2.0.11/libtorrent-rasterbar-2.0.11.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/net/nghttp3/recipe.toml b/recipes/wip/libs/net/nghttp3/recipe.toml new file mode 100644 index 000000000..1a4e01f10 --- /dev/null +++ b/recipes/wip/libs/net/nghttp3/recipe.toml @@ -0,0 +1,6 @@ +[source] +git = "https://github.com/ngtcp2/nghttp3" +rev = "f3eb315feda478cdb4919720a7961c0321e1bd89" # 1.14.0 + +[build] +template = "cmake" diff --git a/recipes/wip/libs/net/ngtcp2/recipe.toml b/recipes/wip/libs/net/ngtcp2/recipe.toml new file mode 100644 index 000000000..bc31da496 --- /dev/null +++ b/recipes/wip/libs/net/ngtcp2/recipe.toml @@ -0,0 +1,14 @@ +#TODO Maybe need openssl 1.1.1 +[source] +git = "https://github.com/ngtcp2/ngtcp2" +rev = "e9fe10e0e8b3ce646fa88b4217864f29b4e013d9" # 1.14.0 + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +COOKBOOK_CMAKE_FLAGS+=( + -DENABLE_OPENSSL=OFF +) +cookbook_cmake +""" diff --git a/recipes/wip/libs/other/appstream/recipe.toml b/recipes/wip/libs/other/appstream/recipe.toml new file mode 100644 index 000000000..2508aa9ff --- /dev/null +++ b/recipes/wip/libs/other/appstream/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ximion/appstream#build--install +#TODO missing dependencies +[source] +tar = "https://www.freedesktop.org/software/appstream/releases/AppStream-1.1.1.tar.xz" +[build] +template = "meson" +dependencies = [ + "glib", + "gobject-introspection", + "libxml2", + "curl", +] diff --git a/recipes/wip/libs/other/atkmm/recipe.toml b/recipes/wip/libs/other/atkmm/recipe.toml new file mode 100644 index 000000000..903f7495e --- /dev/null +++ b/recipes/wip/libs/other/atkmm/recipe.toml @@ -0,0 +1,9 @@ +#TODO make atk work +#TODO probably wrong script, see https://gitlab.gnome.org/GNOME/atkmm +[source] +tar = "https://download.gnome.org/sources/atkmm/2.36/atkmm-2.36.2.tar.xz" +[build] +template = "configure" +dependencies = [ + "atk", +] diff --git a/recipes/wip/libs/other/aws-lc-rs/recipe.toml b/recipes/wip/libs/other/aws-lc-rs/recipe.toml new file mode 100644 index 000000000..3ef8828a3 --- /dev/null +++ b/recipes/wip/libs/other/aws-lc-rs/recipe.toml @@ -0,0 +1,15 @@ +[source] +git = "https://gitlab.redox-os.org/njskalski/aws-lc-rs.git" +branch = "redox_mods" +[build] +template = "custom" + +script = """ + # we need HOST != TARGET, because otherwise we get this error: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95189 + # by this line https://gitlab.redox-os.org/njskalski/aws-lc-rs/-/blob/main/aws-lc-sys/builder/cc_builder.rs#L493 + export HOST=x86_64-linux-gnu + + rsync -a --delete "${COOKBOOK_SOURCE}/" ./ + cargo build -p aws-lc-sys --target ${TARGET} --release + cargo build -p aws-lc-rs --target ${TARGET} --release +""" diff --git a/recipes/wip/libs/other/babl/recipe.toml b/recipes/wip/libs/other/babl/recipe.toml new file mode 100644 index 000000000..55760166f --- /dev/null +++ b/recipes/wip/libs/other/babl/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/babl/-/blob/master/INSTALL.in?ref_type=heads +[source] +tar = "https://download.gimp.org/pub/babl/0.1/babl-0.1.106.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/boost/recipe.toml b/recipes/wip/libs/other/boost/recipe.toml new file mode 100644 index 000000000..d4903267e --- /dev/null +++ b/recipes/wip/libs/other/boost/recipe.toml @@ -0,0 +1,34 @@ +# TODO: +# * Some libraries require openat or have deps that require openat +# * wchar.h needs some work before Boost is usable + +[source] +tar = "https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.gz" +blake3 = "9c6eb6bb7866aeb595e14279fcc5a5c7f2279dd41e946e14e2c3d5c1fb8358d3" + +[build] +template = "custom" +dependencies = [ + # "libicu", + # "liblzma", + # "bzip2", + # "zlib", + # "zstd", +] +script = """ +BOOST_ROOT="${COOKBOOK_STAGE}/usr" +mkdir -p "${BOOST_ROOT}" + +pushd "${COOKBOOK_SOURCE}" + +# Help the bootstrap tool detect our cross compilers +# See: https://www.boost.org/build/doc/html/bbv2/overview/configuration.html +# I'm not entirely sure which directory to place it in, so I put the conf in both +echo "using gcc : : ${TARGET}-gcc ;" >| user-config.jam +cp -v user-config.jam tools/build/src/ + +./bootstrap.sh --prefix="${BOOST_ROOT}" --with-toolset=gcc +./b2 -d2 install + +popd +""" diff --git a/recipes/wip/libs/other/bullet-physics/recipe.toml b/recipes/wip/libs/other/bullet-physics/recipe.toml new file mode 100644 index 000000000..9ebbf9300 --- /dev/null +++ b/recipes/wip/libs/other/bullet-physics/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/bulletphysics/bullet3#build-instructions-for-bullet-using-premake-you-can-also-use-cmake-instead +[source] +git = "https://github.com/bulletphysics/bullet3" +rev = "2c204c49e56ed15ec5fcfa71d199ab6d6570b3f5" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/cairomm10+/recipe.toml b/recipes/wip/libs/other/cairomm10+/recipe.toml new file mode 100644 index 000000000..81b53b051 --- /dev/null +++ b/recipes/wip/libs/other/cairomm10+/recipe.toml @@ -0,0 +1,8 @@ +#TODO patch the GNU Autotools configuration to recognize Redox +[source] +tar = "https://www.cairographics.org/releases/cairomm-1.15.5.tar.gz" +[build] +template = "configure" +dependencies = [ + "cairo", +] diff --git a/recipes/wip/libs/other/cairomm116+/recipe.toml b/recipes/wip/libs/other/cairomm116+/recipe.toml new file mode 100644 index 000000000..e0faf6d07 --- /dev/null +++ b/recipes/wip/libs/other/cairomm116+/recipe.toml @@ -0,0 +1,14 @@ +#TODO mm-common-prepare: not found +[source] +tar = "https://www.cairographics.org/releases/cairomm-1.18.0.tar.xz" +script = "./autogen.sh" +[build] +template = "custom" +dependencies = [ + "cairo", +] +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +COOKBOOK_CONFIGURE="./configure" +cookbook_configure +""" diff --git a/recipes/wip/libs/other/dcmtk/recipe.toml b/recipes/wip/libs/other/dcmtk/recipe.toml new file mode 100644 index 000000000..5ab1bfe9e --- /dev/null +++ b/recipes/wip/libs/other/dcmtk/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://git.dcmtk.org/?p=dcmtk.git;a=blob;f=INSTALL;h=97087f9a05e65040264d90027912c736958e67f3;hb=HEAD#l667 +[source] +tar = "https://dicom.offis.de/download/dcmtk/dcmtk367/dcmtk-3.6.7.tar.gz" +[build] +template = "cmake" +dependencies = [ + "libiconv", + "libicu", + "libpng", + "libxml2", + "libtiff", + "zlib", + "openjpeg", +] diff --git a/recipes/wip/libs/other/dspy/recipe.toml b/recipes/wip/libs/other/dspy/recipe.toml new file mode 100644 index 000000000..0f5ff99ad --- /dev/null +++ b/recipes/wip/libs/other/dspy/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://download.gnome.org/sources/dspy/1.2/dspy-1.2.1.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/fftw/recipe.toml b/recipes/wip/libs/other/fftw/recipe.toml new file mode 100644 index 000000000..27b4880c3 --- /dev/null +++ b/recipes/wip/libs/other/fftw/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://fftw.org/fftw-3.3.10.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/fltk13/recipe.toml b/recipes/wip/libs/other/fltk13/recipe.toml new file mode 100644 index 000000000..58fe41205 --- /dev/null +++ b/recipes/wip/libs/other/fltk13/recipe.toml @@ -0,0 +1,21 @@ +#TODO probably wrong template, see https://github.com/fltk/fltk/blob/master/README.Unix.txt +# commented out recipes are optional but recommended, needs to be determined +[source] +tar = "https://github.com/fltk/fltk/releases/download/release-1.3.11/fltk-1.3.11-source.tar.bz2" +[build] +template = "configure" +dependencies = [ + "mesa-glu", + "libx11", + "libxft", + "libxcursor", + #"freeglut", + #"cairo", + #"fontconfig", + #"glew", + #"libalsa", + #"libjpeg", + #"libpng", + #"libxinerama", + #"pango", +] diff --git a/recipes/wip/libs/other/fltk14/recipe.toml b/recipes/wip/libs/other/fltk14/recipe.toml new file mode 100644 index 000000000..b77962382 --- /dev/null +++ b/recipes/wip/libs/other/fltk14/recipe.toml @@ -0,0 +1,21 @@ +#TODO probably wrong template, see https://github.com/fltk/fltk/blob/master/README.Unix.txt +# commented out recipes are optional but recommended, needs to be determined +[source] +tar = "https://github.com/fltk/fltk/releases/download/release-1.4.4/fltk-1.4.4-source.tar.bz2" +[build] +template = "configure" +dependencies = [ + "mesa-glu", + "libx11", + "libxft", + "libxcursor", + #"freeglut", + #"cairo", + #"fontconfig", + #"glew", + #"libalsa", + #"libjpeg", + #"libpng", + #"libxinerama", + #"pango", +] diff --git a/recipes/wip/libs/other/freealut/recipe.toml b/recipes/wip/libs/other/freealut/recipe.toml new file mode 100644 index 000000000..a8f6b267c --- /dev/null +++ b/recipes/wip/libs/other/freealut/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/vancegroup/freealut#building-freealut +[source] +git = "https://github.com/vancegroup/freealut" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/freeglut/recipe.toml b/recipes/wip/libs/other/freeglut/recipe.toml new file mode 100644 index 000000000..159d39b01 --- /dev/null +++ b/recipes/wip/libs/other/freeglut/recipe.toml @@ -0,0 +1,40 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/freeglut/freeglut/releases/download/v3.4.0/freeglut-3.4.0.tar.gz" +#blake3 = "08c8874d6ddad5be4860813865d4d4e2a84c294da0f3cf82a29e43920806b0da" +[build] +dependencies = [ + "mesa", + "mesa-glu", +] +template = "custom" +script = """ +DYNAMIC_INIT +cat > redox.cmake <real, NULL); +- getrusage (RUSAGE_SELF, &r); +- t->user = r.ru_utime; +- t->sys = r.ru_stime; +-} +- + static inline struct timeval + timeval_sub (struct timeval a, struct timeval b) + { +@@ -2916,19 +2906,6 @@ timeval_sub (struct timeval a, struct timeval b) + return diff; + } + +-void +-timing_stop (struct timing *t) +-{ +- struct rusage r; +- struct timeval now; +- +- gettimeofday (&now, NULL); +- getrusage (RUSAGE_SELF, &r); +- t->real = timeval_sub (now, t->real); +- t->user = timeval_sub (r.ru_utime, t->user); +- t->sys = timeval_sub (r.ru_stime, t->sys); +-} +- + static int + argsprep (struct command *cmd, struct gdbmarglist *arglist, + struct command_param *param) +@@ -3047,22 +3024,12 @@ run_command (struct command *cmd, struct gdbmarglist *arglist) + else + cenv.fp = stdout; + +- timing_start (&tm); + rc = cmd->handler (¶m, &cenv); +- timing_stop (&tm); + if (cmd->end) + cmd->end (cenv.data); + else if (cenv.data) + free (cenv.data); + +- if (variable_is_true ("timing")) +- { +- fprintf (cenv.fp, "[%s r=%lu.%06lu u=%lu.%06lu s=%lu.%06lu]\n", +- cmd->name, +- tm.real.tv_sec, tm.real.tv_usec, +- tm.user.tv_sec, tm.user.tv_usec, +- tm.sys.tv_sec, tm.sys.tv_usec); +- } + + if (pagfp) + pclose (pagfp); diff --git a/recipes/wip/libs/other/gflags/recipe.toml b/recipes/wip/libs/other/gflags/recipe.toml new file mode 100644 index 000000000..8cd1fee75 --- /dev/null +++ b/recipes/wip/libs/other/gflags/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/gflags/gflags/blob/master/INSTALL.md#compiling-the-source-code-with-cmake +[source] +git = "https://github.com/gflags/gflags" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/glew/recipe.toml b/recipes/wip/libs/other/glew/recipe.toml new file mode 100644 index 000000000..ec0fcb39b --- /dev/null +++ b/recipes/wip/libs/other/glew/recipe.toml @@ -0,0 +1,27 @@ +# TODO Needs testing, but it compiles now + +[source] +git = "https://github.com/nigels-com/glew" +# rev = "9fb23c3e61cbd2d581e33ff7d8579b572b38ee26" + +[build] +template = "custom" +dependencies = ["mesa", "mesa-glu"] +script = """ +# Build system is a standalone Makefile +COOKBOOK_CONFIGURE="true" +COOKBOOK_CONFIGURE_FLAGS="" + +# See Makefile for variables to override +export GLEW_PREFIX="/usr" +export GLEW_DEST="/usr" +export GLEW_OSMESA +export PYTHON="python3" + +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +# The auto directory needs to be built first and can't be built in parallel +# because the Makefile creates files (using Perl and Python!!) that are needed later +"${COOKBOOK_MAKE}" -C "${COOKBOOK_BUILD}/auto" +cookbook_configure +""" diff --git a/recipes/wip/libs/other/glfw3/recipe.toml b/recipes/wip/libs/other/glfw3/recipe.toml new file mode 100644 index 000000000..610162c0b --- /dev/null +++ b/recipes/wip/libs/other/glfw3/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://www.glfw.org/docs/latest/compile.html +[source] +git = "https://github.com/glfw/glfw" +rev = "e2c92645460f680fd272fd2eed591efb2be7dc31" +[build] +template = "cmake" +dependencies = [ + "libxkbcommon", +] diff --git a/recipes/wip/libs/other/gnome2-common/recipe.toml b/recipes/wip/libs/other/gnome2-common/recipe.toml new file mode 100644 index 000000000..be6388ff0 --- /dev/null +++ b/recipes/wip/libs/other/gnome2-common/recipe.toml @@ -0,0 +1,5 @@ +#TODO probably wrong template +[source] +tar = "https://download.gnome.org/sources/gnome-common/2.34/gnome-common-2.34.0.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/gnome3-common/recipe.toml b/recipes/wip/libs/other/gnome3-common/recipe.toml new file mode 100644 index 000000000..609f094f9 --- /dev/null +++ b/recipes/wip/libs/other/gnome3-common/recipe.toml @@ -0,0 +1,5 @@ +#TODO Needs to determine the build system script +[source] +tar = "https://download.gnome.org/sources/gnome-common/3.18/gnome-common-3.18.0.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/gobject-introspection/recipe.toml b/recipes/wip/libs/other/gobject-introspection/recipe.toml new file mode 100644 index 000000000..b8aeed6b2 --- /dev/null +++ b/recipes/wip/libs/other/gobject-introspection/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz" +blake3 = "e01a810629b11b2fa415ba47d2df3ba521286e9933f6c2b364e959c26401eb96" + +[build] +template = "custom" +dependencies = [ + "cairo", + "glib", + "libffi", + "pcre2", + "python312", + "zlib", +] +script = """ +DYNAMIC_INIT +cookbook_meson -Dpython="${COOKBOOK_SYSROOT}/usr/bin/python3.12" +""" diff --git a/recipes/wip/libs/other/gpgme/recipe.toml b/recipes/wip/libs/other/gpgme/recipe.toml new file mode 100644 index 000000000..dc3d7c678 --- /dev/null +++ b/recipes/wip/libs/other/gpgme/recipe.toml @@ -0,0 +1,8 @@ +#TODO wait the fix of libgcrypt compilation +[source] +tar = "https://gnupg.org/ftp/gcrypt/gpgme/gpgme-1.20.0.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libgcrypt", +] diff --git a/recipes/wip/libs/other/hdf5/recipe.toml b/recipes/wip/libs/other/hdf5/recipe.toml new file mode 100644 index 000000000..c90f9ac71 --- /dev/null +++ b/recipes/wip/libs/other/hdf5/recipe.toml @@ -0,0 +1,9 @@ +#TODO in case of errors, see https://github.com/HDFGroup/hdf5/blob/develop/release_docs/INSTALL +[source] +tar = "https://github.com/HDFGroup/hdf5/releases/download/hdf5-1_14_3/hdf5-1_14_3.tar.gz" +[build] +template = "configure" +dependencies = [ + "zlib", + "openmpi", +] diff --git a/recipes/wip/libs/other/hwdata/recipe.toml b/recipes/wip/libs/other/hwdata/recipe.toml new file mode 100644 index 000000000..2c03f946c --- /dev/null +++ b/recipes/wip/libs/other/hwdata/recipe.toml @@ -0,0 +1,11 @@ +[source] +tar = "https://github.com/vcrhonek/hwdata/archive/refs/tags/v0.400.tar.gz" +blake3 = "d56a0863502e528025ddb84b0968a87a713365d91927c92bfe35842d47387e77" + +[build] +template = "custom" +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +COOKBOOK_CONFIGURE="./configure" +cookbook_configure +""" diff --git a/recipes/wip/libs/other/hwloc/recipe.toml b/recipes/wip/libs/other/hwloc/recipe.toml new file mode 100644 index 000000000..3982d79ef --- /dev/null +++ b/recipes/wip/libs/other/hwloc/recipe.toml @@ -0,0 +1,9 @@ +#TODO make libevdev work +[source] +tar = "https://download.open-mpi.org/release/hwloc/v2.9/hwloc-2.9.3.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libxml2", + "libevdev", +] diff --git a/recipes/wip/libs/other/imlib2/recipe.toml b/recipes/wip/libs/other/imlib2/recipe.toml new file mode 100644 index 000000000..9c54f870d --- /dev/null +++ b/recipes/wip/libs/other/imlib2/recipe.toml @@ -0,0 +1,28 @@ +#TODO compilation error - unknown type name "sigjmp_buf" +[source] +tar = "https://downloads.sourceforge.net/project/enlightenment/imlib2-src/1.12.5/imlib2-1.12.5.tar.xz" +blake3 = "535b6a986538295af5194e81281a11a1d7e79ae518959ca434f1e53bfa67e86d" +patches = ["redox.patch"] +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "freetype2", + "libjpeg", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "x11proto", + "zlib", +] +script = """ +DYNAMIC_INIT +cookbook_configure --without-x-shm-fd +""" diff --git a/recipes/wip/libs/other/imlib2/redox.patch b/recipes/wip/libs/other/imlib2/redox.patch new file mode 100644 index 000000000..eb82e68ba --- /dev/null +++ b/recipes/wip/libs/other/imlib2/redox.patch @@ -0,0 +1,104 @@ +diff -ruwN '--exclude=Makefile.in' source-old/src/lib/x11_grab.c source/src/lib/x11_grab.c +--- source-old/src/lib/x11_grab.c 2024-12-24 07:45:18.000000000 -0700 ++++ source/src/lib/x11_grab.c 2025-10-30 12:54:08.011156248 -0600 +@@ -4,8 +4,10 @@ + #include + #include + #include ++#if !defined(__redox__) + #include + #include ++#endif + + #include "x11_grab.h" + #include "x11_ximage.h" +diff -ruwN '--exclude=Makefile.in' source-old/src/lib/x11_rend.c source/src/lib/x11_rend.c +--- source-old/src/lib/x11_rend.c 2025-04-06 07:16:45.000000000 -0600 ++++ source/src/lib/x11_rend.c 2025-10-30 12:55:57.324410357 -0600 +@@ -474,20 +474,24 @@ + gcm = XCreateGC(x11->dpy, m, GCGraphicsExposures, &gcv); + } + /* write the mask */ ++#if !defined(__redox__) + if (shm) + /* write shm XImage */ + XShmPutImage(x11->dpy, m, gcm, mxim, 0, 0, dx, dy, dw, dh, False); + /* write regular XImage */ + else ++#endif + XPutImage(x11->dpy, m, gcm, mxim, 0, 0, dx, dy, dw, dh); + } + + /* write the image */ ++#if !defined(__redox__) + if (shm) + /* write shm XImage */ + XShmPutImage(x11->dpy, w, gc, xim, 0, 0, dx, dy, dw, dh, False); + /* write regular XImage */ + else ++#endif + XPutImage(x11->dpy, w, gc, xim, 0, 0, dx, dy, dw, dh); + + /* free the XImage and put onto our free list */ +diff -ruwN '--exclude=Makefile.in' source-old/src/lib/x11_ximage.c source/src/lib/x11_ximage.c +--- source-old/src/lib/x11_ximage.c 2024-01-02 06:11:28.000000000 -0700 ++++ source/src/lib/x11_ximage.c 2025-10-30 12:57:02.128925585 -0600 +@@ -11,8 +11,10 @@ + #include + #include + #endif ++#if !defined(__redox__) + #include + #include ++#endif + + #include "x11_ximage.h" + +@@ -56,6 +58,7 @@ + int val; + + /* if its there set x_does_shm flag */ ++#if !defined(__redox__) + if (XShmQueryExtension(d)) + { + #ifdef HAVE_X11_SHM_FD +@@ -72,6 +75,7 @@ + } + /* clear the flag - no shm at all */ + else ++#endif + { + x_does_shm = 0; + return; +@@ -121,6 +125,7 @@ + return NULL; + + /* try create an shm image */ ++#if !defined(__redox__) + xim = XShmCreateImage(x11->dpy, x11->vis, depth, ZPixmap, NULL, si, w, h); + if (!xim) + return NULL; +@@ -230,6 +235,7 @@ + shmctl(si->shmid, IPC_RMID, 0); + } + } ++#endif + + /* couldnt create SHM image ? */ + /* destroy previous image */ +@@ -243,6 +249,7 @@ + XShmSegmentInfo *si) + { + XSync(x11->dpy, False); ++#if !defined(__redox__) + XShmDetach(x11->dpy, si); + #ifdef HAVE_X11_SHM_FD + if (x_does_shm_fd) +@@ -255,6 +262,7 @@ + shmdt(si->shmaddr); + shmctl(si->shmid, IPC_RMID, 0); + } ++#endif + XDestroyImage(xim); + } + diff --git a/recipes/wip/libs/other/inih/recipe.toml b/recipes/wip/libs/other/inih/recipe.toml new file mode 100644 index 000000000..5ac3bfdfb --- /dev/null +++ b/recipes/wip/libs/other/inih/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/benhoyt/inih#meson-notes +[source] +git = "https://github.com/benhoyt/inih" +rev = "9cecf0643da0846e77f64d10a126d9f48b9e05e8" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/iniparser/recipe.toml b/recipes/wip/libs/other/iniparser/recipe.toml new file mode 100644 index 000000000..14630337b --- /dev/null +++ b/recipes/wip/libs/other/iniparser/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for a "make", see https://github.com/ndevilla/iniparser#ii---building-project +[source] +git = "https://github.com/ndevilla/iniparser" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/json-c/recipe.toml b/recipes/wip/libs/other/json-c/recipe.toml new file mode 100644 index 000000000..b9f8853b8 --- /dev/null +++ b/recipes/wip/libs/other/json-c/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/json-c/json-c#build-instructions-- +[source] +git = "https://github.com/json-c/json-c" +rev = "b4c371fa0cbc4dcbaccc359ce9e957a22988fb34" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/json-glib/recipe.toml b/recipes/wip/libs/other/json-glib/recipe.toml new file mode 100644 index 000000000..e0da7d376 --- /dev/null +++ b/recipes/wip/libs/other/json-glib/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/json-glib/#build-and-installation +[source] +tar = "https://download.gnome.org/sources/json-glib/1.8/json-glib-1.8.0.tar.xz" +[build] +template = "meson" +dependencies = [ + "glib", +] diff --git a/recipes/wip/libs/other/jsonrpc-glib/recipe.toml b/recipes/wip/libs/other/jsonrpc-glib/recipe.toml new file mode 100644 index 000000000..8ba494112 --- /dev/null +++ b/recipes/wip/libs/other/jsonrpc-glib/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/jsonrpc-glib#building +[source] +tar = "https://download.gnome.org/sources/jsonrpc-glib/3.44/jsonrpc-glib-3.44.0.tar.xz" +[build] +template = "meson" +dependencies = [ + "glib", +] diff --git a/recipes/wip/libs/other/kerberos5/recipe.toml b/recipes/wip/libs/other/kerberos5/recipe.toml new file mode 100644 index 000000000..b54d36e53 --- /dev/null +++ b/recipes/wip/libs/other/kerberos5/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building, lacking build instructions +[source] +tar = "https://kerberos.org/dist/krb5/1.21/krb5-1.21.2.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/lame/recipe.toml b/recipes/wip/libs/other/lame/recipe.toml new file mode 100644 index 000000000..3464919c3 --- /dev/null +++ b/recipes/wip/libs/other/lame/recipe.toml @@ -0,0 +1,5 @@ +#TODO The redox target is not supported on the configure script +[source] +tar = "https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/lammps/recipe.toml b/recipes/wip/libs/other/lammps/recipe.toml new file mode 100644 index 000000000..369e77267 --- /dev/null +++ b/recipes/wip/libs/other/lammps/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://docs.lammps.org/Build_cmake.html +[source] +git = "https://github.com/lammps/lammps" +rev = "27e8d0f19cfd60ff513828af74d07d2c8f3c4451" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/lib2geom/recipe.toml b/recipes/wip/libs/other/lib2geom/recipe.toml new file mode 100644 index 000000000..b87f17ba2 --- /dev/null +++ b/recipes/wip/libs/other/lib2geom/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/inkscape/lib2geom#building +[source] +git = "https://gitlab.com/inkscape/lib2geom" +rev = "18fc32f9972dfaee597055b3226c5b7ef3bfbb4c" +[build] +template = "cmake" +dependencies = [ + "boost", + "libgsl", + "glib", + "cairo", +] diff --git a/recipes/wip/libs/other/liba52/recipe.toml b/recipes/wip/libs/other/liba52/recipe.toml new file mode 100644 index 000000000..bc324e0b2 --- /dev/null +++ b/recipes/wip/libs/other/liba52/recipe.toml @@ -0,0 +1,5 @@ +#TODO The redox target is not supported on the configure script +[source] +tar = "https://liba52.sourceforge.io/files/a52dec-0.7.4.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libadwaita/recipe.toml b/recipes/wip/libs/other/libadwaita/recipe.toml new file mode 100644 index 000000000..b48885f6e --- /dev/null +++ b/recipes/wip/libs/other/libadwaita/recipe.toml @@ -0,0 +1,6 @@ +#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" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/libaio/recipe.toml b/recipes/wip/libs/other/libaio/recipe.toml new file mode 100644 index 000000000..60911d075 --- /dev/null +++ b/recipes/wip/libs/other/libaio/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "make", see https://pagure.io/libaio/blob/master/f/INSTALL +[source] +tar = "https://releases.pagure.org/libaio/libaio-0.3.113.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libaom/recipe.toml b/recipes/wip/libs/other/libaom/recipe.toml new file mode 100644 index 000000000..b174ee2e0 --- /dev/null +++ b/recipes/wip/libs/other/libaom/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://aomedia.googlesource.com/aom/#basic-build +[source] +git = "https://aomedia.googlesource.com/aom" +rev = "aca387522ccc0a1775716923d5489dd2d4b1e628" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libargon2/recipe.toml b/recipes/wip/libs/other/libargon2/recipe.toml new file mode 100644 index 000000000..c65d5ab30 --- /dev/null +++ b/recipes/wip/libs/other/libargon2/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "make", see https://github.com/P-H-C/phc-winner-argon2#usage +[source] +git = "https://github.com/P-H-C/phc-winner-argon2" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libart/recipe.toml b/recipes/wip/libs/other/libart/recipe.toml new file mode 100644 index 000000000..3d82494fd --- /dev/null +++ b/recipes/wip/libs/other/libart/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize the Redox target +[source] +tar = "https://download.gnome.org/sources/libart_lgpl/2.3/libart_lgpl-2.3.21.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libaspell/recipe.toml b/recipes/wip/libs/other/libaspell/recipe.toml new file mode 100644 index 000000000..8b07b9a6d --- /dev/null +++ b/recipes/wip/libs/other/libaspell/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize Redox target +[source] +tar = "https://ftp.gnu.org/gnu/aspell/aspell-0.60.8.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libass/recipe.toml b/recipes/wip/libs/other/libass/recipe.toml new file mode 100644 index 000000000..b4e8f9a39 --- /dev/null +++ b/recipes/wip/libs/other/libass/recipe.toml @@ -0,0 +1,25 @@ +[source] +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 +""" + +[build] +dependencies = [ + "expat", + "fontconfig", + "freetype2", + "fribidi", + "glib", + "harfbuzz", + "libpng", + "pcre2", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --disable-asm +""" diff --git a/recipes/wip/libs/other/libatomic-ops/recipe.toml b/recipes/wip/libs/other/libatomic-ops/recipe.toml new file mode 100644 index 000000000..80fbbf3a3 --- /dev/null +++ b/recipes/wip/libs/other/libatomic-ops/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://github.com/ivmai/libatomic_ops/releases/download/v7.8.0/libatomic_ops-7.8.0.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libbluray/recipe.toml b/recipes/wip/libs/other/libbluray/recipe.toml new file mode 100644 index 000000000..169f3e638 --- /dev/null +++ b/recipes/wip/libs/other/libbluray/recipe.toml @@ -0,0 +1,13 @@ +#TODO compilation error +[source] +tar = "https://download.videolan.org/pub/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libxml2", + "freetype2", + "zlib", + "libpng", + "fontconfig", + "expat", +] diff --git a/recipes/wip/libs/other/libbotan/recipe.toml b/recipes/wip/libs/other/libbotan/recipe.toml new file mode 100644 index 000000000..e7d29598b --- /dev/null +++ b/recipes/wip/libs/other/libbotan/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building +[source] +tar = "https://botan.randombit.net/releases/Botan-3.2.0.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libbrotli/recipe.toml b/recipes/wip/libs/other/libbrotli/recipe.toml new file mode 100644 index 000000000..ea24704bd --- /dev/null +++ b/recipes/wip/libs/other/libbrotli/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/google/brotli#cmake +[source] +git = "https://github.com/google/brotli" +rev = "ed738e842d2fbdf2d6459e39267a633c4a9b2f5d" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libbsd/recipe.toml b/recipes/wip/libs/other/libbsd/recipe.toml new file mode 100644 index 000000000..ec62ca5d0 --- /dev/null +++ b/recipes/wip/libs/other/libbsd/recipe.toml @@ -0,0 +1,5 @@ +#TODO Can't find required MD5 functions in "libc" or "libmd" +[source] +tar = "https://libbsd.freedesktop.org/releases/libbsd-0.11.7.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libburn/recipe.toml b/recipes/wip/libs/other/libburn/recipe.toml new file mode 100644 index 000000000..d31d959d4 --- /dev/null +++ b/recipes/wip/libs/other/libburn/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "http://files.libburnia-project.org/releases/libburn-1.5.4.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libcaca/recipe.toml b/recipes/wip/libs/other/libcaca/recipe.toml new file mode 100644 index 000000000..651250de4 --- /dev/null +++ b/recipes/wip/libs/other/libcaca/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize Redox target +[source] +tar = "http://caca.zoy.org/files/libcaca/libcaca-0.99.beta19.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libcamera/recipe.toml b/recipes/wip/libs/other/libcamera/recipe.toml new file mode 100644 index 000000000..c52109d67 --- /dev/null +++ b/recipes/wip/libs/other/libcamera/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://libcamera.org/getting-started.html +[source] +git = "https://git.libcamera.org/libcamera/libcamera" +[build] +template = "meson" +dependencies = [ + "libyaml", + "libevdev", + "gstreamer", + "libjpeg", + "sdl2", +] diff --git a/recipes/wip/libs/other/libcap/recipe.toml b/recipes/wip/libs/other/libcap/recipe.toml new file mode 100644 index 000000000..8426663a1 --- /dev/null +++ b/recipes/wip/libs/other/libcap/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "make" (maybe need the Go), see https://git.kernel.org/pub/scm/libs/libcap/libcap.git/tree/README#n20 +[source] +tar = "https://kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.69.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libcdio-paranoia/recipe.toml b/recipes/wip/libs/other/libcdio-paranoia/recipe.toml new file mode 100644 index 000000000..71b44b421 --- /dev/null +++ b/recipes/wip/libs/other/libcdio-paranoia/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for building +[source] +git = "https://github.com/rocky/libcdio-paranoia" +rev = "db4dfff9e11c516ae35d87e568f511002ddae9d7" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libcdio/recipe.toml b/recipes/wip/libs/other/libcdio/recipe.toml new file mode 100644 index 000000000..6ac595527 --- /dev/null +++ b/recipes/wip/libs/other/libcdio/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for building, see https://git.savannah.gnu.org/cgit/libcdio.git/tree/INSTALL +[source] +git = "https://git.savannah.gnu.org/git/libcdio.git" +rev = "9c7a2779846da161279bc1501e83c849cf89a594" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libcdr/recipe.toml b/recipes/wip/libs/other/libcdr/recipe.toml new file mode 100644 index 000000000..61e163559 --- /dev/null +++ b/recipes/wip/libs/other/libcdr/recipe.toml @@ -0,0 +1,12 @@ +#TODO make all dependencies work +[source] +tar = "https://dev-www.libreoffice.org/src/libcdr/libcdr-0.1.7.tar.xz" +[build] +template = "configure" +dependencies = [ + "boost", + "libicu", + "liblcms", + "librevenge", + "zlib", +] diff --git a/recipes/wip/libs/other/libcpuid/recipe.toml b/recipes/wip/libs/other/libcpuid/recipe.toml new file mode 100644 index 000000000..b3eb91124 --- /dev/null +++ b/recipes/wip/libs/other/libcpuid/recipe.toml @@ -0,0 +1,6 @@ +#TODO libtool error +# require a POSIX-compatible shell, see https://github.com/anrieff/libcpuid#prerequisites +[source] +tar = "https://github.com/anrieff/libcpuid/releases/download/v0.6.4/libcpuid-0.6.4.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libcups/recipe.toml b/recipes/wip/libs/other/libcups/recipe.toml new file mode 100644 index 000000000..d4137cf10 --- /dev/null +++ b/recipes/wip/libs/other/libcups/recipe.toml @@ -0,0 +1,8 @@ +#TODO make gnutls work +[source] +tar = "https://github.com/OpenPrinting/cups/releases/download/v2.4.7/cups-2.4.7-source.tar.gz" +[build] +template = "configure" +dependencies = [ + "gnutls3", +] diff --git a/recipes/wip/libs/other/libde265/recipe.toml b/recipes/wip/libs/other/libde265/recipe.toml new file mode 100644 index 000000000..a8a013c28 --- /dev/null +++ b/recipes/wip/libs/other/libde265/recipe.toml @@ -0,0 +1,12 @@ +#TODO compilation error +[source] +tar = "https://github.com/strukturag/libde265/releases/download/v1.0.14/libde265-1.0.14.tar.gz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-dec265 + --disable-sherlock265 +) +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libdecor/recipe.toml b/recipes/wip/libs/other/libdecor/recipe.toml new file mode 100644 index 000000000..75aad337f --- /dev/null +++ b/recipes/wip/libs/other/libdecor/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.freedesktop.org/libdecor/libdecor#build--install +[source] +tar = "https://gitlab.freedesktop.org/libdecor/libdecor/uploads/ee5ef0f2c3a4743e8501a855d61cb397/libdecor-0.1.1.tar.xz" +[build] +template = "meson" +dependencies = [ + "pango", + "libwayland", +] diff --git a/recipes/wip/libs/other/libdeflate/recipe.toml b/recipes/wip/libs/other/libdeflate/recipe.toml new file mode 100644 index 000000000..f3b2e7907 --- /dev/null +++ b/recipes/wip/libs/other/libdeflate/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ebiggers/libdeflate#building +[source] +tar = "https://github.com/ebiggers/libdeflate/releases/download/v1.19/libdeflate-1.19.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libdex/recipe.toml b/recipes/wip/libs/other/libdex/recipe.toml new file mode 100644 index 000000000..416794ff3 --- /dev/null +++ b/recipes/wip/libs/other/libdex/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/libdex#building +[source] +tar = "https://download.gnome.org/sources/libdex/0.4/libdex-0.4.1.tar.xz" +[build] +template = "meson" +dependencies = [ + "glib", +] diff --git a/recipes/wip/libs/other/libdmx/recipe.toml b/recipes/wip/libs/other/libdmx/recipe.toml new file mode 100644 index 000000000..240e2b355 --- /dev/null +++ b/recipes/wip/libs/other/libdmx/recipe.toml @@ -0,0 +1,5 @@ +#TODO xorg-macros package not found +[source] +tar = "https://www.x.org/releases/individual/lib/libdmx-1.1.5.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libdotconf/recipe.toml b/recipes/wip/libs/other/libdotconf/recipe.toml new file mode 100644 index 000000000..e8fa00624 --- /dev/null +++ b/recipes/wip/libs/other/libdotconf/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing "configure" file, see https://github.com/williamh/dotconf/blob/master/INSTALL +[source] +git = "https://github.com/williamh/dotconf" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libdouble-conversion/recipe.toml b/recipes/wip/libs/other/libdouble-conversion/recipe.toml new file mode 100644 index 000000000..97747a356 --- /dev/null +++ b/recipes/wip/libs/other/libdouble-conversion/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for building, see https://github.com/google/double-conversion#building +[source] +git = "https://github.com/google/double-conversion" +rev = "4f7a25d8ced8c7cf6eee6fd09d6788eaa23c9afe" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libdvbpsi/recipe.toml b/recipes/wip/libs/other/libdvbpsi/recipe.toml new file mode 100644 index 000000000..4a6306c88 --- /dev/null +++ b/recipes/wip/libs/other/libdvbpsi/recipe.toml @@ -0,0 +1,5 @@ +#TODO Compilation error +[source] +tar = "https://download.videolan.org/pub/libdvbpsi/1.3.3/libdvbpsi-1.3.3.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libdvdcss/recipe.toml b/recipes/wip/libs/other/libdvdcss/recipe.toml new file mode 100644 index 000000000..62353687d --- /dev/null +++ b/recipes/wip/libs/other/libdvdcss/recipe.toml @@ -0,0 +1,5 @@ +#TODO Compilation error +[source] +tar = "https://download.videolan.org/pub/libdvdcss/1.4.3/libdvdcss-1.4.3.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libdvdnav/recipe.toml b/recipes/wip/libs/other/libdvdnav/recipe.toml new file mode 100644 index 000000000..f785c1040 --- /dev/null +++ b/recipes/wip/libs/other/libdvdnav/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize Redox target +[source] +tar = "http://www.videolan.org/pub/videolan/libdvdnav/5.0.1/libdvdnav-5.0.1.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libdvdread/recipe.toml b/recipes/wip/libs/other/libdvdread/recipe.toml new file mode 100644 index 000000000..cab3ed444 --- /dev/null +++ b/recipes/wip/libs/other/libdvdread/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize Redox target +[source] +tar = "http://www.videolan.org/pub/videolan/libdvdread/5.0.0/libdvdread-5.0.0.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libebml/recipe.toml b/recipes/wip/libs/other/libebml/recipe.toml new file mode 100644 index 000000000..886d0e64d --- /dev/null +++ b/recipes/wip/libs/other/libebml/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Matroska-Org/libebml#building-and-installing +[source] +tar = "https://dl.matroska.org/downloads/libebml/libebml-1.4.4.tar.xz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libedit/recipe.toml b/recipes/wip/libs/other/libedit/recipe.toml new file mode 100644 index 000000000..62d169b81 --- /dev/null +++ b/recipes/wip/libs/other/libedit/recipe.toml @@ -0,0 +1,13 @@ +#TODO promote +[source] +tar = "https://www.thrysoee.dk/editline/libedit-20250104-3.1.tar.gz" +patches = [ + "redox.patch" +] +[build] +template = "configure" +dependencies = [ + "ncurses", + "termcap", + "terminfo", +] diff --git a/recipes/wip/libs/other/libedit/redox.patch b/recipes/wip/libs/other/libedit/redox.patch new file mode 100644 index 000000000..5a699f2a1 --- /dev/null +++ b/recipes/wip/libs/other/libedit/redox.patch @@ -0,0 +1,99 @@ +diff --color -ruwN source/configure source-new/configure +--- source/configure 2025-01-05 00:16:30.000000000 +0700 ++++ source-new/configure 2025-09-18 06:50:23.667443238 +0700 +@@ -6384,7 +6384,7 @@ + ;; + + # This must be glibc/ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | redox*) + lt_cv_deplibs_check_method=pass_all + ;; + +@@ -7715,7 +7715,7 @@ + ;; + + x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +-s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*) ++s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu**|x86_64-redox*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when +@@ -7734,7 +7734,7 @@ + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; +- x86_64-*linux*|x86_64-gnu*) ++ x86_64-*linux*|x86_64-gnu*|x86_64-redox*) + case `$FILECMD conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" +@@ -7763,7 +7763,7 @@ + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; +- x86_64-*linux*|x86_64-gnu*) ++ x86_64-*linux*|x86_64-gnu*|x86_64-*redox*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) +@@ -12168,7 +12168,7 @@ + ;; + + # This must be glibc/ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | redox*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no +diff --color -ruwN source/src/chartype.h source-new/src/chartype.h +--- source/src/chartype.h 2022-06-11 14:57:59.000000000 +0700 ++++ source-new/src/chartype.h 2025-09-18 06:38:37.401509690 +0700 +@@ -39,7 +39,8 @@ + !(defined(__APPLE__) && defined(__MACH__)) && \ + !defined(__OpenBSD__) && \ + !defined(__FreeBSD__) && \ +- !defined(__DragonFly__) ++ !defined(__DragonFly__) && \ ++ !defined(__redox__) + #ifndef __STDC_ISO_10646__ + /* In many places it is assumed that the first 127 code points are ASCII + * compatible, so ensure wchar_t indeed does ISO 10646 and not some other +diff --color -ruwN source/src/editline/readline.h source-new/src/editline/readline.h +--- source/src/editline/readline.h 2023-08-27 14:25:53.000000000 +0700 ++++ source-new/src/editline/readline.h 2025-09-18 06:41:15.169232816 +0700 +@@ -78,7 +78,7 @@ + + #ifndef CTRL + #include +-#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) ++#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) && !defined(__redox__) + #include + #endif + #ifndef CTRL +diff --color -ruwN source/src/sys.h source-new/src/sys.h +--- source/src/sys.h 2024-08-09 01:03:34.000000000 +0700 ++++ source-new/src/sys.h 2025-09-18 06:40:02.388537017 +0700 +@@ -116,10 +116,6 @@ + typedef unsigned int u_int32_t; + #endif + +-#ifndef HAVE_SIZE_MAX +-#define SIZE_MAX ((size_t)-1) +-#endif +- + #define REGEX /* Use POSIX.2 regular expression functions */ + #undef REGEXP /* Use UNIX V8 regular expression functions */ + +diff --color -ruwN source/src/wcsdup.c source-new/src/wcsdup.c +--- source/src/wcsdup.c 2022-06-11 14:57:59.000000000 +0700 ++++ source-new/src/wcsdup.c 2025-09-18 06:44:01.365917599 +0700 +@@ -11,7 +11,7 @@ + * code is also granted without any restrictions. + */ + +-#ifndef HAVE_WCSDUP ++#if !defined(HAVE_WCSDUP) && !defined(__redox__) + + #include "config.h" + diff --git a/recipes/wip/libs/other/libeditline/recipe.toml b/recipes/wip/libs/other/libeditline/recipe.toml new file mode 100644 index 000000000..1cbc13cd2 --- /dev/null +++ b/recipes/wip/libs/other/libeditline/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://ftp.troglobit.com/editline/editline-1.17.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libeigen/recipe.toml b/recipes/wip/libs/other/libeigen/recipe.toml new file mode 100644 index 000000000..7167c7a9f --- /dev/null +++ b/recipes/wip/libs/other/libeigen/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/libeigen/eigen/-/blob/master/INSTALL?ref_type=heads +[source] +git = "https://gitlab.com/libeigen/eigen" +rev = "3147391d946bb4b6c68edd901f2add6ac1f31f8c" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libenet/recipe.toml b/recipes/wip/libs/other/libenet/recipe.toml new file mode 100644 index 000000000..b2747475b --- /dev/null +++ b/recipes/wip/libs/other/libenet/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "http://enet.bespin.org/download/enet-1.3.17.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libepoxy/recipe.toml b/recipes/wip/libs/other/libepoxy/recipe.toml new file mode 100644 index 000000000..d77fc9cb1 --- /dev/null +++ b/recipes/wip/libs/other/libepoxy/recipe.toml @@ -0,0 +1,26 @@ +[source] +tar = "https://download.gnome.org/sources/libepoxy/1.5/libepoxy-1.5.10.tar.xz" +blake3 = "0ccee9635115fe417cfc4bc33ffd160bf1e2852bd6c03816b4af771d59462f53" +patches = ["redox.patch"] + +[build] +template = "custom" +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "libxxf86vm", + "mesa-x11", + "x11proto", + "zlib", +] +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Degl=yes \ + -Dglx=yes \ + -Dtests=false +""" diff --git a/recipes/wip/libs/other/libepoxy/redox.patch b/recipes/wip/libs/other/libepoxy/redox.patch new file mode 100644 index 000000000..58a5f96b1 --- /dev/null +++ b/recipes/wip/libs/other/libepoxy/redox.patch @@ -0,0 +1,18 @@ +diff -ruwN libepoxy-1.5.10/src/dispatch_common.c source/src/dispatch_common.c +--- libepoxy-1.5.10/src/dispatch_common.c 2022-02-17 05:56:12.000000000 -0700 ++++ source/src/dispatch_common.c 2025-05-04 17:57:31.910921783 -0600 +@@ -264,13 +264,7 @@ + long begin_count; + }; + +-static struct api api = { +-#ifndef _WIN32 +- .mutex = PTHREAD_MUTEX_INITIALIZER, +-#else +- 0, +-#endif +-}; ++static struct api api = {0}; + + static bool library_initialized; + diff --git a/recipes/wip/libs/other/liberty-eiffel/recipe.toml b/recipes/wip/libs/other/liberty-eiffel/recipe.toml new file mode 100644 index 000000000..e203558e0 --- /dev/null +++ b/recipes/wip/libs/other/liberty-eiffel/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "install.sh", adapt to Redox +[source] +tar = "http://download.savannah.gnu.org/releases/liberty-eiffel/bell.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libev/recipe.toml b/recipes/wip/libs/other/libev/recipe.toml new file mode 100644 index 000000000..bb0268117 --- /dev/null +++ b/recipes/wip/libs/other/libev/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://dist.schmorp.de/libev/libev-4.33.tar.gz" +blake3 = "d56e7f06baa52d5068b6184a307cf27c32f71b60e13d98ee6d4d9c1786393424" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libevdev/recipe.toml b/recipes/wip/libs/other/libevdev/recipe.toml new file mode 100644 index 000000000..841f7f26f --- /dev/null +++ b/recipes/wip/libs/other/libevdev/recipe.toml @@ -0,0 +1,7 @@ +#TODO compilation error +[source] +tar = "https://www.freedesktop.org/software/libevdev/libevdev-1.12.1.tar.xz" +blake3 = "d4be83e6f6cb4972cf5052f5a046eb820aa529427202f043a9d95b945e73edcd" + +[build] +template = "meson" diff --git a/recipes/wip/libs/other/libevent/recipe.toml b/recipes/wip/libs/other/libevent/recipe.toml new file mode 100644 index 000000000..669ef8eb2 --- /dev/null +++ b/recipes/wip/libs/other/libevent/recipe.toml @@ -0,0 +1,19 @@ +#TODO compiles, not tested +[source] +tar = "https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +DYNAMIC_INIT +# Can't call `cookbook_configure` because it sets DESTDIR (which causes an error) +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install +""" diff --git a/recipes/wip/libs/other/libevent/redox.patch b/recipes/wip/libs/other/libevent/redox.patch new file mode 100644 index 000000000..5fbd6844f --- /dev/null +++ b/recipes/wip/libs/other/libevent/redox.patch @@ -0,0 +1,26 @@ +diff -u --recursive orig/event_tagging.c modified/event_tagging.c +--- orig/event_tagging.c 2019-02-10 21:26:04.000000000 +0000 ++++ modified/event_tagging.c 2024-11-17 14:14:19.474910364 +0000 +@@ -54,9 +54,6 @@ + #include + #include + #include +-#ifndef _WIN32 +-#include +-#endif + #ifdef EVENT__HAVE_UNISTD_H + #include + #endif +diff -u --recursive orig/http.c modified/http.c +--- orig/http.c 2020-07-05 13:01:34.000000000 +0100 ++++ modified/http.c 2024-11-17 14:14:10.834742812 +0000 +@@ -83,9 +83,6 @@ + #include + #include + #include +-#ifndef _WIN32 +-#include +-#endif /* !_WIN32 */ + #include + #ifdef EVENT__HAVE_UNISTD_H + #include diff --git a/recipes/wip/libs/other/libfmt/recipe.toml b/recipes/wip/libs/other/libfmt/recipe.toml new file mode 100644 index 000000000..718baa3c4 --- /dev/null +++ b/recipes/wip/libs/other/libfmt/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://fmt.dev/latest/usage.html#building-the-library +[source] +git = "https://github.com/fmtlib/fmt" +rev = "f5e54359df4c26b6230fc61d38aa294581393084" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libfs/recipe.toml b/recipes/wip/libs/other/libfs/recipe.toml new file mode 100644 index 000000000..2e1e7cc3f --- /dev/null +++ b/recipes/wip/libs/other/libfs/recipe.toml @@ -0,0 +1,5 @@ +#TODO xorg-macros package not found +[source] +tar = "https://www.x.org/releases/individual/lib/libFS-1.0.9.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libfuse2/recipe.toml b/recipes/wip/libs/other/libfuse2/recipe.toml new file mode 100644 index 000000000..e17f98df9 --- /dev/null +++ b/recipes/wip/libs/other/libfuse2/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/libfuse/libfuse#installation +#TODO require a redox daemon (userspace equivalent of the Linux kernel module) +[source] +tar = "https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/fuse-2.9.9.tar.gz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/libfuse3/recipe.toml b/recipes/wip/libs/other/libfuse3/recipe.toml new file mode 100644 index 000000000..8cd145ee5 --- /dev/null +++ b/recipes/wip/libs/other/libfuse3/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/libfuse/libfuse#installation +#TODO require a redox daemon (userspace equivalent of the Linux kernel module) +[source] +tar = "https://github.com/libfuse/libfuse/releases/download/fuse-3.16.2/fuse-3.16.2.tar.gz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/libgav1/recipe.toml b/recipes/wip/libs/other/libgav1/recipe.toml new file mode 100644 index 000000000..37e502a1e --- /dev/null +++ b/recipes/wip/libs/other/libgav1/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://chromium.googlesource.com/codecs/libgav1/#compile +[source] +git = "https://chromium.googlesource.com/codecs/libgav1" +rev = "e386d8f1fb983200972d159b9be47fd5d0776708" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libgc/recipe.toml b/recipes/wip/libs/other/libgc/recipe.toml new file mode 100644 index 000000000..37b45eb65 --- /dev/null +++ b/recipes/wip/libs/other/libgc/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error - pthreads not supported by the GC on this platform +[source] +tar = "https://www.hboehm.info/gc/gc_source/gc-8.2.4.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libgcrypt/recipe.toml b/recipes/wip/libs/other/libgcrypt/recipe.toml new file mode 100644 index 000000000..c02dd88d9 --- /dev/null +++ b/recipes/wip/libs/other/libgcrypt/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.1.tar.bz2" +blake3 = "68844e12b92960d66c4ce85a4c3db1df8377b232980f1218b4c5d904e9c02511" +patches = ["redox.patch"] +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = ["libgpg-error"] +template = "custom" +script = """ +DYNAMIC_INIT +export GPGRT_CONFIG="${COOKBOOK_SYSROOT}/usr/bin/gpgrt-config" +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libgcrypt/redox.patch b/recipes/wip/libs/other/libgcrypt/redox.patch new file mode 100644 index 000000000..4ac898dc8 --- /dev/null +++ b/recipes/wip/libs/other/libgcrypt/redox.patch @@ -0,0 +1,20 @@ +--- libgcrypt-1.11.1/tests/stopwatch.h 2025-03-17 03:55:24.000000000 -0600 ++++ source/tests/stopwatch.h 2025-05-10 08:42:52.113921935 -0600 +@@ -45,6 +45,8 @@ + &started_at.creation_time, &started_at.exit_time, + &started_at.kernel_time, &started_at.user_time); + stopped_at = started_at; ++#elif defined(__redox__) ++ //TODO: times on redox + #else + struct tms tmp; + +@@ -60,6 +62,8 @@ + GetProcessTimes (GetCurrentProcess (), + &stopped_at.creation_time, &stopped_at.exit_time, + &stopped_at.kernel_time, &stopped_at.user_time); ++#elif defined(__redox__) ++ //TODO: times on redox + #else + struct tms tmp; + diff --git a/recipes/wip/libs/other/libgdal/recipe.toml b/recipes/wip/libs/other/libgdal/recipe.toml new file mode 100644 index 000000000..ef303c132 --- /dev/null +++ b/recipes/wip/libs/other/libgdal/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gdal.org/development/building_from_source.html +[source] +tar = "https://github.com/OSGeo/gdal/releases/download/v3.8.4/gdal-3.8.4.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libgit2/recipe.toml b/recipes/wip/libs/other/libgit2/recipe.toml new file mode 100644 index 000000000..f08d3e9ab --- /dev/null +++ b/recipes/wip/libs/other/libgit2/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/libgit2/libgit2#building-libgit2---using-cmake +[source] +git = "https://github.com/libgit2/libgit2" +rev = "a2bde63741977ca0f4ef7db2f609df320be67a08" +[build] +template = "cmake" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/libs/other/libglm/recipe.toml b/recipes/wip/libs/other/libglm/recipe.toml new file mode 100644 index 000000000..81d65935f --- /dev/null +++ b/recipes/wip/libs/other/libglm/recipe.toml @@ -0,0 +1,6 @@ +#TODO Needs to determine the script +[source] +git = "https://github.com/g-truc/glm" +rev = "bf71a834948186f4097caa076cd2663c69a10e1e" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libgloox/recipe.toml b/recipes/wip/libs/other/libgloox/recipe.toml new file mode 100644 index 000000000..ca7c6d0e9 --- /dev/null +++ b/recipes/wip/libs/other/libgloox/recipe.toml @@ -0,0 +1,8 @@ +#TODO make gnutls work +[source] +tar = "https://camaya.net/download/gloox-1.0.27.tar.bz2" +[build] +template = "configure" +dependencies = [ + "gnutls3", +] diff --git a/recipes/wip/libs/other/libgpg-error/recipe.toml b/recipes/wip/libs/other/libgpg-error/recipe.toml new file mode 100644 index 000000000..58898a938 --- /dev/null +++ b/recipes/wip/libs/other/libgpg-error/recipe.toml @@ -0,0 +1,38 @@ +[source] +tar = "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.55.tar.bz2" +blake3 = "6c363dd8c6bcf2601dd5ff3b11fa2f699baa2aae40de2acd92461af0fd8178f0" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT + +cat > "${COOKBOOK_SOURCE}/src/syscfg/lock-obj-pub.${TARGET}.h" << EOF +## lock-obj-pub.x86_64-unknown-redox.h +## File created by gen-lock-obj.sh - DO NOT EDIT +## To be included by mkheader into gpg-error.h + +typedef struct +{ + long _vers; + union { + volatile char _priv[12]; + long _x_align; + long *_xp_align; + } u; +} gpgrt_lock_t; + +#define GPGRT_LOCK_INITIALIZER {1,{{}}} +## +## Local Variables: +## mode: c +## buffer-read-only: t +## End: +## +EOF +cookbook_configure --enable-threads=posix +""" diff --git a/recipes/wip/libs/other/libgpm/recipe.toml b/recipes/wip/libs/other/libgpm/recipe.toml new file mode 100644 index 000000000..9b1f71144 --- /dev/null +++ b/recipes/wip/libs/other/libgpm/recipe.toml @@ -0,0 +1,6 @@ +#TODO undefined macro: AC_PROG_LIBTOOL +[source] +tar = "https://www.nico.schottelius.org/software/gpm/archives/gpm-1.20.7.tar.bz2" +script = "./autogen.sh" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libgrantlee/recipe.toml b/recipes/wip/libs/other/libgrantlee/recipe.toml new file mode 100644 index 000000000..544697ada --- /dev/null +++ b/recipes/wip/libs/other/libgrantlee/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://github.com/steveire/grantlee#installation +[source] +tar = "https://github.com/steveire/grantlee/releases/download/v5.3.1/grantlee-5.3.1.tar.gz" +[build] +template = "cmake" +dependencies = [ + "qt5-base", +] diff --git a/recipes/wip/libs/other/libgsl/recipe.toml b/recipes/wip/libs/other/libgsl/recipe.toml new file mode 100644 index 000000000..2fdf67a3c --- /dev/null +++ b/recipes/wip/libs/other/libgsl/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize Redox target +[source] +tar = "https://ftp.gnu.org/gnu/gsl/gsl-2.7.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libgspell-gtk3/recipe.toml b/recipes/wip/libs/other/libgspell-gtk3/recipe.toml new file mode 100644 index 000000000..e3f252329 --- /dev/null +++ b/recipes/wip/libs/other/libgspell-gtk3/recipe.toml @@ -0,0 +1,10 @@ +#TODO make gtk3 work +[source] +tar = "https://download.gnome.org/sources/gspell/1.12/gspell-1.12.2.tar.xz" +[build] +template = "configure" +dependencies = [ + "gtk3", + "glib", + "libicu", +] diff --git a/recipes/wip/libs/other/libgspell-gtk4/recipe.toml b/recipes/wip/libs/other/libgspell-gtk4/recipe.toml new file mode 100644 index 000000000..98f646dfd --- /dev/null +++ b/recipes/wip/libs/other/libgspell-gtk4/recipe.toml @@ -0,0 +1,11 @@ +#TODO make gtk4 work +[source] +tar = "https://gitlab.gnome.org/otrocodigo/gspell/-/archive/1.11.1/gspell-1.11.1.tar.bz2" +script = "./autogen.sh" +[build] +template = "configure" +dependencies = [ + "glib", + "gtk4", + "libicu", +] diff --git a/recipes/wip/libs/other/libgumbo/recipe.toml b/recipes/wip/libs/other/libgumbo/recipe.toml new file mode 100644 index 000000000..d88542544 --- /dev/null +++ b/recipes/wip/libs/other/libgumbo/recipe.toml @@ -0,0 +1,7 @@ +#TODO compiled but not tested +[source] +git = "https://codeberg.org/gumbo-parser/gumbo-parser" +rev = "23af2f7c5a9da7e7ea42fcc2c573df52e4a3a5be" +script = "./autogen.sh" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libharu/recipe.toml b/recipes/wip/libs/other/libharu/recipe.toml new file mode 100644 index 000000000..48171d074 --- /dev/null +++ b/recipes/wip/libs/other/libharu/recipe.toml @@ -0,0 +1,10 @@ +#TODO the git repository contents aren't copied to the "build" folder +[source] +git = "https://github.com/libharu/libharu" +rev = "0c598becaadaef8e3d12b883f9fc2864a118c12d" +[build] +template = "custom" +script = """ +./buildconf.sh +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libhidapi/recipe.toml b/recipes/wip/libs/other/libhidapi/recipe.toml new file mode 100644 index 000000000..bc5e83c4a --- /dev/null +++ b/recipes/wip/libs/other/libhidapi/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/libusb/hidapi/blob/master/BUILD.cmake.md +[source] +git = "https://github.com/libusb/hidapi" +rev = "d3013f0af3f4029d82872c1a9487ea461a56dee4" +[build] +template = "cmake" +dependencies = [ + "libiconv", +] diff --git a/recipes/wip/libs/other/libhyphen/recipe.toml b/recipes/wip/libs/other/libhyphen/recipe.toml new file mode 100644 index 000000000..3ee115a8d --- /dev/null +++ b/recipes/wip/libs/other/libhyphen/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building, see https://github.com/hunspell/hyphen/blob/master/README#L49 +[source] +git = "https://github.com/hunspell/hyphen" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libicu/recipe.toml b/recipes/wip/libs/other/libicu/recipe.toml new file mode 100644 index 000000000..12439b92d --- /dev/null +++ b/recipes/wip/libs/other/libicu/recipe.toml @@ -0,0 +1,51 @@ +[source] +tar = "https://github.com/unicode-org/icu/releases/download/release-77-1/icu4c-77_1-src.tgz" +blake3 = "8f51c4e4c6577b61d02921e800ddb0a2d4778addf7717eef4c5bb0e8a5582c3a" +patches = ["redox.patch"] + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/source/configure" +mkdir -p host +pushd host +#TODO: easier way to build for host? +HOST_ENV=( + env + --unset=AR + --unset=AS + --unset=CC + --unset=CFLAGS + --unset=CPPFLAGS + --unset=CXX + --unset=GNU_TARGET + --unset=LD + --unset=LDFLAGS + --unset=NM + --unset=OBJCOPY + --unset=OBJDUMP + --unset=PKG_CONFIG + --unset=PKG_CONFIG_ALLOW_CROSS + --unset=PKG_CONFIG_FOR_BUILD + --unset=PKG_CONFIG_LIBDIR + --unset=PKG_CONFIG_PATH + --unset=PKG_CONFIG_SYSROOT_DIR + --unset=PREFIX_RUSTFLAGS + --unset=RANLIB + --unset=READELF + --unset=STRIP + --unset=TARGET +) +"${HOST_ENV[@]}" printenv | sort +"${HOST_ENV[@]}" "${COOKBOOK_CONFIGURE}" +"${HOST_ENV[@]}" "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +popd +COOKBOOK_CONFIGURE_FLAGS+=( + --with-cross-build="${COOKBOOK_BUILD}/host" + icu_cv_host_frag=mh-linux +) +# libicu uses TARGET for something else +unset TARGET +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libicu/redox.patch b/recipes/wip/libs/other/libicu/redox.patch new file mode 100644 index 000000000..659b2df1b --- /dev/null +++ b/recipes/wip/libs/other/libicu/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN icu/source/common/unicode/ptypes.h source/source/common/unicode/ptypes.h +--- icu/source/common/unicode/ptypes.h 2025-03-13 12:31:23.000000000 -0600 ++++ source/source/common/unicode/ptypes.h 2025-04-11 13:46:44.105116183 -0600 +@@ -56,7 +56,7 @@ + // implementations (looking at you, Apple, spring 2024) actually do this, so + // ICU4C must detect and deal with that. + #if !defined(__cplusplus) && !defined(U_IN_DOXYGEN) +-# if U_HAVE_CHAR16_T ++# if U_HAVE_CHAR16_T && !defined(__redox__) + # include + # else + typedef uint16_t char16_t; diff --git a/recipes/wip/libs/other/libimath/recipe.toml b/recipes/wip/libs/other/libimath/recipe.toml new file mode 100644 index 000000000..9d9b88797 --- /dev/null +++ b/recipes/wip/libs/other/libimath/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://imath.readthedocs.io/en/latest/install.html#linux-macos +[source] +git = "https://github.com/AcademySoftwareFoundation/Imath" +rev = "d690a3fcff4e877ead5ae56c7e964595ade8a35e" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libimmer/recipe.toml b/recipes/wip/libs/other/libimmer/recipe.toml new file mode 100644 index 000000000..aed3fe1eb --- /dev/null +++ b/recipes/wip/libs/other/libimmer/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/arximboldi/immer#usage +[source] +git = "https://github.com/arximboldi/immer" +rev = "5875f7739a6c642ad58cbedadb509c86d421217e" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libinput/recipe.toml b/recipes/wip/libs/other/libinput/recipe.toml new file mode 100644 index 000000000..a042016bb --- /dev/null +++ b/recipes/wip/libs/other/libinput/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://wayland.freedesktop.org/libinput/doc/latest/building.html#building +[source] +git = "https://gitlab.freedesktop.org/libinput/libinput" +rev = "1680f2fbaa63a91739012c6b57988ab1918ea0b7" +[build] +template = "meson" +dependencies = [ + "eudev", + "libevdev", +] diff --git a/recipes/wip/libs/other/libisoburn/recipe.toml b/recipes/wip/libs/other/libisoburn/recipe.toml new file mode 100644 index 000000000..47717bac1 --- /dev/null +++ b/recipes/wip/libs/other/libisoburn/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "http://files.libburnia-project.org/releases/libisoburn-1.5.4.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libisofs/recipe.toml b/recipes/wip/libs/other/libisofs/recipe.toml new file mode 100644 index 000000000..5fa6ac522 --- /dev/null +++ b/recipes/wip/libs/other/libisofs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "http://files.libburnia-project.org/releases/libisofs-1.5.4.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libjasper/recipe.toml b/recipes/wip/libs/other/libjasper/recipe.toml new file mode 100644 index 000000000..bcdf1a65a --- /dev/null +++ b/recipes/wip/libs/other/libjasper/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/jasper-software/jasper/blob/master/INSTALL.txt +[source] +tar = "https://github.com/jasper-software/jasper/releases/download/version-4.1.1/jasper-4.1.1.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libkdcraw/recipe.toml b/recipes/wip/libs/other/libkdcraw/recipe.toml new file mode 100644 index 000000000..ea4789c8c --- /dev/null +++ b/recipes/wip/libs/other/libkdcraw/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://invent.kde.org/graphics/libkdcraw/-/blob/master/README?ref_type=heads +[source] +git = "https://invent.kde.org/graphics/libkdcraw" +rev = "fbd01409c8009f403bccac6776fe4cfefa57d5bd" +[build] +template = "cmake" +dependencies = [ + "libraw", + "qt5-base", +] diff --git a/recipes/wip/libs/other/libkomparediff2/recipe.toml b/recipes/wip/libs/other/libkomparediff2/recipe.toml new file mode 100644 index 000000000..cdc05c415 --- /dev/null +++ b/recipes/wip/libs/other/libkomparediff2/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +git = "https://invent.kde.org/sdk/libkomparediff2" +rev = "ea9034ee3e4952862a937255bc6cc4ee392907f6" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/liblager/recipe.toml b/recipes/wip/libs/other/liblager/recipe.toml new file mode 100644 index 000000000..9b9782c7a --- /dev/null +++ b/recipes/wip/libs/other/liblager/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/arximboldi/lager#usage +[source] +git = "https://github.com/arximboldi/lager" +[build] +template = "cmake" +dependencies = [ + "libzug", + "boost", +] diff --git a/recipes/wip/libs/other/liblapack/recipe.toml b/recipes/wip/libs/other/liblapack/recipe.toml new file mode 100644 index 000000000..fd27e0d5f --- /dev/null +++ b/recipes/wip/libs/other/liblapack/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Reference-LAPACK/lapack#installation +[source] +git = "https://github.com/Reference-LAPACK/lapack" +rev = "04b044e020a3560ccfa9988c8a80a1fb7083fc2e" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/liblcms/recipe.toml b/recipes/wip/libs/other/liblcms/recipe.toml new file mode 100644 index 000000000..ac36be806 --- /dev/null +++ b/recipes/wip/libs/other/liblcms/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +tar = "https://github.com/mm2/Little-CMS/releases/download/lcms2.15/lcms2-2.15.tar.gz" +[build] +template = "configure" +dependencies = [ + "libtiff", +] diff --git a/recipes/wip/libs/other/liblensfun/recipe.toml b/recipes/wip/libs/other/liblensfun/recipe.toml new file mode 100644 index 000000000..428eff77a --- /dev/null +++ b/recipes/wip/libs/other/liblensfun/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/lensfun/lensfun?tab=readme-ov-file#build-instructions +[source] +git = "https://github.com/lensfun/lensfun" +rev = "35b19fb38e7250ea646709ef9e528d54a6a79648" +[build] +template = "cmake" +dependencies = [ + "glib", + "libpng", +] diff --git a/recipes/wip/libs/other/liblo/recipe.toml b/recipes/wip/libs/other/liblo/recipe.toml new file mode 100644 index 000000000..3e26b3014 --- /dev/null +++ b/recipes/wip/libs/other/liblo/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "http://downloads.sourceforge.net/liblo/liblo-0.31.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libm17n/recipe.toml b/recipes/wip/libs/other/libm17n/recipe.toml new file mode 100644 index 000000000..ed33577e1 --- /dev/null +++ b/recipes/wip/libs/other/libm17n/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing plural.h +[source] +tar = "https://download.savannah.nongnu.org/releases/m17n/m17n-lib-1.8.4.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libmad/recipe.toml b/recipes/wip/libs/other/libmad/recipe.toml new file mode 100644 index 000000000..2912e2f46 --- /dev/null +++ b/recipes/wip/libs/other/libmad/recipe.toml @@ -0,0 +1,5 @@ +#TODO the redox target is not supported on the configure script +[source] +tar = "https://sourceforge.net/projects/mad/files/libmad/0.15.1b/libmad-0.15.1b.tar.gz/download" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libmd/recipe.toml b/recipes/wip/libs/other/libmd/recipe.toml new file mode 100644 index 000000000..51d27a9af --- /dev/null +++ b/recipes/wip/libs/other/libmd/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://archive.hadrons.org/software/libmd/libmd-1.1.0.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libmpeg2/recipe.toml b/recipes/wip/libs/other/libmpeg2/recipe.toml new file mode 100644 index 000000000..10196b8a8 --- /dev/null +++ b/recipes/wip/libs/other/libmpeg2/recipe.toml @@ -0,0 +1,5 @@ +#TODO the redox target is not supported on the configure script +[source] +tar = "https://libmpeg2.sourceforge.io/files/libmpeg2-0.5.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libmtp/recipe.toml b/recipes/wip/libs/other/libmtp/recipe.toml new file mode 100644 index 000000000..1d01f7964 --- /dev/null +++ b/recipes/wip/libs/other/libmtp/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +tar = "https://sourceforge.net/projects/libmtp/files/libmtp/1.1.21/libmtp-1.1.21.tar.gz/download" +[build] +template = "configure" +dependencies = [ + "libusb", +] diff --git a/recipes/wip/libs/other/libmypaint/recipe.toml b/recipes/wip/libs/other/libmypaint/recipe.toml new file mode 100644 index 000000000..94ef67255 --- /dev/null +++ b/recipes/wip/libs/other/libmypaint/recipe.toml @@ -0,0 +1,9 @@ +#TODO probably missing dependencies, see: https://github.com/mypaint/libmypaint/#dependencies +[source] +tar = "https://github.com/mypaint/libmypaint/releases/download/v1.6.0/libmypaint-1.6.0.tar.xz" +[build] +template = "configure" +dependencies = [ + "glib", + "gobject-introspection", +] diff --git a/recipes/wip/libs/other/libnlopt/recipe.toml b/recipes/wip/libs/other/libnlopt/recipe.toml new file mode 100644 index 000000000..39fbb7180 --- /dev/null +++ b/recipes/wip/libs/other/libnlopt/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/stevengj/nlopt#readme +[source] +git = "https://github.com/stevengj/nlopt" +rev = "09b3c2a6da71cabcb98d2c8facc6b83d2321ed71" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libnotify/recipe.toml b/recipes/wip/libs/other/libnotify/recipe.toml new file mode 100644 index 000000000..6efb5c3f1 --- /dev/null +++ b/recipes/wip/libs/other/libnotify/recipe.toml @@ -0,0 +1,15 @@ +[source] +tar = "https://download.gnome.org/sources/libnotify/0.8/libnotify-0.8.4.tar.xz" +blake3 = "1c749e4f1cc85f88348bb363b6d78c8373baa19a6db4d2b3a4cf537c1af6b929" + +[build] +dependencies = [ + "gdk-pixbuf", + "gtk3", +] +template = "meson" +mesonflags = [ + "-Dgtk_doc=false", + "-Dintrospection=disabled", +] + diff --git a/recipes/wip/libs/other/libnsl/recipe.toml b/recipes/wip/libs/other/libnsl/recipe.toml new file mode 100644 index 000000000..f334c00ee --- /dev/null +++ b/recipes/wip/libs/other/libnsl/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing headers for compilation +[source] +tar = "https://github.com/thkukuk/libnsl/releases/download/v2.0.1/libnsl-2.0.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libonig/recipe.toml b/recipes/wip/libs/other/libonig/recipe.toml new file mode 100644 index 000000000..894e8b0a8 --- /dev/null +++ b/recipes/wip/libs/other/libonig/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://github.com/kkos/oniguruma" +rev = "f95747b462de672b6f8dbdeb478245ddf061ca53" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libotf/recipe.toml b/recipes/wip/libs/other/libotf/recipe.toml new file mode 100644 index 000000000..fe52d5090 --- /dev/null +++ b/recipes/wip/libs/other/libotf/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize redox target +[source] +tar = "https://download.savannah.nongnu.org/releases/m17n/libotf-0.9.16.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libpanel/recipe.toml b/recipes/wip/libs/other/libpanel/recipe.toml new file mode 100644 index 000000000..0dfe1cc64 --- /dev/null +++ b/recipes/wip/libs/other/libpanel/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://download.gnome.org/sources/libpanel/1.4/libpanel-1.4.0.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/libpcap/recipe.toml b/recipes/wip/libs/other/libpcap/recipe.toml new file mode 100644 index 000000000..00e2d6af5 --- /dev/null +++ b/recipes/wip/libs/other/libpcap/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://www.tcpdump.org/release/libpcap-1.10.4.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libpcsclite/recipe.toml b/recipes/wip/libs/other/libpcsclite/recipe.toml new file mode 100644 index 000000000..4c96c3a8e --- /dev/null +++ b/recipes/wip/libs/other/libpcsclite/recipe.toml @@ -0,0 +1,5 @@ +#TODO require POSIX threads support +[source] +tar = "https://pcsclite.apdu.fr/files/pcsc-lite-2.0.3.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libpeas/recipe.toml b/recipes/wip/libs/other/libpeas/recipe.toml new file mode 100644 index 000000000..b7fa78888 --- /dev/null +++ b/recipes/wip/libs/other/libpeas/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/GNOME/libpeas +[source] +tar = "https://download.gnome.org/sources/libpeas/2.0/libpeas-2.0.0.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/libplist/recipe.toml b/recipes/wip/libs/other/libplist/recipe.toml new file mode 100644 index 000000000..277784f3c --- /dev/null +++ b/recipes/wip/libs/other/libplist/recipe.toml @@ -0,0 +1,11 @@ +#TODO compiled but not tested +[source] +tar = "https://github.com/libimobiledevice/libplist/releases/download/2.6.0/libplist-2.6.0.tar.bz2" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --without-cython +) +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libpoppler/recipe.toml b/recipes/wip/libs/other/libpoppler/recipe.toml new file mode 100644 index 000000000..482952ca0 --- /dev/null +++ b/recipes/wip/libs/other/libpoppler/recipe.toml @@ -0,0 +1,47 @@ +#TODO needs encoding data - https://poppler.freedesktop.org/poppler-data-0.4.12.tar.gz +[source] +tar = "https://poppler.freedesktop.org/poppler-25.08.0.tar.xz" +blake3 = "0732ef20594d084ae3c24cb75079a2be347df78acac80fdcbd6149b8dce197d4" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "cairo", + "curl", + "expat", + "fontconfig", + "freetype2", + "gettext", + "glib", + "libffi", + "libiconv", + "libjpeg", + "libpng", + "libx11", + "libxau", + "libxcb", + "nghttp2", + "openssl1", + "pcre2", + "pixman", + #TODO: compile dylib "libtiff", + "zlib", +] +script = """ +DYNAMIC_INIT +cookbook_cmake \ + -DCMAKE_C_FLAGS="-I${COOKBOOK_SYSROOT}/include" \ + -DCMAKE_CXX_FLAGS="-I${COOKBOOK_SYSROOT}/include" \ + -DENABLE_BOOST=OFF \ + -DENABLE_GPGME=OFF \ + -DENABLE_LCMS=OFF \ + -DENABLE_LIBOPENJPEG=none \ + -DENABLE_LIBTIFF=OFF \ + -DENABLE_QT5=OFF \ + -DENABLE_QT6=OFF \ + -DENABLE_NSS3=OFF +""" diff --git a/recipes/wip/libs/other/libportaudio/recipe.toml b/recipes/wip/libs/other/libportaudio/recipe.toml new file mode 100644 index 000000000..3c0d52559 --- /dev/null +++ b/recipes/wip/libs/other/libportaudio/recipe.toml @@ -0,0 +1,7 @@ +#TODO compilation error +#TODO require some Linux audio server +[source] +git = "https://github.com/PortAudio/portaudio" +rev = "147dd722548358763a8b649b3e4b41dfffbcfbb6" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libpthread-stubs/recipe.toml b/recipes/wip/libs/other/libpthread-stubs/recipe.toml new file mode 100644 index 000000000..878a40f4e --- /dev/null +++ b/recipes/wip/libs/other/libpthread-stubs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://www.x.org/releases/individual/xcb/libpthread-stubs-0.5.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libpugixml/recipe.toml b/recipes/wip/libs/other/libpugixml/recipe.toml new file mode 100644 index 000000000..50d08d8e9 --- /dev/null +++ b/recipes/wip/libs/other/libpugixml/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building, see https://pugixml.org/docs/quickstart.html#install +[source] +tar = "https://github.com/zeux/pugixml/releases/download/v1.14/pugixml-1.14.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libqalculate/recipe.toml b/recipes/wip/libs/other/libqalculate/recipe.toml new file mode 100644 index 000000000..361db8c4a --- /dev/null +++ b/recipes/wip/libs/other/libqalculate/recipe.toml @@ -0,0 +1,14 @@ +#TODO make libicu work +[source] +tar = "https://github.com/Qalculate/libqalculate/releases/download/v4.9.0/libqalculate-4.9.0.tar.gz" +[build] +template = "configure" +dependencies = [ + "libgmp", + "libmpfr", + "libxml2", + "readline", + "libiconv", + "libicu", + "curl", +] diff --git a/recipes/wip/libs/other/libqrcodegenc/recipe.toml b/recipes/wip/libs/other/libqrcodegenc/recipe.toml new file mode 100644 index 000000000..a270b5c16 --- /dev/null +++ b/recipes/wip/libs/other/libqrcodegenc/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script to build the C implementation, see https://github.com/nayuki/QR-Code-generator/tree/master/c +[source] +git = "https://github.com/nayuki/QR-Code-generator" +rev = "720f62bddb7226106071d4728c292cb1df519ceb" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libraptor2/recipe.toml b/recipes/wip/libs/other/libraptor2/recipe.toml new file mode 100644 index 000000000..00795c49d --- /dev/null +++ b/recipes/wip/libs/other/libraptor2/recipe.toml @@ -0,0 +1,10 @@ +#TODO customization - https://librdf.org/raptor/INSTALL.html +#TODO pending dependency configuration +[source] +tar = "http://download.librdf.org/source/raptor2-2.0.16.tar.gz" +[build] +template = "configure" +dependencies = [ + "libxml2", + "libxslt", +] diff --git a/recipes/wip/libs/other/librasqal/recipe.toml b/recipes/wip/libs/other/librasqal/recipe.toml new file mode 100644 index 000000000..420b35a78 --- /dev/null +++ b/recipes/wip/libs/other/librasqal/recipe.toml @@ -0,0 +1,6 @@ +#TODO customization - https://librdf.org/rasqal/INSTALL.html +#TODO compilation error +[source] +tar = "http://download.librdf.org/source/rasqal-0.9.33.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/librdf/recipe.toml b/recipes/wip/libs/other/librdf/recipe.toml new file mode 100644 index 000000000..f4d6e5966 --- /dev/null +++ b/recipes/wip/libs/other/librdf/recipe.toml @@ -0,0 +1,6 @@ +#TODO customization - https://librdf.org/INSTALL.html +#TODO compilation error +[source] +tar = "http://download.librdf.org/source/redland-1.0.17.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/librevenge/recipe.toml b/recipes/wip/libs/other/librevenge/recipe.toml new file mode 100644 index 000000000..d380c0c43 --- /dev/null +++ b/recipes/wip/libs/other/librevenge/recipe.toml @@ -0,0 +1,9 @@ +#TODO make boost work +[source] +tar = "https://sourceforge.net/projects/libwpd/files/librevenge/librevenge-0.0.5/librevenge-0.0.5.tar.xz/download" +[build] +template = "configure" +dependencies = [ + "boost", + "zlib", +] diff --git a/recipes/wip/libs/other/librist/recipe.toml b/recipes/wip/libs/other/librist/recipe.toml new file mode 100644 index 000000000..5757c5490 --- /dev/null +++ b/recipes/wip/libs/other/librist/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://code.videolan.org/rist/librist#compile-using-mesonninja-linux-osx-and-windows-mingw +[source] +git = "https://code.videolan.org/rist/librist" +rev = "1e805500dc14a507598cebdd49557c32e514899f" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/librkcommon/recipe.toml b/recipes/wip/libs/other/librkcommon/recipe.toml new file mode 100644 index 000000000..c7bb01c00 --- /dev/null +++ b/recipes/wip/libs/other/librkcommon/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ospray/rkcommon#building +[source] +git = "https://github.com/ospray/rkcommon" +rev = "f15291d4789a53e5980fd9b3d2639f705d675dd7" +[build] +template = "cmake" +dependencies = [ + "onetbb", +] diff --git a/recipes/wip/libs/other/libsamplerate/recipe.toml b/recipes/wip/libs/other/libsamplerate/recipe.toml new file mode 100644 index 000000000..b0d81424a --- /dev/null +++ b/recipes/wip/libs/other/libsamplerate/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://github.com/libsndfile/libsamplerate/releases/download/0.2.2/libsamplerate-0.2.2.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libseexpr-kde/recipe.toml b/recipes/wip/libs/other/libseexpr-kde/recipe.toml new file mode 100644 index 000000000..6c7b11b61 --- /dev/null +++ b/recipes/wip/libs/other/libseexpr-kde/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://invent.kde.org/graphics/kseexpr#super-impatient-cmake-building-and-installing-guide +[source] +git = "https://invent.kde.org/graphics/kseexpr" +rev = "d834b2dc6a7f452ffca4602f90b709db86a3a630" +[build] +template = "cmake" +dependencies = [ + "qt5-base", +] diff --git a/recipes/wip/libs/other/libsigc++/recipe.toml b/recipes/wip/libs/other/libsigc++/recipe.toml new file mode 100644 index 000000000..250a61fc8 --- /dev/null +++ b/recipes/wip/libs/other/libsigc++/recipe.toml @@ -0,0 +1,5 @@ +#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/libskia/recipe.toml b/recipes/wip/libs/other/libskia/recipe.toml new file mode 100644 index 000000000..3a3665e52 --- /dev/null +++ b/recipes/wip/libs/other/libskia/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for GN, see https://skia.org/docs/user/build/ +[source] +git = "https://skia.googlesource.com/skia" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libslirp/recipe.toml b/recipes/wip/libs/other/libslirp/recipe.toml new file mode 100644 index 000000000..2722021bb --- /dev/null +++ b/recipes/wip/libs/other/libslirp/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.freedesktop.org/slirp/libslirp#building +[source] +tar = "https://gitlab.freedesktop.org/slirp/libslirp/uploads/60113f60cfd6abe2c16dde9f6c81b631/libslirp-4.7.0.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/libsmooth/recipe.toml b/recipes/wip/libs/other/libsmooth/recipe.toml new file mode 100644 index 000000000..802d166d1 --- /dev/null +++ b/recipes/wip/libs/other/libsmooth/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing script for gnu make +# build instructions - https://github.com/enzo1982/smooth/#installation +[source] +tar = "https://github.com/enzo1982/smooth/releases/download/v0.9.10/smooth-0.9.10.tar.gz" +[build] +template = "custom" +dependencies = [ + "bzip2", + "curl", + "fribidi", + "gtk3", + "libjpeg", + "libxml2", +] diff --git a/recipes/wip/libs/other/libsndfile/recipe.toml b/recipes/wip/libs/other/libsndfile/recipe.toml new file mode 100644 index 000000000..e6f335150 --- /dev/null +++ b/recipes/wip/libs/other/libsndfile/recipe.toml @@ -0,0 +1,19 @@ +[source] +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 +""" + +[build] +dependencies = [ + #TODO "libflac", + "libogg", + "libvorbis", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libsoundio/recipe.toml b/recipes/wip/libs/other/libsoundio/recipe.toml new file mode 100644 index 000000000..31c835d4d --- /dev/null +++ b/recipes/wip/libs/other/libsoundio/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/andrewrk/libsoundio#building +[source] +git = "https://github.com/andrewrk/libsoundio" +rev = "dc4f84339039ac518b6cd1c0e7683e88e25be470" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libsoup/recipe.toml b/recipes/wip/libs/other/libsoup/recipe.toml new file mode 100644 index 000000000..7472e8388 --- /dev/null +++ b/recipes/wip/libs/other/libsoup/recipe.toml @@ -0,0 +1,26 @@ +[source] +tar = "https://download.gnome.org/sources/libsoup/3.6/libsoup-3.6.5.tar.xz" +blake3 = "9e5214dfb310ac1bbf8ceb85724f2c79a1d5c94382f306080a6cdea47230e960" + +[build] +dependencies = [ + "gettext", + "glib", + "libffi", + "libiconv", + "libpsl", + "nghttp2", + "pcre2", + "sqlite3", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Dintrospection=disabled \ + -Dsysprof=disabled \ + -Dtests=false \ + -Dtls_check=false +patchelf --replace-needed "${COOKBOOK_SYSROOT}/usr/lib/libsqlite3.so" "libsqlite3.so" "${COOKBOOK_STAGE}/usr/lib/libsoup-3.0.so" +""" diff --git a/recipes/wip/libs/other/libspdlog/recipe.toml b/recipes/wip/libs/other/libspdlog/recipe.toml new file mode 100644 index 000000000..295574a8c --- /dev/null +++ b/recipes/wip/libs/other/libspdlog/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/gabime/spdlog" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libspiro/recipe.toml b/recipes/wip/libs/other/libspiro/recipe.toml new file mode 100644 index 000000000..fbba5edc2 --- /dev/null +++ b/recipes/wip/libs/other/libspiro/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://github.com/fontforge/libspiro/releases/download/20221101/libspiro-dist-20221101.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libsrt/recipe.toml b/recipes/wip/libs/other/libsrt/recipe.toml new file mode 100644 index 000000000..cd8b2a748 --- /dev/null +++ b/recipes/wip/libs/other/libsrt/recipe.toml @@ -0,0 +1,10 @@ +#TODO CMake error +# build instructions: https://github.com/Haivision/srt/blob/master/docs/build/build-linux.md +[source] +git = "https://github.com/Haivision/srt" +rev = "09f35c0f1743e23f514cb41444504a7faeacf89e" +[build] +template = "configure" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/libs/other/libssh/recipe.toml b/recipes/wip/libs/other/libssh/recipe.toml new file mode 100644 index 000000000..013570f22 --- /dev/null +++ b/recipes/wip/libs/other/libssh/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://git.libssh.org/projects/libssh.git/tree/INSTALL#n36 +[source] +tar = "https://www.libssh.org/files/0.10/libssh-0.10.6.tar.xz" +[build] +template = "cmake" +dependencies = [ + "zlib", + "openssl1", +] diff --git a/recipes/wip/libs/other/libstatgrab/recipe.toml b/recipes/wip/libs/other/libstatgrab/recipe.toml new file mode 100644 index 000000000..8bdc5a320 --- /dev/null +++ b/recipes/wip/libs/other/libstatgrab/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://github.com/libstatgrab/libstatgrab/releases/download/LIBSTATGRAB_0_92_1/libstatgrab-0.92.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libstk/recipe.toml b/recipes/wip/libs/other/libstk/recipe.toml new file mode 100644 index 000000000..0a0eddd7f --- /dev/null +++ b/recipes/wip/libs/other/libstk/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "http://ccrma.stanford.edu/software/stk/release/stk-4.6.2.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libtasn1/recipe.toml b/recipes/wip/libs/other/libtasn1/recipe.toml new file mode 100644 index 000000000..2dad5224d --- /dev/null +++ b/recipes/wip/libs/other/libtasn1/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.20.0.tar.gz" +blake3 = "374103da2b2ac47e18b57cb5d1d41f7e42f3725c269cf35fba8e4717f0c392b5" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libtatsu/recipe.toml b/recipes/wip/libs/other/libtatsu/recipe.toml new file mode 100644 index 000000000..4e14e9756 --- /dev/null +++ b/recipes/wip/libs/other/libtatsu/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +[source] +tar = "https://github.com/libimobiledevice/libtatsu/releases/download/1.0.3/libtatsu-1.0.3.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libplist", + "curl", +] diff --git a/recipes/wip/libs/other/libtheora/recipe.toml b/recipes/wip/libs/other/libtheora/recipe.toml new file mode 100644 index 000000000..12f2579bb --- /dev/null +++ b/recipes/wip/libs/other/libtheora/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "http://downloads.xiph.org/releases/theora/libtheora-1.2.0.tar.gz" +blake3 = "b2413d6a29669063c30679eb46e09bd55b47d51e1516282bd1f5a752a8ecae91" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "libogg", + "libvorbis", +] +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libtickit/recipe.toml b/recipes/wip/libs/other/libtickit/recipe.toml new file mode 100644 index 000000000..f20edf87f --- /dev/null +++ b/recipes/wip/libs/other/libtickit/recipe.toml @@ -0,0 +1,15 @@ +#TODO missing script for building, see https://github.com/leonerd/libtickit +[source] +tar = "https://www.leonerd.org.uk/code/libtickit/libtickit-0.4.5.tar.gz" +[build] +template = "custom" +dependencies = [ + "ncursesw" +] +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install-inc install-lib DESTDIR="${COOKBOOK_STAGE}" +""" diff --git a/recipes/wip/libs/other/libtiff/recipe.toml b/recipes/wip/libs/other/libtiff/recipe.toml new file mode 100644 index 000000000..887e9109e --- /dev/null +++ b/recipes/wip/libs/other/libtiff/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://download.osgeo.org/libtiff/tiff-4.5.0.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libtool/recipe.toml b/recipes/wip/libs/other/libtool/recipe.toml new file mode 100644 index 000000000..9ce69151a --- /dev/null +++ b/recipes/wip/libs/other/libtool/recipe.toml @@ -0,0 +1,18 @@ +#TODO can build, not tested +[source] +git = "https://gitlab.redox-os.org/redox-os/libtool" +branch = "v2.5.4-redox" +shallow_clone = true + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +./bootstrap \ + --skip-po \ + --force \ + --gnulib-srcdir=./gnulib +COOKBOOK_CONFIGURE="./configure" +cookbook_configure +""" diff --git a/recipes/wip/libs/other/libunibreak/recipe.toml b/recipes/wip/libs/other/libunibreak/recipe.toml new file mode 100644 index 000000000..83b0efb69 --- /dev/null +++ b/recipes/wip/libs/other/libunibreak/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://github.com/adah1972/libunibreak/releases/download/libunibreak_5_1/libunibreak-5.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libunistring/recipe.toml b/recipes/wip/libs/other/libunistring/recipe.toml new file mode 100644 index 000000000..3b5fa9bd0 --- /dev/null +++ b/recipes/wip/libs/other/libunistring/recipe.toml @@ -0,0 +1,5 @@ +#TODO port the fseterr function +[source] +tar = "https://ftp.gnu.org/gnu/libunistring/libunistring-1.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libunwind/recipe.toml b/recipes/wip/libs/other/libunwind/recipe.toml new file mode 100644 index 000000000..6ef93f40f --- /dev/null +++ b/recipes/wip/libs/other/libunwind/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://download.savannah.nongnu.org/releases/libunwind/libunwind-1.6.2.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/liburiparser/recipe.toml b/recipes/wip/libs/other/liburiparser/recipe.toml new file mode 100644 index 000000000..c95d227da --- /dev/null +++ b/recipes/wip/libs/other/liburiparser/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/uriparser/uriparser/releases/download/uriparser-0.9.8/uriparser-0.9.8.tar.bz2" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libusb/recipe.toml b/recipes/wip/libs/other/libusb/recipe.toml new file mode 100644 index 000000000..9bc9525b6 --- /dev/null +++ b/recipes/wip/libs/other/libusb/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://github.com/libusb/libusb/releases/download/v1.0.26/libusb-1.0.26.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libuuid-ossp/recipe.toml b/recipes/wip/libs/other/libuuid-ossp/recipe.toml new file mode 100644 index 000000000..90f45ad69 --- /dev/null +++ b/recipes/wip/libs/other/libuuid-ossp/recipe.toml @@ -0,0 +1,7 @@ +#TODO require a data type for FTP +# download link - ftp://ftp.ossp.org/pkg/lib/uuid/uuid-1.6.2.tar.gz +#TODO if this template doesn't work, read this http://cvs.ossp.org/fileview?f=ossp-pkg/uuid/INSTALL&v=1.6 +[source] + +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libuuid/recipe.toml b/recipes/wip/libs/other/libuuid/recipe.toml new file mode 100644 index 000000000..2ea2e5b5d --- /dev/null +++ b/recipes/wip/libs/other/libuuid/recipe.toml @@ -0,0 +1,9 @@ +[source] +tar = "https://sourceforge.net/projects/libuuid/files/libuuid-1.0.3.tar.gz/download" +blake3 = "ac6582304401d2be6e5db4570c0d9d6d1500f12c918591a05066679bb2e41e55" +patches = [ + "redox.patch" +] + +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libuuid/redox.patch b/recipes/wip/libs/other/libuuid/redox.patch new file mode 100644 index 000000000..2e7a5f9ce --- /dev/null +++ b/recipes/wip/libs/other/libuuid/redox.patch @@ -0,0 +1,67 @@ +diff -ruwN source/config.sub source-new/config.sub +--- source/config.sub 2014-08-12 15:19:20.000000000 +0700 ++++ source-new/config.sub 2025-09-19 21:11:57.907457211 +0700 +@@ -1376,7 +1376,7 @@ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) ++ | -skyos* | -haiku* | -rdos* | -redox* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) +diff -ruwN source/configure source-new/configure +--- source/configure 2014-08-12 15:19:19.000000000 +0700 ++++ source-new/configure 2025-09-19 21:20:30.460699979 +0700 +@@ -5312,7 +5312,7 @@ + ;; + + # This must be glibc/ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu) ++linux* | k*bsd*-gnu | kopensolaris*-gnu | redox*) + lt_cv_deplibs_check_method=pass_all + ;; + +@@ -8866,7 +8866,7 @@ + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + +- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) ++ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | redox*) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in +@@ -10534,7 +10534,7 @@ + ;; + + # This must be glibc/ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu) ++linux* | k*bsd*-gnu | kopensolaris*-gnu | redox*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no +diff -ruwN source/gen_uuid.c source-new/gen_uuid.c +--- source/gen_uuid.c 2014-08-12 04:07:18.000000000 -0400 ++++ source-new/gen_uuid.c 2025-12-09 10:49:12.580466005 -0500 +@@ -59,9 +59,7 @@ + #include + #endif + #include +-#ifdef HAVE_SYS_FILE_H + #include +-#endif + #ifdef HAVE_SYS_IOCTL_H + #include + #endif +diff -ruwN source/randutils.c source-new/randutils.c +--- source/randutils.c 2014-08-12 15:07:18.000000000 +0700 ++++ source-new/randutils.c 2025-09-19 21:11:57.907659403 +0700 +@@ -13,7 +13,7 @@ + #include + #include + +-#include ++// #include + + #include "randutils.h" + diff --git a/recipes/wip/libs/other/libva/recipe.toml b/recipes/wip/libs/other/libva/recipe.toml new file mode 100644 index 000000000..24af9a36e --- /dev/null +++ b/recipes/wip/libs/other/libva/recipe.toml @@ -0,0 +1,6 @@ +#TODO can't recognize the redox target +#TODO probably require libdrm +[source] +tar = "https://github.com/intel/libva/releases/download/2.19.0/libva-2.19.0.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libvisio/recipe.toml b/recipes/wip/libs/other/libvisio/recipe.toml new file mode 100644 index 000000000..73d32a0b9 --- /dev/null +++ b/recipes/wip/libs/other/libvisio/recipe.toml @@ -0,0 +1,11 @@ +#TODO make dependencies work +[source] +tar = "https://dev-www.libreoffice.org/src/libvisio/libvisio-0.1.7.tar.xz" +[build] +template = "configure" +dependencies = [ + "boost", + "libicu", + "librevenge", + "libxml2", +] diff --git a/recipes/wip/libs/other/libvncserver/recipe.toml b/recipes/wip/libs/other/libvncserver/recipe.toml new file mode 100644 index 000000000..058ff6cb8 --- /dev/null +++ b/recipes/wip/libs/other/libvncserver/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +# build instructions: https://github.com/LibVNC/libvncserver#how-to-build +[source] +git = "https://github.com/LibVNC/libvncserver" +rev = "10e9eb75f73e973725dc75c373de5d89807af028" +[build] +template = "cmake" +cmakeflags = [ + "-DWITH_OPENSSL=ON", + "-DWITH_GCRYPT=OFF", +] +dependencies = [ + "openssl1", + "ffmpeg6", + "libssh2", +] diff --git a/recipes/wip/libs/other/libvte/recipe.toml b/recipes/wip/libs/other/libvte/recipe.toml new file mode 100644 index 000000000..b45dbdc7a --- /dev/null +++ b/recipes/wip/libs/other/libvte/recipe.toml @@ -0,0 +1,6 @@ +#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/libvterm/recipe.toml b/recipes/wip/libs/other/libvterm/recipe.toml new file mode 100644 index 000000000..4deb0f1dd --- /dev/null +++ b/recipes/wip/libs/other/libvterm/recipe.toml @@ -0,0 +1,13 @@ +#TODO missing script for "make" +[source] +tar = "https://launchpad.net/libvterm/trunk/v0.3/+download/libvterm-0.3.3.tar.gz" +[build] +template = "custom" +script = """ +DYNAMIC_INIT + +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +${COOKBOOK_MAKE} -j ${COOKBOOK_MAKE_JOBS} install \ + PREFIX="${COOKBOOK_STAGE}" +""" diff --git a/recipes/wip/libs/other/libvulkan/recipe.toml b/recipes/wip/libs/other/libvulkan/recipe.toml new file mode 100644 index 000000000..b7630f7de --- /dev/null +++ b/recipes/wip/libs/other/libvulkan/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/KhronosGroup/Vulkan-Loader/blob/main/BUILD.md +[source] +git = "https://github.com/KhronosGroup/Vulkan-Loader" +rev = "cf1a1eff115465b2425d287bef1e94ca62b0de1b" +[build] +template = "cmake" +dependencies = [ + "libxkbcommon", +] diff --git a/recipes/wip/libs/other/libwebsocket++/recipe.toml b/recipes/wip/libs/other/libwebsocket++/recipe.toml new file mode 100644 index 000000000..e5c0939f5 --- /dev/null +++ b/recipes/wip/libs/other/libwebsocket++/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for installation, lacking build instructions +[source] +git = "https://github.com/zaphoyd/websocketpp" +rev = "56123c87598f8b1dd471be83ca841ceae07f95ba" +[build] +template = "custom" +dependencies = [ + "openssl1", + "zlib", +] diff --git a/recipes/wip/libs/other/libwebsockets/recipe.toml b/recipes/wip/libs/other/libwebsockets/recipe.toml new file mode 100644 index 000000000..c99518a27 --- /dev/null +++ b/recipes/wip/libs/other/libwebsockets/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/warmcat/libwebsockets" +rev = "4415e84c095857629863804e941b9e1c2e9347ef" +[build] +template = "cmake" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/libs/other/libwmf/recipe.toml b/recipes/wip/libs/other/libwmf/recipe.toml new file mode 100644 index 000000000..ac4840f28 --- /dev/null +++ b/recipes/wip/libs/other/libwmf/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize the redox target +[source] +tar = "https://sourceforge.net/projects/wvware/files/libwmf/0.2.8.4/libwmf-0.2.8.4.tar.gz/download" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libwpd/recipe.toml b/recipes/wip/libs/other/libwpd/recipe.toml new file mode 100644 index 000000000..5370ab7da --- /dev/null +++ b/recipes/wip/libs/other/libwpd/recipe.toml @@ -0,0 +1,10 @@ +#TODO make dependencies work +[source] +tar = "https://sourceforge.net/projects/libwpd/files/libwpd/libwpd-0.10.3/libwpd-0.10.3.tar.xz/download" +[build] +template = "configure" +dependencies = [ + "boost", + "librevenge", + "zlib", +] diff --git a/recipes/wip/libs/other/libxcrypt/recipe.toml b/recipes/wip/libs/other/libxcrypt/recipe.toml new file mode 100644 index 000000000..6f6779ac9 --- /dev/null +++ b/recipes/wip/libs/other/libxcrypt/recipe.toml @@ -0,0 +1,4 @@ +[source] +tar = "https://github.com/besser82/libxcrypt/releases/download/v4.4.36/libxcrypt-4.4.36.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libxcursor/recipe.toml b/recipes/wip/libs/other/libxcursor/recipe.toml new file mode 100644 index 000000000..b0e44dff6 --- /dev/null +++ b/recipes/wip/libs/other/libxcursor/recipe.toml @@ -0,0 +1,92 @@ +#TODO make dependencies work +[source] +tar = "https://www.x.org/releases/individual/lib/libXcursor-1.2.1.tar.xz" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libx11", + "libxcb", + "libxfixes", + "libxrender", + "x11proto", + "x11proto-kb", + "libxrender", + "xcb-proto", + "libxau", + "libpthread-stubs", +] +template = "custom" +script = """ +DYNAMIC_INIT + +# Force libtool to build shared libraries for Redox +# Override libtool's platform detection +export lt_cv_deplibs_check_method=pass_all +export ac_cv_lib_dl_dlopen=yes +export enable_shared=yes +export enable_static=yes + +#Configure with shared library support +"${COOKBOOK_CONFIGURE}" \ + --host="${GNU_TARGET}" \ + --prefix="/usr" \ + --enable-shared \ + --enable-static \ + --with-pic \ + ac_cv_search_sendmsg=no \ + lt_cv_prog_compiler_pic="-fPIC" \ + lt_cv_prog_compiler_pic_works=yes + +# Build +"${COOKBOOK_MAKE}" + +#After make, manually create the shared library if libtool didn't +if [ ! -f src/.libs/libXcursor.so ]; then + echo "Creating shared library manually..." + cd src/.libs + # Extract all object files from the static library + ${GNU_TARGET}-ar x libXcursor.a + # Create the shared library from the object files + ${GNU_TARGET}-gcc -shared -fPIC -o libXcursor.so.1.0.2 *.o \ + -L${COOKBOOK_SYSROOT}/lib -L${COOKBOOK_SYSROOT}/usr/lib \ + -lXfixes -lXrender -lX11 -lxcb -lXau + # Create symlinks + ln -sf libXcursor.so.1.0.2 libXcursor.so.1 + ln -sf libXcursor.so.1 libXcursor.so + cd ../.. +fi + +"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" + +# Also copy the shared libraries if they exist +if [ -f src/.libs/libXcursor.so.1.0.2 ]; then + mkdir -p "${COOKBOOK_STAGE}/usr/lib" + cp -P src/.libs/libXcursor.so* "${COOKBOOK_STAGE}/usr/lib/" +fi +""" + + +# script = """ + +# # this /usr/share/pkgconfig comes from x11proto, that stages pc files in wrong dir. +# export PKG_CONFIG_PATH="${COOKBOOK_SYSROOT}/lib/pkgconfig" +# #:${COOKBOOK_SYSROOT}/usr/lib/pkgconfig:${COOKBOOK_SYSROOT}/usr/share/pkgconfig" +# export PKG_CONFIG_LIBDIR="${COOKBOOK_SYSROOT}/lib/pkgconfig" +# #:${COOKBOOK_SYSROOT}/usr/lib/pkgconfig" +# export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}" + +# rsync -a "${COOKBOOK_SOURCE}/" ./ + +# # I'm tired trying figure out why multiple pkgconfig paths are ignored by cargo building stuff +# # rsync -a -v ${COOKBOOK_SYSROOT}/usr/share/pkgconfig/*.pc ${COOKBOOK_SYSROOT}/lib/pkgconfig/ +# rsync -a -v ${COOKBOOK_SYSROOT}/usr/lib/pkgconfig/*.pc ${COOKBOOK_SYSROOT}/lib/pkgconfig/ + +# echo "listing ${COOKBOOK_SYSROOT}/lib/pkgconfig" +# ls -al ${COOKBOOK_SYSROOT}/lib/pkgconfig + +# cookbook_configure +# """ diff --git a/recipes/wip/libs/other/libxkbcommon/recipe.toml b/recipes/wip/libs/other/libxkbcommon/recipe.toml new file mode 100644 index 000000000..119193b0e --- /dev/null +++ b/recipes/wip/libs/other/libxkbcommon/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://xkbcommon.org/download/libxkbcommon-1.7.0.tar.xz" +b3sum = "5001ca0b8562feeef2010bf16c05657e3875fda3ed5fdedbf48b9135e5cdfcbc" + +[build] +template = "custom" +dependencies = [ + "libxml2", + "xz", + "zlib", +] +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Denable-wayland=false \ + -Denable-x11=false +""" diff --git a/recipes/wip/libs/other/libxsimd/recipe.toml b/recipes/wip/libs/other/libxsimd/recipe.toml new file mode 100644 index 000000000..c2f013ce6 --- /dev/null +++ b/recipes/wip/libs/other/libxsimd/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/xtensor-stack/xsimd#install-from-sources +[source] +git = "https://github.com/xtensor-stack/xsimd" +rev = "c1247bffa8fc36de7380a5cd42673a3b32f74c97" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libxslt/recipe.toml b/recipes/wip/libs/other/libxslt/recipe.toml new file mode 100644 index 000000000..b8458e0d1 --- /dev/null +++ b/recipes/wip/libs/other/libxslt/recipe.toml @@ -0,0 +1,20 @@ +[source] +tar = "https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.43.tar.xz" +blake3 = "6c529acc02344fe48377810debadaee8eb0511a5553a8b7bea685d5282ab00cb" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libxml2", + "xz", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +export CFLAGS="-llzma -lz" +cookbook_configure --without-python +""" diff --git a/recipes/wip/libs/other/libxss/recipe.toml b/recipes/wip/libs/other/libxss/recipe.toml new file mode 100644 index 000000000..e1aab827a --- /dev/null +++ b/recipes/wip/libs/other/libxss/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing xorg-macros package +[source] +tar = "https://www.x.org/releases/individual/lib/libXScrnSaver-1.2.4.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libxtl/recipe.toml b/recipes/wip/libs/other/libxtl/recipe.toml new file mode 100644 index 000000000..3c1a82981 --- /dev/null +++ b/recipes/wip/libs/other/libxtl/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/xtensor-stack/xtl#install-from-sources +[source] +git = "https://github.com/xtensor-stack/xtl" +rev = "c95f6c8b13ffb7f74f16d3fd6882668b79bd8412" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/libxtst/recipe.toml b/recipes/wip/libs/other/libxtst/recipe.toml new file mode 100644 index 000000000..fd8a1f1df --- /dev/null +++ b/recipes/wip/libs/other/libxtst/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing dependencies +[source] +tar = "https://www.x.org/releases/individual/lib/libXtst-1.2.4.tar.xz" +[build] +template = "configure" +dependencies = [ + "libx11", + "libxi", + "libxext", +] \ No newline at end of file diff --git a/recipes/wip/libs/other/libxv/recipe.toml b/recipes/wip/libs/other/libxv/recipe.toml new file mode 100644 index 000000000..b7e0e649a --- /dev/null +++ b/recipes/wip/libs/other/libxv/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing xorg-macros package +[source] +tar = "https://www.x.org/releases/individual/lib/libXv-1.0.12.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libxvmc/recipe.toml b/recipes/wip/libs/other/libxvmc/recipe.toml new file mode 100644 index 000000000..e89d95ffc --- /dev/null +++ b/recipes/wip/libs/other/libxvmc/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing xorg-macros package +[source] +tar = "https://www.x.org/releases/individual/lib/libXvMC-1.0.13.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libyaml/recipe.toml b/recipes/wip/libs/other/libyaml/recipe.toml new file mode 100644 index 000000000..ba2c19b26 --- /dev/null +++ b/recipes/wip/libs/other/libyaml/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "http://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/libzimg/recipe.toml b/recipes/wip/libs/other/libzimg/recipe.toml new file mode 100644 index 000000000..cdb86d5d1 --- /dev/null +++ b/recipes/wip/libs/other/libzimg/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script +[source] +git = "https://github.com/sekrit-twc/zimg" +rev = "e5b0de6bebbcbc66732ed5afaafef6b2c7dfef87" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/libzug/recipe.toml b/recipes/wip/libs/other/libzug/recipe.toml new file mode 100644 index 000000000..378ad6a56 --- /dev/null +++ b/recipes/wip/libs/other/libzug/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# build instructions: https://github.com/arximboldi/zug#usage +[source] +git = "https://github.com/arximboldi/zug" +[build] +template = "cmake" +dependencies = [ + "boost", +] diff --git a/recipes/wip/libs/other/libzvbi/recipe.toml b/recipes/wip/libs/other/libzvbi/recipe.toml new file mode 100644 index 000000000..5c2df5113 --- /dev/null +++ b/recipes/wip/libs/other/libzvbi/recipe.toml @@ -0,0 +1,5 @@ +#TODO the redox target is not supported on the configure script +[source] +tar = "https://sourceforge.net/projects/zapping/files/zvbi/0.2.35/zvbi-0.2.35.tar.bz2/download" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/lilv/recipe.toml b/recipes/wip/libs/other/lilv/recipe.toml new file mode 100644 index 000000000..04e68ce91 --- /dev/null +++ b/recipes/wip/libs/other/lilv/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/lv2/lilv/-/blob/master/INSTALL.md?ref_type=heads +[source] +tar = "https://download.drobilla.net/lilv-0.24.20.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/liquid-dsp/recipe.toml b/recipes/wip/libs/other/liquid-dsp/recipe.toml new file mode 100644 index 000000000..05a486431 --- /dev/null +++ b/recipes/wip/libs/other/liquid-dsp/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script, see https://github.com/jgaeddert/liquid-dsp#installation-and-dependencies +[source] +git = "https://github.com/jgaeddert/liquid-dsp" +rev = "8bf87b6fe325d98c250d6911fa50518d14175d86" +[build] +template = "custom" +dependencies = [ + "fftw", +] diff --git a/recipes/wip/libs/other/livedotcom/recipe.toml b/recipes/wip/libs/other/livedotcom/recipe.toml new file mode 100644 index 000000000..fb50919ee --- /dev/null +++ b/recipes/wip/libs/other/livedotcom/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for the build system, see http://www.live555.com/liveMedia/#config-unix +[source] +tar = "http://www.live555.com/liveMedia/public/live555-latest.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/lrdf/recipe.toml b/recipes/wip/libs/other/lrdf/recipe.toml new file mode 100644 index 000000000..8029412d8 --- /dev/null +++ b/recipes/wip/libs/other/lrdf/recipe.toml @@ -0,0 +1,6 @@ +#TODO configuration error +[source] +git = "https://github.com/x42/LRDF" +rev = "e61f7aa4a1e240a884e3a0cb4b2db65046cfcaa6" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/lv2/recipe.toml b/recipes/wip/libs/other/lv2/recipe.toml new file mode 100644 index 000000000..e21a5da24 --- /dev/null +++ b/recipes/wip/libs/other/lv2/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/lv2/lv2/-/blob/master/INSTALL.md +[source] +tar = "https://lv2plug.in/spec/lv2-1.18.10.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/lzlib/recipe.toml b/recipes/wip/libs/other/lzlib/recipe.toml new file mode 100644 index 000000000..a092f870f --- /dev/null +++ b/recipes/wip/libs/other/lzlib/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +tar = "https://download.savannah.gnu.org/releases/lzip/lzlib/lzlib-1.14.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/m4/recipe.toml b/recipes/wip/libs/other/m4/recipe.toml new file mode 100644 index 000000000..0406b9505 --- /dev/null +++ b/recipes/wip/libs/other/m4/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz" +[build] +template = "configure" \ No newline at end of file diff --git a/recipes/wip/libs/other/maven/recipe.toml b/recipes/wip/libs/other/maven/recipe.toml new file mode 100644 index 000000000..fd7aef0a2 --- /dev/null +++ b/recipes/wip/libs/other/maven/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building, lacking build instructions +[source] +tar = "https://dlcdn.apache.org/maven/maven-3/3.9.5/source/apache-maven-3.9.5-src.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/mimalloc/recipe.toml b/recipes/wip/libs/other/mimalloc/recipe.toml new file mode 100644 index 000000000..a2d0b0bf1 --- /dev/null +++ b/recipes/wip/libs/other/mimalloc/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/microsoft/mimalloc#macos-linux-bsd-etc +[source] +git = "https://github.com/microsoft/mimalloc" +rev = "43ce4bd7fd34bcc730c1c7471c99995597415488" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/mlt/recipe.toml b/recipes/wip/libs/other/mlt/recipe.toml new file mode 100644 index 000000000..ca0822667 --- /dev/null +++ b/recipes/wip/libs/other/mlt/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/mltframework/mlt#readme +[source] +tar = "https://github.com/mltframework/mlt/releases/download/v7.22.0/mlt-7.22.0.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/mozangle/recipe.toml b/recipes/wip/libs/other/mozangle/recipe.toml new file mode 100644 index 000000000..08f3e5b10 --- /dev/null +++ b/recipes/wip/libs/other/mozangle/recipe.toml @@ -0,0 +1,41 @@ +[source] +git = "https://gitlab.redox-os.org/njskalski/mozangle.git" +branch = "redox_mods" +[build] +template = "custom" +dependencies = [ + "freetype2", + "gettext", + "glib", + "gstreamer", + "harfbuzz", + "libffi", + "libiconv", + "libx11", + "libxcb", + "libpng", + "openssl1", + "pcre", + "zlib", + + "x11proto", + "x11proto-kb", + "xcb-proto", + "xextproto", + "libxau", + "libpthread-stubs", + "fontconfig", + "expat", + "relibc", + "gcc13", +] + +script = """ + export TARGET=${TARGET} + export TARGET_CC=${TARGET}-gcc + export TARGET_CXX=${TARGET}-g++ + export TARGET_AR=${TARGET}-ar + + rsync -a --delete "${COOKBOOK_SOURCE}/" ./ + cargo build --release --target ${TARGET} +""" diff --git a/recipes/wip/libs/other/musepack/recipe.toml b/recipes/wip/libs/other/musepack/recipe.toml new file mode 100644 index 000000000..713b1ba09 --- /dev/null +++ b/recipes/wip/libs/other/musepack/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building, verify the tarball +[source] +tar = "https://files.musepack.net/source/musepack_src_r475.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/nlohmann-json/recipe.toml b/recipes/wip/libs/other/nlohmann-json/recipe.toml new file mode 100644 index 000000000..621c821ea --- /dev/null +++ b/recipes/wip/libs/other/nlohmann-json/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for installation, lacking a build system +[source] +tar = "https://github.com/nlohmann/json/releases/download/v3.11.2/json.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/oidn/recipe.toml b/recipes/wip/libs/other/oidn/recipe.toml new file mode 100644 index 000000000..798cff299 --- /dev/null +++ b/recipes/wip/libs/other/oidn/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/OpenImageDenoise/oidn#compiling-on-linuxmacos +[source] +git = "https://github.com/OpenImageDenoise/oidn" +[build] +template = "cmake" +dependencies = [ + "ispc", + "onetbb", +] diff --git a/recipes/wip/libs/other/onednn/recipe.toml b/recipes/wip/libs/other/onednn/recipe.toml new file mode 100644 index 000000000..5ea551878 --- /dev/null +++ b/recipes/wip/libs/other/onednn/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://oneapi-src.github.io/oneDNN/dev_guide_build.html#linux-macos +[source] +git = "https://github.com/oneapi-src/oneDNN" +rev = "16720eaaab9557158ff77ebf3bc610e9682928d6" +[build] +template = "cmake" +dependencies = [ + "onetbb", +] diff --git a/recipes/wip/libs/other/onetbb/recipe.toml b/recipes/wip/libs/other/onetbb/recipe.toml new file mode 100644 index 000000000..223a1d9e3 --- /dev/null +++ b/recipes/wip/libs/other/onetbb/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/oneapi-src/oneTBB/blob/master/INSTALL.md +[source] +git = "https://github.com/oneapi-src/oneTBB" +rev = "8b829acc65569019edb896c5150d427f288e8aba" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/openblas/recipe.toml b/recipes/wip/libs/other/openblas/recipe.toml new file mode 100644 index 000000000..0608466b5 --- /dev/null +++ b/recipes/wip/libs/other/openblas/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://github.com/OpenMathLib/OpenBLAS/wiki/Installation-Guide +#TODO require the Fortran frontend from GCC +[source] +tar = "https://github.com/OpenMathLib/OpenBLAS/releases/download/v0.3.25/OpenBLAS-0.3.25.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/opencolorio/recipe.toml b/recipes/wip/libs/other/opencolorio/recipe.toml new file mode 100644 index 000000000..270ca315e --- /dev/null +++ b/recipes/wip/libs/other/opencolorio/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://opencolorio.readthedocs.io/en/latest/quick_start/installation.html +#TODO missing dependencies, see https://opencolorio.readthedocs.io/en/latest/quick_start/installation.html#dependencies +[source] +git = "https://github.com/AcademySoftwareFoundation/OpenColorIO" +rev = "92db29b9e7e298c4c2cc67c8a74944c2e7e716e5" +[build] +template = "cmake" +dependencies = [ + "expat", + "imath", + "zlib", +] diff --git a/recipes/wip/libs/other/opencv4/recipe.toml b/recipes/wip/libs/other/opencv4/recipe.toml new file mode 100644 index 000000000..c2c16eac4 --- /dev/null +++ b/recipes/wip/libs/other/opencv4/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +git = "https://github.com/opencv/opencv" +rev = "49486f61fb25722cbcf586b7f4320921d46fb38e" + +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/openexr/recipe.toml b/recipes/wip/libs/other/openexr/recipe.toml new file mode 100644 index 000000000..f4e0aaaa7 --- /dev/null +++ b/recipes/wip/libs/other/openexr/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://openexr.com/en/latest/install.html#linux-macos +[source] +git = "https://github.com/AcademySoftwareFoundation/openexr" +rev = "737b2707a001e67f3812d86a639c3d037efe2ea8" +[build] +template = "cmake" +dependencies = [ + "libdeflate", + "libimath" +] diff --git a/recipes/wip/libs/other/openimageio/recipe.toml b/recipes/wip/libs/other/openimageio/recipe.toml new file mode 100644 index 000000000..667a1a890 --- /dev/null +++ b/recipes/wip/libs/other/openimageio/recipe.toml @@ -0,0 +1,26 @@ +#TODO missing script for building, see https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/master/INSTALL.md#building-openimageio-on-linux-or-os-x +# optional dependencies are disabled to make the program work with less effort +[source] +git = "https://github.com/AcademySoftwareFoundation/OpenImageIO" +rev = "5c29caab40a3913d415ac5d37cd84983e824c75b" +[build] +template = "custom" +dependencies = [ + "imath", + "libtiff", + "libjpeg", + "openexr", + "libfmt", + #"libpng", + #"boost", + #"opencv4", + #"ffmpeg6", + #"libwebp", + #"freetype2", + #"libraw", + #"openjpeg", + #"tbb", + #"libgif", + #"libheif", + #"libwebp", +] diff --git a/recipes/wip/libs/other/openjpeg/recipe.toml b/recipes/wip/libs/other/openjpeg/recipe.toml new file mode 100644 index 000000000..0a3fe8699 --- /dev/null +++ b/recipes/wip/libs/other/openjpeg/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/uclouvain/openjpeg/blob/master/INSTALL.md +[source] +git = "https://github.com/uclouvain/openjpeg" +rev = "a5891555eb49ed7cc26b2901ea680acda136d811" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/openmpi/recipe.toml b/recipes/wip/libs/other/openmpi/recipe.toml new file mode 100644 index 000000000..3b922fb5e --- /dev/null +++ b/recipes/wip/libs/other/openmpi/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing dependencies, see https://docs.open-mpi.org/en/v5.0.x/installing-open-mpi/required-support-libraries.html +#TODO make libevent works +[source] +tar = "https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.0.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libevent", +] diff --git a/recipes/wip/libs/other/openvkl/recipe.toml b/recipes/wip/libs/other/openvkl/recipe.toml new file mode 100644 index 000000000..c027c3693 --- /dev/null +++ b/recipes/wip/libs/other/openvkl/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://github.com/openvkl/openvkl#building-open-vkl-from-source +[source] +git = "https://github.com/openvkl/openvkl" +rev = "712bdb8035487606096d7af90a4c9bde5503515d" +[build] +template = "cmake" +dependencies = [ + "ispc", + "librkcommon", + "embree", + "level-zero", +] diff --git a/recipes/wip/libs/other/pangomm/recipe.toml b/recipes/wip/libs/other/pangomm/recipe.toml new file mode 100644 index 000000000..f7805c0f0 --- /dev/null +++ b/recipes/wip/libs/other/pangomm/recipe.toml @@ -0,0 +1,8 @@ +#TODO probably wrong template +[source] +tar = "https://download.gnome.org/sources/pangomm/2.50/pangomm-2.50.1.tar.xz" +[build] +template = "configure" +dependencies = [ + "pango", +] diff --git a/recipes/wip/libs/other/pjsip/recipe.toml b/recipes/wip/libs/other/pjsip/recipe.toml new file mode 100644 index 000000000..5f12bf79c --- /dev/null +++ b/recipes/wip/libs/other/pjsip/recipe.toml @@ -0,0 +1,12 @@ +#TODO make libvpx work +# customization - https://docs.pjsip.org/en/latest/get-started/posix/build_instructions.html +[source] +git = "https://github.com/pjsip/pjproject" +rev = "08578e86eea120c5ab2ab1af5a18b7840120d87b" +[build] +template = "configure" +dependencies = [ + "openssl1", + "ffmpeg6", + "libvpx", +] diff --git a/recipes/wip/libs/other/popt/recipe.toml b/recipes/wip/libs/other/popt/recipe.toml new file mode 100644 index 000000000..98a185693 --- /dev/null +++ b/recipes/wip/libs/other/popt/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://ftp.osuosl.org/pub/rpm/popt/releases/popt-1.x/popt-1.19.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/projectm/recipe.toml b/recipes/wip/libs/other/projectm/recipe.toml new file mode 100644 index 000000000..600f37601 --- /dev/null +++ b/recipes/wip/libs/other/projectm/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/projectM-visualizer/projectm/wiki/Building-libprojectM#build-and-install-projectm +[source] +git = "https://github.com/projectM-visualizer/projectm" +rev = "422af469731559c32c93e9513cebf2fe6c2fec78" +[build] +template = "cmake" +dependencies = [ + "mesa", + "qt5-base", +] diff --git a/recipes/wip/libs/other/pystring/recipe.toml b/recipes/wip/libs/other/pystring/recipe.toml new file mode 100644 index 000000000..8b0038462 --- /dev/null +++ b/recipes/wip/libs/other/pystring/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +git = "https://github.com/imageworks/pystring" +rev = "7d16bc814ccb4cad03c300dcb77440034caa84f7" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/quantlib/recipe.toml b/recipes/wip/libs/other/quantlib/recipe.toml new file mode 100644 index 000000000..bcecf3c08 --- /dev/null +++ b/recipes/wip/libs/other/quantlib/recipe.toml @@ -0,0 +1,9 @@ +#TODO make boost work +#TODO probably wrong template, see https://www.quantlib.org/install/linux.shtml +[source] +tar = "https://github.com/lballabio/QuantLib/releases/download/v1.32/QuantLib-1.32.tar.gz" +[build] +template = "configure" +dependencies = [ + "boost", +] diff --git a/recipes/wip/libs/other/raylib/recipe.toml b/recipes/wip/libs/other/raylib/recipe.toml new file mode 100644 index 000000000..011342983 --- /dev/null +++ b/recipes/wip/libs/other/raylib/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux +[source] +git = "https://github.com/raysan5/raylib" +rev = "ae50bfa2cc569c0f8d5bc4315d39db64005b1b08" +[build] +template = "cmake" +dependencies = [ + "mesa", + "libxkbcommon", +] diff --git a/recipes/wip/libs/other/rdflib/recipe.toml b/recipes/wip/libs/other/rdflib/recipe.toml new file mode 100644 index 000000000..6ca32ba54 --- /dev/null +++ b/recipes/wip/libs/other/rdflib/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for installation, the "pip" method can't be used, investigate the tarball +[source] +tar = "https://github.com/RDFLib/rdflib/releases/download/7.0.0/rdflib-7.0.0.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/rnnoise/recipe.toml b/recipes/wip/libs/other/rnnoise/recipe.toml new file mode 100644 index 000000000..1ba959ad2 --- /dev/null +++ b/recipes/wip/libs/other/rnnoise/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building +[source] +git = "https://gitlab.xiph.org/xiph/rnnoise" +[build] +template = "custom" diff --git a/recipes/wip/libs/other/rubberband/recipe.toml b/recipes/wip/libs/other/rubberband/recipe.toml new file mode 100644 index 000000000..e962cea6e --- /dev/null +++ b/recipes/wip/libs/other/rubberband/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://hg.sr.ht/~breakfastquay/rubberband/browse/COMPILING.md?rev=tip +[source] +tar = "https://breakfastquay.com/files/releases/rubberband-3.2.1.tar.bz2" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/rustls-openssl-compat/recipe.toml b/recipes/wip/libs/other/rustls-openssl-compat/recipe.toml new file mode 100644 index 000000000..1d0a435b6 --- /dev/null +++ b/recipes/wip/libs/other/rustls-openssl-compat/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for GNU Make +[source] +git = "https://github.com/rustls/rustls-openssl-compat" +[build] +template = "custom" +script = """ +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/rustls-libssl" +""" diff --git a/recipes/wip/libs/other/scotch/recipe.toml b/recipes/wip/libs/other/scotch/recipe.toml new file mode 100644 index 000000000..3cb29ed11 --- /dev/null +++ b/recipes/wip/libs/other/scotch/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.inria.fr/scotch/scotch#installation +#TODO probably missing dependencies +[source] +git = "https://gitlab.inria.fr/scotch/scotch" +rev = "82ec87f558f4acb7ccb69a079f531be380504c92" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/sdl-pango/recipe.toml b/recipes/wip/libs/other/sdl-pango/recipe.toml new file mode 100644 index 000000000..ca5de3788 --- /dev/null +++ b/recipes/wip/libs/other/sdl-pango/recipe.toml @@ -0,0 +1,6 @@ +#TODO can't recognize the redox target +#TODO probably missing dependencies +[source] +tar = "https://sourceforge.net/projects/sdlpango/files/SDL_Pango/0.1.2/SDL_Pango-0.1.2.tar.gz/download" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/sdl2-net/recipe.toml b/recipes/wip/libs/other/sdl2-net/recipe.toml new file mode 100644 index 000000000..f4f335410 --- /dev/null +++ b/recipes/wip/libs/other/sdl2-net/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://github.com/libsdl-org/SDL_net/releases/download/release-2.2.0/SDL2_net-2.2.0.tar.gz" +[build] +template = "cmake" +dependencies = [ + "sdl2", +] diff --git a/recipes/wip/libs/other/sdl2-pango/recipe.toml b/recipes/wip/libs/other/sdl2-pango/recipe.toml new file mode 100644 index 000000000..3e9cb3c7b --- /dev/null +++ b/recipes/wip/libs/other/sdl2-pango/recipe.toml @@ -0,0 +1,11 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/markuskimius/SDL2_Pango" +rev = "3afd884fddf8d81dbe2c140135deea0c79de31c1" +[build] +template = "configure" +dependencies = [ + "pango", + "freetype2", + "sdl2", +] diff --git a/recipes/wip/libs/other/sdl3/recipe.toml b/recipes/wip/libs/other/sdl3/recipe.toml new file mode 100644 index 000000000..4171f7199 --- /dev/null +++ b/recipes/wip/libs/other/sdl3/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from the cmake log +# 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" +[build] +template = "cmake" +cmakeflags = [ + "-DSDL_SHARED=ON", + "-DSDL_STATIC=OFF", + "-DSDL_TESTS=OFF", + "-DSDL_DISABLE_INSTALL_DOCS=ON", +] +dependencies = [ + "liborbital", + "mesa", +] diff --git a/recipes/wip/libs/other/simdjson/recipe.toml b/recipes/wip/libs/other/simdjson/recipe.toml new file mode 100644 index 000000000..5f162af51 --- /dev/null +++ b/recipes/wip/libs/other/simdjson/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://github.com/simdjson/simdjson" +rev = "0c0ce1bd48baa0677dc7c0945ea7cd1e8b52b297" # 3.13.0 +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cmake +""" diff --git a/recipes/wip/libs/other/simdutf/recipe.toml b/recipes/wip/libs/other/simdutf/recipe.toml new file mode 100644 index 000000000..faf1c2465 --- /dev/null +++ b/recipes/wip/libs/other/simdutf/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://github.com/simdutf/simdutf" +rev = "df8bfed3256cf5ca29969a9dd1db677e835b2c6c" # 7.3.5 +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cmake +""" diff --git a/recipes/wip/libs/other/snappy/recipe.toml b/recipes/wip/libs/other/snappy/recipe.toml new file mode 100644 index 000000000..6dd1ed2be --- /dev/null +++ b/recipes/wip/libs/other/snappy/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/google/snappy#building +[source] +git = "https://github.com/google/snappy" +rev = "dc05e026488865bc69313a68bcc03ef2e4ea8e83" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/sord/recipe.toml b/recipes/wip/libs/other/sord/recipe.toml new file mode 100644 index 000000000..a9335d540 --- /dev/null +++ b/recipes/wip/libs/other/sord/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/drobilla/sord/-/blob/master/INSTALL.md?ref_type=heads +[source] +tar = "https://download.drobilla.net/sord-0.16.14.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/sratom/recipe.toml b/recipes/wip/libs/other/sratom/recipe.toml new file mode 100644 index 000000000..dc1b31a28 --- /dev/null +++ b/recipes/wip/libs/other/sratom/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/lv2/sratom/-/blob/master/INSTALL.md?ref_type=heads +[source] +tar = "https://download.drobilla.net/sratom-0.6.14.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/suil/recipe.toml b/recipes/wip/libs/other/suil/recipe.toml new file mode 100644 index 000000000..49ff331ff --- /dev/null +++ b/recipes/wip/libs/other/suil/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/lv2/suil/-/blob/master/INSTALL.md?ref_type=heads +[source] +tar = "https://download.drobilla.net/suil-0.10.18.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/libs/other/t4kcommon/recipe.toml b/recipes/wip/libs/other/t4kcommon/recipe.toml new file mode 100644 index 000000000..abb1f9da4 --- /dev/null +++ b/recipes/wip/libs/other/t4kcommon/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing script for GNU Autotools, see https://github.com/tux4kids/t4kcommon/blob/master/INSTALL#L33 +[source] +git = "https://github.com/tux4kids/t4kcommon" +[build] +template = "custom" +dependencies = [ + "sdl1", + "sdl1_mixer", + "sdl1_image", + "sdl-pango", + "sdl2-net", + "libpng", + "libxml2", +] diff --git a/recipes/wip/libs/other/taglib/recipe.toml b/recipes/wip/libs/other/taglib/recipe.toml new file mode 100644 index 000000000..d75e92c6e --- /dev/null +++ b/recipes/wip/libs/other/taglib/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/taglib/taglib/blob/master/INSTALL.md +[source] +tar = "https://taglib.org/releases/taglib-1.13.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/termcap/recipe.toml b/recipes/wip/libs/other/termcap/recipe.toml new file mode 100644 index 000000000..77eadc226 --- /dev/null +++ b/recipes/wip/libs/other/termcap/recipe.toml @@ -0,0 +1,11 @@ +#TODO need testing +[source] +tar = "https://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz" +[build] +template = "custom" +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --prefix="${COOKBOOK_STAGE}/usr" +) +cookbook_configure +""" diff --git a/recipes/wip/libs/other/totem-pl-parser/recipe.toml b/recipes/wip/libs/other/totem-pl-parser/recipe.toml new file mode 100644 index 000000000..ebc359d50 --- /dev/null +++ b/recipes/wip/libs/other/totem-pl-parser/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://download.gnome.org/sources/totem-pl-parser/3.26/totem-pl-parser-3.26.6.tar.xz" +[build] +template = "meson" +dependencies = [ + "libxml2", + "glib", +] diff --git a/recipes/wip/libs/other/tree-sitter/recipe.toml b/recipes/wip/libs/other/tree-sitter/recipe.toml new file mode 100644 index 000000000..e5507e3e9 --- /dev/null +++ b/recipes/wip/libs/other/tree-sitter/recipe.toml @@ -0,0 +1,13 @@ +[source] +tar = "https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.25.8.tar.gz" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +PACKAGE_PATH=cli cookbook_cargo +cookbook_cmake "${COOKBOOK_SOURCE}"/lib +""" diff --git a/recipes/wip/libs/other/tree-sitter/redox.patch b/recipes/wip/libs/other/tree-sitter/redox.patch new file mode 100644 index 000000000..62c28d13f --- /dev/null +++ b/recipes/wip/libs/other/tree-sitter/redox.patch @@ -0,0 +1,45 @@ +diff --color -ruwN source/Cargo.toml source-new/Cargo.toml +--- source/Cargo.toml 2025-07-14 01:32:42.000000000 +0700 ++++ source-new/Cargo.toml 2025-09-16 11:37:28.820646655 +0700 +@@ -118,7 +118,7 @@ + dialoguer = { version = "0.11.0", features = ["fuzzy-select"] } + etcetera = "0.8.0" + filetime = "0.2.25" +-fs4 = "0.12.0" ++fs4 = { git = "https://github.com/al8n/fs4-rs" } # for redox support, still not published yet + git2 = "0.20.0" + glob = "0.3.2" + heck = "0.5.0" +@@ -151,7 +151,7 @@ + url = { version = "2.5.4", features = ["serde"] } + walkdir = "2.5.0" + wasmparser = "0.224.0" +-webbrowser = "1.0.3" ++webbrowser = "1.0.5" + + tree-sitter = { version = "0.25.1", path = "./lib" } + tree-sitter-generate = { version = "0.25.1", path = "./cli/generate" } +diff --color -ruwN source/cli/src/fuzz/allocations.rs source-new/cli/src/fuzz/allocations.rs +--- source/cli/src/fuzz/allocations.rs 2025-07-14 01:32:42.000000000 +0700 ++++ source-new/cli/src/fuzz/allocations.rs 2025-09-16 11:39:56.112458323 +0700 +@@ -7,6 +7,7 @@ + }, + }; + ++#[cfg(not(target_os = "redox"))] + #[ctor::ctor] + unsafe fn initialize_allocation_recording() { + tree_sitter::set_allocator( +diff --color -ruwN source/lib/src/portable/endian.h source-new/lib/src/portable/endian.h +--- source/lib/src/portable/endian.h 2025-07-14 01:32:42.000000000 +0700 ++++ source-new/lib/src/portable/endian.h 2025-09-16 11:27:12.315211556 +0700 +@@ -24,7 +24,8 @@ + defined(__CYGWIN__) || \ + defined(__MSYS__) || \ + defined(__EMSCRIPTEN__) || \ +- defined(__wasi__) ++ defined(__wasi__) || \ ++ defined(__redox__) + + #if defined(__NetBSD__) + #define _NETBSD_SOURCE 1 diff --git a/recipes/wip/libs/other/twolame/recipe.toml b/recipes/wip/libs/other/twolame/recipe.toml new file mode 100644 index 000000000..74a1e63b5 --- /dev/null +++ b/recipes/wip/libs/other/twolame/recipe.toml @@ -0,0 +1,5 @@ +#TODO Compiled but not tested +[source] +tar = "https://downloads.sourceforge.net/twolame/twolame-0.4.0.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/vamp-plugin-sdk/recipe.toml b/recipes/wip/libs/other/vamp-plugin-sdk/recipe.toml new file mode 100644 index 000000000..98fdd6c41 --- /dev/null +++ b/recipes/wip/libs/other/vamp-plugin-sdk/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error +[source] +tar = "https://code.soundsoftware.ac.uk/attachments/download/2588/vamp-plugin-sdk-2.9.0.tar.gz" +[build] +template = "configure" +dependencies = [ + "libsndfile", +] diff --git a/recipes/wip/libs/other/volk/recipe.toml b/recipes/wip/libs/other/volk/recipe.toml new file mode 100644 index 000000000..4752dcaed --- /dev/null +++ b/recipes/wip/libs/other/volk/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/gnuradio/volk#building-on-most-x86-32-bit-and-64-bit-platforms +[source] +tar = "https://www.libvolk.org/releases/volk-3.0.0.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/webkit/recipe.toml b/recipes/wip/libs/other/webkit/recipe.toml new file mode 100644 index 000000000..a2fad060e --- /dev/null +++ b/recipes/wip/libs/other/webkit/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://webkitgtk.org/releases/webkit-1.9.6.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/other/webkitgtk3/recipe.toml b/recipes/wip/libs/other/webkitgtk3/recipe.toml new file mode 100644 index 000000000..7287e8e64 --- /dev/null +++ b/recipes/wip/libs/other/webkitgtk3/recipe.toml @@ -0,0 +1,74 @@ +#TODO runtime hangs +[source] +tar = "https://webkitgtk.org/releases/webkitgtk-2.49.1.tar.xz" +blake3 = "7f04acb2f909ad334fc623afb297ebca1d5a5005bda1682946fb37e044e45ecb" +patches = ["redox.patch"] + +[build] +template = "custom" +dependencies = [ + "gtk3", + "libatomic", + "libgcrypt", + "libsoup", + "libstdcxx-v3", + "libtasn1", + "libwebp", + "sqlite3", +] +script = """ +DYNAMIC_INIT +export WEBKIT_USE_SCCACHE=1 +export PYTHONDONTWRITEBYTECODE=1 +#TODO: enable more features +COOKBOOK_CMAKE_FLAGS+=( + -DENABLE_ASSERTS=ON + -DENABLE_GAMEPAD=OFF + -DENABLE_INTROSPECTION=OFF + -DENABLE_MEDIA_STREAM=OFF + -DENABLE_JOURNALD_LOG=OFF + -DENABLE_RELEASE_LOG=ON + -DENABLE_SPEECH_SYNTHESIS=OFF + -DENABLE_SPELLCHECK=OFF + -DENABLE_WEB_AUDIO=OFF + -DENABLE_WEB_CODECS=OFF + -DENABLE_VIDEO=OFF + -DPORT=GTK + -DUNIX=1 + -DUSE_AVIF=OFF + -DUSE_GSTREAMER_GL=OFF + -DUSE_GTK4=OFF + -DUSE_JPEGXL=OFF + -DUSE_LCMS=OFF + -DUSE_LIBBACKTRACE=OFF + -DUSE_LIBDRM=OFF + -DUSE_LIBHYPHEN=OFF + -DUSE_LIBSECRET=OFF + -DUSE_SKIA=OFF + -DUSE_SYSPROF_CAPTURE=OFF + -DUSE_SYSTEM_MALLOC=OFF + -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF + -DUSE_WOFF2=OFF + #TODO: remove these when runtime hangs solved + -DENABLE_JIT=OFF + -DENABLE_DFG_JIT=OFF + -DENABLE_FTL_JIT=OFF + -DENABLE_OPENGL=OFF + -DENABLE_WEBGL=OFF + -DENABLE_XSLT=OFF + -DENABLE_GEOLOCATION=OFF + -DENABLE_WEBDRIVER=OFF + -DENABLE_BUBBLEWRAP_SANDBOX=OFF + -DUSE_LCMS=OFF +) + +cookbook_cmake + +patchelf --replace-needed "${COOKBOOK_SYSROOT}/usr/lib/libsqlite3.so" "libsqlite3.so" "${COOKBOOK_STAGE}/usr/lib/libwebkit2gtk-4.1.so" +patchelf --replace-needed "${COOKBOOK_SYSROOT}/usr/lib/libsqlite3.so" "libsqlite3.so" "${COOKBOOK_STAGE}/usr/libexec/webkit2gtk-4.1/MiniBrowser" +mkdir -p "${COOKBOOK_STAGE}/usr/bin" +ln -sr "${COOKBOOK_STAGE}/usr/libexec/webkit2gtk-4.1/MiniBrowser" "${COOKBOOK_STAGE}/usr/bin/MiniBrowser" +""" + +[package] +dependencies = ["glib-networking"] diff --git a/recipes/wip/libs/other/webkitgtk3/redox.patch b/recipes/wip/libs/other/webkitgtk3/redox.patch new file mode 100644 index 000000000..a193e23ea --- /dev/null +++ b/recipes/wip/libs/other/webkitgtk3/redox.patch @@ -0,0 +1,601 @@ +diff -ruwN source/Source/bmalloc/bmalloc/BPlatform.h source-new/Source/bmalloc/bmalloc/BPlatform.h +--- source/Source/bmalloc/bmalloc/BPlatform.h 2025-03-28 13:18:28.347204000 +0700 ++++ source-new/Source/bmalloc/bmalloc/BPlatform.h 2025-10-07 20:55:41.123161164 +0700 +@@ -40,7 +40,7 @@ + #define BOS_DARWIN 1 + #endif + +-#if defined(__unix) || defined(__unix__) ++#if defined(__unix) || defined(__unix__) || defined(__redox__) + #define BOS_UNIX 1 + #endif + +@@ -339,7 +339,7 @@ + + /* BENABLE(LIBPAS) is enabling libpas build. But this does not mean we use libpas for bmalloc replacement. */ + #if !defined(BENABLE_LIBPAS) +-#if BCPU(ADDRESS64) && (BOS(DARWIN) || (BOS(LINUX) && (BCPU(X86_64) || BCPU(ARM64))) || BPLATFORM(PLAYSTATION)) ++#if BCPU(ADDRESS64) && (BOS(DARWIN) || (BOS(LINUX) && (BCPU(X86_64) || BCPU(ARM64))) || BPLATFORM(PLAYSTATION)) || defined(__redox__) + #define BENABLE_LIBPAS 1 + #ifndef PAS_BMALLOC + #define PAS_BMALLOC 1 +diff -ruwN source/Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.c source-new/Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.c +--- source/Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.c 2023-09-18 14:56:46.731077000 +0700 ++++ source-new/Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.c 2025-10-07 22:23:20.298893452 +0700 +@@ -57,6 +57,8 @@ + + #if PAS_OS(LINUX) + PAS_SYSCALL(mincore(object, size, (unsigned char*)vector->raw_data)); ++#elif PAS_OS(REDOX) ++ // no op + #else + PAS_SYSCALL(mincore(object, size, vector->raw_data)); + #endif +diff -ruwN source/Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.h source-new/Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.h +--- source/Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.h 2023-09-18 14:56:46.731077000 +0700 ++++ source-new/Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.h 2025-10-07 22:23:29.232045934 +0700 +@@ -56,6 +56,8 @@ + PAS_ASSERT(page_index < vector->size); + #if PAS_OS(LINUX) + return vector->raw_data[page_index]; ++#elif PAS_OS(REDOX) ++ return true; // redox don't have swap yet + #else + return vector->raw_data[page_index] & (MINCORE_REFERENCED | + MINCORE_REFERENCED_OTHER | +diff -ruwN source/Source/bmalloc/libpas/src/libpas/pas_monotonic_time.c source-new/Source/bmalloc/libpas/src/libpas/pas_monotonic_time.c +--- source/Source/bmalloc/libpas/src/libpas/pas_monotonic_time.c 2023-09-18 14:56:46.743076800 +0700 ++++ source-new/Source/bmalloc/libpas/src/libpas/pas_monotonic_time.c 2025-10-07 22:23:50.202403881 +0700 +@@ -89,6 +89,15 @@ + return ts.tv_sec * 1000u * 1000u * 1000u + ts.tv_nsec; + } + ++ ++#elif PAS_OS(REDOX) ++ ++uint64_t pas_get_current_monotonic_time_nanoseconds(void) ++{ ++ struct timespec ts; ++ clock_gettime(CLOCK_MONOTONIC, &ts); ++ return (uint64_t)ts.tv_sec * 1000000000 + (uint64_t)ts.tv_nsec; ++} + #endif + + #endif /* LIBPAS_ENABLED */ +diff -ruwN source/Source/bmalloc/libpas/src/libpas/pas_page_malloc.c source-new/Source/bmalloc/libpas/src/libpas/pas_page_malloc.c +--- source/Source/bmalloc/libpas/src/libpas/pas_page_malloc.c 2024-12-20 17:10:23.123508500 +0700 ++++ source-new/Source/bmalloc/libpas/src/libpas/pas_page_malloc.c 2025-10-07 22:26:27.358086406 +0700 +@@ -228,6 +228,8 @@ + PAS_SYSCALL(madvise(ptr, size, MADV_DODUMP)); + #elif PAS_PLATFORM(PLAYSTATION) + // We don't need to call madvise to map page. ++#elif PAS_OS(REDOX) ++ // madvise not implemented + #elif PAS_OS(FREEBSD) + PAS_SYSCALL(madvise(ptr, size, MADV_NORMAL)); + #endif +@@ -276,6 +278,8 @@ + #elif PAS_OS(LINUX) + PAS_SYSCALL(madvise(ptr, size, MADV_DONTNEED)); + PAS_SYSCALL(madvise(ptr, size, MADV_DONTDUMP)); ++#elif PAS_OS(REDOX) ++ // madvise not implemented + #else + PAS_SYSCALL(madvise(ptr, size, MADV_DONTNEED)); + #endif +diff -ruwN source/Source/bmalloc/libpas/src/libpas/pas_platform.h source-new/Source/bmalloc/libpas/src/libpas/pas_platform.h +--- source/Source/bmalloc/libpas/src/libpas/pas_platform.h 2024-11-07 21:16:41.458338300 +0700 ++++ source-new/Source/bmalloc/libpas/src/libpas/pas_platform.h 2025-10-07 22:22:50.849390772 +0700 +@@ -132,6 +132,10 @@ + #define PAS_OS_LINUX 1 + #endif + ++#ifdef __redox__ ++#define PAS_OS_REDOX 1 ++#endif ++ + #if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__) + #define PAS_OS_FREEBSD 1 + #endif +diff -ruwN source/Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c source-new/Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c +--- source/Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c 2025-03-27 13:32:32.679094000 +0700 ++++ source-new/Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c 2025-10-07 22:27:40.764339395 +0700 +@@ -165,16 +165,6 @@ + mprotect_res = mprotect((void*)upper_guard, upper_guard_size, PROT_NONE); + PAS_ASSERT(!mprotect_res); + +- /* +- * ensure physical addresses are released +- * TODO: investigate using MADV_FREE_REUSABLE instead +- */ +- int madvise_res = madvise((void*)upper_guard, upper_guard_size, MADV_FREE); +- PAS_ASSERT(!madvise_res); +- +- madvise_res = madvise((void*)lower_guard, lower_guard_size, MADV_FREE); +- PAS_ASSERT(!madvise_res); +- + PAS_PROFILE(PGM_ALLOCATE, heap_config, key); + + /* create struct to hold hash map value */ +@@ -231,13 +221,6 @@ + int mprotect_res = mprotect((void*)value->start_of_data_pages, value->size_of_data_pages, PROT_NONE); + PAS_ASSERT(!mprotect_res); + +- /* +- * ensure physical addresses are released +- * TODO: investigate using MADV_FREE_REUSABLE instead +- */ +- int madvise_res = madvise((void*)value->start_of_data_pages, value->size_of_data_pages, MADV_FREE); +- PAS_ASSERT(!madvise_res); +- + free_wasted_mem += value->mem_to_waste; + free_virtual_mem += value->size_of_allocated_pages; + +diff -ruwN source/Source/JavaScriptCore/heap/BlockDirectory.cpp source-new/Source/JavaScriptCore/heap/BlockDirectory.cpp +--- source/Source/JavaScriptCore/heap/BlockDirectory.cpp 2025-03-21 00:07:59.015023500 +0700 ++++ source-new/Source/JavaScriptCore/heap/BlockDirectory.cpp 2025-09-09 09:08:03.419985553 +0700 +@@ -68,7 +68,7 @@ + // FIXME: We should figure out a solution for Windows and PlayStation. + // QNX doesn't have mincore(), though the information can be had. But since all mapped + // pages are resident, does it matter? +-#if OS(UNIX) && !PLATFORM(PLAYSTATION) && !OS(QNX) && !OS(HAIKU) ++#if OS(UNIX) && !PLATFORM(PLAYSTATION) && !OS(QNX) && !OS(HAIKU) && !defined(__redox__) + size_t pageSize = WTF::pageSize(); + ASSERT(!(MarkedBlock::blockSize % pageSize)); + auto numberOfPagesInMarkedBlock = MarkedBlock::blockSize / pageSize; +diff -ruwN source/Source/JavaScriptCore/jsc.cpp source-new/Source/JavaScriptCore/jsc.cpp +--- source/Source/JavaScriptCore/jsc.cpp 2025-03-21 18:07:10.820055200 +0700 ++++ source-new/Source/JavaScriptCore/jsc.cpp 2025-09-09 09:08:03.446985840 +0700 +@@ -208,6 +208,8 @@ + for (;;) { + #if OS(WINDOWS) + Sleep(1000); ++#elif defined(__redox__) ++ //TODO + #else + pause(); + #endif +diff -ruwN source/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp source-new/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp +--- source/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp 2025-03-21 00:07:59.015023500 +0700 ++++ source-new/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp 2025-09-09 09:08:03.446985840 +0700 +@@ -37,7 +37,7 @@ + #include + #include + #include +-#else ++#elif !defined(__redox__) + #include + #endif + #endif +@@ -66,7 +66,7 @@ + } + cacheVersion.construct(0); + dataLogLnIf(JSCBytecodeCacheVersionInternal::verbose, "Failed to get UUID for JavaScriptCore framework"); +-#elif OS(UNIX) && !PLATFORM(PLAYSTATION) && !OS(HAIKU) ++#elif OS(UNIX) && !PLATFORM(PLAYSTATION) && !OS(HAIKU) && !defined(__redox__) + auto result = ([&] -> std::optional { + Dl_info info { }; + if (!dladdr(jsFunctionAddr, &info)) +diff -ruwN source/Source/JavaScriptCore/runtime/MachineContext.h source-new/Source/JavaScriptCore/runtime/MachineContext.h +--- source/Source/JavaScriptCore/runtime/MachineContext.h 2025-03-21 00:07:59.015023500 +0700 ++++ source-new/Source/JavaScriptCore/runtime/MachineContext.h 2025-09-09 09:08:03.473986127 +0700 +@@ -158,7 +158,7 @@ + { + #if OS(DARWIN) + return stackPointerImpl(machineContext->__ss); +-#elif OS(HAIKU) ++#elif OS(HAIKU) || defined(__redox__) + #if CPU(X86_64) + return reinterpret_cast(machineContext.rsp); + #else +@@ -287,7 +287,7 @@ + { + #if OS(DARWIN) + return framePointerImpl(machineContext->__ss); +-#elif OS(HAIKU) ++#elif OS(HAIKU) || defined(__redox__) + #if CPU(X86_64) + return reinterpret_cast(machineContext.rbp); + #else +@@ -455,7 +455,7 @@ + { + #if OS(DARWIN) + return instructionPointerImpl(machineContext->__ss); +-#elif OS(HAIKU) ++#elif OS(HAIKU) || defined(__redox__) + #if CPU(X86_64) + return reinterpret_cast((uintptr_t&) machineContext.rip); + #else +@@ -649,7 +649,7 @@ + { + #if OS(DARWIN) + return argumentPointer<1>(machineContext->__ss); +-#elif OS(HAIKU) ++#elif OS(HAIKU) || defined(__redox__) + #if CPU(X86_64) + return reinterpret_cast((uintptr_t&) machineContext.rsi); + #else +@@ -760,6 +760,13 @@ + #error Unknown Architecture + #endif + ++#elif defined(__redox__) ++#if CPU(X86_64) ++ return reinterpret_cast((uintptr_t) machineContext.rbx); ++#else ++#error Unknown Architecture ++#endif ++ + #else + #error Need a way to get the frame pointer for another thread on this platform + #endif +@@ -834,7 +841,7 @@ + // LLInt uses regT4 as PC. + #if OS(DARWIN) + return llintInstructionPointer(machineContext->__ss); +-#elif OS(HAIKU) ++#elif OS(HAIKU) || defined(__redox__) + #if CPU(X86_64) + return reinterpret_cast((uintptr_t&) machineContext.r8); + #else +diff -ruwN source/Source/ThirdParty/ANGLE/GLESv2.cmake source-new/Source/ThirdParty/ANGLE/GLESv2.cmake +--- source/Source/ThirdParty/ANGLE/GLESv2.cmake 2025-02-17 19:59:58.567796700 +0700 ++++ source-new/Source/ThirdParty/ANGLE/GLESv2.cmake 2025-09-09 09:08:03.495986361 +0700 +@@ -120,7 +120,7 @@ + + if(is_linux OR is_chromeos OR is_android OR is_fuchsia) + list(APPEND libangle_common_sources +- "src/common/system_utils_linux.cpp" ++ #"src/common/system_utils_linux.cpp" + "src/common/system_utils_posix.cpp" + ) + endif() +diff -ruwN source/Source/ThirdParty/ANGLE/PlatformGTK.cmake source-new/Source/ThirdParty/ANGLE/PlatformGTK.cmake +--- source/Source/ThirdParty/ANGLE/PlatformGTK.cmake 2023-10-21 14:33:32.730009300 +0700 ++++ source-new/Source/ThirdParty/ANGLE/PlatformGTK.cmake 2025-09-09 09:08:03.500986415 +0700 +@@ -1,4 +1,4 @@ +-list(APPEND ANGLE_DEFINITIONS ANGLE_PLATFORM_LINUX EGL_NO_PLATFORM_SPECIFIC_TYPES USE_SYSTEM_EGL) ++list(APPEND ANGLE_DEFINITIONS ANGLE_PLATFORM_POSIX EGL_NO_PLATFORM_SPECIFIC_TYPES USE_SYSTEM_EGL) + include(linux.cmake) + + if (USE_OPENGL) +diff -ruwN source/Source/ThirdParty/ANGLE/src/common/log_utils.h source-new/Source/ThirdParty/ANGLE/src/common/log_utils.h +--- source/Source/ThirdParty/ANGLE/src/common/log_utils.h 2025-02-17 19:59:58.571796700 +0700 ++++ source-new/Source/ThirdParty/ANGLE/src/common/log_utils.h 2025-09-09 09:08:03.501986425 +0700 +@@ -136,10 +136,12 @@ + return FmtHexAutoSized(os, fmt.mValue, fmt.mPrefix, "0x", '0'); + } + ++#if !defined(__redox__) + friend std::wostream &operator<<(std::wostream &wos, const FmtHexHelper &fmt) + { + return FmtHexAutoSized(wos, fmt.mValue, fmt.mPrefix, L"0x", L'0'); + } ++#endif + }; + + } // namespace priv +diff -ruwN source/Source/ThirdParty/ANGLE/src/common/platform.h source-new/Source/ThirdParty/ANGLE/src/common/platform.h +--- source/Source/ThirdParty/ANGLE/src/common/platform.h 2024-09-03 13:28:47.067031900 +0700 ++++ source-new/Source/ThirdParty/ANGLE/src/common/platform.h 2025-09-09 09:08:03.518986606 +0700 +@@ -28,7 +28,7 @@ + # define ANGLE_PLATFORM_POSIX 1 + #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || \ + defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \ +- defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__) ++ defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__) || defined(__redox__) + # define ANGLE_PLATFORM_POSIX 1 + #else + # error Unsupported platform. +diff -ruwN source/Source/ThirdParty/ANGLE/src/common/system_utils.h source-new/Source/ThirdParty/ANGLE/src/common/system_utils.h +--- source/Source/ThirdParty/ANGLE/src/common/system_utils.h 2024-05-30 18:59:22.953676200 +0700 ++++ source-new/Source/ThirdParty/ANGLE/src/common/system_utils.h 2025-09-09 09:08:03.536986798 +0700 +@@ -256,7 +256,9 @@ + } + #endif + +-void SetCurrentThreadName(const char *name); ++#if !defined(__redox__) ++void SetCurrentThreadName(const char *name) ++#endif + } // namespace angle + + #endif // COMMON_SYSTEM_UTILS_H_ +diff -ruwN source/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp source-new/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp +--- source/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp 2024-05-30 18:59:22.953676200 +0700 ++++ source-new/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp 2025-09-09 09:08:03.539986830 +0700 +@@ -33,6 +33,11 @@ + # include + #endif + ++#if defined(__redox__) ++#define SEGV_MAPERR 1 ++#define SEGV_ACCERR 2 ++#endif ++ + namespace angle + { + +diff -ruwN source/Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp source-new/Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp +--- source/Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp 2024-06-25 15:04:37.142420000 +0700 ++++ source-new/Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp 2025-09-09 09:08:03.557987021 +0700 +@@ -165,7 +165,9 @@ + + void AsyncWorkerPool::threadLoop() + { ++#if !defined(__redox__) + angle::SetCurrentThreadName("ANGLE-Worker"); ++#endif + + while (true) + { +diff -ruwN source/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp source-new/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp +--- source/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp 2025-02-05 16:14:42.678567400 +0700 ++++ source-new/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp 2025-09-09 09:08:03.577987234 +0700 +@@ -58,7 +58,7 @@ + # include "libANGLE/renderer/gl/wgl/DisplayWGL.h" + # elif ANGLE_ENABLE_CGL + # include "libANGLE/renderer/gl/cgl/DisplayCGL.h" +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(__redox__) + # include "libANGLE/renderer/gl/egl/DisplayEGL.h" + # if defined(ANGLE_USE_X11) + # include "libANGLE/renderer/gl/glx/DisplayGLX_api.h" +@@ -422,7 +422,7 @@ + impl = new rx::DisplayCGL(state); + break; + +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(__redox__) + # if defined(ANGLE_USE_GBM) + if (platformType == 0) + { +diff -ruwN source/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp source-new/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp +--- source/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp 2025-02-17 19:59:58.575796600 +0700 ++++ source-new/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp 2025-09-09 09:08:03.578987245 +0700 +@@ -142,7 +142,9 @@ + + angle::Result DispatchWorkThread::finishLoop() + { ++#if !defined(__redox__) + angle::SetCurrentThreadName("ANGLE-CL-CQD"); ++#endif + + while (true) + { +diff -ruwN source/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandQueue.cpp source-new/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandQueue.cpp +--- source/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandQueue.cpp 2025-02-05 16:14:42.690567300 +0700 ++++ source-new/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandQueue.cpp 2025-09-09 09:08:03.578987245 +0700 +@@ -378,7 +378,9 @@ + + void CleanUpThread::processTasks() + { ++#if !defined(__redox__) + angle::SetCurrentThreadName("ANGLE-GC"); ++#endif + + while (true) + { +diff -ruwN source/Source/ThirdParty/ANGLE/src/libGLESv2.gni source-new/Source/ThirdParty/ANGLE/src/libGLESv2.gni +--- source/Source/ThirdParty/ANGLE/src/libGLESv2.gni 2025-02-17 19:59:58.587796200 +0700 ++++ source-new/Source/ThirdParty/ANGLE/src/libGLESv2.gni 2025-09-09 09:08:03.578987245 +0700 +@@ -115,7 +115,7 @@ + + if (is_linux || is_chromeos || is_android || is_fuchsia) { + libangle_common_sources += [ +- "src/common/system_utils_linux.cpp", ++ #"src/common/system_utils_linux.cpp", + "src/common/system_utils_posix.cpp", + ] + } +diff -ruwN source/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h source-new/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h +--- source/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h 2024-08-14 15:56:17.506453500 +0700 ++++ source-new/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h 2025-09-09 09:08:03.579987255 +0700 +@@ -27,7 +27,7 @@ + #define HAVE_XLOCALE 0 + #endif + +-#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) ++#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__redox__) + #define HAVE_LOCALE_T 0 + #else + #define HAVE_LOCALE_T 1 +diff -ruwN source/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp source-new/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp +--- source/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp 2024-05-30 18:59:23.965655000 +0700 ++++ source-new/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp 2025-09-09 09:08:03.579987255 +0700 +@@ -126,7 +126,7 @@ + #elif defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 17 + completeSize = malloc_usable_size(addr); + SkASSERT(completeSize >= size); +- #elif defined(SK_BUILD_FOR_UNIX) ++ #elif defined(SK_BUILD_FOR_UNIX) && !defined(__redox__) + completeSize = malloc_usable_size(addr); + SkASSERT(completeSize >= size); + #elif defined(SK_BUILD_FOR_WIN) +diff -ruwN source/Source/WebCore/page/Page.cpp source-new/Source/WebCore/page/Page.cpp +--- source/Source/WebCore/page/Page.cpp 2025-04-01 14:53:09.527295000 +0700 ++++ source-new/Source/WebCore/page/Page.cpp 2025-09-09 09:08:03.580987266 +0700 +@@ -536,8 +536,10 @@ + if (RefPtr scrollingCoordinator = m_scrollingCoordinator) + scrollingCoordinator->pageDestroyed(); + ++#if ENABLE(RESOURCE_USAGE) + if (RefPtr resourceUsageOverlay = m_resourceUsageOverlay) + resourceUsageOverlay->detachFromPage(); ++#endif + + checkedBackForward()->close(); + if (!isUtilityPage()) +@@ -2981,9 +2983,11 @@ + return; + + m_shouldSuppressHDR = shouldSuppressHDR; ++ #if ENABLE(VIDEO) + forEachDocument([](auto& document) { + document.shouldSuppressHDRDidChange(); + }); ++ #endif + } + + #if ENABLE(MEDIA_STREAM) +diff -ruwN source/Source/WebCore/PlatformGTK.cmake source-new/Source/WebCore/PlatformGTK.cmake +--- source/Source/WebCore/PlatformGTK.cmake 2024-12-16 16:07:48.162613200 +0700 ++++ source-new/Source/WebCore/PlatformGTK.cmake 2025-09-09 09:08:03.580987266 +0700 +@@ -75,21 +75,18 @@ + ) + + list(APPEND WebCore_LIBRARIES +- ${ENCHANT_LIBRARIES} + ${GLIB_GIO_LIBRARIES} + ${GLIB_GMODULE_LIBRARIES} + ${GLIB_GOBJECT_LIBRARIES} + ${GLIB_LIBRARIES} + ${LIBSECRET_LIBRARIES} + ${LIBTASN1_LIBRARIES} +- ${HYPHEN_LIBRARIES} + ${UPOWERGLIB_LIBRARIES} + ${X11_X11_LIB} + GTK::GTK + ) + + list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES +- ${ENCHANT_INCLUDE_DIRS} + ${GIO_UNIX_INCLUDE_DIRS} + ${GLIB_INCLUDE_DIRS} + ${LIBSECRET_INCLUDE_DIRS} +diff -ruwN source/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp source-new/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp +--- source/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp 2025-03-31 16:35:43.461813700 +0700 ++++ source-new/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp 2025-09-09 09:08:03.591987383 +0700 +@@ -48,13 +48,13 @@ + #include + #endif + +-#if OS(DARWIN) ++#if OS(DARWIN) || defined(__redox__) + #define MSG_NOSIGNAL 0 + #endif + + // Although it's available on Darwin, SOCK_SEQPACKET seems to work differently + // than in traditional Unix so fallback to STREAM on that platform. +-#if defined(SOCK_SEQPACKET) && !OS(DARWIN) ++#if defined(SOCK_SEQPACKET) && !OS(DARWIN) && !defined(__redox__) + #define SOCKET_TYPE SOCK_SEQPACKET + #else + #if USE(GLIB) +diff -ruwN source/Source/WebKit/PlatformGTK.cmake source-new/Source/WebKit/PlatformGTK.cmake +--- source/Source/WebKit/PlatformGTK.cmake 2025-03-05 17:09:47.273706000 +0700 ++++ source-new/Source/WebKit/PlatformGTK.cmake 2025-09-09 09:08:03.644987947 +0700 +@@ -313,7 +313,6 @@ + ) + + list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +- ${ENCHANT_INCLUDE_DIRS} + ${GIO_UNIX_INCLUDE_DIRS} + ${GLIB_INCLUDE_DIRS} + ${GSTREAMER_INCLUDE_DIRS} +diff -ruwN source/Source/WTF/wtf/glib/FileSystemGlib.cpp source-new/Source/WTF/wtf/glib/FileSystemGlib.cpp +--- source/Source/WTF/wtf/glib/FileSystemGlib.cpp 2024-12-16 16:07:48.134613800 +0700 ++++ source-new/Source/WTF/wtf/glib/FileSystemGlib.cpp 2025-09-09 09:08:03.644987947 +0700 +@@ -70,7 +70,7 @@ + return CString({ readLinkBuffer, static_cast(result) }); + WTF_ALLOW_UNSAFE_BUFFER_USAGE_END + } +-#elif OS(HURD) ++#elif OS(HURD) || defined(__redox__) + CString currentExecutablePath() + { + return { }; +diff -ruwN source/Source/WTF/wtf/InlineASM.h source-new/Source/WTF/wtf/InlineASM.h +--- source/Source/WTF/wtf/InlineASM.h 2024-09-23 17:54:44.750106000 +0700 ++++ source-new/Source/WTF/wtf/InlineASM.h 2025-09-09 09:08:03.667988192 +0700 +@@ -89,7 +89,8 @@ + || OS(HURD) \ + || OS(NETBSD) \ + || OS(QNX) \ +- || OS(WINDOWS) ++ || OS(WINDOWS) \ ++ || defined(__redox__) + // GNU as-compatible syntax. + #define LOCAL_LABEL_STRING(name) ".L" #name + #endif +diff -ruwN source/Source/WTF/wtf/PlatformHave.h source-new/Source/WTF/wtf/PlatformHave.h +--- source/Source/WTF/wtf/PlatformHave.h 2025-04-02 19:09:45.800669000 +0700 ++++ source-new/Source/WTF/wtf/PlatformHave.h 2025-09-09 09:08:03.707988617 +0700 +@@ -231,7 +231,7 @@ + #define HAVE_MACH_MEMORY_ENTRY 1 + #endif + +-#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || OS(HAIKU) || OS(NETBSD) || OS(OPENBSD) || OS(LINUX) || OS(HURD) || OS(QNX)) && (CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(RISCV64))) ++#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || OS(HAIKU) || OS(NETBSD) || OS(OPENBSD) || OS(LINUX) || OS(HURD) || OS(QNX) || defined(__redox__)) && (CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(RISCV64))) + #define HAVE_MACHINE_CONTEXT 1 + #endif + +diff -ruwN source/Source/WTF/wtf/PlatformOS.h source-new/Source/WTF/wtf/PlatformOS.h +--- source/Source/WTF/wtf/PlatformOS.h 2025-04-03 12:49:09.282701700 +0700 ++++ source-new/Source/WTF/wtf/PlatformOS.h 2025-09-09 09:08:03.709988639 +0700 +@@ -143,7 +143,8 @@ + || OS(OPENBSD) \ + || defined(unix) \ + || defined(__unix) \ +- || defined(__unix__) ++ || defined(__unix__) \ ++ || defined(__redox__) + #define WTF_OS_UNIX 1 + #endif + +diff -ruwN source/Source/WTF/wtf/PlatformRegisters.h source-new/Source/WTF/wtf/PlatformRegisters.h +--- source/Source/WTF/wtf/PlatformRegisters.h 2024-11-20 20:56:01.847236400 +0700 ++++ source-new/Source/WTF/wtf/PlatformRegisters.h 2025-09-09 09:08:03.723988787 +0700 +@@ -39,6 +39,8 @@ + typedef ucontext_t mcontext_t; + #elif OS(QNX) + #include ++#elif defined(__redox__) ++#include + #else + #include + #endif +diff -ruwN source/Source/WTF/wtf/posix/CPUTimePOSIX.cpp source-new/Source/WTF/wtf/posix/CPUTimePOSIX.cpp +--- source/Source/WTF/wtf/posix/CPUTimePOSIX.cpp 2023-09-18 14:56:45.363115500 +0700 ++++ source-new/Source/WTF/wtf/posix/CPUTimePOSIX.cpp 2025-09-09 09:08:03.727988830 +0700 +@@ -47,10 +47,14 @@ + + Seconds CPUTime::forCurrentThread() + { ++#if defined(__redox__) ++ return Seconds(0); ++#else + struct timespec ts { }; + int ret = clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts); + RELEASE_ASSERT(!ret); + return Seconds(ts.tv_sec) + Seconds::fromNanoseconds(ts.tv_nsec); ++#endif + } + + } +diff -ruwN source/Source/WTF/wtf/posix/FileHandlePOSIX.cpp source-new/Source/WTF/wtf/posix/FileHandlePOSIX.cpp +--- source/Source/WTF/wtf/posix/FileHandlePOSIX.cpp 2025-03-21 18:07:10.828055100 +0700 ++++ source-new/Source/WTF/wtf/posix/FileHandlePOSIX.cpp 2025-09-09 09:08:03.757989149 +0700 +@@ -39,6 +39,10 @@ + #include + #include + ++#if defined(__redox__) ++#define MAP_FILE 0 ++#endif ++ + namespace WTF::FileSystemImpl { + + std::optional FileHandle::read(std::span data) +diff -ruwN source/Source/WTF/wtf/posix/ThreadingPOSIX.cpp source-new/Source/WTF/wtf/posix/ThreadingPOSIX.cpp +--- source/Source/WTF/wtf/posix/ThreadingPOSIX.cpp 2025-03-05 17:09:47.149706400 +0700 ++++ source-new/Source/WTF/wtf/posix/ThreadingPOSIX.cpp 2025-09-09 09:08:03.762989203 +0700 +@@ -356,7 +356,7 @@ + + void Thread::changePriority(int delta) + { +-#if HAVE(PTHREAD_SETSCHEDPARAM) ++#if HAVE(PTHREAD_SETSCHEDPARAM) && !defined(__redox__) + Locker locker { m_mutex }; + + int policy; diff --git a/recipes/wip/libs/other/webkitgtk4/recipe.toml b/recipes/wip/libs/other/webkitgtk4/recipe.toml new file mode 100644 index 000000000..d46196276 --- /dev/null +++ b/recipes/wip/libs/other/webkitgtk4/recipe.toml @@ -0,0 +1,100 @@ +#TODO not compiled or tested +[source] +tar = "https://webkitgtk.org/releases/webkitgtk-2.49.1.tar.xz" +blake3 = "7f04acb2f909ad334fc623afb297ebca1d5a5005bda1682946fb37e044e45ecb" +#patches = ["redox.patch"] + +[build] +template = "custom" +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + #TODO "gstreamer", + "gtk4", + "harfbuzz", + "libepoxy", + "libatomic", + "libffi", + "libgcrypt", + "libgpg-error", + "libiconv", + "libicu", + "libjpeg", + "libpng", + "libpsl", + "libpthread-stubs", + "libsoup", + "libtasn1", + "libwebp", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "libxi", + "libxml2", + "libxrandr", + "libxrender", + "libxslt", + "libxxf86vm", + "mesa-x11", + "nghttp2", + "pango", + "pcre2", + "pixman", + "shared-mime-info", + "sqlite3", + "x11proto", + "xextproto", + "xz", + "zlib", +] +script = """ +DYNAMIC_INIT +export WEBKIT_USE_SCCACHE=1 +export PYTHONDONTWRITEBYTECODE=1 +#TODO: enable more features +COOKBOOK_CMAKE_FLAGS+=( + -DENABLE_ASSERTS=ON + -DENABLE_GAMEPAD=OFF + -DENABLE_INTROSPECTION=OFF + -DENABLE_MEDIA_STREAM=OFF + -DENABLE_JOURNALD_LOG=OFF + -DENABLE_RELEASE_LOG=ON + -DENABLE_SPEECH_SYNTHESIS=OFF + -DENABLE_SPELLCHECK=OFF + -DENABLE_WEB_AUDIO=OFF + -DENABLE_WEB_CODECS=OFF + -DENABLE_VIDEO=OFF + -DPORT=GTK + -DUNIX=1 + -DUSE_AVIF=OFF + -DUSE_GSTREAMER_GL=OFF + -DUSE_GTK4=ON + -DUSE_JPEGXL=OFF + -DUSE_LCMS=OFF + -DUSE_LIBBACKTRACE=OFF + -DUSE_LIBDRM=OFF + -DUSE_LIBHYPHEN=OFF + -DUSE_LIBSECRET=OFF + -DUSE_SKIA=OFF + -DUSE_SYSPROF_CAPTURE=OFF + -DUSE_SYSTEM_MALLOC=OFF + -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF + -DUSE_WOFF2=OFF +) + +cookbook_cmake + +patchelf --replace-needed "${COOKBOOK_SYSROOT}/usr/lib/libsqlite3.so" "libsqlite3.so" "${COOKBOOK_STAGE}/usr/lib/libwebkit2gtk-4.1.so" +patchelf --replace-needed "${COOKBOOK_SYSROOT}/usr/lib/libsqlite3.so" "libsqlite3.so" "${COOKBOOK_STAGE}/usr/libexec/webkit2gtk-4.1/MiniBrowser" +mkdir -p "${COOKBOOK_STAGE}/usr/bin" +ln -sr "${COOKBOOK_STAGE}/usr/libexec/webkit2gtk-4.1/MiniBrowser" "${COOKBOOK_STAGE}/usr/bin/MiniBrowser" +""" diff --git a/recipes/wip/libs/other/wxpython/recipe.toml b/recipes/wip/libs/other/wxpython/recipe.toml new file mode 100644 index 000000000..d75808cb2 --- /dev/null +++ b/recipes/wip/libs/other/wxpython/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for Python, see https://wiki.wxpython.org/How%20to%20install%20wxPython#Installing_wxPython_from_source +[source] +tar = "https://files.pythonhosted.org/packages/aa/64/d749e767a8ce7bdc3d533334e03bb1106fc4e4803d16f931fada9007ee13/wxPython-4.2.1.tar.gz" +[build] +template = "custom" +dependencies = [ + "wxwidgets-gtk3", +] diff --git a/recipes/wip/libs/other/wxwidgets-gtk3/recipe.toml b/recipes/wip/libs/other/wxwidgets-gtk3/recipe.toml new file mode 100644 index 000000000..710c98871 --- /dev/null +++ b/recipes/wip/libs/other/wxwidgets-gtk3/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://github.com/wxWidgets/wxWidgets/blob/master/docs/gtk/install.md +[source] +tar = "https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.4/wxWidgets-3.2.4.tar.bz2" +[build] +template = "configure" +configureflags = [ + "--with-gtk", +] +dependencies = [ + "gtk3", +] diff --git a/recipes/wip/libs/other/xxhash/recipe.toml b/recipes/wip/libs/other/xxhash/recipe.toml new file mode 100644 index 000000000..902e13476 --- /dev/null +++ b/recipes/wip/libs/other/xxhash/recipe.toml @@ -0,0 +1,11 @@ +#TODO promote +[source] +git = "https://github.com/Cyan4973/xxHash" +rev = "bab7e27f4c6ae4efbb83dd99ae8a554423571635" # 0.8.3-dev (cmake support) +[build] +template = "custom" +script = """ +DYNAMIC_INIT +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}"/build/cmake +cookbook_cmake +""" diff --git a/recipes/wip/libs/other/yajl/recipe.toml b/recipes/wip/libs/other/yajl/recipe.toml new file mode 100644 index 000000000..b61e2cef4 --- /dev/null +++ b/recipes/wip/libs/other/yajl/recipe.toml @@ -0,0 +1,6 @@ +[source] +tar = "https://github.com/lloyd/yajl/archive/refs/tags/2.1.0.tar.gz" +blake3 = "25cbfe28df82d5699b8fa5db8b32797b34aff995c7ce35a5fb622cc68f90f0cb" + +[build] +template = "cmake" diff --git a/recipes/wip/libs/other/zlib-ng/recipe.toml b/recipes/wip/libs/other/zlib-ng/recipe.toml new file mode 100644 index 000000000..33171a7ef --- /dev/null +++ b/recipes/wip/libs/other/zlib-ng/recipe.toml @@ -0,0 +1,15 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/zlib-ng/zlib-ng" +rev = "2bc66887ddc0c50776811a27be68e34430d665e1" +[build] +template = "custom" +script = """ + export LDFLAGS="--static" + # See https://stackoverflow.com/questions/21396988/zlib-build-not-configuring-properly-with-cross-compiler-ignores-ar. + CHOST="${TARGET}" "${COOKBOOK_CONFIGURE}" \ + --prefix="" \ + --static + "${COOKBOOK_MAKE}" -j "$(nproc)" + "${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" +""" diff --git a/recipes/wip/libs/qt4/recipe.toml b/recipes/wip/libs/qt4/recipe.toml new file mode 100644 index 000000000..b45036ec2 --- /dev/null +++ b/recipes/wip/libs/qt4/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "http://download.qt.io/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-3d/recipe.toml b/recipes/wip/libs/qt5/qt5-3d/recipe.toml new file mode 100644 index 000000000..d0afd9140 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-3d/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qt3d-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-activeqt/recipe.toml b/recipes/wip/libs/qt5/qt5-activeqt/recipe.toml new file mode 100644 index 000000000..59f150405 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-activeqt/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtactiveqt-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-base/recipe.toml b/recipes/wip/libs/qt5/qt5-base/recipe.toml new file mode 100644 index 000000000..5543d5de1 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-base/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +#TODO determine dependencies +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtbase-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-charts/recipe.toml b/recipes/wip/libs/qt5/qt5-charts/recipe.toml new file mode 100644 index 000000000..98be6cf8e --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-charts/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtcharts-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-coap/recipe.toml b/recipes/wip/libs/qt5/qt5-coap/recipe.toml new file mode 100644 index 000000000..420b4a629 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-coap/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtcoap-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-connectivity/recipe.toml b/recipes/wip/libs/qt5/qt5-connectivity/recipe.toml new file mode 100644 index 000000000..15bf225c0 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-connectivity/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtconnectivity-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-datavis3d/recipe.toml b/recipes/wip/libs/qt5/qt5-datavis3d/recipe.toml new file mode 100644 index 000000000..5ea77e02b --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-datavis3d/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtdatavis3d-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-declarative/recipe.toml b/recipes/wip/libs/qt5/qt5-declarative/recipe.toml new file mode 100644 index 000000000..e2cc2d186 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-declarative/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtdeclarative-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-doc/recipe.toml b/recipes/wip/libs/qt5/qt5-doc/recipe.toml new file mode 100644 index 000000000..1fa55dae1 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-doc/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtdoc-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-full/recipe.toml b/recipes/wip/libs/qt5/qt5-full/recipe.toml new file mode 100644 index 000000000..9a2489de9 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-full/recipe.toml @@ -0,0 +1,27 @@ +#TODO not compiled or tested +# probably missing dependencies: https://doc.qt.io/archives/qt-5.15/linux-requirements.html +# build instructions: https://doc.qt.io/qt-5/linux-building.html +# customization: https://doc.qt.io/qt-5/configure-options.html +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.18/single/qt-everywhere-opensource-src-5.15.18.tar.xz" +[build] +template = "configure" +configureflags = [ + "-no-opengl", + "-no-feature-accessibility", +] +dependencies = [ + "fontconfig", + "freetype2", + #"mesa", + "libxkbcommon", + "libxcb", + "libx11", + "libxrender", + "libxext", + "libxfixes", + "libsm", + "libice", + "glib", + "gstreamer", +] diff --git a/recipes/wip/libs/qt5/qt5-gamepad/recipe.toml b/recipes/wip/libs/qt5/qt5-gamepad/recipe.toml new file mode 100644 index 000000000..388f43cdc --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-gamepad/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtgamepad-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-graphical-effects/recipe.toml b/recipes/wip/libs/qt5/qt5-graphical-effects/recipe.toml new file mode 100644 index 000000000..0ace4d54c --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-graphical-effects/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtgraphicaleffects-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-imageformats/recipe.toml b/recipes/wip/libs/qt5/qt5-imageformats/recipe.toml new file mode 100644 index 000000000..7878d3096 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-imageformats/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtimageformats-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-knx/recipe.toml b/recipes/wip/libs/qt5/qt5-knx/recipe.toml new file mode 100644 index 000000000..3b3a9c89d --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-knx/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtknx-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-location/recipe.toml b/recipes/wip/libs/qt5/qt5-location/recipe.toml new file mode 100644 index 000000000..53bdbce9c --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-location/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtlocation-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-lottie/recipe.toml b/recipes/wip/libs/qt5/qt5-lottie/recipe.toml new file mode 100644 index 000000000..2cd35ef77 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-lottie/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtlottie-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-mqtt/recipe.toml b/recipes/wip/libs/qt5/qt5-mqtt/recipe.toml new file mode 100644 index 000000000..02ad8a43d --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-mqtt/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtmqtt-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-multimedia/recipe.toml b/recipes/wip/libs/qt5/qt5-multimedia/recipe.toml new file mode 100644 index 000000000..7e9e3bf55 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-multimedia/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtmultimedia-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-networkauth/recipe.toml b/recipes/wip/libs/qt5/qt5-networkauth/recipe.toml new file mode 100644 index 000000000..2957c31a1 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-networkauth/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtnetworkauth-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-opcua/recipe.toml b/recipes/wip/libs/qt5/qt5-opcua/recipe.toml new file mode 100644 index 000000000..2d2ef6fd3 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-opcua/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtopcua-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-purchasing/recipe.toml b/recipes/wip/libs/qt5/qt5-purchasing/recipe.toml new file mode 100644 index 000000000..041a670eb --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-purchasing/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtpurchasing-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-quick3d/recipe.toml b/recipes/wip/libs/qt5/qt5-quick3d/recipe.toml new file mode 100644 index 000000000..74e77d9cd --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-quick3d/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtquick3d-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-quickcontrols/recipe.toml b/recipes/wip/libs/qt5/qt5-quickcontrols/recipe.toml new file mode 100644 index 000000000..484f41ad7 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-quickcontrols/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtquickcontrols-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-quickcontrols2/recipe.toml b/recipes/wip/libs/qt5/qt5-quickcontrols2/recipe.toml new file mode 100644 index 000000000..4bf0ef4f1 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-quickcontrols2/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtquickcontrols2-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-quicktimeline/recipe.toml b/recipes/wip/libs/qt5/qt5-quicktimeline/recipe.toml new file mode 100644 index 000000000..8f16018b2 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-quicktimeline/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtquicktimeline-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-remoteobjects/recipe.toml b/recipes/wip/libs/qt5/qt5-remoteobjects/recipe.toml new file mode 100644 index 000000000..355f298b3 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-remoteobjects/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtremoteobjects-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-script/recipe.toml b/recipes/wip/libs/qt5/qt5-script/recipe.toml new file mode 100644 index 000000000..e26c71683 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-script/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtscript-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-scxml/recipe.toml b/recipes/wip/libs/qt5/qt5-scxml/recipe.toml new file mode 100644 index 000000000..60185699d --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-scxml/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtscxml-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-sensors/recipe.toml b/recipes/wip/libs/qt5/qt5-sensors/recipe.toml new file mode 100644 index 000000000..85746d426 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-sensors/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtsensors-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-serialbus/recipe.toml b/recipes/wip/libs/qt5/qt5-serialbus/recipe.toml new file mode 100644 index 000000000..c10f4caa2 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-serialbus/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtserialbus-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-serialport/recipe.toml b/recipes/wip/libs/qt5/qt5-serialport/recipe.toml new file mode 100644 index 000000000..69b792837 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-serialport/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtserialport-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-speech/recipe.toml b/recipes/wip/libs/qt5/qt5-speech/recipe.toml new file mode 100644 index 000000000..08ef779bf --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-speech/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtspeech-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-svg/recipe.toml b/recipes/wip/libs/qt5/qt5-svg/recipe.toml new file mode 100644 index 000000000..1116339f9 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-svg/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtsvg-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-tools/recipe.toml b/recipes/wip/libs/qt5/qt5-tools/recipe.toml new file mode 100644 index 000000000..178a9fa0e --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-tools/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qttools-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-tqtc/recipe.toml b/recipes/wip/libs/qt5/qt5-tqtc/recipe.toml new file mode 100644 index 000000000..9ddd7a161 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-tqtc/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/tqtc-qt5-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-translations/recipe.toml b/recipes/wip/libs/qt5/qt5-translations/recipe.toml new file mode 100644 index 000000000..795935071 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-translations/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qttranslations-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-virtualkeyboard/recipe.toml b/recipes/wip/libs/qt5/qt5-virtualkeyboard/recipe.toml new file mode 100644 index 000000000..d997c0ff5 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-virtualkeyboard/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtvirtualkeyboard-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-wayland/recipe.toml b/recipes/wip/libs/qt5/qt5-wayland/recipe.toml new file mode 100644 index 000000000..1295aec35 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-wayland/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtwayland-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-webchannel/recipe.toml b/recipes/wip/libs/qt5/qt5-webchannel/recipe.toml new file mode 100644 index 000000000..6f76023c3 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-webchannel/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtwebchannel-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-webengine/recipe.toml b/recipes/wip/libs/qt5/qt5-webengine/recipe.toml new file mode 100644 index 000000000..47f22b6be --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-webengine/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtwebengine-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-webglplugin/recipe.toml b/recipes/wip/libs/qt5/qt5-webglplugin/recipe.toml new file mode 100644 index 000000000..6472115a6 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-webglplugin/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtwebglplugin-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-webkit/recipe.toml b/recipes/wip/libs/qt5/qt5-webkit/recipe.toml new file mode 100644 index 000000000..d36dd52b6 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-webkit/recipe.toml @@ -0,0 +1,28 @@ +#TODO not compiled or tested +# build instructions: https://github.com/qtwebkit/qtwebkit/wiki/Building-QtWebKit-on-Linux +#TODO determine dependencies +# probably wrong branch +[source] +git = "https://github.com/movableink/webkit" +[build] +template = "cmake" +dependencies = [ + "qt5-base", + "qt5-guiaddons", + "qt5-connectivity", + "qt5-networkauth", + "qt5-positioning", + "qt5-sensors", + "qt5-declarative", + "qt5-webchannel", + "sqlite3", + "libicu", + "libhyphen", + "libxml2", + "libxslt", + "libjpeg", + "libpng", + "zlib", + "glib", + "gstreamer", +] diff --git a/recipes/wip/libs/qt5/qt5-websockets/recipe.toml b/recipes/wip/libs/qt5/qt5-websockets/recipe.toml new file mode 100644 index 000000000..bd6a5c257 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-websockets/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtwebsockets-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-webview/recipe.toml b/recipes/wip/libs/qt5/qt5-webview/recipe.toml new file mode 100644 index 000000000..b175b83cd --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-webview/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtwebview-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-x11extras/recipe.toml b/recipes/wip/libs/qt5/qt5-x11extras/recipe.toml new file mode 100644 index 000000000..834f0c575 --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-x11extras/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtx11extras-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt5/qt5-xmlpatterns/recipe.toml b/recipes/wip/libs/qt5/qt5-xmlpatterns/recipe.toml new file mode 100644 index 000000000..e7892190b --- /dev/null +++ b/recipes/wip/libs/qt5/qt5-xmlpatterns/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/5.15/5.15.11/submodules/qtxmlpatterns-everywhere-opensource-src-5.15.11.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-3d/recipe.toml b/recipes/wip/libs/qt6/qt6-3d/recipe.toml new file mode 100644 index 000000000..0b947c67e --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-3d/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qt3d-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-activeqt/recipe.toml b/recipes/wip/libs/qt6/qt6-activeqt/recipe.toml new file mode 100644 index 000000000..ab07e79d5 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-activeqt/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtactiveqt-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-base/recipe.toml b/recipes/wip/libs/qt6/qt6-base/recipe.toml new file mode 100644 index 000000000..3a601c283 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-base/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +#TODO determine dependencies +[source] +tar = "https://download.qt.io/official_releases/qt/6.10/6.10.0/submodules/qtbase-everywhere-src-6.10.0.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-charts/recipe.toml b/recipes/wip/libs/qt6/qt6-charts/recipe.toml new file mode 100644 index 000000000..769871e35 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-charts/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtcharts-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-connectivity/recipe.toml b/recipes/wip/libs/qt6/qt6-connectivity/recipe.toml new file mode 100644 index 000000000..48cee1d2f --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-connectivity/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtconnectivity-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-datavis3d/recipe.toml b/recipes/wip/libs/qt6/qt6-datavis3d/recipe.toml new file mode 100644 index 000000000..7b5940de6 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-datavis3d/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtdatavis3d-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-declarative/recipe.toml b/recipes/wip/libs/qt6/qt6-declarative/recipe.toml new file mode 100644 index 000000000..174ab3529 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-declarative/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.10/6.10.0/submodules/qtdeclarative-everywhere-src-6.10.0.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-doc/recipe.toml b/recipes/wip/libs/qt6/qt6-doc/recipe.toml new file mode 100644 index 000000000..05f048e4e --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-doc/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtdoc-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-full/recipe.toml b/recipes/wip/libs/qt6/qt6-full/recipe.toml new file mode 100644 index 000000000..008ee427d --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-full/recipe.toml @@ -0,0 +1,34 @@ +#TODO not compiled or tested +# probably wrong template +# build instructions: https://doc.qt.io/qt-6/linux-building.html +# customization: https://doc.qt.io/qt-6/configure-options.html +[source] +tar = "https://download.qt.io/official_releases/qt/6.10/6.10.0/single/qt-everywhere-src-6.10.0.tar.xz" +[build] +template = "custom" +dependencies = [ + "fontconfig", + "freetype2", + #"mesa", + "libxkbcommon", + "libxcb", + "libx11", + "libxrender", + "libxext", + "libxfixes", + "libsm", + "libice", + "glib", + "gstreamer", + "openssl3", +] +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + -no-opengl + -no-feature-accessibility + -openssl-linked +) +cookbook_configure +cookbook_cmake +""" diff --git a/recipes/wip/libs/qt6/qt6-graphs/recipe.toml b/recipes/wip/libs/qt6/qt6-graphs/recipe.toml new file mode 100644 index 000000000..317c1b17c --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-graphs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtgraphs-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-grpc/recipe.toml b/recipes/wip/libs/qt6/qt6-grpc/recipe.toml new file mode 100644 index 000000000..6f5f535c9 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-grpc/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtgrpc-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-httpserver/recipe.toml b/recipes/wip/libs/qt6/qt6-httpserver/recipe.toml new file mode 100644 index 000000000..110d7c570 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-httpserver/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qthttpserver-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-imageformats/recipe.toml b/recipes/wip/libs/qt6/qt6-imageformats/recipe.toml new file mode 100644 index 000000000..a07e74d81 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-imageformats/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtimageformats-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-languageserver/recipe.toml b/recipes/wip/libs/qt6/qt6-languageserver/recipe.toml new file mode 100644 index 000000000..48b15cd3d --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-languageserver/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtlanguageserver-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-location/recipe.toml b/recipes/wip/libs/qt6/qt6-location/recipe.toml new file mode 100644 index 000000000..57e3710f0 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-location/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtlocation-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-lottie/recipe.toml b/recipes/wip/libs/qt6/qt6-lottie/recipe.toml new file mode 100644 index 000000000..4ff65b682 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-lottie/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtlottie-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-multimedia/recipe.toml b/recipes/wip/libs/qt6/qt6-multimedia/recipe.toml new file mode 100644 index 000000000..e373ff40e --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-multimedia/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.10/6.10.0/submodules/qtmultimedia-everywhere-src-6.10.0.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-networkauth/recipe.toml b/recipes/wip/libs/qt6/qt6-networkauth/recipe.toml new file mode 100644 index 000000000..14bcf151f --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-networkauth/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtnetworkauth-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-positioning/recipe.toml b/recipes/wip/libs/qt6/qt6-positioning/recipe.toml new file mode 100644 index 000000000..0d9f3ab79 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-positioning/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtpositioning-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-qt5compat/recipe.toml b/recipes/wip/libs/qt6/qt6-qt5compat/recipe.toml new file mode 100644 index 000000000..718def1a0 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-qt5compat/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qt5compat-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-quick3d/recipe.toml b/recipes/wip/libs/qt6/qt6-quick3d/recipe.toml new file mode 100644 index 000000000..f2a9b4b6c --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-quick3d/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtquick3d-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-quick3dphysics/recipe.toml b/recipes/wip/libs/qt6/qt6-quick3dphysics/recipe.toml new file mode 100644 index 000000000..f9b6e59b9 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-quick3dphysics/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtquick3dphysics-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-quickeffectmaker/recipe.toml b/recipes/wip/libs/qt6/qt6-quickeffectmaker/recipe.toml new file mode 100644 index 000000000..26e810648 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-quickeffectmaker/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtquickeffectmaker-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-quicktimeline/recipe.toml b/recipes/wip/libs/qt6/qt6-quicktimeline/recipe.toml new file mode 100644 index 000000000..65c0d7837 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-quicktimeline/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtquicktimeline-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-remoteobjects/recipe.toml b/recipes/wip/libs/qt6/qt6-remoteobjects/recipe.toml new file mode 100644 index 000000000..8601df868 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-remoteobjects/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtremoteobjects-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-scxml/recipe.toml b/recipes/wip/libs/qt6/qt6-scxml/recipe.toml new file mode 100644 index 000000000..f2eabe7a8 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-scxml/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtscxml-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-sensors/recipe.toml b/recipes/wip/libs/qt6/qt6-sensors/recipe.toml new file mode 100644 index 000000000..4406fa112 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-sensors/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtsensors-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-serialbus/recipe.toml b/recipes/wip/libs/qt6/qt6-serialbus/recipe.toml new file mode 100644 index 000000000..acae051ca --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-serialbus/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtserialbus-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-serialport/recipe.toml b/recipes/wip/libs/qt6/qt6-serialport/recipe.toml new file mode 100644 index 000000000..35b5a92e3 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-serialport/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtserialport-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-shadertools/recipe.toml b/recipes/wip/libs/qt6/qt6-shadertools/recipe.toml new file mode 100644 index 000000000..2168fed27 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-shadertools/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtshadertools-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-speech/recipe.toml b/recipes/wip/libs/qt6/qt6-speech/recipe.toml new file mode 100644 index 000000000..cc8953caa --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-speech/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtspeech-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-svg/recipe.toml b/recipes/wip/libs/qt6/qt6-svg/recipe.toml new file mode 100644 index 000000000..02d8513f3 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-svg/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.10/6.10.0/submodules/qtsvg-everywhere-src-6.10.0.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-tools/recipe.toml b/recipes/wip/libs/qt6/qt6-tools/recipe.toml new file mode 100644 index 000000000..6fd432fed --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-tools/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qttools-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-translations/recipe.toml b/recipes/wip/libs/qt6/qt6-translations/recipe.toml new file mode 100644 index 000000000..379ad873e --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-translations/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qttranslations-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-virtualkeyboard/recipe.toml b/recipes/wip/libs/qt6/qt6-virtualkeyboard/recipe.toml new file mode 100644 index 000000000..1698d8670 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-virtualkeyboard/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtvirtualkeyboard-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-wayland/recipe.toml b/recipes/wip/libs/qt6/qt6-wayland/recipe.toml new file mode 100644 index 000000000..313ce175b --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-wayland/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtwayland-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-webchannel/recipe.toml b/recipes/wip/libs/qt6/qt6-webchannel/recipe.toml new file mode 100644 index 000000000..f8088fcd3 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-webchannel/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtwebchannel-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-webengine/recipe.toml b/recipes/wip/libs/qt6/qt6-webengine/recipe.toml new file mode 100644 index 000000000..3f06e7427 --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-webengine/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtwebengine-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-websockets/recipe.toml b/recipes/wip/libs/qt6/qt6-websockets/recipe.toml new file mode 100644 index 000000000..a1982f0cc --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-websockets/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtwebsockets-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/qt6/qt6-webview/recipe.toml b/recipes/wip/libs/qt6/qt6-webview/recipe.toml new file mode 100644 index 000000000..bf07b3afe --- /dev/null +++ b/recipes/wip/libs/qt6/qt6-webview/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/submodules/qtwebview-everywhere-src-6.6.1.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/security/libacl/recipe.toml b/recipes/wip/libs/security/libacl/recipe.toml new file mode 100644 index 000000000..247d5ebe9 --- /dev/null +++ b/recipes/wip/libs/security/libacl/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't find the attr/error_context.h file +[source] +tar = "https://download.savannah.nongnu.org/releases/acl/acl-2.3.2.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/text/hunspell/recipe.toml b/recipes/wip/libs/text/hunspell/recipe.toml new file mode 100644 index 000000000..d47505e6b --- /dev/null +++ b/recipes/wip/libs/text/hunspell/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/hunspell/hunspell#compiling-on-gnulinux-and-unixes +[source] +tar = "https://github.com/hunspell/hunspell/releases/download/v1.7.2/hunspell-1.7.2.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/libs/text/libspelling/recipe.toml b/recipes/wip/libs/text/libspelling/recipe.toml new file mode 100644 index 000000000..a69b02113 --- /dev/null +++ b/recipes/wip/libs/text/libspelling/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://download.gnome.org/sources/libspelling/0.4/libspelling-0.4.9.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Ddocs=false", + "-Dintrospection=false", + "-Dsysproof=false", + "-Dvapi=false", +] diff --git a/recipes/wip/libs/tikv-jemallocator/recipe.toml b/recipes/wip/libs/tikv-jemallocator/recipe.toml new file mode 100644 index 000000000..7d4af5ef9 --- /dev/null +++ b/recipes/wip/libs/tikv-jemallocator/recipe.toml @@ -0,0 +1,12 @@ +#TODO "No suitable wgpu::Adapter found" error on execution +[source] +git = "https://gitlab.redox-os.org/njskalski/jemallocator.git" +branch = "redox_mods" +[build] +template = "custom" + +script = """ +# Build the library crates +"${COOKBOOK_REDOXER}" build --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" --workspace --release +# Library crates don't need installation, they're used as dependencies +""" diff --git a/recipes/wip/libs/tls/gnutls3/recipe.toml b/recipes/wip/libs/tls/gnutls3/recipe.toml new file mode 100644 index 000000000..f94d1261b --- /dev/null +++ b/recipes/wip/libs/tls/gnutls3/recipe.toml @@ -0,0 +1,28 @@ +[source] +tar = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.10.tar.xz" +blake3 = "edcd8a505867226722ae50e0e9bb2bf57a1f38b5674a3028e26f69d2d61957e6" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "libbrotli", + "libgmp", + "libnettle", + "zlib", + "zstd", +] +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( + --with-included-libtasn1 + --with-included-unistring + --without-p11-kit + gl_cv_func_malloc_posix=no + gl_cv_socket_ipv6=no +) +cookbook_configure +""" diff --git a/recipes/wip/libs/tls/mbedtls/recipe.toml b/recipes/wip/libs/tls/mbedtls/recipe.toml new file mode 100644 index 000000000..42d21aac5 --- /dev/null +++ b/recipes/wip/libs/tls/mbedtls/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://mbed-tls.readthedocs.io/en/latest/getting_started/building/#building-with-cmake +[source] +git = "https://github.com/Mbed-TLS/mbedtls" +rev = "edb8fec9882084344a314368ac7fd957a187519c" +[build] +template = "cmake" diff --git a/recipes/wip/libs/tls/openssl3/recipe.toml b/recipes/wip/libs/tls/openssl3/recipe.toml new file mode 100644 index 000000000..7b4acf98c --- /dev/null +++ b/recipes/wip/libs/tls/openssl3/recipe.toml @@ -0,0 +1,36 @@ +[source] +tar = "https://github.com/openssl/openssl/releases/download/openssl-3.5.3/openssl-3.5.3.tar.gz" +patches = [ "redox.patch" ] + +[build] +template = "custom" +dependencies = [ + "zlib", + "zstd" +] +script = """ +DYNAMIC_INIT +ARCH="${TARGET%%-*}" +OS=$(echo "${TARGET}" | cut -d - -f3) +export ARFLAGS=cr +COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/Configure" +COOKBOOK_CONFIGURE_FLAGS=( + no-tests + no-unit-test + zlib + enable-zstd + "${OS}-${ARCH}" + --prefix="/usr" +) + +if [ "${COOKBOOK_DYNAMIC}" = "1" ]; then + COOKBOOK_CONFIGURE_FLAGS+=(shared) +else + COOKBOOK_CONFIGURE_FLAGS+=(no-shared) +fi + +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" +"${COOKBOOK_MAKE}" -j1 # bug in make/ar +"${COOKBOOK_MAKE}" install_sw install_ssldirs DESTDIR="${COOKBOOK_STAGE}" +rm -rfv "${COOKBOOK_STAGE}/"{share,ssl} +""" diff --git a/recipes/wip/libs/tls/openssl3/redox.patch b/recipes/wip/libs/tls/openssl3/redox.patch new file mode 100644 index 000000000..e2038c926 --- /dev/null +++ b/recipes/wip/libs/tls/openssl3/redox.patch @@ -0,0 +1,56 @@ +diff -ruwN source/apps/lib/apps.c source-new/apps/lib/apps.c +--- source/apps/lib/apps.c 2025-09-16 19:05:33.000000000 +0700 ++++ source-new/apps/lib/apps.c 2025-09-20 12:29:36.439917319 +0700 +@@ -2839,7 +2839,7 @@ + return ret; + } + +-#elif defined(_SC_CLK_TCK) /* by means of unistd.h */ ++#elif defined(_SC_CLK_TCK) && !defined(__redox__) /* by means of unistd.h */ + # include + + double app_tminterval(int stop, int usertime) +diff -ruwN source/Configurations/10-main.conf source-new/Configurations/10-main.conf +--- source/Configurations/10-main.conf 2025-09-16 19:05:33.000000000 +0700 ++++ source-new/Configurations/10-main.conf 2025-09-20 13:13:14.569456910 +0700 +@@ -208,6 +208,40 @@ + shared_extension => ".so", + }, + ++### Redox configurations ++ "redox-common" => { ++ inherit_from => [ "BASE_unix" ], ++ cc => "gcc", ++ thread_scheme => "pthreads", ++ dso_scheme => "dlfcn", ++ shared_target => "linux-shared", ++ shared_cflag => "-fPIC", ++ shared_ldflag => sub { $disabled{pinshared} ? () : "-Wl,-znodelete" }, ++ shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)", ++ }, ++ "redox-generic64" => { ++ inherit_from => [ "redox-common" ], ++ bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", ++ }, ++ "redox-aarch64" => { ++ inherit_from => [ "redox-generic64" ], ++ perlasm_scheme => "linux64", ++ }, ++ "redox-i686" => { ++ inherit_from => [ "redox-common" ], ++ bn_ops => "BN_LLONG", ++ perlasm_scheme => "elf", ++ }, ++ "redox-riscv64gc" => { ++ inherit_from => [ "redox-generic64" ], ++ perlasm_scheme => "linux64", ++ }, ++ "redox-x86_64" => { ++ inherit_from => [ "redox-generic64" ], ++ perlasm_scheme => "elf", ++ }, ++ ++ + #### Solaris configurations + "solaris-common" => { + inherit_from => [ "BASE_unix" ], diff --git a/recipes/wip/libs/tls/wolfssl5/recipe.toml b/recipes/wip/libs/tls/wolfssl5/recipe.toml new file mode 100644 index 000000000..15abd300a --- /dev/null +++ b/recipes/wip/libs/tls/wolfssl5/recipe.toml @@ -0,0 +1,12 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/wolfSSL/wolfssl" +rev = "37884f864d6fd9b04f44677cb04da15d0c9d6526" +script = "./autogen.sh" +[build] +template = "custom" +script = """ +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +COOKBOOK_CONFIGURE="./configure" +cookbook_configure +""" diff --git a/recipes/wip/libs/video/libgif/recipe.toml b/recipes/wip/libs/video/libgif/recipe.toml new file mode 100644 index 000000000..aebee7b7f --- /dev/null +++ b/recipes/wip/libs/video/libgif/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://sourceforge.net/projects/giflib/files/giflib-5.2.2.tar.gz/download" +blake3 = "025cd79ba2d524c24b33a3d2750c146c6823adf96e1dbcc380ca6210bc7058a8" +patches = ["redox.patch"] + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +"${COOKBOOK_MAKE}" libgif.so libgif.a -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install-include install-lib DESTDIR="${COOKBOOK_STAGE}" +""" + diff --git a/recipes/wip/libs/video/libgif/redox.patch b/recipes/wip/libs/video/libgif/redox.patch new file mode 100644 index 000000000..b58cfcdb9 --- /dev/null +++ b/recipes/wip/libs/video/libgif/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN giflib-5.2.1/Makefile source/Makefile +--- giflib-5.2.1/Makefile 2019-06-24 10:08:57.000000000 -0600 ++++ source/Makefile 2025-05-10 13:15:44.301303744 -0600 +@@ -14,7 +14,7 @@ + TAR = tar + INSTALL = install + +-PREFIX = /usr/local ++PREFIX = /usr + BINDIR = $(PREFIX)/bin + INCDIR = $(PREFIX)/include + LIBDIR = $(PREFIX)/lib diff --git a/recipes/wip/libs/video/libmatroska/recipe.toml b/recipes/wip/libs/video/libmatroska/recipe.toml new file mode 100644 index 000000000..4dc091649 --- /dev/null +++ b/recipes/wip/libs/video/libmatroska/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Matroska-Org/libmatroska#building-and-installing +[source] +tar = "https://dl.matroska.org/downloads/libmatroska/libmatroska-1.7.1.tar.xz" +[build] +template = "cmake" diff --git a/recipes/wip/libs/video/libopenshot/recipe.toml b/recipes/wip/libs/video/libopenshot/recipe.toml new file mode 100644 index 000000000..6ca2501bb --- /dev/null +++ b/recipes/wip/libs/video/libopenshot/recipe.toml @@ -0,0 +1,21 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from cmake log +# build instructions: https://github.com/OpenShot/libopenshot/wiki/Linux-Build-Instructions +[source] +git = "https://github.com/OpenShot/libopenshot" +rev = "v0.4.0" +shallow_clone = true +[build] +template = "cmake" +# dependencies = [ +# "libopenshot-audio", +# "ffmpeg6", +# "qt5-base", +# "qt5-svg", +# "qt5-multimedia", +# "libzmq", +# "opencv4", +# "protobuf", +# "babl", +# "imagemagick", +# ] \ No newline at end of file diff --git a/recipes/wip/libs/video/libvpx/recipe.toml b/recipes/wip/libs/video/libvpx/recipe.toml new file mode 100644 index 000000000..977a6a1f5 --- /dev/null +++ b/recipes/wip/libs/video/libvpx/recipe.toml @@ -0,0 +1,6 @@ +#TODO error with the redox target +[source] +git = "https://chromium.googlesource.com/webm/libvpx" +rev = "10b9492dcf05b652e2e4b370e205bd605d421972" +[build] +template = "configure" diff --git a/recipes/wip/logging/krapslog/recipe.toml b/recipes/wip/logging/krapslog/recipe.toml new file mode 100644 index 000000000..be7996334 --- /dev/null +++ b/recipes/wip/logging/krapslog/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/acj/krapslog-rs" +[build] +template = "cargo" diff --git a/recipes/wip/math/cosmic-ext-calculator/recipe.toml b/recipes/wip/math/cosmic-ext-calculator/recipe.toml new file mode 100644 index 000000000..5dbbcf4c0 --- /dev/null +++ b/recipes/wip/math/cosmic-ext-calculator/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +#TODO verify if the desktop shortcut and icon configuration is correct +[source] +git = "https://github.com/cosmic-utils/calculator" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/applications +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/metainfo +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/icons/hicolor/scalable/apps +cp -rv "${COOKBOOK_SOURCE}"/res/app.desktop "${COOKBOOK_STAGE}"/usr/share/applications/dev.edfloreshz.Calculator.desktop +cp -rv "${COOKBOOK_SOURCE}"/res/metainfo.xml "${COOKBOOK_STAGE}"/usr/share/metainfo/dev.edfloreshz.Calculator.metainfo.xml +cp -rv "${COOKBOOK_SOURCE}"/res/icons/hicolor/scalable/apps/icon.svg "${COOKBOOK_STAGE}"/usr/share/icons/hicolor/scalable/apps/dev.edfloreshz.Calculator.svg +cookbook_cargo +""" diff --git a/recipes/wip/math/fend/recipe.toml b/recipes/wip/math/fend/recipe.toml new file mode 100644 index 000000000..f9055f463 --- /dev/null +++ b/recipes/wip/math/fend/recipe.toml @@ -0,0 +1,13 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/printfn/fend" + +[build] +dependencies = [ + "openssl1", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_cargo_packages fend +""" diff --git a/recipes/wip/math/fractal-explorer/recipe.toml b/recipes/wip/math/fractal-explorer/recipe.toml new file mode 100644 index 000000000..7ea0cbfb9 --- /dev/null +++ b/recipes/wip/math/fractal-explorer/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/boclair/fractal-explorer" +[build] +template = "cargo" diff --git a/recipes/wip/math/kalc/recipe.toml b/recipes/wip/math/kalc/recipe.toml new file mode 100644 index 000000000..6217dc976 --- /dev/null +++ b/recipes/wip/math/kalc/recipe.toml @@ -0,0 +1,5 @@ +#TODO gmp-mpfr-sys crate error +[source] +git = "https://github.com/bgkillas/kalc" +[build] +template = "cargo" diff --git a/recipes/wip/math/kalker/recipe.toml b/recipes/wip/math/kalker/recipe.toml new file mode 100644 index 000000000..242c9ccd6 --- /dev/null +++ b/recipes/wip/math/kalker/recipe.toml @@ -0,0 +1,13 @@ +#TODO gmp-mpfr-sys crate error (after cargo update) +[source] +git = "https://github.com/PaddiM8/kalker" +[build] +template = "custom" +dependencies = [ + "libgmp", + "libmpfr", + "mpc", +] +script = """ +cookbook_cargo_packages kalker +""" diff --git a/recipes/wip/math/numbat/recipe.toml b/recipes/wip/math/numbat/recipe.toml new file mode 100644 index 000000000..9b5ee67e4 --- /dev/null +++ b/recipes/wip/math/numbat/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +#TODO missing script to properly move the binary +[source] +git = "https://github.com/sharkdp/numbat" +[build] +template = "custom" +script = """ +cookbook_cargo_packages numbat-cli +""" diff --git a/recipes/wip/math/numr/recipe.toml b/recipes/wip/math/numr/recipe.toml new file mode 100644 index 000000000..083b509d4 --- /dev/null +++ b/recipes/wip/math/numr/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/nasedkinpv/numr" +[build] +template = "custom" +script = """ +cookbook_cargo_packages numr-cli numr-tui +""" diff --git a/recipes/wip/math/primesieve/recipe.toml b/recipes/wip/math/primesieve/recipe.toml new file mode 100644 index 000000000..75b9866d3 --- /dev/null +++ b/recipes/wip/math/primesieve/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/kimwalisch/primesieve/blob/master/doc/BUILD.md +[source] +git = "https://github.com/kimwalisch/primesieve" +rev = "f3114488ddded8edf2c201e31ad308ed9e6a9f78" +[build] +template = "cmake" diff --git a/recipes/wip/math/qalculate-gtk/recipe.toml b/recipes/wip/math/qalculate-gtk/recipe.toml new file mode 100644 index 000000000..b46413b9a --- /dev/null +++ b/recipes/wip/math/qalculate-gtk/recipe.toml @@ -0,0 +1,9 @@ +#TODO make gtk3 work +[source] +tar = "https://github.com/Qalculate/qalculate-gtk/releases/download/v4.9.0/qalculate-gtk-4.9.0.tar.gz" +[build] +template = "configure" +dependencies = [ + "gtk3", + "libqalculate", +] diff --git a/recipes/wip/math/rink/recipe.toml b/recipes/wip/math/rink/recipe.toml new file mode 100644 index 000000000..208a58ebb --- /dev/null +++ b/recipes/wip/math/rink/recipe.toml @@ -0,0 +1,11 @@ +#TODO async-io and rustix crates error +[source] +git = "https://github.com/tiffany352/rink-rs" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages rink +""" diff --git a/recipes/wip/monitors/bandwhich/recipe.toml b/recipes/wip/monitors/bandwhich/recipe.toml new file mode 100644 index 000000000..72c8ff2a9 --- /dev/null +++ b/recipes/wip/monitors/bandwhich/recipe.toml @@ -0,0 +1,5 @@ +#TODO redox_syscall crate error +[source] +git = "https://github.com/imsnif/bandwhich" +[build] +template = "cargo" diff --git a/recipes/wip/monitors/bottom/recipe.toml b/recipes/wip/monitors/bottom/recipe.toml new file mode 100644 index 000000000..530c4186f --- /dev/null +++ b/recipes/wip/monitors/bottom/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing data +[source] +git = "https://github.com/jackpot51/bottom" + +[build] +template = "cargo" diff --git a/recipes/wip/monitors/conky/recipe.toml b/recipes/wip/monitors/conky/recipe.toml new file mode 100644 index 000000000..3f0a2d44e --- /dev/null +++ b/recipes/wip/monitors/conky/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +# build instructions: https://conky.cc/documents/compiling +[source] +git = "https://github.com/brndnmtthws/conky" +rev = "bbdc7081aec27daafca07fc40523335a2ea0a992" +[build] +template = "custom" +dependencies = [ + "imlib2", + "ncurses", + "libxml2", + "curl", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_cmake +""" diff --git a/recipes/wip/monitors/cosmic-ext-observatory/recipe.toml b/recipes/wip/monitors/cosmic-ext-observatory/recipe.toml new file mode 100644 index 000000000..6dd545a2b --- /dev/null +++ b/recipes/wip/monitors/cosmic-ext-observatory/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +#TODO verify if the resource commands are correct +[source] +git = "https://github.com/cosmic-utils/observatory" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/applications +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/metainfo +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/icons +cp -rv "${COOKBOOK_SOURCE}"/observatory/res/app.desktop "${COOKBOOK_STAGE}"/usr/share/applications/io.github.cosmic_utils.observatory.desktop +cp -rv "${COOKBOOK_SOURCE}"/observatory/res/metainfo.xml "${COOKBOOK_STAGE}"/usr/share/metainfo/io.github.cosmic_utils.observatory.metainfo.xml +cp -rv "${COOKBOOK_SOURCE}"/observatory/res/icons/hicolor/scalable/apps/icon.svg "${COOKBOOK_STAGE}"/usr/share/icons/hicolor/scalable/apps/io.github.cosmic_utils.observatory.svg +cookbook_cargo_packages observatory +""" diff --git a/recipes/wip/monitors/fluere/recipe.toml b/recipes/wip/monitors/fluere/recipe.toml new file mode 100644 index 000000000..d135d1329 --- /dev/null +++ b/recipes/wip/monitors/fluere/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/SkuldNorniern/fluere" +[build] +template = "cargo" diff --git a/recipes/wip/monitors/hearth/recipe.toml b/recipes/wip/monitors/hearth/recipe.toml new file mode 100644 index 000000000..4277789b9 --- /dev/null +++ b/recipes/wip/monitors/hearth/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/aheart/hearth" +[build] +template = "cargo" diff --git a/recipes/wip/monitors/htop/recipe.toml b/recipes/wip/monitors/htop/recipe.toml new file mode 100644 index 000000000..f4e554be4 --- /dev/null +++ b/recipes/wip/monitors/htop/recipe.toml @@ -0,0 +1,22 @@ +#TODO Promote +[source] +git = "https://github.com/willnode/htop" +branch = "redox" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "configure" +configureflags = [ + "--disable-unicode", +] +dependencies = [ + "ncurses", +] + +[package] +dependencies = [ + "terminfo" +] diff --git a/recipes/wip/monitors/latencymon/recipe.toml b/recipes/wip/monitors/latencymon/recipe.toml new file mode 100644 index 000000000..15e37d5e3 --- /dev/null +++ b/recipes/wip/monitors/latencymon/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/alttch/latencymon" +[build] +template = "cargo" diff --git a/recipes/wip/monitors/mountstatus/recipe.toml b/recipes/wip/monitors/mountstatus/recipe.toml new file mode 100644 index 000000000..e7429ab02 --- /dev/null +++ b/recipes/wip/monitors/mountstatus/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/acdha/mountstatus" +[build] +template = "cargo" diff --git a/recipes/wip/monitors/resources/recipe.toml b/recipes/wip/monitors/resources/recipe.toml new file mode 100644 index 000000000..10db370aa --- /dev/null +++ b/recipes/wip/monitors/resources/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/nokyan/resources" +[build] +template = "meson" +mesonflags = [ + "-Dprofile=default", +] +dependencies = [ + "glib", + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/monitors/rtop/recipe.toml b/recipes/wip/monitors/rtop/recipe.toml new file mode 100644 index 000000000..fa6f7cfae --- /dev/null +++ b/recipes/wip/monitors/rtop/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/narendasan/rtop" +[build] +template = "cargo" diff --git a/recipes/wip/monitors/sentrum/recipe.toml b/recipes/wip/monitors/sentrum/recipe.toml new file mode 100644 index 000000000..3548fe6e1 --- /dev/null +++ b/recipes/wip/monitors/sentrum/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sommerfelddev/sentrum" +[build] +template = "cargo" diff --git a/recipes/wip/monitors/serial-monitor-rs/recipe.toml b/recipes/wip/monitors/serial-monitor-rs/recipe.toml new file mode 100644 index 000000000..cd551c74c --- /dev/null +++ b/recipes/wip/monitors/serial-monitor-rs/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/hacknus/serial-monitor-rust" +[build] +template = "cargo" +dependencies = [ + "libxkbcommon", + "openssl1", +] diff --git a/recipes/wip/monitors/sniffnet/recipe.toml b/recipes/wip/monitors/sniffnet/recipe.toml new file mode 100644 index 000000000..059e3929f --- /dev/null +++ b/recipes/wip/monitors/sniffnet/recipe.toml @@ -0,0 +1,9 @@ +#TODO make the libpcap dependency work +[source] +git = "https://github.com/GyulyVGC/sniffnet" +[build] +template = "cargo" +dependencies = [ + "libpcap", + "fontconfig", +] diff --git a/recipes/wip/monitors/socktop/recipe.toml b/recipes/wip/monitors/socktop/recipe.toml new file mode 100644 index 000000000..ab499e0e9 --- /dev/null +++ b/recipes/wip/monitors/socktop/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jasonwitty/socktop" +[build] +template = "custom" +script = """ +cookbook_cargo_packages socktop socktop_agent +""" diff --git a/recipes/wip/monitors/sysinfo/recipe.toml b/recipes/wip/monitors/sysinfo/recipe.toml new file mode 100644 index 000000000..6a5e9bd8c --- /dev/null +++ b/recipes/wip/monitors/sysinfo/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://github.com/jackpot51/sysinfo" + +[build] +template = "custom" +script = """ +cookbook_cargo_examples simple +""" diff --git a/recipes/wip/net/admin/webmin/recipe.toml b/recipes/wip/net/admin/webmin/recipe.toml new file mode 100644 index 000000000..654297457 --- /dev/null +++ b/recipes/wip/net/admin/webmin/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or 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" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/home/user/webmin" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/webmin" +""" diff --git a/recipes/wip/net/analysis/angryether-rs/recipe.toml b/recipes/wip/net/analysis/angryether-rs/recipe.toml new file mode 100644 index 000000000..e780647da --- /dev/null +++ b/recipes/wip/net/analysis/angryether-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/pg3uk/AngryEtherRust" +[build] +template = "cargo" diff --git a/recipes/wip/net/analysis/pepe/recipe.toml b/recipes/wip/net/analysis/pepe/recipe.toml new file mode 100644 index 000000000..8ee7e350b --- /dev/null +++ b/recipes/wip/net/analysis/pepe/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/omarmhaimdat/pepe" +[build] +template = "cargo" diff --git a/recipes/wip/net/analysis/rkik/recipe.toml b/recipes/wip/net/analysis/rkik/recipe.toml new file mode 100644 index 000000000..c571577a1 --- /dev/null +++ b/recipes/wip/net/analysis/rkik/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/aguacero7/rkik" +[build] +template = "cargo" diff --git a/recipes/wip/net/bittorrent/aquatic-udp/recipe.toml b/recipes/wip/net/bittorrent/aquatic-udp/recipe.toml new file mode 100644 index 000000000..9d2b9ee2a --- /dev/null +++ b/recipes/wip/net/bittorrent/aquatic-udp/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/greatest-ape/aquatic" +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..892015455 --- /dev/null +++ b/recipes/wip/net/bittorrent/attractorr/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/rnestler/attractorr" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/bittorrent/btpd/recipe.toml b/recipes/wip/net/bittorrent/btpd/recipe.toml new file mode 100644 index 000000000..a37033a61 --- /dev/null +++ b/recipes/wip/net/bittorrent/btpd/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/btpd/btpd?tab=readme-ov-file#building +[source] +git = "https://github.com/btpd/btpd" +rev = "a3a10dfe1ece4a726530353a7b208c0cb4ff7e0d" +[build] +template = "configure" +dependencies = [ + "openssl3", +] diff --git a/recipes/wip/net/bittorrent/rtorrent/recipe.toml b/recipes/wip/net/bittorrent/rtorrent/recipe.toml new file mode 100644 index 000000000..69a93bfb4 --- /dev/null +++ b/recipes/wip/net/bittorrent/rtorrent/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't find pthreads support +[source] +tar = "https://github.com/rakshasa/rtorrent-archive/raw/master/rtorrent-0.9.8.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/net/bittorrent/superseedr/recipe.toml b/recipes/wip/net/bittorrent/superseedr/recipe.toml new file mode 100644 index 000000000..c8d85fcec --- /dev/null +++ b/recipes/wip/net/bittorrent/superseedr/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Jagalite/superseedr" +[build] +template = "cargo" diff --git a/recipes/wip/net/bittorrent/synapse-bt/recipe.toml b/recipes/wip/net/bittorrent/synapse-bt/recipe.toml new file mode 100644 index 000000000..53ef1be26 --- /dev/null +++ b/recipes/wip/net/bittorrent/synapse-bt/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Luminarys/synapse" +[build] +template = "cargo" diff --git a/recipes/wip/net/bittorrent/transg-tui/recipe.toml b/recipes/wip/net/bittorrent/transg-tui/recipe.toml new file mode 100644 index 000000000..36cad9696 --- /dev/null +++ b/recipes/wip/net/bittorrent/transg-tui/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/PanAeon/transg-tui" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml b/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml new file mode 100644 index 000000000..867a34f86 --- /dev/null +++ b/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#on-unix +[source] +tar = "https://github.com/transmission/transmission/releases/download/4.0.6/transmission-4.0.6.tar.xz" +[build] +template = "cmake" +dependencies = [ + "openssl1", + "curl", +] diff --git a/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml b/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml new file mode 100644 index 000000000..d4646b4ea --- /dev/null +++ b/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#on-unix +[source] +tar = "https://github.com/transmission/transmission/releases/download/4.0.6/transmission-4.0.6.tar.xz" +[build] +template = "cmake" +dependencies = [ + "openssl1", + "curl", + "gtk3mm", +] diff --git a/recipes/wip/net/bittorrent/webtorrent-cli/recipe.toml b/recipes/wip/net/bittorrent/webtorrent-cli/recipe.toml new file mode 100644 index 000000000..d0eaa70ec --- /dev/null +++ b/recipes/wip/net/bittorrent/webtorrent-cli/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/webtorrent/webtorrent-cli" +rev = "v5.1.3" +[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 +""" +[package] +dependencies = ["nodejs24"] diff --git a/recipes/wip/net/chat/bitchat-tui/recipe.toml b/recipes/wip/net/chat/bitchat-tui/recipe.toml new file mode 100644 index 000000000..01c5de945 --- /dev/null +++ b/recipes/wip/net/chat/bitchat-tui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/vaibhav-mattoo/bitchat-tui" +[build] +template = "cargo" diff --git a/recipes/wip/net/chat/halloy/recipe.toml b/recipes/wip/net/chat/halloy/recipe.toml new file mode 100644 index 000000000..a25cebc55 --- /dev/null +++ b/recipes/wip/net/chat/halloy/recipe.toml @@ -0,0 +1,8 @@ +#TODO xdg-home crate error (after cargo update) +[source] +git = "https://github.com/squidowl/halloy" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/chat/iamb/recipe.toml b/recipes/wip/net/chat/iamb/recipe.toml new file mode 100644 index 000000000..35120e3c4 --- /dev/null +++ b/recipes/wip/net/chat/iamb/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ulyssa/iamb" +[build] +template = "cargo" diff --git a/recipes/wip/net/chat/jami/recipe.toml b/recipes/wip/net/chat/jami/recipe.toml new file mode 100644 index 000000000..f3f66a3b6 --- /dev/null +++ b/recipes/wip/net/chat/jami/recipe.toml @@ -0,0 +1,39 @@ +#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 +[source] +git = "https://git.jami.net/savoirfairelinux/jami-client-qt" +rev = "91475c3a3f316b1b674a8fbe453f9d0dd7ef444e" +[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 new file mode 100644 index 000000000..8ac647168 --- /dev/null +++ b/recipes/wip/net/chat/pidgin/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing dependencies +[source] +tar = "https://sourceforge.net/projects/pidgin/files/Pidgin/2.14.12/pidgin-2.14.12.tar.bz2" +[build] +template = "configure" diff --git a/recipes/wip/net/chat/telegram-desktop/recipe.toml b/recipes/wip/net/chat/telegram-desktop/recipe.toml new file mode 100644 index 000000000..e8da71226 --- /dev/null +++ b/recipes/wip/net/chat/telegram-desktop/recipe.toml @@ -0,0 +1,23 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +tar = "https://github.com/telegramdesktop/tdesktop/releases/download/v6.2.3/tdesktop-6.2.3-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", +] diff --git a/recipes/wip/net/chat/termchat/recipe.toml b/recipes/wip/net/chat/termchat/recipe.toml new file mode 100644 index 000000000..9e5675c9a --- /dev/null +++ b/recipes/wip/net/chat/termchat/recipe.toml @@ -0,0 +1,8 @@ +#TODO update the mio crate to 0.8.x +[source] +git = "https://github.com/lemunozm/termchat" +[build] +template = "custom" +script = """ +cookbook_cargo --all-features +""" diff --git a/recipes/wip/net/chat/tiny/recipe.toml b/recipes/wip/net/chat/tiny/recipe.toml new file mode 100644 index 000000000..e262610b6 --- /dev/null +++ b/recipes/wip/net/chat/tiny/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update and a patch on ring) +[source] +git = "https://github.com/osa1/tiny" +[build] +template = "custom" +script = """ +cookbook_cargo_packages tiny +""" diff --git a/recipes/wip/net/download/aim/recipe.toml b/recipes/wip/net/download/aim/recipe.toml new file mode 100644 index 000000000..e6300a9a1 --- /dev/null +++ b/recipes/wip/net/download/aim/recipe.toml @@ -0,0 +1,13 @@ +#TODO openssl-sys crate compilation error +[source] +git = "https://github.com/mihaigalos/aim" +[build] +dependencies = [ + "openssl1", +] +template = "custom" +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo +""" diff --git a/recipes/wip/net/download/anime-downloader/recipe.toml b/recipes/wip/net/download/anime-downloader/recipe.toml new file mode 100644 index 000000000..72ac5ab94 --- /dev/null +++ b/recipes/wip/net/download/anime-downloader/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/B0SEmc/Anime-Downloader" +[build] +template = "cargo" diff --git a/recipes/wip/net/download/apkeep/recipe.toml b/recipes/wip/net/download/apkeep/recipe.toml new file mode 100644 index 000000000..97f907f98 --- /dev/null +++ b/recipes/wip/net/download/apkeep/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/EFForg/apkeep" +[build] +template = "cargo" diff --git a/recipes/wip/net/download/aria2/recipe.toml b/recipes/wip/net/download/aria2/recipe.toml new file mode 100644 index 000000000..165ff9111 --- /dev/null +++ b/recipes/wip/net/download/aria2/recipe.toml @@ -0,0 +1,11 @@ +#TODO make dependencies work +[source] +tar = "https://github.com/aria2/aria2/releases/download/release-1.37.0/aria2-1.37.0.tar.xz" +[build] +template = "configure" +dependencies = [ + "openssl1", + "zlib", + "libxml2", + "libgcrypt", +] diff --git a/recipes/wip/net/download/curlio/recipe.toml b/recipes/wip/net/download/curlio/recipe.toml new file mode 100644 index 000000000..b80fc8c60 --- /dev/null +++ b/recipes/wip/net/download/curlio/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Kei-K23/curlio" +[build] +template = "cargo" diff --git a/recipes/wip/net/download/kelpsget/recipe.toml b/recipes/wip/net/download/kelpsget/recipe.toml new file mode 100644 index 000000000..c02bd15b8 --- /dev/null +++ b/recipes/wip/net/download/kelpsget/recipe.toml @@ -0,0 +1,9 @@ +#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/kitget/recipe.toml b/recipes/wip/net/download/kitget/recipe.toml new file mode 100644 index 000000000..66d63e41f --- /dev/null +++ b/recipes/wip/net/download/kitget/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/adamperkowski/kitget" +[build] +template = "cargo" diff --git a/recipes/wip/net/download/parabolic/recipe.toml b/recipes/wip/net/download/parabolic/recipe.toml new file mode 100644 index 000000000..4c3104fa4 --- /dev/null +++ b/recipes/wip/net/download/parabolic/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +#TODO it uses vcpkg for dependency management, see: https://github.com/NickvisionApps/parabolic#building-manually +[source] +git = "https://github.com/NickvisionApps/Parabolic" +rev = "7309661a25948c56f25383c464a1b284bdeb00e7" +[build] +template = "cmake" diff --git a/recipes/wip/net/download/rusty-psn-cli/recipe.toml b/recipes/wip/net/download/rusty-psn-cli/recipe.toml new file mode 100644 index 000000000..587821f83 --- /dev/null +++ b/recipes/wip/net/download/rusty-psn-cli/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/RainbowCookie32/rusty-psn" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +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 new file mode 100644 index 000000000..b4c260868 --- /dev/null +++ b/recipes/wip/net/download/rusty-psn-gui/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/RainbowCookie32/rusty-psn" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/download/uget/recipe.toml b/recipes/wip/net/download/uget/recipe.toml new file mode 100644 index 000000000..bf9dcce90 --- /dev/null +++ b/recipes/wip/net/download/uget/recipe.toml @@ -0,0 +1,9 @@ +#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 new file mode 100644 index 000000000..74c362eca --- /dev/null +++ b/recipes/wip/net/download/wget2/recipe.toml @@ -0,0 +1,15 @@ +#TODO make dependencies work +[source] +tar = "https://ftp.gnu.org/gnu/wget/wget2-2.0.1.tar.gz" +[build] +template = "configure" +dependencies = [ + "gettext", + "libiconv", + "zlib", + "pcre", + "gnutls", + "bzip2", + "xz", + "zstd", +] diff --git a/recipes/wip/net/download/yaydl/recipe.toml b/recipes/wip/net/download/yaydl/recipe.toml new file mode 100644 index 000000000..df880e5ff --- /dev/null +++ b/recipes/wip/net/download/yaydl/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error (after cargo update) +[source] +git = "https://github.com/dertuxmalwieder/yaydl" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/download/youtube-tui/recipe.toml b/recipes/wip/net/download/youtube-tui/recipe.toml new file mode 100644 index 000000000..5306f25dc --- /dev/null +++ b/recipes/wip/net/download/youtube-tui/recipe.toml @@ -0,0 +1,9 @@ +#TODO openssl error +[source] +git = "https://github.com/Siriusmart/youtube-tui" +[build] +template = "cargo" +cargoflags = "--no-default-features" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/download/yt-dlp/recipe.toml b/recipes/wip/net/download/yt-dlp/recipe.toml new file mode 100644 index 000000000..fcf7cba36 --- /dev/null +++ b/recipes/wip/net/download/yt-dlp/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.tar.gz" +[build] +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 +""" diff --git a/recipes/wip/net/email/neverest/recipe.toml b/recipes/wip/net/email/neverest/recipe.toml new file mode 100644 index 000000000..7562958c8 --- /dev/null +++ b/recipes/wip/net/email/neverest/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/pimalaya/neverest" +[build] +template = "cargo" diff --git a/recipes/wip/net/email/thunderbird/mozconfig b/recipes/wip/net/email/thunderbird/mozconfig new file mode 100644 index 000000000..27bc1b6bc --- /dev/null +++ b/recipes/wip/net/email/thunderbird/mozconfig @@ -0,0 +1,8 @@ +ac_add_options --enable-project=comm/mail +ac_add_options --prefix="{COOKBOOK_STAGE}/usr" +ac_add_options --enable-release +ac_add_options --target="{TARGET}" +ac_add_options --enable-bootstrap +ac_add_options --disable-jack +ac_add_options --disable-crashreporter +ac_add_options --disable-updater diff --git a/recipes/wip/net/email/thunderbird/recipe.toml b/recipes/wip/net/email/thunderbird/recipe.toml new file mode 100644 index 000000000..bfb6dde04 --- /dev/null +++ b/recipes/wip/net/email/thunderbird/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing cross-compilation variables and a command to move the executable to the package +# 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" +[build] +template = "custom" +dependencies = [ + "library1", +] +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr +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 new file mode 100644 index 000000000..34454405c --- /dev/null +++ b/recipes/wip/net/ftp/filezilla-client/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# 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] +template = "configure" +dependencies = [ + "libfilezilla", + "gnutls3", + "libidn", + "dbus", +] diff --git a/recipes/wip/net/ftp/filezilla-server/recipe.toml b/recipes/wip/net/ftp/filezilla-server/recipe.toml new file mode 100644 index 000000000..f2f7920be --- /dev/null +++ b/recipes/wip/net/ftp/filezilla-server/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# 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] +template = "configure" +dependencies = [ + "libfilezilla", + "gnutls3", + "libidn", +] diff --git a/recipes/wip/net/ftp/unftp/recipe.toml b/recipes/wip/net/ftp/unftp/recipe.toml new file mode 100644 index 000000000..b7c4fcf2b --- /dev/null +++ b/recipes/wip/net/ftp/unftp/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bolcom/unFTP" +[build] +template = "cargo" diff --git a/recipes/wip/net/gemini/lagrange/recipe.toml b/recipes/wip/net/gemini/lagrange/recipe.toml new file mode 100644 index 000000000..db5f9d199 --- /dev/null +++ b/recipes/wip/net/gemini/lagrange/recipe.toml @@ -0,0 +1,20 @@ +#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" +[build] +template = "cmake" +cmakeflags = [ + "-DENABLE_MPG123=OFF" +] +dependencies = [ + "sdl2", + "openssl1", + "zlib", + "harfbuzz", + "pcre", + "fribidi", + "libunistring", + #"mpg123", +] diff --git a/recipes/wip/net/http/apache-httpd/recipe.toml b/recipes/wip/net/http/apache-httpd/recipe.toml new file mode 100644 index 000000000..f75c1f022 --- /dev/null +++ b/recipes/wip/net/http/apache-httpd/recipe.toml @@ -0,0 +1,50 @@ +#TODO compiles but requires setgroups syscall at startup +[source] +tar= "https://dlcdn.apache.org/httpd/httpd-2.4.61.tar.bz2" +patches = [ + "redox.patch", +] +[build] +dependencies = [ + "apr", + "apr-util", + "curl", + "expat", + "gdbm", + "libuuid", + "libxcrypt", + "libxml2", + "openssl1", + "pcre", + "zlib", +] + +template = "custom" +script = """ +# cookbook_configure + +export COOKBOOK_MAKE_JOBS=1 +export CPPFLAGS="$CPPFLAGS -I${COOKBOOK_SYSROOT}/include/apr-1 -DDEBUG=1" +export LTFLAGS="$LTFLAGS -Wall" +COOKBOOK_CONFIGURE_FLAGS=( + --build=$(/usr/bin/cc -dumpmachine) + --host=${TARGET} + --with-apr=$COOKBOOK_SYSROOT + --with-apr-util=$COOKBOOK_SYSROOT + --enable-unixd=static + --enable-authz_core=static + --enable-authz_host=static + ac_cv_prog_PCRE_CONFIG=$COOKBOOK_SYSROOT/bin/pcre-config + ap_cv_void_ptr_lt_long=no +) +cd ${COOKBOOK_SOURCE} +sed -i build/rules.mk.in -e 's/--mode=compile/& --tag=CC/' +sed -i build/rules.mk.in -e 's/--mode=link/& --tag=CC/' +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" +sed -s 's/^LoadModule /# &/' -i ${COOKBOOK_STAGE}/usr/local/apache2/conf/httpd.conf +sed -s 's/^User daemon/User user/' -i ${COOKBOOK_STAGE}/usr/local/apache2/conf/httpd.conf +sed -s 's/^Group daemon/Group #1000/' -i ${COOKBOOK_STAGE}/usr/local/apache2/conf/httpd.conf +touch ${COOKBOOK_STAGE}/usr/local/apache2/logs/keep_dir +""" diff --git a/recipes/wip/net/http/apache-httpd/redox.patch b/recipes/wip/net/http/apache-httpd/redox.patch new file mode 100644 index 000000000..c31d17e06 --- /dev/null +++ b/recipes/wip/net/http/apache-httpd/redox.patch @@ -0,0 +1,436 @@ +diff --git a/Makefile.in b/Makefile.in +index ebf7a16..296e661 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -1,5 +1,5 @@ + +-SUBDIRS = srclib os server modules support ++SUBDIRS = srclib os server modules + CLEAN_SUBDIRS = test + + PROGRAM_NAME = $(progname) +@@ -7,9 +7,10 @@ PROGRAM_SOURCES = modules.c + PROGRAM_LDADD = buildmark.o $(HTTPD_LDFLAGS) $(PROGRAM_DEPENDENCIES) $(PCRE_LIBS) $(EXTRA_LIBS) $(AP_LIBS) $(LIBS) + PROGRAM_PRELINK = $(COMPILE) -c $(top_srcdir)/server/buildmark.c + PROGRAM_DEPENDENCIES = \ ++ -lc \ ++ $(MPM_LIB) \ + server/libmain.la \ + $(BUILTIN_LIBS) \ +- $(MPM_LIB) \ + os/$(OS_DIR)/libos.la + + sbin_PROGRAMS = $(PROGRAM_NAME) +@@ -290,28 +291,7 @@ install-man: + cd $(DESTDIR)$(manualdir) && find . -name ".svn" -type d -print | xargs rm -rf 2>/dev/null || true; \ + fi + +-install-suexec: install-suexec-$(INSTALL_SUEXEC) +- +-install-suexec-binary: +- @if test -f $(builddir)/support/suexec; then \ +- test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir); \ +- $(INSTALL_PROGRAM) $(top_builddir)/support/suexec $(DESTDIR)$(sbindir); \ +- fi +- +-install-suexec-setuid: install-suexec-binary +- @if test -f $(builddir)/support/suexec; then \ +- chmod 4755 $(DESTDIR)$(sbindir)/suexec; \ +- fi +- +-install-suexec-caps: install-suexec-binary +- @if test -f $(builddir)/support/suexec; then \ +- setcap 'cap_setuid,cap_setgid+pe' $(DESTDIR)$(sbindir)/suexec; \ +- fi +- +-suexec: +- cd support && $(MAKE) suexec +- +-x-local-distclean: ++-local-distclean: + @rm -rf autom4te.cache + + # XXX: This looks awfully platform-specific [read: bad form and style] +diff --git a/configure b/configure +index 6eb60fd..46b490e 100755 +--- a/configure ++++ b/configure +@@ -4998,7 +4998,7 @@ else + done + if test $apr_addto_duplicate = "0"; then + test "x$silent" != "xyes" && echo " adding \"$i\" to LDFLAGS" +- LDFLAGS="$LDFLAGS $i" ++ # LDFLAGS="$LDFLAGS $i" + fi + done + fi +@@ -5006,6 +5006,7 @@ else + APU_BINDIR=`$apu_config --bindir` + APU_INCLUDEDIR=`$apu_config --includedir` + APU_INCLUDES=`$apu_config --includes` ++ echo "$apu_config --includes" = "$APU_INCLUDES" + APU_VERSION=`$apu_config --version` + APU_CONFIG="$APU_BINDIR/apu-`echo ${APU_VERSION} | sed 's,\..*,,'`-config" + fi +@@ -6268,9 +6269,9 @@ $as_echo "$as_me: Using external PCRE library from $PCRE_CONFIG" >&6;} + + if test "x$PCRE_LIBS" = "x"; then + test "x$silent" != "xyes" && echo " setting PCRE_LIBS to \"`$PCRE_CONFIG --libs8 2>/dev/null || $PCRE_CONFIG --libs`\"" +- PCRE_LIBS="`$PCRE_CONFIG --libs8 2>/dev/null || $PCRE_CONFIG --libs`" ++ PCRE_LIBS="-lpcre" + else +- apr_addto_bugger="`$PCRE_CONFIG --libs8 2>/dev/null || $PCRE_CONFIG --libs`" ++ apr_addto_bugger="-lpcre" + for i in $apr_addto_bugger; do + apr_addto_duplicate="0" + for j in $PCRE_LIBS; do +@@ -40691,9 +40692,11 @@ fi + + + if test x${apu_found} != xobsolete; then +- AP_LIBS="$AP_LIBS `$apu_config --avoid-ldap --link-libtool --libs`" ++ # AP_LIBS="$AP_LIBS `$apu_config --avoid-ldap --link-libtool --libs`" -ldb-5.3 ++ AP_LIBS="$AP_LIBS -laprutil-1 -lgdbm -lexpat" + fi +-AP_LIBS="$AP_LIBS `$apr_config --link-libtool --libs`" ++# AP_LIBS="$AP_LIBS `$apr_config --link-libtool --libs`" ++AP_LIBS="$AP_LIBS -lapr-1 -luuid -lrt -lcrypt -lpthread -ldl" + + APACHE_VAR_SUBST="$APACHE_VAR_SUBST AP_LIBS" + +diff --git a/os/unix/unixd.c b/os/unix/unixd.c +index 0245720..cd241d2 100644 +--- a/os/unix/unixd.c ++++ b/os/unix/unixd.c +@@ -231,31 +231,6 @@ AP_DECLARE(apr_status_t) ap_unixd_set_proc_mutex_perms(apr_proc_mutex_t *pmutex) + apr_lockmech_e mech = proc_mutex_mech(pmutex); + + switch(mech) { +-#if APR_HAS_SYSVSEM_SERIALIZE +- case APR_LOCK_SYSVSEM: +- { +- apr_os_proc_mutex_t ospmutex; +-#if !APR_HAVE_UNION_SEMUN +- union semun { +- long val; +- struct semid_ds *buf; +- unsigned short *array; +- }; +-#endif +- union semun ick; +- struct semid_ds buf = { { 0 } }; +- +- apr_os_proc_mutex_get(&ospmutex, pmutex); +- buf.sem_perm.uid = ap_unixd_config.user_id; +- buf.sem_perm.gid = ap_unixd_config.group_id; +- buf.sem_perm.mode = 0600; +- ick.buf = &buf; +- if (semctl(ospmutex.crossproc, 0, IPC_SET, ick) < 0) { +- return errno; +- } +- } +- break; +-#endif + #if APR_HAS_FLOCK_SERIALIZE + case APR_LOCK_FLOCK: + { +diff --git a/server/Makefile.in b/server/Makefile.in +index 8111877..0449553 100644 +--- a/server/Makefile.in ++++ b/server/Makefile.in +@@ -1,5 +1,5 @@ + +-CLEAN_TARGETS = gen_test_char test_char.h \ ++CLEAN_TARGETS = \ + ApacheCoreOS2.def httpd.exp export_files \ + exports.c export_vars.h + +@@ -24,12 +24,6 @@ TARGETS = delete-exports $(LTLIBRARY_NAME) $(CORE_IMPLIB_FILE) export_vars.h htt + include $(top_builddir)/build/rules.mk + include $(top_srcdir)/build/library.mk + +-gen_test_char_OBJECTS = gen_test_char.lo +-gen_test_char: $(gen_test_char_OBJECTS) +- $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS) +- +-test_char.h: gen_test_char +- ./gen_test_char > test_char.h + + util.lo: test_char.h + +diff --git a/server/gen_test_char.c b/server/gen_test_char.c +deleted file mode 100644 +index 248216b..0000000 +--- a/server/gen_test_char.c ++++ /dev/null +@@ -1,192 +0,0 @@ +-/* Licensed to the Apache Software Foundation (ASF) under one or more +- * contributor license agreements. See the NOTICE file distributed with +- * this work for additional information regarding copyright ownership. +- * The ASF licenses this file to You under the Apache License, Version 2.0 +- * (the "License"); you may not use this file except in compliance with +- * the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, software +- * distributed under the License is distributed on an "AS IS" BASIS, +- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +- * See the License for the specific language governing permissions and +- * limitations under the License. +- */ +- +-#ifdef CROSS_COMPILE +- +-#include +-#define apr_isalnum(c) (isalnum(((unsigned char)(c)))) +-#define apr_isalpha(c) (isalpha(((unsigned char)(c)))) +-#define apr_iscntrl(c) (iscntrl(((unsigned char)(c)))) +-#define apr_isprint(c) (isprint(((unsigned char)(c)))) +-#define APR_HAVE_STDIO_H 1 +-#define APR_HAVE_STRING_H 1 +- +-#else +- +-#include "apr.h" +-#include "apr_lib.h" +- +-#endif +- +-#if defined(WIN32) || defined(OS2) +-#define NEED_ENHANCED_ESCAPES +-#endif +- +-#if APR_HAVE_STDIO_H +-#include +-#endif +-#if APR_HAVE_STRING_H +-#include +-#endif +- +-/* A bunch of functions in util.c scan strings looking for certain characters. +- * To make that more efficient we encode a lookup table. +- */ +-#define T_ESCAPE_SHELL_CMD (0x01) +-#define T_ESCAPE_PATH_SEGMENT (0x02) +-#define T_OS_ESCAPE_PATH (0x04) +-#define T_HTTP_TOKEN_STOP (0x08) +-#define T_ESCAPE_LOGITEM (0x10) +-#define T_ESCAPE_FORENSIC (0x20) +-#define T_ESCAPE_URLENCODED (0x40) +-#define T_HTTP_CTRLS (0x80) +-#define T_VCHAR_OBSTEXT (0x100) +-#define T_URI_UNRESERVED (0x200) +- +-int main(int argc, char *argv[]) +-{ +- unsigned c; +- unsigned short flags; +- +- printf("/* this file is automatically generated by gen_test_char, " +- "do not edit */\n" +- "#define T_ESCAPE_SHELL_CMD (%u)\n" +- "#define T_ESCAPE_PATH_SEGMENT (%u)\n" +- "#define T_OS_ESCAPE_PATH (%u)\n" +- "#define T_HTTP_TOKEN_STOP (%u)\n" +- "#define T_ESCAPE_LOGITEM (%u)\n" +- "#define T_ESCAPE_FORENSIC (%u)\n" +- "#define T_ESCAPE_URLENCODED (%u)\n" +- "#define T_HTTP_CTRLS (%u)\n" +- "#define T_VCHAR_OBSTEXT (%u)\n" +- "#define T_URI_UNRESERVED (%u)\n" +- "\n" +- "static const unsigned short test_char_table[256] = {", +- T_ESCAPE_SHELL_CMD, +- T_ESCAPE_PATH_SEGMENT, +- T_OS_ESCAPE_PATH, +- T_HTTP_TOKEN_STOP, +- T_ESCAPE_LOGITEM, +- T_ESCAPE_FORENSIC, +- T_ESCAPE_URLENCODED, +- T_HTTP_CTRLS, +- T_VCHAR_OBSTEXT, +- T_URI_UNRESERVED +- ); +- +- for (c = 0; c < 256; ++c) { +- flags = 0; +- if (c % 8 == 0) +- printf("\n "); +- +- /* escape_shell_cmd */ +-#ifdef NEED_ENHANCED_ESCAPES +- /* Win32/OS2 have many of the same vulnerable characters +- * as Unix sh, plus the carriage return and percent char. +- * The proper escaping of these characters varies from unix +- * since Win32/OS2 use carets or doubled-double quotes, +- * and neither lf nor cr can be escaped. We escape unix +- * specific as well, to assure that cross-compiled unix +- * applications behave similarly when invoked on win32/os2. +- * +- * Rem please keep in-sync with apr's list in win32/filesys.c +- */ +- if (c && strchr("&;`'\"|*?~<>^()[]{}$\\\n\r%", c)) { +- flags |= T_ESCAPE_SHELL_CMD; +- } +-#else +- if (c && strchr("&;`'\"|*?~<>^()[]{}$\\\n", c)) { +- flags |= T_ESCAPE_SHELL_CMD; +- } +-#endif +- +- if (!apr_isalnum(c) && !strchr("$-_.+!*'(),:@&=~", c)) { +- flags |= T_ESCAPE_PATH_SEGMENT; +- } +- +- if (!apr_isalnum(c) && !strchr("$-_.+!*'(),:;@&=/~", c)) { +- flags |= T_OS_ESCAPE_PATH; +- } +- +- if (!apr_isalnum(c) && !strchr(".-*_ ", c)) { +- flags |= T_ESCAPE_URLENCODED; +- } +- +- /* Stop for any non-'token' character, including ctrls, obs-text, +- * and "tspecials" (RFC2068) a.k.a. "separators" (RFC2616), which +- * is easier to express as characters remaining in the ASCII token set +- */ +- if (!c || !(apr_isalnum(c) || strchr("!#$%&'*+-.^_`|~", c))) { +- flags |= T_HTTP_TOKEN_STOP; +- } +- +- /* Catch CTRLs other than VCHAR, HT and SP, and obs-text (RFC7230 3.2) +- * This includes only the C0 plane, not C1 (which is obs-text itself.) +- * XXX: We should verify that all ASCII C0 ctrls/DEL corresponding to +- * the current EBCDIC translation are captured, and ASCII C1 ctrls +- * corresponding are all permitted (as they fall under obs-text rule) +- */ +- if (!c || (apr_iscntrl(c) && c != '\t')) { +- flags |= T_HTTP_CTRLS; +- } +- +- /* From RFC3986, the specific sets of gen-delims, sub-delims (2.2), +- * and unreserved (2.3) that are possible somewhere within a URI. +- * Spec requires all others to be %XX encoded, including obs-text. +- */ +- if (c && !apr_iscntrl(c) && c != ' ') { +- flags |= T_VCHAR_OBSTEXT; +- } +- +- /* For logging, escape all control characters, +- * double quotes (because they delimit the request in the log file) +- * backslashes (because we use backslash for escaping) +- * and 8-bit chars with the high bit set +- */ +- if (c && (!apr_isprint(c) || c == '"' || c == '\\' || apr_iscntrl(c))) { +- flags |= T_ESCAPE_LOGITEM; +- } +- +- /* For forensic logging, escape all control characters, top bit set, +- * :, | (used as delimiters) and % (used for escaping). +- */ +- if (!apr_isprint(c) || c == ':' || c == '|' || c == '%' +- || apr_iscntrl(c) || !c) { +- flags |= T_ESCAPE_FORENSIC; +- } +- +- /* Characters in the RFC 3986 "unreserved" set. +- * https://datatracker.ietf.org/doc/html/rfc3986#section-2.3 */ +- if (c && (apr_isalnum(c) || strchr("-._~", c))) { +- flags |= T_URI_UNRESERVED; +- } +- +- printf("0x%03x%c", flags, (c < 255) ? ',' : ' '); +- } +- +- printf("\n};\n\n"); +- +- printf( +- "/* we assume the folks using this ensure 0 <= c < 256... which means\n" +- " * you need a cast to (unsigned char) first, you can't just plug a\n" +- " * char in here and get it to work, because if char is signed then it\n" +- " * will first be sign extended.\n" +- " */\n" +- "#define TEST_CHAR(c, f) (test_char_table[(unsigned char)(c)] & (f))\n" +- ); +- +- return 0; +-} +diff --git a/server/mpm_fdqueue.c b/server/mpm_fdqueue.c +index 3697ca7..9f9d36e 100644 +--- a/server/mpm_fdqueue.c ++++ b/server/mpm_fdqueue.c +@@ -17,6 +17,7 @@ + #include "mpm_fdqueue.h" + + #if APR_HAS_THREADS ++#warning "apr_has_threads" + + #include + +@@ -531,4 +532,6 @@ apr_status_t ap_queue_term(fd_queue_t *queue) + return queue_interrupt(queue, 1, 1); + } + ++#else ++#warning "no apr_has_threads" + #endif /* APR_HAS_THREADS */ +diff --git a/server/test_char.h b/server/test_char.h +new file mode 100644 +index 0000000..ebd7395 +--- /dev/null ++++ b/server/test_char.h +@@ -0,0 +1,53 @@ ++/* this file is automatically generated by gen_test_char, do not edit */ ++#define T_ESCAPE_SHELL_CMD (1) ++#define T_ESCAPE_PATH_SEGMENT (2) ++#define T_OS_ESCAPE_PATH (4) ++#define T_HTTP_TOKEN_STOP (8) ++#define T_ESCAPE_LOGITEM (16) ++#define T_ESCAPE_FORENSIC (32) ++#define T_ESCAPE_URLENCODED (64) ++#define T_HTTP_CTRLS (128) ++#define T_VCHAR_OBSTEXT (256) ++#define T_URI_UNRESERVED (512) ++ ++static const unsigned short test_char_table[256] = { ++ 0x0a8,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe, ++ 0x0fe,0x07e,0x0ff,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe, ++ 0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe, ++ 0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe, ++ 0x00e,0x140,0x15f,0x146,0x141,0x166,0x141,0x141, ++ 0x149,0x149,0x101,0x140,0x148,0x300,0x300,0x14a, ++ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300, ++ 0x300,0x300,0x168,0x14b,0x14f,0x148,0x14f,0x14f, ++ 0x148,0x300,0x300,0x300,0x300,0x300,0x300,0x300, ++ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300, ++ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300, ++ 0x300,0x300,0x300,0x14f,0x15f,0x14f,0x147,0x300, ++ 0x147,0x300,0x300,0x300,0x300,0x300,0x300,0x300, ++ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300, ++ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300, ++ 0x300,0x300,0x300,0x14f,0x167,0x14f,0x341,0x0fe, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e, ++ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e ++}; ++ ++/* we assume the folks using this ensure 0 <= c < 256... which means ++ * you need a cast to (unsigned char) first, you can't just plug a ++ * char in here and get it to work, because if char is signed then it ++ * will first be sign extended. ++ */ ++#define TEST_CHAR(c, f) (test_char_table[(unsigned char)(c)] & (f)) diff --git a/recipes/wip/net/http/easyp/recipe.toml b/recipes/wip/net/http/easyp/recipe.toml new file mode 100644 index 000000000..12dfb7669 --- /dev/null +++ b/recipes/wip/net/http/easyp/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +#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" +[build] +template = "custom" +script = """ +cookbook_cargo +""" diff --git a/recipes/wip/net/http/ferron/recipe.toml b/recipes/wip/net/http/ferron/recipe.toml new file mode 100644 index 000000000..143aae515 --- /dev/null +++ b/recipes/wip/net/http/ferron/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ferronweb/ferron" +[build] +template = "custom" +script = """ +cookbook_cargo_packages ferron +""" diff --git a/recipes/wip/net/http/freenginx/recipe.toml b/recipes/wip/net/http/freenginx/recipe.toml new file mode 100644 index 000000000..e96d4fb6b --- /dev/null +++ b/recipes/wip/net/http/freenginx/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't find the options file +[source] +tar = "https://freenginx.org/download/nginx-1.24.0.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/net/http/http-server-rs/recipe.toml b/recipes/wip/net/http/http-server-rs/recipe.toml new file mode 100644 index 000000000..c537e0c56 --- /dev/null +++ b/recipes/wip/net/http/http-server-rs/recipe.toml @@ -0,0 +1,25 @@ +#TODO camino crate error +[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", +] +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 +""" diff --git a/recipes/wip/net/http/lighttpd/recipe.toml b/recipes/wip/net/http/lighttpd/recipe.toml new file mode 100644 index 000000000..ea8d18524 --- /dev/null +++ b/recipes/wip/net/http/lighttpd/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://redmine.lighttpd.net/projects/lighttpd/wiki/InstallFromSource +[source] +tar = "https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.82.tar.xz" +[build] +template = "cmake" +dependencies = [ + "pcre2", + #"openssl3", # optional +] diff --git a/recipes/wip/net/http/miniserve/recipe.toml b/recipes/wip/net/http/miniserve/recipe.toml new file mode 100644 index 000000000..f5d958043 --- /dev/null +++ b/recipes/wip/net/http/miniserve/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing libc:: socket-related imports + +[source] +git = "https://github.com/svenstaro/miniserve" + +[build] +dependencies = [ + "openssl1", + "zlib" +] +template = "cargo" + diff --git a/recipes/wip/net/http/quark/recipe.toml b/recipes/wip/net/http/quark/recipe.toml new file mode 100644 index 000000000..cbc312aaa --- /dev/null +++ b/recipes/wip/net/http/quark/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for gnu make +[source] +git = "https://git.suckless.org/quark" +rev = "5ad0df91757fbc577ffceeca633725e962da345d.html" +[build] +template = "custom" diff --git a/recipes/wip/net/http/sozu/recipe.toml b/recipes/wip/net/http/sozu/recipe.toml new file mode 100644 index 000000000..bad5b1033 --- /dev/null +++ b/recipes/wip/net/http/sozu/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sozu-proxy/sozu" +[build] +template = "custom" +script = """ +cookbook_cargo_packages sozu +""" diff --git a/recipes/wip/net/http/sws/recipe.toml b/recipes/wip/net/http/sws/recipe.toml new file mode 100644 index 000000000..4530f9e4f --- /dev/null +++ b/recipes/wip/net/http/sws/recipe.toml @@ -0,0 +1,5 @@ +#TODO signal-hook crate error +[source] +git = "https://github.com/static-web-server/static-web-server" +[build] +template = "cargo" diff --git a/recipes/wip/net/http/thttpd/recipe.toml b/recipes/wip/net/http/thttpd/recipe.toml new file mode 100644 index 000000000..8946f7ac6 --- /dev/null +++ b/recipes/wip/net/http/thttpd/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: read the INSTALL file +[source] +tar = "https://acme.com/software/thttpd/thttpd-2.29.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/net/lan/lantun/recipe.toml b/recipes/wip/net/lan/lantun/recipe.toml new file mode 100644 index 000000000..91dab8418 --- /dev/null +++ b/recipes/wip/net/lan/lantun/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/maxomatic458/lantun" +[build] +template = "custom" +script = """ +cookbook_cargo_packages lantun-cli +""" diff --git a/recipes/wip/net/lan/malai/recipe.toml b/recipes/wip/net/lan/malai/recipe.toml new file mode 100644 index 000000000..237c72592 --- /dev/null +++ b/recipes/wip/net/lan/malai/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/fastn-stack/kulfi" +[build] +template = "custom" +script = """ +cookbook_cargo_packages malai +""" diff --git a/recipes/wip/net/lan/zerotier/recipe.toml b/recipes/wip/net/lan/zerotier/recipe.toml new file mode 100644 index 000000000..cbaaa9aee --- /dev/null +++ b/recipes/wip/net/lan/zerotier/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for "make", see https://github.com/zerotier/ZeroTierOne#build-and-platform-notes +[source] +git = "https://github.com/zerotier/ZeroTierOne" +rev = "327eb9013b39809835a912c9117a0b9669f4661f" +[build] +template = "custom" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/lan/ztui/recipe.toml b/recipes/wip/net/lan/ztui/recipe.toml new file mode 100644 index 000000000..dbb916c60 --- /dev/null +++ b/recipes/wip/net/lan/ztui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/erikh/ztui" +[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 new file mode 100644 index 000000000..fc3527ed2 --- /dev/null +++ b/recipes/wip/net/monitor/network-monitor-rs/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/grigio/network-monitor" +[build] +template = "cargo" +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/net/monitor/rustnet/recipe.toml b/recipes/wip/net/monitor/rustnet/recipe.toml new file mode 100644 index 000000000..6ab852ff7 --- /dev/null +++ b/recipes/wip/net/monitor/rustnet/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/domcyrus/rustnet" +[build] +template = "cargo" +dependencies = [ + "libpcap", +] diff --git a/recipes/wip/net/monitor/somo/recipe.toml b/recipes/wip/net/monitor/somo/recipe.toml new file mode 100644 index 000000000..51bb05c67 --- /dev/null +++ b/recipes/wip/net/monitor/somo/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/theopfr/somo" +[build] +template = "cargo" diff --git a/recipes/wip/net/onion-routing/arti/recipe.toml b/recipes/wip/net/onion-routing/arti/recipe.toml new file mode 100644 index 000000000..b36e3191e --- /dev/null +++ b/recipes/wip/net/onion-routing/arti/recipe.toml @@ -0,0 +1,11 @@ +#TODO pwd-grp crate error +[source] +git = "https://gitlab.torproject.org/tpo/core/arti" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages arti +""" diff --git a/recipes/wip/net/onion-routing/i2pd/recipe.toml b/recipes/wip/net/onion-routing/i2pd/recipe.toml new file mode 100644 index 000000000..6056125cc --- /dev/null +++ b/recipes/wip/net/onion-routing/i2pd/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://i2pd.readthedocs.io/en/latest/devs/building/unix/ +[source] +git = "https://github.com/PurpleI2P/i2pd" +rev = "beffdb9fe175a93164bd88ee0fafe1a22595ed15" +[build] +template = "cmake" +dependencies = [ + "boost", + "openssl1", + "zlib", +] diff --git a/recipes/wip/net/onion-routing/lokinet/recipe.toml b/recipes/wip/net/onion-routing/lokinet/recipe.toml new file mode 100644 index 000000000..0061eb0b7 --- /dev/null +++ b/recipes/wip/net/onion-routing/lokinet/recipe.toml @@ -0,0 +1,17 @@ +#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/recipe.toml b/recipes/wip/net/onion-routing/tor-browser/recipe.toml new file mode 100644 index 000000000..219acd693 --- /dev/null +++ b/recipes/wip/net/onion-routing/tor-browser/recipe.toml @@ -0,0 +1,23 @@ +#TODO probably wrong template, see see https://firefox-source-docs.mozilla.org/setup/linux_build.html#build +[source] +tar = "https://dist.torproject.org/torbrowser/13.0.1/src-firefox-tor-browser-115.4.0esr-13.0-1-build2.tar.xz" +[build] +template = "configure" +dependencies = [ + "fontconfig", + "atk", + "cairo", + "dbus", + "libffi", + "freetype2", + "gdk-pixbuf", + "glib", + "gtk3", + "pango", + "sqlite3", + "nss-nspr", + "startup-notification", + "zlib", + "libvpx", + "ffmpeg6", +] diff --git a/recipes/wip/net/onion-routing/tor/recipe.toml b/recipes/wip/net/onion-routing/tor/recipe.toml new file mode 100644 index 000000000..fb69580bc --- /dev/null +++ b/recipes/wip/net/onion-routing/tor/recipe.toml @@ -0,0 +1,10 @@ +#TODO Make the libevent works +[source] +tar = "https://dist.torproject.org/tor-0.4.8.9.tar.gz" +[build] +template = "configure" +dependencies = [ + "libevent", + "openssl1", + "zlib", +] diff --git a/recipes/wip/net/other/agnos/recipe.toml b/recipes/wip/net/other/agnos/recipe.toml new file mode 100644 index 000000000..e1a0cb687 --- /dev/null +++ b/recipes/wip/net/other/agnos/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/krtab/agnos" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/altuntun/recipe.toml b/recipes/wip/net/other/altuntun/recipe.toml new file mode 100644 index 000000000..429f50be9 --- /dev/null +++ b/recipes/wip/net/other/altuntun/recipe.toml @@ -0,0 +1,8 @@ +#TODO source code error +[source] +git = "https://github.com/cableguard/altuntun" +[build] +template = "custom" +script = """ +cookbook_cargo_packages altuntun-cli +""" diff --git a/recipes/wip/net/other/arp-scanner/recipe.toml b/recipes/wip/net/other/arp-scanner/recipe.toml new file mode 100644 index 000000000..d398e95a4 --- /dev/null +++ b/recipes/wip/net/other/arp-scanner/recipe.toml @@ -0,0 +1,5 @@ +#TODO pnet_sys crate error +[source] +git = "https://github.com/kongbytes/arp-scan-rs" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/bita/recipe.toml b/recipes/wip/net/other/bita/recipe.toml new file mode 100644 index 000000000..4e9fd9889 --- /dev/null +++ b/recipes/wip/net/other/bita/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error (after a cargo update and a patch on the ring and tokio crates) +[source] +git = "https://github.com/oll3/bita" +[build] +template = "custom" +script = """ +cookbook_cargo --no-default-features --features rustls-tls +""" diff --git a/recipes/wip/net/other/bore/recipe.toml b/recipes/wip/net/other/bore/recipe.toml new file mode 100644 index 000000000..6e84b5109 --- /dev/null +++ b/recipes/wip/net/other/bore/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/ekzhang/bore" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/celeste/recipe.toml b/recipes/wip/net/other/celeste/recipe.toml new file mode 100644 index 000000000..20cf99ac3 --- /dev/null +++ b/recipes/wip/net/other/celeste/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for "just" and require Go, see https://github.com/hwittenborn/celeste/blob/develop/BUILDING.md +[source] +git = "https://github.com/hwittenborn/celeste" +rev = "2ea8dc00ed001d045792e974b46264d920090606" +[build] +template = "custom" +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/net/other/cobalt/recipe.toml b/recipes/wip/net/other/cobalt/recipe.toml new file mode 100644 index 000000000..c73644e00 --- /dev/null +++ b/recipes/wip/net/other/cobalt/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error (after an update on proc-macro2) +[source] +git = "https://github.com/cobalt-org/cobalt.rs" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/crab-dlna/recipe.toml b/recipes/wip/net/other/crab-dlna/recipe.toml new file mode 100644 index 000000000..4a6217f89 --- /dev/null +++ b/recipes/wip/net/other/crab-dlna/recipe.toml @@ -0,0 +1,5 @@ +#TODO get_if_addrs crate error +[source] +git = "https://github.com/gabrielmagno/crab-dlna" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/dnst/recipe.toml b/recipes/wip/net/other/dnst/recipe.toml new file mode 100644 index 000000000..b51f6382a --- /dev/null +++ b/recipes/wip/net/other/dnst/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/NLnetLabs/dnst" +[build] +template = "custom" +script = """ +cookbook_cargo --features ring +""" diff --git a/recipes/wip/net/other/dqy/recipe.toml b/recipes/wip/net/other/dqy/recipe.toml new file mode 100644 index 000000000..1878190ab --- /dev/null +++ b/recipes/wip/net/other/dqy/recipe.toml @@ -0,0 +1,11 @@ +#TODO mlua-sys crate can't detect the lua54 dependency +[source] +git = "https://github.com/dandyvica/dqy" +[build] +template = "custom" +dependencies = [ + "lua54", +] +script = """ +cookbook_cargo_packages dqy +""" diff --git a/recipes/wip/net/other/drill/recipe.toml b/recipes/wip/net/other/drill/recipe.toml new file mode 100644 index 000000000..87c8b7817 --- /dev/null +++ b/recipes/wip/net/other/drill/recipe.toml @@ -0,0 +1,8 @@ +#TODO OpenSSL error (after a cargo update and a patch to update tokio on Cargo.toml) +[source] +git = "https://github.com/fcsonline/drill" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/other/dufs/recipe.toml b/recipes/wip/net/other/dufs/recipe.toml new file mode 100644 index 000000000..3949986d7 --- /dev/null +++ b/recipes/wip/net/other/dufs/recipe.toml @@ -0,0 +1,5 @@ +#TODO if-addrs crate error +[source] +git = "https://github.com/sigoden/dufs" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/floresta/recipe.toml b/recipes/wip/net/other/floresta/recipe.toml new file mode 100644 index 000000000..5ce877771 --- /dev/null +++ b/recipes/wip/net/other/floresta/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error +[source] +git = "https://github.com/Davidson-Souza/Floresta" +[build] +template = "custom" +script = """ +cookbook_cargo_packages florestad +""" diff --git a/recipes/wip/net/other/guacamole-client/recipe.toml b/recipes/wip/net/other/guacamole-client/recipe.toml new file mode 100644 index 000000000..3cc0d7516 --- /dev/null +++ b/recipes/wip/net/other/guacamole-client/recipe.toml @@ -0,0 +1,6 @@ +#TODO this recipe require this data type to download the Java bytecode - https://gitlab.redox-os.org/redox-os/cookbook/-/issues/190 +# download link - https://apache.org/dyn/closer.lua/guacamole/1.5.5/binary/guacamole-1.5.5.war?action=download +[source] + +[build] +template = "custom" diff --git a/recipes/wip/net/other/havn/recipe.toml b/recipes/wip/net/other/havn/recipe.toml new file mode 100644 index 000000000..649f040e4 --- /dev/null +++ b/recipes/wip/net/other/havn/recipe.toml @@ -0,0 +1,5 @@ +#TODO scanning loop, broken Redox support +[source] +git = "https://github.com/mrjackwills/havn" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/hinoki/recipe.toml b/recipes/wip/net/other/hinoki/recipe.toml new file mode 100644 index 000000000..9d6b900eb --- /dev/null +++ b/recipes/wip/net/other/hinoki/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/jplatte/hinoki" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/hurl/recipe.toml b/recipes/wip/net/other/hurl/recipe.toml new file mode 100644 index 000000000..5bacac15d --- /dev/null +++ b/recipes/wip/net/other/hurl/recipe.toml @@ -0,0 +1,13 @@ +#TODO compilation error +[source] +git = "https://github.com/Orange-OpenSource/hurl" +[build] +template = "custom" +dependencies = [ + "openssl1", + "curl", + "libxml2", +] +script = """ +cookbook_cargo_packages hurl +""" diff --git a/recipes/wip/net/other/impala/recipe.toml b/recipes/wip/net/other/impala/recipe.toml new file mode 100644 index 000000000..3fd30d015 --- /dev/null +++ b/recipes/wip/net/other/impala/recipe.toml @@ -0,0 +1,5 @@ +#TODO port to redox +[source] +git = "https://github.com/pythops/impala" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/lldap/recipe.toml b/recipes/wip/net/other/lldap/recipe.toml new file mode 100644 index 000000000..e97d8e79d --- /dev/null +++ b/recipes/wip/net/other/lldap/recipe.toml @@ -0,0 +1,8 @@ +#TODO program source code error (after cargo update and a patch on ring) +[source] +git = "https://github.com/lldap/lldap" +[build] +template = "custom" +script = """ +cookbook_cargo_packages lldap +""" diff --git a/recipes/wip/net/other/lychee/recipe.toml b/recipes/wip/net/other/lychee/recipe.toml new file mode 100644 index 000000000..b441f8010 --- /dev/null +++ b/recipes/wip/net/other/lychee/recipe.toml @@ -0,0 +1,11 @@ +#TODO async-io crate error (after cargo update) +[source] +git = "https://github.com/lycheeverse/lychee" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages lychee +""" diff --git a/recipes/wip/net/other/lynx/recipe.toml b/recipes/wip/net/other/lynx/recipe.toml new file mode 100644 index 000000000..6b8a68008 --- /dev/null +++ b/recipes/wip/net/other/lynx/recipe.toml @@ -0,0 +1,12 @@ +#TODO compilation error +[source] +tar = "https://invisible-island.net/archives/lynx/tarballs/lynx2.8.9rel.1.tar.gz" +[build] +template = "custom" +dependencies = [ + "ncurses", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_configure +""" diff --git a/recipes/wip/net/other/meli/recipe.toml b/recipes/wip/net/other/meli/recipe.toml new file mode 100644 index 000000000..82aab325d --- /dev/null +++ b/recipes/wip/net/other/meli/recipe.toml @@ -0,0 +1,11 @@ +#TODO ahash crate error +[source] +git = "https://git.meli-email.org/meli/meli" +[build] +template = "custom" +dependencies = [ + "sqlite3", +] +script = """ +cookbook_cargo_packages meli +""" diff --git a/recipes/wip/net/other/miniupnpc/recipe.toml b/recipes/wip/net/other/miniupnpc/recipe.toml new file mode 100644 index 000000000..56d62911c --- /dev/null +++ b/recipes/wip/net/other/miniupnpc/recipe.toml @@ -0,0 +1,5 @@ +#TODO Missing script for "make", see https://github.com/miniupnp/miniupnp/tree/master/miniupnpc#readme +[source] +tar = "http://miniupnp.free.fr/files/miniupnpc-2.2.4.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/net/other/moonfire-nvr-server/recipe.toml b/recipes/wip/net/other/moonfire-nvr-server/recipe.toml new file mode 100644 index 000000000..da7af0eca --- /dev/null +++ b/recipes/wip/net/other/moonfire-nvr-server/recipe.toml @@ -0,0 +1,12 @@ +#TODO cookbook_cargo function error +[source] +git = "https://github.com/scottlamb/moonfire-nvr" +[build] +template = "custom" +dependencies = [ + "sqlite3", +] +script = """ +cd "${COOKBOOK_SOURCE}/server" +cookbook_cargo +""" diff --git a/recipes/wip/net/other/netop/recipe.toml b/recipes/wip/net/other/netop/recipe.toml new file mode 100644 index 000000000..c298bc7be --- /dev/null +++ b/recipes/wip/net/other/netop/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libpcap work +[source] +git = "https://github.com/ZingerLittleBee/netop" +[build] +template = "cargo" +dependencies = [ + "libpcap", +] diff --git a/recipes/wip/net/other/netscanner/recipe.toml b/recipes/wip/net/other/netscanner/recipe.toml new file mode 100644 index 000000000..8bcd33cc8 --- /dev/null +++ b/recipes/wip/net/other/netscanner/recipe.toml @@ -0,0 +1,5 @@ +#TODO pnet_sys crate error +[source] +git = "https://github.com/Chleba/netscanner" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/nmap/recipe.toml b/recipes/wip/net/other/nmap/recipe.toml new file mode 100644 index 000000000..fcbd41f17 --- /dev/null +++ b/recipes/wip/net/other/nmap/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://nmap.org/dist/nmap-7.94.tar.bz2" +[build] +template = "configure" \ No newline at end of file diff --git a/recipes/wip/net/other/nspr/recipe.toml b/recipes/wip/net/other/nspr/recipe.toml new file mode 100644 index 000000000..1d29eda4e --- /dev/null +++ b/recipes/wip/net/other/nspr/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building +[source] +tar = "https://ftp.mozilla.org/pub/nspr/releases/v4.9.6/src/nspr-4.9.6.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/net/other/nss-pem/recipe.toml b/recipes/wip/net/other/nss-pem/recipe.toml new file mode 100644 index 000000000..15b7a66f2 --- /dev/null +++ b/recipes/wip/net/other/nss-pem/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/kdudka/nss-pem/blob/master/README +[source] +tar = "https://github.com/kdudka/nss-pem/releases/download/nss-pem-1.1.0/nss-pem-1.1.0.tar.xz" +[build] +template = "cmake" diff --git a/recipes/wip/net/other/nss/recipe.toml b/recipes/wip/net/other/nss/recipe.toml new file mode 100644 index 000000000..b9ffd1a5b --- /dev/null +++ b/recipes/wip/net/other/nss/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for building +[source] +tar = "https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_9_2_RTM/src/nss-3.9.2.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/net/other/oha/recipe.toml b/recipes/wip/net/other/oha/recipe.toml new file mode 100644 index 000000000..fee15de06 --- /dev/null +++ b/recipes/wip/net/other/oha/recipe.toml @@ -0,0 +1,8 @@ +#TODO jmalloc-sys crate error +[source] +git = "https://github.com/hatoo/oha" +[build] +template = "custom" +script = """ +cookbook_cargo --no-default-features --features rustls +""" diff --git a/recipes/wip/net/other/pavao/recipe.toml b/recipes/wip/net/other/pavao/recipe.toml new file mode 100644 index 000000000..4bae16229 --- /dev/null +++ b/recipes/wip/net/other/pavao/recipe.toml @@ -0,0 +1,14 @@ +#TODO: fails to link libcrypto.so +[source] +git = "https://github.com/jackpot51/pavao.git" + +[build] +template = "custom" +dependencies = [ + "openssl1" +] +script = """ +DYNAMIC_INIT +build_flags="${build_flags} --features vendored" +cookbook_cargo_examples tree +""" diff --git a/recipes/wip/net/other/phantun/recipe.toml b/recipes/wip/net/other/phantun/recipe.toml new file mode 100644 index 000000000..aa548676e --- /dev/null +++ b/recipes/wip/net/other/phantun/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/dndx/phantun" +[build] +template = "custom" +script = """ +cookbook_cargo_packages phantun +""" diff --git a/recipes/wip/net/other/quincy/recipe.toml b/recipes/wip/net/other/quincy/recipe.toml new file mode 100644 index 000000000..8edd71279 --- /dev/null +++ b/recipes/wip/net/other/quincy/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/M0dEx/quincy" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/rallyup/recipe.toml b/recipes/wip/net/other/rallyup/recipe.toml new file mode 100644 index 000000000..aec0aedfb --- /dev/null +++ b/recipes/wip/net/other/rallyup/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/darwindarak/rallyup" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/rathole/recipe.toml b/recipes/wip/net/other/rathole/recipe.toml new file mode 100644 index 000000000..c3a56ae25 --- /dev/null +++ b/recipes/wip/net/other/rathole/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rapiz1/rathole" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/realm/recipe.toml b/recipes/wip/net/other/realm/recipe.toml new file mode 100644 index 000000000..40c0c7c61 --- /dev/null +++ b/recipes/wip/net/other/realm/recipe.toml @@ -0,0 +1,5 @@ +#TODO realm_syscall crate error +[source] +git = "https://github.com/zhboner/realm" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/rlt/recipe.toml b/recipes/wip/net/other/rlt/recipe.toml new file mode 100644 index 000000000..6efa1867e --- /dev/null +++ b/recipes/wip/net/other/rlt/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/kaichaosun/rlt" +[build] +template = "custom" +script = """ +cookbook_cargo_packages localtunnel localtunnel-client localtunnel-server +""" diff --git a/recipes/wip/net/other/rqbit/recipe.toml b/recipes/wip/net/other/rqbit/recipe.toml new file mode 100644 index 000000000..347aaf0f5 --- /dev/null +++ b/recipes/wip/net/other/rqbit/recipe.toml @@ -0,0 +1,11 @@ +#TODO network-interface crate error +[source] +git = "https://github.com/ikatson/rqbit" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages rqbit +""" diff --git a/recipes/wip/net/other/rustscan/recipe.toml b/recipes/wip/net/other/rustscan/recipe.toml new file mode 100644 index 000000000..f82f18c62 --- /dev/null +++ b/recipes/wip/net/other/rustscan/recipe.toml @@ -0,0 +1,8 @@ +#TODO Make nmap work +[source] +git = "https://github.com/RustScan/RustScan" +[build] +template = "cargo" +dependencies = [ + "nmap", +] diff --git a/recipes/wip/net/other/samba/answers.txt b/recipes/wip/net/other/samba/answers.txt new file mode 100644 index 000000000..54c200d0f --- /dev/null +++ b/recipes/wip/net/other/samba/answers.txt @@ -0,0 +1,5 @@ +Checking for HAVE_LITTLE_ENDIAN - runtime: OK +Checking for large file support without additional flags: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_MREMAP: OK +Checking whether setreuid is available: OK diff --git a/recipes/wip/net/other/samba/recipe.toml b/recipes/wip/net/other/samba/recipe.toml new file mode 100644 index 000000000..68ba87be7 --- /dev/null +++ b/recipes/wip/net/other/samba/recipe.toml @@ -0,0 +1,40 @@ +#TODO: needs libmodule-build-parse-yapp-perl dependency +[source] +git = "https://gitlab.redox-os.org/redox-os/samba.git" +upstream = "https://github.com/samba-team/samba.git" + +[build] +template = "custom" +dependencies = [ + "gnutls3", + "libarchive", + "libnettle", + "jansson", + "zlib", +] +script = """ +rsync -av --delete --exclude .git "${COOKBOOK_SOURCE}/" ./ +cp -v "${COOKBOOK_RECIPE}/answers.txt" answers.txt + +COOKBOOK_CONFIGURE_FLAGS=( + --builtin-libraries=ALL + --cross-compile + --cross-answers=answers.txt + --disable-python + --disable-rpath + --enable-fhs + --host="${TARGET}" + --localstatedir=/var + --prefix=/usr + --sysconfdir=/etc + --with-static-modules=ALL,!vfs_snapper + --without-acl-support + --without-ad-dc + --without-ads + --without-gettext + --without-ldap + --without-libunwind + --without-pam +) +cookbook_configure +""" diff --git a/recipes/wip/net/other/sandhole/recipe.toml b/recipes/wip/net/other/sandhole/recipe.toml new file mode 100644 index 000000000..e87de1841 --- /dev/null +++ b/recipes/wip/net/other/sandhole/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/EpicEric/sandhole" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/slumber/recipe.toml b/recipes/wip/net/other/slumber/recipe.toml new file mode 100644 index 000000000..1ed5edbcd --- /dev/null +++ b/recipes/wip/net/other/slumber/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/LucasPickering/slumber" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/smb-rs/recipe.toml b/recipes/wip/net/other/smb-rs/recipe.toml new file mode 100644 index 000000000..815321edb --- /dev/null +++ b/recipes/wip/net/other/smb-rs/recipe.toml @@ -0,0 +1,9 @@ +#TODO: fix aws-lc-sys compilation +[source] +git = "https://github.com/AvivNaaman/smb-rs" + +[build] +template = "custom" +script = """ +cookbook_cargo_packages smb-cli +""" diff --git a/recipes/wip/net/other/speedtest-rs/recipe.toml b/recipes/wip/net/other/speedtest-rs/recipe.toml new file mode 100644 index 000000000..7e32c6f25 --- /dev/null +++ b/recipes/wip/net/other/speedtest-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO openssl-sys crate error (after cargo update) +[source] +git = "https://github.com/nelsonjchen/speedtest-rs" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/other/spiko/recipe.toml b/recipes/wip/net/other/spiko/recipe.toml new file mode 100644 index 000000000..902311176 --- /dev/null +++ b/recipes/wip/net/other/spiko/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/trinhminhtriet/spiko" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/spis/recipe.toml b/recipes/wip/net/other/spis/recipe.toml new file mode 100644 index 000000000..08072da62 --- /dev/null +++ b/recipes/wip/net/other/spis/recipe.toml @@ -0,0 +1,8 @@ +#TODO maybe incomplete script, see the Makefile on the repository +[source] +git = "https://github.com/gbbirkisson/spis" +[build] +template = "custom" +script = """ +cookbook_cargo_packages spis-server +""" diff --git a/recipes/wip/net/other/srsran-4g/recipe.toml b/recipes/wip/net/other/srsran-4g/recipe.toml new file mode 100644 index 000000000..7c4d12331 --- /dev/null +++ b/recipes/wip/net/other/srsran-4g/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://docs.srsran.com/projects/4g/en/latest/general/source/1_installation.html#installation-from-source +[source] +git = "https://github.com/srsran/srsRAN_4G" +rev = "eea87b1d893ae58e0b08bc381730c502024ae71f" +[build] +template = "cmake" +dependencies = [ + "fftw", + "mbedtls", +] diff --git a/recipes/wip/net/other/srsran-project/recipe.toml b/recipes/wip/net/other/srsran-project/recipe.toml new file mode 100644 index 000000000..4ff58768b --- /dev/null +++ b/recipes/wip/net/other/srsran-project/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://github.com/srsran/srsRAN_Project#build-instructions +#TODO missing dependencies +[source] +git = "https://github.com/srsran/srsRAN_Project" +rev = "374200deefd8e1b96fab7328525fd593a808a641" +[build] +template = "cmake" +dependencies = [ + "fftw", + "mbedtls", +] diff --git a/recipes/wip/net/other/tobaru/recipe.toml b/recipes/wip/net/other/tobaru/recipe.toml new file mode 100644 index 000000000..88761712b --- /dev/null +++ b/recipes/wip/net/other/tobaru/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after a patch on ring) +[source] +git = "https://github.com/cfal/tobaru" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/trippy/recipe.toml b/recipes/wip/net/other/trippy/recipe.toml new file mode 100644 index 000000000..d17e376ed --- /dev/null +++ b/recipes/wip/net/other/trippy/recipe.toml @@ -0,0 +1,5 @@ +#TODO source code error +[source] +git = "https://github.com/fujiapple852/trippy" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/turn-rs/recipe.toml b/recipes/wip/net/other/turn-rs/recipe.toml new file mode 100644 index 000000000..f027311fb --- /dev/null +++ b/recipes/wip/net/other/turn-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO ahash crate error +[source] +git = "https://github.com/mycrl/turn-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages turn-cli turn-server +""" diff --git a/recipes/wip/net/other/unbound/recipe.toml b/recipes/wip/net/other/unbound/recipe.toml new file mode 100644 index 000000000..6be840fc5 --- /dev/null +++ b/recipes/wip/net/other/unbound/recipe.toml @@ -0,0 +1,9 @@ +#TODO Compilation error +[source] +tar = "https://nlnetlabs.nl/downloads/unbound/unbound-1.17.1.tar.gz" +[build] +template = "configure" +dependencies = [ + "expat", + "openssl1", +] diff --git a/recipes/wip/net/other/updns/recipe.toml b/recipes/wip/net/other/updns/recipe.toml new file mode 100644 index 000000000..4639a8496 --- /dev/null +++ b/recipes/wip/net/other/updns/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/wyhaya/updns" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/varia/recipe.toml b/recipes/wip/net/other/varia/recipe.toml new file mode 100644 index 000000000..2c03f083a --- /dev/null +++ b/recipes/wip/net/other/varia/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +# build instructions: https://github.com/giantpinkrobots/varia#building +# probably missing dependencies +[source] +git = "https://github.com/giantpinkrobots/varia" +rev = "515bef5536b4947b3ae8dd3c23b7643ea590d73c" +[build] +template = "meson" diff --git a/recipes/wip/net/other/vimini/recipe.toml b/recipes/wip/net/other/vimini/recipe.toml new file mode 100644 index 000000000..2c571acfd --- /dev/null +++ b/recipes/wip/net/other/vimini/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://git.sr.ht/~lufte/vimini" +[build] +template = "cargo" +dependencies = [ + "sqlite3", +] diff --git a/recipes/wip/net/other/vopono/recipe.toml b/recipes/wip/net/other/vopono/recipe.toml new file mode 100644 index 000000000..f286ec1a7 --- /dev/null +++ b/recipes/wip/net/other/vopono/recipe.toml @@ -0,0 +1,5 @@ +#TODO users crate error +[source] +git = "https://github.com/jamesmcm/vopono" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/vpncloud/recipe.toml b/recipes/wip/net/other/vpncloud/recipe.toml new file mode 100644 index 000000000..ced2c2261 --- /dev/null +++ b/recipes/wip/net/other/vpncloud/recipe.toml @@ -0,0 +1,6 @@ +#TODO libc and nix crate error +#TODO require Ruby and asciidoctor at runtime +[source] +git = "https://github.com/dswd/vpncloud" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/vsd/recipe.toml b/recipes/wip/net/other/vsd/recipe.toml new file mode 100644 index 000000000..5252a5d1a --- /dev/null +++ b/recipes/wip/net/other/vsd/recipe.toml @@ -0,0 +1,11 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/clitic/vsd" +[build] +template = "custom" +dependencies = [ + "ffmpeg6", +] +script = """ +cookbook_cargo_packages vsd +""" diff --git a/recipes/wip/net/other/wireguard-rs/recipe.toml b/recipes/wip/net/other/wireguard-rs/recipe.toml new file mode 100644 index 000000000..9722b4afa --- /dev/null +++ b/recipes/wip/net/other/wireguard-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO update mio to 0.8 (after cargo update) +[source] +git = "https://git.zx2c4.com/wireguard-rs" +[build] +template = "cargo" diff --git a/recipes/wip/net/other/wstunnel/recipe.toml b/recipes/wip/net/other/wstunnel/recipe.toml new file mode 100644 index 000000000..8e67e67f6 --- /dev/null +++ b/recipes/wip/net/other/wstunnel/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/erebe/wstunnel" +[build] +template = "custom" +script = """ +cookbook_cargo_packages wstunnel-cli +""" diff --git a/recipes/wip/net/other/yazi/recipe.toml b/recipes/wip/net/other/yazi/recipe.toml new file mode 100644 index 000000000..c35a14cdb --- /dev/null +++ b/recipes/wip/net/other/yazi/recipe.toml @@ -0,0 +1,8 @@ +#TODO trash and mlua-sys crate errors +[source] +git = "https://github.com/sxyazi/yazi" +[build] +template = "custom" +script = """ +cookbook_cargo_packages yazi-fm +""" diff --git a/recipes/wip/net/p2p/dumbpipe/recipe.toml b/recipes/wip/net/p2p/dumbpipe/recipe.toml new file mode 100644 index 000000000..4ae3400fc --- /dev/null +++ b/recipes/wip/net/p2p/dumbpipe/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/n0-computer/dumbpipe" +[build] +template = "cargo" diff --git a/recipes/wip/net/p2p/easytier/recipe.toml b/recipes/wip/net/p2p/easytier/recipe.toml new file mode 100644 index 000000000..9f4a94387 --- /dev/null +++ b/recipes/wip/net/p2p/easytier/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/EasyTier/EasyTier" +[build] +template = "custom" +script = """ +cookbook_cargo_packages easytier +""" diff --git a/recipes/wip/net/p2p/oku/recipe.toml b/recipes/wip/net/p2p/oku/recipe.toml new file mode 100644 index 000000000..7de458152 --- /dev/null +++ b/recipes/wip/net/p2p/oku/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/OkuBrowser/oku" +[build] +template = "custom" +dependencies = [ + "gtk4", + "glib", + "pango", + "webkitgtk4", + "libfuse3", +] +script = """ +./prebuild.sh +cookbook_cargo +""" diff --git a/recipes/wip/net/proxy/hitch/recipe.toml b/recipes/wip/net/proxy/hitch/recipe.toml new file mode 100644 index 000000000..74db0f9c4 --- /dev/null +++ b/recipes/wip/net/proxy/hitch/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +tar = "https://www.hitch-tls.org/source/hitch-1.8.0.tar.gz" +[build] +template = "configure" +dependencies = [ + "libev", + "openssl3", +] diff --git a/recipes/wip/net/proxy/stunnel/recipe.toml b/recipes/wip/net/proxy/stunnel/recipe.toml new file mode 100644 index 000000000..a140df0fa --- /dev/null +++ b/recipes/wip/net/proxy/stunnel/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://www.stunnel.org/downloads/stunnel-5.76.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/net/remote/bayesian-ssh/recipe.toml b/recipes/wip/net/remote/bayesian-ssh/recipe.toml new file mode 100644 index 000000000..2b0c18fcf --- /dev/null +++ b/recipes/wip/net/remote/bayesian-ssh/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/abdoufermat5/bayesian-ssh" +[build] +template = "cargo" diff --git a/recipes/wip/net/remote/do-ssh/recipe.toml b/recipes/wip/net/remote/do-ssh/recipe.toml new file mode 100644 index 000000000..41632fc5e --- /dev/null +++ b/recipes/wip/net/remote/do-ssh/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/doEggi/do-ssh" +[build] +template = "cargo" diff --git a/recipes/wip/net/remote/ethersync/recipe.toml b/recipes/wip/net/remote/ethersync/recipe.toml new file mode 100644 index 000000000..c24a3c049 --- /dev/null +++ b/recipes/wip/net/remote/ethersync/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ethersync/ethersync" +[build] +template = "custom" +script = """ +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/daemon" +cookbook_cargo +""" diff --git a/recipes/wip/net/remote/iroh-ssh/recipe.toml b/recipes/wip/net/remote/iroh-ssh/recipe.toml new file mode 100644 index 000000000..3af3dc0f1 --- /dev/null +++ b/recipes/wip/net/remote/iroh-ssh/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rustonbsd/iroh-ssh" +[build] +template = "cargo" diff --git a/recipes/wip/net/remote/jupii/recipe.toml b/recipes/wip/net/remote/jupii/recipe.toml new file mode 100644 index 000000000..c93e3437e --- /dev/null +++ b/recipes/wip/net/remote/jupii/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# missing dependencies? - https://github.com/mkiol/Jupii#libraries +[source] +git = "https://github.com/mkiol/Jupii" +rev = "ed80ca0ea29081a2bff038faf4884e3acabb14b7" +[build] +template = "cmake" +cmakeflags = [ + "-DWITH_DESKTOP=ON" +] diff --git a/recipes/wip/net/remote/remmina/recipe.toml b/recipes/wip/net/remote/remmina/recipe.toml new file mode 100644 index 000000000..14605bd7d --- /dev/null +++ b/recipes/wip/net/remote/remmina/recipe.toml @@ -0,0 +1,22 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/Remmina/Remmina/-/wikis/Compilation/Compilation-guide +#TODO dependencies need a cleanup (outdated and up-to-date information is mixed in the build instructions) +[source] +git = "https://gitlab.com/Remmina/Remmina" +rev = "2a455eadd6462457d08c2d066c5c245e0dee3bf9" +[build] +template = "cmake" +dependencies = [ + "openssl1", + "libxml2", + "gstreamer", + "ffmpeg6", + "gtk3", + "libgcrypt", + "libssh", + "libvte", + "libjpeg", + "gnutls3", + "libsodium", + "pcre", +] diff --git a/recipes/wip/net/remote/sanzu/recipe.toml b/recipes/wip/net/remote/sanzu/recipe.toml new file mode 100644 index 000000000..6c7dd71b9 --- /dev/null +++ b/recipes/wip/net/remote/sanzu/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/cea-sec/sanzu" +[build] +template = "custom" +script = """ +cookbook_cargo_packages sanzu +""" diff --git a/recipes/wip/net/remote/shared/recipe.toml b/recipes/wip/net/remote/shared/recipe.toml new file mode 100644 index 000000000..ed93e9f47 --- /dev/null +++ b/recipes/wip/net/remote/shared/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mateolafalce/shared" +[build] +template = "cargo" diff --git a/recipes/wip/net/remote/ssh-portfolio/recipe.toml b/recipes/wip/net/remote/ssh-portfolio/recipe.toml new file mode 100644 index 000000000..5babdd7c3 --- /dev/null +++ b/recipes/wip/net/remote/ssh-portfolio/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# require nerdfonts +[source] +git = "https://github.com/CompeyDev/ssh-portfolio" +[build] +template = "cargo" diff --git a/recipes/wip/net/remote/zeco/recipe.toml b/recipes/wip/net/remote/zeco/recipe.toml new file mode 100644 index 000000000..8a4e04275 --- /dev/null +++ b/recipes/wip/net/remote/zeco/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/julianbuettner/zeco" +[build] +template = "cargo" diff --git a/recipes/wip/net/scan/netpeek/recipe.toml b/recipes/wip/net/scan/netpeek/recipe.toml new file mode 100644 index 000000000..fc2334e38 --- /dev/null +++ b/recipes/wip/net/scan/netpeek/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from meson log +[source] +git = "https://github.com/ZingyTomato/NetPeek" +rev = "v0.2.4" +[build] +template = "meson" diff --git a/recipes/wip/net/security/yadb/recipe.toml b/recipes/wip/net/security/yadb/recipe.toml new file mode 100644 index 000000000..d8b9c989c --- /dev/null +++ b/recipes/wip/net/security/yadb/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/izya4ka/yadb" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/bitcoin-core/recipe.toml b/recipes/wip/net/server/bitcoin-core/recipe.toml new file mode 100644 index 000000000..d2e2b3f9d --- /dev/null +++ b/recipes/wip/net/server/bitcoin-core/recipe.toml @@ -0,0 +1,15 @@ +#TODO make dependencies work +[source] +tar = "https://bitcoincore.org/bin/bitcoin-core-27.0/bitcoin-27.0.tar.gz" +[build] +template = "custom" +dependencies = [ + "boost", + "libevent", +] +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-wallet +) +cookbook_configure +""" diff --git a/recipes/wip/net/server/devserver/recipe.toml b/recipes/wip/net/server/devserver/recipe.toml new file mode 100644 index 000000000..8e42b122b --- /dev/null +++ b/recipes/wip/net/server/devserver/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/kettle11/devserver" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/doh-server/recipe.toml b/recipes/wip/net/server/doh-server/recipe.toml new file mode 100644 index 000000000..355c37ab5 --- /dev/null +++ b/recipes/wip/net/server/doh-server/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/DNSCrypt/doh-server" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/dora/recipe.toml b/recipes/wip/net/server/dora/recipe.toml new file mode 100644 index 000000000..dbb9c4635 --- /dev/null +++ b/recipes/wip/net/server/dora/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bluecatengineering/dora" +[build] +template = "custom" +script = """ +cookbook_cargo_packages dora-bin dora-cfg +""" diff --git a/recipes/wip/net/server/electrs/recipe.toml b/recipes/wip/net/server/electrs/recipe.toml new file mode 100644 index 000000000..f24a8659e --- /dev/null +++ b/recipes/wip/net/server/electrs/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing runtime dependencies, see https://github.com/romanz/electrs/blob/master/doc/install.md#build-dependencies +[source] +git = "https://github.com/romanz/electrs" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/encrypted-dns-server/recipe.toml b/recipes/wip/net/server/encrypted-dns-server/recipe.toml new file mode 100644 index 000000000..58f49b37a --- /dev/null +++ b/recipes/wip/net/server/encrypted-dns-server/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/DNSCrypt/encrypted-dns-server" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/feox-server/recipe.toml b/recipes/wip/net/server/feox-server/recipe.toml new file mode 100644 index 000000000..c2aa744df --- /dev/null +++ b/recipes/wip/net/server/feox-server/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mehrantsi/feox-server" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/guacamole-server/recipe.toml b/recipes/wip/net/server/guacamole-server/recipe.toml new file mode 100644 index 000000000..2a81bff60 --- /dev/null +++ b/recipes/wip/net/server/guacamole-server/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +# dependencies - https://guacamole.apache.org/doc/gug/installing-guacamole.html#required-dependencies +[source] +tar = "https://apache.org/dyn/closer.lua/guacamole/1.5.5/source/guacamole-server-1.5.5.tar.gz?action=download" +[build] +template = "configure" +dependencies = [ + "cairo", + "libjpeg", + "libpng", + "libuuid", + "libssh2", + "openssl1", + "pango", + "pulseaudio", + "libvorbis", +] diff --git a/recipes/wip/net/server/nea/recipe.toml b/recipes/wip/net/server/nea/recipe.toml new file mode 100644 index 000000000..82f20a54f --- /dev/null +++ b/recipes/wip/net/server/nea/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +#TODO require the mold liker to be installed +[source] +git = "https://github.com/tweedegolf/nea" +[build] +template = "custom" +script = """ +cookbook_cargo_packages nea +""" diff --git a/recipes/wip/net/server/nostr-rs-relay/recipe.toml b/recipes/wip/net/server/nostr-rs-relay/recipe.toml new file mode 100644 index 000000000..04ad98c32 --- /dev/null +++ b/recipes/wip/net/server/nostr-rs-relay/recipe.toml @@ -0,0 +1,8 @@ +#TODO tikv-jemalloc-sys crate error +[source] +git = "https://github.com/scsibug/nostr-rs-relay" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/net/server/quick-serve/recipe.toml b/recipes/wip/net/server/quick-serve/recipe.toml new file mode 100644 index 000000000..311cb881f --- /dev/null +++ b/recipes/wip/net/server/quick-serve/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/joaofl/quick-serve" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/rustdesk-server/recipe.toml b/recipes/wip/net/server/rustdesk-server/recipe.toml new file mode 100644 index 000000000..5e99d6d1c --- /dev/null +++ b/recipes/wip/net/server/rustdesk-server/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash crate error +[source] +git = "https://github.com/rustdesk/rustdesk-server" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/rustypaste/recipe.toml b/recipes/wip/net/server/rustypaste/recipe.toml new file mode 100644 index 000000000..4e2eeb87e --- /dev/null +++ b/recipes/wip/net/server/rustypaste/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/orhun/rustypaste-cli" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/shoes/recipe.toml b/recipes/wip/net/server/shoes/recipe.toml new file mode 100644 index 000000000..474d05eec --- /dev/null +++ b/recipes/wip/net/server/shoes/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/cfal/shoes" +[build] +template = "cargo" diff --git a/recipes/wip/net/server/spadesx/recipe.toml b/recipes/wip/net/server/spadesx/recipe.toml new file mode 100644 index 000000000..798650814 --- /dev/null +++ b/recipes/wip/net/server/spadesx/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/SpadesX/SpadesX#installation +[source] +git = "https://github.com/SpadesX/SpadesX" +[build] +template = "cmake" +dependencies = [ + "readline", + "zlib", + "json-c", +] diff --git a/recipes/wip/net/server/toe-beans/recipe.toml b/recipes/wip/net/server/toe-beans/recipe.toml new file mode 100644 index 000000000..397f61f9d --- /dev/null +++ b/recipes/wip/net/server/toe-beans/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://codeberg.org/black-cat/toe-beans" +[build] +template = "custom" +script = """ +cookbook_cargo_packages toe-beans +""" diff --git a/recipes/wip/net/server/vproxy/recipe.toml b/recipes/wip/net/server/vproxy/recipe.toml new file mode 100644 index 000000000..db161785d --- /dev/null +++ b/recipes/wip/net/server/vproxy/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/0x676e67/vproxy" +[build] +template = "cargo" diff --git a/recipes/wip/net/sharing/gday/recipe.toml b/recipes/wip/net/sharing/gday/recipe.toml new file mode 100644 index 000000000..8d3a6b20f --- /dev/null +++ b/recipes/wip/net/sharing/gday/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/manforowicz/gday" +[build] +template = "custom" +script = """ +cookbook_cargo_packages gday gday_server +""" diff --git a/recipes/wip/net/sharing/hakanai/recipe.toml b/recipes/wip/net/sharing/hakanai/recipe.toml new file mode 100644 index 000000000..ca4fdbab9 --- /dev/null +++ b/recipes/wip/net/sharing/hakanai/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/czerwonk/hakanai" +[build] +template = "custom" +dependencies = [ + "openssl3" +] +script = """ +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 new file mode 100644 index 000000000..10f922d3a --- /dev/null +++ b/recipes/wip/net/sharing/lan-mouse/recipe.toml @@ -0,0 +1,9 @@ +#TODO make GTK4 work +[source] +git = "https://github.com/feschber/lan-mouse" +[build] +template = "cargo" +dependencies = [ + "libadwaita", + "gtk4", +] diff --git a/recipes/wip/net/sharing/magic-wormhole-rs/recipe.toml b/recipes/wip/net/sharing/magic-wormhole-rs/recipe.toml new file mode 100644 index 000000000..c79ab6288 --- /dev/null +++ b/recipes/wip/net/sharing/magic-wormhole-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO async-tar and rustix crates error +[source] +git = "https://github.com/magic-wormhole/magic-wormhole.rs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages magic-wormhole +""" diff --git a/recipes/wip/net/sharing/microbin/recipe.toml b/recipes/wip/net/sharing/microbin/recipe.toml new file mode 100644 index 000000000..94ea7b122 --- /dev/null +++ b/recipes/wip/net/sharing/microbin/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/szabodanika/microbin" +[build] +template = "cargo" diff --git a/recipes/wip/net/sharing/qft/recipe.toml b/recipes/wip/net/sharing/qft/recipe.toml new file mode 100644 index 000000000..6aeb4bab3 --- /dev/null +++ b/recipes/wip/net/sharing/qft/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/CramBL/quick-file-transfer" +[build] +template = "cargo" diff --git a/recipes/wip/net/sharing/sendme/recipe.toml b/recipes/wip/net/sharing/sendme/recipe.toml new file mode 100644 index 000000000..e4162119a --- /dev/null +++ b/recipes/wip/net/sharing/sendme/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/n0-computer/sendme" +[build] +template = "cargo" diff --git a/recipes/wip/net/sharing/warp/recipe.toml b/recipes/wip/net/sharing/warp/recipe.toml new file mode 100644 index 000000000..797f8b4df --- /dev/null +++ b/recipes/wip/net/sharing/warp/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.gnome.org/World/warp#meson +[source] +git = "https://gitlab.gnome.org/World/warp" +rev = "1daa60691aa1a697acaff55450dcccb085023fc7" +[build] +template = "meson" diff --git a/recipes/wip/net/social/nostui/recipe.toml b/recipes/wip/net/social/nostui/recipe.toml new file mode 100644 index 000000000..f4677875c --- /dev/null +++ b/recipes/wip/net/social/nostui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/akiomik/nostui" +[build] +template = "cargo" diff --git a/recipes/wip/net/social/reddix/recipe.toml b/recipes/wip/net/social/reddix/recipe.toml new file mode 100644 index 000000000..59406eee1 --- /dev/null +++ b/recipes/wip/net/social/reddix/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ck-zhang/reddix" +[build] +template = "cargo" diff --git a/recipes/wip/net/ssh/dropbear/recipe.toml b/recipes/wip/net/ssh/dropbear/recipe.toml new file mode 100644 index 000000000..fdffc6bd0 --- /dev/null +++ b/recipes/wip/net/ssh/dropbear/recipe.toml @@ -0,0 +1,19 @@ +#TODO test dynamic linking +[source] +git = "https://gitlab.redox-os.org/tfinnegan937/dropbear.git" +rev = "4c6828d39f988712cf4d2a64c7acf15d76f24aa9" +[build] +template = "configure" +configureflags = [ + "--disable-syslog", + "--disable-utmpx", + "--disable-utmp", + "--disable-lastlog", + "--disable-loginfunc", + "--disable-wtmp", + "--disable-wtmpx", +] +dependencies = [ + "openssl1", + "zlib" +] diff --git a/recipes/wip/net/ssh/fastssh/recipe.toml b/recipes/wip/net/ssh/fastssh/recipe.toml new file mode 100644 index 000000000..88b911591 --- /dev/null +++ b/recipes/wip/net/ssh/fastssh/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Julien-R44/fast-ssh" +[build] +template = "cargo" diff --git a/recipes/wip/net/ssh/filessh/recipe.toml b/recipes/wip/net/ssh/filessh/recipe.toml new file mode 100644 index 000000000..0e6ec4b4f --- /dev/null +++ b/recipes/wip/net/ssh/filessh/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/JayanAXHF/filessh" +[build] +template = "cargo" diff --git a/recipes/wip/net/ssh/mosh/recipe.toml b/recipes/wip/net/ssh/mosh/recipe.toml new file mode 100644 index 000000000..f5dcad4ff --- /dev/null +++ b/recipes/wip/net/ssh/mosh/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing header files +[source] +tar = "https://github.com/mobile-shell/mosh/releases/download/mosh-1.4.0/mosh-1.4.0.tar.gz" +[build] +template = "custom" +dependencies = [ + "openssl1", + "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 new file mode 100644 index 000000000..828f74717 --- /dev/null +++ b/recipes/wip/net/ssh/russh/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://github.com/jackpot51/russh" + +[build] +template = "custom" +script = """ +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 new file mode 100644 index 000000000..39bb4f0e3 --- /dev/null +++ b/recipes/wip/net/ssh/ssh-pilot/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mfat/sshpilot" +rev = "v4.3.8" +[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 +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/ssh-pilot +""" +[package] +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/net/ssh/sshfs/recipe.toml b/recipes/wip/net/ssh/sshfs/recipe.toml new file mode 100644 index 000000000..aa97842ec --- /dev/null +++ b/recipes/wip/net/ssh/sshfs/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://github.com/libfuse/sshfs#installation +[source] +tar = "https://github.com/libfuse/sshfs/releases/download/sshfs-3.7.3/sshfs-3.7.3.tar.xz" +[build] +template = "meson" +dependencies = [ + "libfuse3", + "glib", +] diff --git a/recipes/wip/net/ssh/sshs/recipe.toml b/recipes/wip/net/ssh/sshs/recipe.toml new file mode 100644 index 000000000..4fa346343 --- /dev/null +++ b/recipes/wip/net/ssh/sshs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/quantumsheep/sshs" +[build] +template = "cargo" diff --git a/recipes/wip/net/ssh/sshx/recipe.toml b/recipes/wip/net/ssh/sshx/recipe.toml new file mode 100644 index 000000000..4a752c857 --- /dev/null +++ b/recipes/wip/net/ssh/sshx/recipe.toml @@ -0,0 +1,9 @@ +#TODO program source code error (after cargo update) +#TODO require NodeJS and NPM +[source] +git = "https://github.com/ekzhang/sshx" +[build] +template = "custom" +script = """ +cookbook_cargo_packages sshx +""" diff --git a/recipes/wip/net/ssh/termirs/recipe.toml b/recipes/wip/net/ssh/termirs/recipe.toml new file mode 100644 index 000000000..0ebb4402a --- /dev/null +++ b/recipes/wip/net/ssh/termirs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/caelansar/termirs" +[build] +template = "cargo" diff --git a/recipes/wip/news/feedr/recipe.toml b/recipes/wip/news/feedr/recipe.toml new file mode 100644 index 000000000..d9d708846 --- /dev/null +++ b/recipes/wip/news/feedr/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bahdotsh/feedr" +[build] +template = "cargo" diff --git a/recipes/wip/news/moccasin/recipe.toml b/recipes/wip/news/moccasin/recipe.toml new file mode 100644 index 000000000..1572ebc75 --- /dev/null +++ b/recipes/wip/news/moccasin/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rektdeckard/moccasin" +[build] +template = "cargo" diff --git a/recipes/wip/news/news-rs/recipe.toml b/recipes/wip/news/news-rs/recipe.toml new file mode 100644 index 000000000..44177d64f --- /dev/null +++ b/recipes/wip/news/news-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO update mio to 0.8 (after cargo update) +[source] +git = "https://github.com/Atticus64/news" +[build] +template = "cargo" diff --git a/recipes/wip/news/tuifeed/recipe.toml b/recipes/wip/news/tuifeed/recipe.toml new file mode 100644 index 000000000..2fe8bf328 --- /dev/null +++ b/recipes/wip/news/tuifeed/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/veeso/tuifeed" +[build] +template = "cargo" diff --git a/recipes/wip/nonfree/games/openspades/recipe.toml b/recipes/wip/nonfree/games/openspades/recipe.toml new file mode 100644 index 000000000..e7d60a0dd --- /dev/null +++ b/recipes/wip/nonfree/games/openspades/recipe.toml @@ -0,0 +1,18 @@ +#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 new file mode 100644 index 000000000..369eedf8c --- /dev/null +++ b/recipes/wip/nonfree/games/zerospades/recipe.toml @@ -0,0 +1,18 @@ +#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/cactui/recipe.toml b/recipes/wip/office/cactui/recipe.toml new file mode 100644 index 000000000..1f491a8aa --- /dev/null +++ b/recipes/wip/office/cactui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/vkobinski/CacTui" +[build] +template = "cargo" diff --git a/recipes/wip/office/doxx/recipe.toml b/recipes/wip/office/doxx/recipe.toml new file mode 100644 index 000000000..4375cd1e9 --- /dev/null +++ b/recipes/wip/office/doxx/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bgreenwell/doxx" +[build] +template = "cargo" diff --git a/recipes/wip/office/libreoffice-dictionaries/recipe.toml b/recipes/wip/office/libreoffice-dictionaries/recipe.toml new file mode 100644 index 000000000..d8c4eac9e --- /dev/null +++ b/recipes/wip/office/libreoffice-dictionaries/recipe.toml @@ -0,0 +1,5 @@ +#TODO probably wrong template +[source] +tar = "https://download.documentfoundation.org/libreoffice/src/25.8.2/libreoffice-dictionaries-25.8.2.2.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/office/libreoffice-translations/recipe.toml b/recipes/wip/office/libreoffice-translations/recipe.toml new file mode 100644 index 000000000..d1823c867 --- /dev/null +++ b/recipes/wip/office/libreoffice-translations/recipe.toml @@ -0,0 +1,5 @@ +#TODO probably wrong template +[source] +tar = "https://download.documentfoundation.org/libreoffice/src/25.8.2/libreoffice-translations-25.8.2.2.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/office/libreoffice/recipe.toml b/recipes/wip/office/libreoffice/recipe.toml new file mode 100644 index 000000000..58922697a --- /dev/null +++ b/recipes/wip/office/libreoffice/recipe.toml @@ -0,0 +1,15 @@ +#TODO determine minimum dependencies +# dependencies reference: https://wiki.documentfoundation.org/Development/BuildingOnLinux#Build_dependencies +[source] +tar = "https://download.documentfoundation.org/libreoffice/src/25.8.2/libreoffice-25.8.2.2.tar.xz" +[build] +template = "configure" +#dependencies = [ +# "kerberos5", +# "qt5-base", +# "gtk3", +# "nss", +# "fontconfig", +# "gstreamer", +# "libcups", +#] diff --git a/recipes/wip/office/sheetsui/recipe.toml b/recipes/wip/office/sheetsui/recipe.toml new file mode 100644 index 000000000..3468441bc --- /dev/null +++ b/recipes/wip/office/sheetsui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/zaphar/sheetsui" +[build] +template = "cargo" diff --git a/recipes/wip/office/xleak/recipe.toml b/recipes/wip/office/xleak/recipe.toml new file mode 100644 index 000000000..5f4653a6f --- /dev/null +++ b/recipes/wip/office/xleak/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bgreenwell/xleak" +[build] +template = "cargo" diff --git a/recipes/wip/office/zathura/recipe.toml b/recipes/wip/office/zathura/recipe.toml new file mode 100644 index 000000000..4a2b57e9d --- /dev/null +++ b/recipes/wip/office/zathura/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://pwmt.org/projects/zathura/installation/ +[source] +tar = "https://pwmt.org/projects/zathura/download/zathura-0.5.14.tar.xz" +[build] +template = "meson" +dependencies = [ + "girara", + "gtk3", +] diff --git a/recipes/wip/other/termplay/recipe.sh b/recipes/wip/other/termplay/recipe.sh new file mode 100644 index 000000000..e52a05f01 --- /dev/null +++ b/recipes/wip/other/termplay/recipe.sh @@ -0,0 +1,2 @@ +GIT=https://github.com/jD91mZM2/termplay.git +CARGOFLAGS="--no-default-features --features bin,termion" diff --git a/recipes/wip/players/cmus/recipe.toml b/recipes/wip/players/cmus/recipe.toml new file mode 100644 index 000000000..df673f223 --- /dev/null +++ b/recipes/wip/players/cmus/recipe.toml @@ -0,0 +1,13 @@ +#TODO can't detect the configure script +[source] +git = "https://github.com/cmus/cmus" +rev = "ade6e2a7253d7a256e87fdac3da17c9158e6700e" +[build] +template = "custom" +dependencies = [ + "ncurses", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_configure +""" diff --git a/recipes/wip/players/cosmic-player/manifest b/recipes/wip/players/cosmic-player/manifest new file mode 100644 index 000000000..7b4df7ce8 --- /dev/null +++ b/recipes/wip/players/cosmic-player/manifest @@ -0,0 +1,10 @@ +name=COSMIC Media Player +binary=/usr/bin/cosmic-player +icon=/ui/icons/apps/multimedia-photo-viewer.png +author=Jeremy Soller +description=COSMIC Media Player +accept=*.avi +accept=*.mkv +accept=*.mov +accept=*.mp4 +accept=*.ogv diff --git a/recipes/wip/players/cosmic-player/recipe.toml b/recipes/wip/players/cosmic-player/recipe.toml new file mode 100644 index 000000000..c876bf143 --- /dev/null +++ b/recipes/wip/players/cosmic-player/recipe.toml @@ -0,0 +1,38 @@ +[source] +git = "https://github.com/pop-os/cosmic-player.git" +branch = "master" + +[build] +template = "custom" +dependencies = [ + "ffmpeg6", + "gettext", + "glib", + "gstreamer", + "libffi", + "libiconv", + "pcre2", + "zlib", +] +script = """ +DYNAMIC_INIT +"${COOKBOOK_CARGO}" rustc \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --release \ + --bin cosmic-player \ + --no-default-features \ + -- \ + -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" +#TODO: install with just? +APPID="com.system76.CosmicPlayer" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/applications/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.desktop" "${COOKBOOK_STAGE}/usr/share/applications/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/metainfo/" +cp -v "${COOKBOOK_SOURCE}/res/${APPID}.metainfo.xml" "${COOKBOOK_STAGE}/usr/share/metainfo/" +mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/" +cp -rv "${COOKBOOK_SOURCE}/res/icons/hicolor/" "${COOKBOOK_STAGE}/usr/share/icons/" +""" diff --git a/recipes/wip/players/festival/recipe.toml b/recipes/wip/players/festival/recipe.toml new file mode 100644 index 000000000..7eab1db69 --- /dev/null +++ b/recipes/wip/players/festival/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/hinto-janai/festival" +[build] +template = "custom" +#dependencies = [ +# "dbus", +#] +script = """ +#DYNAMIC_INIT # if dbus is needed +cookbook_cargo_packages festival-gui +""" diff --git a/recipes/wip/players/glide/recipe.toml b/recipes/wip/players/glide/recipe.toml new file mode 100644 index 000000000..8a1711d9b --- /dev/null +++ b/recipes/wip/players/glide/recipe.toml @@ -0,0 +1,9 @@ +#TODO Make gtk4 work +[source] +git = "https://github.com/philn/glide" +[build] +template = "cargo" +dependencies = [ + "gtk4", + "gstreamer", +] diff --git a/recipes/wip/players/kronos/recipe.toml b/recipes/wip/players/kronos/recipe.toml new file mode 100644 index 000000000..309f1fa35 --- /dev/null +++ b/recipes/wip/players/kronos/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/TrevorSatori/kronos" +[build] +template = "cargo" diff --git a/recipes/wip/players/mpv/recipe.toml b/recipes/wip/players/mpv/recipe.toml new file mode 100644 index 000000000..0ec836351 --- /dev/null +++ b/recipes/wip/players/mpv/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +#TODO missing dependencies +# build instructions: https://github.com/mpv-player/mpv#compilation +[source] +git = "https://github.com/mpv-player/mpv" +branch = "release/0.40" +shallow_clone = true +[build] +template = "meson" +dependencies = [ + "ffmpeg6", + "libass", + "libjpeg", + "libiconv", + "zlib", + "mesa", + "sdl2", +] diff --git a/recipes/wip/players/pragha/recipe.toml b/recipes/wip/players/pragha/recipe.toml new file mode 100644 index 000000000..13dd9022a --- /dev/null +++ b/recipes/wip/players/pragha/recipe.toml @@ -0,0 +1,14 @@ +#TODO Make GTK3 work +[source] +git = "https://github.com/pragha-music-player/pragha" +[build] +template = "configure" +dependencies = [ + "gtk3", + "glib", + "gstreamer", + "taglib", + "sqlite3", + "libpeas", + "totem-plparser", +] diff --git a/recipes/wip/players/recordbox/recipe.toml b/recipes/wip/players/recordbox/recipe.toml new file mode 100644 index 000000000..4cb5b8a85 --- /dev/null +++ b/recipes/wip/players/recordbox/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing dependencies +[source] +git = "https://codeberg.org/edestcroix/Recordbox" +[build] +template = "custom" +dependencies = [ + "sqlite3", + "gtk4", + "glib", + "libadwaita", + "liblcms", + "gstreamer", +] +script = "DYNAMIC_INIT cookbook_cargo" diff --git a/recipes/wip/players/rustcloud/recipe.toml b/recipes/wip/players/rustcloud/recipe.toml new file mode 100644 index 000000000..93bca25dd --- /dev/null +++ b/recipes/wip/players/rustcloud/recipe.toml @@ -0,0 +1,8 @@ +#TODO openssl error (after cargo update) +[source] +git = "https://github.com/cetra3/rustcloud" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/players/rustic/recipe.toml b/recipes/wip/players/rustic/recipe.toml new file mode 100644 index 000000000..2ad92438a --- /dev/null +++ b/recipes/wip/players/rustic/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't update the crates, patch the "fragile" crate version +[source] +git = "https://github.com/rustic-music-player/rustic" +[build] +template = "cargo" diff --git a/recipes/wip/players/spoify/recipe.toml b/recipes/wip/players/spoify/recipe.toml new file mode 100644 index 000000000..4b838f9d7 --- /dev/null +++ b/recipes/wip/players/spoify/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/slyeet03/spoify" +[build] +template = "cargo" diff --git a/recipes/wip/players/spotify-player/recipe.toml b/recipes/wip/players/spotify-player/recipe.toml new file mode 100644 index 000000000..decb29a56 --- /dev/null +++ b/recipes/wip/players/spotify-player/recipe.toml @@ -0,0 +1,21 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/aome510/spotify-player" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +package=spotify_player +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${package}" \ + --release + --no-default-features + --rodio-backend + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${package}" \ + "${COOKBOOK_STAGE}/usr/bin/${package}" +""" diff --git a/recipes/wip/players/symphonia-play/recipe.toml b/recipes/wip/players/symphonia-play/recipe.toml new file mode 100644 index 000000000..09f2292b8 --- /dev/null +++ b/recipes/wip/players/symphonia-play/recipe.toml @@ -0,0 +1,10 @@ +#TODO compiled and tested +#TODO cpal can't find an audio device +[source] +git = "https://github.com/pdeljanov/Symphonia" +[build] +template = "custom" +script = """ +cookbook_cargo_packages symphonia-play +mv "${COOKBOOK_STAGE}/usr/bin/symphonia-play_symphonia-play" "${COOKBOOK_STAGE}/usr/bin/symphonia-play" +""" diff --git a/recipes/wip/players/tap/recipe.toml b/recipes/wip/players/tap/recipe.toml new file mode 100644 index 000000000..e555a2f9a --- /dev/null +++ b/recipes/wip/players/tap/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/timdubbins/tap" +[build] +template = "cargo" diff --git a/recipes/wip/players/termusic/recipe.toml b/recipes/wip/players/termusic/recipe.toml new file mode 100644 index 000000000..b1ee43703 --- /dev/null +++ b/recipes/wip/players/termusic/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing script for "make", see https://github.com/tramhao/termusic#from-source +[source] +git = "https://github.com/tramhao/termusic" +rev = "109405465bd5873567b5387c20e9b149e477b176" +[build] +template = "custom" +dependencies = [ + "gstreamer", + "dbus", + "mpv", +] diff --git a/recipes/wip/players/tplay/recipe.toml b/recipes/wip/players/tplay/recipe.toml new file mode 100644 index 000000000..05ee069f7 --- /dev/null +++ b/recipes/wip/players/tplay/recipe.toml @@ -0,0 +1,10 @@ +#TODO Make opencv4 work +[source] +git = "https://github.com/maxcurzi/tplay" +[build] +template = "cargo" +dependencies = [ + "ffmpeg6", + "openssl1", + "opencv4", +] diff --git a/recipes/wip/players/ttv/recipe.toml b/recipes/wip/players/ttv/recipe.toml new file mode 100644 index 000000000..37b0c7f00 --- /dev/null +++ b/recipes/wip/players/ttv/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/nik-rev/ttv" +[build] +template = "cargo" +dependencies = [ + "ffmpeg6", +] diff --git a/recipes/wip/players/vlc/recipe.toml b/recipes/wip/players/vlc/recipe.toml new file mode 100644 index 000000000..e67f6c562 --- /dev/null +++ b/recipes/wip/players/vlc/recipe.toml @@ -0,0 +1,48 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies +# customization: https://wiki.videolan.org/Configure/ +[source] +tar = "https://get.videolan.org/vlc/3.0.21/vlc-3.0.21.tar.xz" +[build] +template = "configure" +dependencies = [ + # "libvorbis", + # "libogg", + # "speex", + # "libflac", + # "libtheora", + # "x264", + # "liba52", + # "libmpeg2", + # "lame", + "ffmpeg6", + # "libmad", + # "libdca", + # "twolame", + # "musepack", + # "libass", + # "libzvbi", + # "opus", + # "libebml", + # "libmatroska", + # "libdvbpsi", + # "libdvdcss", + # "libdvdread", + # "libdvdnav", + # "libbluray", + # "libgpg-error", + # "libgcrypt", + # "gnutls", + "libxml2", + # "libvncserver", + # "libpng", + # "libjpeg", + # "libiconv", + # "gettext", + "zlib", + "freetype2", + # "fribidi", + "fontconfig", + # "taglib", + "wxwidgets-gtk3", +] diff --git a/recipes/wip/players/ytermusic/recipe.toml b/recipes/wip/players/ytermusic/recipe.toml new file mode 100644 index 000000000..2f4b872b0 --- /dev/null +++ b/recipes/wip/players/ytermusic/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ccgauche/ytermusic" +[build] +template = "cargo" diff --git a/recipes/wip/recorders/asciinema/recipe.toml b/recipes/wip/recorders/asciinema/recipe.toml new file mode 100644 index 000000000..72724cc94 --- /dev/null +++ b/recipes/wip/recorders/asciinema/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/asciinema/asciinema" +[build] +template = "cargo" diff --git a/recipes/wip/recorders/autocast/recipe.toml b/recipes/wip/recorders/autocast/recipe.toml new file mode 100644 index 000000000..de7c98b74 --- /dev/null +++ b/recipes/wip/recorders/autocast/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/k9withabone/autocast" +[build] +template = "cargo" diff --git a/recipes/wip/recorders/gpu-screen-recorder-gtk/recipe.toml b/recipes/wip/recorders/gpu-screen-recorder-gtk/recipe.toml new file mode 100644 index 000000000..e37a5938b --- /dev/null +++ b/recipes/wip/recorders/gpu-screen-recorder-gtk/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +[source] +git = "https://git.dec05eba.com/gpu-screen-recorder-gtk" +rev = "7fb7608b720068d3c114330e8d274b04ef310cf2" +[build] +template = "meson" +dependencies = [ + "gtk3", + "libx11", +] +[package] +dependencies = [ + "gpu-screen-recorder", +] diff --git a/recipes/wip/recorders/gpu-screen-recorder/recipe.toml b/recipes/wip/recorders/gpu-screen-recorder/recipe.toml new file mode 100644 index 000000000..ebe10465e --- /dev/null +++ b/recipes/wip/recorders/gpu-screen-recorder/recipe.toml @@ -0,0 +1,20 @@ +#TODO not compiled or tested +[source] +git = "https://git.dec05eba.com/gpu-screen-recorder" +rev = "422f214283ba50649acca4d9b5a9778d313fe05b" +[build] +template = "meson" +dependencies = [ + "mesa", + "libvulkan", + "ffmpeg6", + "libx11", + "libxcomposite", + "libxrandr", + "libxfixes", + "libxdamage", + "pulseaudio", + "libva", + "libcap", + "libwayland", +] diff --git a/recipes/wip/recorders/obs-studio/recipe.toml b/recipes/wip/recorders/obs-studio/recipe.toml new file mode 100644 index 000000000..9a2e6556c --- /dev/null +++ b/recipes/wip/recorders/obs-studio/recipe.toml @@ -0,0 +1,31 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from cmake log +# build instructions: https://github.com/obsproject/obs-studio/wiki/Building-OBS-Studio +[source] +tar = "https://github.com/obsproject/obs-studio/releases/download/32.0.2/OBS-Studio-32.0.2-Sources.tar.gz" +[build] +template = "cmake" +# dependencies = [ +# "boost", +# "librsvg", +# "dbus", +# "fontconfig", +# "freetype2", +# "jansson", +# "pipewire", +# "mesa", +# "speexdsp", +# "ffmpeg6", +# "x264", +# "curl", +# "mbedtls", +# "libva", +# "qt5-base", +# "qt5-svg", +# "eudev", +# "pciutils", +# "libqrcodegenc", +# "librist", +# "libsrt", +# "libwebsocket++", +# ] diff --git a/recipes/wip/scan/sane-backends/recipe.toml b/recipes/wip/scan/sane-backends/recipe.toml new file mode 100644 index 000000000..a4cb49a17 --- /dev/null +++ b/recipes/wip/scan/sane-backends/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/sane-project/backends/-/blob/master/README?ref_type=heads +[source] +tar = "https://gitlab.com/-/project/429008/uploads/843c156420e211859e974f78f64c3ea3/sane-backends-1.4.0.tar.gz" +[build] +template = "configure" +dependencies = [ + "libusb", + "libjpeg", +] diff --git a/recipes/wip/scan/zbar/recipe.toml b/recipes/wip/scan/zbar/recipe.toml new file mode 100644 index 000000000..07df68470 --- /dev/null +++ b/recipes/wip/scan/zbar/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +#TODO determine the dependencies +[source] +tar = "http://sourceforge.net/projects/zbar/files/zbar/0.10/zbar-0.10.tar.bz2/download" +[build] +template = "configure" diff --git a/recipes/wip/science/alevin-fry/recipe.toml b/recipes/wip/science/alevin-fry/recipe.toml new file mode 100644 index 000000000..f6b521000 --- /dev/null +++ b/recipes/wip/science/alevin-fry/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +git = "https://github.com/COMBINE-lab/alevin-fry" +[build] +template = "cargo" diff --git a/recipes/wip/science/astroterm/recipe.toml b/recipes/wip/science/astroterm/recipe.toml new file mode 100644 index 000000000..a64a2fcfd --- /dev/null +++ b/recipes/wip/science/astroterm/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/da-luce/astroterm" +[build] +template = "cargo" diff --git a/recipes/wip/science/celestia-data/recipe.toml b/recipes/wip/science/celestia-data/recipe.toml new file mode 100644 index 000000000..06988feaf --- /dev/null +++ b/recipes/wip/science/celestia-data/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/CelestiaProject/Celestia/blob/master/INSTALL.md#installing-the-content +[source] +git = "https://github.com/CelestiaProject/CelestiaContent" +[build] +template = "cmake" diff --git a/recipes/wip/science/celestia/recipe.toml b/recipes/wip/science/celestia/recipe.toml new file mode 100644 index 000000000..1dd31156e --- /dev/null +++ b/recipes/wip/science/celestia/recipe.toml @@ -0,0 +1,24 @@ +#TODO not compiled or tested +# build instructions: https://github.com/CelestiaProject/Celestia/blob/master/INSTALL.md#celestia-install-instructions-for-unix +# sdl2 frontend is limited, qt6 or qt5 is preferred +[source] +tar = "https://github.com/CelestiaProject/Celestia/releases/download/1.6.4/celestia-1.6.4.tar.xz" +[build] +template = "cmake" +cmakeflags = [ + "-DENABLE_INTERFACE=ON", + "-DENABLE_SDL=ON", +] +dependencies = [ + "mesa", + "mesa-glu", + "sdl2", + "libepoxy", + "libeigen", + "libfmt", + "freetype2", + "libpng", + "libjpeg", + "luajit", + #"qt6-base", +] diff --git a/recipes/wip/science/chem-creator/recipe.toml b/recipes/wip/science/chem-creator/recipe.toml new file mode 100644 index 000000000..cb5cfba38 --- /dev/null +++ b/recipes/wip/science/chem-creator/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/pumken/chemcreator" +[build] +template = "cargo" diff --git a/recipes/wip/science/cosmic-weather/recipe.toml b/recipes/wip/science/cosmic-weather/recipe.toml new file mode 100644 index 000000000..b837c8131 --- /dev/null +++ b/recipes/wip/science/cosmic-weather/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jwestall/cosmic-weather" +[build] +template = "cargo" diff --git a/recipes/wip/science/gaia-sky/recipe.toml b/recipes/wip/science/gaia-sky/recipe.toml new file mode 100644 index 000000000..f83980376 --- /dev/null +++ b/recipes/wip/science/gaia-sky/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +tar = "https://gaia.ari.uni-heidelberg.de/gaiasky/releases/latest/gaiasky-3.6.4-2.3bfeec0f9.tar.gz" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/gaia-sky +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/gaia-sky +echo "#!/usr/bin/env bash \n /usr/share/gaia-sky" > "${COOKBOOK_STAGE}"/usr/bin/gaia-sky +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/gaia-sky +""" diff --git a/recipes/wip/science/gromacs/recipe.toml b/recipes/wip/science/gromacs/recipe.toml new file mode 100644 index 000000000..4b02ebc56 --- /dev/null +++ b/recipes/wip/science/gromacs/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://manual.gromacs.org/current/install-guide/index.html +[source] +tar = "https://ftp.gromacs.org/gromacs/gromacs-2025.3.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/science/mrbayes/recipe.toml b/recipes/wip/science/mrbayes/recipe.toml new file mode 100644 index 000000000..64cbe7987 --- /dev/null +++ b/recipes/wip/science/mrbayes/recipe.toml @@ -0,0 +1,5 @@ +#TODO don't recognize the redox target +[source] +git = "https://github.com/NBISweden/MrBayes" +[build] +template = "configure" diff --git a/recipes/wip/science/nucleus/recipe.toml b/recipes/wip/science/nucleus/recipe.toml new file mode 100644 index 000000000..1dd85d0de --- /dev/null +++ b/recipes/wip/science/nucleus/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from meson log +[source] +tar = "https://codeberg.org/lo-vely/nucleus/archive/v2.tar.gz" +[build] +template = "meson" diff --git a/recipes/wip/science/oarfish/recipe.toml b/recipes/wip/science/oarfish/recipe.toml new file mode 100644 index 000000000..f1376e4e0 --- /dev/null +++ b/recipes/wip/science/oarfish/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/COMBINE-lab/oarfish" +[build] +template = "cargo" diff --git a/recipes/wip/science/openfoam/recipe.toml b/recipes/wip/science/openfoam/recipe.toml new file mode 100644 index 000000000..cf6e21fc3 --- /dev/null +++ b/recipes/wip/science/openfoam/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for building, see https://openfoam.org/download/11-source/ +[source] +tar = "http://dl.openfoam.org/source/11" +[build] +template = "custom" +dependencies = [ + "paraview", + "scotch", +] diff --git a/recipes/wip/science/openspace/recipe.toml b/recipes/wip/science/openspace/recipe.toml new file mode 100644 index 000000000..b67caa267 --- /dev/null +++ b/recipes/wip/science/openspace/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://docs.openspaceproject.com/en/latest/dev/compiling/index.html# +[source] +git = "https://github.com/OpenSpace/OpenSpace" +rev = "b3681167a3b95d49ac7aa7d06b07cbd88c687e9a" +[build] +template = "cmake" +dependencies = [ + "qt6-base", + "libgdal", +] diff --git a/recipes/wip/science/piscem/recipe.toml b/recipes/wip/science/piscem/recipe.toml new file mode 100644 index 000000000..47886919a --- /dev/null +++ b/recipes/wip/science/piscem/recipe.toml @@ -0,0 +1,5 @@ +#TODO CMake error +[source] +git = "https://github.com/COMBINE-lab/piscem" +[build] +template = "cargo" diff --git a/recipes/wip/science/polypolish/recipe.toml b/recipes/wip/science/polypolish/recipe.toml new file mode 100644 index 000000000..5e6649d9c --- /dev/null +++ b/recipes/wip/science/polypolish/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/rrwick/Polypolish" +[build] +template = "cargo" diff --git a/recipes/wip/science/qmcpack/recipe.toml b/recipes/wip/science/qmcpack/recipe.toml new file mode 100644 index 000000000..33777b799 --- /dev/null +++ b/recipes/wip/science/qmcpack/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +# build instructions: https://qmcpack.readthedocs.io/en/develop/installation.html#building-with-cmake +# probably missing dependencies +[source] +git = "https://github.com/QMCPACK/qmcpack" +rev = "9d0d968139fc33f71dbf9159f526dd7b47f10a3b" +[build] +template = "cmake" +dependencies = [ + "openmpi", + "openblas", + "hdf5", + "libxml2", + "boost", + "fftw", +] diff --git a/recipes/wip/science/scidataflow/recipe.toml b/recipes/wip/science/scidataflow/recipe.toml new file mode 100644 index 000000000..2e6146e11 --- /dev/null +++ b/recipes/wip/science/scidataflow/recipe.toml @@ -0,0 +1,8 @@ +#TODO async-io and rustix crates error +[source] +git = "https://github.com/vsbuffalo/scidataflow" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/science/simpleaf/recipe.toml b/recipes/wip/science/simpleaf/recipe.toml new file mode 100644 index 000000000..d530364ab --- /dev/null +++ b/recipes/wip/science/simpleaf/recipe.toml @@ -0,0 +1,5 @@ +#TODO faccess crate error +[source] +git = "https://github.com/COMBINE-lab/simpleaf" +[build] +template = "cargo" diff --git a/recipes/wip/science/siril/recipe.toml b/recipes/wip/science/siril/recipe.toml new file mode 100644 index 000000000..21d6258d8 --- /dev/null +++ b/recipes/wip/science/siril/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing cross-compilation script +#TODO missing dependencies - https://gitlab.com/free-astro/siril#requirements +# build instructions - https://gitlab.com/free-astro/siril#building-siril-for-gnulinux +[source] +tar = "https://free-astro.org/download/siril-1.2.4.tar.bz2" +[build] +template = "custom" +dependencies = [ + "glib", + "gtk3", + "liblcms", + "fftw", + "opencv4", +] diff --git a/recipes/wip/science/sonde/recipe.toml b/recipes/wip/science/sonde/recipe.toml new file mode 100644 index 000000000..3b7d298d6 --- /dev/null +++ b/recipes/wip/science/sonde/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rnleach/sonde" +[build] +template = "cargo" +dependencies = [ + "gtk4", +] diff --git a/recipes/wip/science/specfem2d/recipe.toml b/recipes/wip/science/specfem2d/recipe.toml new file mode 100644 index 000000000..f43f635e0 --- /dev/null +++ b/recipes/wip/science/specfem2d/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for GNU Autotools", see https://specfem2d.readthedocs.io/en/latest/02_getting_started/ +[source] +git = "https://github.com/SPECFEM/specfem2d" +rev = "0bbc7858dcd0ac9c1c64a35a41c83fa7f6847205" +[build] +template = "custom" diff --git a/recipes/wip/science/specfem3d-globe/recipe.toml b/recipes/wip/science/specfem3d-globe/recipe.toml new file mode 100644 index 000000000..8192ae27d --- /dev/null +++ b/recipes/wip/science/specfem3d-globe/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for GNU Autotools, see https://specfem3d-globe.readthedocs.io/en/latest/02_getting_started/ +[source] +git = "https://github.com/SPECFEM/specfem3d_globe" +rev = "59f5e68c468c53a07011a795e6fa1650d6be0fd9" +[build] +template = "custom" diff --git a/recipes/wip/science/specfem3d/recipe.toml b/recipes/wip/science/specfem3d/recipe.toml new file mode 100644 index 000000000..7247949d0 --- /dev/null +++ b/recipes/wip/science/specfem3d/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for GNU Autotools, see https://specfem3d.readthedocs.io/en/latest/02_getting_started/ +[source] +git = "https://github.com/SPECFEM/specfem3d" +rev = "c97d521a9a19ed41523837f161c70deacdb180cc" +[build] +template = "custom" diff --git a/recipes/wip/science/stellarium/recipe.toml b/recipes/wip/science/stellarium/recipe.toml new file mode 100644 index 000000000..89430ec2c --- /dev/null +++ b/recipes/wip/science/stellarium/recipe.toml @@ -0,0 +1,23 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Stellarium/stellarium/blob/master/BUILDING.md#building +#TODO missing dependencies: https://github.com/Stellarium/stellarium/blob/master/BUILDING.md#qt6 +[source] +tar = "https://github.com/Stellarium/stellarium/releases/download/v25.3/stellarium-25.3.tar.xz" +[build] +template = "cmake" +dependencies = [ + "mesa", + "zlib", + "gstreamer", + "qt6-base", + "qt6-multimedia", + "qt6-webengine", + "qt6-positioning", + "qt6-charts", + "qt6-imageformats", + "qt6-translations", + "qt6-tools", + "libxkbcommon", + "gexiv2", + "libnlopt", +] diff --git a/recipes/wip/science/vidoxide/recipe.toml b/recipes/wip/science/vidoxide/recipe.toml new file mode 100644 index 000000000..396e3923b --- /dev/null +++ b/recipes/wip/science/vidoxide/recipe.toml @@ -0,0 +1,8 @@ +#TODO require camera drivers, see https://github.com/GreatAttractor/vidoxide#3-building +[source] +git = "https://github.com/GreatAttractor/vidoxide" +[build] +template = "cargo" +dependencies = [ + "gtk3", +] diff --git a/recipes/wip/science/weather/cosmic-ext-forecast/recipe.toml b/recipes/wip/science/weather/cosmic-ext-forecast/recipe.toml new file mode 100644 index 000000000..1b35e5247 --- /dev/null +++ b/recipes/wip/science/weather/cosmic-ext-forecast/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +#TODO verify if the resource commands are correct +[source] +git = "https://github.com/cosmic-utils/forecast" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/applications +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/metainfo +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/icons +cp -rv "${COOKBOOK_SOURCE}"/res/com.jwestall.Forecast.desktop "${COOKBOOK_STAGE}"/usr/share/applications +cp -rv "${COOKBOOK_SOURCE}"/res/com.jwestall.Forecast.metainfo.xml "${COOKBOOK_STAGE}"/usr/share/metainfo +cp -rv "${COOKBOOK_SOURCE}"/res/icons/hicolor "${COOKBOOK_STAGE}"/usr/share/icons +cookbook_cargo +""" \ No newline at end of file diff --git a/recipes/wip/science/wthrr/recipe.toml b/recipes/wip/science/wthrr/recipe.toml new file mode 100644 index 000000000..cb15129bc --- /dev/null +++ b/recipes/wip/science/wthrr/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ttytm/wthrr-the-weathercrab" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/search/clapgrep/recipe.toml b/recipes/wip/search/clapgrep/recipe.toml new file mode 100644 index 000000000..9159cad1f --- /dev/null +++ b/recipes/wip/search/clapgrep/recipe.toml @@ -0,0 +1,11 @@ +#TODO write a script to copy the data files, see: https://github.com/luleyleo/clapgrep/blob/main/makefile +[source] +git = "https://github.com/luleyleo/clapgrep" +[build] +template = "custom" +dependencies = [ + "gtk4", +] +script = """ +cookbook_cargo_packages clapgrep-gnome +""" diff --git a/recipes/wip/search/localsearch/recipe.toml b/recipes/wip/search/localsearch/recipe.toml new file mode 100644 index 000000000..6687bc50f --- /dev/null +++ b/recipes/wip/search/localsearch/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +#TODO discover minimum dependencies from meson log +[source] +tar = "https://download.gnome.org/sources/localsearch/3.10/localsearch-3.10.1.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dfunctional_tests=false", + "-Dsandbox_tests=false", + "-Dseccomp=false", + "-Dbattery_detection=none", + "-Dsystemd_user_services=false", + "-Dman=false", +] diff --git a/recipes/wip/search/lstr/recipe.toml b/recipes/wip/search/lstr/recipe.toml new file mode 100644 index 000000000..b91c05a11 --- /dev/null +++ b/recipes/wip/search/lstr/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bgreenwell/lstr" +[build] +template = "cargo" diff --git a/recipes/wip/search/scout/recipe.toml b/recipes/wip/search/scout/recipe.toml new file mode 100644 index 000000000..4e9acbf44 --- /dev/null +++ b/recipes/wip/search/scout/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jhbabon/scout" +[build] +template = "cargo" diff --git a/recipes/wip/search/srgn/recipe.toml b/recipes/wip/search/srgn/recipe.toml new file mode 100644 index 000000000..4e00db659 --- /dev/null +++ b/recipes/wip/search/srgn/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/alexpovel/srgn" +[build] +template = "cargo" diff --git a/recipes/wip/search/television/recipe.toml b/recipes/wip/search/television/recipe.toml new file mode 100644 index 000000000..82eadd56a --- /dev/null +++ b/recipes/wip/search/television/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/alexpasmantier/television" +[build] +template = "cargo" diff --git a/recipes/wip/search/ugrep/recipe.toml b/recipes/wip/search/ugrep/recipe.toml new file mode 100644 index 000000000..0834f2c86 --- /dev/null +++ b/recipes/wip/search/ugrep/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +#TODO maybe wrong template +[source] +git = "https://github.com/Genivia/ugrep" +rev = "7ddb6d9690e70bc426da5fed3e1031973823fc69" +[build] +template = "configure" diff --git a/recipes/wip/security/airgorah/recipe.toml b/recipes/wip/security/airgorah/recipe.toml new file mode 100644 index 000000000..11040022c --- /dev/null +++ b/recipes/wip/security/airgorah/recipe.toml @@ -0,0 +1,8 @@ +#TODO make gtk4 work +[source] +git = "https://github.com/martin-olivier/airgorah" +[build] +template = "cargo" +dependencies = [ + "gtk4", +] diff --git a/recipes/wip/security/angryoxide/recipe.toml b/recipes/wip/security/angryoxide/recipe.toml new file mode 100644 index 000000000..6f6924f6a --- /dev/null +++ b/recipes/wip/security/angryoxide/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Ragnt/AngryOxide#building-from-source +[source] +git = "https://github.com/Ragnt/AngryOxide" +[build] +template = "cargo" diff --git a/recipes/wip/security/apbf/recipe.toml b/recipes/wip/security/apbf/recipe.toml new file mode 100644 index 000000000..6552c417d --- /dev/null +++ b/recipes/wip/security/apbf/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://gitlab.com/timvisee/apbf" +[build] +template = "cargo" diff --git a/recipes/wip/security/authoscope/recipe.toml b/recipes/wip/security/authoscope/recipe.toml new file mode 100644 index 000000000..e82f959cc --- /dev/null +++ b/recipes/wip/security/authoscope/recipe.toml @@ -0,0 +1,13 @@ +#TODO funty crate version deleted by the owner +[source] +git = "https://github.com/kpcyrd/authoscope" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo +""" diff --git a/recipes/wip/security/binsec/recipe.toml b/recipes/wip/security/binsec/recipe.toml new file mode 100644 index 000000000..d64eabdb4 --- /dev/null +++ b/recipes/wip/security/binsec/recipe.toml @@ -0,0 +1,5 @@ +#TODO yara-sys crate error (after cargo update) +[source] +git = "https://github.com/ex0dus-0x/binsec" +[build] +template = "cargo" diff --git a/recipes/wip/security/breakmancer/recipe.toml b/recipes/wip/security/breakmancer/recipe.toml new file mode 100644 index 000000000..fe2f12b5b --- /dev/null +++ b/recipes/wip/security/breakmancer/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://codeberg.org/timmc/breakmancer" +[build] +template = "cargo" diff --git a/recipes/wip/security/burrow/recipe.toml b/recipes/wip/security/burrow/recipe.toml new file mode 100644 index 000000000..af63cfcb7 --- /dev/null +++ b/recipes/wip/security/burrow/recipe.toml @@ -0,0 +1,8 @@ +#TODO cargo package error +[source] +git = "https://github.com/hackclub/burrow" +[build] +template = "custom" +script = """ +cookbook_cargo_packages burrow +""" diff --git a/recipes/wip/security/capstone/recipe.toml b/recipes/wip/security/capstone/recipe.toml new file mode 100644 index 000000000..c0cef7518 --- /dev/null +++ b/recipes/wip/security/capstone/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for building, see https://github.com/capstone-engine/capstone/blob/next/COMPILE.TXT +[source] +git = "https://github.com/capstone-engine/capstone" +rev = "097c04d9413c59a58b00d4d1c8d5dc0ac158ffaa" +[build] +template = "custom" diff --git a/recipes/wip/security/cargo-scan/recipe.toml b/recipes/wip/security/cargo-scan/recipe.toml new file mode 100644 index 000000000..35a573fb6 --- /dev/null +++ b/recipes/wip/security/cargo-scan/recipe.toml @@ -0,0 +1,8 @@ +#TODO ahash crate error +[source] +git = "https://github.com/PLSysSec/cargo-scan" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/security/clamav/recipe.toml b/recipes/wip/security/clamav/recipe.toml new file mode 100644 index 000000000..e90d730ab --- /dev/null +++ b/recipes/wip/security/clamav/recipe.toml @@ -0,0 +1,22 @@ +#TODO not compiled or tested +# build instructions: https://docs.clamav.net/manual/Installing/Installing-from-source-Unix.html +#TODO missing Sendmail Mail Filter API (Milter) +[source] +tar = "https://www.clamav.net/downloads/production/clamav-1.5.0.tar.gz" +[build] +template = "custom" +dependencies = [ + "curl", + "ncurses", + "bzip2", + "json-c", + "pcre", + "openssl1", + "libxml2", + "zlib", +] +script = """ +DYNAMIC_INIT +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_cmake +""" diff --git a/recipes/wip/security/cotp/recipe.toml b/recipes/wip/security/cotp/recipe.toml new file mode 100644 index 000000000..70abd2029 --- /dev/null +++ b/recipes/wip/security/cotp/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/replydev/cotp" +[build] +template = "custom" +dependencies = [ + "libxkbcommon", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/security/deoptimizer/recipe.toml b/recipes/wip/security/deoptimizer/recipe.toml new file mode 100644 index 000000000..c91e63c07 --- /dev/null +++ b/recipes/wip/security/deoptimizer/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/EgeBalci/deoptimizer" +[build] +template = "cargo" diff --git a/recipes/wip/security/dfir-toolkit/recipe.toml b/recipes/wip/security/dfir-toolkit/recipe.toml new file mode 100644 index 000000000..94dc1f6b4 --- /dev/null +++ b/recipes/wip/security/dfir-toolkit/recipe.toml @@ -0,0 +1,8 @@ +#TODO forensic-rs crate error +[source] +git = "https://github.com/dfir-dd/dfir-toolkit" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/security/feroxbuster/recipe.toml b/recipes/wip/security/feroxbuster/recipe.toml new file mode 100644 index 000000000..1fb0944bf --- /dev/null +++ b/recipes/wip/security/feroxbuster/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/epi052/feroxbuster" +[build] +template = "cargo" diff --git a/recipes/wip/security/flawz/recipe.toml b/recipes/wip/security/flawz/recipe.toml new file mode 100644 index 000000000..dc7e0441c --- /dev/null +++ b/recipes/wip/security/flawz/recipe.toml @@ -0,0 +1,8 @@ +#TODO webbrowser crate error +[source] +git = "https://github.com/orhun/flawz" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/security/gnupg-lts/recipe.toml b/recipes/wip/security/gnupg-lts/recipe.toml new file mode 100644 index 000000000..f0049191f --- /dev/null +++ b/recipes/wip/security/gnupg-lts/recipe.toml @@ -0,0 +1,9 @@ +#TODO compilation error on libgcrypt +[source] +tar = "https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.41.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libiconv", + "libgcrypt", +] diff --git a/recipes/wip/security/gnupg/recipe.toml b/recipes/wip/security/gnupg/recipe.toml new file mode 100644 index 000000000..3d112edb8 --- /dev/null +++ b/recipes/wip/security/gnupg/recipe.toml @@ -0,0 +1,9 @@ +#TODO compilation error on libgcrypt +[source] +tar = "https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.4.1.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libiconv", + "libgcrypt", +] diff --git a/recipes/wip/security/john-the-ripper/recipe.toml b/recipes/wip/security/john-the-ripper/recipe.toml new file mode 100644 index 000000000..0428e4cdb --- /dev/null +++ b/recipes/wip/security/john-the-ripper/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing script for GNU Autotools, see https://github.com/openwall/john/blob/bleeding-jumbo/doc/INSTALL +[source] +tar = "https://www.openwall.com/john/k/john-1.9.0-jumbo-1.tar.xz" +[build] +template = "custom" +dependencies = [ + "openssl1", + "nss", + "kerberos5", + "libgmp", +] diff --git a/recipes/wip/security/kanha/recipe.toml b/recipes/wip/security/kanha/recipe.toml new file mode 100644 index 000000000..a951070bb --- /dev/null +++ b/recipes/wip/security/kanha/recipe.toml @@ -0,0 +1,5 @@ +#TODO linking error (after cargo update) +[source] +git = "https://github.com/pwnwriter/kanha" +[build] +template = "cargo" diff --git a/recipes/wip/security/keepassxc/recipe.toml b/recipes/wip/security/keepassxc/recipe.toml new file mode 100644 index 000000000..3727dfa46 --- /dev/null +++ b/recipes/wip/security/keepassxc/recipe.toml @@ -0,0 +1,23 @@ +#TODO not compiled or tested +# build instructions: https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC#linux +# probably missing dependencies, see https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux#install-the-required-dependencies +[source] +tar = "https://github.com/keepassxreboot/keepassxc/releases/download/2.7.10/keepassxc-2.7.10-src.tar.xz" +[build] +template = "cmake" +cmakeflags = [ + "-DWITH_XC_AUTOTYPE=OFF", + "-DWITH_XC_UPDATECHECK=OFF", + "-DKEEPASSXC_BUILD_TYPE=Release", + "-DWITH_APP_BUNDLE=OFF", +] +dependencies = [ + "qt5-base", + "qt5-svg", + "zlib", + "libbotan", + "libargon2", + "libxi", + "libxtst", + "readline", +] diff --git a/recipes/wip/security/keyscope/recipe.toml b/recipes/wip/security/keyscope/recipe.toml new file mode 100644 index 000000000..0cbb3cd45 --- /dev/null +++ b/recipes/wip/security/keyscope/recipe.toml @@ -0,0 +1,11 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/SpectralOps/keyscope" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages keyscope +""" diff --git a/recipes/wip/security/lynis/recipe.toml b/recipes/wip/security/lynis/recipe.toml new file mode 100644 index 000000000..68c5ba613 --- /dev/null +++ b/recipes/wip/security/lynis/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/CISOfy/lynis" +rev = "60afce6d8110ee9e88ac9e9d0e0346b1cf222b5e" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/lynis +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/usr/share/lynis +""" diff --git a/recipes/wip/security/motus/recipe.toml b/recipes/wip/security/motus/recipe.toml new file mode 100644 index 000000000..f5067eed5 --- /dev/null +++ b/recipes/wip/security/motus/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/oleiade/motus" +[build] +template = "cargo" diff --git a/recipes/wip/security/nitrocli/recipe.toml b/recipes/wip/security/nitrocli/recipe.toml new file mode 100644 index 000000000..8be60424f --- /dev/null +++ b/recipes/wip/security/nitrocli/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libhidapi work +[source] +git = "https://github.com/d-e-s-o/nitrocli" +[build] +template = "cargo" +dependencies = [ + "libhidapi", +] diff --git a/recipes/wip/security/openpgp-ca/recipe.toml b/recipes/wip/security/openpgp-ca/recipe.toml new file mode 100644 index 000000000..6e553f21b --- /dev/null +++ b/recipes/wip/security/openpgp-ca/recipe.toml @@ -0,0 +1,12 @@ +#TODO make the libpcsclite dependency work +[source] +git = "https://gitlab.com/openpgp-ca/openpgp-ca" +[build] +template = "custom" +script = """ +cookbook_cargo_packages openpgp-ca openpgp-ca-restd +""" +dependencies = [ + "openssl1", + "libpcsclite", +] diff --git a/recipes/wip/security/otti/recipe.toml b/recipes/wip/security/otti/recipe.toml new file mode 100644 index 000000000..ed6110727 --- /dev/null +++ b/recipes/wip/security/otti/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/dnaka91/otti" +[build] +template = "cargo" diff --git a/recipes/wip/security/pass/recipe.toml b/recipes/wip/security/pass/recipe.toml new file mode 100644 index 000000000..95747375c --- /dev/null +++ b/recipes/wip/security/pass/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for gnu make: https://git.zx2c4.com/password-store/tree/INSTALL +#TODO determine compile-time and run-time dependencies: https://git.zx2c4.com/password-store/tree/README#n15 +[source] +tar = "https://git.zx2c4.com/password-store/snapshot/password-store-1.7.4.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/security/please/recipe.toml b/recipes/wip/security/please/recipe.toml new file mode 100644 index 000000000..e681b3cce --- /dev/null +++ b/recipes/wip/security/please/recipe.toml @@ -0,0 +1,5 @@ +#TODO users crate error (after cargo update) +[source] +git = "https://gitlab.com/edneville/please" +[build] +template = "cargo" diff --git a/recipes/wip/security/plutus-rustus/recipe.toml b/recipes/wip/security/plutus-rustus/recipe.toml new file mode 100644 index 000000000..5df54054a --- /dev/null +++ b/recipes/wip/security/plutus-rustus/recipe.toml @@ -0,0 +1,5 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/a137x/plutus-rustus" +[build] +template = "cargo" diff --git a/recipes/wip/security/rage/recipe.toml b/recipes/wip/security/rage/recipe.toml new file mode 100644 index 000000000..54f1fc033 --- /dev/null +++ b/recipes/wip/security/rage/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/str4d/rage" +[build] +template = "custom" +script = """ +cookbook_cargo_packages rage +""" diff --git a/recipes/wip/security/retdec/recipe.toml b/recipes/wip/security/retdec/recipe.toml new file mode 100644 index 000000000..6852d2751 --- /dev/null +++ b/recipes/wip/security/retdec/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/avast/retdec#process +[source] +git = "https://github.com/avast/retdec" +rev = "53e55b4b26e9b843787f0e06d867441e32b1604e" +[build] +template = "cmake" +dependencies = [ + "openssl1", + "zlib", +] diff --git a/recipes/wip/security/rowhammer-test/recipe.toml b/recipes/wip/security/rowhammer-test/recipe.toml new file mode 100644 index 000000000..3b859b959 --- /dev/null +++ b/recipes/wip/security/rowhammer-test/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for the "make.sh" file, see https://github.com/google/rowhammer-test#readme +[source] +git = "https://github.com/google/rowhammer-test" +[build] +template = "custom" diff --git a/recipes/wip/security/rshijack/recipe.toml b/recipes/wip/security/rshijack/recipe.toml new file mode 100644 index 000000000..3feeee34f --- /dev/null +++ b/recipes/wip/security/rshijack/recipe.toml @@ -0,0 +1,5 @@ +#TODO pnet_sys crate error (after cargo update) +[source] +git = "https://github.com/kpcyrd/rshijack" +[build] +template = "cargo" diff --git a/recipes/wip/security/rustyvault/recipe.toml b/recipes/wip/security/rustyvault/recipe.toml new file mode 100644 index 000000000..61d8b998c --- /dev/null +++ b/recipes/wip/security/rustyvault/recipe.toml @@ -0,0 +1,8 @@ +#TODO async-io and rustix crates error +[source] +git = "https://github.com/Tongsuo-Project/RustyVault" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/security/safecloset/recipe.toml b/recipes/wip/security/safecloset/recipe.toml new file mode 100644 index 000000000..4617d7afc --- /dev/null +++ b/recipes/wip/security/safecloset/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Canop/safecloset" +[build] +template = "cargo" diff --git a/recipes/wip/security/sn0int/recipe.toml b/recipes/wip/security/sn0int/recipe.toml new file mode 100644 index 000000000..39292b7eb --- /dev/null +++ b/recipes/wip/security/sn0int/recipe.toml @@ -0,0 +1,9 @@ +#TODO outdated redox_syscall crate +[source] +git = "https://github.com/kpcyrd/sn0int" +[build] +template = "cargo" +dependencies = [ + "libsodium", + "sqlite3", +] diff --git a/recipes/wip/security/sniffglue/recipe.toml b/recipes/wip/security/sniffglue/recipe.toml new file mode 100644 index 000000000..9972734ee --- /dev/null +++ b/recipes/wip/security/sniffglue/recipe.toml @@ -0,0 +1,8 @@ +#TODO make the libpcap dependency work +[source] +git = "https://github.com/kpcyrd/sniffglue" +[build] +template = "cargo" +dependencies = [ + "libpcap", +] diff --git a/recipes/wip/security/sq/recipe.toml b/recipes/wip/security/sq/recipe.toml new file mode 100644 index 000000000..7cb30143b --- /dev/null +++ b/recipes/wip/security/sq/recipe.toml @@ -0,0 +1,9 @@ +#TODO make libnettle work +[source] +git = "https://gitlab.com/sequoia-pgp/sequoia-sq" +[build] +template = "cargo" +dependencies = [ + "openssl1", + "libnettle", +] diff --git a/recipes/wip/security/sqop/recipe.toml b/recipes/wip/security/sqop/recipe.toml new file mode 100644 index 000000000..8d567852c --- /dev/null +++ b/recipes/wip/security/sqop/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libnettle work +[source] +git = "https://gitlab.com/sequoia-pgp/sequoia-sop" +[build] +template = "cargo" +dependencies = [ + "libnettle", +] diff --git a/recipes/wip/security/sqv/recipe.toml b/recipes/wip/security/sqv/recipe.toml new file mode 100644 index 000000000..90fe20244 --- /dev/null +++ b/recipes/wip/security/sqv/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libnettle work +[source] +git = "https://gitlab.com/sequoia-pgp/sequoia-sqv" +[build] +template = "cargo" +dependencies = [ + "libnettle", +] diff --git a/recipes/wip/security/sss-cli/recipe.toml b/recipes/wip/security/sss-cli/recipe.toml new file mode 100644 index 000000000..899166855 --- /dev/null +++ b/recipes/wip/security/sss-cli/recipe.toml @@ -0,0 +1,5 @@ +#TODO source code error (after cargo update) +[source] +git = "https://github.com/dsprenkels/sss-cli" +[build] +template = "cargo" diff --git a/recipes/wip/security/stegano/recipe.toml b/recipes/wip/security/stegano/recipe.toml new file mode 100644 index 000000000..1e67ce410 --- /dev/null +++ b/recipes/wip/security/stegano/recipe.toml @@ -0,0 +1,8 @@ +#TODO require a command to move the binary +[source] +git = "https://github.com/steganogram/stegano-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages stegano-cli +""" diff --git a/recipes/wip/security/sudo-rs/recipe.toml b/recipes/wip/security/sudo-rs/recipe.toml new file mode 100644 index 000000000..f0daeb473 --- /dev/null +++ b/recipes/wip/security/sudo-rs/recipe.toml @@ -0,0 +1,6 @@ +#TODO libc crate error +#TODO requires Linux PAM +[source] +git = "https://github.com/memorysafety/sudo-rs" +[build] +template = "cargo" diff --git a/recipes/wip/security/tyr/recipe.toml b/recipes/wip/security/tyr/recipe.toml new file mode 100644 index 000000000..29b21d9fb --- /dev/null +++ b/recipes/wip/security/tyr/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.com/cyberactivity/tyr" +[build] +template = "cargo" diff --git a/recipes/wip/security/vagga/recipe.toml b/recipes/wip/security/vagga/recipe.toml new file mode 100644 index 000000000..e284538b8 --- /dev/null +++ b/recipes/wip/security/vagga/recipe.toml @@ -0,0 +1,5 @@ +#TODO libc and nix crate errors (after cargo update) +[source] +git = "https://github.com/tailhook/vagga" +[build] +template = "cargo" diff --git a/recipes/wip/security/veldora/recipe.toml b/recipes/wip/security/veldora/recipe.toml new file mode 100644 index 000000000..c6eb25b5a --- /dev/null +++ b/recipes/wip/security/veldora/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/tamton-aquib/veldora" +[build] +template = "cargo" diff --git a/recipes/wip/security/veracrypt/recipe.toml b/recipes/wip/security/veracrypt/recipe.toml new file mode 100644 index 000000000..94fb9b6d6 --- /dev/null +++ b/recipes/wip/security/veracrypt/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for GNU Make, see https://www.veracrypt.fr/en/CompilingGuidelineLinux.html#CompileVeraCrypt +[source] +tar = "https://launchpad.net/veracrypt/trunk/1.26.7/+download/VeraCrypt_1.26.7_Source.tar.bz2" +[build] +template = "custom" +dependencies = [ + "libfuse3", + "libpcsclite", + "wxwidgets-gtk3", +] diff --git a/recipes/wip/security/weggli/recipe.toml b/recipes/wip/security/weggli/recipe.toml new file mode 100644 index 000000000..7347cd43e --- /dev/null +++ b/recipes/wip/security/weggli/recipe.toml @@ -0,0 +1,5 @@ +#TODO source code error +[source] +git = "https://github.com/weggli-rs/weggli" +[build] +template = "cargo" diff --git a/recipes/wip/security/yara-x/recipe.toml b/recipes/wip/security/yara-x/recipe.toml new file mode 100644 index 000000000..fe61456ae --- /dev/null +++ b/recipes/wip/security/yara-x/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/VirusTotal/yara-x" +[build] +template = "custom" +script = """ +cookbook_cargo_packages yara-x-cli +""" diff --git a/recipes/wip/services/ala-lape/recipe.toml b/recipes/wip/services/ala-lape/recipe.toml new file mode 100644 index 000000000..429b8963c --- /dev/null +++ b/recipes/wip/services/ala-lape/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://git.madhouse-project.org/algernon/ala-lape" +[build] +template = "cargo" diff --git a/recipes/wip/services/busd/recipe.toml b/recipes/wip/services/busd/recipe.toml new file mode 100644 index 000000000..4976b0e8a --- /dev/null +++ b/recipes/wip/services/busd/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jackpot51/busd" + +[build] +template = "cargo" diff --git a/recipes/wip/services/coppwr/recipe.toml b/recipes/wip/services/coppwr/recipe.toml new file mode 100644 index 000000000..ba04da96e --- /dev/null +++ b/recipes/wip/services/coppwr/recipe.toml @@ -0,0 +1,8 @@ +#TODO make pipewire work +[source] +git = "https://github.com/dimtpap/coppwr" +[build] +template = "cargo" +dependencies = [ + "pipewire", +] diff --git a/recipes/wip/services/dbus/recipe.toml b/recipes/wip/services/dbus/recipe.toml new file mode 100644 index 000000000..4392363d1 --- /dev/null +++ b/recipes/wip/services/dbus/recipe.toml @@ -0,0 +1,23 @@ +[source] +tar = "https://dbus.freedesktop.org/releases/dbus/dbus-1.16.2.tar.xz" +blake3 = "b1d1f22858a8f04665e5dca29d194f892620f00fd3e3f4e89dd208e78868436e" +patches = [ + "redox.patch", +] + +[build] +dependencies = [ + "expat", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "x11proto", +] +template = "meson" +mesonflags = [ + #TODO: why does this require Linux? + "-Depoll=enabled", + "-Dx11_autolaunch=enabled", + "-Dverbose_mode=true", +] diff --git a/recipes/wip/services/dbus/redox.patch b/recipes/wip/services/dbus/redox.patch new file mode 100644 index 000000000..59950bde1 --- /dev/null +++ b/recipes/wip/services/dbus/redox.patch @@ -0,0 +1,24 @@ +diff -ruwN source-old/dbus/dbus-pollable-set-epoll.c source/dbus/dbus-pollable-set-epoll.c +--- source-old/dbus/dbus-pollable-set-epoll.c 2025-02-27 09:29:06.000000000 -0700 ++++ source/dbus/dbus-pollable-set-epoll.c 2025-11-14 17:50:42.043671507 -0700 +@@ -30,7 +30,7 @@ + #include + #include + +-#ifndef __linux__ ++#if !defined(__linux__) && !defined(__redox__) + # error This file is for Linux epoll(4) + #endif + +diff -ruwN source-old/dbus/dbus-spawn-unix.c source/dbus/dbus-spawn-unix.c +--- source-old/dbus/dbus-spawn-unix.c 2025-02-27 09:29:06.000000000 -0700 ++++ source/dbus/dbus-spawn-unix.c 2025-11-15 07:42:03.360862350 -0700 +@@ -1326,7 +1326,7 @@ + if (!make_pipe (child_err_report_pipe, error)) + goto cleanup_and_fail; + +- if (!_dbus_socketpair (&babysitter_pipe[0], &babysitter_pipe[1], TRUE, error)) ++ if (!_dbus_socketpair (&babysitter_pipe[0], &babysitter_pipe[1], FALSE, error)) + goto cleanup_and_fail; + + /* Setting up the babysitter is only useful in the parent, diff --git a/recipes/wip/services/eudev/recipe.toml b/recipes/wip/services/eudev/recipe.toml new file mode 100644 index 000000000..bdc920c78 --- /dev/null +++ b/recipes/wip/services/eudev/recipe.toml @@ -0,0 +1,5 @@ +#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] +template = "configure" diff --git a/recipes/wip/services/grub/recipe.toml b/recipes/wip/services/grub/recipe.toml new file mode 100644 index 000000000..e314bc845 --- /dev/null +++ b/recipes/wip/services/grub/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/services/hickory-dns/recipe.toml b/recipes/wip/services/hickory-dns/recipe.toml new file mode 100644 index 000000000..b7ab38fd5 --- /dev/null +++ b/recipes/wip/services/hickory-dns/recipe.toml @@ -0,0 +1,20 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/hickory-dns/hickory-dns" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +binary=hickory-dns +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --bin "${binary}" \ + --release + --all-features + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${binary}" \ + "${COOKBOOK_STAGE}/usr/bin/${binary}" +""" diff --git a/recipes/wip/services/jack/recipe.toml b/recipes/wip/services/jack/recipe.toml new file mode 100644 index 000000000..1e5dccd8a --- /dev/null +++ b/recipes/wip/services/jack/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for waf +#TODO discover how to build +#TODO discover if it has external dependencies +[source] +git = "https://github.com/jackaudio/jack2" +rev = "4f58969432339a250ce87fe855fb962c67d00ddb" +[build] +template = "custom" diff --git a/recipes/wip/services/lemurs/recipe.toml b/recipes/wip/services/lemurs/recipe.toml new file mode 100644 index 000000000..ca1aa08c2 --- /dev/null +++ b/recipes/wip/services/lemurs/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for configuration, see https://github.com/coastalwhite/lemurs#compiling-from-source +[source] +git = "https://github.com/coastalwhite/lemurs" +rev = "37963b8ff6945ae8bdbabee658e5e36d0f67b84a" +[build] +template = "custom" diff --git a/recipes/wip/services/limine/recipe.toml b/recipes/wip/services/limine/recipe.toml new file mode 100644 index 000000000..e1c428612 --- /dev/null +++ b/recipes/wip/services/limine/recipe.toml @@ -0,0 +1,5 @@ +#TODO maybe wrong template, see 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] +template = "configure" diff --git a/recipes/wip/services/ntpd-rs/recipe.toml b/recipes/wip/services/ntpd-rs/recipe.toml new file mode 100644 index 000000000..888a9392e --- /dev/null +++ b/recipes/wip/services/ntpd-rs/recipe.toml @@ -0,0 +1,9 @@ +#TODO program source code error +#TODO configure the service +[source] +git = "https://github.com/pendulum-project/ntpd-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages ntpd +""" diff --git a/recipes/wip/services/pipewire/recipe.toml b/recipes/wip/services/pipewire/recipe.toml new file mode 100644 index 000000000..9e42dc400 --- /dev/null +++ b/recipes/wip/services/pipewire/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/INSTALL.md +[source] +git = "https://gitlab.freedesktop.org/pipewire/pipewire" +rev = "4debdcd40b055b3eaa83a8f4443aa990ea566bfe" +[build] +template = "meson" diff --git a/recipes/wip/services/qpwgraph/recipe.toml b/recipes/wip/services/qpwgraph/recipe.toml new file mode 100644 index 000000000..99df5ae37 --- /dev/null +++ b/recipes/wip/services/qpwgraph/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.freedesktop.org/rncbc/qpwgraph#building +[source] +git = "https://gitlab.freedesktop.org/rncbc/qpwgraph" +rev = "9fead6eff8c5831d66f618b2e8e195c94d5c22e6" +[build] +template = "cmake" +dependencies = [ + "qt6-base", + "pipewire", +] diff --git a/recipes/wip/services/runst/recipe.toml b/recipes/wip/services/runst/recipe.toml new file mode 100644 index 000000000..f57603ae5 --- /dev/null +++ b/recipes/wip/services/runst/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/orhun/runst" +[build] +template = "custom" +dependencies = [ + "glib", + "pango", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/services/seatd/recipe.toml b/recipes/wip/services/seatd/recipe.toml new file mode 100644 index 000000000..65b6f5cd0 --- /dev/null +++ b/recipes/wip/services/seatd/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +git = "https://git.sr.ht/~kennylevinsen/seatd" +rev = "3e9ef69f14f630a719dd464f3c90a7932f1c8296" +[build] +template = "meson" diff --git a/recipes/wip/services/wireplumber/recipe.toml b/recipes/wip/services/wireplumber/recipe.toml new file mode 100644 index 000000000..cbac08ad7 --- /dev/null +++ b/recipes/wip/services/wireplumber/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://pipewire.pages.freedesktop.org/wireplumber/installing-wireplumber.html +[source] +git = "https://gitlab.freedesktop.org/pipewire/wireplumber" +rev = "d3eb77b292655cef333a8f4cab4e861415bc37c2" +[build] +template = "meson" +dependencies = [ + "pipewire", + "glib", + "lua54", +] diff --git a/recipes/wip/shells/brush/recipe.toml b/recipes/wip/shells/brush/recipe.toml new file mode 100644 index 000000000..4a2f0a576 --- /dev/null +++ b/recipes/wip/shells/brush/recipe.toml @@ -0,0 +1,8 @@ +#TODO redox is not supported by the procfs crate +[source] +git = "https://github.com/reubeno/brush" +[build] +template = "custom" +script = """ +cookbook_cargo_packages brush-shell +""" diff --git a/recipes/wip/shells/cicada/recipe.toml b/recipes/wip/shells/cicada/recipe.toml new file mode 100644 index 000000000..373953ad7 --- /dev/null +++ b/recipes/wip/shells/cicada/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://github.com/mitnk/cicada/blob/master/docs/install.md#option-c-via-source +[source] +git = "https://github.com/mitnk/cicada" +rev = "710988133335582d43c74e04d0d7f95c034e2c21" +[build] +template = "custom" diff --git a/recipes/wip/shells/dune/recipe.toml b/recipes/wip/shells/dune/recipe.toml new file mode 100644 index 000000000..ec50d999e --- /dev/null +++ b/recipes/wip/shells/dune/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/adam-mcdaniel/dune" +[build] +template = "cargo" diff --git a/recipes/wip/shells/fish-shell/recipe.toml b/recipes/wip/shells/fish-shell/recipe.toml new file mode 100644 index 000000000..4ef60fe76 --- /dev/null +++ b/recipes/wip/shells/fish-shell/recipe.toml @@ -0,0 +1,17 @@ +# WIP: Builds, runs, but hangs on waitpid + +[source] +git = "https://github.com/fish-shell/fish-shell" +rev = "54e8ad7e90a8213c01ba58de0640223bee6846d6" +patches = ["redox.patch"] + +[build] +template = "custom" +dependencies = ["gettext", "ncurses", "pcre"] +script = """ +DYNAMIC_INIT + +# The only default enabled feature is building the man pages. +# However, that requires sphinx so it can just be enabled later. +cookbook_cargo --no-default-features +""" diff --git a/recipes/wip/shells/fish-shell/redox.patch b/recipes/wip/shells/fish-shell/redox.patch new file mode 100644 index 000000000..9b5a0d30d --- /dev/null +++ b/recipes/wip/shells/fish-shell/redox.patch @@ -0,0 +1,144 @@ +diff '--color=auto' -ruwN source/Cargo.toml source-new/Cargo.toml +--- source/Cargo.toml 2025-09-11 01:59:14.785564526 -0400 ++++ source-new/Cargo.toml 2025-09-11 01:59:45.885553436 -0400 +@@ -35,12 +35,12 @@ + + bitflags = "2.5.0" + errno = "0.3.0" +-libc = "0.2" ++libc = { git = "https://github.com/rust-lang/libc", rev = "b31ee9b22f99354f2ca00c68d038d6f377c8b8a4", features = ["extra_traits"] } + # lru pulls in hashbrown by default, which uses a faster (though less DoS resistant) hashing algo. + # disabling default features uses the stdlib instead, but it doubles the time to rewrite the history + # files as of 22 April 2024. + lru = "0.13.0" +-nix = { version = "0.30.1", default-features = false, features = [ ++nix = { git = "https://github.com/joshuamegnauth54/nix", branch = "redox-fish-no-merge", default-features = false, features = [ + "event", + "inotify", + "resource", +diff '--color=auto' -ruwN source/src/exec.rs source-new/src/exec.rs +--- source/src/exec.rs 2025-09-11 01:59:14.596625190 -0400 ++++ source-new/src/exec.rs 2025-09-11 02:00:00.315286369 -0400 +@@ -33,7 +33,6 @@ + use crate::nix::{getpid, isatty}; + use crate::null_terminated_array::OwningNullTerminatedArray; + use crate::parser::{Block, BlockId, BlockType, EvalRes, Parser}; +-#[cfg(FISH_USE_POSIX_SPAWN)] + use crate::proc::Pid; + use crate::proc::{ + hup_jobs, is_interactive_session, jobs_requiring_warning_on_exit, no_exec, +@@ -390,7 +389,7 @@ + ) -> ! { + // This function never returns, so we take certain liberties with constness. + +- unsafe { libc::execve(actual_cmd.as_ptr(), argv.get(), envv.get()) }; ++ unsafe { libc::execve(actual_cmd.as_ptr(), argv.get().cast(), envv.get().cast()) }; + let err = errno(); + + // The shebang wasn't introduced until UNIX Seventh Edition, so if +@@ -413,7 +412,11 @@ + // not what we would pass as argv0. + argv2[1] = actual_cmd.as_ptr(); + unsafe { +- libc::execve(_PATH_BSHELL.load(Ordering::Relaxed), &argv2[0], envv.get()); ++ libc::execve( ++ _PATH_BSHELL.load(Ordering::Relaxed), ++ argv2.as_ptr().cast(), ++ envv.get().cast(), ++ ); + } + } + } +diff '--color=auto' -ruwN source/src/fork_exec/postfork.rs source-new/src/fork_exec/postfork.rs +--- source/src/fork_exec/postfork.rs 2025-09-11 01:59:14.828576001 -0400 ++++ source-new/src/fork_exec/postfork.rs 2025-09-11 02:00:00.319001235 -0400 +@@ -339,7 +339,9 @@ + "', which is not an executable command." + ); + } +- } else if md.unwrap().mode() & u32::from(libc::S_IFMT) == u32::from(libc::S_IFDIR) { ++ } else if md.unwrap().mode() & u32::try_from(libc::S_IFMT).unwrap() ++ == u32::try_from(libc::S_IFDIR).unwrap() ++ { + FLOG_SAFE!( + exec, + "Failed to execute process '", +diff '--color=auto' -ruwN source/src/input_common.rs source-new/src/input_common.rs +--- source/src/input_common.rs 2025-09-11 01:59:14.828576001 -0400 ++++ source-new/src/input_common.rs 2025-09-11 02:00:00.316042380 -0400 +@@ -589,7 +589,9 @@ + // pselect expects timeouts in nanoseconds. + const NSEC_PER_MSEC: u64 = 1000 * 1000; + const NSEC_PER_SEC: u64 = NSEC_PER_MSEC * 1000; ++ #[cfg(not(target_os = "redox"))] + let wait_nsec: u64 = (timeout.as_millis() as u64) * NSEC_PER_MSEC; ++ #[cfg(not(target_os = "redox"))] + let timeout = libc::timespec { + tv_sec: (wait_nsec / NSEC_PER_SEC).try_into().unwrap(), + tv_nsec: (wait_nsec % NSEC_PER_SEC).try_into().unwrap(), +@@ -605,6 +607,7 @@ + libc::FD_SET(in_fd, &mut fdset); + } + ++ #[cfg(not(target_os = "redox"))] + let res = unsafe { + libc::pselect( + in_fd + 1, +@@ -616,6 +619,31 @@ + ) + }; + ++ #[cfg(target_os = "redox")] ++ let res = unsafe { ++ //HACK: pselect does this atomically ++ let mut saved = MaybeUninit::uninit(); ++ let mut saved = { ++ libc::sigfillset(saved.as_mut_ptr()); ++ saved.assume_init() ++ }; ++ libc::sigprocmask(libc::SIG_SETMASK, &sigs, &mut saved); ++ let mut timeout = libc::timeval { ++ tv_sec: timeout.as_secs() as _, ++ tv_usec: timeout.subsec_micros() as _, ++ }; ++ let res = libc::select( ++ in_fd + 1, ++ &mut fdset, ++ ptr::null_mut(), ++ ptr::null_mut(), ++ &raw mut timeout, ++ ); ++ libc::sigprocmask(libc::SIG_SETMASK, &saved, ptr::null_mut()); ++ ++ res ++ }; ++ + // Prevent signal starvation on WSL causing the `torn_escapes.py` test to fail + if is_windows_subsystem_for_linux(WSL::V1) { + // Merely querying the current thread's sigmask is sufficient to deliver a pending signal +diff '--color=auto' -ruwN source/src/libc.c source-new/src/libc.c +--- source/src/libc.c 2025-09-11 01:59:14.599514890 -0400 ++++ source-new/src/libc.c 2025-09-11 02:00:00.304589636 -0400 +@@ -4,7 +4,7 @@ + #include + #include + #include // MB_CUR_MAX +-#include // MNT_LOCAL ++/* #include // MNT_LOCAL */ + #include + #include // ST_LOCAL + #include // _CS_PATH, _PC_CASE_SENSITIVE +diff '--color=auto' -ruwN source/src/path.rs source-new/src/path.rs +--- source/src/path.rs 2025-09-11 01:59:14.600515157 -0400 ++++ source-new/src/path.rs 2025-09-11 02:00:00.317047039 -0400 +@@ -738,7 +738,9 @@ + crate::libc::ST_LOCAL(), + &narrow, + ); +- #[cfg(not(target_os = "netbsd"))] ++ #[cfg(target_os = "redox")] ++ let remoteness = DirRemoteness::unknown; ++ #[cfg(not(target_os = "redox"))] + let remoteness = remoteness_via_statfs( + libc::statfs, + |stat: &libc::statfs| stat.f_flags, diff --git a/recipes/wip/shells/nsh/recipe.toml b/recipes/wip/shells/nsh/recipe.toml new file mode 100644 index 000000000..50c411985 --- /dev/null +++ b/recipes/wip/shells/nsh/recipe.toml @@ -0,0 +1,5 @@ +#TODO update mio to 0.8 +[source] +git = "https://github.com/nuta/nsh" +[build] +template = "cargo" diff --git a/recipes/wip/shells/pure/recipe.toml b/recipes/wip/shells/pure/recipe.toml new file mode 100644 index 000000000..0f00d2702 --- /dev/null +++ b/recipes/wip/shells/pure/recipe.toml @@ -0,0 +1,10 @@ +#TODO promote +[source] +git = "https://github.com/sindresorhus/pure" +rev = "87e6f5dd4c793f6d980532205aaefe196780606f" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/home/user/.zsh/pure +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}"/home/user/.zsh/pure +""" diff --git a/recipes/wip/shells/relish/recipe.toml b/recipes/wip/shells/relish/recipe.toml new file mode 100644 index 000000000..2692cf18e --- /dev/null +++ b/recipes/wip/shells/relish/recipe.toml @@ -0,0 +1,5 @@ +#TODO program source code error +[source] +git = "https://gitlab.com/whom/relish" +[build] +template = "cargo" diff --git a/recipes/wip/shells/sheldon/recipe.toml b/recipes/wip/shells/sheldon/recipe.toml new file mode 100644 index 000000000..9d6c5f31d --- /dev/null +++ b/recipes/wip/shells/sheldon/recipe.toml @@ -0,0 +1,8 @@ +#TODO libssh2-sys crate error +[source] +git = "https://github.com/rossmacarthur/sheldon" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/shells/zoxide/recipe.toml b/recipes/wip/shells/zoxide/recipe.toml new file mode 100644 index 000000000..3b3f03333 --- /dev/null +++ b/recipes/wip/shells/zoxide/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ajeetdsouza/zoxide" +[build] +template = "cargo" diff --git a/recipes/wip/shells/zsh/01_redox.patch b/recipes/wip/shells/zsh/01_redox.patch new file mode 100644 index 000000000..c1f230a9e --- /dev/null +++ b/recipes/wip/shells/zsh/01_redox.patch @@ -0,0 +1,54 @@ +diff --color -ruwN source/configure.ac source-new/configure.ac +--- source/configure.ac 2022-05-15 01:59:21.000000000 +0700 ++++ source-new/configure.ac 2025-08-06 02:08:48.797381523 +0700 +@@ -1311,7 +1311,7 @@ + setuid seteuid setreuid setresuid setsid \ + setgid setegid setregid setresgid \ + memcpy memmove strstr strerror strtoul \ +- getrlimit getrusage \ ++ getrusage \ + setlocale \ + isblank iswblank \ + uname \ +diff --color -ruwN source/Src/builtin.c source-new/Src/builtin.c +--- source/Src/builtin.c 2022-05-15 01:59:21.000000000 +0700 ++++ source-new/Src/builtin.c 2025-08-06 02:41:57.266846385 +0700 +@@ -7160,16 +7160,7 @@ + long clktck = get_clktck(); + + /* get time accounting information */ +- if (times(&buf) == -1) +- return 1; +- pttime(buf.tms_utime); /* user time */ +- putchar(' '); +- pttime(buf.tms_stime); /* system time */ +- putchar('\n'); +- pttime(buf.tms_cutime); /* user time, children */ +- putchar(' '); +- pttime(buf.tms_cstime); /* system time, children */ +- putchar('\n'); ++ // Somehow times() is not linking correctly + return 0; + } + +diff --color -ruwN source/Src/Builtins/rlimits.c source-new/Src/Builtins/rlimits.c +--- source/Src/Builtins/rlimits.c 2022-05-15 01:59:21.000000000 +0700 ++++ source-new/Src/Builtins/rlimits.c 2025-08-06 02:24:09.457135439 +0700 +@@ -892,7 +892,7 @@ + int + boot_(UNUSED(Module m)) + { +- set_resinfo(); ++// set_resinfo(); + return 0; + } + +@@ -900,7 +900,7 @@ + int + cleanup_(Module m) + { +- free_resinfo(); ++// free_resinfo(); + return setfeatureenables(m, &module_features, NULL); + } + diff --git a/recipes/wip/shells/zsh/recipe.toml b/recipes/wip/shells/zsh/recipe.toml new file mode 100644 index 000000000..572f979a4 --- /dev/null +++ b/recipes/wip/shells/zsh/recipe.toml @@ -0,0 +1,24 @@ +#TODO: Buggy, can't return after running commands +[source] +tar = "https://github.com/zsh-users/zsh/archive/refs/tags/zsh-5.9.tar.gz" +blake3 = "a15b94fae03e87aba6fc6a27df3c98e610b85b0c7c0fc90248f07fdcb8816860" +patches = [ + "01_redox.patch" +] +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "ncursesw", +] +script = """ +DYNAMIC_INIT + +"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" +"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +"${COOKBOOK_MAKE}" install.bin install.modules install.fns DESTDIR="${COOKBOOK_STAGE}" +""" diff --git a/recipes/wip/sim/coulomb/recipe.toml b/recipes/wip/sim/coulomb/recipe.toml new file mode 100644 index 000000000..4db9fbcd3 --- /dev/null +++ b/recipes/wip/sim/coulomb/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for gradlew +#TODO determine the dependencies +[source] +git = "https://github.com/hamza-algohary/Coulomb" +rev = "6617d4817dd153ae5e5645d427cdb746c146ccee" +[build] +template = "custom" diff --git a/recipes/wip/sim/trmt/recipe.toml b/recipes/wip/sim/trmt/recipe.toml new file mode 100644 index 000000000..80ed46c38 --- /dev/null +++ b/recipes/wip/sim/trmt/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/cenonym/trmt" +[build] +template = "cargo" diff --git a/recipes/wip/sound/ardour/recipe.toml b/recipes/wip/sound/ardour/recipe.toml new file mode 100644 index 000000000..d6872830e --- /dev/null +++ b/recipes/wip/sound/ardour/recipe.toml @@ -0,0 +1,77 @@ +#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/asak/recipe.toml b/recipes/wip/sound/asak/recipe.toml new file mode 100644 index 000000000..b644b33cb --- /dev/null +++ b/recipes/wip/sound/asak/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/chaosprint/asak" +[build] +template = "cargo" diff --git a/recipes/wip/sound/aubio/recipe.toml b/recipes/wip/sound/aubio/recipe.toml new file mode 100644 index 000000000..5ca0e1c87 --- /dev/null +++ b/recipes/wip/sound/aubio/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for the waf build system, see https://aubio.org/installation +[source] +tar = "https://aubio.org/pub/aubio-0.4.7.tar.bz2" +[build] +template = "custom" diff --git a/recipes/wip/sound/audacity/recipe.toml b/recipes/wip/sound/audacity/recipe.toml new file mode 100644 index 000000000..22ed13cfa --- /dev/null +++ b/recipes/wip/sound/audacity/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# 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" +[build] +template = "cmake" +dependencies = [ + "gtk2", + "libuuid", +] diff --git a/recipes/wip/sound/audeye/recipe.toml b/recipes/wip/sound/audeye/recipe.toml new file mode 100644 index 000000000..2ed219392 --- /dev/null +++ b/recipes/wip/sound/audeye/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error +[source] +git = "https://github.com/maxmarsc/audeye" +[build] +template = "cargo" +dependencies = [ + "libsndfile", +] diff --git a/recipes/wip/sound/auditorium/recipe.toml b/recipes/wip/sound/auditorium/recipe.toml new file mode 100644 index 000000000..c61a775fe --- /dev/null +++ b/recipes/wip/sound/auditorium/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/nate-craft/auditorium" +[build] +template = "cargo" +[package] +dependencies = [ + "mpv", + "ffmpeg6", +] diff --git a/recipes/wip/sound/cava/recipe.toml b/recipes/wip/sound/cava/recipe.toml new file mode 100644 index 000000000..8dbe726f0 --- /dev/null +++ b/recipes/wip/sound/cava/recipe.toml @@ -0,0 +1,14 @@ +#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/cavasik/recipe.toml b/recipes/wip/sound/cavasik/recipe.toml new file mode 100644 index 000000000..55e4e3ed3 --- /dev/null +++ b/recipes/wip/sound/cavasik/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/TheWisker/Cavasik" +rev = "v3.2.0" +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", +] +[package] +dependencies = ["cava"] diff --git a/recipes/wip/sound/chiptrack/recipe.toml b/recipes/wip/sound/chiptrack/recipe.toml new file mode 100644 index 000000000..1504ce6a6 --- /dev/null +++ b/recipes/wip/sound/chiptrack/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jturcotte/chiptrack" +[build] +template = "cargo" diff --git a/recipes/wip/sound/chuck/recipe.toml b/recipes/wip/sound/chuck/recipe.toml new file mode 100644 index 000000000..630ae1d66 --- /dev/null +++ b/recipes/wip/sound/chuck/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for "make", see 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", + "libsndfile", +] diff --git a/recipes/wip/sound/easy-effects/recipe.toml b/recipes/wip/sound/easy-effects/recipe.toml new file mode 100644 index 000000000..adc0d59d7 --- /dev/null +++ b/recipes/wip/sound/easy-effects/recipe.toml @@ -0,0 +1,15 @@ +#TODO missing dependencies - https://github.com/wwmm/easyeffects#effects-available +#TODO build instructions - https://github.com/wwmm/easyeffects/wiki/Installation-from-Source +[source] +git = "https://github.com/wwmm/easyeffects" +rev = "4c35ba8c385723fdefc81ad8fcb816eb965fe1d8" +[build] +template = "custom" +dependencies = [ + "libsamplerate", + "libsndfile", + "fftw", + "speexdsp", + "nohnmann-json", + "tbb", +] diff --git a/recipes/wip/sound/euphonica/recipe.toml b/recipes/wip/sound/euphonica/recipe.toml new file mode 100644 index 000000000..47f1e383a --- /dev/null +++ b/recipes/wip/sound/euphonica/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +# build instructions: https://github.com/htkhiem/euphonica#meson +[source] +git = "https://github.com/htkhiem/euphonica" +[build] +template = "custom" +dependencies = [ + "gtk4", + "libadwaita", + "sqlite3", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" +[package] +dependencies = ["mpd"] diff --git a/recipes/wip/sound/freac/recipe.toml b/recipes/wip/sound/freac/recipe.toml new file mode 100644 index 000000000..535b815a9 --- /dev/null +++ b/recipes/wip/sound/freac/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for gnu make +# build instructions - https://github.com/enzo1982/freac#compiling +[source] +tar = "https://github.com/enzo1982/freac/releases/download/v1.1.7/freac-1.1.7.tar.gz" +[build] +template = "custom" +dependencies = [ + "boca", + "libsmooth", +] diff --git a/recipes/wip/sound/fretboard/recipe.toml b/recipes/wip/sound/fretboard/recipe.toml new file mode 100644 index 000000000..a40677db5 --- /dev/null +++ b/recipes/wip/sound/fretboard/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bragefuglseth/fretboard" +[build] +template = "cargo" +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/sound/glicol/recipe.toml b/recipes/wip/sound/glicol/recipe.toml new file mode 100644 index 000000000..e034e74a2 --- /dev/null +++ b/recipes/wip/sound/glicol/recipe.toml @@ -0,0 +1,10 @@ +#TODO failed to find output device +[source] +git = "https://github.com/glicol/glicol-cli" +[build] +template = "custom" +script = """ +cookbook_cargo +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/glicol +cp -rv "${COOKBOOK_SOURCE}"/{test.glicol,test2.glicol} "${COOKBOOK_STAGE}"/usr/share/glicol +""" diff --git a/recipes/wip/sound/jukebox-cli/recipe.toml b/recipes/wip/sound/jukebox-cli/recipe.toml new file mode 100644 index 000000000..f47b45106 --- /dev/null +++ b/recipes/wip/sound/jukebox-cli/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/FedeCarollo/jukebox-cli" +[build] +template = "cargo" diff --git a/recipes/wip/sound/libpulse/recipe.toml b/recipes/wip/sound/libpulse/recipe.toml new file mode 100644 index 000000000..40a962cd1 --- /dev/null +++ b/recipes/wip/sound/libpulse/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested +# build instructions: https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/PulseAudioFromGit/ +[source] +tar = "https://freedesktop.org/software/pulseaudio/releases/pulseaudio-17.0.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Ddaemon=false" +] +dependencies = [ + "libsndfile", + "libatomic-ops", + "speexdsp", + "libtool", + "json-c", + "gettext", +] diff --git a/recipes/wip/sound/lmms/recipe.toml b/recipes/wip/sound/lmms/recipe.toml new file mode 100644 index 000000000..7f3328818 --- /dev/null +++ b/recipes/wip/sound/lmms/recipe.toml @@ -0,0 +1,17 @@ +#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/lookas/recipe.toml b/recipes/wip/sound/lookas/recipe.toml new file mode 100644 index 000000000..a46c714f8 --- /dev/null +++ b/recipes/wip/sound/lookas/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rccyx/lookas" +[build] +template = "cargo" diff --git a/recipes/wip/sound/miniaudicle/recipe.toml b/recipes/wip/sound/miniaudicle/recipe.toml new file mode 100644 index 000000000..7cfa2037e --- /dev/null +++ b/recipes/wip/sound/miniaudicle/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing script for "make", see https://github.com/ccrma/miniAudicle#linux +[source] +git = "https://github.com/ccrma/miniAudicle" +rev = "3ef25e881cec9ee823d9cf93346c2d6feb089007" +[build] +template = "custom" +dependencies = [ + "pulseaudio", + "libsndfile", + "qt6-base", +] diff --git a/recipes/wip/sound/mixxx/recipe.toml b/recipes/wip/sound/mixxx/recipe.toml new file mode 100644 index 000000000..6d6121363 --- /dev/null +++ b/recipes/wip/sound/mixxx/recipe.toml @@ -0,0 +1,27 @@ +#TODO not compiled or tested +# 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" +[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", +] diff --git a/recipes/wip/sound/mousai/recipe.toml b/recipes/wip/sound/mousai/recipe.toml new file mode 100644 index 000000000..69ff17d46 --- /dev/null +++ b/recipes/wip/sound/mousai/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/SeaDve/Mousai" +[build] +template = "meson" +dependencies = [ + "glib", + "gtk4", + "libadwaita", + "gstreamer", + "libsoup", +] diff --git a/recipes/wip/sound/mpd/recipe.toml b/recipes/wip/sound/mpd/recipe.toml new file mode 100644 index 000000000..1abb2718c --- /dev/null +++ b/recipes/wip/sound/mpd/recipe.toml @@ -0,0 +1,6 @@ +#TODO determine minimum dependencies from meson log +# build instructions: https://mpd.readthedocs.io/en/stable/user.html#compiling-from-source +[source] +tar = "https://www.musicpd.org/download/mpd/0.24/mpd-0.24.6.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/sound/ncspot/recipe.toml b/recipes/wip/sound/ncspot/recipe.toml new file mode 100644 index 000000000..5e48fefa5 --- /dev/null +++ b/recipes/wip/sound/ncspot/recipe.toml @@ -0,0 +1,13 @@ +#TODO ncurses crate error +[source] +git = "https://github.com/hrkfdn/ncspot" +[build] +template = "custom" +dependencies = [ + "openssl1", + "ncurses", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_cargo --features rodio_backend,pancurses_backend +""" diff --git a/recipes/wip/sound/neothesia/recipe.toml b/recipes/wip/sound/neothesia/recipe.toml new file mode 100644 index 000000000..cf5f58de2 --- /dev/null +++ b/recipes/wip/sound/neothesia/recipe.toml @@ -0,0 +1,8 @@ +#TODO midir crate error +[source] +git = "https://github.com/PolyMeilex/Neothesia" +[build] +template = "custom" +script = """ +cookbook_cargo_packages neothesia +""" diff --git a/recipes/wip/sound/odin2/recipe.toml b/recipes/wip/sound/odin2/recipe.toml new file mode 100644 index 000000000..35b7fdb7b --- /dev/null +++ b/recipes/wip/sound/odin2/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +# build instructions: https://github.com/TheWaveWarden/odin2#all-platforms +[source] +git = "https://github.com/TheWaveWarden/odin2" +[build] +template = "cmake" +dependencies = [ + "mesa", + "curl", + "webkitgtk3", +] diff --git a/recipes/wip/sound/pcmg/recipe.toml b/recipes/wip/sound/pcmg/recipe.toml new file mode 100644 index 000000000..4a8287d6a --- /dev/null +++ b/recipes/wip/sound/pcmg/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/JohnDowson/pcmg" +[build] +template = "custom" +script = """ +cookbook_cargo_packages pcmg +""" diff --git a/recipes/wip/sound/piano-rs/recipe.toml b/recipes/wip/sound/piano-rs/recipe.toml new file mode 100644 index 000000000..8eea5378c --- /dev/null +++ b/recipes/wip/sound/piano-rs/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ritiek/piano-rs" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/piano-rs +cp -rv "${COOKBOOK_SOURCE}"/assets "${COOKBOOK_STAGE}"/usr/share/piano-rs +cookbook_cargo +""" diff --git a/recipes/wip/sound/rmpc/recipe.toml b/recipes/wip/sound/rmpc/recipe.toml new file mode 100644 index 000000000..307a70dc1 --- /dev/null +++ b/recipes/wip/sound/rmpc/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mierak/rmpc" +[build] +template = "cargo" diff --git a/recipes/wip/sound/rustyvibes/recipe.toml b/recipes/wip/sound/rustyvibes/recipe.toml new file mode 100644 index 000000000..632118e21 --- /dev/null +++ b/recipes/wip/sound/rustyvibes/recipe.toml @@ -0,0 +1,5 @@ +#TODO rdev crate error +[source] +git = "https://github.com/KunalBagaria/rustyvibes" +[build] +template = "cargo" diff --git a/recipes/wip/sound/ruxguitar/recipe.toml b/recipes/wip/sound/ruxguitar/recipe.toml new file mode 100644 index 000000000..320bc6542 --- /dev/null +++ b/recipes/wip/sound/ruxguitar/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/agourlay/ruxguitar" +[build] +template = "cargo" diff --git a/recipes/wip/sound/scope-tui/recipe.toml b/recipes/wip/sound/scope-tui/recipe.toml new file mode 100644 index 000000000..9af76bc5b --- /dev/null +++ b/recipes/wip/sound/scope-tui/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/alemidev/scope-tui" +[build] +template = "cargo" diff --git a/recipes/wip/sound/shezem-rs/recipe.toml b/recipes/wip/sound/shezem-rs/recipe.toml new file mode 100644 index 000000000..186c295b2 --- /dev/null +++ b/recipes/wip/sound/shezem-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Kither12/shezem-rs" +[build] +template = "cargo" diff --git a/recipes/wip/sound/sndio/recipe.toml b/recipes/wip/sound/sndio/recipe.toml new file mode 100644 index 000000000..a7fa07057 --- /dev/null +++ b/recipes/wip/sound/sndio/recipe.toml @@ -0,0 +1,5 @@ +#TODO configuration problem +[source] +tar = "https://sndio.org/sndio-1.9.0.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/sound/sonobus/recipe.toml b/recipes/wip/sound/sonobus/recipe.toml new file mode 100644 index 000000000..8b64a2faf --- /dev/null +++ b/recipes/wip/sound/sonobus/recipe.toml @@ -0,0 +1,24 @@ +#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 +[source] +git = "https://github.com/sonosaurus/sonobus" +[build] +template = "custom" +dependencies = [ + "libopus", + "freetype2", + "curl", + "libx11", + "libxinerama", + "libxrandr", + "libxext", + "libxcursor", +] +script = """ +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/linux" +./build.sh +./install.sh +""" diff --git a/recipes/wip/sound/soundboard/recipe.toml b/recipes/wip/sound/soundboard/recipe.toml new file mode 100644 index 000000000..efa6a199a --- /dev/null +++ b/recipes/wip/sound/soundboard/recipe.toml @@ -0,0 +1,13 @@ +#TODO can't find the glib dependency (after cargo update) +#TODO update the ring crate version +[source] +git = "https://github.com/gamebooster/soundboard" +[build] +template = "custom" +dependencies = [ + "glib", + "openssl1", +] +script = """ +cookbook_cargo --features full +""" diff --git a/recipes/wip/sound/soundscope/recipe.toml b/recipes/wip/sound/soundscope/recipe.toml new file mode 100644 index 000000000..b1ccbbda8 --- /dev/null +++ b/recipes/wip/sound/soundscope/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bananaofhappiness/soundscope" +[build] +template = "cargo" diff --git a/recipes/wip/sound/speech-dispatcher/recipe.toml b/recipes/wip/sound/speech-dispatcher/recipe.toml new file mode 100644 index 000000000..0806539d6 --- /dev/null +++ b/recipes/wip/sound/speech-dispatcher/recipe.toml @@ -0,0 +1,10 @@ +#TODO make all dependencies work +[source] +tar = "https://github.com/brailcom/speechd/releases/download/0.11.5/speech-dispatcher-0.11.5.tar.gz" +[build] +template = "configure" +dependencies = [ + "glib", + "libsndfile", + "libdotconf", +] diff --git a/recipes/wip/sound/swyh-rs/recipe.toml b/recipes/wip/sound/swyh-rs/recipe.toml new file mode 100644 index 000000000..7dc591fd7 --- /dev/null +++ b/recipes/wip/sound/swyh-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/dheijl/swyh-rs" +[build] +template = "cargo" diff --git a/recipes/wip/sound/tek/recipe.toml b/recipes/wip/sound/tek/recipe.toml new file mode 100644 index 000000000..fa7b1da69 --- /dev/null +++ b/recipes/wip/sound/tek/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://codeberg.org/unspeaker/tek" +[build] +template = "cargo" diff --git a/recipes/wip/sound/tori/recipe.toml b/recipes/wip/sound/tori/recipe.toml new file mode 100644 index 000000000..e420a6299 --- /dev/null +++ b/recipes/wip/sound/tori/recipe.toml @@ -0,0 +1,9 @@ +#TODO make dependencies work +[source] +git = "https://github.com/LeoRiether/tori" +[build] +template = "cargo" +dependencies = [ + "mpv", + "cava", +] diff --git a/recipes/wip/sound/tuisic/recipe.toml b/recipes/wip/sound/tuisic/recipe.toml new file mode 100644 index 000000000..00dae88d4 --- /dev/null +++ b/recipes/wip/sound/tuisic/recipe.toml @@ -0,0 +1,5 @@ +#TODO rustc-serialize crate error +[source] +git = "https://github.com/saubuny/tuisic" +[build] +template = "cargo" diff --git a/recipes/wip/sound/wiremix/recipe.toml b/recipes/wip/sound/wiremix/recipe.toml new file mode 100644 index 000000000..7fe946ea8 --- /dev/null +++ b/recipes/wip/sound/wiremix/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tsowell/wiremix" +[build] +template = "cargo" +dependencies = [ + "pipewire", +] diff --git a/recipes/wip/storage/bmap-rs/recipe.toml b/recipes/wip/storage/bmap-rs/recipe.toml new file mode 100644 index 000000000..836913b6d --- /dev/null +++ b/recipes/wip/storage/bmap-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/collabora/bmap-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages bmap-rs +""" diff --git a/recipes/wip/storage/kiorg/recipe.toml b/recipes/wip/storage/kiorg/recipe.toml new file mode 100644 index 000000000..7373b5e84 --- /dev/null +++ b/recipes/wip/storage/kiorg/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/houqp/kiorg" +[build] +template = "cargo" diff --git a/recipes/wip/storage/stor-age/recipe.toml b/recipes/wip/storage/stor-age/recipe.toml new file mode 100644 index 000000000..04b237b49 --- /dev/null +++ b/recipes/wip/storage/stor-age/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/idiv-biodiversity/stor-age" +[build] +template = "cargo" diff --git a/recipes/wip/storage/wiper/recipe.toml b/recipes/wip/storage/wiper/recipe.toml new file mode 100644 index 000000000..6cfe641aa --- /dev/null +++ b/recipes/wip/storage/wiper/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ikebastuz/wiper" +[build] +template = "cargo" diff --git a/recipes/wip/sys-info/bb/recipe.toml b/recipes/wip/sys-info/bb/recipe.toml new file mode 100644 index 000000000..147c196e9 --- /dev/null +++ b/recipes/wip/sys-info/bb/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/epilys/bb" +[build] +template = "cargo" diff --git a/recipes/wip/sys-info/btop/recipe.toml b/recipes/wip/sys-info/btop/recipe.toml new file mode 100644 index 000000000..8df60dff1 --- /dev/null +++ b/recipes/wip/sys-info/btop/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing gnu make script, see https://github.com/aristocratos/btop#compilation-linux +[source] +git = "https://github.com/aristocratos/btop" +rev = "fd2a2acdad6fbaad76846cb5e802cf2ae022d670" +[build] +template = "custom" diff --git a/recipes/wip/sys-info/cpu-x/recipe.toml b/recipes/wip/sys-info/cpu-x/recipe.toml new file mode 100644 index 000000000..10552eded --- /dev/null +++ b/recipes/wip/sys-info/cpu-x/recipe.toml @@ -0,0 +1,26 @@ +#TODO not compiled or tested +# build instructions: https://github.com/TheTumultuousUnicornOfDarkness/CPU-X/wiki/manual-build#build-and-install-cpu-x +[source] +git = "https://github.com/TheTumultuousUnicornOfDarkness/CPU-X" +rev = "41f5d1ac3b13e60aa30212f2b9f38de646fd2b07" +[build] +template = "custom" +dependencies = [ + #"gtk3mm", + "ncurses", + #"glfw3", + #"libvulkan", + "libstatgrab", + "libcpuid", + "pciutils", +] +script = """ +DYNAMIC_INIT +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +COOKBOOK_CMAKE_FLAGS+=( + "-DWITH_GTK=0", + "-DWITH_LIBGLFW=0", + "-DWITH_VULKAN=0", +) +cookbook_cmake +""" diff --git a/recipes/wip/sys-info/cyme/recipe.toml b/recipes/wip/sys-info/cyme/recipe.toml new file mode 100644 index 000000000..dfb039fea --- /dev/null +++ b/recipes/wip/sys-info/cyme/recipe.toml @@ -0,0 +1,5 @@ +#TODO port to Redox +[source] +git = "https://github.com/tuna-f1sh/cyme" +[build] +template = "cargo" diff --git a/recipes/wip/sys-info/ffetch/recipe.toml b/recipes/wip/sys-info/ffetch/recipe.toml new file mode 100644 index 000000000..8b23aada9 --- /dev/null +++ b/recipes/wip/sys-info/ffetch/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/0l3d/ffetch" +[build] +template = "cargo" diff --git a/recipes/wip/sys-info/freshfetch/recipe.toml b/recipes/wip/sys-info/freshfetch/recipe.toml new file mode 100644 index 000000000..4e254a515 --- /dev/null +++ b/recipes/wip/sys-info/freshfetch/recipe.toml @@ -0,0 +1,8 @@ +#TODO mlua crate error +[source] +git = "https://github.com/K4rakara/freshfetch" +[build] +template = "custom" +script = """ +cookbook_cargo_packages freshfetch +""" diff --git a/recipes/wip/sys-info/macchina/recipe.toml b/recipes/wip/sys-info/macchina/recipe.toml new file mode 100644 index 000000000..524a1d555 --- /dev/null +++ b/recipes/wip/sys-info/macchina/recipe.toml @@ -0,0 +1,5 @@ +#TODO if-addrs crate error +[source] +git = "https://github.com/Macchina-CLI/macchina" +[build] +template = "cargo" diff --git a/recipes/wip/sys-info/mission-center/recipe.toml b/recipes/wip/sys-info/mission-center/recipe.toml new file mode 100644 index 000000000..d5f56bee4 --- /dev/null +++ b/recipes/wip/sys-info/mission-center/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.com/mission-center-devs/mission-center#building---native +#TODO patch to disable libgbm +[source] +git = "https://gitlab.com/mission-center-devs/mission-center" +[build] +template = "meson" +dependencies = [ + "gtk4", + "libadwaita", + "eudev", + "libdrm", + "dbus", +] diff --git a/recipes/wip/sys-info/neofetch/recipe.toml b/recipes/wip/sys-info/neofetch/recipe.toml new file mode 100644 index 000000000..f1438fbd2 --- /dev/null +++ b/recipes/wip/sys-info/neofetch/recipe.toml @@ -0,0 +1,11 @@ +#TODO Add Redox OS on the Bash script +[source] +git = "https://github.com/dylanaraps/neofetch" +rev = "60d07dee6b76769d8c487a40639fb7b5a1a7bc85" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp "${COOKBOOK_SOURCE}"/neofetch "${COOKBOOK_STAGE}"/usr/bin/neofetch +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/neofetch +""" diff --git a/recipes/wip/sys-info/pciutils/recipe.toml b/recipes/wip/sys-info/pciutils/recipe.toml new file mode 100644 index 000000000..70710ff5f --- /dev/null +++ b/recipes/wip/sys-info/pciutils/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for "make", see https://git.kernel.org/pub/scm/utils/pciutils/pciutils.git/tree/README#n52 +[source] +tar = "https://mirrors.edge.kernel.org/pub/software/utils/pciutils/pciutils-3.9.0.tar.xz" +[build] +template = "custom" +dependencies = [ + "zlib", +] diff --git a/recipes/wip/sys-info/pfetch-rs/recipe.toml b/recipes/wip/sys-info/pfetch-rs/recipe.toml new file mode 100644 index 000000000..14a10962f --- /dev/null +++ b/recipes/wip/sys-info/pfetch-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO if-addrs crate error +[source] +git = "https://github.com/Gobidev/pfetch-rs" +[build] +template = "cargo" diff --git a/recipes/wip/sys-info/process-viewer/recipe.toml b/recipes/wip/sys-info/process-viewer/recipe.toml new file mode 100644 index 000000000..bf48af600 --- /dev/null +++ b/recipes/wip/sys-info/process-viewer/recipe.toml @@ -0,0 +1,8 @@ +#TODO make GTK4 work +[source] +git = "https://github.com/GuillaumeGomez/process-viewer" +[build] +template = "cargo" +dependencies = [ + "gtk4", +] diff --git a/recipes/wip/sys-info/procps-ng/recipe.toml b/recipes/wip/sys-info/procps-ng/recipe.toml new file mode 100644 index 000000000..fc247ee48 --- /dev/null +++ b/recipes/wip/sys-info/procps-ng/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-4.0.4.tar.xz/download" +[build] +template = "configure" diff --git a/recipes/wip/sys-info/procs/recipe.toml b/recipes/wip/sys-info/procs/recipe.toml new file mode 100644 index 000000000..da481c03c --- /dev/null +++ b/recipes/wip/sys-info/procs/recipe.toml @@ -0,0 +1,5 @@ +#TODO async-io and rustix crates error (after cargo update) +[source] +git = "https://github.com/dalance/procs" +[build] +template = "cargo" diff --git a/recipes/wip/sys-info/rfetch/recipe.toml b/recipes/wip/sys-info/rfetch/recipe.toml new file mode 100644 index 000000000..3a1287cb8 --- /dev/null +++ b/recipes/wip/sys-info/rfetch/recipe.toml @@ -0,0 +1,5 @@ +#TODO nix crate error (after cargo update) +[source] +git = "https://github.com/kamui-fin/rfetch" +[build] +template = "cargo" diff --git a/recipes/wip/sys-info/rsftch/recipe.toml b/recipes/wip/sys-info/rsftch/recipe.toml new file mode 100644 index 000000000..e0758a6ef --- /dev/null +++ b/recipes/wip/sys-info/rsftch/recipe.toml @@ -0,0 +1,5 @@ +#TODO source code error +[source] +git = "https://github.com/charklie/rsftch" +[build] +template = "cargo" diff --git a/recipes/wip/sys-info/usbutils/recipe.toml b/recipes/wip/sys-info/usbutils/recipe.toml new file mode 100644 index 000000000..ea3c222e6 --- /dev/null +++ b/recipes/wip/sys-info/usbutils/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error +[source] +tar = "https://www.kernel.org/pub/linux/utils/usb/usbutils/usbutils-017.tar.xz" +[build] +template = "configure" +dependencies = [ + "libusb", +] diff --git a/recipes/wip/sys-info/zeitfetch/recipe.toml b/recipes/wip/sys-info/zeitfetch/recipe.toml new file mode 100644 index 000000000..a78a1c4c0 --- /dev/null +++ b/recipes/wip/sys-info/zeitfetch/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/nidnogg/zeitfetch" +[build] +template = "cargo" diff --git a/recipes/wip/system/pik/recipe.toml b/recipes/wip/system/pik/recipe.toml new file mode 100644 index 000000000..1c1e04f3a --- /dev/null +++ b/recipes/wip/system/pik/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jacek-kurlit/pik" +[build] +template = "cargo" diff --git a/recipes/wip/system/procman/recipe.toml b/recipes/wip/system/procman/recipe.toml new file mode 100644 index 000000000..efc7983b5 --- /dev/null +++ b/recipes/wip/system/procman/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jaroslawroszyk/procman" +[build] +template = "cargo" diff --git a/recipes/wip/system/rustysd/recipe.toml b/recipes/wip/system/rustysd/recipe.toml new file mode 100644 index 000000000..ad6fd0bbd --- /dev/null +++ b/recipes/wip/system/rustysd/recipe.toml @@ -0,0 +1,27 @@ +#TODO: Unable to fork services, page fault on rsdctl +[source] +git = "https://github.com/willnode/rustysd" +branch = "redox" + +[build] +template = "custom" +script = """ +cookbook_cargo + +mkdir -p ${COOKBOOK_STAGE}/etc/rustysd/system +cat <<'EOF' > ${COOKBOOK_STAGE}/etc/rustysd/rustysd_config.toml +unit_dirs = [ + "/etc/rustysd/system", + "/etc/rustysd/user", +] +logging_dir = "/var/log/rustysd" +log_to_disk = true +log_to_stdout = false +target_unit = "default.target" +notifications_dir = "/var/run/rustysd" +# selfpath = "" +EOF + +cp ${COOKBOOK_SOURCE}/docker_test_units/*.target ${COOKBOOK_STAGE}/etc/rustysd/system/ +ln -s rsdctl ${COOKBOOK_STAGE}/usr/bin/systemctl +""" diff --git a/recipes/wip/system/topgrade/recipe.toml b/recipes/wip/system/topgrade/recipe.toml new file mode 100644 index 000000000..539b1acd7 --- /dev/null +++ b/recipes/wip/system/topgrade/recipe.toml @@ -0,0 +1,5 @@ +#TODO async-io and rustix crates error +[source] +git = "https://github.com/topgrade-rs/topgrade" +[build] +template = "cargo" diff --git a/recipes/wip/tel/sms-server/recipe.toml b/recipes/wip/tel/sms-server/recipe.toml new file mode 100644 index 000000000..99e2fba49 --- /dev/null +++ b/recipes/wip/tel/sms-server/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/morgverd/sms-server" +[build] +template = "cargo" diff --git a/recipes/wip/tel/sms-terminal/recipe.toml b/recipes/wip/tel/sms-terminal/recipe.toml new file mode 100644 index 000000000..b47ae36ae --- /dev/null +++ b/recipes/wip/tel/sms-terminal/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/morgverd/sms-terminal" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/agg/recipe.toml b/recipes/wip/terminal/agg/recipe.toml new file mode 100644 index 000000000..0cc12f405 --- /dev/null +++ b/recipes/wip/terminal/agg/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/asciinema/agg" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/alacritty/recipe.toml b/recipes/wip/terminal/alacritty/recipe.toml new file mode 100644 index 000000000..f2cc85620 --- /dev/null +++ b/recipes/wip/terminal/alacritty/recipe.toml @@ -0,0 +1,24 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/alacritty/alacritty" +[build] +template = "custom" +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}" +""" diff --git a/recipes/wip/terminal/ascii-gen/recipe.toml b/recipes/wip/terminal/ascii-gen/recipe.toml new file mode 100644 index 000000000..1aebb9741 --- /dev/null +++ b/recipes/wip/terminal/ascii-gen/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/thed24/ascii-gen" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/asciiquarium/recipe.toml b/recipes/wip/terminal/asciiquarium/recipe.toml new file mode 100644 index 000000000..3bf31400b --- /dev/null +++ b/recipes/wip/terminal/asciiquarium/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/cmatsuoka/asciiquarium" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp "${COOKBOOK_SOURCE}"/asciiquarium "${COOKBOOK_STAGE}"/usr/bin/asciiquarium +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/asciiquarium +""" +[package] +dependencies = [ + "perl", +] diff --git a/recipes/wip/terminal/bobr/recipe.toml b/recipes/wip/terminal/bobr/recipe.toml new file mode 100644 index 000000000..a7632aa79 --- /dev/null +++ b/recipes/wip/terminal/bobr/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/cchexcode/bobr" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/boulette/recipe.toml b/recipes/wip/terminal/boulette/recipe.toml new file mode 100644 index 000000000..4dd89dd8a --- /dev/null +++ b/recipes/wip/terminal/boulette/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/pipelight/boulette" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/cbonsai/recipe.toml b/recipes/wip/terminal/cbonsai/recipe.toml new file mode 100644 index 000000000..4c1a808d2 --- /dev/null +++ b/recipes/wip/terminal/cbonsai/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for gnu make: https://gitlab.com/jallbrit/cbonsai#manual +[source] +git = "https://gitlab.com/jallbrit/cbonsai" +rev = "v1.4.2" +[build] +template = "custom" +dependencies = [ + "ncursesw", +] diff --git a/recipes/wip/terminal/chafa/recipe.toml b/recipes/wip/terminal/chafa/recipe.toml new file mode 100644 index 000000000..01d739670 --- /dev/null +++ b/recipes/wip/terminal/chafa/recipe.toml @@ -0,0 +1,11 @@ +#TODO can't find FreeType dependency +[source] +tar = "https://hpjansson.org/chafa/releases/chafa-1.12.4.tar.xz" +[build] +template = "configure" +dependencies = [ + "glib", + "imagemagick", + "pcre", + "freetype2", +] diff --git a/recipes/wip/terminal/chatd/recipe.toml b/recipes/wip/terminal/chatd/recipe.toml new file mode 100644 index 000000000..1a9bd5a52 --- /dev/null +++ b/recipes/wip/terminal/chatd/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/unrenamed/chatd" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/contour-terminal/recipe.toml b/recipes/wip/terminal/contour-terminal/recipe.toml new file mode 100644 index 000000000..40110b1a3 --- /dev/null +++ b/recipes/wip/terminal/contour-terminal/recipe.toml @@ -0,0 +1,20 @@ +#TODO not compiled or tested +# build instructions - https://contour-terminal.org/install/#unix-like-systems-linux-freebsd-macos +#TODO missing dependencies, see https://github.com/contour-terminal/contour/blob/master/scripts/install-deps.sh#L328 +[source] +git = "https://github.com/contour-terminal/contour" +rev = "116f1d16f6dc33ab8b0f6010a44e7b23eadeb8ca" +[build] +template = "cmake" +dependencies = [ + "fontconfig", + "freetyoe2", + "harfbuzz", + "libssh2", + "ncurses", + "qt6-base", + "qt6-declarative", + "qt6-multimedia", + "qt6-tools", + "libxcb", +] diff --git a/recipes/wip/terminal/countryfetch/recipe.toml b/recipes/wip/terminal/countryfetch/recipe.toml new file mode 100644 index 000000000..2679aaa9b --- /dev/null +++ b/recipes/wip/terminal/countryfetch/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/nik-rev/countryfetch" +[build] +template = "custom" +script = """ +cookbook_cargo_packages countryfetch +""" diff --git a/recipes/wip/terminal/desktop-tui/recipe.toml b/recipes/wip/terminal/desktop-tui/recipe.toml new file mode 100644 index 000000000..426f28d72 --- /dev/null +++ b/recipes/wip/terminal/desktop-tui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Julien-cpsn/desktop-tui" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/envx/recioe.toml b/recipes/wip/terminal/envx/recioe.toml new file mode 100644 index 000000000..0f187a55c --- /dev/null +++ b/recipes/wip/terminal/envx/recioe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mikeleppane/envx" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/fsel/recipe.toml b/recipes/wip/terminal/fsel/recipe.toml new file mode 100644 index 000000000..227bad501 --- /dev/null +++ b/recipes/wip/terminal/fsel/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Mjoyufull/fsel" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/ghostie/recipe.toml b/recipes/wip/terminal/ghostie/recipe.toml new file mode 100644 index 000000000..2fd57e444 --- /dev/null +++ b/recipes/wip/terminal/ghostie/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/attriaayush/ghostie" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/leadr/recipe.toml b/recipes/wip/terminal/leadr/recipe.toml new file mode 100644 index 000000000..f1697873f --- /dev/null +++ b/recipes/wip/terminal/leadr/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ll-nick/leadr" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/lk/recipe.toml b/recipes/wip/terminal/lk/recipe.toml new file mode 100644 index 000000000..1e43032ac --- /dev/null +++ b/recipes/wip/terminal/lk/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jamescoleuk/lk" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/logria/recipe.toml b/recipes/wip/terminal/logria/recipe.toml new file mode 100644 index 000000000..e25b08713 --- /dev/null +++ b/recipes/wip/terminal/logria/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ReagentX/Logria" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/loriini/recipe.toml b/recipes/wip/terminal/loriini/recipe.toml new file mode 100644 index 000000000..77b9afdfe --- /dev/null +++ b/recipes/wip/terminal/loriini/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/kolja/loriini" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/lule/recipe.toml b/recipes/wip/terminal/lule/recipe.toml new file mode 100644 index 000000000..58ba216ce --- /dev/null +++ b/recipes/wip/terminal/lule/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/warpwm/lule" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/ngrv/recipe.toml b/recipes/wip/terminal/ngrv/recipe.toml new file mode 100644 index 000000000..f196674f7 --- /dev/null +++ b/recipes/wip/terminal/ngrv/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sorairolake/ngrv" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/otter-launcher/recipe.toml b/recipes/wip/terminal/otter-launcher/recipe.toml new file mode 100644 index 000000000..3b4c4a7b5 --- /dev/null +++ b/recipes/wip/terminal/otter-launcher/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/kuokuo123/otter-launcher" +[build] +template = "custom" +script = """ +cookbook_cargo +mkdir -pv "${COOKBOOK_STAGE}/usr/share/otter-launcher" +cp -rv "${COOKBOOK_SOURCE}"/contrib/* "${COOKBOOK_STAGE}/usr/share/otter-launcher" +""" diff --git a/recipes/wip/terminal/pastel/recipe.toml b/recipes/wip/terminal/pastel/recipe.toml new file mode 100644 index 000000000..2bf28ff08 --- /dev/null +++ b/recipes/wip/terminal/pastel/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sharkdp/pastel" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/pay-respects/recipe.toml b/recipes/wip/terminal/pay-respects/recipe.toml new file mode 100644 index 000000000..1892867a4 --- /dev/null +++ b/recipes/wip/terminal/pay-respects/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/iffse/pay-respects" +[build] +template = "custom" +script = """ +cookbook_cargo_packages pay-respects +""" diff --git a/recipes/wip/terminal/pipecolor/recipe.toml b/recipes/wip/terminal/pipecolor/recipe.toml new file mode 100644 index 000000000..9abf0b6a0 --- /dev/null +++ b/recipes/wip/terminal/pipecolor/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/dalance/pipecolor" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/pipes-sh/recipe.toml b/recipes/wip/terminal/pipes-sh/recipe.toml new file mode 100644 index 000000000..d42c62674 --- /dev/null +++ b/recipes/wip/terminal/pipes-sh/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/pipeseroni/pipes.sh" +rev = "v1.3.0" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp "${COOKBOOK_SOURCE}"/pipes.sh "${COOKBOOK_STAGE}"/usr/bin/pipes +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/pipes +""" +[package] +dependencies = [ + "bash", + "ncurses", +] diff --git a/recipes/wip/terminal/pls/recipe.toml b/recipes/wip/terminal/pls/recipe.toml new file mode 100644 index 000000000..db04dd571 --- /dev/null +++ b/recipes/wip/terminal/pls/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/pls-rs/pls" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/pretty/recipe.toml b/recipes/wip/terminal/pretty/recipe.toml new file mode 100644 index 000000000..43e97c291 --- /dev/null +++ b/recipes/wip/terminal/pretty/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rhaskia/preTTY" +[build] +template = "custom" +script = """ +cookbook_cargo_packages prettyterm_gui +""" diff --git a/recipes/wip/terminal/rioterm/recipe.toml b/recipes/wip/terminal/rioterm/recipe.toml new file mode 100644 index 000000000..4713a5a8b --- /dev/null +++ b/recipes/wip/terminal/rioterm/recipe.toml @@ -0,0 +1,10 @@ +#TODO Need to make libxkbcommon work +[source] +git = "https://github.com/raphamorim/rio" +[build] +template = "cargo" +dependencies = [ + "freetype2", + "fontconfig", + "libxkbcommon", +] diff --git a/recipes/wip/terminal/rterm/recipe.toml b/recipes/wip/terminal/rterm/recipe.toml new file mode 100644 index 000000000..66cab250a --- /dev/null +++ b/recipes/wip/terminal/rterm/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mechpen/rterm" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/scooter/recipe.toml b/recipes/wip/terminal/scooter/recipe.toml new file mode 100644 index 000000000..167f32f6d --- /dev/null +++ b/recipes/wip/terminal/scooter/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/thomasschafer/scooter" +[build] +template = "custom" +script = """ +cookbook_cargo_packages scooter +""" diff --git a/recipes/wip/terminal/so/recipe.toml b/recipes/wip/terminal/so/recipe.toml new file mode 100644 index 000000000..d32b099d5 --- /dev/null +++ b/recipes/wip/terminal/so/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/samtay/so" +[build] +template = "custom" +script = """ +cookbook_cargo --no-default-features --features termion-backend +""" diff --git a/recipes/wip/terminal/starship/recipe.toml b/recipes/wip/terminal/starship/recipe.toml new file mode 100644 index 000000000..7e303d4ad --- /dev/null +++ b/recipes/wip/terminal/starship/recipe.toml @@ -0,0 +1,6 @@ +#TODO systemstat crate error +#TODO nix::unistd::User +[source] +git = "https://github.com/starship/starship" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/tab-rs/recipe.toml b/recipes/wip/terminal/tab-rs/recipe.toml new file mode 100644 index 000000000..91355fc90 --- /dev/null +++ b/recipes/wip/terminal/tab-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/austinjones/tab-rs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages tab +""" diff --git a/recipes/wip/terminal/tarts/recipe.toml b/recipes/wip/terminal/tarts/recipe.toml new file mode 100644 index 000000000..9a46e6b0d --- /dev/null +++ b/recipes/wip/terminal/tarts/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/oiwn/tarts" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/tattoy/recipe.toml b/recipes/wip/terminal/tattoy/recipe.toml new file mode 100644 index 000000000..4dfe56685 --- /dev/null +++ b/recipes/wip/terminal/tattoy/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tattoy-org/tattoy" +[build] +template = "custom" +script = """ +cookbook_cargo_packages tattoy +""" diff --git a/recipes/wip/terminal/tere/recipe.toml b/recipes/wip/terminal/tere/recipe.toml new file mode 100644 index 000000000..e4ac6774e --- /dev/null +++ b/recipes/wip/terminal/tere/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mgunyho/tere" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/term39/recipe.toml b/recipes/wip/terminal/term39/recipe.toml new file mode 100644 index 000000000..61590f087 --- /dev/null +++ b/recipes/wip/terminal/term39/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/alejandroqh/term39" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/termimage/recipe.toml b/recipes/wip/terminal/termimage/recipe.toml new file mode 100644 index 000000000..15619e6ce --- /dev/null +++ b/recipes/wip/terminal/termimage/recipe.toml @@ -0,0 +1,5 @@ +#TODO move to the proper category +[source] +git = "https://github.com/nabijaczleweli/termimage" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/terminal-toys/recipe.toml b/recipes/wip/terminal/terminal-toys/recipe.toml new file mode 100644 index 000000000..cb6edbc20 --- /dev/null +++ b/recipes/wip/terminal/terminal-toys/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Seebass22/terminal-toys" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/terminal-yt/recipe.toml b/recipes/wip/terminal/terminal-yt/recipe.toml new file mode 100644 index 000000000..81c4ae2cc --- /dev/null +++ b/recipes/wip/terminal/terminal-yt/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jooooscha/terminal-yt" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/thokr/recipe.toml b/recipes/wip/terminal/thokr/recipe.toml new file mode 100644 index 000000000..4b54acaf1 --- /dev/null +++ b/recipes/wip/terminal/thokr/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jrnxf/thokr" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/tmux/recipe.toml b/recipes/wip/terminal/tmux/recipe.toml new file mode 100644 index 000000000..6a95203b6 --- /dev/null +++ b/recipes/wip/terminal/tmux/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +[source] +tar = "https://github.com/tmux/tmux/releases/download/3.4/tmux-3.4.tar.gz" +[build] +template = "custom" +dependencies = [ + "ncurses", + "libevent", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_configure +""" diff --git a/recipes/wip/terminal/toyterm/recipe.toml b/recipes/wip/terminal/toyterm/recipe.toml new file mode 100644 index 000000000..361c371d1 --- /dev/null +++ b/recipes/wip/terminal/toyterm/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/algon-320/toyterm" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/useenv/recipe.toml b/recipes/wip/terminal/useenv/recipe.toml new file mode 100644 index 000000000..a65a06b0d --- /dev/null +++ b/recipes/wip/terminal/useenv/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/EliahKagan/useenv" +[build] +template = "cargo" diff --git a/recipes/wip/terminal/wezterm/recipe.toml b/recipes/wip/terminal/wezterm/recipe.toml new file mode 100644 index 000000000..cdb8a3f34 --- /dev/null +++ b/recipes/wip/terminal/wezterm/recipe.toml @@ -0,0 +1,30 @@ +#TODO not compiled or tested +# build instructions: https://wezterm.org/install/source.html +# dependencies reference: https://github.com/wez/wezterm/blob/main/get-deps#L149 +[source] +git = "https://github.com/wez/wezterm" +shallow_clone = true +[build] +template = "custom" +dependencies = [ + "mesa", + "fontconfig", + "openssl3", + "libxkbcommon", + "libx11", + "libxcb", +] +script = """ +DYNAMIC_INIT +package=wezterm +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${package}" \ + --release \ + --no-default-features \ + --features=vendored-fonts + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${package}" \ + "${COOKBOOK_STAGE}/usr/bin/${package}" +""" diff --git a/recipes/wip/terminal/zellij/recipe.toml b/recipes/wip/terminal/zellij/recipe.toml new file mode 100644 index 000000000..ead436fc7 --- /dev/null +++ b/recipes/wip/terminal/zellij/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error (after cargo update) +[source] +git = "https://github.com/zellij-org/zellij" +[build] +template = "cargo" diff --git a/recipes/wip/tests/pjdfstest/recipe.toml b/recipes/wip/tests/pjdfstest/recipe.toml new file mode 100644 index 000000000..c37f6a25d --- /dev/null +++ b/recipes/wip/tests/pjdfstest/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/pjd/pjdfstest" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/home/user/pjdfstest" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/pjdfstest" +""" +[package] +dependencies = ["perl5"] diff --git a/recipes/wip/tests/xfstests/recipe.toml b/recipes/wip/tests/xfstests/recipe.toml new file mode 100644 index 000000000..81cf8077a --- /dev/null +++ b/recipes/wip/tests/xfstests/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/kdave/xfstests" +rev = "2cba4b54e6ab21d9324000f3cd009dbe9cad9c19" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/home/user/xfstests" +cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/xfstests" +""" diff --git a/recipes/wip/text/amp/recipe.toml b/recipes/wip/text/amp/recipe.toml new file mode 100644 index 000000000..ccd35de44 --- /dev/null +++ b/recipes/wip/text/amp/recipe.toml @@ -0,0 +1,5 @@ +#TODO require a patch on the mio crate +[source] +git = "https://github.com/jmacdonald/amp" +[build] +template = "cargo" diff --git a/recipes/wip/text/basalt/recipe.toml b/recipes/wip/text/basalt/recipe.toml new file mode 100644 index 000000000..22e8922ec --- /dev/null +++ b/recipes/wip/text/basalt/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/erikjuhani/basalt" +[build] +template = "custom" +script = """ +cookbook_cargo_packages basalt-tui +""" diff --git a/recipes/wip/text/bat/recipe.toml b/recipes/wip/text/bat/recipe.toml new file mode 100644 index 000000000..d01b0cd28 --- /dev/null +++ b/recipes/wip/text/bat/recipe.toml @@ -0,0 +1,5 @@ +#TODO sys-info crate build.rs does not recognize Redox +[source] +git = "https://github.com/sharkdp/bat" +[build] +template = "cargo" diff --git a/recipes/wip/text/blogr/recipe.toml b/recipes/wip/text/blogr/recipe.toml new file mode 100644 index 000000000..1f703492f --- /dev/null +++ b/recipes/wip/text/blogr/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bahdotsh/blogr" +[build] +template = "custom" +script = """ +cookbook_cargo_packages blogr-cli +""" diff --git a/recipes/wip/text/csview/recipe.toml b/recipes/wip/text/csview/recipe.toml new file mode 100644 index 000000000..8833c8755 --- /dev/null +++ b/recipes/wip/text/csview/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/wfxr/csview" +[build] +template = "cargo" diff --git a/recipes/wip/text/csvlens/recipe.toml b/recipes/wip/text/csvlens/recipe.toml new file mode 100644 index 000000000..a9c5707d9 --- /dev/null +++ b/recipes/wip/text/csvlens/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/YS-L/csvlens" +[build] +template = "cargo" diff --git a/recipes/wip/text/dog/recipe.toml b/recipes/wip/text/dog/recipe.toml new file mode 100644 index 000000000..6f73d6091 --- /dev/null +++ b/recipes/wip/text/dog/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/TrystanScottLambert/dog" +[build] +template = "cargo" diff --git a/recipes/wip/text/duat/recipe.toml b/recipes/wip/text/duat/recipe.toml new file mode 100644 index 000000000..e68d7b22b --- /dev/null +++ b/recipes/wip/text/duat/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/AhoyISki/duat" +[build] +template = "cargo" diff --git a/recipes/wip/text/edit/recipe.toml b/recipes/wip/text/edit/recipe.toml new file mode 100644 index 000000000..d21fb69db --- /dev/null +++ b/recipes/wip/text/edit/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/microsoft/edit" +[build] +template = "cargo" diff --git a/recipes/wip/text/emacs-nox/recipe.toml b/recipes/wip/text/emacs-nox/recipe.toml new file mode 100644 index 000000000..c6b9117af --- /dev/null +++ b/recipes/wip/text/emacs-nox/recipe.toml @@ -0,0 +1,22 @@ +#TODO compilation error +#TODO make dependencies work +[source] +tar = "https://ftp.gnu.org/gnu/emacs/emacs-29.1.tar.xz" +[build] +template = "custom" +dependencies = [ + "dbus", + "libgmp", + "libgpm", + "gnutls3", + "jansson", + "liblcms", + "sqlite3", + "libxml2", + "zlib", + "ncurses", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_configure +""" diff --git a/recipes/wip/text/emacs-pgtk/recipe.toml b/recipes/wip/text/emacs-pgtk/recipe.toml new file mode 100644 index 000000000..825fa2e33 --- /dev/null +++ b/recipes/wip/text/emacs-pgtk/recipe.toml @@ -0,0 +1,37 @@ +#TODO compilation error +#TODO make dependencies work +[source] +tar = "https://ftp.gnu.org/gnu/emacs/emacs-29.1.tar.xz" +[build] +template = "custom" +dependencies = [ + "dbus", + "libgmp", + "libgpm", + "gnutls3", + "jansson", + "liblcms", + "sqlite3", + "libxml2", + "zlib", + "ncurses", + "cairo", + "fontconfig", + "freetype2", + "gdk-pixbuf", + "libgif", + "glib", + "gtk3", + "harfbuzz", + "libjpeg", + "pango", + "libpng", + "librsvg", + "libtiff", + "libwebp", + "libotf", +] +script = """ +export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" +cookbook_configure +""" diff --git a/recipes/wip/text/flowfix/recipe.toml b/recipes/wip/text/flowfix/recipe.toml new file mode 100644 index 000000000..77c41933d --- /dev/null +++ b/recipes/wip/text/flowfix/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/warpwm/flowfix" +[build] +template = "cargo" diff --git a/recipes/wip/text/fsrx/recipe.toml b/recipes/wip/text/fsrx/recipe.toml new file mode 100644 index 000000000..5606d37cf --- /dev/null +++ b/recipes/wip/text/fsrx/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jrnxf/fsrx" +[build] +template = "cargo" diff --git a/recipes/wip/text/helix-gpui/recipe.toml b/recipes/wip/text/helix-gpui/recipe.toml new file mode 100644 index 000000000..91e2d934a --- /dev/null +++ b/recipes/wip/text/helix-gpui/recipe.toml @@ -0,0 +1,9 @@ +#TODO can't find the fontconfig dependency +[source] +git = "https://github.com/polachok/helix-gpui" +[build] +template = "cargo" +dependencies = [ + "openssl1", + "fontconfig", +] diff --git a/recipes/wip/text/igrep/recipe.toml b/recipes/wip/text/igrep/recipe.toml new file mode 100644 index 000000000..87165ae42 --- /dev/null +++ b/recipes/wip/text/igrep/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/konradsz/igrep" +[build] +template = "cargo" diff --git a/recipes/wip/text/jt/recipe.toml b/recipes/wip/text/jt/recipe.toml new file mode 100644 index 000000000..fd37be9cd --- /dev/null +++ b/recipes/wip/text/jt/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/shashwatah/jot" +[build] +template = "cargo" diff --git a/recipes/wip/text/keypunch/recipe.toml b/recipes/wip/text/keypunch/recipe.toml new file mode 100644 index 000000000..2a9366554 --- /dev/null +++ b/recipes/wip/text/keypunch/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bragefuglseth/keypunch" +[build] +template = "cargo" +dependencies = [ + "gtk4", + "libadwaita", +] diff --git a/recipes/wip/text/kibi/recipe.toml b/recipes/wip/text/kibi/recipe.toml new file mode 100644 index 000000000..828a42703 --- /dev/null +++ b/recipes/wip/text/kibi/recipe.toml @@ -0,0 +1,10 @@ +#TODO promote +[source] +git = "https://github.com/ilai-deutel/kibi" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/kibi +cp -rv "${COOKBOOK_SOURCE}"/syntax.d "${COOKBOOK_STAGE}"/usr/share/kibi +cookbook_cargo +""" diff --git a/recipes/wip/text/mado/recipe.toml b/recipes/wip/text/mado/recipe.toml new file mode 100644 index 000000000..b39f95a69 --- /dev/null +++ b/recipes/wip/text/mado/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/akiomik/mado" +[build] +template = "cargo" diff --git a/recipes/wip/text/md-tui/recipe.toml b/recipes/wip/text/md-tui/recipe.toml new file mode 100644 index 000000000..452d1a662 --- /dev/null +++ b/recipes/wip/text/md-tui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/henriklovhaug/md-tui" +[build] +template = "cargo" diff --git a/recipes/wip/text/mdcat/recipe.toml b/recipes/wip/text/mdcat/recipe.toml new file mode 100644 index 000000000..231a1730a --- /dev/null +++ b/recipes/wip/text/mdcat/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/swsnr/mdcat" +[build] +template = "custom" +script = """ +cookbook_cargo --features=static +""" diff --git a/recipes/wip/text/nanorust/recipe.toml b/recipes/wip/text/nanorust/recipe.toml new file mode 100644 index 000000000..616849da5 --- /dev/null +++ b/recipes/wip/text/nanorust/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Supakornn/nanorust" +[build] +template = "cargo" diff --git a/recipes/wip/text/neovide/recipe.toml b/recipes/wip/text/neovide/recipe.toml new file mode 100644 index 000000000..0c6631fa8 --- /dev/null +++ b/recipes/wip/text/neovide/recipe.toml @@ -0,0 +1,14 @@ +#TODO Make neovim and freeglut work +[source] +git = "https://github.com/neovide/neovide" +[build] +template = "cargo" +dependencies = [ + "neovim", + "openssl1", + "freetype2", + "expat", + "bzip2", + "freeglut", + "fontconfig", +] diff --git a/recipes/wip/text/neovim/recipe.toml b/recipes/wip/text/neovim/recipe.toml new file mode 100644 index 000000000..8978c7ed2 --- /dev/null +++ b/recipes/wip/text/neovim/recipe.toml @@ -0,0 +1,30 @@ +#TODO mostly work, kinda slow, can't quit (signal issues?) +[source] +tar = "https://github.com/neovim/neovim/archive/refs/tags/v0.11.3.tar.gz" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "luajit", + "libiconv", + "libuv", + "luv", + "lpeg", + "tree-sitter", + "gettext", + "unibilium", + "utf8proc", +] +script = """ +DYNAMIC_INIT +cookbook_cmake \ + -DLUA_GEN_PRG=luajit + +# Lpeg is absolute path https://github.com/neovim/neovim/issues/23395 +patchelf --replace-needed \ + "${COOKBOOK_SYSROOT}/usr/lib/liblpeg.so" \ + 'liblpeg.so.1' ${COOKBOOK_STAGE}/usr/bin/nvim +""" diff --git a/recipes/wip/text/neovim/redox.patch b/recipes/wip/text/neovim/redox.patch new file mode 100644 index 000000000..30b3f7229 --- /dev/null +++ b/recipes/wip/text/neovim/redox.patch @@ -0,0 +1,141 @@ +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 @@ + + file(GLOB PACKAGES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/runtime/pack/dist/opt/*) + +-set(GENERATED_PACKAGE_TAGS) +-foreach(PACKAGE ${PACKAGES}) +- get_filename_component(PACKNAME ${PACKAGE} NAME) +- file(GLOB "${PACKNAME}_DOC_FILES" CONFIGURE_DEPENDS ${PACKAGE}/doc/*.txt) +- if(${PACKNAME}_DOC_FILES) +- file(MAKE_DIRECTORY ${GENERATED_PACKAGE_DIR}/${PACKNAME}) +- add_custom_command(OUTPUT "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags" +- COMMAND ${CMAKE_COMMAND} -E copy_directory +- ${PACKAGE} ${GENERATED_PACKAGE_DIR}/${PACKNAME} +- COMMAND $ +- -u NONE -i NONE -e --headless -c "helptags doc" -c quit +- DEPENDS +- nvim_bin +- nvim_runtime_deps +- WORKING_DIRECTORY "${GENERATED_PACKAGE_DIR}/${PACKNAME}" +- ) +- +- set("${PACKNAME}_DOC_NAMES") +- foreach(DF "${${PACKNAME}_DOC_FILES}") +- get_filename_component(F ${DF} NAME) +- list(APPEND "${PACKNAME}_DOC_NAMES" ${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/${F}) +- endforeach() +- +- install_helper( +- FILES ${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags "${${PACKNAME}_DOC_NAMES}" +- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/pack/dist/opt/${PACKNAME}/doc) +- +- list(APPEND GENERATED_PACKAGE_TAGS "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags") +- endif() +-endforeach() +- + set(BUILDDOCFILES) + foreach(DF ${DOCFILES}) + get_filename_component(F ${DF} NAME) +@@ -65,8 +34,6 @@ + COMMAND ${CMAKE_COMMAND} -E remove_directory doc + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${PROJECT_SOURCE_DIR}/runtime/doc doc +- COMMAND $ +- -u NONE -i NONE -e --headless -c "helptags ++t doc" -c quit + DEPENDS + nvim_bin + nvim_runtime_deps +@@ -78,7 +45,6 @@ + DEPENDS + ${GENERATED_SYN_VIM} + ${GENERATED_HELP_TAGS} +- ${GENERATED_PACKAGE_TAGS} + ) + + # CMake is painful here. It will create the destination using the user's +@@ -88,10 +54,6 @@ + # If it's preexisting, leave it alone. + + install_helper( +- FILES ${GENERATED_HELP_TAGS} ${BUILDDOCFILES} +- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/doc) +- +-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 @@ + endif() + + # -fstack-protector breaks Mingw-w64 builds +-if(NOT MINGW) +- check_c_compiler_flag(-fstack-protector-strong HAS_FSTACK_PROTECTOR_STRONG_FLAG) +- if(HAS_FSTACK_PROTECTOR_STRONG_FLAG) +- target_compile_options(main_lib INTERFACE -fstack-protector-strong) +- target_link_libraries(main_lib INTERFACE -fstack-protector-strong) +- else() +- check_c_compiler_flag(-fstack-protector HAS_FSTACK_PROTECTOR_FLAG) +- if(HAS_FSTACK_PROTECTOR_FLAG) +- target_compile_options(main_lib INTERFACE -fstack-protector --param ssp-buffer-size=4) +- target_link_libraries(main_lib INTERFACE -fstack-protector --param ssp-buffer-size=4) +- endif() +- endif() +-endif() + + # Compiler specific options + if(MSVC) +@@ -145,9 +132,6 @@ + # Platform specific options + if(UNIX) + target_link_libraries(main_lib INTERFACE m) +- if (NOT CMAKE_SYSTEM_NAME STREQUAL "SunOS") +- target_link_libraries(main_lib INTERFACE util) +- endif() + 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 +@@ -28,6 +28,8 @@ + + #if !defined(NAME_MAX) && defined(_XOPEN_NAME_MAX) + # define NAME_MAX _XOPEN_NAME_MAX ++#elif !defined(NAME_MAX) ++# define NAME_MAX 255 + #endif + + #define BASENAMELEN (NAME_MAX - 5) diff --git a/recipes/wip/text/octotype/recipe.toml b/recipes/wip/text/octotype/recipe.toml new file mode 100644 index 000000000..4c1e34e9c --- /dev/null +++ b/recipes/wip/text/octotype/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/mahlquistj/octotype" +[build] +template = "cargo" diff --git a/recipes/wip/text/quicknotes/recipe.toml b/recipes/wip/text/quicknotes/recipe.toml new file mode 100644 index 000000000..61623713f --- /dev/null +++ b/recipes/wip/text/quicknotes/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ollien/quicknotes" +[build] +template = "cargo" diff --git a/recipes/wip/text/repgrep/recipe.toml b/recipes/wip/text/repgrep/recipe.toml new file mode 100644 index 000000000..6da058bd2 --- /dev/null +++ b/recipes/wip/text/repgrep/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/acheronfail/repgrep" +[build] +template = "cargo" diff --git a/recipes/wip/text/revi/recipe.toml b/recipes/wip/text/revi/recipe.toml new file mode 100644 index 000000000..b260637ce --- /dev/null +++ b/recipes/wip/text/revi/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/revi-editor/revi" +[build] +template = "cargo" diff --git a/recipes/wip/text/rhyolite/recipe.toml b/recipes/wip/text/rhyolite/recipe.toml new file mode 100644 index 000000000..d4982a371 --- /dev/null +++ b/recipes/wip/text/rhyolite/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +#TODO resource packaging: https://github.com/lockedmutex/rhyolite/blob/master/Cargo.toml#L43 +[source] +git = "https://github.com/lockedmutex/rhyolite" +[build] +template = "custom" +dependencies = [ + "freetype2", + "fontconfig", +] +script = """ +cookbook_cargo --profile release +""" diff --git a/recipes/wip/text/ripgrep-all/recipe.toml b/recipes/wip/text/ripgrep-all/recipe.toml new file mode 100644 index 000000000..fca4e028b --- /dev/null +++ b/recipes/wip/text/ripgrep-all/recipe.toml @@ -0,0 +1,5 @@ +#TODO tokio-tar crate error +[source] +git = "https://github.com/phiresky/ripgrep-all" +[build] +template = "cargo" diff --git a/recipes/wip/text/ripwc/recipe.toml b/recipes/wip/text/ripwc/recipe.toml new file mode 100644 index 000000000..4bd75ce49 --- /dev/null +++ b/recipes/wip/text/ripwc/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/LuminousToaster/ripwc" +[build] +template = "cargo" diff --git a/recipes/wip/text/rnote/recipe.toml b/recipes/wip/text/rnote/recipe.toml new file mode 100644 index 000000000..1080f336c --- /dev/null +++ b/recipes/wip/text/rnote/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +# build instructions: https://github.com/flxzt/rnote/blob/main/BUILDING.md#build-with-meson +[source] +git = "https://github.com/flxzt/rnote" +[build] +template = "meson" +dependencies = [ + "gtk4", + "glib", + "libadwaita", + "libalsa", + "libpoppler", + "appstream", +] diff --git a/recipes/wip/text/rucola/recipe.toml b/recipes/wip/text/rucola/recipe.toml new file mode 100644 index 000000000..4251cc899 --- /dev/null +++ b/recipes/wip/text/rucola/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Linus-Mussmaecher/rucola" +[build] +template = "cargo" +[package] +dependencies = [ + "nerd-fonts", +] diff --git a/recipes/wip/text/serpl/recipe.toml b/recipes/wip/text/serpl/recipe.toml new file mode 100644 index 000000000..d524e8666 --- /dev/null +++ b/recipes/wip/text/serpl/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/yassinebridi/serpl" +[build] +template = "cargo" diff --git a/recipes/wip/text/svgbob/recipe.toml b/recipes/wip/text/svgbob/recipe.toml new file mode 100644 index 000000000..fa814e647 --- /dev/null +++ b/recipes/wip/text/svgbob/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ivanceras/svgbob" +[build] +template = "custom" +script = """ +cookbook_cargo_packages svgbob_cli +""" diff --git a/recipes/wip/text/syncat/recipe.toml b/recipes/wip/text/syncat/recipe.toml new file mode 100644 index 000000000..c8bf9baea --- /dev/null +++ b/recipes/wip/text/syncat/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/foxfriends/syncat" +[build] +template = "custom" +script = """ +cookbook_cargo_packages syncat +""" diff --git a/recipes/wip/text/treemd/recipe.toml b/recipes/wip/text/treemd/recipe.toml new file mode 100644 index 000000000..6d3ae01b1 --- /dev/null +++ b/recipes/wip/text/treemd/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Epistates/treemd" +[build] +template = "cargo" diff --git a/recipes/wip/text/yes-rs/recipe.toml b/recipes/wip/text/yes-rs/recipe.toml new file mode 100644 index 000000000..6d33a5380 --- /dev/null +++ b/recipes/wip/text/yes-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/jedisct1/yes-rs" +[build] +template = "cargo" diff --git a/recipes/wip/text/zed/recipe.toml b/recipes/wip/text/zed/recipe.toml new file mode 100644 index 000000000..673b6f4f5 --- /dev/null +++ b/recipes/wip/text/zed/recipe.toml @@ -0,0 +1,21 @@ +#TODO not compiled or tested +#TODO maybe missing dependencies, see https://github.com/zed-industries/zed/blob/main/script/linux#L15 +#TODO build the gui ("zed" package) once we have gpu drivers to render vulkan at decent fps +# build instructions - https://zed.dev/docs/development/linux +[source] +git = "https://github.com/zed-industries/zed" +[build] +template = "custom" +dependencies = [ + "fontconfig", + "libxkbcommon", + "openssl1", + "zstd", + "libgit2", + "sqlite3", +] +script = """ +cookbook_cargo_packages cli +mv "${COOKBOOK_STAGE}/usr/bin/cli" "${COOKBOOK_STAGE}/usr/bin/zed-cli" +#mv "${COOKBOOK_STAGE}/usr/bin/zed" "${COOKBOOK_STAGE}/usr/bin/zed-editor" +""" diff --git a/recipes/wip/text/zee/recipe.toml b/recipes/wip/text/zee/recipe.toml new file mode 100644 index 000000000..7cec4da92 --- /dev/null +++ b/recipes/wip/text/zee/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/zee-editor/zee" +[build] +template = "custom" +script = """ +cookbook_cargo_packages zee +""" diff --git a/recipes/wip/time/dispute/recipe.toml b/recipes/wip/time/dispute/recipe.toml new file mode 100644 index 000000000..4a7fc6991 --- /dev/null +++ b/recipes/wip/time/dispute/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Vinegret43/dispute" +[build] +template = "cargo" diff --git a/recipes/wip/time/litime/recipe.toml b/recipes/wip/time/litime/recipe.toml new file mode 100644 index 000000000..0c55cc211 --- /dev/null +++ b/recipes/wip/time/litime/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ikornaselur/litime" +[build] +template = "cargo" diff --git a/recipes/wip/time/rsclock/recipe.toml b/recipes/wip/time/rsclock/recipe.toml new file mode 100644 index 000000000..93c8d96bd --- /dev/null +++ b/recipes/wip/time/rsclock/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/valebes/rsClock" +[build] +template = "cargo" diff --git a/recipes/wip/time/timer-rs/recipe.toml b/recipes/wip/time/timer-rs/recipe.toml new file mode 100644 index 000000000..4a7209ca0 --- /dev/null +++ b/recipes/wip/time/timer-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/pando85/timer" +[build] +template = "custom" +script = """ +cookbook_cargo_packages timer_core +""" diff --git a/recipes/wip/time/tomotroid/recipe.toml b/recipes/wip/time/tomotroid/recipe.toml new file mode 100644 index 000000000..bab4883bf --- /dev/null +++ b/recipes/wip/time/tomotroid/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/vadoola/Tomotroid" +[build] +template = "cargo" diff --git a/recipes/wip/time/trackie/recipe.toml b/recipes/wip/time/trackie/recipe.toml new file mode 100644 index 000000000..c73549b44 --- /dev/null +++ b/recipes/wip/time/trackie/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/beatbrot/trackie" +[build] +template = "cargo" diff --git a/recipes/wip/time/worktime-tui/recipe.toml b/recipes/wip/time/worktime-tui/recipe.toml new file mode 100644 index 000000000..899bb6100 --- /dev/null +++ b/recipes/wip/time/worktime-tui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Kamyil/work-tuimer" +[build] +template = "cargo" diff --git a/recipes/wip/time/zman/recipe.toml b/recipes/wip/time/zman/recipe.toml new file mode 100644 index 000000000..0ff2a6fc9 --- /dev/null +++ b/recipes/wip/time/zman/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/azzamsa/zman" +[build] +template = "cargo" diff --git a/recipes/wip/tools/aeruginous/recipe.toml b/recipes/wip/tools/aeruginous/recipe.toml new file mode 100644 index 000000000..dcb990f30 --- /dev/null +++ b/recipes/wip/tools/aeruginous/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/kevinmatthes/aeruginous-rs" +[build] +template = "cargo" diff --git a/recipes/wip/tools/ani-cli/recipe.toml b/recipes/wip/tools/ani-cli/recipe.toml new file mode 100644 index 000000000..bac9aae43 --- /dev/null +++ b/recipes/wip/tools/ani-cli/recipe.toml @@ -0,0 +1,11 @@ +#TODO move to the "tools" category +[source] +git = "https://github.com/pystardust/ani-cli" +rev = "4a77bca5d95ae755ab5ac129c2db2025feab217b" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp "${COOKBOOK_SOURCE}"/ani-cli "${COOKBOOK_STAGE}"/usr/bin/ani-cli +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/ani-cli +""" diff --git a/recipes/wip/tools/ani-skip/recipe.toml b/recipes/wip/tools/ani-skip/recipe.toml new file mode 100644 index 000000000..7af44b1f1 --- /dev/null +++ b/recipes/wip/tools/ani-skip/recipe.toml @@ -0,0 +1,12 @@ +#TODO move to the "tools" category +[source] +git = "https://github.com/synacktraa/ani-skip" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +mkdir -pv "${COOKBOOK_STAGE}"/home/user/.config/mpv/scripts +cp "${COOKBOOK_SOURCE}"/ani-skip "${COOKBOOK_STAGE}"/usr/bin/ani-skip +cp "${COOKBOOK_SOURCE}"/skip.lua "${COOKBOOK_STAGE}"/home/user/.config/mpv/scripts +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/ani-skip +""" diff --git a/recipes/wip/tools/arrow-tools/recipe.toml b/recipes/wip/tools/arrow-tools/recipe.toml new file mode 100644 index 000000000..08d9ab157 --- /dev/null +++ b/recipes/wip/tools/arrow-tools/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/domoritz/arrow-tools" +[build] +template = "custom" +script = """ +cookbook_cargo_packages csv2arrow csv2parquet json2arrow json2parquet +""" diff --git a/recipes/wip/tools/artem/recipe.toml b/recipes/wip/tools/artem/recipe.toml new file mode 100644 index 000000000..cd4842a34 --- /dev/null +++ b/recipes/wip/tools/artem/recipe.toml @@ -0,0 +1,13 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/FineFindus/artem" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo +""" diff --git a/recipes/wip/tools/ast-grep/recipe.toml b/recipes/wip/tools/ast-grep/recipe.toml new file mode 100644 index 000000000..79c0dc33d --- /dev/null +++ b/recipes/wip/tools/ast-grep/recipe.toml @@ -0,0 +1,8 @@ +#TODO compilation error +[source] +git = "https://github.com/ast-grep/ast-grep" +[build] +template = "custom" +script = """ +cookbook_cargo_packages ast-grep +""" diff --git a/recipes/wip/tools/astc-encoder/recipe.toml b/recipes/wip/tools/astc-encoder/recipe.toml new file mode 100644 index 000000000..a599f9f59 --- /dev/null +++ b/recipes/wip/tools/astc-encoder/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# build instructions: https://github.com/ARM-software/astc-encoder/blob/main/Docs/Building.md#macos-and-linux-using-make +[source] +git = "https://github.com/ARM-software/astc-encoder" +rev = "aeece2f609db959d1c5e43e4f00bd177ea130575" +[build] +template = "cmake" diff --git a/recipes/wip/tools/astyle/recipe.toml b/recipes/wip/tools/astyle/recipe.toml new file mode 100644 index 000000000..b393bd1d0 --- /dev/null +++ b/recipes/wip/tools/astyle/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://astyle.sourceforge.net/install.html +[source] +tar = "https://sourceforge.net/projects/astyle/files/astyle/astyle%203.4/astyle-3.4.10.tar.bz2/download" +[build] +template = "cmake" diff --git a/recipes/wip/tools/atm-cli/recipe.toml b/recipes/wip/tools/atm-cli/recipe.toml new file mode 100644 index 000000000..fd176fc12 --- /dev/null +++ b/recipes/wip/tools/atm-cli/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/allthemusicllc/atm-cli" +[build] +template = "cargo" diff --git a/recipes/wip/tools/atuin/recipe.toml b/recipes/wip/tools/atuin/recipe.toml new file mode 100644 index 000000000..a384160e4 --- /dev/null +++ b/recipes/wip/tools/atuin/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/atuinsh/atuin" +[build] +template = "custom" +script = """ +cookbook_cargo_packages atuin +""" diff --git a/recipes/wip/tools/backhand/recipe.toml b/recipes/wip/tools/backhand/recipe.toml new file mode 100644 index 000000000..9d023ed63 --- /dev/null +++ b/recipes/wip/tools/backhand/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script to properly move the binary +[source] +git = "https://github.com/wcampbell0x2a/backhand" +[build] +template = "custom" +script = """ +cookbook_cargo_packages backhand +""" diff --git a/recipes/wip/tools/bacup/recipe.toml b/recipes/wip/tools/bacup/recipe.toml new file mode 100644 index 000000000..fec97a8c8 --- /dev/null +++ b/recipes/wip/tools/bacup/recipe.toml @@ -0,0 +1,6 @@ +#TODO tokio-tar crate error +#TODO create a service +[source] +git = "https://github.com/galeone/bacup" +[build] +template = "cargo" diff --git a/recipes/wip/tools/bartib/recipe.toml b/recipes/wip/tools/bartib/recipe.toml new file mode 100644 index 000000000..1a90b0df0 --- /dev/null +++ b/recipes/wip/tools/bartib/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/nikolassv/bartib" +[build] +template = "cargo" diff --git a/recipes/wip/tools/battop/recipe.toml b/recipes/wip/tools/battop/recipe.toml new file mode 100644 index 000000000..02e81de24 --- /dev/null +++ b/recipes/wip/tools/battop/recipe.toml @@ -0,0 +1,5 @@ +#TODO atty crate error (after cargo update) +[source] +git = "https://github.com/svartalf/rust-battop" +[build] +template = "cargo" diff --git a/recipes/wip/tools/bdt/recipe.toml b/recipes/wip/tools/bdt/recipe.toml new file mode 100644 index 000000000..d768d010c --- /dev/null +++ b/recipes/wip/tools/bdt/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash crate error +[source] +git = "https://github.com/datafusion-contrib/bdt" +[build] +template = "cargo" diff --git a/recipes/wip/tools/binserve/recipe.toml b/recipes/wip/tools/binserve/recipe.toml new file mode 100644 index 000000000..cefbf3b20 --- /dev/null +++ b/recipes/wip/tools/binserve/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after a patch on the ring crate) +[source] +git = "https://github.com/mufeedvh/binserve" +[build] +template = "cargo" diff --git a/recipes/wip/tools/birdy/recipe.toml b/recipes/wip/tools/birdy/recipe.toml new file mode 100644 index 000000000..a4e65bdd8 --- /dev/null +++ b/recipes/wip/tools/birdy/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/kakoc/birdy" +[build] +template = "cargo" diff --git a/recipes/wip/tools/blockish-caca/recipe.toml b/recipes/wip/tools/blockish-caca/recipe.toml new file mode 100644 index 000000000..4a238eddb --- /dev/null +++ b/recipes/wip/tools/blockish-caca/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libcaca work +[source] +git = "https://github.com/yazgoo/blockish-caca" +[build] +template = "cargo" +dependencies = [ + "libcaca", +] diff --git a/recipes/wip/tools/broot/recipe.toml b/recipes/wip/tools/broot/recipe.toml new file mode 100644 index 000000000..c41912d78 --- /dev/null +++ b/recipes/wip/tools/broot/recipe.toml @@ -0,0 +1,5 @@ +#TODO nix crate compilation error +[source] +git = "https://github.com/Canop/broot" +[build] +template = "cargo" diff --git a/recipes/wip/tools/busybox/recipe.toml b/recipes/wip/tools/busybox/recipe.toml new file mode 100644 index 000000000..58bc56afd --- /dev/null +++ b/recipes/wip/tools/busybox/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for GNU Make, see https://www.busybox.net/FAQ.html#configure +#TODO cross-compilation - https://www.busybox.net/FAQ.html#build +[source] +tar = "https://www.busybox.net/downloads/busybox-1.36.1.tar.bz2" +[build] +template = "custom" diff --git a/recipes/wip/tools/bvr/recipe.toml b/recipes/wip/tools/bvr/recipe.toml new file mode 100644 index 000000000..06cf305f6 --- /dev/null +++ b/recipes/wip/tools/bvr/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Avarel/bvr" +[build] +template = "cargo" diff --git a/recipes/wip/tools/byteblitz/recipe.toml b/recipes/wip/tools/byteblitz/recipe.toml new file mode 100644 index 000000000..63113dab9 --- /dev/null +++ b/recipes/wip/tools/byteblitz/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/noahra/byteblitz" +[build] +template = "cargo" diff --git a/recipes/wip/tools/caesium/recipe.toml b/recipes/wip/tools/caesium/recipe.toml new file mode 100644 index 000000000..457b418f5 --- /dev/null +++ b/recipes/wip/tools/caesium/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Lymphatus/caesium-clt" +[build] +template = "cargo" diff --git a/recipes/wip/tools/caligula/recipe.toml b/recipes/wip/tools/caligula/recipe.toml new file mode 100644 index 000000000..1afbb95a6 --- /dev/null +++ b/recipes/wip/tools/caligula/recipe.toml @@ -0,0 +1,5 @@ +#TODO process_path crate error +[source] +git = "https://github.com/ifd3f/caligula" +[build] +template = "cargo" diff --git a/recipes/wip/tools/carbonyl/recipe.toml b/recipes/wip/tools/carbonyl/recipe.toml new file mode 100644 index 000000000..eb7814089 --- /dev/null +++ b/recipes/wip/tools/carbonyl/recipe.toml @@ -0,0 +1,11 @@ +#TODO make nss work +#TODO require Chromium building +[source] +git = "https://github.com/fathyb/carbonyl" +[build] +template = "cargo" +dependencies = [ + "nss", + "fontconfig", + "expat", +] diff --git a/recipes/wip/tools/cb/recipe.toml b/recipes/wip/tools/cb/recipe.toml new file mode 100644 index 000000000..ebb8b64c7 --- /dev/null +++ b/recipes/wip/tools/cb/recipe.toml @@ -0,0 +1,5 @@ +#TODO discover how to cross-compile: https://github.com/yaa110/cb#build-manually +[source] +git = "https://github.com/yaa110/cb" +[build] +template = "custom" diff --git a/recipes/wip/tools/checkpwn/recipe.toml b/recipes/wip/tools/checkpwn/recipe.toml new file mode 100644 index 000000000..9a3c5705d --- /dev/null +++ b/recipes/wip/tools/checkpwn/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after patched ring crate) +[source] +git = "https://github.com/brycx/checkpwn" +[build] +template = "cargo" diff --git a/recipes/wip/tools/choose/recipe.toml b/recipes/wip/tools/choose/recipe.toml new file mode 100644 index 000000000..cc212bdb5 --- /dev/null +++ b/recipes/wip/tools/choose/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/theryangeary/choose" +[build] +template = "cargo" diff --git a/recipes/wip/tools/chromazone/recipe.toml b/recipes/wip/tools/chromazone/recipe.toml new file mode 100644 index 000000000..0e3be8f0e --- /dev/null +++ b/recipes/wip/tools/chromazone/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/matze/chromazone" +[build] +template = "cargo" diff --git a/recipes/wip/tools/clipcat/recipe.toml b/recipes/wip/tools/clipcat/recipe.toml new file mode 100644 index 000000000..5aadd2d03 --- /dev/null +++ b/recipes/wip/tools/clipcat/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/xrelkd/clipcat" +[build] +template = "custom" +script = """ +cookbook_cargo_packages clipcatd clipcatctl clipcat-menu +""" diff --git a/recipes/wip/tools/clipshare-desktop/recipe.toml b/recipes/wip/tools/clipshare-desktop/recipe.toml new file mode 100644 index 000000000..15b3688e3 --- /dev/null +++ b/recipes/wip/tools/clipshare-desktop/recipe.toml @@ -0,0 +1,11 @@ +#TODO make the xdotool dependency work +[source] +git = "https://github.com/RastislavKish/clipshare" +[build] +template = "custom" +dependencies = [ + "xdotool", +] +script = """ +cookbook_cargo_packages desktop_client +""" diff --git a/recipes/wip/tools/clipshare-server/recipe.toml b/recipes/wip/tools/clipshare-server/recipe.toml new file mode 100644 index 000000000..45c5ff71f --- /dev/null +++ b/recipes/wip/tools/clipshare-server/recipe.toml @@ -0,0 +1,11 @@ +#TODO probably wrong script, see https://github.com/RastislavKish/clipshare#building +[source] +git = "https://github.com/RastislavKish/clipshare" +[build] +template = "custom" +dependencies = [ + "xdotool", +] +script = """ +cookbook_cargo_packages server +""" diff --git a/recipes/wip/tools/clog-cli/recipe.toml b/recipes/wip/tools/clog-cli/recipe.toml new file mode 100644 index 000000000..5ca5e3902 --- /dev/null +++ b/recipes/wip/tools/clog-cli/recipe.toml @@ -0,0 +1,5 @@ +#TODO rustc-serialize crate error (after cargo update) +[source] +git = "https://github.com/clog-tool/clog-cli" +[build] +template = "cargo" diff --git a/recipes/wip/tools/conceal/recipe.toml b/recipes/wip/tools/conceal/recipe.toml new file mode 100644 index 000000000..4d6aa7a4f --- /dev/null +++ b/recipes/wip/tools/conceal/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/TD-Sky/conceal" +[build] +template = "cargo" diff --git a/recipes/wip/tools/conserve/recipe.toml b/recipes/wip/tools/conserve/recipe.toml new file mode 100644 index 000000000..d46236ce6 --- /dev/null +++ b/recipes/wip/tools/conserve/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/sourcefrog/conserve" +[build] +template = "cargo" diff --git a/recipes/wip/tools/counts/recipe.toml b/recipes/wip/tools/counts/recipe.toml new file mode 100644 index 000000000..092b2a686 --- /dev/null +++ b/recipes/wip/tools/counts/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/nnethercote/counts" +[build] +template = "cargo" diff --git a/recipes/wip/tools/cpuminer-opt/recipe.toml b/recipes/wip/tools/cpuminer-opt/recipe.toml new file mode 100644 index 000000000..b3910305e --- /dev/null +++ b/recipes/wip/tools/cpuminer-opt/recipe.toml @@ -0,0 +1,13 @@ +#TODO maybe wrong template, see https://github.com/JayDDee/cpuminer-opt/wiki/Compiling-from-source +#TODO fix jansson dependency +[source] +git = "https://github.com/JayDDee/cpuminer-opt" +rev = "9d3a46c3551655f862db74a195e769fe86266903" +[build] +template = "configure" +dependencies = [ + "curl", + "jansson", + "libgmp", + "zlib", +] diff --git a/recipes/wip/tools/crunchy-cli/recipe.toml b/recipes/wip/tools/crunchy-cli/recipe.toml new file mode 100644 index 000000000..d651b3a0e --- /dev/null +++ b/recipes/wip/tools/crunchy-cli/recipe.toml @@ -0,0 +1,8 @@ +#TODO fs2 crate error +[source] +git = "https://github.com/crunchy-labs/crunchy-cli" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/cube-timer/recipe.toml b/recipes/wip/tools/cube-timer/recipe.toml new file mode 100644 index 000000000..bb95b0e59 --- /dev/null +++ b/recipes/wip/tools/cube-timer/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/paarthmadan/cube" +[build] +template = "cargo" diff --git a/recipes/wip/tools/cute/recipe.toml b/recipes/wip/tools/cute/recipe.toml new file mode 100644 index 000000000..f22dbe075 --- /dev/null +++ b/recipes/wip/tools/cute/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/PThorpe92/CuTE" +[build] +template = "custom" +dependencies = [ + "openssl3", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/tools/czkawka/recipe.toml b/recipes/wip/tools/czkawka/recipe.toml new file mode 100644 index 000000000..95c7b88fc --- /dev/null +++ b/recipes/wip/tools/czkawka/recipe.toml @@ -0,0 +1,8 @@ +#TODO Compiled but not tested +[source] +git = "https://github.com/qarmin/czkawka" +[build] +template = "custom" +script = """ +cookbook_cargo_packages czkawka_cli +""" diff --git a/recipes/wip/tools/daktilo/recipe.toml b/recipes/wip/tools/daktilo/recipe.toml new file mode 100644 index 000000000..94f77363c --- /dev/null +++ b/recipes/wip/tools/daktilo/recipe.toml @@ -0,0 +1,5 @@ +#TODO rdev crate error +[source] +git = "https://github.com/orhun/daktilo" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dead-ringer/recipe.toml b/recipes/wip/tools/dead-ringer/recipe.toml new file mode 100644 index 000000000..118e56eb1 --- /dev/null +++ b/recipes/wip/tools/dead-ringer/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ztroop/dead-ringer" +[build] +template = "cargo" diff --git a/recipes/wip/tools/delta/recipe.toml b/recipes/wip/tools/delta/recipe.toml new file mode 100644 index 000000000..b0850c54c --- /dev/null +++ b/recipes/wip/tools/delta/recipe.toml @@ -0,0 +1,11 @@ +#TODO make the "less" dependency work +[source] +git = "https://github.com/dandavison/delta" +[build] +template = "custom" +dependencies = [ + "less", +] +script = """ +cookbook_cargo_packages git-delta +""" diff --git a/recipes/wip/tools/desed/recipe.toml b/recipes/wip/tools/desed/recipe.toml new file mode 100644 index 000000000..55224c7e1 --- /dev/null +++ b/recipes/wip/tools/desed/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/SoptikHa2/desed" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dfm/recipe.toml b/recipes/wip/tools/dfm/recipe.toml new file mode 100644 index 000000000..8b19829d5 --- /dev/null +++ b/recipes/wip/tools/dfm/recipe.toml @@ -0,0 +1,5 @@ +#TODO port to redox +[source] +git = "https://github.com/chasinglogic/dfm" +[build] +template = "cargo" diff --git a/recipes/wip/tools/diffr/recipe.toml b/recipes/wip/tools/diffr/recipe.toml new file mode 100644 index 000000000..1d0abdaec --- /dev/null +++ b/recipes/wip/tools/diffr/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/mookid/diffr" +[build] +template = "cargo" diff --git a/recipes/wip/tools/diffutils-rs/recipe.toml b/recipes/wip/tools/diffutils-rs/recipe.toml new file mode 100644 index 000000000..f6edab13e --- /dev/null +++ b/recipes/wip/tools/diffutils-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/uutils/diffutils" +[build] +template = "cargo" diff --git a/recipes/wip/tools/diffy/recipe.toml b/recipes/wip/tools/diffy/recipe.toml new file mode 100644 index 000000000..91eaa010a --- /dev/null +++ b/recipes/wip/tools/diffy/recipe.toml @@ -0,0 +1,9 @@ +#TODO add a command to properly move the executable +#TODO compiled but not tested +[source] +git = "https://github.com/bmwill/diffy" +[build] +template = "custom" +script = """ +cookbook_cargo_packages diffy +""" diff --git a/recipes/wip/tools/dim/recipe.toml b/recipes/wip/tools/dim/recipe.toml new file mode 100644 index 000000000..8c092578f --- /dev/null +++ b/recipes/wip/tools/dim/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing script for building, see https://github.com/Dusk-Labs/dim#running-from-source +#TODO probably missing dependencies +[source] +git = "https://github.com/Dusk-Labs/dim" +[build] +template = "custom" +dependencies = [ + "sqlite3", + "openssl1", + "ffmpeg6", +] diff --git a/recipes/wip/tools/dirscan/recipe.toml b/recipes/wip/tools/dirscan/recipe.toml new file mode 100644 index 000000000..34a075201 --- /dev/null +++ b/recipes/wip/tools/dirscan/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/orf/dirscan" +[build] +template = "cargo" diff --git a/recipes/wip/tools/diskonaut/recipe.toml b/recipes/wip/tools/diskonaut/recipe.toml new file mode 100644 index 000000000..91f898b83 --- /dev/null +++ b/recipes/wip/tools/diskonaut/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate (after cargo update) +[source] +git = "https://github.com/imsnif/diskonaut" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dispatch/recipe.toml b/recipes/wip/tools/dispatch/recipe.toml new file mode 100644 index 000000000..ac547168f --- /dev/null +++ b/recipes/wip/tools/dispatch/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/brianyu28/dispatch" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/dog-dns/recipe.toml b/recipes/wip/tools/dog-dns/recipe.toml new file mode 100644 index 000000000..e3304a538 --- /dev/null +++ b/recipes/wip/tools/dog-dns/recipe.toml @@ -0,0 +1,13 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/ogham/dog" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo +""" diff --git a/recipes/wip/tools/dotr/recipe.toml b/recipes/wip/tools/dotr/recipe.toml new file mode 100644 index 000000000..4e865387c --- /dev/null +++ b/recipes/wip/tools/dotr/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/dpc/dotr" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dotter/recipe.toml b/recipes/wip/tools/dotter/recipe.toml new file mode 100644 index 000000000..c3bcede25 --- /dev/null +++ b/recipes/wip/tools/dotter/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/SuperCuber/dotter" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dply/recipe.toml b/recipes/wip/tools/dply/recipe.toml new file mode 100644 index 000000000..9db02c740 --- /dev/null +++ b/recipes/wip/tools/dply/recipe.toml @@ -0,0 +1,5 @@ +#TODO jemalloc-sys crate error +[source] +git = "https://github.com/vincev/dply-rs" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dprint/recipe.toml b/recipes/wip/tools/dprint/recipe.toml new file mode 100644 index 000000000..4077bad0c --- /dev/null +++ b/recipes/wip/tools/dprint/recipe.toml @@ -0,0 +1,8 @@ +#TODO region crate error +[source] +git = "https://github.com/dprint/dprint" +[build] +template = "custom" +script = """ +cookbook_cargo_packages dprint +""" diff --git a/recipes/wip/tools/dra-cla/recipe.toml b/recipes/wip/tools/dra-cla/recipe.toml new file mode 100644 index 000000000..aaf4c0874 --- /dev/null +++ b/recipes/wip/tools/dra-cla/recipe.toml @@ -0,0 +1,10 @@ +#TODO promote +[source] +git = "https://github.com/CoolnsX/dra-cla" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp "${COOKBOOK_SOURCE}"/dra-cla "${COOKBOOK_STAGE}"/usr/bin/dra-cla +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/dra-cla +""" diff --git a/recipes/wip/tools/dua/recipe.toml b/recipes/wip/tools/dua/recipe.toml new file mode 100644 index 000000000..00d9deb0e --- /dev/null +++ b/recipes/wip/tools/dua/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Byron/dua-cli" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dui/recipe.toml b/recipes/wip/tools/dui/recipe.toml new file mode 100644 index 000000000..b4fac2c68 --- /dev/null +++ b/recipes/wip/tools/dui/recipe.toml @@ -0,0 +1,5 @@ +#TODO Compiled but not tested +[source] +git = "https://gitlab.com/GregOwen/dui" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dura/recipe.toml b/recipes/wip/tools/dura/recipe.toml new file mode 100644 index 000000000..c0b810ef8 --- /dev/null +++ b/recipes/wip/tools/dura/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libgit2 dependency work +[source] +git = "https://github.com/tkellogg/dura" +[build] +template = "cargo" +dependencies = [ + "libgit2", +] diff --git a/recipes/wip/tools/dust/recipe.toml b/recipes/wip/tools/dust/recipe.toml new file mode 100644 index 000000000..ecc1b10ba --- /dev/null +++ b/recipes/wip/tools/dust/recipe.toml @@ -0,0 +1,5 @@ +#TODO working but don't draw the size bars +[source] +git = "https://github.com/bootandy/dust" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dutree/recipe.toml b/recipes/wip/tools/dutree/recipe.toml new file mode 100644 index 000000000..61bbb15e5 --- /dev/null +++ b/recipes/wip/tools/dutree/recipe.toml @@ -0,0 +1,5 @@ +#TODO program source code error (after cargo update) +[source] +git = "https://github.com/nachoparker/dutree" +[build] +template = "cargo" diff --git a/recipes/wip/tools/dysk/recipe.toml b/recipes/wip/tools/dysk/recipe.toml new file mode 100644 index 000000000..60e551ba6 --- /dev/null +++ b/recipes/wip/tools/dysk/recipe.toml @@ -0,0 +1,5 @@ +#TODO nix crate error +[source] +git = "https://github.com/Canop/dysk" +[build] +template = "cargo" diff --git a/recipes/wip/tools/emplace/recipe.toml b/recipes/wip/tools/emplace/recipe.toml new file mode 100644 index 000000000..52384f6a1 --- /dev/null +++ b/recipes/wip/tools/emplace/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/tversteeg/emplace" +[build] +template = "cargo" diff --git a/recipes/wip/tools/enchant/recipe.toml b/recipes/wip/tools/enchant/recipe.toml new file mode 100644 index 000000000..0f45a1fb1 --- /dev/null +++ b/recipes/wip/tools/enchant/recipe.toml @@ -0,0 +1,9 @@ +#TODO can't find glib +[source] +tar = "https://github.com/AbiWord/enchant/releases/download/v2.6.3/enchant-2.6.3.tar.gz" +[build] +template = "configure" +dependencies = [ + "glib", + "pcre", +] diff --git a/recipes/wip/tools/envio/recipe.toml b/recipes/wip/tools/envio/recipe.toml new file mode 100644 index 000000000..6cff5cd1e --- /dev/null +++ b/recipes/wip/tools/envio/recipe.toml @@ -0,0 +1,5 @@ +#TODO require rustc 1.75 or newer +[source] +git = "https://github.com/envio-cli/envio" +[build] +template = "cargo" diff --git a/recipes/wip/tools/epub2txt/recipe.toml b/recipes/wip/tools/epub2txt/recipe.toml new file mode 100644 index 000000000..ca3a78ade --- /dev/null +++ b/recipes/wip/tools/epub2txt/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/quininer/epub2txt" +[build] +template = "cargo" diff --git a/recipes/wip/tools/erdtree/recipe.toml b/recipes/wip/tools/erdtree/recipe.toml new file mode 100644 index 000000000..36c21ad71 --- /dev/null +++ b/recipes/wip/tools/erdtree/recipe.toml @@ -0,0 +1,5 @@ +#TODO program source code error +[source] +git = "https://github.com/solidiquis/erdtree" +[build] +template = "cargo" diff --git a/recipes/wip/tools/espanso/recipe.toml b/recipes/wip/tools/espanso/recipe.toml new file mode 100644 index 000000000..875badf6f --- /dev/null +++ b/recipes/wip/tools/espanso/recipe.toml @@ -0,0 +1,28 @@ +#TODO not compiled or tested +# build instructions: https://espanso.org/docs/install/linux/#x11-compile +[source] +git = "https://github.com/espanso/espanso" +[build] +template = "custom" +dependencies = [ + "libxkbcommon", + "dbus", + "wxwidgets-gtk3", + "openssl3", + "libx11", + "libxtst", +] +script = """ +DYNAMIC_INIT +package=espanso +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${package}" \ + --release \ + --no-default-features \ + --features=vendored-tls,modulo + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${package}" \ + "${COOKBOOK_STAGE}/usr/bin/${package}" +""" diff --git a/recipes/wip/tools/eureka/recipe.toml b/recipes/wip/tools/eureka/recipe.toml new file mode 100644 index 000000000..7f376b93d --- /dev/null +++ b/recipes/wip/tools/eureka/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/simeg/eureka" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/eva/recipe.toml b/recipes/wip/tools/eva/recipe.toml new file mode 100644 index 000000000..076108f66 --- /dev/null +++ b/recipes/wip/tools/eva/recipe.toml @@ -0,0 +1,5 @@ +#TODO rustyline crate error +[source] +git = "https://github.com/nerdypepper/eva" +[build] +template = "cargo" diff --git a/recipes/wip/tools/exa/recipe.toml b/recipes/wip/tools/exa/recipe.toml new file mode 100644 index 000000000..c45f909bc --- /dev/null +++ b/recipes/wip/tools/exa/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate (after cargo update) +[source] +git = "https://github.com/ogham/exa" +[build] +template = "cargo" diff --git a/recipes/wip/tools/exhaust/recipe.toml b/recipes/wip/tools/exhaust/recipe.toml new file mode 100644 index 000000000..7a9b82549 --- /dev/null +++ b/recipes/wip/tools/exhaust/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate +[source] +git = "https://github.com/heyrict/exhaust" +[build] +template = "cargo" diff --git a/recipes/wip/tools/exuberant-ctags/recipe.toml b/recipes/wip/tools/exuberant-ctags/recipe.toml new file mode 100644 index 000000000..cfb512f6a --- /dev/null +++ b/recipes/wip/tools/exuberant-ctags/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error - permission denied +[source] +tar = "https://sourceforge.net/projects/ctags/files/ctags/5.8/ctags-5.8.tar.gz/download" +[build] +template = "configure" diff --git a/recipes/wip/tools/eza/recipe.toml b/recipes/wip/tools/eza/recipe.toml new file mode 100644 index 000000000..e746d395b --- /dev/null +++ b/recipes/wip/tools/eza/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate +[source] +git = "https://github.com/eza-community/eza" +[build] +template = "cargo" diff --git a/recipes/wip/tools/fclones/recipe.toml b/recipes/wip/tools/fclones/recipe.toml new file mode 100644 index 000000000..ecde7ce92 --- /dev/null +++ b/recipes/wip/tools/fclones/recipe.toml @@ -0,0 +1,8 @@ +#TODO file-owner crate error +[source] +git = "https://github.com/pkolaczk/fclones" +[build] +template = "custom" +script = """ +cookbook_cargo_packages fclones +""" diff --git a/recipes/wip/tools/felix/recipe.toml b/recipes/wip/tools/felix/recipe.toml new file mode 100644 index 000000000..fff285084 --- /dev/null +++ b/recipes/wip/tools/felix/recipe.toml @@ -0,0 +1,5 @@ +#TODO replace the terminal prompt with nothing on execution +[source] +git = "https://github.com/kyoheiu/felix" +[build] +template = "cargo" diff --git a/recipes/wip/tools/fennec/recipe.toml b/recipes/wip/tools/fennec/recipe.toml new file mode 100644 index 000000000..e6213efc5 --- /dev/null +++ b/recipes/wip/tools/fennec/recipe.toml @@ -0,0 +1,5 @@ +#TODO update ring version (after cargo update) +[source] +git = "https://github.com/AbdulRhmanAlfaifi/Fennec" +[build] +template = "cargo" diff --git a/recipes/wip/tools/ffizer/recipe.toml b/recipes/wip/tools/ffizer/recipe.toml new file mode 100644 index 000000000..f01600567 --- /dev/null +++ b/recipes/wip/tools/ffizer/recipe.toml @@ -0,0 +1,11 @@ +#TODO libssh2-sys crate error +[source] +git = "https://github.com/ffizer/ffizer" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo --features cli +""" diff --git a/recipes/wip/tools/file/recipe.toml b/recipes/wip/tools/file/recipe.toml new file mode 100644 index 000000000..b8bc7572f --- /dev/null +++ b/recipes/wip/tools/file/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://astron.com/pub/file/file-5.45.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/tools/findutils-rs/recipe.toml b/recipes/wip/tools/findutils-rs/recipe.toml new file mode 100644 index 000000000..41790eb6b --- /dev/null +++ b/recipes/wip/tools/findutils-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/uutils/findutils" +[build] +template = "cargo" diff --git a/recipes/wip/tools/flameshot/recipe.toml b/recipes/wip/tools/flameshot/recipe.toml new file mode 100644 index 000000000..607a3b1f2 --- /dev/null +++ b/recipes/wip/tools/flameshot/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://flameshot.org/docs/installation/source-code/#compilation +[source] +git = "https://github.com/flameshot-org/flameshot" +rev = "70be63d478a271da549597d69bd4868607c0a395" +[build] +template = "cmake" +dependencies = [ + "qt5-base", + "qt5-tools", + "qt5-svg", +] diff --git a/recipes/wip/tools/flowtime/recipe.toml b/recipes/wip/tools/flowtime/recipe.toml new file mode 100644 index 000000000..efbc1e5f2 --- /dev/null +++ b/recipes/wip/tools/flowtime/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +# build instructions: https://github.com/Diego-Ivan/Flowtime#building-from-source +[source] +git = "https://github.com/Diego-Ivan/Flowtime" +rev = "2cb1160f7f61ec0a6add292deca38a3150336f03" +[build] +template = "meson" +dependencies = [ + "gtk4", + "libxml2", + "libadwaita", +] diff --git a/recipes/wip/tools/fselect/recipe.toml b/recipes/wip/tools/fselect/recipe.toml new file mode 100644 index 000000000..53936afcc --- /dev/null +++ b/recipes/wip/tools/fselect/recipe.toml @@ -0,0 +1,8 @@ +#TODO make the mimalloc dependency work +[source] +git = "https://github.com/jhspetersson/fselect" +[build] +template = "cargo" +dependencies = [ + "mimalloc", +] diff --git a/recipes/wip/tools/fuc/recipe.toml b/recipes/wip/tools/fuc/recipe.toml new file mode 100644 index 000000000..8b42ad059 --- /dev/null +++ b/recipes/wip/tools/fuc/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/SUPERCILEX/fuc" +[build] +template = "custom" +script = """ +cookbook_cargo_packages cpz rmz +""" diff --git a/recipes/wip/tools/fuga/recipe.toml b/recipes/wip/tools/fuga/recipe.toml new file mode 100644 index 000000000..1376c997f --- /dev/null +++ b/recipes/wip/tools/fuga/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/liebe-magi/fuga" +[build] +template = "custom" +script = """ +cookbook_cargo_packages fuga +""" diff --git a/recipes/wip/tools/funzzy/recipe.toml b/recipes/wip/tools/funzzy/recipe.toml new file mode 100644 index 000000000..37ee569b8 --- /dev/null +++ b/recipes/wip/tools/funzzy/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/cristianoliveira/funzzy" +[build] +template = "cargo" diff --git a/recipes/wip/tools/fzf-make/recipe.toml b/recipes/wip/tools/fzf-make/recipe.toml new file mode 100644 index 000000000..1249c56aa --- /dev/null +++ b/recipes/wip/tools/fzf-make/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash and ioctl-rs crates error +[source] +git = "https://github.com/kyu08/fzf-make" +[build] +template = "cargo" diff --git a/recipes/wip/tools/gengo/recipe.toml b/recipes/wip/tools/gengo/recipe.toml new file mode 100644 index 000000000..5403ffa76 --- /dev/null +++ b/recipes/wip/tools/gengo/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script to properly move the binary +[source] +git = "https://github.com/spenserblack/gengo" +[build] +template = "custom" +script = """ +cookbook_cargo_packages gengo +""" diff --git a/recipes/wip/tools/germ/recipe.toml b/recipes/wip/tools/germ/recipe.toml new file mode 100644 index 000000000..c3a582da8 --- /dev/null +++ b/recipes/wip/tools/germ/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/volks73/germ" +[build] +template = "cargo" diff --git a/recipes/wip/tools/gifski/recipe.toml b/recipes/wip/tools/gifski/recipe.toml new file mode 100644 index 000000000..71e4991c1 --- /dev/null +++ b/recipes/wip/tools/gifski/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ImageOptim/gifski" +[build] +template = "cargo" diff --git a/recipes/wip/tools/gnu-radio/recipe.toml b/recipes/wip/tools/gnu-radio/recipe.toml new file mode 100644 index 000000000..048e48e61 --- /dev/null +++ b/recipes/wip/tools/gnu-radio/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +# build instructions: https://wiki.gnuradio.org/index.php?title=LinuxInstall#For_GNU_Radio_3.10,_3.9,_and_Main_Branch +# probably missing dependencies, see https://wiki.gnuradio.org/index.php?title=UbuntuInstall#Install_Dependencies +[source] +git = "https://github.com/gnuradio/gnuradio" +rev = "bd928539d9eaa73736f8381cd2e60953a0eb8cb8" +[build] +template = "cmake" +dependencies = [ + "volk", + "boost", + "libgmp", + "fftw", + "sdl1", + "qt5-base", + "libusb", + "libevdev", +] diff --git a/recipes/wip/tools/gnuplot/recipe.toml b/recipes/wip/tools/gnuplot/recipe.toml new file mode 100644 index 000000000..465bc9aef --- /dev/null +++ b/recipes/wip/tools/gnuplot/recipe.toml @@ -0,0 +1,5 @@ +#TODO determine dependencies +[source] +tar = "https://sourceforge.net/projects/gnuplot/files/gnuplot/5.4.10/gnuplot-5.4.10.tar.gz/download" +[build] +template = "configure" diff --git a/recipes/wip/tools/goldboot/recipe.toml b/recipes/wip/tools/goldboot/recipe.toml new file mode 100644 index 000000000..b9faf4a00 --- /dev/null +++ b/recipes/wip/tools/goldboot/recipe.toml @@ -0,0 +1,8 @@ +#TODO use a data type that don't download the private git submodules +[source] +git = "https://github.com/fossable/goldboot" +[build] +template = "custom" +script = """ +cookbook_cargo_packages goldboot +""" diff --git a/recipes/wip/tools/goxel/recipe.toml b/recipes/wip/tools/goxel/recipe.toml new file mode 100644 index 000000000..a54f0fd95 --- /dev/null +++ b/recipes/wip/tools/goxel/recipe.toml @@ -0,0 +1,10 @@ +#TODO missing script for the SCons, see https://github.com/guillaumechereau/goxel#linuxbsd +[source] +git = "https://github.com/guillaumechereau/goxel" +rev = "4cdf7bc49cbfd87e60692f49483ea60271729845" +[build] +template = "custom" +dependencies = [ + "gtk3", + "glfw3", +] diff --git a/recipes/wip/tools/gpg-tui/recipe.toml b/recipes/wip/tools/gpg-tui/recipe.toml new file mode 100644 index 000000000..2c6acf515 --- /dev/null +++ b/recipes/wip/tools/gpg-tui/recipe.toml @@ -0,0 +1,10 @@ +#TODO make dependencies work +[source] +git = "https://github.com/orhun/gpg-tui" +[build] +template = "cargo" +dependencies = [ + "gnupg", + "gpgme", + "libgpg-error", +] diff --git a/recipes/wip/tools/gphoto2/recipe.toml b/recipes/wip/tools/gphoto2/recipe.toml new file mode 100644 index 000000000..c56c36ba6 --- /dev/null +++ b/recipes/wip/tools/gphoto2/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libgphoto2 work +[source] +tar = "https://sourceforge.net/projects/gphoto/files/gphoto/2.5.28/gphoto2-2.5.28.tar.xz/download" +[build] +template = "configure" +dependencies = [ + "libgphoto2", +] diff --git a/recipes/wip/tools/gping/recipe.toml b/recipes/wip/tools/gping/recipe.toml new file mode 100644 index 000000000..848f4a7d6 --- /dev/null +++ b/recipes/wip/tools/gping/recipe.toml @@ -0,0 +1,8 @@ +#TODO program source code error +[source] +git = "https://github.com/orf/gping" +[build] +template = "custom" +script = """ +cookbook_cargo_packages gping +""" diff --git a/recipes/wip/tools/gptman/recipe.toml b/recipes/wip/tools/gptman/recipe.toml new file mode 100644 index 000000000..8f39ae249 --- /dev/null +++ b/recipes/wip/tools/gptman/recipe.toml @@ -0,0 +1,8 @@ +#TODO outdated redox_syscall crate +[source] +git = "https://github.com/rust-disk-partition-management/gptman" +[build] +template = "custom" +script = """ +cookbook_cargo --features cli +""" diff --git a/recipes/wip/tools/gptube-cli/recipe.toml b/recipes/wip/tools/gptube-cli/recipe.toml new file mode 100644 index 000000000..098bdd20f --- /dev/null +++ b/recipes/wip/tools/gptube-cli/recipe.toml @@ -0,0 +1,5 @@ +#TODO Seems to search for yt-dlp, see https://github.com/ZmoleCristian/gptube-cli/blob/main/Makefile +[source] +git = "https://github.com/ZmoleCristian/gptube-cli" +[build] +template = "cargo" diff --git a/recipes/wip/tools/grex/recipe.toml b/recipes/wip/tools/grex/recipe.toml new file mode 100644 index 000000000..e3d11bf82 --- /dev/null +++ b/recipes/wip/tools/grex/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/pemistahl/grex" +[build] +template = "cargo" diff --git a/recipes/wip/tools/groff/recipe.toml b/recipes/wip/tools/groff/recipe.toml new file mode 100644 index 000000000..b851b18d3 --- /dev/null +++ b/recipes/wip/tools/groff/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error - port fseterr.c +[source] +tar = "https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/tools/guix/recipe.toml b/recipes/wip/tools/guix/recipe.toml new file mode 100644 index 000000000..3835ee8ad --- /dev/null +++ b/recipes/wip/tools/guix/recipe.toml @@ -0,0 +1,10 @@ +#TODO fix libgcrypt +#TODO maybe missing dependencies, see https://guix.gnu.org/manual/en/html_node/Requirements.html +[source] +tar = "https://ftpmirror.gnu.org/gnu/guix/guix-1.4.0.tar.gz" +[build] +template = "configure" +dependencies = [ + "libgcrypt", + "sqlite3", +] diff --git a/recipes/wip/tools/halp/recipe.toml b/recipes/wip/tools/halp/recipe.toml new file mode 100644 index 000000000..c0dcf76c7 --- /dev/null +++ b/recipes/wip/tools/halp/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/orhun/halp" +[build] +template = "cargo" diff --git a/recipes/wip/tools/hawkeye/recipe.toml b/recipes/wip/tools/hawkeye/recipe.toml new file mode 100644 index 000000000..acdd976cd --- /dev/null +++ b/recipes/wip/tools/hawkeye/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +#TODO add a command to properly move the executable +[source] +git = "https://github.com/korandoru/hawkeye" +[build] +template = "custom" +script = """ +cookbook_cargo_packages hawkeye hawkeye-fmt +""" diff --git a/recipes/wip/tools/haylxon/recipe.toml b/recipes/wip/tools/haylxon/recipe.toml new file mode 100644 index 000000000..cbcf16274 --- /dev/null +++ b/recipes/wip/tools/haylxon/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/pwnwriter/haylxon" +[build] +template = "cargo" diff --git a/recipes/wip/tools/himalaya/recipe.toml b/recipes/wip/tools/himalaya/recipe.toml new file mode 100644 index 000000000..f4de53068 --- /dev/null +++ b/recipes/wip/tools/himalaya/recipe.toml @@ -0,0 +1,8 @@ +#TODO xdg-home crate error (after a patch on ring) +[source] +git = "https://github.com/soywod/himalaya" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/hired/recipe.toml b/recipes/wip/tools/hired/recipe.toml new file mode 100644 index 000000000..a2611dd4a --- /dev/null +++ b/recipes/wip/tools/hired/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/sidju/hired" +[build] +template = "cargo" diff --git a/recipes/wip/tools/hoard/recipe.toml b/recipes/wip/tools/hoard/recipe.toml new file mode 100644 index 000000000..6377a00c7 --- /dev/null +++ b/recipes/wip/tools/hoard/recipe.toml @@ -0,0 +1,8 @@ +#TODO aws-lc-sys crate error +[source] +git = "https://github.com/Hyde46/hoard" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/horsetab/recipe.toml b/recipes/wip/tools/horsetab/recipe.toml new file mode 100644 index 000000000..203af168d --- /dev/null +++ b/recipes/wip/tools/horsetab/recipe.toml @@ -0,0 +1,8 @@ +#TODO rdev crate error +[source] +git = "https://github.com/ChrisVilches/horsetab" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/humphrey/recipe.toml b/recipes/wip/tools/humphrey/recipe.toml new file mode 100644 index 000000000..a09436895 --- /dev/null +++ b/recipes/wip/tools/humphrey/recipe.toml @@ -0,0 +1,17 @@ +#TODO Bash can't detect the "--all-features" flag on the script +[source] +git = "https://github.com/w-henderson/Humphrey" +[build] +template = "custom" +script = """ +binary=humphrey +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --bin "${binary}" \ + --release + --all-features + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${binary}" \ + "${COOKBOOK_STAGE}/usr/bin/${binary}" +""" diff --git a/recipes/wip/tools/hwatch/recipe.toml b/recipes/wip/tools/hwatch/recipe.toml new file mode 100644 index 000000000..a11f16690 --- /dev/null +++ b/recipes/wip/tools/hwatch/recipe.toml @@ -0,0 +1,5 @@ +#TODO async-io crate error (after cargo update) +[source] +git = "https://github.com/blacknon/hwatch" +[build] +template = "cargo" diff --git a/recipes/wip/tools/imager/recipe.toml b/recipes/wip/tools/imager/recipe.toml new file mode 100644 index 000000000..30c4fe6be --- /dev/null +++ b/recipes/wip/tools/imager/recipe.toml @@ -0,0 +1,12 @@ +#TODO webp-dev crate error +[source] +git = "https://github.com/imager-io/imager" +[build] +template = "custom" +dependencies = [ + "xz", + "openssl1", +] +script = """ +cookbook_cargo_packages imager +""" diff --git a/recipes/wip/tools/inlyne/recipe.toml b/recipes/wip/tools/inlyne/recipe.toml new file mode 100644 index 000000000..13c6803fe --- /dev/null +++ b/recipes/wip/tools/inlyne/recipe.toml @@ -0,0 +1,7 @@ +#TODO ucred::get_peer_cred +#TODO nix::sys::socket +#TODO cmsg_space! +[source] +git = "https://github.com/trimental/inlyne" +[build] +template = "cargo" \ No newline at end of file diff --git a/recipes/wip/tools/innernet-cli/recipe.toml b/recipes/wip/tools/innernet-cli/recipe.toml new file mode 100644 index 000000000..07405ab2a --- /dev/null +++ b/recipes/wip/tools/innernet-cli/recipe.toml @@ -0,0 +1,8 @@ +#TODO shared crate error +[source] +git = "https://github.com/tonarino/innernet" +[build] +template = "custom" +script = """ +cookbook_cargo_packages client +""" diff --git a/recipes/wip/tools/innernet-server/recipe.toml b/recipes/wip/tools/innernet-server/recipe.toml new file mode 100644 index 000000000..71f9f5ee8 --- /dev/null +++ b/recipes/wip/tools/innernet-server/recipe.toml @@ -0,0 +1,11 @@ +#TODO shared crate error +[source] +git = "https://github.com/tonarino/innernet" +[build] +template = "custom" +dependencies = [ + "sqlite3", +] +script = """ +cookbook_cargo_packages server +""" diff --git a/recipes/wip/tools/intelli-shell/recipe.toml b/recipes/wip/tools/intelli-shell/recipe.toml new file mode 100644 index 000000000..53ca1be55 --- /dev/null +++ b/recipes/wip/tools/intelli-shell/recipe.toml @@ -0,0 +1,13 @@ +#TODO OpenSSL error +[source] +git = "https://github.com/lasantosr/intelli-shell" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo +""" diff --git a/recipes/wip/tools/interaction-calculus/recipe.toml b/recipes/wip/tools/interaction-calculus/recipe.toml new file mode 100644 index 000000000..a6ebf9588 --- /dev/null +++ b/recipes/wip/tools/interaction-calculus/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/VictorTaelin/Interaction-Calculus" +[build] +template = "cargo" diff --git a/recipes/wip/tools/intermodal/recipe.toml b/recipes/wip/tools/intermodal/recipe.toml new file mode 100644 index 000000000..493823ff0 --- /dev/null +++ b/recipes/wip/tools/intermodal/recipe.toml @@ -0,0 +1,9 @@ +#TODO termios crate error +[source] +git = "https://github.com/casey/intermodal" +[build] +template = "custom" +script = """ +cookbook_cargo +mv "${COOKBOOK_STAGE}/usr/bin/imdl" "${COOKBOOK_STAGE}/usr/bin/intermodal" +""" diff --git a/recipes/wip/tools/itstool/recipe.toml b/recipes/wip/tools/itstool/recipe.toml new file mode 100644 index 000000000..15c9800ec --- /dev/null +++ b/recipes/wip/tools/itstool/recipe.toml @@ -0,0 +1,8 @@ +#TODO require a Python module for libxml2 +[source] +tar = "http://files.itstool.org/itstool/itstool-2.0.7.tar.bz2" +[build] +template = "configure" +dependencies = [ + "libxml2", +] diff --git a/recipes/wip/tools/jirust/recipe.toml b/recipes/wip/tools/jirust/recipe.toml new file mode 100644 index 000000000..e14ebdaa7 --- /dev/null +++ b/recipes/wip/tools/jirust/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/moali87/jirust" +[build] +template = "cargo" diff --git a/recipes/wip/tools/jless/recipe.toml b/recipes/wip/tools/jless/recipe.toml new file mode 100644 index 000000000..463ec7e8a --- /dev/null +++ b/recipes/wip/tools/jless/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate (after cargo update) +[source] +git = "https://github.com/PaulJuliusMartinez/jless" +[build] +template = "cargo" diff --git a/recipes/wip/tools/joshuto/recipe.toml b/recipes/wip/tools/joshuto/recipe.toml new file mode 100644 index 000000000..f4eeb9e38 --- /dev/null +++ b/recipes/wip/tools/joshuto/recipe.toml @@ -0,0 +1,5 @@ +#TODO open and trash crates error +[source] +git = "https://github.com/kamiyaa/joshuto" +[build] +template = "cargo" diff --git a/recipes/wip/tools/jql/recipe.toml b/recipes/wip/tools/jql/recipe.toml new file mode 100644 index 000000000..4ed4332a3 --- /dev/null +++ b/recipes/wip/tools/jql/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/yamafaktory/jql" +[build] +template = "custom" +script = """ +cookbook_cargo_packages jql +""" diff --git a/recipes/wip/tools/kami/recipe.toml b/recipes/wip/tools/kami/recipe.toml new file mode 100644 index 000000000..d1d72db89 --- /dev/null +++ b/recipes/wip/tools/kami/recipe.toml @@ -0,0 +1,9 @@ +#TODO termsize crate error (after cargo update) +#TODO require bat and mpv at runtime +[source] +git = "https://github.com/mrfluffy-dev/kami" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/kanata/recipe.toml b/recipes/wip/tools/kanata/recipe.toml new file mode 100644 index 000000000..1f3db36c6 --- /dev/null +++ b/recipes/wip/tools/kanata/recipe.toml @@ -0,0 +1,5 @@ +#TODO kanata-parser crate error +[source] +git = "https://github.com/jtroo/kanata" +[build] +template = "cargo" diff --git a/recipes/wip/tools/kbt/recipe.toml b/recipes/wip/tools/kbt/recipe.toml new file mode 100644 index 000000000..9010e8fe0 --- /dev/null +++ b/recipes/wip/tools/kbt/recipe.toml @@ -0,0 +1,5 @@ +#TODO outdated redox_syscall crate (after cargo update) +[source] +git = "https://github.com/bloznelis/kbt" +[build] +template = "cargo" diff --git a/recipes/wip/tools/kodi/recipe.toml b/recipes/wip/tools/kodi/recipe.toml new file mode 100644 index 000000000..6aac752fc --- /dev/null +++ b/recipes/wip/tools/kodi/recipe.toml @@ -0,0 +1,46 @@ +#TODO not compiled or tested +# build instructions: https://github.com/xbmc/xbmc/blob/master/docs/README.Linux.md#4-build-kodi +# maybe missing dependencies, see https://archlinux.org/packages/extra/x86_64/kodi/ +[source] +git = "https://github.com/xbmc/xbmc" +rev = "5f418d0b133535c6675154688ac7144e34f4d436" +[build] +template = "cmake" +cmakeflags = [ + "-DCORE_PLATFORM_NAME=wayland", + "-DAPP_RENDER_SYSTEM=gl", +] +dependencies = [ + "libass", + "libbluray", + "mesa", + "bzip2", + "curl", + "dbus", + "libflac", + "fontconfig", + "libfmt", + "freetype2", + "fribidi", + "libgcrypt", + "libgif", + "glew", + "gnutls3", + "mesa-glu", + "libgpg-error", + "libjpeg", + "libogg", + "pcre", + "libpng", + "openssl1", + "libtiff", + "sqlite3", + "libevdev", + "libunistring", + "libva", + "libvorbis", + "libxkbcommon", + "libuuid", + "libxslt", + "pipewire", +] diff --git a/recipes/wip/tools/lapce/recipe.toml b/recipes/wip/tools/lapce/recipe.toml new file mode 100644 index 000000000..e935c56a7 --- /dev/null +++ b/recipes/wip/tools/lapce/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/lapce/lapce" +[build] +template = "cargo" diff --git a/recipes/wip/tools/lazy-etherscan/recipe.toml b/recipes/wip/tools/lazy-etherscan/recipe.toml new file mode 100644 index 000000000..2bdf5b45b --- /dev/null +++ b/recipes/wip/tools/lazy-etherscan/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/woxjro/lazy-etherscan" +[build] +template = "cargo" diff --git a/recipes/wip/tools/lcs-image-diff/recipe.toml b/recipes/wip/tools/lcs-image-diff/recipe.toml new file mode 100644 index 000000000..f0ab1a300 --- /dev/null +++ b/recipes/wip/tools/lcs-image-diff/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/bokuweb/lcs-image-diff-rs" +[build] +template = "cargo" diff --git a/recipes/wip/tools/lddtree-rs/recipe.toml b/recipes/wip/tools/lddtree-rs/recipe.toml new file mode 100644 index 000000000..62fd4918b --- /dev/null +++ b/recipes/wip/tools/lddtree-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/messense/lddtree-rs" +[build] +template = "cargo" diff --git a/recipes/wip/tools/legdur/recipe.toml b/recipes/wip/tools/legdur/recipe.toml new file mode 100644 index 000000000..ae827f4ff --- /dev/null +++ b/recipes/wip/tools/legdur/recipe.toml @@ -0,0 +1,6 @@ +#TODO the repository can't be cloned because it's using the Mercurial now? what doesn't makes sense +#TODO camino crate error +[source] +git = "https://hg.sr.ht/~cyplo/legdur" +[build] +template = "cargo" diff --git a/recipes/wip/tools/lemmeknow/recipe.toml b/recipes/wip/tools/lemmeknow/recipe.toml new file mode 100644 index 000000000..21268d0a9 --- /dev/null +++ b/recipes/wip/tools/lemmeknow/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/swanandx/lemmeknow" +[build] +template = "cargo" diff --git a/recipes/wip/tools/less/recipe.toml b/recipes/wip/tools/less/recipe.toml new file mode 100644 index 000000000..8c1024a3c --- /dev/null +++ b/recipes/wip/tools/less/recipe.toml @@ -0,0 +1,9 @@ +#TODO waiting termcap fix +[source] +tar = "https://www.greenwoodsoftware.com/less/less-633.tar.gz" +[build] +template = "configure" +dependencies = [ + "termcap", + "libvterm", +] diff --git a/recipes/wip/tools/lines-rs/recipe.toml b/recipes/wip/tools/lines-rs/recipe.toml new file mode 100644 index 000000000..20f90c920 --- /dev/null +++ b/recipes/wip/tools/lines-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO jemalloc-sys crate error +[source] +git = "https://github.com/ryanfowler/lines" +[build] +template = "cargo" diff --git a/recipes/wip/tools/lineselect/recipe.toml b/recipes/wip/tools/lineselect/recipe.toml new file mode 100644 index 000000000..c419ee470 --- /dev/null +++ b/recipes/wip/tools/lineselect/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/urbanogilson/lineselect" +[build] +template = "cargo" diff --git a/recipes/wip/tools/logss/recipe.toml b/recipes/wip/tools/logss/recipe.toml new file mode 100644 index 000000000..abd524813 --- /dev/null +++ b/recipes/wip/tools/logss/recipe.toml @@ -0,0 +1,5 @@ +#TODO broken and don't exit +[source] +git = "https://github.com/todoesverso/logss" +[build] +template = "cargo" diff --git a/recipes/wip/tools/lowcharts/recipe.toml b/recipes/wip/tools/lowcharts/recipe.toml new file mode 100644 index 000000000..3051b04b1 --- /dev/null +++ b/recipes/wip/tools/lowcharts/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/juan-leon/lowcharts" +[build] +template = "cargo" diff --git a/recipes/wip/tools/lucid/recipe.toml b/recipes/wip/tools/lucid/recipe.toml new file mode 100644 index 000000000..6aef61889 --- /dev/null +++ b/recipes/wip/tools/lucid/recipe.toml @@ -0,0 +1,5 @@ +#TODO nix crate error +[source] +git = "https://github.com/sharkdp/lucid" +[build] +template = "cargo" diff --git a/recipes/wip/tools/mandy/recipe.toml b/recipes/wip/tools/mandy/recipe.toml new file mode 100644 index 000000000..d8504fb2d --- /dev/null +++ b/recipes/wip/tools/mandy/recipe.toml @@ -0,0 +1,11 @@ +#TODO libssh2-sys crate error +[source] +git = "https://github.com/angeldollface/mandy" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages mandy-bin +""" diff --git a/recipes/wip/tools/mangohud/recipe.toml b/recipes/wip/tools/mangohud/recipe.toml new file mode 100644 index 000000000..96db3c626 --- /dev/null +++ b/recipes/wip/tools/mangohud/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/flightlessmango/MangoHud#installation---build-from-source +[source] +tar = "https://github.com/flightlessmango/MangoHud/releases/download/v0.8.1/MangoHud-v0.8.1-Source.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dwith_xnvctrl=disabled", + "-Dwith_dbus=disabled", +] +dependencies = [ + "mesa-x11", + "libx11", + #"libxkbcommon", +] diff --git a/recipes/wip/tools/mask/recipe.toml b/recipes/wip/tools/mask/recipe.toml new file mode 100644 index 000000000..9d52b13ba --- /dev/null +++ b/recipes/wip/tools/mask/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/jacobdeichert/mask" +[build] +template = "custom" +script = """ +cookbook_cargo_packages mask +""" diff --git a/recipes/wip/tools/matui/recipe.toml b/recipes/wip/tools/matui/recipe.toml new file mode 100644 index 000000000..f4a7c60c7 --- /dev/null +++ b/recipes/wip/tools/matui/recipe.toml @@ -0,0 +1,8 @@ +#TODO ahash crate error +[source] +git = "https://github.com/pkulak/matui" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/maze-tui/recipe.toml b/recipes/wip/tools/maze-tui/recipe.toml new file mode 100644 index 000000000..7e7101a9a --- /dev/null +++ b/recipes/wip/tools/maze-tui/recipe.toml @@ -0,0 +1,5 @@ +#TODO go to the "maze_progs" folder and build "run_tui" and "run_maze" +[source] +git = "https://github.com/agl-alexglopez/maze-tui" +[build] +template = "custom" diff --git a/recipes/wip/tools/mcfly/recipe.toml b/recipes/wip/tools/mcfly/recipe.toml new file mode 100644 index 000000000..3f8b56a61 --- /dev/null +++ b/recipes/wip/tools/mcfly/recipe.toml @@ -0,0 +1,5 @@ +#TODO program source code error +[source] +git = "https://github.com/cantino/mcfly" +[build] +template = "cargo" diff --git a/recipes/wip/tools/menyoki/recipe.toml b/recipes/wip/tools/menyoki/recipe.toml new file mode 100644 index 000000000..2a4725636 --- /dev/null +++ b/recipes/wip/tools/menyoki/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# if the x11 backend don't work read this: https://github.com/orhun/menyoki/blob/master/IMPLEMENTATION.md#implementing-for-other-platforms +[source] +git = "https://github.com/orhun/menyoki" +[build] +template = "cargo" diff --git a/recipes/wip/tools/mhv/recipe.toml b/recipes/wip/tools/mhv/recipe.toml new file mode 100644 index 000000000..e0c3e1586 --- /dev/null +++ b/recipes/wip/tools/mhv/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/jgardona/mhv" +[build] +template = "cargo" diff --git a/recipes/wip/tools/minmon/recipe.toml b/recipes/wip/tools/minmon/recipe.toml new file mode 100644 index 000000000..5c6f9e968 --- /dev/null +++ b/recipes/wip/tools/minmon/recipe.toml @@ -0,0 +1,5 @@ +#TODO port to redox +[source] +git = "https://github.com/flo-at/minmon" +[build] +template = "cargo" diff --git a/recipes/wip/tools/mkisofs-rs/recipe.toml b/recipes/wip/tools/mkisofs-rs/recipe.toml new file mode 100644 index 000000000..99e603494 --- /dev/null +++ b/recipes/wip/tools/mkisofs-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/marysaka/mkisofs-rs" +[build] +template = "cargo" diff --git a/recipes/wip/tools/mprocs/recipe.toml b/recipes/wip/tools/mprocs/recipe.toml new file mode 100644 index 000000000..374be7afe --- /dev/null +++ b/recipes/wip/tools/mprocs/recipe.toml @@ -0,0 +1,8 @@ +#TODO termios crates error (after cargo update) +[source] +git = "https://github.com/pvolok/mprocs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages mprocs +""" diff --git a/recipes/wip/tools/navi/recipe.toml b/recipes/wip/tools/navi/recipe.toml new file mode 100644 index 000000000..15f021f93 --- /dev/null +++ b/recipes/wip/tools/navi/recipe.toml @@ -0,0 +1,5 @@ +#TODO fs_at and libc crate errors (after cargo update) +[source] +git = "https://github.com/denisidoro/navi" +[build] +template = "cargo" diff --git a/recipes/wip/tools/nickel/recipe.toml b/recipes/wip/tools/nickel/recipe.toml new file mode 100644 index 000000000..6715cb821 --- /dev/null +++ b/recipes/wip/tools/nickel/recipe.toml @@ -0,0 +1,8 @@ +#TODO rustyline crate error +[source] +git = "https://github.com/tweag/nickel" +[build] +template = "custom" +script = """ +cookbook_cargo_packages nickel-lang-cli +""" diff --git a/recipes/wip/tools/nix/recipe.toml b/recipes/wip/tools/nix/recipe.toml new file mode 100644 index 000000000..33c9fab26 --- /dev/null +++ b/recipes/wip/tools/nix/recipe.toml @@ -0,0 +1,23 @@ +#TODO make dependencies work +[source] +git = "https://github.com/NixOS/nix" +rev = "50f8f1c8bc019a4c0fd098b9ac674b94cfc6af0d" +[build] +template = "custom" +dependencies = [ + "libbrotili", + "openssl1", + "curl", + "sqlite3", + "libeditline", + "boost", + "libsodium", + "libcpuid", +] +script = """ +autoreconf -vfi +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-tests +) +cookbook_configure +""" diff --git a/recipes/wip/tools/nomad/recipe.toml b/recipes/wip/tools/nomad/recipe.toml new file mode 100644 index 000000000..896bc7e16 --- /dev/null +++ b/recipes/wip/tools/nomad/recipe.toml @@ -0,0 +1,9 @@ +#TODO sys-info crate error +#TODO require Nerd Fonts +[source] +git = "https://github.com/JosephLai241/nomad" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/nomino/recipe.toml b/recipes/wip/tools/nomino/recipe.toml new file mode 100644 index 000000000..df58f8a83 --- /dev/null +++ b/recipes/wip/tools/nomino/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/yaa110/nomino" +[build] +template = "cargo" diff --git a/recipes/wip/tools/notnow/recipe.toml b/recipes/wip/tools/notnow/recipe.toml new file mode 100644 index 000000000..9d7e5b2ce --- /dev/null +++ b/recipes/wip/tools/notnow/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/d-e-s-o/notnow" +[build] +template = "cargo" diff --git a/recipes/wip/tools/objdiff/recipe.toml b/recipes/wip/tools/objdiff/recipe.toml new file mode 100644 index 000000000..36994df56 --- /dev/null +++ b/recipes/wip/tools/objdiff/recipe.toml @@ -0,0 +1,12 @@ +#TODO can't find the fontconfig dependency +[source] +git = "https://github.com/encounter/objdiff" +[build] +template = "custom" +dependencies = [ + "openssl1", + "fontconfig", +] +script = """ +cookbook_cargo_packages objdiff-gui objdiff-cli +""" diff --git a/recipes/wip/tools/odilia/recipe.toml b/recipes/wip/tools/odilia/recipe.toml new file mode 100644 index 000000000..f26083d0d --- /dev/null +++ b/recipes/wip/tools/odilia/recipe.toml @@ -0,0 +1,8 @@ +#TODO xdg-home crate error (after cargo update) +[source] +git = "https://github.com/odilia-app/odilia" +[build] +template = "custom" +script = """ +cookbook_cargo_packages odilia +""" diff --git a/recipes/wip/tools/okteta/recipe.toml b/recipes/wip/tools/okteta/recipe.toml new file mode 100644 index 000000000..18fde6063 --- /dev/null +++ b/recipes/wip/tools/okteta/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +# lacking build instructions +#TODO missing dependencies +[source] +git = "https://invent.kde.org/utilities/okteta" +rev = "fb6150f2dce791c96b95a12ee0c74942c1774c05" +[build] +template = "cmake" diff --git a/recipes/wip/tools/omega/recipe.toml b/recipes/wip/tools/omega/recipe.toml new file mode 100644 index 000000000..28acedfe3 --- /dev/null +++ b/recipes/wip/tools/omega/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing headers +[source] +git = "https://github.com/nwrenger/omega" +[build] +template = "cargo" diff --git a/recipes/wip/tools/oranda/recipe.toml b/recipes/wip/tools/oranda/recipe.toml new file mode 100644 index 000000000..ec095ebf4 --- /dev/null +++ b/recipes/wip/tools/oranda/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/axodotdev/oranda" +[build] +template = "cargo" diff --git a/recipes/wip/tools/orchaldir-texture-generator/recipe.toml b/recipes/wip/tools/orchaldir-texture-generator/recipe.toml new file mode 100644 index 000000000..440d25e6e --- /dev/null +++ b/recipes/wip/tools/orchaldir-texture-generator/recipe.toml @@ -0,0 +1,8 @@ +#TODO Compiled but not tested +[source] +git = "https://github.com/Orchaldir/texture_generator" +[build] +template = "custom" +script = """ +cookbook_cargo_packages texture_generator +""" diff --git a/recipes/wip/tools/pdbview/recipe.toml b/recipes/wip/tools/pdbview/recipe.toml new file mode 100644 index 000000000..9c7be7521 --- /dev/null +++ b/recipes/wip/tools/pdbview/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/landaire/pdbview" +[build] +template = "cargo" diff --git a/recipes/wip/tools/pdu/recipe.toml b/recipes/wip/tools/pdu/recipe.toml new file mode 100644 index 000000000..f49d5d929 --- /dev/null +++ b/recipes/wip/tools/pdu/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +git = "https://github.com/KSXGitHub/parallel-disk-usage" +[build] +template = "cargo" diff --git a/recipes/wip/tools/pipr/recipe.toml b/recipes/wip/tools/pipr/recipe.toml new file mode 100644 index 000000000..08ca75d9c --- /dev/null +++ b/recipes/wip/tools/pipr/recipe.toml @@ -0,0 +1,5 @@ +#TODO update mio to 0.8 (after cargo update) +[source] +git = "https://github.com/Elkowar/pipr" +[build] +template = "cargo" diff --git a/recipes/wip/tools/pixcil/recipe.toml b/recipes/wip/tools/pixcil/recipe.toml new file mode 100644 index 000000000..18ae370e7 --- /dev/null +++ b/recipes/wip/tools/pixcil/recipe.toml @@ -0,0 +1,10 @@ +#TODO compiled but not tested +#TODO missing script to properly move the binary +#TODO require WebAssembly +[source] +git = "https://github.com/sile/pixcil" +[build] +template = "custom" +script = """ +cookbook_cargo_packages pixcil +""" diff --git a/recipes/wip/tools/pixelsort/recipe.toml b/recipes/wip/tools/pixelsort/recipe.toml new file mode 100644 index 000000000..d1a974ba9 --- /dev/null +++ b/recipes/wip/tools/pixelsort/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Void-ux/pixelsort" +[build] +template = "cargo" diff --git a/recipes/wip/tools/pomky/recipe.toml b/recipes/wip/tools/pomky/recipe.toml new file mode 100644 index 000000000..b89737369 --- /dev/null +++ b/recipes/wip/tools/pomky/recipe.toml @@ -0,0 +1,10 @@ +#TODO waiting gdk-pixbuf conversion to TOML +[source] +git = "https://github.com/developomp/pomky" +[build] +template = "cargo" +dependencies = [ + "glib", + "pcre", + "gdk-pixbuf", +] diff --git a/recipes/wip/tools/porsmo/recipe.toml b/recipes/wip/tools/porsmo/recipe.toml new file mode 100644 index 000000000..3662af376 --- /dev/null +++ b/recipes/wip/tools/porsmo/recipe.toml @@ -0,0 +1,5 @@ +#TODO xdg-home crate error +[source] +git = "https://github.com/ColorCookie-dev/porsmo" +[build] +template = "cargo" diff --git a/recipes/wip/tools/posixutils-rs/recipe.toml b/recipes/wip/tools/posixutils-rs/recipe.toml new file mode 100644 index 000000000..29125ae1b --- /dev/null +++ b/recipes/wip/tools/posixutils-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO require a customized Cargo script +[source] +git = "https://github.com/rustcoreutils/posixutils-rs" +[build] +template = "custom" diff --git a/recipes/wip/tools/potrace/recipe.toml b/recipes/wip/tools/potrace/recipe.toml new file mode 100644 index 000000000..62379b653 --- /dev/null +++ b/recipes/wip/tools/potrace/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +tar = "https://potrace.sourceforge.net/download/1.16/potrace-1.16.tar.gz" +[build] +template = "configure" +dependencies = [ + "zlib", +] diff --git a/recipes/wip/tools/presenterm/recipe.toml b/recipes/wip/tools/presenterm/recipe.toml new file mode 100644 index 000000000..b5a386352 --- /dev/null +++ b/recipes/wip/tools/presenterm/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/mfontanini/presenterm" +[build] +template = "cargo" diff --git a/recipes/wip/tools/pueue/recipe.toml b/recipes/wip/tools/pueue/recipe.toml new file mode 100644 index 000000000..bd1ed8cda --- /dev/null +++ b/recipes/wip/tools/pueue/recipe.toml @@ -0,0 +1,8 @@ +#TODO pueue_lib crate error (after cargo update and a patch on ring) +[source] +git = "https://github.com/Nukesor/pueue" +[build] +template = "custom" +script = """ +cookbook_cargo_packages pueue +""" diff --git a/recipes/wip/tools/qv/recipe.toml b/recipes/wip/tools/qv/recipe.toml new file mode 100644 index 000000000..81812e895 --- /dev/null +++ b/recipes/wip/tools/qv/recipe.toml @@ -0,0 +1,5 @@ +#TODO deltalake crate error (after a patch on ring) +[source] +git = "https://github.com/timvw/qv" +[build] +template = "cargo" diff --git a/recipes/wip/tools/rana/recipe.toml b/recipes/wip/tools/rana/recipe.toml new file mode 100644 index 000000000..9ce7417a4 --- /dev/null +++ b/recipes/wip/tools/rana/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/grunch/rana" +[build] +template = "cargo" diff --git a/recipes/wip/tools/rargs/recipe.toml b/recipes/wip/tools/rargs/recipe.toml new file mode 100644 index 000000000..17c527066 --- /dev/null +++ b/recipes/wip/tools/rargs/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/lotabout/rargs" +[build] +template = "cargo" diff --git a/recipes/wip/tools/rclone/recipe.toml b/recipes/wip/tools/rclone/recipe.toml new file mode 100644 index 000000000..39e934f37 --- /dev/null +++ b/recipes/wip/tools/rclone/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for Go, see https://rclone.org/install/#source +[source] +tar = "https://github.com/rclone/rclone/releases/download/v1.64.2/rclone-v1.64.2.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/tools/restic/recipe.toml b/recipes/wip/tools/restic/recipe.toml new file mode 100644 index 000000000..f7aab4313 --- /dev/null +++ b/recipes/wip/tools/restic/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for Go, see https://restic.readthedocs.io/en/stable/020_installation.html#from-source +#TODO maybe needs to be patched +[source] +tar = "https://github.com/restic/restic/releases/download/v0.16.2/restic-0.16.2.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/tools/rfz/recipe.toml b/recipes/wip/tools/rfz/recipe.toml new file mode 100644 index 000000000..eb11559a7 --- /dev/null +++ b/recipes/wip/tools/rfz/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/MangoTzara/rfz" +[build] +template = "cargo" diff --git a/recipes/wip/tools/rip/recipe.toml b/recipes/wip/tools/rip/recipe.toml new file mode 100644 index 000000000..4b2fbd186 --- /dev/null +++ b/recipes/wip/tools/rip/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/nivekuil/rip" +[build] +template = "cargo" diff --git a/recipes/wip/tools/ripasso/recipe.toml b/recipes/wip/tools/ripasso/recipe.toml new file mode 100644 index 000000000..fd10be75b --- /dev/null +++ b/recipes/wip/tools/ripasso/recipe.toml @@ -0,0 +1,12 @@ +#TODO make libgpg-error dependency work +[source] +git = "https://github.com/cortex/ripasso" +[build] +template = "custom" +dependencies = [ + "openssl1", + "libgpg-error", +] +script = """ +cookbook_cargo_packages ripasso-cursive +""" diff --git a/recipes/wip/tools/ripsecrets/recipe.toml b/recipes/wip/tools/ripsecrets/recipe.toml new file mode 100644 index 000000000..f445cbd8d --- /dev/null +++ b/recipes/wip/tools/ripsecrets/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/sirwart/ripsecrets" +[build] +template = "cargo" diff --git a/recipes/wip/tools/rix/recipe.toml b/recipes/wip/tools/rix/recipe.toml new file mode 100644 index 000000000..3b0da13b1 --- /dev/null +++ b/recipes/wip/tools/rix/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +git = "https://github.com/urbas/rix" +[build] +template = "cargo" diff --git a/recipes/wip/tools/rnr/recipe.toml b/recipes/wip/tools/rnr/recipe.toml new file mode 100644 index 000000000..64cd9e57e --- /dev/null +++ b/recipes/wip/tools/rnr/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/ismaelgv/rnr" +[build] +template = "cargo" diff --git a/recipes/wip/tools/rq/recipe.toml b/recipes/wip/tools/rq/recipe.toml new file mode 100644 index 000000000..44c1fd6ff --- /dev/null +++ b/recipes/wip/tools/rq/recipe.toml @@ -0,0 +1,5 @@ +#TODO record-query crate error (after cargo update) +[source] +git = "https://github.com/dflemstr/rq" +[build] +template = "cargo" diff --git a/recipes/wip/tools/ruke/recipe.toml b/recipes/wip/tools/ruke/recipe.toml new file mode 100644 index 000000000..da95233a6 --- /dev/null +++ b/recipes/wip/tools/ruke/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/kauefraga/ruke" +[build] +template = "cargo" diff --git a/recipes/wip/tools/run/recipe.toml b/recipes/wip/tools/run/recipe.toml new file mode 100644 index 000000000..a15e18f5f --- /dev/null +++ b/recipes/wip/tools/run/recipe.toml @@ -0,0 +1,9 @@ +#TODO fix the script +[source] +git = "https://github.com/LyonSyonII/run" +[build] +template = "custom" +script = """ +cd "${COOKBOOK_SOURCE}"/cli +cookbook_cargo +""" diff --git a/recipes/wip/tools/ruplacer/recipe.toml b/recipes/wip/tools/ruplacer/recipe.toml new file mode 100644 index 000000000..ac448b5ec --- /dev/null +++ b/recipes/wip/tools/ruplacer/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/your-tools/ruplacer" +[build] +template = "cargo" diff --git a/recipes/wip/tools/rusty-krab-manager/recipe.toml b/recipes/wip/tools/rusty-krab-manager/recipe.toml new file mode 100644 index 000000000..59f972cbe --- /dev/null +++ b/recipes/wip/tools/rusty-krab-manager/recipe.toml @@ -0,0 +1,5 @@ +#TODO xdg-home and nix crates error (after cargo update) +[source] +git = "https://github.com/aryakaul/rusty-krab-manager" +[build] +template = "cargo" diff --git a/recipes/wip/tools/rusty/recipe.toml b/recipes/wip/tools/rusty/recipe.toml new file mode 100644 index 000000000..5c28bf27b --- /dev/null +++ b/recipes/wip/tools/rusty/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/zahidkhawaja/rusty" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/rusync/recipe.toml b/recipes/wip/tools/rusync/recipe.toml new file mode 100644 index 000000000..605353d41 --- /dev/null +++ b/recipes/wip/tools/rusync/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/your-tools/rusync" +[build] +template = "cargo" diff --git a/recipes/wip/tools/sad/recipe.toml b/recipes/wip/tools/sad/recipe.toml new file mode 100644 index 000000000..67fee17b5 --- /dev/null +++ b/recipes/wip/tools/sad/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ms-jpq/sad" +[build] +template = "cargo" diff --git a/recipes/wip/tools/sam/recipe.toml b/recipes/wip/tools/sam/recipe.toml new file mode 100644 index 000000000..45b56c875 --- /dev/null +++ b/recipes/wip/tools/sam/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested (after cargo update) +#TODO add a command to properly move the executable +[source] +git = "https://github.com/r-zenine/sam" +[build] +template = "custom" +script = """ +cookbook_cargo_packages sam-cli +""" diff --git a/recipes/wip/tools/scribus/recipe.toml b/recipes/wip/tools/scribus/recipe.toml new file mode 100644 index 000000000..e8a33342e --- /dev/null +++ b/recipes/wip/tools/scribus/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +# build instructions: https://wiki.scribus.net/canvas/Official:Compile_with_CMake +[source] +tar = "https://sourceforge.net/projects/scribus/files/scribus/1.6.4/scribus-1.6.4.tar.xz/download" +[build] +template = "custom" +dependencies = [ + "qt4", + "cairo", + "freetype2", + "libxml2", + "liblcms", + "libtiff", + "libjpeg", + "fontconfig", +] diff --git a/recipes/wip/tools/scrying/recipe.toml b/recipes/wip/tools/scrying/recipe.toml new file mode 100644 index 000000000..5b38311f6 --- /dev/null +++ b/recipes/wip/tools/scrying/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/nccgroup/scrying" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/sd/recipe.toml b/recipes/wip/tools/sd/recipe.toml new file mode 100644 index 000000000..0cc6f03c0 --- /dev/null +++ b/recipes/wip/tools/sd/recipe.toml @@ -0,0 +1,5 @@ +#TODO relibc function not implemented +[source] +git = "https://github.com/chmln/sd.git" +[build] +template = "cargo" diff --git a/recipes/wip/tools/shd/recipe.toml b/recipes/wip/tools/shd/recipe.toml new file mode 100644 index 000000000..8a523975d --- /dev/null +++ b/recipes/wip/tools/shd/recipe.toml @@ -0,0 +1,8 @@ +#TODO make the smartmontools dependency work +[source] +git = "https://github.com/alttch/shd" +[build] +template = "cargo" +dependencies = [ + "smartmontools", +] diff --git a/recipes/wip/tools/shellfirm/recipe.toml b/recipes/wip/tools/shellfirm/recipe.toml new file mode 100644 index 000000000..78fc9d442 --- /dev/null +++ b/recipes/wip/tools/shellfirm/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/kaplanelad/shellfirm" +[build] +template = "custom" +script = """ +cookbook_cargo_packages shellfirm +""" diff --git a/recipes/wip/tools/shokunin/recipe.toml b/recipes/wip/tools/shokunin/recipe.toml new file mode 100644 index 000000000..4230fd8d9 --- /dev/null +++ b/recipes/wip/tools/shokunin/recipe.toml @@ -0,0 +1,8 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/sebastienrousseau/shokunin" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/sig/recipe.toml b/recipes/wip/tools/sig/recipe.toml new file mode 100644 index 000000000..29c09980e --- /dev/null +++ b/recipes/wip/tools/sig/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ynqa/sig" +[build] +template = "cargo" diff --git a/recipes/wip/tools/sigi/recipe.toml b/recipes/wip/tools/sigi/recipe.toml new file mode 100644 index 000000000..1c5a0e492 --- /dev/null +++ b/recipes/wip/tools/sigi/recipe.toml @@ -0,0 +1,5 @@ +#TODO rustyline crate error +[source] +git = "https://github.com/sigi-cli/sigi" +[build] +template = "cargo" diff --git a/recipes/wip/tools/simplemoji/recipe.toml b/recipes/wip/tools/simplemoji/recipe.toml new file mode 100644 index 000000000..d1b76c3b6 --- /dev/null +++ b/recipes/wip/tools/simplemoji/recipe.toml @@ -0,0 +1,5 @@ +#TODO require the Noto Color Emoji font, see https://fonts.google.com/noto/specimen/Noto+Color+Emoji +[source] +git = "https://github.com/SergioRibera/Simplemoji" +[build] +template = "cargo" diff --git a/recipes/wip/tools/skim/recipe.toml b/recipes/wip/tools/skim/recipe.toml new file mode 100644 index 000000000..af6c973a5 --- /dev/null +++ b/recipes/wip/tools/skim/recipe.toml @@ -0,0 +1,5 @@ +#TODO tuikit crate error (after cargo update) +[source] +git = "https://github.com/lotabout/skim" +[build] +template = "cargo" diff --git a/recipes/wip/tools/skyspell/recipe.toml b/recipes/wip/tools/skyspell/recipe.toml new file mode 100644 index 000000000..2a8c80c92 --- /dev/null +++ b/recipes/wip/tools/skyspell/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing an enchant backend and dictionary, see https://github.com/your-tools/skyspell#installation +[source] +git = "https://github.com/your-tools/skyspell" +[build] +template = "custom" +dependencies = [ + "sqlite3", + "enchant", +] +script = """ +cookbook_cargo_packages skyspell +""" diff --git a/recipes/wip/tools/smartmontools/recipe.toml b/recipes/wip/tools/smartmontools/recipe.toml new file mode 100644 index 000000000..0318a9cc4 --- /dev/null +++ b/recipes/wip/tools/smartmontools/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://sourceforge.net/projects/smartmontools/files/smartmontools/7.3/smartmontools-7.3.tar.gz/download" +[build] +template = "configure" diff --git a/recipes/wip/tools/snappy-rs/recipe.toml b/recipes/wip/tools/snappy-rs/recipe.toml new file mode 100644 index 000000000..dcb9e3ff1 --- /dev/null +++ b/recipes/wip/tools/snappy-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/BurntSushi/rust-snappy" +[build] +template = "custom" +script = """ +cookbook_cargo_packages szip +""" diff --git a/recipes/wip/tools/spacer/recipe.toml b/recipes/wip/tools/spacer/recipe.toml new file mode 100644 index 000000000..aeb66edce --- /dev/null +++ b/recipes/wip/tools/spacer/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/samwho/spacer" +[build] +template = "cargo" diff --git a/recipes/wip/tools/spidey/recipe.toml b/recipes/wip/tools/spidey/recipe.toml new file mode 100644 index 000000000..58f4aa508 --- /dev/null +++ b/recipes/wip/tools/spidey/recipe.toml @@ -0,0 +1,9 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/kdwk/Spidey" +[build] +template = "meson" +dependencies = [ + "gtk4", + "glib", +] diff --git a/recipes/wip/tools/sprinkles/recipe.toml b/recipes/wip/tools/sprinkles/recipe.toml new file mode 100644 index 000000000..6188ce8ed --- /dev/null +++ b/recipes/wip/tools/sprinkles/recipe.toml @@ -0,0 +1,5 @@ +#TODO Compiled but not tested +[source] +git = "https://github.com/KhalilOuali/sprinkles" +[build] +template = "cargo" diff --git a/recipes/wip/tools/succeed2ban-tui/recipe.toml b/recipes/wip/tools/succeed2ban-tui/recipe.toml new file mode 100644 index 000000000..f48d3eb03 --- /dev/null +++ b/recipes/wip/tools/succeed2ban-tui/recipe.toml @@ -0,0 +1,8 @@ +#TODO libsystemd crate error (needs porting) +[source] +git = "https://github.com/J-Bockhofer/succeed2ban-tui" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/sued/recipe.toml b/recipes/wip/tools/sued/recipe.toml new file mode 100644 index 000000000..d88d7d6ad --- /dev/null +++ b/recipes/wip/tools/sued/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# customization: https://codeberg.org/AeriaVelocity/sued#configuration +[source] +git = "https://codeberg.org/AeriaVelocity/sued" +[build] +template = "cargo" +cargoflags = "--features=repl,startup,history" diff --git a/recipes/wip/tools/svg2pdf/recipe.toml b/recipes/wip/tools/svg2pdf/recipe.toml new file mode 100644 index 000000000..21a0d64da --- /dev/null +++ b/recipes/wip/tools/svg2pdf/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +#TODO missing script to properly move the binary +[source] +git = "https://github.com/typst/svg2pdf" +[build] +template = "custom" +script = """ +cookbook_cargo_packages svg2pdf-cli +""" diff --git a/recipes/wip/tools/swc/recipe.toml b/recipes/wip/tools/swc/recipe.toml new file mode 100644 index 000000000..2fcddac67 --- /dev/null +++ b/recipes/wip/tools/swc/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +#TODO missing script to properly move the binary +[source] +git = "https://github.com/swc-project/swc" +[build] +template = "custom" +script = """ +cookbook_cargo_packages swc_cli_impl +""" diff --git a/recipes/wip/tools/t-rec/recipe.toml b/recipes/wip/tools/t-rec/recipe.toml new file mode 100644 index 000000000..e9d64b619 --- /dev/null +++ b/recipes/wip/tools/t-rec/recipe.toml @@ -0,0 +1,12 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/sassman/t-rec-rs" +[build] +template = "custom" +dependencies = [ + "imagemagick", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" diff --git a/recipes/wip/tools/tailspin/recipe.toml b/recipes/wip/tools/tailspin/recipe.toml new file mode 100644 index 000000000..288cd556d --- /dev/null +++ b/recipes/wip/tools/tailspin/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/bensadeh/tailspin" +[build] +template = "cargo" diff --git a/recipes/wip/tools/tarlz/recipe.toml b/recipes/wip/tools/tarlz/recipe.toml new file mode 100644 index 000000000..65c477899 --- /dev/null +++ b/recipes/wip/tools/tarlz/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing header files +[source] +tar = "https://download.savannah.gnu.org/releases/lzip/tarlz/tarlz-0.25.tar.lz" +[build] +template = "custom" +dependencies = [ + "lzlib", +] +script = """ +cookbook_configure +""" diff --git a/recipes/wip/tools/task-maker-rs/recipe.toml b/recipes/wip/tools/task-maker-rs/recipe.toml new file mode 100644 index 000000000..4bd809eb2 --- /dev/null +++ b/recipes/wip/tools/task-maker-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO tabox crate error +[source] +git = "https://github.com/edomora97/task-maker-rust" +[build] +template = "cargo" diff --git a/recipes/wip/tools/taskserver/recipe.toml b/recipes/wip/tools/taskserver/recipe.toml new file mode 100644 index 000000000..b6f9ff41c --- /dev/null +++ b/recipes/wip/tools/taskserver/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://taskwarrior.org/download/#quick-setup +[source] +tar = "https://github.com/GothenburgBitFactory/taskserver/releases/download/v1.1.0/taskd-1.1.0.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/tools/taskwarrior-tui/recipe.toml b/recipes/wip/tools/taskwarrior-tui/recipe.toml new file mode 100644 index 000000000..a786a2834 --- /dev/null +++ b/recipes/wip/tools/taskwarrior-tui/recipe.toml @@ -0,0 +1,5 @@ +#TODO rustyline crate error (after cargo update) +[source] +git = "https://github.com/kdheepak/taskwarrior-tui" +[build] +template = "cargo" diff --git a/recipes/wip/tools/taskwarrior/recipe.toml b/recipes/wip/tools/taskwarrior/recipe.toml new file mode 100644 index 000000000..d2f20d953 --- /dev/null +++ b/recipes/wip/tools/taskwarrior/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://taskwarrior.org/download/#quick-setup +[source] +tar = "https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v2.6.2/task-2.6.2.tar.gz" +[build] +template = "cmake" diff --git a/recipes/wip/tools/tauno-monitor/recipe.toml b/recipes/wip/tools/tauno-monitor/recipe.toml new file mode 100644 index 000000000..d04ef7efc --- /dev/null +++ b/recipes/wip/tools/tauno-monitor/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +# lacking build instructions +[source] +git = "https://github.com/taunoe/tauno-monitor" +rev = "fecab98710bf6918141f34709f4ee1a055413056" +[build] +template = "meson" diff --git a/recipes/wip/tools/tealdeer/recipe.toml b/recipes/wip/tools/tealdeer/recipe.toml new file mode 100644 index 000000000..1b4ad5959 --- /dev/null +++ b/recipes/wip/tools/tealdeer/recipe.toml @@ -0,0 +1,5 @@ +#TODO program source code error (after cargo update) +[source] +git = "https://github.com/dbrgn/tealdeer" +[build] +template = "cargo" diff --git a/recipes/wip/tools/teip/recipe.toml b/recipes/wip/tools/teip/recipe.toml new file mode 100644 index 000000000..f18744a5e --- /dev/null +++ b/recipes/wip/tools/teip/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/greymd/teip" +[build] +template = "cargo" diff --git a/recipes/wip/tools/thwack/recipe.toml b/recipes/wip/tools/thwack/recipe.toml new file mode 100644 index 000000000..5a77f72db --- /dev/null +++ b/recipes/wip/tools/thwack/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/yykamei/thwack" +[build] +template = "cargo" diff --git a/recipes/wip/tools/tin-summer/recipe.toml b/recipes/wip/tools/tin-summer/recipe.toml new file mode 100644 index 000000000..043b97a7c --- /dev/null +++ b/recipes/wip/tools/tin-summer/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/vmchale/tin-summer" +[build] +template = "cargo" diff --git a/recipes/wip/tools/tinywasm/recipe.toml b/recipes/wip/tools/tinywasm/recipe.toml new file mode 100644 index 000000000..52119d08a --- /dev/null +++ b/recipes/wip/tools/tinywasm/recipe.toml @@ -0,0 +1,8 @@ +#TODO configuration error +[source] +git = "https://github.com/explodingcamera/tinywasm" +[build] +template = "custom" +script = """ +cookbook_cargo_packages tinywasm-cli +""" diff --git a/recipes/wip/tools/tl-rs/recipe.toml b/recipes/wip/tools/tl-rs/recipe.toml new file mode 100644 index 000000000..cc90fe4a4 --- /dev/null +++ b/recipes/wip/tools/tl-rs/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/NewDawn0/tl" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/tock/recipe.toml b/recipes/wip/tools/tock/recipe.toml new file mode 100644 index 000000000..0d558e256 --- /dev/null +++ b/recipes/wip/tools/tock/recipe.toml @@ -0,0 +1,5 @@ +#TODO working but don't exit +[source] +git = "https://github.com/nwtnni/tock" +[build] +template = "cargo" diff --git a/recipes/wip/tools/toipe/recipe.toml b/recipes/wip/tools/toipe/recipe.toml new file mode 100644 index 000000000..5b093d2fe --- /dev/null +++ b/recipes/wip/tools/toipe/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/Samyak2/toipe" +[build] +template = "cargo" diff --git a/recipes/wip/tools/torrust-tracker/recipe.toml b/recipes/wip/tools/torrust-tracker/recipe.toml new file mode 100644 index 000000000..5cb78e4df --- /dev/null +++ b/recipes/wip/tools/torrust-tracker/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/torrust/torrust-tracker" +[build] +template = "cargo" diff --git a/recipes/wip/tools/toybox/recipe.toml b/recipes/wip/tools/toybox/recipe.toml new file mode 100644 index 000000000..8d159db21 --- /dev/null +++ b/recipes/wip/tools/toybox/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for GNU Make, see https://www.landley.net/toybox/code.html#building +[source] +tar = "https://www.landley.net/toybox/downloads/toybox-0.8.9.tar.gz" +[build] +template = "custom" diff --git a/recipes/wip/tools/tp-note/recipe.toml b/recipes/wip/tools/tp-note/recipe.toml new file mode 100644 index 000000000..203abb5fb --- /dev/null +++ b/recipes/wip/tools/tp-note/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +[source] +git = "https://gitlab.com/getreu/tp-note" +[build] +template = "custom" +script = """ +package=tpnote +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${package}" \ + --release \ + --no-default-features \ + --features=lang-detection,renderer + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${package}" \ + "${COOKBOOK_STAGE}/usr/bin/${package}" +""" diff --git a/recipes/wip/tools/tq/recipe.toml b/recipes/wip/tools/tq/recipe.toml new file mode 100644 index 000000000..652d0c5aa --- /dev/null +++ b/recipes/wip/tools/tq/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/cryptaliagy/tq-rs" +[build] +template = "cargo" diff --git a/recipes/wip/tools/treq/recipe.toml b/recipes/wip/tools/treq/recipe.toml new file mode 100644 index 000000000..28e94d8f4 --- /dev/null +++ b/recipes/wip/tools/treq/recipe.toml @@ -0,0 +1,8 @@ +#TODO openssl error (after cargo update) +[source] +git = "https://github.com/talis-fb/TReq" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tools/tsuchita/recipe.toml b/recipes/wip/tools/tsuchita/recipe.toml new file mode 100644 index 000000000..ff2a0534b --- /dev/null +++ b/recipes/wip/tools/tsuchita/recipe.toml @@ -0,0 +1,5 @@ +#TODO update mio to 0.8 (after cargo update) +[source] +git = "https://github.com/kamiyaa/tsuchita" +[build] +template = "cargo" diff --git a/recipes/wip/tools/tts-tui/recipe.toml b/recipes/wip/tools/tts-tui/recipe.toml new file mode 100644 index 000000000..3cff1998e --- /dev/null +++ b/recipes/wip/tools/tts-tui/recipe.toml @@ -0,0 +1,8 @@ +#TODO make speech-dispatcher work +[source] +git = "https://github.com/lesleyrs/tts-tui" +[build] +template = "cargo" +dependencies = [ + "speech-dispatcher", +] diff --git a/recipes/wip/tools/ttyper/recipe.toml b/recipes/wip/tools/ttyper/recipe.toml new file mode 100644 index 000000000..26cb150a6 --- /dev/null +++ b/recipes/wip/tools/ttyper/recipe.toml @@ -0,0 +1,5 @@ +#TODO replace the prompt with nothing on execution +[source] +git = "https://github.com/max-niederman/ttyper" +[build] +template = "cargo" diff --git a/recipes/wip/tools/tui-journal/recipe.toml b/recipes/wip/tools/tui-journal/recipe.toml new file mode 100644 index 000000000..a684ceca4 --- /dev/null +++ b/recipes/wip/tools/tui-journal/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/AmmarAbouZor/tui-journal" +[build] +template = "custom" +dependencies = [ + "openssl3", + "sqlite3", +] +script = """ +DYNAMIC_INIT +cookbook_cargo +""" \ No newline at end of file diff --git a/recipes/wip/tools/tvix/recipe.toml b/recipes/wip/tools/tvix/recipe.toml new file mode 100644 index 000000000..12bf6c21f --- /dev/null +++ b/recipes/wip/tools/tvix/recipe.toml @@ -0,0 +1,8 @@ +#TODO tvix-castore crate error (after cargo update) +[source] +git = "https://github.com/tvlfyi/tvix" +[build] +template = "custom" +script = """ +cookbook_cargo_packages tvix-cli +""" diff --git a/recipes/wip/tools/typst/recipe.toml b/recipes/wip/tools/typst/recipe.toml new file mode 100644 index 000000000..a276fd8a2 --- /dev/null +++ b/recipes/wip/tools/typst/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +#TODO missing script to properly move the binary +[source] +git = "https://github.com/typst/typst" +[build] +template = "custom" +script = """ +cookbook_cargo_packages typst +""" diff --git a/recipes/wip/tools/upx/recipe.toml b/recipes/wip/tools/upx/recipe.toml new file mode 100644 index 000000000..7d10a4a96 --- /dev/null +++ b/recipes/wip/tools/upx/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "make", see https://github.com/upx/upx/blob/devel/README.SRC +[source] +tar = "https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-src.tar.xz" +[build] +template = "custom" diff --git a/recipes/wip/tools/util-linux/recipe.toml b/recipes/wip/tools/util-linux/recipe.toml new file mode 100644 index 000000000..0355aa697 --- /dev/null +++ b/recipes/wip/tools/util-linux/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/util-linux-2.39.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/tools/vector/recipe.toml b/recipes/wip/tools/vector/recipe.toml new file mode 100644 index 000000000..dae19e437 --- /dev/null +++ b/recipes/wip/tools/vector/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://vector.dev/docs/setup/installation/manual/from-source/ +[source] +git = "https://github.com/vectordotdev/vector" +rev = "86f1c22d7f00d7d80210a2704ea9f5061f74ee55" +[build] +template = "custom" diff --git a/recipes/wip/tools/ventoy/recipe.toml b/recipes/wip/tools/ventoy/recipe.toml new file mode 100644 index 000000000..8d1e6bae7 --- /dev/null +++ b/recipes/wip/tools/ventoy/recipe.toml @@ -0,0 +1,7 @@ +#TODO missing script for cross-compilation, see https://github.com/ventoy/Ventoy/blob/master/DOC/BuildVentoyFromSource.txt +#TODO missing dependencies, try to figure out what it needs at build-time and runtime +[source] +git = "https://github.com/ventoy/Ventoy" +rev = "3f65f0ef03e4aebcd14f233ca808a4f894657802" +[build] +template = "custom" diff --git a/recipes/wip/tools/vincenzo/recipe.toml b/recipes/wip/tools/vincenzo/recipe.toml new file mode 100644 index 000000000..db93c07a4 --- /dev/null +++ b/recipes/wip/tools/vincenzo/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/gabrieldemian/vincenzo" +[build] +template = "custom" +script = """ +cookbook_cargo_packages vcz +""" diff --git a/recipes/wip/tools/watchexec/recipe.toml b/recipes/wip/tools/watchexec/recipe.toml new file mode 100644 index 000000000..0dedb846e --- /dev/null +++ b/recipes/wip/tools/watchexec/recipe.toml @@ -0,0 +1,8 @@ +#TODO xdg-home and nix crates error +[source] +git = "https://github.com/watchexec/watchexec" +[build] +template = "custom" +script = """ +cookbook_cargo_packages watchexec-cli +""" diff --git a/recipes/wip/tools/watchmen/recipe.toml b/recipes/wip/tools/watchmen/recipe.toml new file mode 100644 index 000000000..a50d22ba7 --- /dev/null +++ b/recipes/wip/tools/watchmen/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/ahriroot/watchmen" +[build] +template = "custom" +script = """ +cookbook_cargo_packages watchmen watchmend +""" diff --git a/recipes/wip/tools/wayback-rs/recipe.toml b/recipes/wip/tools/wayback-rs/recipe.toml new file mode 100644 index 000000000..8265b0839 --- /dev/null +++ b/recipes/wip/tools/wayback-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/Neolex-Security/WaybackRust" +[build] +template = "cargo" diff --git a/recipes/wip/tools/wayshot/recipe.toml b/recipes/wip/tools/wayshot/recipe.toml new file mode 100644 index 000000000..55d9223c8 --- /dev/null +++ b/recipes/wip/tools/wayshot/recipe.toml @@ -0,0 +1,6 @@ +#TODO missing script for "make", see https://git.sr.ht/~shinyzenith/wayshot#compiling +[source] +git = "https://git.sr.ht/~shinyzenith/wayshot" +rev = "d3cdd329fe8263d5eca2ff62635fcb6b6ae57645" +[build] +template = "custom" diff --git a/recipes/wip/tools/wethr/recipe.toml b/recipes/wip/tools/wethr/recipe.toml new file mode 100644 index 000000000..8f8561cbf --- /dev/null +++ b/recipes/wip/tools/wethr/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/risoflora/wethr" +[build] +template = "cargo" diff --git a/recipes/wip/tools/weylus/recipe.toml b/recipes/wip/tools/weylus/recipe.toml new file mode 100644 index 000000000..e3cdb5f25 --- /dev/null +++ b/recipes/wip/tools/weylus/recipe.toml @@ -0,0 +1,28 @@ +#TODO not compiled or tested +# build instructions: https://github.com/H-M-H/Weylus#building +[source] +git = "https://github.com/H-M-H/Weylus" +[build] +template = "custom" +dependencies = [ + "pango", + "gstreamer", + "dbus", + "libx11", + "libxext", + "libxft", + "libxinerama", + "libxcursor", + "libxfixes", + "libxtst", + "libxrandr", + "libxcomposite", + "libxv", + "libxi", + "libxrender", + "libdrm", +] +script = """ +DYNAMIC_INIT +cookbook_cargo_packages weylus +""" diff --git a/recipes/wip/tools/wick/recipe.toml b/recipes/wip/tools/wick/recipe.toml new file mode 100644 index 000000000..30abca8d2 --- /dev/null +++ b/recipes/wip/tools/wick/recipe.toml @@ -0,0 +1,6 @@ +#TODO Missing script for "just", see https://github.com/candlecorp/wick#install-from-source +[source] +git = "https://github.com/candlecorp/wick" +rev = "7d498210c0cb729ee9b96d6fb226e0db3a514cba" +[build] +template = "custom" diff --git a/recipes/wip/tools/wpaperd/recipe.toml b/recipes/wip/tools/wpaperd/recipe.toml new file mode 100644 index 000000000..3e231f3f0 --- /dev/null +++ b/recipes/wip/tools/wpaperd/recipe.toml @@ -0,0 +1,8 @@ +#TODO make libxkbcommon work +[source] +git = "https://github.com/danyspin97/wpaperd" +[build] +template = "cargo" +dependencies = [ + "libxkbcommon", +] diff --git a/recipes/wip/tools/xcp/recipe.toml b/recipes/wip/tools/xcp/recipe.toml new file mode 100644 index 000000000..13f246333 --- /dev/null +++ b/recipes/wip/tools/xcp/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://github.com/tarka/xcp" +[build] +template = "cargo" diff --git a/recipes/wip/tools/xdg-utils/recipe.toml b/recipes/wip/tools/xdg-utils/recipe.toml new file mode 100644 index 000000000..8841d3aa7 --- /dev/null +++ b/recipes/wip/tools/xdg-utils/recipe.toml @@ -0,0 +1,5 @@ +#TODO compilation error +[source] +tar = "https://portland.freedesktop.org/download/xdg-utils-1.1.3.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/tools/xdotool/recipe.toml b/recipes/wip/tools/xdotool/recipe.toml new file mode 100644 index 000000000..3763ad06a --- /dev/null +++ b/recipes/wip/tools/xdotool/recipe.toml @@ -0,0 +1,13 @@ +#TODO missing script for "make", see https://github.com/jordansissel/xdotool/#building--compiling +[source] +git = "https://github.com/jordansissel/xdotool" +rev = "eb489de1b4fb3fd0cd935d68ae16ecd4c653ac7d" +[build] +template = "custom" +dependencies = [ + "libx11", + "libxi", + "libxinerama", + "libxkbcommon", + "libxtst", +] diff --git a/recipes/wip/tools/xdvdfs/recipe.toml b/recipes/wip/tools/xdvdfs/recipe.toml new file mode 100644 index 000000000..0e6c3787b --- /dev/null +++ b/recipes/wip/tools/xdvdfs/recipe.toml @@ -0,0 +1,8 @@ +#TODO require a command to move the executable to a proper folder +[source] +git = "https://github.com/antangelo/xdvdfs" +[build] +template = "custom" +script = """ +cookbook_cargo_packages xdvdfs-cli +""" diff --git a/recipes/wip/tools/xh/recipe.toml b/recipes/wip/tools/xh/recipe.toml new file mode 100644 index 000000000..9d65aecc2 --- /dev/null +++ b/recipes/wip/tools/xh/recipe.toml @@ -0,0 +1,5 @@ +#TODO network-interface crate error (after cargo update) +[source] +git = "https://github.com/ducaale/xh" +[build] +template = "cargo" diff --git a/recipes/wip/tools/xiu/recipe.toml b/recipes/wip/tools/xiu/recipe.toml new file mode 100644 index 000000000..608310b88 --- /dev/null +++ b/recipes/wip/tools/xiu/recipe.toml @@ -0,0 +1,13 @@ +#TODO webrtc-util crate error (after cargo update) +[source] +git = "https://github.com/harlanc/xiu" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo_packages xiu +""" diff --git a/recipes/wip/tools/xorriso/recipe.toml b/recipes/wip/tools/xorriso/recipe.toml new file mode 100644 index 000000000..119d299a0 --- /dev/null +++ b/recipes/wip/tools/xorriso/recipe.toml @@ -0,0 +1,5 @@ +#TODO can't recognize the redox target +[source] +tar = "https://www.gnu.org/software/xorriso/xorriso-1.5.6.pl02.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/tools/xsv/recipe.toml b/recipes/wip/tools/xsv/recipe.toml new file mode 100644 index 000000000..9dec0d298 --- /dev/null +++ b/recipes/wip/tools/xsv/recipe.toml @@ -0,0 +1,5 @@ +#TODO update the redox_syscall version on the dependency tree +[source] +git = "https://github.com/BurntSushi/xsv" +[build] +template = "cargo" diff --git a/recipes/wip/tools/zet/recipe.toml b/recipes/wip/tools/zet/recipe.toml new file mode 100644 index 000000000..02ec04cd7 --- /dev/null +++ b/recipes/wip/tools/zet/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/yarrow/zet" +[build] +template = "cargo" diff --git a/recipes/wip/tui/finch/recipe.toml b/recipes/wip/tui/finch/recipe.toml new file mode 100644 index 000000000..c7a578540 --- /dev/null +++ b/recipes/wip/tui/finch/recipe.toml @@ -0,0 +1,14 @@ +#TODO missing dependencies +[source] +tar = "https://sourceforge.net/projects/pidgin/files/Pidgin/2.14.12/pidgin-2.14.12.tar.bz2" +[build] +template = "custom" +dependencies = [ + "ncurses", +] +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-gtkui +) +cookbook_configure +""" diff --git a/recipes/wip/tui/gitu/recipe.toml b/recipes/wip/tui/gitu/recipe.toml new file mode 100644 index 000000000..bfff8af62 --- /dev/null +++ b/recipes/wip/tui/gitu/recipe.toml @@ -0,0 +1,5 @@ +#TODO update the redox_syscall crate version +[source] +git = "https://github.com/altsem/gitu" +[build] +template = "cargo" diff --git a/recipes/wip/tui/gitui/recipe.toml b/recipes/wip/tui/gitui/recipe.toml new file mode 100644 index 000000000..248b6792c --- /dev/null +++ b/recipes/wip/tui/gitui/recipe.toml @@ -0,0 +1,14 @@ +#TODO: Page fault +[source] +git = "https://github.com/extrawurst/gitui" + +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +DYNAMIC_INIT +export OPENSSL_NO_VENDOR=1 +cookbook_cargo +""" diff --git a/recipes/wip/tui/gyr/recipe.toml b/recipes/wip/tui/gyr/recipe.toml new file mode 100644 index 000000000..e0670abd7 --- /dev/null +++ b/recipes/wip/tui/gyr/recipe.toml @@ -0,0 +1,5 @@ +#TODO promote +[source] +git = "https://git.sr.ht/~f9/gyr" +[build] +template = "cargo" diff --git a/recipes/wip/tui/heh/recipe.toml b/recipes/wip/tui/heh/recipe.toml new file mode 100644 index 000000000..c7c3d6557 --- /dev/null +++ b/recipes/wip/tui/heh/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ndd7xv/heh" +[build] +template = "cargo" diff --git a/recipes/wip/tui/heretek/recipe.toml b/recipes/wip/tui/heretek/recipe.toml new file mode 100644 index 000000000..4264a4bea --- /dev/null +++ b/recipes/wip/tui/heretek/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/wcampbell0x2a/heretek" +[build] +template = "cargo" diff --git a/recipes/wip/tui/lazyjj/recipe.toml b/recipes/wip/tui/lazyjj/recipe.toml new file mode 100644 index 000000000..d574d40c0 --- /dev/null +++ b/recipes/wip/tui/lazyjj/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Cretezy/lazyjj" +[build] +template = "cargo" diff --git a/recipes/wip/tui/manga-tui/recipe.toml b/recipes/wip/tui/manga-tui/recipe.toml new file mode 100644 index 000000000..7eeb88bec --- /dev/null +++ b/recipes/wip/tui/manga-tui/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/josueBarretogit/manga-tui" +[build] +template = "cargo" +dependencies = [ + "dbus", +] diff --git a/recipes/wip/tui/nnn/recipe.toml b/recipes/wip/tui/nnn/recipe.toml new file mode 100644 index 000000000..98f60a31b --- /dev/null +++ b/recipes/wip/tui/nnn/recipe.toml @@ -0,0 +1,10 @@ +#TODO write a script for cross-compilation +# how to static link the libraries: https://github.com/jarun/nnn/wiki/Developer-guides#static-compilation +[source] +tar = "https://github.com/jarun/nnn/releases/download/v5.0/nnn-v5.0.tar.gz" +[build] +template = "custom" +dependencies = [ + "ncursesw", + "readline", +] diff --git a/recipes/wip/tui/nyaa-rs/recipe.toml b/recipes/wip/tui/nyaa-rs/recipe.toml new file mode 100644 index 000000000..d03bc813d --- /dev/null +++ b/recipes/wip/tui/nyaa-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Beastwick18/nyaa" +[build] +template = "cargo" diff --git a/recipes/wip/tui/oatmeal/recipe.toml b/recipes/wip/tui/oatmeal/recipe.toml new file mode 100644 index 000000000..ed8612d12 --- /dev/null +++ b/recipes/wip/tui/oatmeal/recipe.toml @@ -0,0 +1,5 @@ +#TODO openssl-sys crate error +[source] +git = "https://github.com/dustinblackman/oatmeal" +[build] +template = "cargo" diff --git a/recipes/wip/tui/otree/recipe.toml b/recipes/wip/tui/otree/recipe.toml new file mode 100644 index 000000000..189f36749 --- /dev/null +++ b/recipes/wip/tui/otree/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/fioncat/otree" +[build] +template = "cargo" diff --git a/recipes/wip/tui/projectable/recipe.toml b/recipes/wip/tui/projectable/recipe.toml new file mode 100644 index 000000000..c46bfdee9 --- /dev/null +++ b/recipes/wip/tui/projectable/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/dzfrias/projectable" +[build] +template = "cargo" diff --git a/recipes/wip/tui/radicle-tui/recipe.toml b/recipes/wip/tui/radicle-tui/recipe.toml new file mode 100644 index 000000000..b2b04d66e --- /dev/null +++ b/recipes/wip/tui/radicle-tui/recipe.toml @@ -0,0 +1,5 @@ +#TODO update the redox_syscall crate version +[source] +git = "https://seed.radicle.xyz/z39mP9rQAaGmERfUMPULfPUi473tY.git" +[build] +template = "cargo" diff --git a/recipes/wip/tui/regname/recipe.toml b/recipes/wip/tui/regname/recipe.toml new file mode 100644 index 000000000..cbe613fc8 --- /dev/null +++ b/recipes/wip/tui/regname/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/linkdd/regname" +[build] +template = "cargo" diff --git a/recipes/wip/tui/russ/recipe.toml b/recipes/wip/tui/russ/recipe.toml new file mode 100644 index 000000000..dcc7368bd --- /dev/null +++ b/recipes/wip/tui/russ/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/ckampfe/russ" +[build] +template = "cargo" diff --git a/recipes/wip/tui/rust-kanban/recipe.toml b/recipes/wip/tui/rust-kanban/recipe.toml new file mode 100644 index 000000000..017dbaaeb --- /dev/null +++ b/recipes/wip/tui/rust-kanban/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/yashs662/rust_kanban" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tui/rust-traverse/recipe.toml b/recipes/wip/tui/rust-traverse/recipe.toml new file mode 100644 index 000000000..9c405e2fe --- /dev/null +++ b/recipes/wip/tui/rust-traverse/recipe.toml @@ -0,0 +1,5 @@ +#TODO trash crate error +[source] +git = "https://github.com/dmcg310/Rust-Traverse" +[build] +template = "cargo" diff --git a/recipes/wip/tui/syndicationd/recipe.toml b/recipes/wip/tui/syndicationd/recipe.toml new file mode 100644 index 000000000..bb0a0ea2c --- /dev/null +++ b/recipes/wip/tui/syndicationd/recipe.toml @@ -0,0 +1,9 @@ +#TODO compiled but not tested +#TODO add a command to properly move the executable +[source] +git = "https://github.com/ymgyt/syndicationd" +[build] +template = "custom" +script = """ +cookbook_cargo_packages synd-term +""" diff --git a/recipes/wip/tui/tenere/recipe.toml b/recipes/wip/tui/tenere/recipe.toml new file mode 100644 index 000000000..5bb99003f --- /dev/null +++ b/recipes/wip/tui/tenere/recipe.toml @@ -0,0 +1,5 @@ +#TODO sys-info crate error +[source] +git = "https://github.com/pythops/tenere" +[build] +template = "cargo" diff --git a/recipes/wip/tui/terminusdm/recipe.toml b/recipes/wip/tui/terminusdm/recipe.toml new file mode 100644 index 000000000..a37a8aecc --- /dev/null +++ b/recipes/wip/tui/terminusdm/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/sumoduduk/terminusdm" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tui/termlaunch/recipe.toml b/recipes/wip/tui/termlaunch/recipe.toml new file mode 100644 index 000000000..40844ea21 --- /dev/null +++ b/recipes/wip/tui/termlaunch/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/amaterasu-uwu-xd/termlaunch" +[build] +template = "cargo" diff --git a/recipes/wip/tui/termscp/recipe.toml b/recipes/wip/tui/termscp/recipe.toml new file mode 100644 index 000000000..2e4cb6a44 --- /dev/null +++ b/recipes/wip/tui/termscp/recipe.toml @@ -0,0 +1,11 @@ +#TODO make dbus work +[source] +git = "https://github.com/veeso/termscp" +[build] +template = "custom" +dependencies = [ + "dbus", +] +script = """ +cookbook_cargo --no-default-features +""" diff --git a/recipes/wip/tui/thesaurust/recipe.toml b/recipes/wip/tui/thesaurust/recipe.toml new file mode 100644 index 000000000..9bc83665a --- /dev/null +++ b/recipes/wip/tui/thesaurust/recipe.toml @@ -0,0 +1,8 @@ +#TODO openssl error +[source] +git = "https://github.com/QuietPigeon2001/thesaurust" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tui/tooters/recipe.toml b/recipes/wip/tui/tooters/recipe.toml new file mode 100644 index 000000000..382f4bde7 --- /dev/null +++ b/recipes/wip/tui/tooters/recipe.toml @@ -0,0 +1,8 @@ +#TODO port the webbrowser crate +[source] +git = "https://github.com/joshka/tooters" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tui/tui-slides/recipe.toml b/recipes/wip/tui/tui-slides/recipe.toml new file mode 100644 index 000000000..beb218203 --- /dev/null +++ b/recipes/wip/tui/tui-slides/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/Chleba/tui-slides" +[build] +template = "cargo" diff --git a/recipes/wip/tui/twitch-tui/recipe.toml b/recipes/wip/tui/twitch-tui/recipe.toml new file mode 100644 index 000000000..28a166577 --- /dev/null +++ b/recipes/wip/tui/twitch-tui/recipe.toml @@ -0,0 +1,8 @@ +#TODO rustyline crate error +[source] +git = "https://github.com/Xithrius/twitch-tui" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/tui/xplr/recipe.toml b/recipes/wip/tui/xplr/recipe.toml new file mode 100644 index 000000000..85d594b99 --- /dev/null +++ b/recipes/wip/tui/xplr/recipe.toml @@ -0,0 +1,5 @@ +#TODO tuikit crate error +[source] +git = "https://github.com/sayanarijit/xplr" +[build] +template = "cargo" diff --git a/recipes/wip/tui/zenith/recipe.toml b/recipes/wip/tui/zenith/recipe.toml new file mode 100644 index 000000000..3e425ebe8 --- /dev/null +++ b/recipes/wip/tui/zenith/recipe.toml @@ -0,0 +1,5 @@ +#TODO async-io and rustix crate errors (after cargo update) +[source] +git = "https://github.com/bvaisvil/zenith" +[build] +template = "cargo" diff --git a/recipes/wip/vice/01_redox.patch b/recipes/wip/vice/01_redox.patch new file mode 100644 index 000000000..936cbdea5 --- /dev/null +++ b/recipes/wip/vice/01_redox.patch @@ -0,0 +1,107 @@ +diff -rupNw source-original/configure source/configure +--- source-original/configure 2018-12-19 22:25:02.000000000 +0100 ++++ source/configure 2019-02-12 17:09:41.954190921 +0100 +@@ -10320,54 +10320,6 @@ done + test -n "$DOS2UNIX" || DOS2UNIX="dos2unix" + + +-for ac_prog in xa xa65 +-do +- # Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if ${ac_cv_prog_XA+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$XA"; then +- ac_cv_prog_XA="$XA" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_XA="$ac_prog" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-XA=$ac_cv_prog_XA +-if test -n "$XA"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XA" >&5 +-$as_echo "$XA" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- test -n "$XA" && break +-done +-test -n "$XA" || XA="no" +- +- +-if test x"$XA" = "xno"; then +- as_fn_error $? "xa is missing" "$LINENO" 5 +-fi +- + if test x"$SVN" != "x"; then + svnrevision=`$SVN 2>dummy.tmp info $srcdir | grep Revision | cut -d " " -f 2` + rm dummy.tmp +@@ -15132,6 +15084,9 @@ fi + done + + ++UNIX_NETWORK_FUNCS_PRESENT=no ++ ++ + if test x"$UNIX_NETWORK_FUNCS_PRESENT" = "xyes"; then + + $as_echo "#define HAVE_NETWORK /**/" >>confdefs.h +diff -rupNw source-original/src/arch/sdl/rs232dev.c source/src/arch/sdl/rs232dev.c +--- source-original/src/arch/sdl/rs232dev.c 2018-08-13 20:18:45.000000000 +0200 ++++ source/src/arch/sdl/rs232dev.c 2019-02-11 10:16:12.989841923 +0100 +@@ -27,7 +27,7 @@ + #include "vice.h" + + #ifdef UNIX_COMPILE +-#include "rs232dev-unix.c" ++//#include "rs232dev-unix.c" + #endif + + #ifdef WIN32_COMPILE +diff -rupNw source-original/src/opencbm.h source/src/opencbm.h +--- source-original/src/opencbm.h 2018-08-22 21:01:32.000000000 +0200 ++++ source/src/opencbm.h 2019-02-11 09:28:21.775162862 +0100 +@@ -117,6 +117,10 @@ typedef unsigned char __u_char; + typedef unsigned char __u_char; + #endif + ++#ifdef __redox__ ++typedef unsigned char __u_char; ++#endif ++ + #endif + + /* specifiers for the IEC bus lines */ +diff -rupNw source-original/src/sound.c source/src/sound.c +--- source-original/src/sound.c 2018-12-17 19:44:43.000000000 +0100 ++++ source/src/sound.c 2019-02-12 08:57:18.934381713 +0100 +@@ -1001,6 +1001,9 @@ int sound_open(void) + break; + } + ++ speed = 44100; ++ channels = 2; ++ + /* find pdev */ + for (i = 0; (pdev = sound_devices[i]); i++) { + if (!playname || (pdev->name && !strcasecmp(playname, pdev->name))) { diff --git a/recipes/wip/vice/recipe.sh b/recipes/wip/vice/recipe.sh new file mode 100644 index 000000000..1f5a713e1 --- /dev/null +++ b/recipes/wip/vice/recipe.sh @@ -0,0 +1,42 @@ +VERSION=3.3 +TAR=https://sourceforge.net/projects/vice-emu/files/releases/vice-$VERSION.tar.gz/download +TAR_SHA256=1a55b38cc988165b077808c07c52a779d181270b28c14b5c9abf4e569137431d +BUILD_DEPENDS=(sdl1 liborbital) + +function recipe_version { + echo "$VERSION" + skip=1 +} + +function recipe_build { + sysroot="$(realpath ../sysroot)" + wget -O config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" + + export sdl_config="$sysroot/bin/sdl-config" + export CFLAGS="-I$sysroot/include -I$sysroot/include/SDL" + export CXXFLAGS="$CFLAGS" + export LDFLAGS="-L$sysroot/lib -static" + + ./configure \ + --build=${BUILD} \ + --host=${HOST} \ + --prefix='' \ + --enable-sdlui \ + --disable-sdlui2 \ + --disable-rs232 \ + --disable-realdevice \ + --disable-midi + "$REDOX_MAKE" -j"$($NPROC)" + skip=1 +} + +function recipe_clean { + "$REDOX_MAKE" clean + skip=1 +} + +function recipe_stage { + dest="$(realpath $1)" + "$REDOX_MAKE" DESTDIR="$dest" install + skip=1 +} diff --git a/recipes/wip/video/converters/handbrake-cli/recipe.toml b/recipes/wip/video/converters/handbrake-cli/recipe.toml new file mode 100644 index 000000000..9a9e7e779 --- /dev/null +++ b/recipes/wip/video/converters/handbrake-cli/recipe.toml @@ -0,0 +1,35 @@ +#TODO not compiled or tested +# build instructions - https://handbrake.fr/docs/en/1.7.0/developer/build-linux.html +# dependencies - https://handbrake.fr/docs/en/1.7.0/developer/install-dependencies-ubuntu.html +[source] +tar = "https://handbrake.fr/rotation.php?file=HandBrake-1.8.1-source.tar.bz2" +[build] +template = "custom" +dependencies = [ + "libflac", + "fontconfig", + "freetype2", + "fribidi", + "harfbuzz", + "jansson", + "lame", + "libass", + "libiconv", + "libjpeg", + "libogg", + "libsamplerate", + "libtheora", + "libvorbis", + "libvpx", + "x264", + "libxml2", + "xz", + "libopus", + "speex", +] +script = """ +COOKBOOK_CONFIGURE_FLAGS+=( + --disable-gtk +) +cookbook_configure +""" diff --git a/recipes/wip/video/converters/trv/recipe.toml b/recipes/wip/video/converters/trv/recipe.toml new file mode 100644 index 000000000..7170e00fe --- /dev/null +++ b/recipes/wip/video/converters/trv/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/transformrs/trv" +[build] +template = "cargo" +[package] +dependencies = [ + "ffmpeg6", + "typst", +] diff --git a/recipes/wip/video/editors/anime-effects/recipe.toml b/recipes/wip/video/editors/anime-effects/recipe.toml new file mode 100644 index 000000000..afe1ac4f9 --- /dev/null +++ b/recipes/wip/video/editors/anime-effects/recipe.toml @@ -0,0 +1,12 @@ +#TODO missing script for QMake, see https://github.com/AnimeEffectsDevs/AnimeEffects#clone--building +[source] +git = "https://github.com/AnimeEffectsDevs/AnimeEffects" +rev = "6080497684809aa5c73bf015fec36e88443f6d11" +[build] +template = "custom" +dependencies = [ + "ffmpeg6", + "mesa", + "qt5-base", + "glib", +] diff --git a/recipes/wip/video/editors/blind/recipe.toml b/recipes/wip/video/editors/blind/recipe.toml new file mode 100644 index 000000000..6339138df --- /dev/null +++ b/recipes/wip/video/editors/blind/recipe.toml @@ -0,0 +1,11 @@ +#TODO missing script for gnu make +#TODO verify if ffmpeg and imagemagick are needed at compile-time or run-time +[source] +tar = "https://dl.suckless.org/tools/blind-1.1.tar.gz" +[build] +template = "custom" +[package] +dependencies = [ + "ffmpeg6", + "imagemagick", +] diff --git a/recipes/wip/video/editors/openshot/recipe.toml b/recipes/wip/video/editors/openshot/recipe.toml new file mode 100644 index 000000000..0f4d2a053 --- /dev/null +++ b/recipes/wip/video/editors/openshot/recipe.toml @@ -0,0 +1,19 @@ +#TODO not compiled or tested +# launch instructions: https://github.com/OpenShot/openshot-qt#launch +[source] +git = "https://github.com/OpenShot/openshot-qt" +rev = "v3.3.0" +shallow_clone = true +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}/usr/bin/openshot-qt" +cp -rv "${COOKBOOK_SOURCE}"/src/* "${COOKBOOK_STAGE}/usr/bin/openshot-qt" +echo "#!/usr/bin/env sh \n python3 /usr/bin/openshot-qt/src/launch.py" > "${COOKBOOK_STAGE}"/usr/bin/openshot +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/openshot +""" +[package] +dependencies = [ + "libopenshot", + "libopenshot-audio", +] diff --git a/recipes/wip/video/editors/pitivi/recipe.toml b/recipes/wip/video/editors/pitivi/recipe.toml new file mode 100644 index 000000000..e4acd1ee3 --- /dev/null +++ b/recipes/wip/video/editors/pitivi/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +#TODO determine minimum dependencies from meson log +# lacking build instructions +[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 +[build] +template = "meson" +mesonflags = [ + "-Ddisable-help=true", +] +#dependencies = [ +# "gtk3", +# "gstreamer", +# "libpeas", +#] diff --git a/recipes/wip/video/other/alass/recipe.toml b/recipes/wip/video/other/alass/recipe.toml new file mode 100644 index 000000000..1f5036274 --- /dev/null +++ b/recipes/wip/video/other/alass/recipe.toml @@ -0,0 +1,8 @@ +#TODO linker error (after cargo update) +[source] +git = "https://github.com/kaegi/alass" +[build] +template = "custom" +script = """ +cookbook_cargo_packages alass-cli +""" diff --git a/recipes/wip/video/other/av1an/recipe.toml b/recipes/wip/video/other/av1an/recipe.toml new file mode 100644 index 000000000..2fca23e55 --- /dev/null +++ b/recipes/wip/video/other/av1an/recipe.toml @@ -0,0 +1,11 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/master-of-zen/Av1an" +[build] +template = "custom" +dependencies = [ + "ffmpeg6", +] +script = """ +cookbook_cargo_packages av1an +""" diff --git a/recipes/wip/video/other/avp/recipe.toml b/recipes/wip/video/other/avp/recipe.toml new file mode 100644 index 000000000..aa85c15c8 --- /dev/null +++ b/recipes/wip/video/other/avp/recipe.toml @@ -0,0 +1,8 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/rust-av/avp" +[build] +template = "cargo" +dependencies = [ + "sdl2", +] diff --git a/recipes/wip/video/other/detect-scene-change/recipe.toml b/recipes/wip/video/other/detect-scene-change/recipe.toml new file mode 100644 index 000000000..f23ff2f25 --- /dev/null +++ b/recipes/wip/video/other/detect-scene-change/recipe.toml @@ -0,0 +1,8 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/soruly/detect-scene-change" +[build] +template = "cargo" +dependencies = [ + "ffmpeg6", +] diff --git a/recipes/wip/video/other/dovi-tool/recipe.toml b/recipes/wip/video/other/dovi-tool/recipe.toml new file mode 100644 index 000000000..53fe1ecac --- /dev/null +++ b/recipes/wip/video/other/dovi-tool/recipe.toml @@ -0,0 +1,5 @@ +#TODO yeslogic-fontconfig-sys crate error +[source] +git = "https://github.com/quietvoid/dovi_tool" +[build] +template = "cargo" diff --git a/recipes/wip/video/other/gnome-video-effects/recipe.toml b/recipes/wip/video/other/gnome-video-effects/recipe.toml new file mode 100644 index 000000000..58890a284 --- /dev/null +++ b/recipes/wip/video/other/gnome-video-effects/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "https://download.gnome.org/sources/gnome-video-effects/0.6/gnome-video-effects-0.6.0.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/video/other/gopro-assembler/recipe.toml b/recipes/wip/video/other/gopro-assembler/recipe.toml new file mode 100644 index 000000000..b260cf57f --- /dev/null +++ b/recipes/wip/video/other/gopro-assembler/recipe.toml @@ -0,0 +1,5 @@ +#TODO camino crate error +[source] +git = "https://github.com/alichtman/gopro-chaptered-video-assembler" +[build] +template = "cargo" diff --git a/recipes/wip/video/other/gyroflow/recipe.toml b/recipes/wip/video/other/gyroflow/recipe.toml new file mode 100644 index 000000000..0c3211dd3 --- /dev/null +++ b/recipes/wip/video/other/gyroflow/recipe.toml @@ -0,0 +1,11 @@ +#TODO maybe missing dependencies, see https://github.com/gyroflow/gyroflow/blob/master/_scripts/linux.just +[source] +git = "https://github.com/gyroflow/gyroflow" +[build] +template = "cargo" +dependencies = [ + "fontconfig", + "freetype2", + "ffmpeg6", + "qt6-base", +] diff --git a/recipes/wip/video/other/imdb-rename/recipe.toml b/recipes/wip/video/other/imdb-rename/recipe.toml new file mode 100644 index 000000000..aa48fba6b --- /dev/null +++ b/recipes/wip/video/other/imdb-rename/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/BurntSushi/imdb-rename" +[build] +template = "cargo" diff --git a/recipes/wip/video/other/jerry/recipe.toml b/recipes/wip/video/other/jerry/recipe.toml new file mode 100644 index 000000000..d5c65c755 --- /dev/null +++ b/recipes/wip/video/other/jerry/recipe.toml @@ -0,0 +1,18 @@ +#TODO missing fzf dependency: https://github.com/junegunn/fzf +[source] +git = "https://github.com/justchokingaround/jerry" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp "${COOKBOOK_SOURCE}"/jerry.sh "${COOKBOOK_STAGE}"/usr/bin/jerry +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/jerry +""" +[package] +dependencies = [ + "gnu-grep", + "sed", + "curl", + #"fzf", + "mpv", +] diff --git a/recipes/wip/video/other/lecturecut/recipe.toml b/recipes/wip/video/other/lecturecut/recipe.toml new file mode 100644 index 000000000..23b3e1c1b --- /dev/null +++ b/recipes/wip/video/other/lecturecut/recipe.toml @@ -0,0 +1,5 @@ +#TODO update the redox_syscall crate version (after cargo update) +[source] +git = "https://github.com/LectureCut/CLI" +[build] +template = "cargo" diff --git a/recipes/wip/video/other/lobster/recipe.toml b/recipes/wip/video/other/lobster/recipe.toml new file mode 100644 index 000000000..8933315e1 --- /dev/null +++ b/recipes/wip/video/other/lobster/recipe.toml @@ -0,0 +1,10 @@ +#TODO promote +[source] +git = "https://github.com/justchokingaround/lobster" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +cp "${COOKBOOK_SOURCE}"/lobster.sh "${COOKBOOK_STAGE}"/usr/bin/lobster +chmod a+x "${COOKBOOK_STAGE}"/usr/bin/lobster +""" diff --git a/recipes/wip/video/other/pipeline/recipe.toml b/recipes/wip/video/other/pipeline/recipe.toml new file mode 100644 index 000000000..ef5c4de62 --- /dev/null +++ b/recipes/wip/video/other/pipeline/recipe.toml @@ -0,0 +1,16 @@ +#TODO make gtk4 work +[source] +tar = "https://gitlab.com/schmiddi-on-mobile/pipeline/-/package_files/114831818/download" +[build] +template = "custom" +dependencies = [ + "gtk4", + "glib", + "libadwaita", + "gdk-pixbuf", +] +script = """ +cookbook_cargo +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/glib-2.0/schemas +cp -rv "${COOKBOOK_SOURCE}"/data/de.schmidhuberj.tubefeeder.gschema.xml "${COOKBOOK_STAGE}"/usr/share/glib-2.0/schemas +""" diff --git a/recipes/wip/video/other/smoothie-rs/recipe.toml b/recipes/wip/video/other/smoothie-rs/recipe.toml new file mode 100644 index 000000000..1a1846a7d --- /dev/null +++ b/recipes/wip/video/other/smoothie-rs/recipe.toml @@ -0,0 +1,5 @@ +#TODO rfd crate error +[source] +git = "https://github.com/couleur-tweak-tips/smoothie-rs" +[build] +template = "cargo" diff --git a/recipes/wip/video/other/streamlib/recipe.toml b/recipes/wip/video/other/streamlib/recipe.toml new file mode 100644 index 000000000..05abc5c27 --- /dev/null +++ b/recipes/wip/video/other/streamlib/recipe.toml @@ -0,0 +1,8 @@ +#TODO shared_child crate error (after cargo update) +[source] +git = "https://github.com/streamlib/streamlib" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/video/other/sub-batch/recipe.toml b/recipes/wip/video/other/sub-batch/recipe.toml new file mode 100644 index 000000000..09263a7ea --- /dev/null +++ b/recipes/wip/video/other/sub-batch/recipe.toml @@ -0,0 +1,5 @@ +#TODO interprocess crate error +[source] +git = "https://github.com/kl/sub-batch" +[build] +template = "cargo" diff --git a/recipes/wip/video/other/teres/recipe.toml b/recipes/wip/video/other/teres/recipe.toml new file mode 100644 index 000000000..8387be1f3 --- /dev/null +++ b/recipes/wip/video/other/teres/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing dependencies, see https://github.com/animafps/teres/blob/main/CONTRIBUTING.md +[source] +git = "https://github.com/animafps/teres" +[build] +template = "cargo" +dependencies = [ + "ffmpeg6", +] diff --git a/recipes/wip/video/other/timelens/recipe.toml b/recipes/wip/video/other/timelens/recipe.toml new file mode 100644 index 000000000..c4a3ccd43 --- /dev/null +++ b/recipes/wip/video/other/timelens/recipe.toml @@ -0,0 +1,8 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/timelens/timelens" +[build] +template = "cargo" +dependencies = [ + "gstreamer", +] diff --git a/recipes/wip/video/other/trimmeroni/recipe.toml b/recipes/wip/video/other/trimmeroni/recipe.toml new file mode 100644 index 000000000..2666aa2d9 --- /dev/null +++ b/recipes/wip/video/other/trimmeroni/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/outfrost/trimmeroni" +[build] +template = "cargo" diff --git a/recipes/wip/video/other/vapoursynth/recipe.toml b/recipes/wip/video/other/vapoursynth/recipe.toml new file mode 100644 index 000000000..9d3897b53 --- /dev/null +++ b/recipes/wip/video/other/vapoursynth/recipe.toml @@ -0,0 +1,7 @@ +#TODO maybe wrong script, see https://vapoursynth.com/doc/installation.html#linux-and-os-x-compilation +[source] +git = "https://github.com/vapoursynth/vapoursynth" +rev = "3157049549a0940359b37004aeeeebd8f1db665e" +script = "./autogen.sh" +[build] +template = "configure" diff --git a/recipes/wip/video/other/video4discord/recipe.toml b/recipes/wip/video/other/video4discord/recipe.toml new file mode 100644 index 000000000..975d69ba3 --- /dev/null +++ b/recipes/wip/video/other/video4discord/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Seebass22/video4discord" +[build] +template = "custom" +script = """ +cookbook_cargo_packages video4discord +""" diff --git a/recipes/wip/video/other/vidmerger/recipe.toml b/recipes/wip/video/other/vidmerger/recipe.toml new file mode 100644 index 000000000..47fd9ce24 --- /dev/null +++ b/recipes/wip/video/other/vidmerger/recipe.toml @@ -0,0 +1,8 @@ +#TODO Not compiled or tested +[source] +git = "https://github.com/tgotwig/vidmerger" +[build] +template = "cargo" +dependencies = [ + "ffmpeg6", +] diff --git a/recipes/wip/video/other/yt-chanvids/recipe.toml b/recipes/wip/video/other/yt-chanvids/recipe.toml new file mode 100644 index 000000000..c9a0bf717 --- /dev/null +++ b/recipes/wip/video/other/yt-chanvids/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/daniel-araujo/yt-chanvids" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/video/webcam/clipqr/recipe.toml b/recipes/wip/video/webcam/clipqr/recipe.toml new file mode 100644 index 000000000..25da03fd6 --- /dev/null +++ b/recipes/wip/video/webcam/clipqr/recipe.toml @@ -0,0 +1,8 @@ +#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/video/webcam/tuicam/recipe.toml b/recipes/wip/video/webcam/tuicam/recipe.toml new file mode 100644 index 000000000..e56f5a0c4 --- /dev/null +++ b/recipes/wip/video/webcam/tuicam/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/hlsxx/tuicam" +[build] +template = "cargo" +dependencies = [ + "opencv4", +] diff --git a/recipes/wip/video/webcam/webcamoid/recipe.toml b/recipes/wip/video/webcam/webcamoid/recipe.toml new file mode 100644 index 000000000..70eefe4c7 --- /dev/null +++ b/recipes/wip/video/webcam/webcamoid/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +# build instructions: https://github.com/webcamoid/webcamoid/wiki/Raw-build-and-install +[source] +git = "https://github.com/webcamoid/webcamoid" +rev = "171b91e378c9bfbd4c425415322971e4e8872108" +[build] +template = "cmake" +dependencies = [ + "qt5-base", + "qt5-declarative", + "qt5-quickcontrols2", + "qt5-svg", +] diff --git a/recipes/wip/vm/cloud-hypervisor/recipe.toml b/recipes/wip/vm/cloud-hypervisor/recipe.toml new file mode 100644 index 000000000..e2d9bca3a --- /dev/null +++ b/recipes/wip/vm/cloud-hypervisor/recipe.toml @@ -0,0 +1,6 @@ +#TODO port to redox +# required host dependencies - https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/building.md#install-prerequisites +[source] +git = "https://github.com/cloud-hypervisor/cloud-hypervisor" +[build] +template = "cargo" diff --git a/recipes/wip/vm/crosvm/recipe.toml b/recipes/wip/vm/crosvm/recipe.toml new file mode 100644 index 000000000..967bc0ffb --- /dev/null +++ b/recipes/wip/vm/crosvm/recipe.toml @@ -0,0 +1,18 @@ +#TODO port to redox +#TODO maybe missing dependencies +#TODO required host dependencies - https://github.com/google/crosvm/blob/main/tools/install-deps +# feature flags - https://crosvm.dev/doc/crosvm/#feature-flags +# how to use - https://crosvm.dev/book/running_crosvm/example_usage.html +# examples - https://github.com/google/crosvm/tree/main/tools/examples +[source] +git = "https://chromium.googlesource.com/crosvm/crosvm" +[build] +template = "cargo" +dependencies = [ + "ffmpeg6", + "libcap", + "dbus", + "libepoxy", + "glib", + "libslirp", +] diff --git a/recipes/wip/vm/firecracker/recipe.toml b/recipes/wip/vm/firecracker/recipe.toml new file mode 100644 index 000000000..ea9463d3b --- /dev/null +++ b/recipes/wip/vm/firecracker/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/firecracker-microvm/firecracker" +[build] +template = "custom" +script = """ +cookbook_cargo_packages firecracker +""" diff --git a/recipes/wip/vm/libguestfs/recipe.toml b/recipes/wip/vm/libguestfs/recipe.toml new file mode 100644 index 000000000..cc3244b81 --- /dev/null +++ b/recipes/wip/vm/libguestfs/recipe.toml @@ -0,0 +1,5 @@ +#TODO determine the dependencies, read https://libguestfs.org/guestfs-building.1.html +[source] +tar = "https://download.libguestfs.org/1.52-stable/libguestfs-1.52.1.tar.gz" +[build] +template = "configure" diff --git a/recipes/wip/vm/libvirt/recipe.toml b/recipes/wip/vm/libvirt/recipe.toml new file mode 100644 index 000000000..c544bea8a --- /dev/null +++ b/recipes/wip/vm/libvirt/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://libvirt.org/compiling.html#configuring-the-project +[source] +tar = "https://download.libvirt.org/libvirt-10.7.0.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/vm/qemu/recipe.toml b/recipes/wip/vm/qemu/recipe.toml new file mode 100644 index 000000000..31d7010f8 --- /dev/null +++ b/recipes/wip/vm/qemu/recipe.toml @@ -0,0 +1,52 @@ +[source] +git = "https://github.com/jackpot51/qemu.git" +shallow_clone = true + +[build] +template = "custom" +dependencies = [ + "curl", + "gettext", + "glib", + "libffi", + "libiconv", + "libjpeg", + "liborbital", + "libpng", + "libstdcxx", + "mesa", + "nghttp2", + "openssl1", + "pcre2", + "pixman", + "sdl2", + "sdl2-image", + "zlib", +] +script = """ +DYNAMIC_INIT +COOKBOOK_CONFIGURE_FLAGS=( + --host="${TARGET}" + --prefix="/usr" + --cross-prefix="${TARGET}" + --disable-coroutine-pool + --disable-dbus-display + --disable-tpm +) +case "${TARGET}" in + aarch64-unknown-redox) + COOKBOOK_CONFIGURE_FLAGS+=(--target-list=aarch64-softmmu) + ;; + i586-unknown-redox | i686-unknown-redox) + COOKBOOK_CONFIGURE_FLAGS+=(--target-list=i386-softmmu) + ;; + x86_64-unknown-redox) + COOKBOOK_CONFIGURE_FLAGS+=(--target-list=x86_64-softmmu) + ;; + *) + echo "unsupported target ${TARGET}" + exit 1 + ;; +esac +cookbook_configure +""" diff --git a/recipes/wip/vm/v86/recipe.toml b/recipes/wip/vm/v86/recipe.toml new file mode 100644 index 000000000..ddf32ffb3 --- /dev/null +++ b/recipes/wip/vm/v86/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script for "make", see https://github.com/copy/v86#how-to-build-run-and-embed +[source] +git = "https://github.com/copy/v86" +[build] +template = "custom" diff --git a/recipes/wip/vm/virtualbox/recipe.toml b/recipes/wip/vm/virtualbox/recipe.toml new file mode 100644 index 000000000..26a78e72a --- /dev/null +++ b/recipes/wip/vm/virtualbox/recipe.toml @@ -0,0 +1,27 @@ +#TODO missing script for kbuild +#TODO missing dependencies +# build instructions: +# https://www.virtualbox.org/wiki/Build_instructions +# https://www.virtualbox.org/wiki/Linux%20build%20instructions +# how to port - https://www.virtualbox.org/wiki/Porting_VirtualBox +[source] +tar = "https://download.virtualbox.org/virtualbox/7.0.20/VirtualBox-7.0.20.tar.bz2" +[build] +template = "custom" +dependencies = [ + "libcap", + "curl", + "libopus", + "pulseaudio", + "qt5-3d", + "qt5-x11extras", + "qt5-tools", + "sdl1", + "sdl2-ttf", + "openssl1", + "libvpx", + "libxml2", + "libxslt", + "zlib", + "mesa", +] diff --git a/recipes/wip/wayland/anvil/recipe.toml b/recipes/wip/wayland/anvil/recipe.toml new file mode 100644 index 000000000..ea5816f42 --- /dev/null +++ b/recipes/wip/wayland/anvil/recipe.toml @@ -0,0 +1,21 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Smithay/smithay" +[build] +dependencies = [ + "libwayland", + "libxkbcommon", +] +template = "custom" +script = """ +package=anvil +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${package}" \ + --release + --winit + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${package}" \ + "${COOKBOOK_STAGE}/usr/bin/${package}" +""" diff --git a/recipes/wip/wayland/fht-compositor/recipe.toml b/recipes/wip/wayland/fht-compositor/recipe.toml new file mode 100644 index 000000000..33ada5d7f --- /dev/null +++ b/recipes/wip/wayland/fht-compositor/recipe.toml @@ -0,0 +1,25 @@ +#TODO not compiled or tested +#TODO enable the "opt" profile once wayland and eudev is working +[source] +git = "https://github.com/nferhat/fht-compositor" +[build] +template = "custom" +dependencies = [ + "libwayland", + "libxkbcommon", + "mesa", +] +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/wayland-sessions +cp -rv "${COOKBOOK_SOURCE}"/res/fht-compositor.desktop "${COOKBOOK_STAGE}"/usr/share/wayland-sessions +package=fht-compositor +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${package}" \ + --release + --winit-backend + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${package}" \ + "${COOKBOOK_STAGE}/usr/bin/${package}" +""" diff --git a/recipes/wip/wayland/hyprland/recipe.toml b/recipes/wip/wayland/hyprland/recipe.toml new file mode 100644 index 000000000..4512978b5 --- /dev/null +++ b/recipes/wip/wayland/hyprland/recipe.toml @@ -0,0 +1,27 @@ +#TODO not compiled or tested +# build instructions: https://wiki.hyprland.org/Getting-Started/Installation/#cmake-recommended +[source] +git = "https://github.com/hyprwm/Hyprland" +rev = "ed936430216e7aa5f6f53d22eff713f8e9ed69ac" +[build] +template = "custom" +dependencies = [ + "libinput", + "libxkbcommon", + "libxcb", + "pango", + "cairo", + "pixman", + "libwayland", + "seatd", + "libxrender", + "libx11", + "libxcomposite", + "libxfixes", +] +script = """ +DYNAMIC_INIT +cookbook_cmake +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/wayland-sessions +cp -rv "${COOKBOOK_SOURCE}"/example/hyprland.desktop "${COOKBOOK_STAGE}"/usr/share/wayland-sessions +""" diff --git a/recipes/wip/wayland/libwayland/recipe.toml b/recipes/wip/wayland/libwayland/recipe.toml new file mode 100644 index 000000000..78fa82c96 --- /dev/null +++ b/recipes/wip/wayland/libwayland/recipe.toml @@ -0,0 +1,20 @@ +#TODO: Requires sys/signalfd.h SFD_CLOEXEC, sys/timerfd.h TFD_CLOEXEC +#TODO: F_DUPFD_CLOEXEC, MSG_CMSG_CLOEXEC, MSG_NOSIGNAL TFD_TIMER_ABSTIME +[source] +tar = "https://gitlab.freedesktop.org/wayland/wayland/-/releases/1.24.0/downloads/wayland-1.24.0.tar.xz" +patches = [ + #FIXME: This patch is just a shim. Remove this patch + "redox.patch" +] +[build] +template = "meson" +dependencies = [ + "libffi", + "expat", + "libxml2", +] +mesonflags = [ + "-Ddocumentation=false", + "-Dtests=false", + "-Ddtd_validation=false", +] diff --git a/recipes/wip/wayland/libwayland/redox.patch b/recipes/wip/wayland/libwayland/redox.patch new file mode 100644 index 000000000..a292c32a9 --- /dev/null +++ b/recipes/wip/wayland/libwayland/redox.patch @@ -0,0 +1,212 @@ +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 +@@ -80,8 +80,6 @@ + ffi_dep = dependency('libffi') + + decls = [ +- { 'header': 'sys/signalfd.h', 'symbol': 'SFD_CLOEXEC' }, +- { 'header': 'sys/timerfd.h', 'symbol': 'TFD_CLOEXEC' }, + { 'header': 'time.h', 'symbol': 'CLOCK_MONOTONIC' }, + ] + +diff -ruwN source-old/src/connection.c source/src/connection.c +--- source-old/src/connection.c 2025-07-06 06:11:26.000000000 -0600 ++++ source/src/connection.c 2025-11-13 12:08:42.512796844 -0700 +@@ -490,7 +490,7 @@ + + do { + len = sendmsg(connection->fd, &msg, +- MSG_NOSIGNAL | MSG_DONTWAIT); ++ MSG_DONTWAIT); + } while (len == -1 && errno == EINTR); + + if (len == -1) +@@ -1506,8 +1506,10 @@ + char *buffer; + size_t buffer_length; + ++#if !defined(__redox__) + f = open_memstream(&buffer, &buffer_length); + if (f == NULL) ++#endif + return; + + clock_gettime(CLOCK_REALTIME, &tp); +diff -ruwN source-old/src/event-loop.c source/src/event-loop.c +--- source-old/src/event-loop.c 2025-07-06 06:11:26.000000000 -0600 ++++ source/src/event-loop.c 2025-11-13 12:08:42.513005175 -0700 +@@ -35,8 +35,8 @@ + #include + #include + #include +-#include +-#include ++// #include ++// #include + #include + #include "timespec-util.h" + #include "wayland-util.h" +@@ -259,24 +259,13 @@ + + static int + set_timer(int timerfd, struct timespec deadline) { +- struct itimerspec its; +- +- its.it_interval.tv_sec = 0; +- its.it_interval.tv_nsec = 0; +- its.it_value = deadline; +- return timerfd_settime(timerfd, TFD_TIMER_ABSTIME, &its, NULL); ++ return 0; + } + + static int + clear_timer(int timerfd) + { +- struct itimerspec its; +- +- its.it_interval.tv_sec = 0; +- its.it_interval.tv_nsec = 0; +- its.it_value.tv_sec = 0; +- its.it_value.tv_nsec = 0; +- return timerfd_settime(timerfd, 0, &its, NULL); ++ return 0; + } + + static void +@@ -307,7 +296,7 @@ + wl_timer_heap_ensure_timerfd(struct wl_timer_heap *timers) + { + struct epoll_event ep; +- int timer_fd; ++ int timer_fd = 0; + + if (timers->base.fd != -1) + return 0; +@@ -316,17 +305,6 @@ + ep.events = EPOLLIN; + ep.data.ptr = timers; + +- timer_fd = timerfd_create(CLOCK_MONOTONIC, +- TFD_CLOEXEC | TFD_NONBLOCK); +- if (timer_fd < 0) +- return -1; +- +- if (epoll_ctl(timers->base.loop->epoll_fd, +- EPOLL_CTL_ADD, timer_fd, &ep) < 0) { +- close(timer_fd); +- return -1; +- } +- + timers->base.fd = timer_fd; + return 0; + } +@@ -677,11 +655,12 @@ + { + struct wl_event_source_signal *signal_source = + (struct wl_event_source_signal *) source; +- struct signalfd_siginfo signal_info; ++ /*struct signalfd_siginfo signal_info; + int len; + + len = read(source->fd, &signal_info, sizeof signal_info); + if (!(len == -1 && errno == EAGAIN) && len != sizeof signal_info) ++ */ + /* Is there anything we can do here? Will this ever happen? */ + wl_log("signalfd read error: %s\n", strerror(errno)); + +@@ -730,7 +709,7 @@ + + sigemptyset(&mask); + sigaddset(&mask, signal_number); +- source->base.fd = signalfd(-1, &mask, SFD_CLOEXEC | SFD_NONBLOCK); ++ // source->base.fd = signalfd(-1, &mask, SFD_CLOEXEC | SFD_NONBLOCK); + sigprocmask(SIG_BLOCK, &mask, NULL); + + source->func = func; +diff -ruwN source-old/src/meson.build source/src/meson.build +--- source-old/src/meson.build 2025-07-06 06:11:26.000000000 -0600 ++++ source/src/meson.build 2025-11-13 12:08:42.513181686 -0700 +@@ -81,8 +81,7 @@ + endif + + if meson.is_cross_build() or not get_option('scanner') +- scanner_dep = dependency('wayland-scanner', native: true, version: meson.project_version()) +- wayland_scanner_for_build = find_program(scanner_dep.get_variable(pkgconfig: 'wayland_scanner')) ++ wayland_scanner_for_build = find_program('wayland-scanner', native: true) + else + wayland_scanner_for_build = wayland_scanner + endif +diff -ruwN source-old/src/wayland-os.c source/src/wayland-os.c +--- source-old/src/wayland-os.c 2025-07-06 06:11:26.000000000 -0600 ++++ source/src/wayland-os.c 2025-11-13 12:08:42.513310047 -0700 +@@ -134,11 +134,13 @@ + { + int newfd; + ++#if defined(F_DUPFD_CLOEXEC) + newfd = wl_fcntl(fd, F_DUPFD_CLOEXEC, minfd); + if (newfd >= 0) + return newfd; + if (errno != EINVAL) + return -1; ++#endif + + newfd = wl_fcntl(fd, F_DUPFD, minfd); + return set_cloexec_or_close(newfd); +@@ -189,7 +191,7 @@ + #else + ssize_t len; + +- len = wl_recvmsg(sockfd, msg, flags | MSG_CMSG_CLOEXEC); ++ len = wl_recvmsg(sockfd, msg, flags); + if (len >= 0) + return len; + if (errno != EINVAL) +diff -ruwN source-old/src/wayland-server.c source/src/wayland-server.c +--- source-old/src/wayland-server.c 2025-07-06 06:11:26.000000000 -0600 ++++ source/src/wayland-server.c 2025-11-13 12:08:42.513500955 -0700 +@@ -39,7 +39,7 @@ + #include + #include + #include +-#include ++// #include + #include + #include + +@@ -1206,9 +1206,9 @@ + return NULL; + } + +- display->terminate_efd = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK); +- if (display->terminate_efd < 0) +- goto err_eventfd; ++ // display->terminate_efd = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK); ++ // if (display->terminate_efd < 0) ++ // goto err_eventfd; + + display->term_source = wl_event_loop_add_fd(display->loop, + display->terminate_efd, diff --git a/recipes/wip/wayland/niri/recipe.toml b/recipes/wip/wayland/niri/recipe.toml new file mode 100644 index 000000000..861d71148 --- /dev/null +++ b/recipes/wip/wayland/niri/recipe.toml @@ -0,0 +1,18 @@ +#TODO Port Smithay +#TODO probably wrong script for configuration, see https://github.com/YaLTeR/niri#installation +[source] +git = "https://github.com/YaLTeR/niri" +[build] +template = "custom" +dependencies = [ + "libwayland", +] +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/bin +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/wayland-sessions +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/xdg-desktop-portal +cp -rv "${COOKBOOK_SOURCE}"/resources/niri-session "${COOKBOOK_STAGE}"/usr/bin +cp -rv "${COOKBOOK_SOURCE}"/resources/niri.desktop "${COOKBOOK_STAGE}"/usr/share/wayland-sessions +cp -rv "${COOKBOOK_SOURCE}"/resources/niri-portals.conf "${COOKBOOK_STAGE}"/usr/share/xdg-desktop-portal +cookbook_cargo +""" diff --git a/recipes/wip/wayland/pinnacle/recipe.toml b/recipes/wip/wayland/pinnacle/recipe.toml new file mode 100644 index 000000000..36c101c01 --- /dev/null +++ b/recipes/wip/wayland/pinnacle/recipe.toml @@ -0,0 +1,15 @@ +#TODO make all dependencies work +[source] +git = "https://github.com/pinnacle-comp/pinnacle" +[build] +template = "custom" +dependencies = [ + "libwayland", + "libxkbcommon", + "libinput", + "libeudev", + "seatd", +] +script = """ +cookbook_cargo_packages pinnacle +""" diff --git a/recipes/wip/wayland/smallvil/recipe.toml b/recipes/wip/wayland/smallvil/recipe.toml new file mode 100644 index 000000000..dd1d203b7 --- /dev/null +++ b/recipes/wip/wayland/smallvil/recipe.toml @@ -0,0 +1,17 @@ +#TODO make libwayland work +[source] +git = "https://github.com/jackpot51/smithay" +branch = "redox" + +[build] +template = "custom" +dependencies = [ + "libffi", + "libwayland", + "libxkbcommon", +] +script = """ +DYNAMIC_INIT +export RUSTFLAGS="${RUSTFLAGS} -lffi" +cookbook_cargo_packages smallvil +""" diff --git a/recipes/wip/wayland/softbuffer-wayland/recipe.toml b/recipes/wip/wayland/softbuffer-wayland/recipe.toml new file mode 100644 index 000000000..5205096ee --- /dev/null +++ b/recipes/wip/wayland/softbuffer-wayland/recipe.toml @@ -0,0 +1,14 @@ +[source] +git = "https://github.com/jackpot51/softbuffer.git" +branch = "redox-wayland" + +[build] +dependencies = [ + "libwayland" +] +template = "custom" +script = """ +DYNAMIC_INIT +export RUSTFLAGS="${RUSTFLAGS} -lffi" +cookbook_cargo_examples animation rectangle winit +""" diff --git a/recipes/wip/wayland/sway/recipe.toml b/recipes/wip/wayland/sway/recipe.toml new file mode 100644 index 000000000..bb93c00f5 --- /dev/null +++ b/recipes/wip/wayland/sway/recipe.toml @@ -0,0 +1,40 @@ +#TODO not compiled or tested +# build instructions: https://github.com/swaywm/sway#compiling-from-source +[source] +tar = "https://github.com/swaywm/sway/releases/download/1.9/sway-1.9.tar.gz" +blake3 = "6ae892f82daedef76d26e32c64ebd09cc454ae71f416d2179a512f7764138268" + +[build] +template = "meson" +dependencies = [ + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "glib", + "harfbuzz", + "json-c", + "libdrm", + "libffi", + "libjpeg", + "libpng", + "libpthread-stubs", + "libwayland", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxft", + "libxkbcommon", + "libxrender", + "pango", + "pcre2", + "pixman", + "shared-mime-info", + "wayland-protocols", + "wlroots", + "x11proto", + "zlib", +] diff --git a/recipes/wip/wayland/wayland-protocols/recipe.toml b/recipes/wip/wayland/wayland-protocols/recipe.toml new file mode 100644 index 000000000..593e24bcd --- /dev/null +++ b/recipes/wip/wayland/wayland-protocols/recipe.toml @@ -0,0 +1,7 @@ +[source] +tar = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/1.32/downloads/wayland-protocols-1.32.tar.xz" +[build] +template = "meson" +mesonflags = [ + "-Dtests=false" +] diff --git a/recipes/wip/wayland/wayland-rs/recipe.toml b/recipes/wip/wayland/wayland-rs/recipe.toml new file mode 100644 index 000000000..235c9d999 --- /dev/null +++ b/recipes/wip/wayland/wayland-rs/recipe.toml @@ -0,0 +1,16 @@ +#TODO make libwayland work +[source] +git = "https://github.com/jackpot51/wayland-rs" +branch = "redox" + +[build] +template = "custom" +dependencies = [ + "libffi", + "libwayland", +] +script = """ +DYNAMIC_INIT +export RUSTFLAGS="${RUSTFLAGS} -lffi" +cookbook_cargo_examples list_globals_no_dispatch list_globals simple_window +""" diff --git a/recipes/wip/wayland/wayland-utils/recipe.toml b/recipes/wip/wayland/wayland-utils/recipe.toml new file mode 100644 index 000000000..fa94decf0 --- /dev/null +++ b/recipes/wip/wayland/wayland-utils/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.freedesktop.org/wayland/wayland-utils#building +[source] +tar = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/releases/1.2.0/downloads/wayland-utils-1.2.0.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/wayland/waylandpp/recipe.toml b/recipes/wip/wayland/waylandpp/recipe.toml new file mode 100644 index 000000000..6bc1a0350 --- /dev/null +++ b/recipes/wip/wayland/waylandpp/recipe.toml @@ -0,0 +1,6 @@ +#TODO not compiled or tested +# build instructions: https://github.com/NilsBrause/waylandpp#building +[source] +git = "https://github.com/NilsBrause/waylandpp" +[build] +template = "cmake" diff --git a/recipes/wip/wayland/winit-wayland/recipe.toml b/recipes/wip/wayland/winit-wayland/recipe.toml new file mode 100644 index 000000000..e3f73c66a --- /dev/null +++ b/recipes/wip/wayland/winit-wayland/recipe.toml @@ -0,0 +1,14 @@ +[source] +git = "https://github.com/jackpot51/winit.git" +branch = "redox-wayland" + +[build] +dependencies = [ + "libwayland" +] +template = "custom" +script = """ +DYNAMIC_INIT +export RUSTFLAGS="${RUSTFLAGS} -lffi" +cookbook_cargo_examples child_window control_flow pump_events window +""" diff --git a/recipes/wip/wayland/wlroots/recipe.toml b/recipes/wip/wayland/wlroots/recipe.toml new file mode 100644 index 000000000..3a58b98f0 --- /dev/null +++ b/recipes/wip/wayland/wlroots/recipe.toml @@ -0,0 +1,32 @@ +#TODO not compiled or tested +# build instructions: https://gitlab.freedesktop.org/wlroots/wlroots#building +[source] +tar = "https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/0.17.0/downloads/wlroots-0.17.0.tar.gz" +blake3 = "f119e53d1f1dd5c8d4c348b0ebc2a780cf4174d158995356a087b26c3bc7d222" +patches = ["redox.patch"] + +[build] +template = "meson" +dependencies = [ + "cairo", + "expat", + "freetype2", + "fontconfig", + "libdrm", + "libffi", + "libpng", + "libpthread-stubs", + "libwayland", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "libxkbcommon", + "libxxf86vm", + "mesa-x11", + "pixman", + "wayland-protocols", + "x11proto", + "zlib", +] \ No newline at end of file diff --git a/recipes/wip/wayland/wlroots/redox.patch b/recipes/wip/wayland/wlroots/redox.patch new file mode 100644 index 000000000..92b6c8e23 --- /dev/null +++ b/recipes/wip/wayland/wlroots/redox.patch @@ -0,0 +1,29 @@ +diff -ruwN source-old/protocol/meson.build source/protocol/meson.build +--- source-old/protocol/meson.build 2023-11-21 09:06:13.000000000 -0700 ++++ source/protocol/meson.build 2025-10-30 17:22:43.903323248 -0600 +@@ -5,9 +5,8 @@ + ) + wl_protocol_dir = wayland_protos.get_variable('pkgdatadir') + +-wayland_scanner_dep = dependency('wayland-scanner', native: true) + wayland_scanner = find_program( +- wayland_scanner_dep.get_variable('wayland_scanner'), ++ 'wayland-scanner', + native: true, + ) + +diff -ruwN source-old/render/dmabuf.c source/render/dmabuf.c +--- source-old/render/dmabuf.c 2023-11-21 09:06:13.000000000 -0700 ++++ source/render/dmabuf.c 2025-10-30 17:33:46.223683923 -0600 +@@ -5,6 +5,11 @@ + #include + #include "render/dmabuf.h" + ++#if defined(__redox__) ++//TODO: F_DUPFD_CLOEXEC needed for atomic close on exec ++#define F_DUPFD_CLOEXEC F_DUPFD ++#endif ++ + void wlr_dmabuf_attributes_finish(struct wlr_dmabuf_attributes *attribs) { + for (int i = 0; i < attribs->n_planes; ++i) { + close(attribs->fd[i]); diff --git a/recipes/wip/wayland/xwayland/recipe.toml b/recipes/wip/wayland/xwayland/recipe.toml new file mode 100644 index 000000000..3ac342a59 --- /dev/null +++ b/recipes/wip/wayland/xwayland/recipe.toml @@ -0,0 +1,38 @@ +#TODO wayland-client, fix linux/input, wayland-scanner shim +[source] +tar = "https://www.x.org/releases/individual/xserver/xwayland-24.1.8.tar.xz" +patches = [ + "redox.patch" +] +[build] +template = "meson" +dependencies = [ + "libpthread-stubs", + "libepoxy", + "libxkbfile", + "libxfont2", + "libffi", + "libpng", + "pixman", + "x11proto", + "xtrans", + "libxau", + "libx11", + "libxcb", + "openssl1", + "freetype2", + "libwayland", + "libfontenc", + "wayland-protocols", + "zlib", + "libxcvt", + "libxdmcp", + "libxshmfence", +] +mesonflags = [ + "-Ddrm=false", + "-Dglamor=false", + "-Dglx=false", + "-Dsecure-rpc=false", + "-Dmitshm=false", +] diff --git a/recipes/wip/wayland/xwayland/redox.patch b/recipes/wip/wayland/xwayland/redox.patch new file mode 100644 index 000000000..1132282a1 --- /dev/null +++ b/recipes/wip/wayland/xwayland/redox.patch @@ -0,0 +1,158 @@ +diff -ruwN source/hw/xwayland/meson.build source-new/hw/xwayland/meson.build +--- source/hw/xwayland/meson.build 2024-01-16 16:38:49.000000000 +0700 ++++ source-new/hw/xwayland/meson.build 2025-10-01 07:51:14.456575515 +0700 +@@ -30,8 +30,7 @@ + '../../mi/miinitext.h', + ] + +-scanner_dep = dependency('wayland-scanner', native: true) +-scanner = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner')) ++scanner = find_program('wayland-scanner', native: true) + + protocols_dep = dependency('wayland-protocols', version: wayland_protocols_req) + protodir = protocols_dep.get_pkgconfig_variable('pkgdatadir') +@@ -55,11 +54,7 @@ + arguments : ['client-header', '@INPUT@', '@OUTPUT@'] + ) + +-if scanner_dep.version().version_compare('>= 1.14.91') + scanner_argument = 'private-code' +-else +- scanner_argument = 'code' +-endif + + code = generator(scanner, + output : '@BASENAME@-protocol.c', +diff -ruwN source/hw/xwayland/xwayland-glamor.h source-new/hw/xwayland/xwayland-glamor.h +--- source/hw/xwayland/xwayland-glamor.h 2024-01-16 16:38:49.000000000 +0700 ++++ source-new/hw/xwayland/xwayland-glamor.h 2025-10-01 08:01:01.409102814 +0700 +@@ -31,7 +31,7 @@ + #include + + #include +-#include ++// #include + + #include "xwayland-types.h" + +@@ -103,7 +103,7 @@ + /* Called to get the DRM device of the primary GPU that this backend + * is set up on. + */ +- drmDevice *(*get_main_device)(struct xwl_screen *xwl_screen); ++ // drmDevice *(*get_main_device)(struct xwl_screen *xwl_screen); + + /* Direct hook to create the backing pixmap for a window */ + PixmapPtr (*create_pixmap_for_window)(struct xwl_window *xwl_window); +diff -ruwN source/hw/xwayland/xwayland-input.c source-new/hw/xwayland/xwayland-input.c +--- source/hw/xwayland/xwayland-input.c 2024-01-16 16:38:49.000000000 +0700 ++++ source-new/hw/xwayland/xwayland-input.c 2025-10-01 08:02:59.681082380 +0700 +@@ -26,7 +26,7 @@ + + #include + +-#include ++// #include + #include + + #include +@@ -758,6 +758,7 @@ + xwl_seat->xwl_screen->serial = serial; + + switch (button) { ++/* + case BTN_LEFT: + index = 1; + break; +@@ -768,10 +769,9 @@ + index = 3; + break; + default: +- /* Skip indexes 4-7: they are used for vertical and horizontal scroll. +- The rest of the buttons go in order: BTN_SIDE becomes 8, etc. */ + index = 8 + button - BTN_SIDE; + break; ++*/ + } + + valuator_mask_zero(&mask); +@@ -1057,7 +1057,7 @@ + + state_rec = xwl_seat->keyboard->key->xkbInfo->state; + xkb_state = (XkbStateFieldFromRec(&state_rec) & 0xff); +- ++ /* + if (((key == KEY_LEFTSHIFT || key == KEY_RIGHTSHIFT) && (xkb_state & ControlMask)) || + ((key == KEY_LEFTCTRL || key == KEY_RIGHTCTRL) && (xkb_state & ShiftMask))) { + +@@ -1072,6 +1072,7 @@ + if (xwl_window) + xwl_window_rootful_update_title(xwl_window); + } ++ */ + } + + static void +diff -ruwN source/hw/xwayland/xwayland-window.c source-new/hw/xwayland/xwayland-window.c +--- source/hw/xwayland/xwayland-window.c 2024-01-16 16:38:49.000000000 +0700 ++++ source-new/hw/xwayland/xwayland-window.c 2025-10-01 08:00:07.858324820 +0700 +@@ -1102,7 +1102,7 @@ + for (int j = 0; j < dev_formats->num_formats; j++) + free(dev_formats->formats[j].modifiers); + free(dev_formats->formats); +- drmFreeDevice(&dev_formats->drm_dev); ++ // drmFreeDevice(&dev_formats->drm_dev); + } + + void +diff -ruwN source/hw/xwayland/xwayland-window.h source-new/hw/xwayland/xwayland-window.h +--- source/hw/xwayland/xwayland-window.h 2024-01-16 16:38:49.000000000 +0700 ++++ source-new/hw/xwayland/xwayland-window.h 2025-10-01 08:00:40.464798537 +0700 +@@ -38,7 +38,7 @@ + #include + #include + #include +-#include ++// #include + + #include "xwayland-types.h" + +@@ -55,7 +55,7 @@ + }; + + struct xwl_device_formats { +- drmDevice *drm_dev; ++ // drmDevice *drm_dev; + int supports_scanout; + uint32_t num_formats; + struct xwl_format *formats; +@@ -75,7 +75,7 @@ + struct xwl_dmabuf_feedback { + struct zwp_linux_dmabuf_feedback_v1 *dmabuf_feedback; + struct xwl_format_table format_table; +- drmDevice *main_dev; ++ // drmDevice *main_dev; + /* + * This will be filled in during wl events and copied to + * dev_formats on dmabuf_feedback.tranche_done +diff -ruwN source/os/access.c source-new/os/access.c +--- source/os/access.c 2024-01-16 16:38:49.000000000 +0700 ++++ source-new/os/access.c 2025-10-01 07:22:43.931644468 +0700 +@@ -446,7 +446,7 @@ + int family; + register HOST *host; + +-#ifndef WIN32 ++#if !defined(WIN32) && !defined(__redox__) + struct utsname name; + #else + struct { +@@ -477,7 +477,7 @@ + * uname() lets me access to the whole string (it smashes release, you + * see), whereas gethostname() kindly truncates it for me. + */ +-#ifndef WIN32 ++#if !defined(WIN32) && !defined(__redox__) + uname(&name); + #else + gethostname(name.nodename, sizeof(name.nodename)); diff --git a/recipes/wip/web/basilisk/recipe.toml b/recipes/wip/web/basilisk/recipe.toml new file mode 100644 index 000000000..49c97184c --- /dev/null +++ b/recipes/wip/web/basilisk/recipe.toml @@ -0,0 +1,17 @@ +#TODO determine build instructions: https://repo.palemoon.org/Basilisk-Dev/Basilisk/src/branch/master/build-scripts/linux/build_basilisk_subscripts/run_inside_docker.sh +# dependencies: https://basilisk-browser.org/requirements.html +[source] +tar = "https://dl.basilisk-browser.org/basilisk-2025.10.10-source.tar.xz" +[build] +template = "custom" +dependencies = [ + "gtk3", + "glib", + "pango", + "dbus", + "libalsa", + "libxt", + "openssl3", + "sqlite3", + "libpulse", +] diff --git a/recipes/wip/web/chromium/recipe.toml b/recipes/wip/web/chromium/recipe.toml new file mode 100644 index 000000000..9401e19d9 --- /dev/null +++ b/recipes/wip/web/chromium/recipe.toml @@ -0,0 +1,44 @@ +#TODO missing script for building: https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md +#TODO determine minimum dependencies +# dependencies reference: +# https://chromium.googlesource.com/chromium/src/+/main/build/install-build-deps.py#214 +# https://chromium.googlesource.com/chromium/src/+/main/build/install-build-deps.py#355 +[source] +tar = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-119.0.6045.123.tar.xz" +[build] +template = "custom" +# dependencies = [ +# "gtk3", +# "nss", +# "nspr", +# "xdg-utils", +# "libgcrypt", +# "dbus", +# "libva", +# "libffi", +# "fontconfig", +# "libjpeg", +# "libflac", +# "libxml2", +# "ffmpeg6", +# "libwebp", +# "opus", +# "harfbuzz", +# "libpng", +# "freetype2", +# "bzip2", +# "expat", +# "glib", +# "cairo", +# "atk", +# "libcap", +# "pango", +# "java21", +# "libpulse", +# "libx11", +# "libxtst", +# "libxkbcommon", +# ] +script = """ +DYNAMIC_INIT +""" diff --git a/recipes/wip/web/dillo/recipe.toml b/recipes/wip/web/dillo/recipe.toml new file mode 100644 index 000000000..53f234e51 --- /dev/null +++ b/recipes/wip/web/dillo/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/dillo-browser/dillo/blob/master/doc/install.md +[source] +tar = "https://github.com/dillo-browser/dillo/releases/download/v3.2.0/dillo-3.2.0.tar.bz2" +[build] +template = "configure" +dependencies = [ + "fltk13", + "openssl3", + "zlib", + "libpng", + "libjpeg", + "libwebp", + "libbrotli", +] diff --git a/recipes/wip/web/dirble/recipe.toml b/recipes/wip/web/dirble/recipe.toml new file mode 100644 index 000000000..1dcbfc7d5 --- /dev/null +++ b/recipes/wip/web/dirble/recipe.toml @@ -0,0 +1,8 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/Isona/dirble" +[build] +template = "cargo" +dependencies = [ + "openssl1", +] diff --git a/recipes/wip/web/dodeca/recipe.toml b/recipes/wip/web/dodeca/recipe.toml new file mode 100644 index 000000000..39466af80 --- /dev/null +++ b/recipes/wip/web/dodeca/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bearcove/dodeca" +[build] +template = "custom" +script = """ +cookbook_cargo_packages dodeca +""" diff --git a/recipes/wip/web/elinks/recipe.toml b/recipes/wip/web/elinks/recipe.toml new file mode 100644 index 000000000..408ac7a72 --- /dev/null +++ b/recipes/wip/web/elinks/recipe.toml @@ -0,0 +1,7 @@ +#TODO not compiled or tested +#TODO determine dependencies +# build instructions: https://github.com/rkd77/elinks/blob/master/INSTALL +[source] +tar = "https://github.com/rkd77/elinks/releases/download/v0.18.0/elinks-0.18.0.tar.xz" +[build] +template = "meson" diff --git a/recipes/wip/web/faircamp/recipe.toml b/recipes/wip/web/faircamp/recipe.toml new file mode 100644 index 000000000..3c523ae2a --- /dev/null +++ b/recipes/wip/web/faircamp/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://codeberg.org/simonrepp/faircamp" +[build] +template = "cargo" diff --git a/recipes/wip/web/firefox-esr/mozconfig b/recipes/wip/web/firefox-esr/mozconfig new file mode 100644 index 000000000..8d2ce92d5 --- /dev/null +++ b/recipes/wip/web/firefox-esr/mozconfig @@ -0,0 +1,3 @@ +ac_add_options --disable-tests +ac_add_options --target="{TARGET}" +ac_add_options --enable-bootstrap diff --git a/recipes/wip/web/firefox-esr/recipe.toml b/recipes/wip/web/firefox-esr/recipe.toml new file mode 100644 index 000000000..f27ac5e12 --- /dev/null +++ b/recipes/wip/web/firefox-esr/recipe.toml @@ -0,0 +1,31 @@ +#TODO missing script for 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" +[build] +template = "custom" +dependencies = [ + "fontconfig", + "atk", + "cairo", + "dbus", + "libffi", + "freetype2", + "gdk-pixbuf", + "glib", + "gtk3", + "pango", + "sqlite3", + "nss-nspr", + "startup-notification", + "zlib", + "ffmpeg6", + "expat", + "libepoxy", + "pipewire", +] +script = """ +DYNAMIC_INIT +export MOZCONFIG="${COOKBOOK_RECIPE}/mozconfig" +""" diff --git a/recipes/wip/web/gosub/recipe.toml b/recipes/wip/web/gosub/recipe.toml new file mode 100644 index 000000000..1892bbf9e --- /dev/null +++ b/recipes/wip/web/gosub/recipe.toml @@ -0,0 +1,16 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/gosub-browser/gosub-engine" +[build] +template = "custom" +script = """ +binary=renderer +"${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --bin "${binary}" \ + --release + mkdir -pv "${COOKBOOK_STAGE}/usr/bin" + cp -v \ + "target/${TARGET}/release/${binary}" \ + "${COOKBOOK_STAGE}/usr/bin/${binary}" +""" diff --git a/recipes/wip/web/librewolf/mozconfig b/recipes/wip/web/librewolf/mozconfig new file mode 100644 index 000000000..8d2ce92d5 --- /dev/null +++ b/recipes/wip/web/librewolf/mozconfig @@ -0,0 +1,3 @@ +ac_add_options --disable-tests +ac_add_options --target="{TARGET}" +ac_add_options --enable-bootstrap diff --git a/recipes/wip/web/librewolf/recipe.toml b/recipes/wip/web/librewolf/recipe.toml new file mode 100644 index 000000000..02647b9de --- /dev/null +++ b/recipes/wip/web/librewolf/recipe.toml @@ -0,0 +1,31 @@ +#TODO missing script for mach: https://codeberg.org/librewolf/source#librewolf-build-instructions +# dependencies: https://packages.gentoo.org/packages/www-client/firefox/dependencies +# feature flags: https://wiki.gentoo.org/wiki/Firefox#USE_flags +[source] +tar = "https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/144.0.2-1/librewolf-144.0.2-1.source.tar.gz" +[build] +template = "custom" +dependencies = [ + "fontconfig", + "atk", + "cairo", + "dbus", + "libffi", + "freetype2", + "gdk-pixbuf", + "glib", + "gtk3", + "pango", + "sqlite3", + "nss-nspr", + "startup-notification", + "zlib", + "ffmpeg6", + "expat", + "libepoxy", + "pipewire", +] +script = """ +DYNAMIC_INIT +export MOZCONFIG="${COOKBOOK_RECIPE}/mozconfig" +""" diff --git a/recipes/wip/web/marmite/recipe.toml b/recipes/wip/web/marmite/recipe.toml new file mode 100644 index 000000000..e29ba59cf --- /dev/null +++ b/recipes/wip/web/marmite/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/rochacbruno/marmite" +[build] +template = "cargo" diff --git a/recipes/wip/web/monolith/recipe.toml b/recipes/wip/web/monolith/recipe.toml new file mode 100644 index 000000000..de4096e2d --- /dev/null +++ b/recipes/wip/web/monolith/recipe.toml @@ -0,0 +1,13 @@ +#TODO compiled but not tested (after cargo update) +[source] +git = "https://github.com/Y2Z/monolith" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +export OPENSSL_DIR="${COOKBOOK_SYSROOT}" +export OPENSSL_STATIC="true" +cookbook_cargo +""" diff --git a/recipes/wip/web/pale-moon/.mozconfig b/recipes/wip/web/pale-moon/.mozconfig new file mode 100644 index 000000000..5d85067c3 --- /dev/null +++ b/recipes/wip/web/pale-moon/.mozconfig @@ -0,0 +1,35 @@ +# Clear this if not a 64bit build +_BUILD_64=1 + +# Set GTK Version to 2 or 3 +_GTK_VERSION=3 + +# Standard build options for Pale Moon +ac_add_options --enable-application=palemoon +ac_add_options --enable-optimize="-O2 -w" +ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION +ac_add_options --enable-jemalloc +ac_add_options --enable-strip +ac_add_options --enable-devtools +ac_add_options --enable-av1 +ac_add_options --enable-jxl +ac_add_options --disable-webrtc +ac_add_options --disable-gamepad +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-necko-wifi +ac_add_options --disable-updater +ac_add_options --with-pthreads + +# Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding. +ac_add_options --enable-official-branding +export MOZILLA_OFFICIAL=1 + +# Processor architecture specific build options +if [ -n "$_BUILD_64" ]; then + ac_add_options --x-libraries=/usr/lib64 +else + ac_add_options --x-libraries=/usr/lib +fi + +export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION \ No newline at end of file diff --git a/recipes/wip/web/pale-moon/recipe.toml b/recipes/wip/web/pale-moon/recipe.toml new file mode 100644 index 000000000..18aace631 --- /dev/null +++ b/recipes/wip/web/pale-moon/recipe.toml @@ -0,0 +1,18 @@ +#TODO missing script for mach: https://developer.palemoon.org/build/linux/ +[source] +tar = "https://repo.palemoon.org/MoonchildProductions/Pale-Moon/archive/33.9.1_Release.tar.gz" +[build] +template = "custom" +dependencies = [ + "gtk3", + "glib", + "pango", + "dbus", + "mesa", + "libxt", + "openssl1", + "sqlite3", + "libpulse", + "libalsa", + "libx11", +] diff --git a/recipes/wip/web/rustyink/recipe.toml b/recipes/wip/web/rustyink/recipe.toml new file mode 100644 index 000000000..3619d3bd2 --- /dev/null +++ b/recipes/wip/web/rustyink/recipe.toml @@ -0,0 +1,5 @@ +#TODO ahash crate error +[source] +git = "https://github.com/arjunkomath/rustyink" +[build] +template = "cargo" diff --git a/recipes/wip/web/servo/.servobuild b/recipes/wip/web/servo/.servobuild new file mode 100644 index 000000000..09a2abc3c --- /dev/null +++ b/recipes/wip/web/servo/.servobuild @@ -0,0 +1,61 @@ +# Copy this file to .servobuild in the Servo root directory + +# Paths starting with "./" are relative to the repo root + +# Tool options +[tools] + +[build] + +# Set "mode = dev" or use `mach build --dev` to build the project with warning. +# or Set "mode = release" or use `mach build --release` for optimized build. +# Use `mode = ` or `mach build --profile=` to build the given +# profile. Check the `Cargo.toml` manifest for a complete list of custom profiles. +# Defaults to prompting before building +#mode = "dev" + + +# Set "android = true" or use `mach build --android` to build the Android app. +android = false + +# Enable `debug_assert!` macros in release mode +debug-assertions = true + +# Set "debug-mozjs" or use `mach build --debug-mozjs` to build a debug spidermonkey. +debug-mozjs = false + +# When a GL error occurs as a result of a WebGL operation, print the stack trace for the content +# JS and native Rust code that triggered the failed operation. Warning: very slow. +webgl-backtrace = false + +# When a DOM exception is reported, print the stack trace for the content JS and native Rust code +# that triggered it. +dom-backtrace = false + +# Pick a media stack based on the target. Other values are "gstreamer" and "dummy" +media-stack = "dummy" + +# Set to the path to your ccache binary to enable caching of compiler outputs +#ccache = "/usr/local/bin/ccache" + +# Any optional flags that will be added to $RUSTFLAGS +#rustflags = "" + +# Enable or disable rustc’s incremental compilation +# Cargo’s default is to enable it in debug mode but not in release mode. +# Leaving this key unspecified makes mach keep Cargo’s default. +# It can be set to true or false in order to always enable or always disable +# incremental compilation. +#incremental = false +#incremental = true + +# Android information +[android] +# Defaults to the value of $ANDROID_SDK_ROOT, $ANDROID_NDK_ROOT respectively +#sdk = "/opt/android-sdk" +#ndk = "/opt/android-ndk" + +# OpenHarmony +[ohos] +# Defaults to the value of $OHOS_SDK_NATIVE +#ndk = "/path/to/ohos-sdk//native" diff --git a/recipes/wip/web/servo/recipe.toml b/recipes/wip/web/servo/recipe.toml new file mode 100644 index 000000000..0759eb455 --- /dev/null +++ b/recipes/wip/web/servo/recipe.toml @@ -0,0 +1,55 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/servo.git" +branch = "redox" + +[build] +template = "custom" +dependencies = [ + "expat", + "fontconfig", + "freetype2", + "libpng", + "libstdcxx-v3", + "mesa", + "zlib", +] +script = """ +DYNAMIC_INIT + +cp -v "${COOKBOOK_RECIPE}/.servobuild" "${COOKBOOK_SOURCE}/.servobuild" + +# jemalloc specific configuration +export JEMALLOC_SYS_WITH_LG_PAGE=16 +export TARGET_CC="$CC" +export TARGET_CXX="$CXX" +export TARGET_AR="$AR" + +# pkg-config crate can only recognize one path to pkgconfig +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" + +#Mozjs specifics +unset CC_WRAPPER +export CARGO_MAKEFLAGS="-j $COOKBOOK_MAKE_JOBS" CCACHE="sccache" +unset CC_WRAPPER + +PACKAGE_PATH="ports/servoshell" cookbook_cargo + +# resources packaging +mkdir -p ${COOKBOOK_STAGE}/usr/lib/servo/bin +mv ${COOKBOOK_STAGE}/usr/bin/servo ${COOKBOOK_STAGE}/usr/lib/servo/bin/ +ln -s ../lib/servo/bin/servo ${COOKBOOK_STAGE}/usr/bin/servo +rsync -a -v ${COOKBOOK_SOURCE}/resources ${COOKBOOK_STAGE}/usr/lib/servo/ +""" + +[package] +dependencies = [ + "mesa" +] diff --git a/recipes/wip/web/sitesmith/recipe.toml b/recipes/wip/web/sitesmith/recipe.toml new file mode 100644 index 000000000..9cfc38cd5 --- /dev/null +++ b/recipes/wip/web/sitesmith/recipe.toml @@ -0,0 +1,5 @@ +#TODO compiled but not tested +[source] +git = "https://github.com/BradenEverson/sitesmith" +[build] +template = "cargo" diff --git a/recipes/wip/web/spider/recipe.toml b/recipes/wip/web/spider/recipe.toml new file mode 100644 index 000000000..e153a9315 --- /dev/null +++ b/recipes/wip/web/spider/recipe.toml @@ -0,0 +1,11 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/spider-rs/spider" +[build] +template = "custom" +dependencies = [ + "openssl1", +] +script = """ +cookbook_cargo_packages spider_cli +""" diff --git a/recipes/wip/web/surf/recipe.toml b/recipes/wip/web/surf/recipe.toml new file mode 100644 index 000000000..e824c8b9e --- /dev/null +++ b/recipes/wip/web/surf/recipe.toml @@ -0,0 +1,9 @@ +#TODO missing script for gnu make +# build instructions: https://git.suckless.org/surf/file/README.html +[source] +tar = "https://dl.suckless.org/surf/surf-2.1.tar.gz" +[build] +template = "custom" +dependencies = [ + "webkitgtk3", +] diff --git a/recipes/wip/web/teacat/recipe.toml b/recipes/wip/web/teacat/recipe.toml new file mode 100644 index 000000000..d73bef3f1 --- /dev/null +++ b/recipes/wip/web/teacat/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Ultrasquid9/TeaCat" +[build] +template = "custom" +script = """ +mkdir -pv "${COOKBOOK_STAGE}"/usr/share/teacat +cp -rv "${COOKBOOK_SOURCE}"/test.tcat "${COOKBOOK_STAGE}"/usr/share/teacat +cookbook_cargo +""" diff --git a/recipes/wip/web/tola-ssg/recipe.toml b/recipes/wip/web/tola-ssg/recipe.toml new file mode 100644 index 000000000..30560a62c --- /dev/null +++ b/recipes/wip/web/tola-ssg/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/kawayww/tola-ssg" +[build] +template = "cargo" diff --git a/recipes/wip/web/verso/recipe.toml b/recipes/wip/web/verso/recipe.toml new file mode 100644 index 000000000..b83af1251 --- /dev/null +++ b/recipes/wip/web/verso/recipe.toml @@ -0,0 +1,18 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/versotile-org/verso" +[build] +template = "cargo" +dependencies = [ + "freetype2", + "gettext", + "glib", + "gstreamer", + "harfbuzz", + "libffi", + "libiconv", + "libpng", + "openssl1", + "pcre", + "zlib", +] diff --git a/recipes/wip/web/vidium/recipe.toml b/recipes/wip/web/vidium/recipe.toml new file mode 100644 index 000000000..21dbe5160 --- /dev/null +++ b/recipes/wip/web/vidium/recipe.toml @@ -0,0 +1,5 @@ +#TODO cookbook_cargo function error +[source] +git = "https://github.com/s-panferov/vidium" +[build] +template = "cargo" diff --git a/recipes/wip/web/zen-browser/recipe.toml b/recipes/wip/web/zen-browser/recipe.toml new file mode 100644 index 000000000..fd5d8c38d --- /dev/null +++ b/recipes/wip/web/zen-browser/recipe.toml @@ -0,0 +1,8 @@ +#TODO missing script for npm +# build instructions - https://docs.zen-browser.app/building +#TODO analyze the dependencies +[source] +git = "https://github.com/zen-browser/desktop" +branch = "stable" +[build] +template = "custom" diff --git a/recipes/wip/x11/drm-info/recipe.toml b/recipes/wip/x11/drm-info/recipe.toml new file mode 100644 index 000000000..d1885e8c5 --- /dev/null +++ b/recipes/wip/x11/drm-info/recipe.toml @@ -0,0 +1,11 @@ +[source] +tar = "https://gitlab.freedesktop.org/emersion/drm_info/-/archive/v2.9.0/drm_info-v2.9.0.tar.gz" +blake3 = "48ff592b206a85c1d946abfe2f8a4e7ef40f9f1ee7d3d5ee454a33390f86d8cb" +patches = ["redox.patch"] + +[build] +dependencies = [ + "json-c", + "libdrm", +] +template = "meson" diff --git a/recipes/wip/x11/drm-info/redox.patch b/recipes/wip/x11/drm-info/redox.patch new file mode 100644 index 000000000..06d916480 --- /dev/null +++ b/recipes/wip/x11/drm-info/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN source-old/meson.build source/meson.build +--- source-old/meson.build 2025-11-16 10:35:59.000000000 -0700 ++++ source/meson.build 2025-12-11 15:29:28.845861423 -0700 +@@ -68,7 +68,7 @@ + elif libdrm.type_name() == 'internal' + fourcc_h = meson.current_source_dir() / 'subprojects/libdrm/include/drm/drm_fourcc.h' + else +- fourcc_h = libdrm.get_variable(pkgconfig: 'pc_sysrootdir') + libdrm.get_variable(pkgconfig: 'includedir') / 'libdrm/drm_fourcc.h' ++ fourcc_h = libdrm.get_variable(pkgconfig: 'includedir') / 'libdrm/drm_fourcc.h' + endif + + # The DRM_BUS_FAUX bus and its information is included in libdrm v2.4.127 diff --git a/recipes/wip/x11/feh/recipe.toml b/recipes/wip/x11/feh/recipe.toml new file mode 100644 index 000000000..8d55c1072 --- /dev/null +++ b/recipes/wip/x11/feh/recipe.toml @@ -0,0 +1,31 @@ +[source] +tar = "https://feh.finalrewind.org/feh-3.11.2.tar.bz2" +blake3 = "b9d704e0b37d99068cbc76d2b73c3b6ef673612060d7cfef0f5a3e8886255276" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "freetype2", + "imlib2", + "libpng", + "libxau", + "libxcb", + "libx11", + "libxext", + "libxinerama", + "libxt", + "x11proto", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -a --delete "${COOKBOOK_SOURCE}/" ./ +export LDLIBS="$("${PKG_CONFIG}" --libs freetype2 imlib2 libpng x11)" +export PREFIX="/usr" +"${COOKBOOK_MAKE}" curl=0 verscmp=0 +install -Dm0755 src/feh "${COOKBOOK_STAGE}/usr/bin/feh" +""" diff --git a/recipes/wip/x11/font-util/recipe.toml b/recipes/wip/x11/font-util/recipe.toml new file mode 100644 index 000000000..6270e3f05 --- /dev/null +++ b/recipes/wip/x11/font-util/recipe.toml @@ -0,0 +1,6 @@ +[source] +tar = "https://www.x.org/releases/individual/font/font-util-1.4.1.tar.xz" +blake3 = "b430a69efcba19f59d95bcb967aab1d5838b38f2bc94cbc58f6867eeeba21a3e" + +[build] +template = "configure" \ No newline at end of file diff --git a/recipes/wip/x11/i3/i3/recipe.toml b/recipes/wip/x11/i3/i3/recipe.toml new file mode 100644 index 000000000..067587886 --- /dev/null +++ b/recipes/wip/x11/i3/i3/recipe.toml @@ -0,0 +1,20 @@ +#TODO: GLOB_TILDE and wordexp.h +[source] +tar = "https://i3wm.org/downloads/i3-4.24.tar.xz" +blake3 = "3b54ed52759339e545a7a5f602946abc0164c37eb801e79c0cb40f93dbae53d2" + +[build] +dependencies = [ + "cairo", + "libev", + "libxkbcommon-x11", + "pango", + "pcre2", + "startup-notification", + "xcb-util-cursor", + "xcb-util-keysyms", + "xcb-util-wm", + "xcb-util-xrm", + "yajl", +] +template = "meson" diff --git a/recipes/wip/x11/iso-codes/recipe.toml b/recipes/wip/x11/iso-codes/recipe.toml new file mode 100644 index 000000000..d3ac2a97a --- /dev/null +++ b/recipes/wip/x11/iso-codes/recipe.toml @@ -0,0 +1,7 @@ +#TODO: move to appropriate category +[source] +tar = "https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/v4.19.0/iso-codes-v4.19.0.tar.gz" +blake3 = "153cc1748c96c4c6e8a00566aa7d0a573ec45f84c9155afd162cfc7a0cd6314b" + +[build] +template = "configure" diff --git a/recipes/wip/x11/jwm/recipe.toml b/recipes/wip/x11/jwm/recipe.toml new file mode 100644 index 000000000..70d08d5ee --- /dev/null +++ b/recipes/wip/x11/jwm/recipe.toml @@ -0,0 +1,45 @@ +[source] +tar = "https://github.com/joewing/jwm/releases/download/v2.4.6/jwm-2.4.6.tar.xz" +blake3 = "08d69eee4584ba9346d4f326581e8538247a37d6fe11dd8604de7a8a7adbdd51" + +[build] +dependencies = [ + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gettext", + "glib", + "harfbuzz", + "libffi", + "libice", + "libiconv", + "libjpeg", + "libpng", + "libpthread-stubs", + #TODO for SVG support: "librsvg", + "libsm", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxft", + "libxmu", + "libxpm", + "libxrender", + "libxt", + "pango", + "pcre2", + "pixman", + "x11proto", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +export LIBS="-liconv -lintl" +rsync -a --delete "${COOKBOOK_SOURCE}/" ./ +COOKBOOK_CONFIGURE="./configure" +cookbook_configure +""" diff --git a/recipes/wip/x11/keybinder3/recipe.toml b/recipes/wip/x11/keybinder3/recipe.toml new file mode 100644 index 000000000..65ddf484f --- /dev/null +++ b/recipes/wip/x11/keybinder3/recipe.toml @@ -0,0 +1,55 @@ +[source] +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 +""" + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + "gtk3", + "harfbuzz", + "libepoxy", + "libffi", + "libiconv", + "libicu", + "libjpeg", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "libxft", + "libxi", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre", + "pcre2", + "pixman", + "shared-mime-info", + "x11proto", + "xcb-proto", + "xextproto", + "xtrans", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/leftwm/recipe.toml b/recipes/wip/x11/leftwm/recipe.toml new file mode 100644 index 000000000..8a738d331 --- /dev/null +++ b/recipes/wip/x11/leftwm/recipe.toml @@ -0,0 +1,12 @@ +#TODO: needs mkfifo in nix crate +[source] +git = "https://github.com/leftwm/leftwm" + +[build] +dependencies = [] +template = "custom" +script = """ +DYNAMIC_INIT +COOKBOOK_SOURCE="${COOKBOOK_SOURCE}/leftwm" +cookbook_cargo +""" diff --git a/recipes/wip/x11/libdrm/recipe.toml b/recipes/wip/x11/libdrm/recipe.toml new file mode 100644 index 000000000..5f873e258 --- /dev/null +++ b/recipes/wip/x11/libdrm/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://gitlab.freedesktop.org/mesa/libdrm/-/archive/libdrm-2.4.125/libdrm-libdrm-2.4.125.tar.gz" +blake3 = "33e6448252639f4ff8a8cd30129b335c5d85356c1c93f8d77a79221003b14f66" +patches = ["redox.patch"] + +[build] +template = "meson" +mesonflags = [ + "-Damdgpu=disabled", + "-Dintel=disabled", + "-Dnouveau=disabled", + "-Dradeon=disabled", + "-Dvmwgfx=disabled", +] \ No newline at end of file diff --git a/recipes/wip/x11/libdrm/redox.patch b/recipes/wip/x11/libdrm/redox.patch new file mode 100644 index 000000000..8d1e755ae --- /dev/null +++ b/recipes/wip/x11/libdrm/redox.patch @@ -0,0 +1,80 @@ +diff -ruwN source-old/include/drm/drm.h source/include/drm/drm.h +--- source-old/include/drm/drm.h 2025-06-08 06:27:53.000000000 -0600 ++++ source/include/drm/drm.h 2025-10-30 17:17:33.654234959 -0600 +@@ -44,7 +44,11 @@ + #else /* One of the BSDs */ + + #include ++#if defined(__redox__) ++#include ++#else + #include ++#endif + #include + typedef int8_t __s8; + typedef uint8_t __u8; +diff -ruwN source-old/xf86drm.c source/xf86drm.c +--- source-old/xf86drm.c 2025-06-08 06:27:53.000000000 -0600 ++++ source/xf86drm.c 2025-10-30 17:18:58.374958567 -0600 +@@ -57,6 +57,19 @@ + #ifdef MAJOR_IN_SYSMACROS + #include + #endif ++#if defined(__redox__) ++// From musl sys/sysmacros.h ++#define major(x) \ ++ ((unsigned)( (((x)>>31>>1) & 0xfffff000) | (((x)>>8) & 0x00000fff) )) ++#define minor(x) \ ++ ((unsigned)( (((x)>>12) & 0xffffff00) | ((x) & 0x000000ff) )) ++ ++#define makedev(x,y) ( \ ++ (((x)&0xfffff000ULL) << 32) | \ ++ (((x)&0x00000fffULL) << 8) | \ ++ (((y)&0xffffff00ULL) << 12) | \ ++ (((y)&0x000000ffULL)) ) ++#endif + #if HAVE_SYS_SYSCTL_H + #include + #endif +@@ -304,9 +317,14 @@ + char *modifier_name = NULL; + bool result = false; + ++#if defined(__redox__) ++ fprintf(stderr, "open_memstream not available on Redox\n"); ++ return NULL; ++#else + fp = open_memstream(&modifier_name, &size); + if (!fp) + return NULL; ++#endif + + switch (type) { + case DRM_FORMAT_MOD_ARM_TYPE_AFBC: +@@ -409,9 +427,14 @@ + char *mod_amd = NULL; + size_t size = 0; + ++#if defined(__redox__) ++ fprintf(stderr, "open_memstream not available on Redox\n"); ++ return NULL; ++#else + fp = open_memstream(&mod_amd, &size); + if (!fp) + return NULL; ++#endif + + switch (tile_version) { + case AMD_FMT_MOD_TILE_VER_GFX9: +diff -ruwN source-old/xf86drm.h source/xf86drm.h +--- source-old/xf86drm.h 2025-06-08 06:27:53.000000000 -0600 ++++ source/xf86drm.h 2025-10-30 17:17:33.655115281 -0600 +@@ -47,7 +47,7 @@ + #define DRM_MAX_MINOR 64 /* deprecated */ + #endif + +-#if defined(__linux__) ++#if defined(__linux__) || defined(__redox__) + + #define DRM_IOCTL_NR(n) _IOC_NR(n) + #define DRM_IOC_VOID _IOC_NONE diff --git a/recipes/wip/x11/libfontenc/recipe.toml b/recipes/wip/x11/libfontenc/recipe.toml new file mode 100644 index 000000000..3ba81a4b3 --- /dev/null +++ b/recipes/wip/x11/libfontenc/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libfontenc-1.1.8.tar.xz" +blake3 = "6ab127a335f7cb4892566e59448d91e9ec43ac522f31f97a3c94350f0a3ecaf4" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "x11proto", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libglvnd/recipe.toml b/recipes/wip/x11/libglvnd/recipe.toml new file mode 100644 index 000000000..46ca86c6e --- /dev/null +++ b/recipes/wip/x11/libglvnd/recipe.toml @@ -0,0 +1,14 @@ +[source] +# meson support not in latest release +git = "https://github.com/NVIDIA/libglvnd.git" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "x11proto", +] +template = "meson" diff --git a/recipes/wip/x11/libice/recipe.toml b/recipes/wip/x11/libice/recipe.toml new file mode 100644 index 000000000..7a95c5674 --- /dev/null +++ b/recipes/wip/x11/libice/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libICE-1.1.2.tar.xz" +blake3 = "3d1d41041e0a58799a5e9965fd258a4f6875143102644fbbc71061eb4c652577" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "x11proto", + "xtrans", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libsm/recipe.toml b/recipes/wip/x11/libsm/recipe.toml new file mode 100644 index 000000000..5cb1d4ee2 --- /dev/null +++ b/recipes/wip/x11/libsm/recipe.toml @@ -0,0 +1,19 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libSM-1.2.6.tar.xz" +blake3 = "fccedc1f9781bab20b0084557464099a7b793cd704d4bb702f200def4c96dcd8" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libice", + "x11proto", + "xtrans", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libx11/recipe.toml b/recipes/wip/x11/libx11/recipe.toml new file mode 100644 index 000000000..db8a8c446 --- /dev/null +++ b/recipes/wip/x11/libx11/recipe.toml @@ -0,0 +1,21 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libX11-1.8.12.tar.xz" +blake3 = "5bf1c64733322b6a90d9bce8d2bd2d8117a4950955caa00d0cd7974d42571d1e" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libxau", + "libxcb", + "x11proto", + "xtrans", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --enable-malloc0returnsnull +""" diff --git a/recipes/wip/x11/libxau/recipe.toml b/recipes/wip/x11/libxau/recipe.toml new file mode 100644 index 000000000..3ea5322b6 --- /dev/null +++ b/recipes/wip/x11/libxau/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXau-1.0.12.tar.xz" +blake3 = "674bc71a888eec20f0e29989e4669df90309d4baacad058107cdf89d23803bcc" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxaw/recipe.toml b/recipes/wip/x11/libxaw/recipe.toml new file mode 100644 index 000000000..18c379352 --- /dev/null +++ b/recipes/wip/x11/libxaw/recipe.toml @@ -0,0 +1,27 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXaw-1.0.16.tar.xz" +blake3 = "f2a3b4955508dc7a576ad473119562b724f7936d312c85c79cb32f614c60f0c5" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libice", + "libpthread-stubs", + "libsm", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxmu", + "libxpm", + "libxt", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxcb/recipe.toml b/recipes/wip/x11/libxcb/recipe.toml new file mode 100644 index 000000000..4ea52ba7b --- /dev/null +++ b/recipes/wip/x11/libxcb/recipe.toml @@ -0,0 +1,20 @@ +[source] +tar = "https://www.x.org/releases/individual/xcb/libxcb-1.17.0.tar.xz" +blake3 = "3dce3b8adc257177dfec9b6b6cf55eeac13921520dd6c372fd8f9d867600337b" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libxau", + "x11proto", + "xcb-proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxcomposite/recipe.toml b/recipes/wip/x11/libxcomposite/recipe.toml new file mode 100644 index 000000000..21f063879 --- /dev/null +++ b/recipes/wip/x11/libxcomposite/recipe.toml @@ -0,0 +1,19 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXcomposite-0.4.6.tar.xz" +blake3 = "7e02026864066869aefc1d688415b1e8c6ab0b639556f93b6f5e86063aa1bbac" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "libx11", + "libxfixes", + "x11proto", +] +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxcvt/recipe.toml b/recipes/wip/x11/libxcvt/recipe.toml new file mode 100644 index 000000000..8133e595d --- /dev/null +++ b/recipes/wip/x11/libxcvt/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libxcvt-0.1.3.tar.xz" +blake3 = "a6c8f264a70a742d2634f53d19489b984c28df11cb5653042e8921f7596534bb" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson +""" diff --git a/recipes/wip/x11/libxdamage/recipe.toml b/recipes/wip/x11/libxdamage/recipe.toml new file mode 100644 index 000000000..da8d82d2a --- /dev/null +++ b/recipes/wip/x11/libxdamage/recipe.toml @@ -0,0 +1,19 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXdamage-1.1.6.tar.xz" +blake3 = "d3d75f2656027288f87b9ddda8bf019862c63c6e4aeadd92f45870df6c2a7ce9" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +dependencies = [ + "libx11", + "libxfixes", + "x11proto", +] +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxdmcp/recipe.toml b/recipes/wip/x11/libxdmcp/recipe.toml new file mode 100644 index 000000000..ee93e4a6b --- /dev/null +++ b/recipes/wip/x11/libxdmcp/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXdmcp-1.1.5.tar.xz" +blake3 = "d93c5ceb04019228ee6f034c4d10826025a7ae756d7b2f884fc2f768577173ba" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "x11proto" +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxext/recipe.toml b/recipes/wip/x11/libxext/recipe.toml new file mode 100644 index 000000000..36a525dc7 --- /dev/null +++ b/recipes/wip/x11/libxext/recipe.toml @@ -0,0 +1,22 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXext-1.3.6.tar.xz" +blake3 = "4c24887ba3913728f3c0be945006f6babbc2c44c8118d4b1ca5366294e3f4406" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "x11proto", + "xextproto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --enable-malloc0returnsnull +""" diff --git a/recipes/wip/x11/libxfixes/recipe.toml b/recipes/wip/x11/libxfixes/recipe.toml new file mode 100644 index 000000000..c506e4f81 --- /dev/null +++ b/recipes/wip/x11/libxfixes/recipe.toml @@ -0,0 +1,22 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXfixes-6.0.1.tar.xz" +blake3 = "ccbae58717aa81f1ef52a2e6cbb7c57553a98b93f5a7a6f8a78e793a3a0c7f78" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "x11proto", + "xextproto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxfont2/recipe.toml b/recipes/wip/x11/libxfont2/recipe.toml new file mode 100644 index 000000000..761543c57 --- /dev/null +++ b/recipes/wip/x11/libxfont2/recipe.toml @@ -0,0 +1,23 @@ +[source] +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 +""" + +[build] +dependencies = [ + "freetype2", + "libfontenc", + "libpng", + "x11proto", + "xtrans", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxfont2/redox.patch b/recipes/wip/x11/libxfont2/redox.patch new file mode 100644 index 000000000..58a69bebd --- /dev/null +++ b/recipes/wip/x11/libxfont2/redox.patch @@ -0,0 +1,25 @@ +--- libXfont2-2.0.7/Makefile.am 2024-08-01 17:38:40.000000000 -0600 ++++ source/Makefile.am 2025-05-02 10:49:08.392987853 -0600 +@@ -159,14 +159,14 @@ + EXTRA_DIST = src/builtins/buildfont README.md + + # Test utilities +-EXTRA_DIST += test/utils/README +- +-TEST_UTIL_SRCS = test/utils/font-test-utils.c test/utils/font-test-utils.h +- +-noinst_PROGRAMS = lsfontdir +- +-lsfontdir_SOURCES = test/utils/lsfontdir.c $(TEST_UTIL_SRCS) +-lsfontdir_LDADD = libXfont2.la $(LTLIBOBJS) ++#EXTRA_DIST += test/utils/README ++# ++#TEST_UTIL_SRCS = test/utils/font-test-utils.c test/utils/font-test-utils.h ++# ++#noinst_PROGRAMS = lsfontdir ++# ++#lsfontdir_SOURCES = test/utils/lsfontdir.c $(TEST_UTIL_SRCS) ++#lsfontdir_LDADD = libXfont2.la $(LTLIBOBJS) + + + MAINTAINERCLEANFILES = ChangeLog INSTALL diff --git a/recipes/wip/x11/libxft/recipe.toml b/recipes/wip/x11/libxft/recipe.toml new file mode 100644 index 000000000..0574d4c9b --- /dev/null +++ b/recipes/wip/x11/libxft/recipe.toml @@ -0,0 +1,27 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXft-2.3.9.tar.xz" +blake3 = "db5b642f7d5f1184d0975db36ae9f9fbd0a0c538a2288930fc034376374e83dc" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "expat", + "fontconfig", + "freetype2", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxrender", + "x11proto", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxi/recipe.toml b/recipes/wip/x11/libxi/recipe.toml new file mode 100644 index 000000000..a1c915709 --- /dev/null +++ b/recipes/wip/x11/libxi/recipe.toml @@ -0,0 +1,24 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXi-1.8.2.tar.xz" +blake3 = "8f0acdd884dc928c6c8bc4b6bca1f4c67c726fdb03e30910c09bdb41fd841d3e" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "x11proto", + "xextproto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --enable-malloc0returnsnull +""" diff --git a/recipes/wip/x11/libxinerama/recipe.toml b/recipes/wip/x11/libxinerama/recipe.toml new file mode 100644 index 000000000..8ae9962df --- /dev/null +++ b/recipes/wip/x11/libxinerama/recipe.toml @@ -0,0 +1,22 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXinerama-1.1.5.tar.xz" +blake3 = "58b4020c8a8fb62707f5073f967bf8abbc8dc7cff35c5750fabe097f46a924b4" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --enable-malloc0returnsnull +""" diff --git a/recipes/wip/x11/libxkbcommon-x11/recipe.toml b/recipes/wip/x11/libxkbcommon-x11/recipe.toml new file mode 100644 index 000000000..ea53a2ca0 --- /dev/null +++ b/recipes/wip/x11/libxkbcommon-x11/recipe.toml @@ -0,0 +1,25 @@ +# TODO: Conflict with libxkbcommon-x11 +# TODO: Keyboard not working, see patches +[source] +tar = "https://xkbcommon.org/download/libxkbcommon-1.7.0.tar.xz" +blake3 = "5001ca0b8562feeef2010bf16c05657e3875fda3ed5fdedbf48b9135e5cdfcbc" +patches = [ "redox.patch" ] + +[build] +template = "custom" +dependencies = [ + "libxml2", + "xz", + "zlib", + "libpthread-stubs", + "libxau", + "x11proto", + "xcb-proto", + "libxcb", +] +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Denable-wayland=false \ + -Denable-x11=true +""" diff --git a/recipes/wip/x11/libxkbcommon-x11/redox.patch b/recipes/wip/x11/libxkbcommon-x11/redox.patch new file mode 100644 index 000000000..11a80ca9c --- /dev/null +++ b/recipes/wip/x11/libxkbcommon-x11/redox.patch @@ -0,0 +1,92 @@ +diff --color -ruwN source/meson.build source-new/meson.build +--- source/meson.build 2024-03-24 04:23:43.000000000 +0700 ++++ source-new/meson.build 2025-10-29 10:55:30.355297899 +0700 +@@ -637,8 +637,6 @@ + libxkbcommon_x11_test_internal = static_library( + 'xkbcommon-x11-internal', + libxkbcommon_x11_sources, +- 'test/xvfb-wrapper.c', +- 'test/xvfb-wrapper.h', + include_directories: include_directories('src', 'include'), + link_with: libxkbcommon_test_internal, + dependencies: [ +@@ -768,20 +766,6 @@ + dependencies: test_dep), + env: test_env, + ) +-if get_option('enable-x11') +- test( +- 'x11', +- executable('test-x11', 'test/x11.c', dependencies: x11_test_dep), +- env: test_env, +- is_parallel : false, +- ) +- test( +- 'x11comp', +- executable('test-x11comp', 'test/x11comp.c', dependencies: x11_test_dep), +- env: test_env, +- is_parallel : false, +- ) +-endif + if get_option('enable-xkbregistry') + test( + 'registry', +diff --color -ruwN source/src/x11/util.c source-new/src/x11/util.c +--- source/src/x11/util.c 2024-03-24 04:23:43.000000000 +0700 ++++ source-new/src/x11/util.c 2025-10-29 15:03:58.879274347 +0700 +@@ -39,7 +39,7 @@ + uint16_t server_major, server_minor; + + if (flags & ~(XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS)) { +- /* log_err_func(ctx, "unrecognized flags: %#x\n", flags); */ ++ printf("unrecognized flags: %#x\n", flags); + return 0; + } + +@@ -47,12 +47,12 @@ + const xcb_query_extension_reply_t *reply = + xcb_get_extension_data(conn, &xcb_xkb_id); + if (!reply) { +- /* log_err_func(ctx, "failed to query for XKB extension\n"); */ ++ printf("failed to query for XKB extension\n"); + return 0; + } + + if (!reply->present) { +- /* log_err_func(ctx, "failed to start using XKB extension: not available in server\n"); */ ++ printf("failed to start using XKB extension: not available in server\n"); + return 0; + } + +@@ -68,20 +68,21 @@ + xcb_xkb_use_extension_reply(conn, cookie, &error); + + if (!reply) { +- /* log_err_func(ctx, */ +- /* "failed to start using XKB extension: error code %d\n", */ +- /* error ? error->error_code : -1); */ ++ printf( ++ "failed to start using XKB extension: error code %d\n", ++ error ? error->error_code : -1); + free(error); + return 0; + } + +- if (!reply->supported) { +- /* log_err_func(ctx, */ +- /* "failed to start using XKB extension: server doesn't support version %d.%d\n", */ +- /* major_xkb_version, minor_xkb_version); */ +- free(reply); +- return 0; +- } ++ // FIXME: Figure out why winit/servo throwing this ++ // if (!reply->supported) { ++ // printf( ++ // "failed to start using XKB extension: server doesn't support version %d.%d\n", ++ // major_xkb_version, minor_xkb_version); ++ // free(reply); ++ // return 0; ++ // } + + server_major = reply->serverMajor; + server_minor = reply->serverMinor; diff --git a/recipes/wip/x11/libxkbfile/recipe.toml b/recipes/wip/x11/libxkbfile/recipe.toml new file mode 100644 index 000000000..7ce5bb356 --- /dev/null +++ b/recipes/wip/x11/libxkbfile/recipe.toml @@ -0,0 +1,22 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libxkbfile-1.1.3.tar.xz" +blake3 = "9566ee417df1127f21dd0e1fbcfcc14dacb366c07a1ec2de51f89af12535c06d" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies =[ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "x11proto", + "x11proto-kb", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxklavier/recipe.toml b/recipes/wip/x11/libxklavier/recipe.toml new file mode 100644 index 000000000..fdbc3dad8 --- /dev/null +++ b/recipes/wip/x11/libxklavier/recipe.toml @@ -0,0 +1,22 @@ +[source] +tar = "https://download.gnome.org/sources/libxklavier/5.3/libxklavier-5.3.tar.xz" +blake3 = "4811b8e069faef364b0cdd230dd7e42bc4afc279cb15282b68c11e89518c8930" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "glib", + "iso-codes", + "libx11", + "libxi", + "libxkbfile", + "libxml2", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxmu/recipe.toml b/recipes/wip/x11/libxmu/recipe.toml new file mode 100644 index 000000000..7ac3dd382 --- /dev/null +++ b/recipes/wip/x11/libxmu/recipe.toml @@ -0,0 +1,27 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXmu-1.2.1.tar.xz" +blake3 = "466f7ab160c4e9f04866e9c895dbecb6a76ed1817ae16721d404c556d88f047e" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libice", + "libpthread-stubs", + "libsm", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxt", + "x11proto", + "x11proto-kb", + "xextproto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxpm/recipe.toml b/recipes/wip/x11/libxpm/recipe.toml new file mode 100644 index 000000000..bec80a26d --- /dev/null +++ b/recipes/wip/x11/libxpm/recipe.toml @@ -0,0 +1,21 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXpm-3.5.17.tar.xz" +blake3 = "0cc9bbdc6d9c9d6ce100249b7bb68bff4550de43ee31d815fd9b21c8d178cd9e" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxrandr/recipe.toml b/recipes/wip/x11/libxrandr/recipe.toml new file mode 100644 index 000000000..9e6d29ead --- /dev/null +++ b/recipes/wip/x11/libxrandr/recipe.toml @@ -0,0 +1,24 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXrandr-1.5.4.tar.xz" +blake3 = "c107a47d9c4329996d74d7a1ab8d254a2cf3aecea1575d7e146da9a06b762081" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxrender", + "x11proto", + "xextproto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --enable-malloc0returnsnull +""" diff --git a/recipes/wip/x11/libxrender/recipe.toml b/recipes/wip/x11/libxrender/recipe.toml new file mode 100644 index 000000000..f5f671630 --- /dev/null +++ b/recipes/wip/x11/libxrender/recipe.toml @@ -0,0 +1,21 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXrender-0.9.12.tar.xz" +blake3 = "900b431ad77835029a88fd0d874bbd0d748ff150b9e0c3841b3ce7a346cf396a" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --enable-malloc0returnsnull +""" diff --git a/recipes/wip/x11/libxres/recipe.toml b/recipes/wip/x11/libxres/recipe.toml new file mode 100644 index 000000000..ae9027da7 --- /dev/null +++ b/recipes/wip/x11/libxres/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXres-1.2.3.tar.xz" +blake3 = "ed6e65e554fb812ddbec0667d749cb6c0488a964d7b12a7c4c2cadac1287088f" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libx11", + "libxext", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --enable-malloc0returnsnull +""" diff --git a/recipes/wip/x11/libxscrnsaver/recipe.toml b/recipes/wip/x11/libxscrnsaver/recipe.toml new file mode 100644 index 000000000..4963e5266 --- /dev/null +++ b/recipes/wip/x11/libxscrnsaver/recipe.toml @@ -0,0 +1,10 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXScrnSaver-1.2.5.tar.xz" +blake3 = "1efbadb14238f8679abb5e56bc99765b96565ee992bbab86cee88248c57f6240" + +[build] +dependencies = [ + "libx11", + "libxext", +] +template = "meson" diff --git a/recipes/wip/x11/libxshmfence/recipe.toml b/recipes/wip/x11/libxshmfence/recipe.toml new file mode 100644 index 000000000..bd9764ec7 --- /dev/null +++ b/recipes/wip/x11/libxshmfence/recipe.toml @@ -0,0 +1,16 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libxshmfence-1.3.tar.gz" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/libxt/recipe.toml b/recipes/wip/x11/libxt/recipe.toml new file mode 100644 index 000000000..f764c7dfc --- /dev/null +++ b/recipes/wip/x11/libxt/recipe.toml @@ -0,0 +1,24 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXt-1.3.1.tar.xz" +blake3 = "fbf21683ce3e6d104529289254977bb08b355ecf7a36c763e8369acf85f15f24" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libice", + "libpthread-stubs", + "libsm", + "libx11", + "libxau", + "libxcb", + "x11proto", + "x11proto-kb", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --enable-malloc0returnsnull +""" diff --git a/recipes/wip/x11/libxxf86vm/recipe.toml b/recipes/wip/x11/libxxf86vm/recipe.toml new file mode 100644 index 000000000..cbefd2e71 --- /dev/null +++ b/recipes/wip/x11/libxxf86vm/recipe.toml @@ -0,0 +1,22 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/libXxf86vm-1.1.6.tar.xz" +blake3 = "cd99c05a03e81f8579a56272debd554b2a44c2ac8211f0170a39be86e03221bb" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --enable-malloc0returnsnull +""" diff --git a/recipes/wip/x11/lxde/libfm-extra/recipe.toml b/recipes/wip/x11/lxde/libfm-extra/recipe.toml new file mode 100644 index 000000000..0d9e6a5da --- /dev/null +++ b/recipes/wip/x11/lxde/libfm-extra/recipe.toml @@ -0,0 +1,22 @@ +[source] +tar = "https://github.com/lxde/libfm/archive/refs/tags/1.4.0.tar.gz" +blake3 = "b43b4a87b199fb0c6df08f09c7b12e4a545963fc0f4ffac48f8db2a425e47351" +script = """ +DYNAMIC_INIT +mkdir -p m4 +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "gettext", + "libffi", + "glib", + "pcre2", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --with-extra-only +""" diff --git a/recipes/wip/x11/lxde/libfm-gtk3/recipe.toml b/recipes/wip/x11/lxde/libfm-gtk3/recipe.toml new file mode 100644 index 000000000..eb232f92a --- /dev/null +++ b/recipes/wip/x11/lxde/libfm-gtk3/recipe.toml @@ -0,0 +1,60 @@ +[source] +tar = "https://github.com/lxde/libfm/archive/refs/tags/1.4.0.tar.gz" +blake3 = "b43b4a87b199fb0c6df08f09c7b12e4a545963fc0f4ffac48f8db2a425e47351" +script = """ +DYNAMIC_INIT +mkdir -p m4 +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + "gtk3", + "harfbuzz", + "libepoxy", + "libffi", + "libfm-extra", + "libiconv", + "libicu", + "libjpeg", + "libmenu-cache", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "libxft", + "libxi", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre", + "pcre2", + "pixman", + "shared-mime-info", + "x11proto", + "xcb-proto", + "xextproto", + "xtrans", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +COOKBOOK_CONFIGURE="./configure" +cookbook_configure --disable-old-actions --disable-silent-rules --with-gtk=3 +""" diff --git a/recipes/wip/x11/lxde/libmenu-cache/recipe.toml b/recipes/wip/x11/lxde/libmenu-cache/recipe.toml new file mode 100644 index 000000000..af9cbecb1 --- /dev/null +++ b/recipes/wip/x11/lxde/libmenu-cache/recipe.toml @@ -0,0 +1,26 @@ +[source] +tar = "https://github.com/lxde/menu-cache/archive/refs/tags/1.1.1.tar.gz" +blake3 = "6490180be8851c23beec69a507f7285b94491c0b7ef955f7bc217095efb091ae" +script = """ +DYNAMIC_INIT +mkdir -p m4 +autotools_recursive_regenerate +sed -i 's|#include |#include |g' libmenu-cache/menu-cache.c +sed -i 's|#include |#include |g' menu-cache-daemon/menu-cached.c +""" + +[build] +dependencies = [ + "gettext", + "glib", + "libffi", + "libfm-extra", + "libiconv", + "pcre2", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/lxde/lxpanel/recipe.toml b/recipes/wip/x11/lxde/lxpanel/recipe.toml new file mode 100644 index 000000000..eeb6df653 --- /dev/null +++ b/recipes/wip/x11/lxde/lxpanel/recipe.toml @@ -0,0 +1,62 @@ +[source] +tar = "https://github.com/lxde/lxpanel/archive/refs/tags/0.11.1.tar.gz" +blake3 = "5f94d410403499485d3abb6885407d6006e5029da538a1b882c670904ac616a5" +script = """ +DYNAMIC_INIT +mkdir -p m4 +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + "gtk3", + "harfbuzz", + "keybinder3", + "libepoxy", + "libffi", + "libfm-gtk3", + "libiconv", + "libicu", + "libjpeg", + "libmenu-cache", + "libpng", + "libpthread-stubs", + "libwnck3", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "libxft", + "libxi", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre", + "pcre2", + "pixman", + "shared-mime-info", + "x11proto", + "xcb-proto", + "xextproto", + "xtrans", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +COOKBOOK_CONFIGURE="./configure" +cookbook_configure --enable-gtk3 --with-plugins=all,-cpu,-netstat,-netstatus,-weather +""" diff --git a/recipes/wip/x11/mate/caja/recipe.toml b/recipes/wip/x11/mate/caja/recipe.toml new file mode 100644 index 000000000..79f77db5e --- /dev/null +++ b/recipes/wip/x11/mate/caja/recipe.toml @@ -0,0 +1,20 @@ +[source] +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 +""" + +[build] +dependencies = [ + "libice", + "libmate-desktop-2", + "libnotify", + "libsm", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/mate/dbus-glib/recipe.toml b/recipes/wip/x11/mate/dbus-glib/recipe.toml new file mode 100644 index 000000000..c18fa8074 --- /dev/null +++ b/recipes/wip/x11/mate/dbus-glib/recipe.toml @@ -0,0 +1,19 @@ +[source] +tar = "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.114.tar.gz" +blake3 = "a632fb16525a201dd159b9538c6009ec717403d580a3741cbf96fd6f9af2828b" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "dbus", + "expat", + "glib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --with-dbus-binding-tool="$(which dbus-binding-tool)" +""" diff --git a/recipes/wip/x11/mate/libmate-desktop-2/recipe.toml b/recipes/wip/x11/mate/libmate-desktop-2/recipe.toml new file mode 100644 index 000000000..f9651e01d --- /dev/null +++ b/recipes/wip/x11/mate/libmate-desktop-2/recipe.toml @@ -0,0 +1,11 @@ +[source] +tar = "https://github.com/mate-desktop/mate-desktop/releases/download/v1.28.2/mate-desktop-1.28.2.tar.xz" +blake3 = "b5897e91e0ad542dc3331209bb260124c8e14d654fcdb2d9a738e9fc23d4d3fa" + +[build] +dependencies = [ + "dconf", + "iso-codes", + "gtk3", +] +template = "meson" diff --git a/recipes/wip/x11/mate/libmate-menu/recipe.toml b/recipes/wip/x11/mate/libmate-menu/recipe.toml new file mode 100644 index 000000000..aca8f232b --- /dev/null +++ b/recipes/wip/x11/mate/libmate-menu/recipe.toml @@ -0,0 +1,12 @@ +[source] +tar = "https://github.com/mate-desktop/mate-menus/archive/refs/tags/v1.28.0.tar.gz" +blake3 = "90b5540ec82bd9a6188d9eaf36bf1f489258aed4d35de53f3958346f892c0d7c" + +[build] +dependencies = [ + "glib", +] +template = "meson" +mesonflags = [ + "-Dintrospection=false", +] diff --git a/recipes/wip/x11/mate/libmatekbd/recipe.toml b/recipes/wip/x11/mate/libmatekbd/recipe.toml new file mode 100644 index 000000000..92daa69fb --- /dev/null +++ b/recipes/wip/x11/mate/libmatekbd/recipe.toml @@ -0,0 +1,18 @@ +[source] +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 +""" + +[build] +dependencies = [ + "gtk3", + "libxklavier", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/mate/libmateweather/recipe.toml b/recipes/wip/x11/mate/libmateweather/recipe.toml new file mode 100644 index 000000000..c5f74cb60 --- /dev/null +++ b/recipes/wip/x11/mate/libmateweather/recipe.toml @@ -0,0 +1,19 @@ +# Uses custom rev for libsoup3 support, next release should include it +[source] +tar = "https://github.com/mate-desktop/libmateweather/archive/c1c54a15545f13f3dabd2bcd303533d818905c7b.tar.gz" +blake3 = "78c3873937bb90141386d31b6c6d3e585f9f2bde6069933abffdbd9a9161707a" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "gtk3", + "libsoup", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/mate/marco/recipe.toml b/recipes/wip/x11/mate/marco/recipe.toml new file mode 100644 index 000000000..50f9042ca --- /dev/null +++ b/recipes/wip/x11/mate/marco/recipe.toml @@ -0,0 +1,25 @@ +[source] +tar = "https://github.com/mate-desktop/marco/releases/download/v1.29.1/marco-1.29.1.tar.xz" +blake3 = "609db8d6da0ceffb67fd79a2d017be301f5cdbe441301ca5469530cdca4a7cf5" +patches = ["redox.patch"] + +[build] +dependencies = [ + "gtk3", + "libcanberra", + "libice", + "libmate-desktop-2", + "libsm", + "libxcomposite", + "libxcursor", + "libxdamage", + "libxinerama", + "libxres", +] +template = "meson" + +[package] +dependencies = [ + "mate-settings-daemon", + "zenity", +] diff --git a/recipes/wip/x11/mate/marco/redox.patch b/recipes/wip/x11/mate/marco/redox.patch new file mode 100644 index 000000000..4cb0f9383 --- /dev/null +++ b/recipes/wip/x11/mate/marco/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN source-old/meson.build source/meson.build +--- source-old/meson.build 2025-09-22 16:03:46.000000000 -0600 ++++ source/meson.build 2025-11-14 19:09:08.402564648 -0700 +@@ -294,7 +294,7 @@ + endif + + gdk_pixbuf_csource = find_program('gdk-pixbuf-csource') +-zenity = find_program('zenity') ++#Added to package depends: zenity = find_program('zenity') + + libxext = cc.find_library('Xext', required: false) + if build_xsync diff --git a/recipes/wip/x11/mate/mate-control-center/recipe.toml b/recipes/wip/x11/mate/mate-control-center/recipe.toml new file mode 100644 index 000000000..5e91b9125 --- /dev/null +++ b/recipes/wip/x11/mate/mate-control-center/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://github.com/mate-desktop/mate-control-center/archive/refs/tags/v1.28.1.tar.gz" +blake3 = "78ef68e12d0f5d68f62953999e55061a0ef911eceecd2dc66b9242f6b84c143b" +patches = ["redox.patch"] + +[build] +dependencies = [ + "libmate-desktop-2", + "libmate-menu", + "libmatekbd", + "libxscrnsaver", + "marco", +] +template = "meson" +mesonflags = [ + "-Dlibappindicator=no", +] diff --git a/recipes/wip/x11/mate/mate-control-center/redox.patch b/recipes/wip/x11/mate/mate-control-center/redox.patch new file mode 100644 index 000000000..540900962 --- /dev/null +++ b/recipes/wip/x11/mate/mate-control-center/redox.patch @@ -0,0 +1,76 @@ +diff -ruwN source-old/capplets/display/meson.build source/capplets/display/meson.build +--- source-old/capplets/display/meson.build 2024-05-22 13:44:05.000000000 -0600 ++++ source/capplets/display/meson.build 2025-11-15 08:43:15.498757975 -0700 +@@ -49,12 +49,13 @@ + install_dir: mcc_desktopdir + ) + +-policy = 'org.mate.randr.policy' +- +-i18n.merge_file( +- input: policy + '.in', +- output: policy, +- po_dir: po_dir, +- install: true, +- install_dir: mcc_policydir, +-) ++#TODO: fails to merge ++#policy = 'org.mate.randr.policy' ++# ++#i18n.merge_file( ++# input: policy + '.in', ++# output: policy, ++# po_dir: po_dir, ++# install: true, ++# install_dir: mcc_policydir, ++#) +diff -ruwN source-old/capplets/meson.build source/capplets/meson.build +--- source-old/capplets/meson.build 2024-05-22 13:44:05.000000000 -0600 ++++ source/capplets/meson.build 2025-11-15 08:20:38.584035658 -0700 +@@ -8,6 +8,6 @@ + subdir('keyboard') + subdir('mouse') + subdir('network') +-subdir('system-info') +-subdir('time-admin') ++#subdir('system-info') ++#subdir('time-admin') + subdir('windows') +diff -ruwN source-old/meson.build source/meson.build +--- source-old/meson.build 2024-05-22 13:44:05.000000000 -0600 ++++ source/meson.build 2025-11-15 08:42:11.646734896 -0700 +@@ -75,9 +75,9 @@ + xcursor_dep = dependency('xcursor') + dconf_dep = dependency('dconf', version: '>= 0.13.4') + fontconfig_dep = dependency('fontconfig') +-gtop_dep = dependency('libgtop-2.0') +-udisks2_dep = dependency('udisks2') +-polkit_dep = dependency('polkit-gobject-1') ++#gtop_dep = dependency('libgtop-2.0') ++#udisks2_dep = dependency('udisks2') ++#polkit_dep = dependency('polkit-gobject-1') + matekbd_dep = dependency('libmatekbd', version: '>=1.17.0') + matekbdui_dep = dependency('libmatekbdui', version: '>=1.17.0') + xklavier_dep = dependency('libxklavier', version: '>= 5.2') +@@ -120,10 +120,10 @@ + endif + else + appindicator = false +- ayatana = true ++ ayatana = false + endif + appindicator_dep = dependency('appindicator3-0.1', version: '>= 0.0.13', required: appindicator) +-ayatana_dep = dependency('ayatana-appindicator3-0.1', version: '>= 0.0.13', required: ayatana) ++#ayatana_dep = dependency('ayatana-appindicator3-0.1', version: '>= 0.0.13', required: ayatana) + config_h.set('HAVE_UBUNTU_APPINDICATOR', appindicator) + gnome = import('gnome') + i18n = import('i18n') +@@ -155,7 +155,7 @@ + subdir('help') + subdir('font-viewer') + subdir('capplets') +-subdir('typing-break') ++#subdir('typing-break') + subdir('shell') + + gnome.post_install( diff --git a/recipes/wip/x11/mate/mate-icon-theme/recipe.toml b/recipes/wip/x11/mate/mate-icon-theme/recipe.toml new file mode 100644 index 000000000..83d073fd3 --- /dev/null +++ b/recipes/wip/x11/mate/mate-icon-theme/recipe.toml @@ -0,0 +1,9 @@ +[source] +tar = "https://github.com/mate-desktop/mate-icon-theme/releases/download/v1.28.0/mate-icon-theme-1.28.0.tar.xz" +blake3 = "7269335000874df593ac06d991f4f19cdda984cd2199166987acb3f3cbd474bc" + +[build] +template = "configure" +configureflags = [ + "--disable-icon-mapping", +] diff --git a/recipes/wip/x11/mate/mate-panel/recipe.toml b/recipes/wip/x11/mate/mate-panel/recipe.toml new file mode 100644 index 000000000..c2037931c --- /dev/null +++ b/recipes/wip/x11/mate/mate-panel/recipe.toml @@ -0,0 +1,23 @@ +[source] +tar = "https://github.com/mate-desktop/mate-panel/releases/download/v1.28.6/mate-panel-1.28.6.tar.xz" +blake3 = "6411fa4da26be0032226395d50855bb6b1223f5b795f5e08f3999e9de92f2acd" +script = """ +DYNAMIC_INIT +#TODO autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "gtk3", + "libice", + "libmate-desktop-2", + "libmate-menu", + "libmateweather", + "libsm", + "libwnck3", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/mate/mate-session-manager/recipe.toml b/recipes/wip/x11/mate/mate-session-manager/recipe.toml new file mode 100644 index 000000000..519cb3e37 --- /dev/null +++ b/recipes/wip/x11/mate/mate-session-manager/recipe.toml @@ -0,0 +1,20 @@ +[source] +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 +""" + +[build] +dependencies = [ + "dbus-glib", + "gtk3", + "libsm", + "libxcomposite", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/mate/mate-settings-daemon/recipe.toml b/recipes/wip/x11/mate/mate-settings-daemon/recipe.toml new file mode 100644 index 000000000..f46376033 --- /dev/null +++ b/recipes/wip/x11/mate/mate-settings-daemon/recipe.toml @@ -0,0 +1,21 @@ +[source] +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 +""" + +[build] +dependencies = [ + "dconf", + "gtk3", + "libcanberra", + "libmate-desktop-2", + "libmatekbd", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --disable-rfkill +""" diff --git a/recipes/wip/x11/mate/mate-terminal/recipe.toml b/recipes/wip/x11/mate/mate-terminal/recipe.toml new file mode 100644 index 000000000..eecc852ad --- /dev/null +++ b/recipes/wip/x11/mate/mate-terminal/recipe.toml @@ -0,0 +1,12 @@ +[source] +tar = "https://github.com/mate-desktop/mate-terminal/releases/download/v1.28.1/mate-terminal-1.28.1.tar.xz" +blake3 = "5214a81a69cc18202fad9214e2dff671baf34a132a39c932214b234db113e16c" + +[build] +dependencies = [ + "dconf", + "gtk3", + "libstdcxx", + "vte", +] +template = "meson" diff --git a/recipes/wip/x11/mesa-demos-x11/recipe.toml b/recipes/wip/x11/mesa-demos-x11/recipe.toml new file mode 100644 index 000000000..f7b049aeb --- /dev/null +++ b/recipes/wip/x11/mesa-demos-x11/recipe.toml @@ -0,0 +1,19 @@ +[source] +tar = "https://archive.mesa3d.org/demos/mesa-demos-9.0.0.tar.xz" +blake3 = "eef628aebdaa65d3bb1078bb6d6bdd7685c41fb67674e7f7b0e1e15f10433240" +patches = ["redox.patch"] + +[build] +dependencies = [ + "mesa-glu-x11", +] +dev-dependencies = [ + "libstdcxx", +] + +template = "custom" +script = """ +DYNAMIC_INIT +#TODO: implement sincos for es2gears +cookbook_meson -Dgles2=disabled +""" diff --git a/recipes/wip/x11/mesa-demos-x11/redox.patch b/recipes/wip/x11/mesa-demos-x11/redox.patch new file mode 100644 index 000000000..62b335122 --- /dev/null +++ b/recipes/wip/x11/mesa-demos-x11/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN mesa-demos-9.0.0/meson.build source/meson.build +--- mesa-demos-9.0.0/meson.build 2023-03-22 06:13:43.000000000 -0600 ++++ source/meson.build 2025-05-06 15:58:57.523274337 -0600 +@@ -99,7 +99,7 @@ + endif + + dep_glx = dependency('glx', required: false, disabler : true) +-if not dep_glx.found() and host_machine.system() == 'darwin' ++if not dep_glx.found() + # xquartz doesn't have a glx.pc, but it does have the header. And all the + # symbols reside in libGL, so let's just use that. + if cc.check_header('GL/glx.h', dependencies: dep_x11) diff --git a/recipes/wip/x11/mesa-glu-x11/recipe.toml b/recipes/wip/x11/mesa-glu-x11/recipe.toml new file mode 100644 index 000000000..a105a30ca --- /dev/null +++ b/recipes/wip/x11/mesa-glu-x11/recipe.toml @@ -0,0 +1,13 @@ +[source] +tar = "https://archive.mesa3d.org/glu/glu-9.0.3.tar.xz" +blake3 = "beed1665ed983540e7502289ec50c7e66d840820af3e9ef21c9c4a7e9686ab9f" + +[build] +dependencies = [ + "mesa-x11", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson -Dgl_provider=gl +""" diff --git a/recipes/wip/x11/mesa-x11/recipe.toml b/recipes/wip/x11/mesa-x11/recipe.toml new file mode 100644 index 000000000..67f6452b8 --- /dev/null +++ b/recipes/wip/x11/mesa-x11/recipe.toml @@ -0,0 +1,34 @@ +[source] +same_as = "../../../libs/mesa" + +[build] +template = "custom" +dependencies = [ + "expat", + "libdrm", + "libx11", + "libxcb", + "libxext", + "libxfixes", + "libxrandr", + "libxshmfence", + "libxxf86vm", + "llvm21", + "zlib", +] +dev-dependencies = [ + "llvm21.dev", + "host:llvm21.dev", + "host:llvm21.runtime", +] + +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Ddri-drivers-path=/usr/lib/dri \ + -Degl=enabled \ + -Dglx=dri \ + -Dllvm=enabled \ + -Dplatforms=x11 \ + -Dshader-cache=disabled +""" diff --git a/recipes/wip/x11/openbox/recipe.toml b/recipes/wip/x11/openbox/recipe.toml new file mode 100644 index 000000000..ca0668c7a --- /dev/null +++ b/recipes/wip/x11/openbox/recipe.toml @@ -0,0 +1,42 @@ +#TODO: launches but has segfaults at runtime +[source] +tar = "https://openbox.org/dist/openbox/openbox-3.6.1.tar.xz" +blake3 = "6bf434e52e04a9cfcd67c11cb9105b93fe2055dca49f1bed2c105fd117e88ef4" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gettext", + "glib", + "harfbuzz", + "libffi", + "libiconv", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxft", + "libxml2", + "libxrender", + "pango", + "pcre2", + "pixman", + "x11proto", + "xz", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/startup-notification/recipe.toml b/recipes/wip/x11/startup-notification/recipe.toml new file mode 100644 index 000000000..af5696742 --- /dev/null +++ b/recipes/wip/x11/startup-notification/recipe.toml @@ -0,0 +1,19 @@ +[source] +tar = "http://www.freedesktop.org/software/startup-notification/releases/startup-notification-0.12.tar.gz" +blake3 = "134131fdd210d2eaef76eda9826b4a832807aac231dba334f157751ed1d6da36" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libice", + "libx11", + "xcb-util", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure lf_cv_sane_realloc=yes +""" diff --git a/recipes/wip/x11/twm/recipe.toml b/recipes/wip/x11/twm/recipe.toml new file mode 100644 index 000000000..1648e69f4 --- /dev/null +++ b/recipes/wip/x11/twm/recipe.toml @@ -0,0 +1,27 @@ +[source] +tar = "https://www.x.org/releases/individual/app/twm-1.0.13.tar.xz" +blake3 = "50acf2123537a739dcaff50e1ae9b38d7e117a2d07cd3a6b550dcafdc52ff9fc" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libice", + "libpthread-stubs", + "libsm", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxmu", + "libxt", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +export LIBS="-lxcb -lXau" +cookbook_configure +""" diff --git a/recipes/wip/x11/x11proto-kb/recipe.toml b/recipes/wip/x11/x11proto-kb/recipe.toml new file mode 100644 index 000000000..1cd06a038 --- /dev/null +++ b/recipes/wip/x11/x11proto-kb/recipe.toml @@ -0,0 +1,10 @@ +[source] +tar = "https://www.x.org/releases/individual/proto/kbproto-1.0.7.tar.bz2" +blake3 = "2fba8d4a298bd6504c237afccc2059a3b9db6363f203824aebf2c0a167197625" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "configure" diff --git a/recipes/wip/x11/x11proto/recipe.toml b/recipes/wip/x11/x11proto/recipe.toml new file mode 100644 index 000000000..fc5be2a28 --- /dev/null +++ b/recipes/wip/x11/x11proto/recipe.toml @@ -0,0 +1,7 @@ +[source] +tar = "https://www.x.org/releases/individual/proto/xorgproto-2024.1.tar.xz" +blake3 = "fad667bb04e16dca5e816969f2641bb075929cd73564114cc1aabd87d1975dd3" +patches = ["redox.patch"] + +[build] +template = "configure" diff --git a/recipes/wip/x11/x11proto/redox.patch b/recipes/wip/x11/x11proto/redox.patch new file mode 100644 index 000000000..55a319304 --- /dev/null +++ b/recipes/wip/x11/x11proto/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN xorgproto-2023.2/include/X11/Xos_r.h source/include/X11/Xos_r.h +--- xorgproto-2023.2/include/X11/Xos_r.h 2023-06-16 01:32:38.000000000 -0600 ++++ source/include/X11/Xos_r.h 2025-05-02 10:10:07.250524701 -0600 +@@ -318,7 +318,7 @@ + (_Xos_processUnlock), \ + (p).pwp ) + +-#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(__APPLE__) ++#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(__APPLE__) && !defined(__redox__) + # define X_NEEDS_PWPARAMS + typedef struct { + struct passwd pws; diff --git a/recipes/wip/x11/xcb-proto/recipe.toml b/recipes/wip/x11/xcb-proto/recipe.toml new file mode 100644 index 000000000..cd7e92732 --- /dev/null +++ b/recipes/wip/x11/xcb-proto/recipe.toml @@ -0,0 +1,6 @@ +[source] +tar = "https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.17.0.tar.xz" +blake3 = "68187400fded667f60b4b020d0fc37fa489ae0de33169fe7b07fcbaf88e7a3f9" + +[build] +template = "configure" diff --git a/recipes/wip/x11/xcb-util-cursor/recipe.toml b/recipes/wip/x11/xcb-util-cursor/recipe.toml new file mode 100644 index 000000000..eb0dbbd9e --- /dev/null +++ b/recipes/wip/x11/xcb-util-cursor/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/xcb-util-cursor-0.1.6.tar.xz" +blake3 = "af6e7e99779682450e4cb3aa7225f5724845b1672c0380c65ca03b58dfb2d5d8" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "xcb-util-image", + "xcb-util-renderutil", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/xcb-util-image/recipe.toml b/recipes/wip/x11/xcb-util-image/recipe.toml new file mode 100644 index 000000000..a21ab495d --- /dev/null +++ b/recipes/wip/x11/xcb-util-image/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/xcb-util-image-0.4.1.tar.xz" +blake3 = "c8a0652f7c215bd312d9f238aed2ba6a122f087b623dafbbac4456f5351df603" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "xcb-util", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/xcb-util-keysyms/recipe.toml b/recipes/wip/x11/xcb-util-keysyms/recipe.toml new file mode 100644 index 000000000..ce6899454 --- /dev/null +++ b/recipes/wip/x11/xcb-util-keysyms/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/xcb-util-keysyms-0.4.1.tar.xz" +blake3 = "c599df56c79a9f9dcf12b083e343f321cad6af654b83e2976b5a26bc890b5774" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libxcb", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/xcb-util-renderutil/recipe.toml b/recipes/wip/x11/xcb-util-renderutil/recipe.toml new file mode 100644 index 000000000..1d76fc5ec --- /dev/null +++ b/recipes/wip/x11/xcb-util-renderutil/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/xcb-util-renderutil-0.3.10.tar.xz" +blake3 = "085c94d08bd8181512d4ce93cf0e5bcd48cd8ed983bbb7a7bcb3a3c2312a08ea" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libxcb", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure --disable-selective-werror +""" diff --git a/recipes/wip/x11/xcb-util-wm/recipe.toml b/recipes/wip/x11/xcb-util-wm/recipe.toml new file mode 100644 index 000000000..c92734b8c --- /dev/null +++ b/recipes/wip/x11/xcb-util-wm/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/xcb-util-wm-0.4.2.tar.xz" +blake3 = "4cf6b0e204e12eb6b824c939404fc5ad63d61cb94679e8adf5670207802bc738" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libxcb", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/xcb-util-xrm/recipe.toml b/recipes/wip/x11/xcb-util-xrm/recipe.toml new file mode 100644 index 000000000..32b753396 --- /dev/null +++ b/recipes/wip/x11/xcb-util-xrm/recipe.toml @@ -0,0 +1,18 @@ +[source] +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 +""" + +[build] +dependencies = [ + "libx11", + "xcb-util", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/xcb-util/recipe.toml b/recipes/wip/x11/xcb-util/recipe.toml new file mode 100644 index 000000000..b0fa8c392 --- /dev/null +++ b/recipes/wip/x11/xcb-util/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://www.x.org/releases/individual/lib/xcb-util-0.4.1.tar.xz" +blake3 = "ebc940220db0ca39a690a47b565ce73ab536c1fbfdebf008fa0edf0ced862aca" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libxcb", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" \ No newline at end of file diff --git a/recipes/wip/x11/xev/recipe.toml b/recipes/wip/x11/xev/recipe.toml new file mode 100644 index 000000000..d81b8ae1e --- /dev/null +++ b/recipes/wip/x11/xev/recipe.toml @@ -0,0 +1,26 @@ +[source] +tar = "https://www.x.org/releases/individual/app/xev-1.2.6.tar.xz" +blake3 = "883347a6db32fb4cf6bc97906ca1dacf1c67b7b84bd2abef9c6c5fc20abea647" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxrandr", + "libxrender", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +#TODO: why are LIBS not automatic? +export LIBS="-lXrender -lXext -lX11 -lxcb -lXau" +cookbook_configure +""" diff --git a/recipes/wip/x11/xextproto/recipe.toml b/recipes/wip/x11/xextproto/recipe.toml new file mode 100644 index 000000000..8d83a40c2 --- /dev/null +++ b/recipes/wip/x11/xextproto/recipe.toml @@ -0,0 +1,14 @@ +[source] +tar = "https://www.x.org/releases/individual/proto/xextproto-7.3.0.tar.bz2" +blake3 = "08cdd8b3838da9c99176778c925327aa35661d41d0e4d7458a378f14a42172c0" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_configure +""" diff --git a/recipes/wip/x11/xeyes/recipe.toml b/recipes/wip/x11/xeyes/recipe.toml new file mode 100644 index 000000000..7cde39b4f --- /dev/null +++ b/recipes/wip/x11/xeyes/recipe.toml @@ -0,0 +1,31 @@ +[source] +tar = "https://www.x.org/releases/individual/app/xeyes-1.3.0.tar.xz" +blake3 = "33d7ce4847c73e6ebea0cc595b04de80482a657132d0f2235548328ede88b673" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libice", + "libpthread-stubs", + "libsm", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "libxi", + "libxmu", + "libxrender", + "libxt", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +#TODO: why are LIBS not automatic? +export LIBS="-lXext -lXmu -lXt -lSM -lICE -lX11 -lxcb -lXau" +cookbook_configure --without-present +""" diff --git a/recipes/wip/x11/xfce4/garcon/recipe.toml b/recipes/wip/x11/xfce4/garcon/recipe.toml new file mode 100644 index 000000000..4ba9a2848 --- /dev/null +++ b/recipes/wip/x11/xfce4/garcon/recipe.toml @@ -0,0 +1,48 @@ +[source] +tar = "https://archive.xfce.org/src/xfce/garcon/4.21/garcon-4.21.0.tar.xz" +blake3 = "d0eb19cfcf718f3cf4a5fc89304b52b97aa35cb64222f7bc746924544e9fc7b8" + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + "gtk3", + "harfbuzz", + "libepoxy", + "libffi", + "libiconv", + "libjpeg", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfce4ui", + "libxfce4util", + "libxfixes", + "libxft", + "libxi", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre2", + "pixman", + "shared-mime-info", + "x11proto", + "xfconf", + "zlib", +] +template = "meson" +mesonflags = [ + "-Dintrospection=false", +] diff --git a/recipes/wip/x11/xfce4/libxfce4ui/recipe.toml b/recipes/wip/x11/xfce4/libxfce4ui/recipe.toml new file mode 100644 index 000000000..1801e15e9 --- /dev/null +++ b/recipes/wip/x11/xfce4/libxfce4ui/recipe.toml @@ -0,0 +1,47 @@ +[source] +tar = "https://archive.xfce.org/src/xfce/libxfce4ui/4.21/libxfce4ui-4.21.2.tar.xz" +blake3 = "027adb15e74b6df534bc526ec0e1056fede33cf2e69ce802391fb1f714350015" + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + "gtk3", + "harfbuzz", + "libepoxy", + "libffi", + "libiconv", + "libjpeg", + "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfce4util", + "libxfixes", + "libxft", + "libxi", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre2", + "pixman", + "shared-mime-info", + "x11proto", + "xfconf", + "zlib", +] +template = "meson" +mesonflags = [ + "-Dintrospection=false", +] diff --git a/recipes/wip/x11/xfce4/libxfce4util/recipe.toml b/recipes/wip/x11/xfce4/libxfce4util/recipe.toml new file mode 100644 index 000000000..d5360ea14 --- /dev/null +++ b/recipes/wip/x11/xfce4/libxfce4util/recipe.toml @@ -0,0 +1,17 @@ +[source] +tar = "https://archive.xfce.org/src/xfce/libxfce4util/4.20/libxfce4util-4.20.1.tar.bz2" +blake3 = "d64d8c016e48fb21b4c76914b75e256670c5fe2bff4c3b54f76e56cf1a50cb8a" + +[build] +dependencies = [ + "gettext", + "glib", + "libffi", + "libiconv", + "pcre2", + "zlib", +] +template = "meson" +mesonflags = [ + "-Dintrospection=false", +] diff --git a/recipes/wip/x11/xfce4/libxfce4windowing/recipe.toml b/recipes/wip/x11/xfce4/libxfce4windowing/recipe.toml new file mode 100644 index 000000000..a57d83922 --- /dev/null +++ b/recipes/wip/x11/xfce4/libxfce4windowing/recipe.toml @@ -0,0 +1,51 @@ +[source] +tar = "https://archive.xfce.org/src/xfce/libxfce4windowing/4.20/libxfce4windowing-4.20.4.tar.bz2" +blake3 = "396cbd13d547e6e109e348dd207747714dc4827b744fe729b1697c9dd1a55c3f" +patches = ["redox.patch"] + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + "gtk3", + "harfbuzz", + "libepoxy", + "libffi", + "libiconv", + "libjpeg", + "libpng", + "libpthread-stubs", + "libwnck3", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfce4util", + "libxfixes", + "libxft", + "libxi", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre2", + "pixman", + "shared-mime-info", + "x11proto", + "xfconf", + "zlib", +] +template = "meson" +mesonflags = [ + "-Dintrospection=false", + "-Dwayland=disabled", + "-Dx11=enabled", +] diff --git a/recipes/wip/x11/xfce4/libxfce4windowing/redox.patch b/recipes/wip/x11/xfce4/libxfce4windowing/redox.patch new file mode 100644 index 000000000..c3520aa9d --- /dev/null +++ b/recipes/wip/x11/xfce4/libxfce4windowing/redox.patch @@ -0,0 +1,41 @@ +diff -ruwN source-old/libxfce4windowing/xfw-monitor-x11.c source/libxfce4windowing/xfw-monitor-x11.c +--- source-old/libxfce4windowing/xfw-monitor-x11.c 2025-08-14 01:01:54.000000000 -0600 ++++ source/libxfce4windowing/xfw-monitor-x11.c 2025-10-30 15:06:17.333924750 -0600 +@@ -28,7 +28,9 @@ + #include + #include + #include ++#if !defined(__redox__) + #include ++#endif + #include + + #include "xfw-monitor-private.h" +@@ -429,6 +431,7 @@ + &edid_data); + + if (gdk_x11_display_error_trap_pop(display) == 0 && edid_data != NULL && nbytes > 0) { ++#if !defined(__redox__) + struct di_info *edid_info = di_info_parse_edid(edid_data, nbytes); + if (edid_info != NULL) { + char *make = di_info_get_make(edid_info); +@@ -451,6 +454,7 @@ + + di_info_destroy(edid_info); + } ++#endif + } + if (edid_data != NULL) { + XFree(edid_data); +diff -ruwN source-old/meson.build source/meson.build +--- source-old/meson.build 2025-08-14 01:05:11.000000000 -0600 ++++ source/meson.build 2025-10-30 15:05:30.092853306 -0600 +@@ -44,7 +44,7 @@ + + # Feature: 'x11' + x11_deps = [] +-x11_deps += dependency('libdisplay-info', version: dependency_versions['display-info'], required: get_option('x11')) ++#x11_deps += dependency('libdisplay-info', version: dependency_versions['display-info'], required: get_option('x11')) + x11_deps += dependency('x11', version: dependency_versions['libx11'], required: get_option('x11')) + x11_deps += dependency('gdk-x11-3.0', version: dependency_versions['gtk'], required: get_option('x11')) + x11_deps += dependency('libwnck-3.0', version: dependency_versions['wnck'], required: get_option('x11')) diff --git a/recipes/wip/x11/xfce4/xfce4-panel/recipe.toml b/recipes/wip/x11/xfce4/xfce4-panel/recipe.toml new file mode 100644 index 000000000..fd646309d --- /dev/null +++ b/recipes/wip/x11/xfce4/xfce4-panel/recipe.toml @@ -0,0 +1,51 @@ +[source] +tar = "https://archive.xfce.org/src/xfce/xfce4-panel/4.21/xfce4-panel-4.21.0.tar.xz" +blake3 = "59a8f55ba237a56ccd16869a28426fa3890c292164a4502dd07ddba45e0268ed" + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "garcon", + "gdk-pixbuf", + "gettext", + "glib", + "gtk3", + "harfbuzz", + "libepoxy", + "libffi", + "libiconv", + "libjpeg", + "libpng", + "libpthread-stubs", + "libwnck3", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfce4ui", + "libxfce4util", + "libxfce4windowing", + "libxfixes", + "libxft", + "libxi", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre2", + "pixman", + "shared-mime-info", + "x11proto", + "xfconf", + "zlib", +] +template = "meson" +mesonflags = [ + "-Dintrospection=false", +] diff --git a/recipes/wip/x11/xfce4/xfconf/recipe.toml b/recipes/wip/x11/xfce4/xfconf/recipe.toml new file mode 100644 index 000000000..40e06df14 --- /dev/null +++ b/recipes/wip/x11/xfce4/xfconf/recipe.toml @@ -0,0 +1,18 @@ +[source] +tar = "https://archive.xfce.org/src/xfce/xfconf/4.21/xfconf-4.21.0.tar.xz" +blake3 = "588bc6768775221a50d8cdd8480854a360b1343193115b639daf225aa34b97d7" + +[build] +dependencies = [ + "gettext", + "glib", + "libffi", + "libiconv", + "libxfce4util", + "pcre2", + "zlib", +] +template = "meson" +mesonflags = [ + "-Dintrospection=false", +] diff --git a/recipes/wip/x11/xfce4/xfwm4/recipe.toml b/recipes/wip/x11/xfce4/xfwm4/recipe.toml new file mode 100644 index 000000000..d83c3990b --- /dev/null +++ b/recipes/wip/x11/xfce4/xfwm4/recipe.toml @@ -0,0 +1,53 @@ +[source] +tar = "https://archive.xfce.org/src/xfce/xfwm4/4.20/xfwm4-4.20.0.tar.bz2" +blake3 = "1c48e0fd80ef674a1d6cd8b3ab2452e87ab1597693f99c3217d271070b5ba8c2" + +[build] +dependencies = [ + "atk", + "cairo", + "expat", + "fontconfig", + "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", + "glib", + "gtk3", + "harfbuzz", + "libepoxy", + "libffi", + "libice", + "libiconv", + "libjpeg", + "libpng", + "libpthread-stubs", + "libwnck3", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfce4ui", + "libxfce4util", + "libxfixes", + "libxft", + "libxi", + "libxinerama", + "libxrandr", + "libxrender", + "libxxf86vm", + "mesa-x11", + "pango", + "pcre2", + "pixman", + "shared-mime-info", + "x11proto", + "xfconf", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +export LIBS="$("${PKG_CONFIG}" --libs libxfce4util-1.0 x11)" +cookbook_configure --disable-silent-rules +""" diff --git a/recipes/wip/x11/xinit/recipe.toml b/recipes/wip/x11/xinit/recipe.toml new file mode 100644 index 000000000..2ee1557ec --- /dev/null +++ b/recipes/wip/x11/xinit/recipe.toml @@ -0,0 +1,22 @@ +[source] +tar = "https://www.x.org/releases/individual/app/xinit-1.4.4.tar.xz" +blake3 = "fe988bbff7c4a950256540ad8a469fed1cdbe11439ba738b9714ee2de16f2a6c" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +export LIBS="-lxcb -lXau" +cookbook_configure +""" diff --git a/recipes/wip/x11/xkbcomp/recipe.toml b/recipes/wip/x11/xkbcomp/recipe.toml new file mode 100644 index 000000000..b660ef96d --- /dev/null +++ b/recipes/wip/x11/xkbcomp/recipe.toml @@ -0,0 +1,23 @@ +[source] +tar = "https://www.x.org/releases/individual/app/xkbcomp-1.4.7.tar.xz" +blake3 = "e6420ef168976726f8aa8cb362bc70dfe2bd810f2b33e5f71547ec182ed301ea" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxkbfile", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +export LIBS="-lxcb -lXau" +cookbook_configure +""" diff --git a/recipes/wip/x11/xkbutils/recipe.toml b/recipes/wip/x11/xkbutils/recipe.toml new file mode 100644 index 000000000..00aa3ddae --- /dev/null +++ b/recipes/wip/x11/xkbutils/recipe.toml @@ -0,0 +1,30 @@ +[source] +tar = "https://www.x.org/releases/individual/app/xkbutils-1.0.6.tar.xz" +blake3 = "f19c157f5eaad7c91ee101952e55b9fd991b060892ecb3e6d9a7b46fa1dbe587" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "libice", + "libpthread-stubs", + "libsm", + "libx11", + "libxau", + "libxaw", + "libxcb", + "libxext", + "libxmu", + "libxpm", + "libxt", + "x11proto", +] +template = "custom" +script = """ +DYNAMIC_INIT +#TODO: why are LIBS not automatic? +export LIBS="-lXaw7 -lXext -lXmu -lXpm -lXt -lSM -lICE -lX11 -lxcb -lXau" +cookbook_configure +""" diff --git a/recipes/wip/x11/xkeyboard-config/recipe.toml b/recipes/wip/x11/xkeyboard-config/recipe.toml new file mode 100644 index 000000000..289f38da5 --- /dev/null +++ b/recipes/wip/x11/xkeyboard-config/recipe.toml @@ -0,0 +1,10 @@ +[source] +tar = "https://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.44.tar.xz" +blake3 = "6156aefb0608af6b7ae2c2ef444838b72524d1e4244cb26ee253669ecede3a5a" + +[build] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson +""" diff --git a/recipes/wip/x11/xserver-xorg-video-orbital/recipe.toml b/recipes/wip/x11/xserver-xorg-video-orbital/recipe.toml new file mode 100644 index 000000000..46da862b8 --- /dev/null +++ b/recipes/wip/x11/xserver-xorg-video-orbital/recipe.toml @@ -0,0 +1,23 @@ +# x11 video driver for running inside of orbital +[source] +tar = "https://www.x.org/releases/individual/driver/xf86-video-dummy-0.4.1.tar.xz" +blake3 = "9b49296f62bf4d22345d87fc01f2a5571f941457c19d21c8800f8f6d2e64ae67" +patches = ["redox.patch"] +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + +[build] +dependencies = [ + "liborbital", + "pixman", + "x11proto", + "xserver-xorg", +] +template = "custom" +script = """ +DYNAMIC_INIT +export LIBS="-lorbital" +cookbook_configure +""" diff --git a/recipes/wip/x11/xserver-xorg-video-orbital/redox.patch b/recipes/wip/x11/xserver-xorg-video-orbital/redox.patch new file mode 100644 index 000000000..02fc109e4 --- /dev/null +++ b/recipes/wip/x11/xserver-xorg-video-orbital/redox.patch @@ -0,0 +1,301 @@ +diff -ruwN source-old/src/dummy_driver.c source/src/dummy_driver.c +--- source-old/src/dummy_driver.c 2023-05-07 14:27:44.000000000 -0600 ++++ source/src/dummy_driver.c 2025-10-29 11:13:11.863430241 -0600 +@@ -39,6 +39,7 @@ + /* These need to be checked */ + #include + #include ++#include + #include "scrnintstr.h" + #include "servermd.h" + +@@ -51,6 +52,7 @@ + static Bool DUMMYEnterVT(VT_FUNC_ARGS_DECL); + static void DUMMYLeaveVT(VT_FUNC_ARGS_DECL); + static Bool DUMMYCloseScreen(CLOSE_SCREEN_ARGS_DECL); ++static void DUMMYBlockHandler(ScreenPtr pScreen, void *timeout); + static Bool DUMMYCreateWindow(WindowPtr pWin); + static void DUMMYFreeScreen(FREE_SCREEN_ARGS_DECL); + static ModeStatus DUMMYValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, +@@ -768,6 +770,97 @@ + + static ScrnInfoPtr DUMMYScrn; /* static-globalize it */ + ++static void DUMMYOrbitalEvent(int fd, int ready, void *data) { ++ DUMMYPtr dPtr = (DUMMYPtr)data; ++ if (!dPtr->orb_window) { ++ return; ++ } ++ ++ void *event_iter = orb_window_events(dPtr->orb_window); ++ if (!event_iter) { ++ return; ++ } ++ ++ bool running = true; ++ while (running) { ++ OrbEventOption event = orb_events_next(event_iter); ++ if (event.tag == OrbEventOption_None) { ++ break; ++ } ++ //TODO: handle more events ++ switch (event.tag) { ++ case OrbEventOption_Key: ++ if (inputInfo.keyboard) { ++ if (event.key.scancode > 0) { ++ //TODO: more advanced key mapping? ++ xf86PostKeyEvent(inputInfo.keyboard, event.key.scancode + 8, event.key.pressed); ++ } ++ } ++ break; ++ case OrbEventOption_Mouse: ++ if (inputInfo.pointer) { ++ xf86PostMotionEvent(inputInfo.pointer, 1, 0, 2, event.mouse.x, event.mouse.y); ++ } ++ break; ++ case OrbEventOption_MouseRelative: ++ if (inputInfo.pointer) { ++ if (event.mouse_relative.dx || event.mouse_relative.dy) { ++ xf86PostMotionEvent(inputInfo.pointer, 0, 0, 2, event.mouse_relative.dx, event.mouse_relative.dy); ++ } ++ } ++ break; ++ case OrbEventOption_Button: ++ if (inputInfo.pointer) { ++ xf86PostButtonEvent(inputInfo.pointer, 0, 1, event.button.left, 0, 0); ++ xf86PostButtonEvent(inputInfo.pointer, 0, 2, event.button.middle, 0, 0); ++ xf86PostButtonEvent(inputInfo.pointer, 0, 3, event.button.right, 0, 0); ++ } ++ break; ++ case OrbEventOption_None: ++ running = false; ++ break; ++ default: ++ //printf("unknown orbital event %d: %d, %d\n", event.unknown.code, event.unknown.a, event.unknown.b); ++ break; ++ } ++ } ++ ++ orb_events_destroy(event_iter); ++} ++ ++static Bool ++CreateScreenResources(ScreenPtr pScreen) ++{ ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ++ DUMMYPtr dPtr = DUMMYPTR(pScrn); ++ PixmapPtr rootPixmap; ++ Bool ret; ++ ++ pScreen->CreateScreenResources = dPtr->CreateScreenResources; ++ ret = pScreen->CreateScreenResources(pScreen); ++ pScreen->CreateScreenResources = CreateScreenResources; ++ ++ if (!ret) { ++ return FALSE; ++ } ++ ++ rootPixmap = pScreen->GetScreenPixmap(pScreen); ++ ++ dPtr->damage = DamageCreate(NULL, NULL, DamageReportNone, TRUE, ++ pScreen, rootPixmap); ++ if (dPtr->damage) { ++ DamageRegister(&rootPixmap->drawable, dPtr->damage); ++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Damage tracking initialized\n"); ++ } ++ else { ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to create screen damage record\n"); ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++ + /* Mandatory */ + static Bool + DUMMYScreenInit(SCREEN_INIT_ARGS_DECL) +@@ -776,7 +869,6 @@ + DUMMYPtr dPtr; + int ret; + VisualPtr visual; +- void *pixels; + + /* + * we need to get the ScrnInfoRec for this screen, so let's allocate +@@ -786,9 +878,22 @@ + dPtr = DUMMYPTR(pScrn); + DUMMYScrn = pScrn; + ++ if (pScrn->bitsPerPixel != 32) { ++ printf("unsupported BPP %d\n", pScrn->bitsPerPixel); ++ return FALSE; ++ } + +- if (!(pixels = malloc(pScrn->videoRam * 1024))) ++ printf( ++ "orb_window_new %d, %d\n", ++ pScrn->virtualX, pScrn->virtualY ++ ); ++ dPtr->orb_window = orb_window_new_flags(-1, -1, pScrn->virtualX, pScrn->virtualY, "X11", ORB_WINDOW_ASYNC | ORB_WINDOW_BORDERLESS); ++ if (!dPtr->orb_window) { ++ printf("failed to open orbital window\n"); + return FALSE; ++ } ++ ++ SetNotifyFd(orb_window_fd(dPtr->orb_window), DUMMYOrbitalEvent, X_NOTIFY_READ, dPtr); + + /* + * Reset visual list. +@@ -800,12 +905,10 @@ + if (!miSetVisualTypes(pScrn->depth, + miGetDefaultVisualMask(pScrn->depth), + pScrn->rgbBits, pScrn->defaultVisual)) { +- free(pixels); + return FALSE; + } + + if (!miSetPixmapDepths ()) { +- free(pixels); + return FALSE; + } + +@@ -813,7 +916,7 @@ + * Call the framebuffer layer's ScreenInit function, and fill in other + * pScreen fields. + */ +- ret = fbScreenInit(pScreen, pixels, ++ ret = fbScreenInit(pScreen, orb_window_data(dPtr->orb_window), + pScrn->virtualX, pScrn->virtualY, + pScrn->xDpi, pScrn->yDpi, + pScrn->displayWidth, pScrn->bitsPerPixel); +@@ -838,6 +941,10 @@ + /* must be after RGB ordering fixed */ + fbPictureInit(pScreen, 0, 0); + ++ /* Wrap the current CreateScreenResources function */ ++ dPtr->CreateScreenResources = pScreen->CreateScreenResources; ++ pScreen->CreateScreenResources = CreateScreenResources; ++ + xf86SetBlackWhitePixels(pScreen); + + /* initialize XRANDR */ +@@ -943,6 +1050,10 @@ + dPtr->CloseScreen = pScreen->CloseScreen; + pScreen->CloseScreen = DUMMYCloseScreen; + ++ /* Wrap the current BlockHandler function */ ++ dPtr->BlockHandler = pScreen->BlockHandler; ++ pScreen->BlockHandler = DUMMYBlockHandler; ++ + /* Wrap the current CreateWindow function */ + dPtr->CreateWindow = pScreen->CreateWindow; + pScreen->CreateWindow = DUMMYCreateWindow; +@@ -975,11 +1086,26 @@ + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + DUMMYPtr dPtr = DUMMYPTR(pScrn); + +- free(pScreen->GetScreenPixmap(pScreen)->devPrivate.ptr); ++ if (dPtr->damage) { ++ DamageUnregister(dPtr->damage); ++ DamageDestroy(dPtr->damage); ++ dPtr->damage = NULL; ++ } ++ ++ if (dPtr->orb_window) { ++ RemoveNotifyFd(orb_window_fd(dPtr->orb_window)); ++ ++ printf("orb_window_destroy %p\n", dPtr->orb_window); ++ orb_window_destroy(dPtr->orb_window); ++ dPtr->orb_window = NULL; ++ } + + if (dPtr->CursorInfo) + xf86DestroyCursorInfoRec(dPtr->CursorInfo); + ++ pScreen->CreateScreenResources = dPtr->CreateScreenResources; ++ pScreen->BlockHandler = dPtr->BlockHandler; ++ + pScrn->vtSema = FALSE; + pScreen->CloseScreen = dPtr->CloseScreen; + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); +@@ -1009,6 +1135,31 @@ + Atom VFB_PROP = 0; + #define VFB_PROP_NAME "VFB_IDENT" + ++static void DUMMYBlockHandler(ScreenPtr pScreen, void *timeout) { ++ DUMMYPtr dPtr = DUMMYPTR(DUMMYScrn); ++ ++ //printf("BlockHandler %p %p\n", pScreen, timeout); ++ pScreen->BlockHandler = dPtr->BlockHandler; ++ pScreen->BlockHandler(pScreen, timeout); ++ dPtr->BlockHandler = pScreen->BlockHandler; ++ pScreen->BlockHandler = DUMMYBlockHandler; ++ ++ if (dPtr->damage) { ++ RegionPtr dirty = DamageRegion(dPtr->damage); ++ if (RegionNil(dirty)) { ++ // Do not sync if damage empty ++ return; ++ } ++ DamageEmpty(dPtr->damage); ++ } ++ ++ if (dPtr->orb_window) { ++ //TODO: use damage region? ++ //printf("orb_window_sync %p\n", dPtr->orb_window); ++ orb_window_sync(dPtr->orb_window); ++ } ++} ++ + static Bool + DUMMYCreateWindow(WindowPtr pWin) + { +diff -ruwN source-old/src/dummy.h source/src/dummy.h +--- source-old/src/dummy.h 2023-05-07 14:27:44.000000000 -0600 ++++ source/src/dummy.h 2025-10-29 10:11:23.172517830 -0600 +@@ -4,6 +4,7 @@ + #include "xf86_OSproc.h" + + #include "xf86Cursor.h" ++#include "xf86Xinput.h" + + #ifdef XvExtension + #include "xf86xv.h" +@@ -13,7 +14,9 @@ + + #include "compat-api.h" + +-#define DUMMY_MAX_SCREENS 16 ++#include ++ ++#define DUMMY_MAX_SCREENS 1 + + /* Supported chipsets */ + typedef enum { +@@ -44,6 +47,7 @@ + OptionInfoPtr Options; + Bool swCursor; + /* proc pointer */ ++ CreateScreenResourcesProcPtr CreateScreenResources; + CloseScreenProcPtr CloseScreen; + xf86CursorInfoPtr CursorInfo; + +@@ -52,6 +56,7 @@ + int cursorFG, cursorBG; + + dummy_colors colors[1024]; ++ void (*BlockHandler)(ScreenPtr, void*) ; /* wrapped BlockHandler */ + Bool (*CreateWindow)(WindowPtr) ; /* wrapped CreateWindow */ + Bool prop; + /* XRANDR support begin */ +@@ -60,6 +65,9 @@ + struct _xf86Output *paOutputs[DUMMY_MAX_SCREENS]; + int connected_outputs; + /* XRANDR support end */ ++ ++ DamagePtr damage; ++ void *orb_window; + } DUMMYRec, *DUMMYPtr; + + /* The privates of the DUMMY driver */ diff --git a/recipes/wip/x11/xserver-xorg/recipe.toml b/recipes/wip/x11/xserver-xorg/recipe.toml new file mode 100644 index 000000000..4e918772e --- /dev/null +++ b/recipes/wip/x11/xserver-xorg/recipe.toml @@ -0,0 +1,45 @@ +[source] +tar = "https://www.x.org/releases/individual/xserver/xorg-server-21.1.16.tar.xz" +blake3 = "b47c68a0a8bc5b69143d95440fbf75c17245ba8bc2c28a8d9619d8c6890dca58" +patches = ["redox.patch"] + +[build] +dependencies = [ + "font-util", + "freetype2", + "libfontenc", + "libpng", + "libpthread-stubs", + #TODO: used for secure-rpc, needs syslog: "libtirpc", + "libx11", + "libxau", + "libxcb", + "libxcvt", + "libxdmcp", + "libxext", + "libxfixes", + "libxfont2", + "libxkbfile", + "libxxf86vm", + "mesa-x11", + "openssl1", + "pixman", + "x11proto", + "xtrans", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Ddri1=false \ + -Dglamor=false \ + -Dint10=false \ + -Dpciaccess=false \ + -Dsecure-rpc=false \ + -Dudev=false \ + -Dudev_kms=false \ + -Dvgahw=false \ + -Dxres=false \ + -Dxvfb=false +""" diff --git a/recipes/wip/x11/xserver-xorg/redox.patch b/recipes/wip/x11/xserver-xorg/redox.patch new file mode 100644 index 000000000..32309e202 --- /dev/null +++ b/recipes/wip/x11/xserver-xorg/redox.patch @@ -0,0 +1,226 @@ +diff -ruwN source-old/hw/xfree86/common/xf86Xinput.c source/hw/xfree86/common/xf86Xinput.c +--- source-old/hw/xfree86/common/xf86Xinput.c 2025-02-25 11:56:05.000000000 -0700 ++++ source/hw/xfree86/common/xf86Xinput.c 2025-11-07 14:37:53.041095608 -0700 +@@ -860,8 +860,10 @@ + if (stat(path, &st) == -1) + return; + ++ /*TODO + *maj = major(st.st_rdev); + *min = minor(st.st_rdev); ++ */ + } + + static inline InputDriverPtr +diff -ruwN source-old/hw/xfree86/drivers/modesetting/meson.build source/hw/xfree86/drivers/modesetting/meson.build +--- source-old/hw/xfree86/drivers/modesetting/meson.build 2025-02-25 11:56:05.000000000 -0700 ++++ source/hw/xfree86/drivers/modesetting/meson.build 2025-11-07 14:37:53.041947517 -0700 +@@ -42,7 +42,7 @@ + configuration: manpage_config, + )) + +-test('modesetting symbol test', +- xorg_symbol_test, +- args: symbol_test_args, +-) ++# test('modesetting symbol test', ++# xorg_symbol_test, ++# args: symbol_test_args, ++# ) +diff -ruwN source-old/hw/xfree86/loader/meson.build source/hw/xfree86/loader/meson.build +--- source-old/hw/xfree86/loader/meson.build 2025-02-25 11:56:05.000000000 -0700 ++++ source/hw/xfree86/loader/meson.build 2025-11-07 14:37:53.042100945 -0700 +@@ -10,7 +10,7 @@ + c_args: xorg_c_args, + ) + +-xorg_symbol_test = executable('xorg_symbol_test', +- 'symbol-test.c', +- dependencies: dl_dep, +-) ++# xorg_symbol_test = executable('xorg_symbol_test', ++# 'symbol-test.c', ++# dependencies: dl_dep, ++# ) +diff -ruwN source-old/hw/xfree86/meson.build source/hw/xfree86/meson.build +--- source-old/hw/xfree86/meson.build 2025-02-25 11:56:05.000000000 -0700 ++++ source/hw/xfree86/meson.build 2025-11-07 14:37:53.042256958 -0700 +@@ -171,13 +171,13 @@ + ) + endif + +-executable('gtf', +- 'utils/gtf/gtf.c', +- include_directories: [inc, xorg_inc], +- dependencies: xorg_deps, +- c_args: xorg_c_args, +- install: true, +-) ++# executable('gtf', ++# 'utils/gtf/gtf.c', ++# include_directories: [inc, xorg_inc], ++# dependencies: xorg_deps, ++# c_args: xorg_c_args, ++# install: true, ++# ) + + # For symbol presence testing only + xorgserver_lib = shared_library( +diff -ruwN source-old/hw/xfree86/os-support/shared/sigio.c source/hw/xfree86/os-support/shared/sigio.c +--- source-old/hw/xfree86/os-support/shared/sigio.c 2025-02-25 11:56:05.000000000 -0700 ++++ source/hw/xfree86/os-support/shared/sigio.c 2025-11-07 14:37:53.042429782 -0700 +@@ -196,11 +196,12 @@ + fd, strerror(errno)); + } + else { ++ /*TODO + if (fcntl(fd, F_SETOWN, getpid()) == -1) { + xf86Msg(X_WARNING, "fcntl(%d, F_SETOWN): %s\n", + fd, strerror(errno)); + } +- else { ++ else*/{ + installed = TRUE; + } + } +diff -ruwN source-old/hw/xfree86/os-support/xf86_OSlib.h source/hw/xfree86/os-support/xf86_OSlib.h +--- source-old/hw/xfree86/os-support/xf86_OSlib.h 2025-02-25 11:56:05.000000000 -0700 ++++ source/hw/xfree86/os-support/xf86_OSlib.h 2025-11-07 14:37:53.042605933 -0700 +@@ -176,7 +176,7 @@ + /**************************************************************************/ + /* Linux or Glibc-based system */ + /**************************************************************************/ +-#if defined(__linux__) || defined(__GLIBC__) || defined(__CYGWIN__) ++#if defined(__linux__) || defined(__GLIBC__) || defined(__CYGWIN__) || defined(__redox__) + #include + #include + #include +diff -ruwN source-old/include/dix.h source/include/dix.h +--- source-old/include/dix.h 2025-02-25 11:56:05.000000000 -0700 ++++ source/include/dix.h 2025-11-07 14:37:53.042862204 -0700 +@@ -55,6 +55,7 @@ + #include "geext.h" + #include "events.h" + #include ++#include + + #define EARLIER -1 + #define SAMETIME 0 +@@ -69,14 +70,28 @@ + + #define REQUEST_SIZE_MATCH(req) \ + do { \ +- if ((sizeof(req) >> 2) != client->req_len) \ ++ if ((sizeof(req) >> 2) != client->req_len) { \ ++ fprintf(stderr, \ ++ "REQUEST_SIZE_MATCH failed in %s:%d: " \ ++ "Expected len %lu, got %d\n", \ ++ __FILE__, __LINE__, \ ++ (unsigned long)(sizeof(req) >> 2), \ ++ client->req_len); \ + return(BadLength); \ ++ } \ + } while (0) + + #define REQUEST_AT_LEAST_SIZE(req) \ + do { \ +- if ((sizeof(req) >> 2) > client->req_len) \ ++ if ((sizeof(req) >> 2) > client->req_len) { \ ++ fprintf(stderr, \ ++ "REQUEST_AT_LEAST_SIZE failed in %s:%d: " \ ++ "Expected len %lu, got %d\n", \ ++ __FILE__, __LINE__, \ ++ (unsigned long)(sizeof(req) >> 2), \ ++ client->req_len); \ + return(BadLength); \ ++ } \ + } while (0) + + #define REQUEST_AT_LEAST_EXTRA_SIZE(req, extra) \ +diff -ruwN source-old/include/meson.build source/include/meson.build +--- source-old/include/meson.build 2025-02-25 11:56:05.000000000 -0700 ++++ source/include/meson.build 2025-11-07 14:37:53.043095171 -0700 +@@ -162,7 +162,7 @@ + conf_data.set('HAVE_PORT_CREATE', cc.has_function('port_create') ? '1' : false) + conf_data.set('HAVE_REALLOCARRAY', cc.has_function('reallocarray', dependencies: libbsd_dep) ? '1' : false) + conf_data.set('HAVE_SETEUID', cc.has_function('seteuid') ? '1' : false) +-conf_data.set('HAVE_SETITIMER', cc.has_function('setitimer') ? '1' : false) ++conf_data.set('HAVE_SETITIMER', false) + conf_data.set('HAVE_SHMCTL64', cc.has_function('shmctl64') ? '1' : false) + conf_data.set('HAVE_SIGACTION', cc.has_function('sigaction') ? '1' : false) + conf_data.set('HAVE_SIGPROCMASK', cc.has_function('sigprocmask') ? '1' : false) +@@ -190,14 +190,14 @@ + conf_data.set('LISTEN_LOCAL', get_option('listen_local')) + + if cc.has_header_symbol('sys/socket.h', 'SCM_RIGHTS') +- conf_data.set('XTRANS_SEND_FDS', '1') ++ #TODO conf_data.set('XTRANS_SEND_FDS', '1') + endif + +-if conf_data.get('HAVE_GETPEEREID').to_int() == 0 and conf_data.get('HAVE_GETPEERUCRED').to_int() == 0 +- if not cc.has_header_symbol('sys/socket.h', 'SO_PEERCRED') ++#if conf_data.get('HAVE_GETPEEREID').to_int() == 0 and conf_data.get('HAVE_GETPEERUCRED').to_int() == 0 ++ #if not cc.has_header_symbol('sys/socket.h', 'SO_PEERCRED') + conf_data.set('NO_LOCAL_CLIENT_CRED', 1) +- endif +-endif ++ #endif ++#endif + + conf_data.set('TCPCONN', '1') + conf_data.set('UNIXCONN', host_machine.system() != 'windows' ? '1' : false) +@@ -212,7 +212,7 @@ + conf_data.set('DRI2', build_dri2 ? '1' : false) + conf_data.set('DRI3', build_dri3 ? '1' : false) + if build_glx +- conf_data.set_quoted('DRI_DRIVER_PATH', dri_dep.get_pkgconfig_variable('dridriverdir')) ++ conf_data.set_quoted('DRI_DRIVER_PATH', '/usr/lib/dri') + endif + conf_data.set('HAS_SHM', build_mitshm ? '1' : false) + conf_data.set('MITSHM', build_mitshm ? '1' : false) +diff -ruwN source-old/meson.build source/meson.build +--- source-old/meson.build 2025-11-07 14:39:22.420574991 -0700 ++++ source/meson.build 2025-11-07 14:37:53.043279226 -0700 +@@ -439,7 +439,7 @@ + error('DRI requested, but LIBDRM not found') + endif + +-build_modesetting = libdrm_dep.found() and dri2proto_dep.found() ++build_modesetting = false #TODO: libdrm_dep.found() and dri2proto_dep.found() + + build_vgahw = false + if get_option('vgahw') == 'auto' +@@ -753,7 +753,7 @@ + subdir('hw') + + if host_machine.system() != 'windows' +- subdir('test') ++ #subdir('test') + endif + + install_man(configure_file( +diff -ruwN source-old/os/access.c source/os/access.c +--- source-old/os/access.c 2025-02-25 11:56:05.000000000 -0700 ++++ source/os/access.c 2025-11-07 14:37:53.043632189 -0700 +@@ -120,7 +120,7 @@ + #include + #endif + +-#if defined(SVR4) || (defined(SYSV) && defined(__i386__)) || defined(__GNU__) ++#if defined(SVR4) || (defined(SYSV) && defined(__i386__)) || defined(__GNU__) || defined(__redox__) + #include + #endif + #if defined(SYSV) && defined(__i386__) +diff -ruwN source-old/Xext/bigreq.c source/Xext/bigreq.c +--- source-old/Xext/bigreq.c 2025-02-25 11:56:05.000000000 -0700 ++++ source/Xext/bigreq.c 2025-11-07 14:37:53.043862040 -0700 +@@ -51,7 +51,8 @@ + } + if (stuff->brReqType != X_BigReqEnable) + return BadRequest; +- REQUEST_SIZE_MATCH(xBigReqEnableReq); ++ // libxkbcommon sends incorrect size ++ REQUEST_AT_LEAST_SIZE(xBigReqEnableReq); + client->big_requests = TRUE; + rep = (xBigReqEnableReply) { + .type = X_Reply, diff --git a/recipes/wip/x11/xterm/recipe.toml b/recipes/wip/x11/xterm/recipe.toml new file mode 100644 index 000000000..81f46a81b --- /dev/null +++ b/recipes/wip/x11/xterm/recipe.toml @@ -0,0 +1,39 @@ +[source] +tar = "https://invisible-island.net/archives/xterm/xterm-398.tgz" +blake3 = "c42112586b2c231681db9327df9d797953469e3b7cb2abe93b8f3f821597d528" +patches = ["redox.patch"] + +[build] +dependencies = [ + "expat", + "fontconfig", + "freetype2", + "libice", + "libpng", + "libpthread-stubs", + "libsm", + "libx11", + "libxau", + "libxaw", + "libxcb", + "libxext", + "libxft", + "libxmu", + "libxpm", + "libxrender", + "libxt", + "ncurses", + "pcre2", + "x11proto", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/usr/include/freetype2" +#TODO: why are LIBS not automatic? +export LIBS="-lXaw7 -lXmu -lXpm -lXt -lSM -lICE -lXft -lfreetype -lfontconfig -lXrender -lXext -lX11 -lxcb -lXau -lpcre2-8 -lexpat -lpng -lz" +cookbook_configure \ + --with-pcre2 \ + cf_cv_func_setitimer=no +""" diff --git a/recipes/wip/x11/xterm/redox.patch b/recipes/wip/x11/xterm/redox.patch new file mode 100644 index 000000000..69e3a0abd --- /dev/null +++ b/recipes/wip/x11/xterm/redox.patch @@ -0,0 +1,76 @@ +diff -ruwN xterm-398/main.c source/main.c +--- xterm-398/main.c 2025-03-08 06:03:19.000000000 -0700 ++++ source/main.c 2025-05-05 21:25:41.492475745 -0600 +@@ -162,6 +162,10 @@ + #define USE_POSIX_SIGNALS + #endif + ++#ifndef XTABS ++#define XTABS 0x01800 ++#endif ++ + #if defined(SYSV) && !defined(SVR4) && !defined(ISC22) && !defined(ISC30) + /* older SYSV systems cannot ignore SIGHUP. + Shell hangs, or you get extra shells, or something like that */ +@@ -185,6 +189,10 @@ + #define WTMP + #endif + ++#ifdef __redox__ ++#define USE_SYSV_PGRP ++#endif ++ + #ifdef __SCO__ + #ifndef _SVID3 + #define _SVID3 +@@ -3114,7 +3122,7 @@ + } + } + +-#if defined(__osf__) || (defined(__linux__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) ++#if defined(__osf__) || (defined(__linux__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__redox__) + #define USE_OPENPTY 1 + static int opened_tty = -1; + #endif +@@ -4494,7 +4502,7 @@ + /* make /dev/tty work */ + ioctl(ttyfd, TIOCSCTTY, 0); + #endif +-#ifdef USE_SYSV_PGRP ++#if defined(USE_SYSV_PGRP) && !defined(__redox__) + /* We need to make sure that we are actually + * the process group leader for the pty. If + * we are, then we should now be able to open +diff -ruwN xterm-398/xterm.h source/xterm.h +--- xterm-398/xterm.h 2025-04-08 01:36:09.000000000 -0600 ++++ source/xterm.h 2025-05-05 21:11:05.413561791 -0600 +@@ -80,7 +80,7 @@ + #define HAVE_PUTENV 1 + #endif + +-#if defined(CSRG_BASED) || defined(__GNU__) || defined(__minix) ++#if defined(CSRG_BASED) || defined(__GNU__) || defined(__minix) || defined(__redox__) + #define USE_POSIX_TERMIOS 1 + #endif + +@@ -208,7 +208,7 @@ + #define HAVE_PTY_H + #endif + +-#if !defined(USG) && !defined(__minix) ++#if !defined(USG) && !defined(__minix) && !defined(__redox__) + #define HAVE_SETITIMER 1 + #else + #define HAVE_SETITIMER 0 +diff -ruwN xterm-398/xterm_io.h source/xterm_io.h +--- xterm-398/xterm_io.h 2024-09-30 02:03:20.000000000 -0600 ++++ source/xterm_io.h 2025-05-05 21:11:05.413561791 -0600 +@@ -57,7 +57,7 @@ + #define USE_SYSV_TERMIO + #endif + +-#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__INTERIX) || defined(__APPLE__) || defined(__UNIXWARE__) || defined(__hpux) ++#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__INTERIX) || defined(__APPLE__) || defined(__UNIXWARE__) || defined(__hpux) || defined(__redox__) + #ifndef USE_POSIX_TERMIOS + #define USE_POSIX_TERMIOS + #endif diff --git a/recipes/wip/x11/xtrans/recipe.toml b/recipes/wip/x11/xtrans/recipe.toml new file mode 100644 index 000000000..4278f942b --- /dev/null +++ b/recipes/wip/x11/xtrans/recipe.toml @@ -0,0 +1,6 @@ +[source] +tar = "https://xorg.freedesktop.org/archive/individual/lib/xtrans-1.6.0.tar.xz" +blake3 = "18e5a2478425ec43370d7719bc4ee4f25d01ad7f580fcc3b5d91effa267cbaaa" + +[build] +template = "configure" diff --git a/redoxfs b/redoxfs deleted file mode 160000 index 84288a2f5..000000000 --- a/redoxfs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 84288a2f5dd35d7d64bf3c0aba063f9f81ff48c2 diff --git a/relibc b/relibc deleted file mode 160000 index 56386f1e2..000000000 --- a/relibc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 56386f1e260a95eedd7448cded44cbbcc207cbb7 diff --git a/rust b/rust index 687c5fa2c..3ffb13de6 160000 --- a/rust +++ b/rust @@ -1 +1 @@ -Subproject commit 687c5fa2c385b8d169fdf95424f755588f95e174 +Subproject commit 3ffb13de6f6ef25b831e72a1b931e1170b4db423 diff --git a/scripts/backtrace.sh b/scripts/backtrace.sh index ca29569f5..2124a5d93 100755 --- a/scripts/backtrace.sh +++ b/scripts/backtrace.sh @@ -54,19 +54,19 @@ then fi # if no command name is given, assume it's the same as the recipe name -RECIPE_DIR="$(cd cookbook; target/release/find_recipe $RECIPE_NAME)" +RECIPE_DIR="$(target/release/find_recipe $RECIPE_NAME)" if [ -z "$COMMAND" ] then COMMAND="$RECIPE_NAME" fi # look for the debug version of the command -EXECUTABLE=cookbook/"$RECIPE_DIR"/target/"$ARCH"-unknown-redox/build/target/"$ARCH"-unknown-redox/debug/"$COMMAND" +EXECUTABLE="$RECIPE_DIR"/target/"$ARCH"-unknown-redox/build/target/"$ARCH"-unknown-redox/debug/"$COMMAND" # try the release version next if [ ! -f "$EXECUTABLE" -o ! -z "$RELEASE" ] then - EXECUTABLE=cookbook/"$RECIPE_DIR"/target/"$ARCH"-unknown-redox/build/target/"$ARCH"-unknown-redox/release/"$COMMAND" + EXECUTABLE="$RECIPE_DIR"/target/"$ARCH"-unknown-redox/build/target/"$ARCH"-unknown-redox/release/"$COMMAND" fi if [ $# -ne 0 ] diff --git a/scripts/cargo-update.sh b/scripts/cargo-update.sh index cf38f0703..3e359b0f1 100755 --- a/scripts/cargo-update.sh +++ b/scripts/cargo-update.sh @@ -3,7 +3,7 @@ # This script runs "make f.recipe" and "cargo update" in the specified recipe recipe_name="$1" -recipe_path=$(find cookbook/recipes -name "$recipe_name" -maxdepth 4) +recipe_path=$(find recipes -name "$recipe_name" -maxdepth 4) make f."$recipe_name" cd "$recipe_path"/source diff --git a/scripts/category.sh b/scripts/category.sh index 9111f1009..0cc6f98f5 100755 --- a/scripts/category.sh +++ b/scripts/category.sh @@ -6,26 +6,9 @@ if [ -z "$1" ] || [ -z "$2" ] then echo "Build or clean all recipe directories in a category" >&2 echo Usage: $0 "" "" >&2 - echo "" can be f, r, c, u, or combinations that \"make\" understands >&2 + echo "" can be f, r, c, u, p, or combinations that \"make\" understands >&2 + echo "" can be path of category you want to run e.g. \"core\", \"wip\", \"wip/dev\" >&2 exit 1 fi -action="${1#-}" - -recipe_list="" -first=1 - -for recipe in `find cookbook/recipes/"$2" -name "recipe.*"` -do - recipe_folder=`dirname "$recipe"` - recipe_name=`basename "$recipe_folder"` - if [ "$first" -eq 1 ]; then - recipe_list="$recipe_name" - first=0 - else - recipe_list="$recipe_list,$recipe_name" - fi -done - -set -x -make "$action"."$recipe_list" +make "${1#-}"."--category-$2" diff --git a/scripts/changelog.sh b/scripts/changelog.sh index f77b00aac..569812126 100755 --- a/scripts/changelog.sh +++ b/scripts/changelog.sh @@ -24,15 +24,15 @@ fi for package in $(installer/target/release/redox_installer --list-packages -c config/$(uname -m)/desktop.toml) do - package_source="$(cd cookbook; target/release/find_recipe ${package})" - REPOS+=("${package}=cookbook/${package_source}/source") + package_source="$(target/release/find_recipe ${package})" + REPOS+=("${package}=${package_source}/source") done # TODO: resolve dependencies instead of manually adding these initfs packages for package in init logd ramfs randd zerod do - package_source="$(cd cookbook; target/release/find_recipe ${package})" - REPOS+=("${package}=cookbook/${package_source}/source") + package_source="$(target/release/find_recipe ${package})" + REPOS+=("${package}=${package_source}/source") done for name_repo in "${REPOS[@]}" diff --git a/scripts/check-ci-config.sh b/scripts/check-ci-config.sh new file mode 100755 index 000000000..b3f983102 --- /dev/null +++ b/scripts/check-ci-config.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +set -e + +if [ -n "$1" ] +then + ARCH="$1" +else + ARCH="x86_64" +fi + +make build/fstools + +declare -A packages +for recipe_dir in $(build/fstools/bin/list_recipes | grep -v '^recipes/wip/') +do + recipe_name="$(basename "${recipe_dir}")" + packages["${recipe_name}"]="${recipe_dir}" +done + +config="config/${ARCH}/ci.toml" +for package in $(build/fstools/bin/redox_installer --list-packages -c "${config}") +do + packages["${package}"]="" +done + +echo "Checking for missing packages in ${config}" +printf '%-32s%s\n' "PACKAGE" "RECIPE" +for package in "${!packages[@]}" +do + recipe_dir="${packages["${package}"]}" + if [ -n "${recipe_dir}" ] + then + printf '%-32s%s\n' "${package}" "${recipe_dir}" + fi +done | sort diff --git a/scripts/commit-hash.sh b/scripts/commit-hash.sh index 6ed18f1b7..19235faea 100755 --- a/scripts/commit-hash.sh +++ b/scripts/commit-hash.sh @@ -9,7 +9,6 @@ then exit 1 fi -cd cookbook recipe_path="$(target/release/find_recipe $1)" cd "$recipe_path"/source diff --git a/scripts/dual-boot.sh b/scripts/dual-boot.sh index f189693aa..b067ad5f4 100755 --- a/scripts/dual-boot.sh +++ b/scripts/dual-boot.sh @@ -42,7 +42,7 @@ then exit 1 fi -BOOTLOADER="cookbook/recipes/core/bootloader/target/${ARCH}-unknown-redox/stage/boot/bootloader.efi" +BOOTLOADER="recipes/core/bootloader/target/${ARCH}-unknown-redox/stage/boot/bootloader.efi" set -x sudo mkdir -pv "${ESP}/EFI" "${ESP}/loader/entries" sudo cp -v "${BOOTLOADER}" "${ESP}/EFI/redox.efi" @@ -55,3 +55,6 @@ set +x sync echo "Finished installing Redox OS dual boot" +echo "" +echo "To mount the RedoxFS partition, run:" +echo " ./scripts/mount-redoxfs.sh ${DISK}" diff --git a/scripts/executables.sh b/scripts/executables.sh index e8422ada9..0d2f0d07c 100755 --- a/scripts/executables.sh +++ b/scripts/executables.sh @@ -11,8 +11,6 @@ usage() { exit } -cd cookbook - recipes="" target="x86_64-unknown-redox" diff --git a/scripts/find-recipe.sh b/scripts/find-recipe.sh index ba4715076..d1136ecce 100755 --- a/scripts/find-recipe.sh +++ b/scripts/find-recipe.sh @@ -26,7 +26,7 @@ do # Find all packages providing this file pkgs="$( - find cookbook/recipes/*"/target/${ARCH}-unknown-redox/stage/${path}" 2>/dev/null | + find recipes/*"/target/${ARCH}-unknown-redox/stage/${path}" 2>/dev/null | cut -d/ -f3 | tr '\n' ' ' | sort | diff --git a/scripts/include-recipes.sh b/scripts/include-recipes.sh index 87954ab0e..0635ddf1a 100755 --- a/scripts/include-recipes.sh +++ b/scripts/include-recipes.sh @@ -16,7 +16,7 @@ then exit 1 fi -cookbook_recipes="cookbook/recipes" +cookbook_recipes="recipes" recipe_paths=$(grep -rl "$*" "$cookbook_recipes" --include recipe.toml) for recipe_path in $recipe_paths diff --git a/scripts/mount-redoxfs.sh b/scripts/mount-redoxfs.sh new file mode 100755 index 000000000..495d81f55 --- /dev/null +++ b/scripts/mount-redoxfs.sh @@ -0,0 +1,119 @@ +#!/usr/bin/env bash + +set -e + +MOUNT_POINT="/mnt/redoxfs" +DISK_DEVICE="" + +show_help() { + echo "Usage: $0 [options] " + echo "" + echo "Mount or unmount a RedoxFS partition" + echo "" + echo "Options:" + echo " -u, --unmount Unmount the RedoxFS partition" + echo " -m, --mount-point PATH Custom mount point (default: /mnt/redoxfs)" + echo " -h, --help Show this help" + echo "" + echo "Examples:" + echo " $0 /dev/sda3 Mount /dev/sda3" + echo " $0 -u Unmount from default location" + echo " $0 -m /mnt/my-redox /dev/sda3 Mount to custom location" +} + +unmount_fs() { + if mountpoint -q "$MOUNT_POINT" 2>/dev/null; then + echo "Unmounting RedoxFS from $MOUNT_POINT..." + fusermount -u "$MOUNT_POINT" || fusermount3 -u "$MOUNT_POINT" + echo "Successfully unmounted" + else + echo "Nothing mounted at $MOUNT_POINT" + fi + exit 0 +} + +check_dependencies() { + # Try to find redoxfs in multiple locations + REDOXFS_BIN="" + if [ -x "build/fstools/bin/redoxfs" ]; then + REDOXFS_BIN="build/fstools/bin/redoxfs" + elif [ -x "$(dirname "$0")/../build/fstools/bin/redoxfs" ]; then + REDOXFS_BIN="$(dirname "$0")/../build/fstools/bin/redoxfs" + elif command -v redoxfs &> /dev/null; then + REDOXFS_BIN="redoxfs" + fi + + if [ -z "$REDOXFS_BIN" ]; then + echo "Error: redoxfs command not found" + echo "Please build it first with: make fstools" + exit 1 + fi + + if ! ldconfig -p 2>/dev/null | grep -q "libfuse3"; then + echo "Error: libfuse 3.x is not installed" + echo "Please install it:" + if command -v apt-get &> /dev/null; then + echo " sudo apt-get install fuse3 libfuse3-dev" + elif command -v dnf &> /dev/null; then + echo " sudo dnf install fuse3-devel" + elif command -v pacman &> /dev/null; then + echo " sudo pacman -S fuse3" + else + echo " (check your package manager for fuse3)" + fi + exit 1 + fi +} + +UNMOUNT=false + +while [[ $# -gt 0 ]]; do + case $1 in + -u|--unmount) + UNMOUNT=true + shift + ;; + -m|--mount-point) + MOUNT_POINT="$2" + shift 2 + ;; + -h|--help) + show_help + exit 0 + ;; + *) + DISK_DEVICE="$1" + shift + ;; + esac +done + +if [ "$UNMOUNT" = true ]; then + unmount_fs +fi + +if [ -z "$DISK_DEVICE" ]; then + DISK_DEVICE="/dev/disk/by-partlabel/REDOX_INSTALL" + if [ ! -b "$DISK_DEVICE" ]; then + echo "Error: No device specified and default partition not found" + echo "" + show_help + exit 1 + fi +fi + +if [ ! -b "$DISK_DEVICE" ] && [ ! -f "$DISK_DEVICE" ]; then + echo "Error: $DISK_DEVICE is not a block device or file" + exit 1 +fi + +check_dependencies + +mkdir -p "$MOUNT_POINT" + +echo "Mounting $DISK_DEVICE to $MOUNT_POINT..." +"$REDOXFS_BIN" "$DISK_DEVICE" "$MOUNT_POINT" + +echo "RedoxFS successfully mounted at $MOUNT_POINT" +echo "To unmount, run: $0 -u" + diff --git a/scripts/pkg-size.sh b/scripts/pkg-size.sh index a443fb8e5..6e95f47c0 100755 --- a/scripts/pkg-size.sh +++ b/scripts/pkg-size.sh @@ -5,7 +5,7 @@ if [ $# = 0 ] then - find cookbook/recipes \( -name stage.pkgar -o -name stage.tar.gz \) -exec ls -hs {} \; + find recipes \( -name stage.pkgar -o -name stage.tar.gz \) -exec ls -hs {} \; exit 0 fi @@ -19,7 +19,7 @@ do exit 0 fi - recipe_paths=$(find cookbook/recipes -name $recipe) + recipe_paths=$(find recipes -name $recipe) for recipe_path in $recipe_paths do if [ -f "$recipe_path/recipe.toml" ] || [ -f "$recipe_path/recipe.sh" ] diff --git a/scripts/print-recipe.sh b/scripts/print-recipe.sh index 773d85ec2..e35d959d5 100755 --- a/scripts/print-recipe.sh +++ b/scripts/print-recipe.sh @@ -2,6 +2,4 @@ # This script print the recipe configuration -cd cookbook - cat $(target/release/find_recipe "$1")/recipe.* diff --git a/scripts/recipe-match.sh b/scripts/recipe-match.sh index 5bda1580a..15edb78e7 100755 --- a/scripts/recipe-match.sh +++ b/scripts/recipe-match.sh @@ -2,4 +2,4 @@ # This script print the recipe configuration files with determined text -bat --decorations=always $(rg "$1" -li --sort=path cookbook/recipes) +bat --decorations=always $(rg "$1" -li --sort=path recipes) diff --git a/scripts/recipe-path.sh b/scripts/recipe-path.sh index ceacd5e3d..f31332547 100755 --- a/scripts/recipe-path.sh +++ b/scripts/recipe-path.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -FIND_RECIPE="find cookbook/recipes -maxdepth 4 -name" +FIND_RECIPE="find recipes -maxdepth 4 -name" for recipe in $* do diff --git a/scripts/show-package.sh b/scripts/show-package.sh index c8782cadd..516f4ec2e 100755 --- a/scripts/show-package.sh +++ b/scripts/show-package.sh @@ -12,7 +12,7 @@ then fi find_recipe="target/release/find_recipe" -if [ ! -x "cookbook/$find_recipe" ] +if [ ! -x "$find_recipe" ] then echo "$find_recipe not found." echo "Please run 'make fstools' and try again." @@ -21,6 +21,6 @@ fi for recipe in $* do - recipe_dir="$(cd cookbook; "$find_recipe" "$recipe")" - ls -1 "cookbook/$recipe_dir/target"/*/{stage,sysroot} + recipe_dir="$("$find_recipe" "$recipe")" + ls -1 "$recipe_dir/target"/*/{stage,sysroot} done diff --git a/src/bin/cookbook_redoxer.rs b/src/bin/cookbook_redoxer.rs new file mode 100644 index 000000000..01bfbb159 --- /dev/null +++ b/src/bin/cookbook_redoxer.rs @@ -0,0 +1,18 @@ +use std::env; + +fn main() { + let mut args: Vec = env::args().collect(); + // 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 new file mode 100644 index 000000000..77ec04221 --- /dev/null +++ b/src/bin/repo.rs @@ -0,0 +1,1767 @@ +use ansi_to_tui::IntoText; +use anyhow::{Context, anyhow, bail}; +use cookbook::config::{CookConfig, get_config, init_config}; +use cookbook::cook::cook_build::{build, get_stage_dirs, remove_stage_dir}; +use cookbook::cook::fetch::{fetch, fetch_offline}; +use cookbook::cook::fs::{create_target_dir, run_command}; +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::log_to_pty; +use cookbook::recipe::CookRecipe; +use pkg::PackageName; +use pkg::package::PackageError; +use ratatui::Terminal; +use ratatui::layout::{Constraint, Direction, Layout, Position, Rect}; +use ratatui::prelude::TermionBackend; +use ratatui::style::{Color, Style}; +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::io::{Read, Write, stderr, stdin, stdout}; +use std::path::PathBuf; +use std::process::Command; +use std::str::FromStr; +use std::sync::atomic::{AtomicBool, AtomicU32, Ordering}; +use std::sync::{Arc, OnceLock, mpsc}; +use std::time::{Duration, Instant}; +use std::{cmp, env, fs}; +use std::{process, thread}; +use termion::event::{Event, Key, MouseEvent}; +use termion::input::TermRead; +use termion::raw::IntoRawMode; +use termion::screen::IntoAlternateScreen; +use termion::{color, style}; + +// A repo manager, to replace repo.sh + +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 + + common flags: + --cookbook= the "recipes" folder, default to $PWD/recipes + --repo= the "repo" folder, default to $PWD/repo + --sysroot= the "root" folder used for "push" command + For Redox, defaults to "/", else default to $PWD/sysroot + --with-package-deps include package deps + --all apply to all recipes in + --category= apply to all recipes in / + --filesystem= override recipes config using installer file + --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 + 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 +"#; + +#[derive(Clone)] +struct CliConfig { + cookbook_dir: PathBuf, + repo_dir: PathBuf, + sysroot_dir: PathBuf, + logs_dir: Option, + category: Option, + filesystem: Option, + with_package_deps: bool, + all: bool, + cook: CookConfig, +} + +#[derive(PartialEq)] +enum CliCommand { + Fetch, + Cook, + Unfetch, + Clean, + Push, + Tree, + Find, +} + +impl CliCommand { + pub fn is_informational(&self) -> bool { + *self == CliCommand::Tree || *self == CliCommand::Find + } + pub fn is_building(&self) -> bool { + *self == CliCommand::Fetch || *self == CliCommand::Cook + } + pub fn is_pushing(&self) -> bool { + *self == CliCommand::Push || *self == CliCommand::Tree + } + pub fn is_cleaning(&self) -> bool { + *self == CliCommand::Clean || *self == CliCommand::Unfetch + } +} + +impl FromStr for CliCommand { + type Err = anyhow::Error; + + fn from_str(s: &str) -> Result { + match s { + "fetch" => Ok(CliCommand::Fetch), + "cook" => Ok(CliCommand::Cook), + "unfetch" => Ok(CliCommand::Unfetch), + "clean" => Ok(CliCommand::Clean), + "push" => Ok(CliCommand::Push), + "tree" => Ok(CliCommand::Tree), + "find" => Ok(CliCommand::Find), + _ => Err(anyhow!("Unknown command '{}'\n{}\n", s, REPO_HELP_STR)), + } + } +} + +impl ToString for CliCommand { + fn to_string(&self) -> String { + match self { + CliCommand::Fetch => "fetch".to_string(), + CliCommand::Cook => "cook".to_string(), + CliCommand::Unfetch => "unfetch".to_string(), + CliCommand::Clean => "clean".to_string(), + CliCommand::Push => "push".to_string(), + CliCommand::Tree => "tree".to_string(), + CliCommand::Find => "find".to_string(), + } + } +} + +impl CliConfig { + fn new() -> Result { + let current_dir = env::current_dir()?; + Ok(CliConfig { + //FIXME: This config is unused as redox-pkg harcoded this to $PWD/recipes + cookbook_dir: current_dir.join("recipes"), + repo_dir: current_dir.join("repo"), + // build dir here is hardcoded in repo_builder as well + logs_dir: if get_config().cook.logs { + Some(current_dir.join("build/logs")) + } else { + None + }, + category: None, + sysroot_dir: if cfg!(target_os = "redox") { + PathBuf::from("/") + } else { + current_dir.join("sysroot") + }, + with_package_deps: false, + cook: get_config().cook.clone(), + all: false, + filesystem: None, + }) + } +} + +fn main() { + init_config(); + if let Err(e) = main_inner() { + eprintln!("{:?}", e); + process::exit(1); + }; +} + +fn main_inner() -> anyhow::Result<()> { + let args: Vec = env::args().skip(1).collect(); + + if args.is_empty() || args.contains(&"--help".to_string()) || args.contains(&"-h".to_string()) { + println!("{}", REPO_HELP_STR); + process::exit(1); + } + + let (config, command, recipe_names) = 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())? { + let _ = stderr().write(e.as_bytes()); + let _ = stderr().write(b"\n\n"); + print_failed(&command, &name); + return Err(anyhow!("Execution has failed")); + } else { + print_success(&command, None); + } + return publish_packages(&recipe_names, &config.repo_dir); + } + if command == CliCommand::Tree { + return handle_tree(&recipe_names, &config); + } + if command == CliCommand::Push { + return handle_push(&recipe_names, &config); + } + + let verbose = config.cook.verbose; + for recipe in &recipe_names { + match repo_inner(&config, &command, recipe) { + Ok(_) => { + if !command.is_informational() { + print_success(&command, Some(&recipe.name)); + } + } + Err(e) => { + if config.cook.nonstop { + if verbose { + eprintln!("{:?}", e); + } + if let Err(e) = handle_nonstop_fail(recipe) { + eprintln!("{:?}", e) + }; + } + print_failed(&command, &recipe.name); + if !config.cook.nonstop { + return Err(e); + } + } + } + } + + if command == CliCommand::Cook { + return publish_packages(&recipe_names, &config.repo_dir); + } + + if verbose { + println!( + "\nCommand '{}' completed for {} recipes.", + command.to_string(), + recipe_names.len() + ); + } + Ok(()) +} + +fn print_failed(command: &CliCommand, recipe: &PackageName) { + eprintln!( + "{}{}{} {} - failed {}{}", + style::Bold, + color::Fg(color::AnsiValue(196)), + command.to_string(), + recipe.as_str(), + color::Fg(color::Reset), + style::Reset, + ); +} + +fn print_success(command: &CliCommand, recipe: Option<&PackageName>) { + if let Some(recipe) = recipe { + eprintln!( + "{}{}{} {} - successful{}{}", + style::Bold, + color::Fg(color::AnsiValue(46)), + command.to_string(), + recipe.as_str(), + color::Fg(color::Reset), + style::Reset, + ); + } else { + eprintln!( + "{}{}{} - successful{}{}", + style::Bold, + color::Fg(color::AnsiValue(46)), + command.to_string(), + color::Fg(color::Reset), + style::Reset, + ); + } +} + +fn repo_inner( + config: &CliConfig, + command: &CliCommand, + recipe: &CookRecipe, +) -> Result<(), anyhow::Error> { + Ok(match *command { + CliCommand::Fetch | CliCommand::Cook => { + let repo_inner_fn = move |logger: &PtyOut| -> Result<(), anyhow::Error> { + 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)?; + } + Ok(()) + }; + let Some(log_path) = &config.logs_dir else { + return repo_inner_fn(&None); + }; + + let (status_tx, status_rx) = mpsc::channel::(); + let (mut stdout_writer, mut stderr_writer) = setup_logger(&status_tx, &recipe.name); + let mut app = TuiApp::new(vec![recipe.clone()]); + app.dump_logs_anyway = config.cook.verbose || !config.cook.nonstop; + let dump_fail_logs = !app.dump_logs_anyway; + let th = thread::spawn(move || { + while let Ok(update) = status_rx.recv() { + match &update { + StatusUpdate::CookThreadFinished => break, + StatusUpdate::FailCook(r, _) => { + let (logs, line) = app.get_recipe_log(&r.name); + if let Some(logs) = logs { + println!("{}", join_logs(logs, line)); + } + } + _ => app.update_status(update), + } + } + }); + let mut logger = Some((&mut stdout_writer, &mut stderr_writer)); + let result = repo_inner_fn(&logger); + if let Err(err_ctx) = &result { + log_to_pty!(&logger, "\n{:?}", err_ctx) + } + // successful fetch is not that useful to log + if *command == CliCommand::Cook || result.is_err() { + flush_pty(&mut logger); + let log_path = + log_path.join(format!("{}/{}.log", recipe.target, recipe.name.name())); + status_tx + .send(StatusUpdate::FlushLog(recipe.name.clone(), log_path)) + .unwrap_or_default(); + if dump_fail_logs && result.is_err() { + status_tx + .send(StatusUpdate::FailCook(recipe.clone(), "".into())) + .unwrap_or_default(); + } + } + status_tx + .send(StatusUpdate::CookThreadFinished) + .unwrap_or_default(); + let _ = th.join(); + result?; + } + CliCommand::Unfetch => handle_clean(recipe, config, true, true)?, + CliCommand::Clean => handle_clean(recipe, config, false, true)?, + CliCommand::Push => unreachable!(), + CliCommand::Tree => unreachable!(), + CliCommand::Find => println!("{}", recipe.dir.display()), + }) +} + +fn publish_packages(recipe_names: &Vec, repo_path: &PathBuf) -> anyhow::Result<()> { + let repo_bin = env::current_exe()?.parent().unwrap().join("repo_builder"); + let mut command = Command::new(repo_bin); + command + .arg(repo_path) + .args(recipe_names.iter().filter_map(|n| { + if !n.is_deps { + Some(n.name.as_str()) + } else { + None + } + })); + + run_command(command, &None).map_err(|e| anyhow!(e)) +} + +fn parse_args(args: Vec) -> anyhow::Result<(CliConfig, CliCommand, Vec)> { + let mut config = CliConfig::new()?; + let mut command: Option = None; + let mut recipe_names: Vec = Vec::new(); + let mut override_filesystem_repo_binary = false; + for arg in args { + if arg.starts_with("--") { + if let Some((key, value)) = arg.split_once('=') { + match key { + "--cookbook" => config.cookbook_dir = PathBuf::from(value), + "--repo" => config.repo_dir = PathBuf::from(value), + "--sysroot" => config.sysroot_dir = PathBuf::from(value), + "--category" => config.category = Some(PathBuf::from(value)), + "--filesystem" => { + config.filesystem = Some({ + let r = redox_installer::Config::from_file(&PathBuf::from(value)); + r.context("Unable to read filesystem installer config")? + }) + } + _ => { + eprintln!("Error: Unknown flag with value: {}", arg); + process::exit(1); + } + } + } else if arg.starts_with("--category-") { + // to workaround make command limit we provide this option + config.category = Some(PathBuf::from(arg[("--category-").len()..].to_owned())); + } else { + match arg.as_str() { + "--repo-binary" => override_filesystem_repo_binary = true, + "--with-package-deps" => config.with_package_deps = true, + "--all" => config.all = true, + _ => { + eprintln!("Error: Unknown flag: {}", arg); + process::exit(1); + } + } + } + } else if arg.starts_with('-') { + match arg.as_str() { + _ => { + eprintln!("Error: Unknown flag: {}", arg); + process::exit(1); + } + } + } else if command.is_none() { + // The first non-flag argument is the command + command = Some(arg); + } else { + // Subsequent non-flag arguments are recipe names + recipe_names.push(arg.try_into().context("Invalid package name")?); + } + } + + if let Some(c) = config.category { + // need to prefix by cookbook dir + config.category = Some(PathBuf::from("recipes").join(c)); + } + if let Some(c) = config.logs_dir.as_mut() { + fs::create_dir_all(c.join(redoxer::target())).map_err(|e| anyhow!(e))?; + fs::create_dir_all(c.join(redoxer::host_target())).map_err(|e| anyhow!(e))?; + } + if override_filesystem_repo_binary { + if let Some(conf) = config.filesystem.as_mut() { + conf.general.repo_binary = Some(true); + } + } + + let command = command.ok_or(anyhow!("Error: No command specified."))?; + let command: CliCommand = str::parse(&command)?; + let mut recipes = 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() + ); + } + match &config.category { + None => 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 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() + }) + .collect(); + } else { + bail!( + "Error: No recipe names or filesystem config provided and --all flag was not used." + ); + } + } + if command.is_building() || (command.is_pushing() && config.with_package_deps) { + if config.with_package_deps { + recipe_names = CookRecipe::get_package_deps_recursive(&recipe_names, true) + .context("failed get package deps")?; + } + CookRecipe::get_build_deps_recursive( + &recipe_names, + !command.is_pushing(), + // In CliCommand::Cook, is_deps==true will make it skip checking source + command.is_pushing() || !config.with_package_deps, + )? + } else { + recipe_names + .iter() + .map(|f| CookRecipe::from_name(f.clone()).unwrap()) + .collect() + } + }; + if let Some(conf) = config.filesystem.as_ref() + && !command.is_cleaning() + { + let repo_binary = conf.general.repo_binary == Some(true); + let mut last_rule = if repo_binary { "binary" } else { "source" }; + let mut should_drop_host_packages = true; + // Use rev() so recipes that don't listed in config is inherited from parent + for recipe in recipes.iter_mut().rev() { + if let Some(conf) = conf.packages.get(recipe.name.as_str()) { + last_rule = match conf { + PackageConfig::Build(rule) => &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; + } + + Ok((config, command, recipes)) +} + +fn handle_fetch( + recipe: &CookRecipe, + config: &CliConfig, + allow_offline: bool, + logger: &PtyOut, +) -> anyhow::Result { + let source_dir = match config.cook.offline && allow_offline { + true => fetch_offline(&recipe, logger), + false => fetch(&recipe, logger), + } + .map_err(|e| anyhow!("failed to fetch: {:?}", e))?; + + Ok(source_dir) +} + +fn handle_cook( + recipe: &CookRecipe, + config: &CliConfig, + source_dir: PathBuf, + is_deps: bool, + logger: &PtyOut, +) -> anyhow::Result<()> { + let recipe_dir = &recipe.dir; + let target_dir = create_target_dir(recipe_dir, recipe.target).map_err(|e| anyhow!(e))?; + let (stage_dirs, auto_deps) = build( + recipe_dir, + &source_dir, + &target_dir, + &recipe.name, + &recipe.recipe, + config.cook.offline, + !is_deps, + logger, + ) + .map_err(|err| anyhow!("failed to build: {:?}", err))?; + + package(&recipe, &stage_dirs, &auto_deps, logger) + .map_err(|err| anyhow!("failed to package: {:?}", err))?; + + Ok(()) +} + +/// delete stage artifacts upon nonstop failure to let repo_builder know +fn handle_nonstop_fail(recipe: &CookRecipe) -> anyhow::Result<()> { + let target_dir = recipe.target_dir(); + let stage_dirs = get_stage_dirs(&recipe.recipe.optional_packages, &target_dir); + for stage_dir in stage_dirs { + remove_stage_dir(&stage_dir) + .map_err(|err| anyhow!("failed to remove stage dir: {:?}", err))?; + } + Ok(()) +} + +fn handle_clean( + recipe: &CookRecipe, + _config: &CliConfig, + source: bool, + target: bool, +) -> anyhow::Result<()> { + let dir = recipe.dir.join("target"); + if dir.exists() && target { + fs::remove_dir_all(&dir).context(format!("failed to delete {}", dir.display()))?; + } + let dir = recipe.dir.join("source"); + if dir.exists() && source { + fs::remove_dir_all(&dir).context(format!("failed to delete {}", dir.display()))?; + } + Ok(()) +} + +static PUSH_SYSROOT_DIR: OnceLock = OnceLock::new(); +fn handle_push(recipes: &Vec, config: &CliConfig) -> anyhow::Result<()> { + let recipe_map: HashMap<&PackageName, &CookRecipe> = + recipes.iter().map(|r| (&r.name, r)).collect(); + let mut total_size: u64 = 0; + let mut visited: HashSet = HashSet::new(); + let roots: Vec<&CookRecipe> = recipes.iter().filter(|r| !r.is_deps).collect(); + let num_roots = roots.len(); + PUSH_SYSROOT_DIR.set(config.sysroot_dir.clone()).unwrap(); + let handle_push_inner = move |package_name: &PackageName, + _prefix: &str, + _is_last: bool, + entry: &WalkTreeEntry| + -> anyhow::Result<()> { + let public_path = "build/id_ed25519.pub.toml"; + let r = match entry { + WalkTreeEntry::Built(archive_path, _) => { + let sysroot_dir = PUSH_SYSROOT_DIR.get().unwrap(); + pkgar::extract(public_path, archive_path.as_path(), sysroot_dir).context(format!( + "failed to install '{}' in '{}'", + archive_path.display(), + sysroot_dir.display(), + )) + } + WalkTreeEntry::NotBuilt => Err(anyhow!( + "Package {} has not been built", + package_name.name() + )), + WalkTreeEntry::Deduped | WalkTreeEntry::Missing => { + return Ok(()); + } + }; + match r { + Ok(()) => { + print_success(&CliCommand::Push, Some(package_name)); + Ok(()) + } + Err(e) => { + print_failed(&CliCommand::Push, package_name); + if get_config().cook.nonstop { + Ok(()) + } else { + Err(e) + } + } + } + }; + if config.with_package_deps { + for (i, root) in roots.iter().enumerate() { + walk_tree_entry( + &root.name, + &recipe_map, + "", + i == num_roots - 1, + &mut visited, + &mut total_size, + handle_push_inner, + )?; + } + } else { + for (i, root) in roots.iter().enumerate() { + let archive_path = config + .repo_dir + .join(redoxer::target()) + .join(format!("{}.pkgar", root.name)); + let metadata = std::fs::metadata(&archive_path); + handle_push_inner( + &root.name, + "", + i == num_roots - 1, + &match metadata { + Ok(m) => { + total_size += m.len(); + visited.insert(root.name.clone()); + WalkTreeEntry::Built(&archive_path, m.len()) + } + Err(_) => WalkTreeEntry::NotBuilt, + }, + )?; + } + } + + if config.cook.verbose { + println!(""); + println!( + "Pushed {} of {} {}", + format_size(total_size), + visited.len(), + if visited.len() == 1 { + "package" + } else { + "packages" + }, + ); + } + + Ok(()) +} + +fn handle_tree(recipes: &Vec, _config: &CliConfig) -> anyhow::Result<()> { + let recipe_map: HashMap<&PackageName, &CookRecipe> = + recipes.iter().map(|r| (&r.name, r)).collect(); + let mut total_size: u64 = 0; + let mut visited: HashSet = HashSet::new(); + 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( + &root.name, + &recipe_map, + "", + i == num_roots - 1, + &mut visited, + &mut total_size, + )?; + } + + println!(""); + println!( + "Estimated image size: {} of {} {}", + format_size(total_size), + visited.len(), + if visited.len() == 1 { + "package" + } else { + "packages" + }, + ); + + Ok(()) +} + +// +// ------------- TUI SPECIFIC CODE ------------------- +// + +#[derive(Debug, Clone, PartialEq)] +enum RecipeStatus { + Pending, + Fetching, + Fetched, + Cooking, + Done, + Failed(String), +} + +#[derive(Debug, Clone, PartialEq)] +enum StatusUpdate { + StartFetch(PackageName), + Fetched(CookRecipe), + FailFetch(CookRecipe, String), + StartCook(PackageName), + Cooked(CookRecipe), + FailCook(CookRecipe, String), + PushLog(PackageName, Vec), + FlushLog(PackageName, PathBuf), + FetchThreadFinished, + CookThreadFinished, +} + +#[derive(PartialEq)] +enum JobType { + Fetch, + Cook, +} + +impl ToString for JobType { + fn to_string(&self) -> String { + match self { + JobType::Fetch => "Fetch", + JobType::Cook => "Cook", + } + .to_string() + } +} + +struct TuiApp { + recipes: Vec<(CookRecipe, RecipeStatus)>, + fetch_queue: VecDeque, + cook_queue: VecDeque, + done: Vec, + active_fetch: Option, + active_cook: Option, + logs: HashMap>, + log_byte_buffer: HashMap>, + log_scroll: usize, + log_view_job: JobType, + auto_scroll: bool, + fetch_scroll: usize, + cook_scroll: usize, + cook_auto_scroll: bool, + cook_list_state: ListState, + fetch_complete: bool, + cook_complete: bool, + fetch_panel_rect: Option, + cook_panel_rect: Option, + log_panel_rect: Option, + prompt: Option, + dump_logs_anyway: bool, + dump_logs_on_exit: Option<(PackageName, String)>, +} + +impl TuiApp { + fn new(recipes: Vec) -> Self { + Self { + recipes: recipes + .iter() + .cloned() + .map(|r| (r, RecipeStatus::Pending)) + .collect(), + fetch_queue: recipes.iter().cloned().map(|r| r.clone()).collect(), + cook_queue: VecDeque::new(), + done: Vec::new(), + active_fetch: None, + active_cook: None, + logs: HashMap::new(), + log_byte_buffer: HashMap::new(), + log_scroll: 0, + auto_scroll: true, + log_view_job: JobType::Fetch, + fetch_scroll: 0, + cook_scroll: 0, + cook_auto_scroll: true, + cook_list_state: ListState::default(), + fetch_complete: false, + cook_complete: false, + fetch_panel_rect: None, + cook_panel_rect: None, + log_panel_rect: None, + prompt: None, + dump_logs_anyway: false, + dump_logs_on_exit: None, + } + } + + pub fn get_active_name(&self) -> Option { + if self.log_view_job == JobType::Cook { + self.active_cook.clone() + } else { + self.active_fetch.clone() + } + } + + pub fn get_active_log( + &self, + ) -> ( + Option, + Option<&Vec>, + Option>, + ) { + let active_name = self.get_active_name(); + let (log_text, log_line) = if let Some(active_name) = active_name.as_ref() { + self.get_recipe_log(active_name) + } else { + (None, None) + }; + + (active_name, log_text, log_line) + } + + pub fn get_recipe_log( + &self, + recipe_name: &PackageName, + ) -> (Option<&Vec>, Option>) { + let log_text = self.logs.get(recipe_name); + let log_line = if let Some(b) = self.log_byte_buffer.get(recipe_name) { + Some(String::from_utf8_lossy(b)) + } else { + None + }; + (log_text, log_line) + } + + pub fn write_log(&self, recipe_name: &PackageName, log_path: &PathBuf) -> anyhow::Result<()> { + let (Some(logs), line) = self.get_recipe_log(recipe_name) else { + return Ok(()); + }; + let str = strip_ansi_escapes::strip_str(join_logs(logs, line)); + if !str.trim_end().is_empty() { + fs::write(log_path, str)?; + } + return Ok(()); + } + + // Update the state based on a message from a worker thread + fn update_status(&mut self, update: StatusUpdate) { + let (name, new_status) = match update { + StatusUpdate::StartFetch(name) => { + self.active_fetch = Some(name.clone()); + self.logs.insert(name.clone(), Vec::new()); + self.log_byte_buffer.insert(name.clone(), Vec::new()); + self.log_scroll = 0; + self.auto_scroll = true; + (name.clone(), RecipeStatus::Fetching) + } + StatusUpdate::Fetched(recipe) => (recipe.name.clone(), RecipeStatus::Fetched), + StatusUpdate::FailFetch(recipe, err) => { + self.prompt = Some(FailurePrompt::new(recipe.clone(), err.clone())); + (recipe.name.clone(), RecipeStatus::Failed(err)) + } + StatusUpdate::StartCook(name) => { + self.active_cook = Some(name.clone()); + self.logs.insert(name.clone(), Vec::new()); + self.log_byte_buffer.insert(name.clone(), Vec::new()); + (name.clone(), RecipeStatus::Cooking) + } + StatusUpdate::PushLog(name, chunk) => { + let buffer = self.log_byte_buffer.entry(name.clone()).or_default(); + buffer.extend_from_slice(&chunk); + if self.dump_logs_anyway { + let _ = std::io::stdout().write_all(&chunk); + } + let log_list = self.logs.entry(name.clone()).or_default(); + while let Some(newline_pos) = buffer.iter().position(|&b| b == b'\n') { + let line_bytes = buffer.drain(..=newline_pos).collect::>(); + let line_str = String::from_utf8_lossy(&line_bytes).into_owned(); + let line_str_pos = line_str.trim_end(); + let line_str = line_str_pos.rsplit('\r').next().unwrap_or(&line_str_pos); + log_list.push(line_str.to_owned()); + } + return; + } + StatusUpdate::FlushLog(name, path) => { + // TODO: This blocks the TUI, maybe open separate thread? + // FIXME: handle error here? + let _ = self.write_log(&name, &path); + return; + } + StatusUpdate::Cooked(recipe) => { + if self.active_cook.as_ref() == Some(&recipe.name) { + self.active_cook = None; + } + self.auto_scroll = true; + (recipe.name.clone(), RecipeStatus::Done) + } + StatusUpdate::FailCook(recipe, err) => { + self.prompt = Some(FailurePrompt::new(recipe.clone(), err.clone())); + (recipe.name.clone(), RecipeStatus::Failed(err)) + } + StatusUpdate::FetchThreadFinished => { + self.fetch_complete = true; + self.log_view_job = JobType::Cook; + return; + } + StatusUpdate::CookThreadFinished => { + self.cook_complete = true; + return; + } + }; + + if let Some((_, status)) = self.recipes.iter_mut().find(|(r, _)| r.name == name) { + *status = new_status; + } + + // Re-compute the queues for display + self.fetch_queue = self + .recipes + .iter() + .filter(|(_, s)| *s == RecipeStatus::Pending) + .map(|(r, _)| r.clone()) + .collect(); + self.cook_queue = self + .recipes + .iter() + .filter(|(_, s)| *s == RecipeStatus::Fetched) + .map(|(r, _)| r.clone()) + .collect(); + self.done = self + .recipes + .iter() + .filter(|(_, s)| *s == RecipeStatus::Done) + .map(|(r, _)| r.name.clone()) + .collect(); + } +} + +fn run_tui_cook( + config: CliConfig, + recipes: Vec, +) -> anyhow::Result> { + let (work_tx, work_rx) = mpsc::channel::<(CookRecipe, PathBuf)>(); + let (status_tx, status_rx) = mpsc::channel::(); + + let running = Arc::new(AtomicBool::new(true)); + let prompting = Arc::new(AtomicU32::new(0)); + const TICK_RATE: Duration = Duration::from_millis(100); + + // ---- Cooker Thread ---- + let cooker_config = config.clone(); + let cooker_status_tx = status_tx.clone(); + let cooker_prompting = prompting.clone(); + 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 { + cooker_status_tx + .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, + ); + if let Some(log_path) = cooker_config.logs_dir.as_ref() { + if let Err(err_ctx) = &handler { + log_to_pty!(&logger, "\n{:?}", err_ctx) + } + flush_pty(&mut logger); + let log_path = log_path.join(format!("{}/{}.log", recipe.target, name.name())); + cooker_status_tx + .send(StatusUpdate::FlushLog(name.clone(), log_path)) + .unwrap_or_default(); + } + match handler { + Ok(()) => { + cooker_status_tx + .send(StatusUpdate::Cooked(recipe)) + .unwrap_or_default(); + if cooker_config.cook.nonstop + && cooker_prompting.load(Ordering::SeqCst) == 4 + { + break 'done; + } + break; + } + Err(e) => { + cooker_status_tx + .send(StatusUpdate::FailCook(recipe.clone(), e.to_string())) + .unwrap_or_default(); + if cooker_config.cook.nonstop { + if cooker_prompting.load(Ordering::SeqCst) == 4 { + break 'done; + } + // TODO: where to report error? + let _ = handle_nonstop_fail(&recipe); + break; + } + while cooker_prompting.load(Ordering::SeqCst) != 0 { + thread::sleep(Duration::from_millis(101)); // wait other prompt + } + cooker_prompting.swap(1, Ordering::SeqCst); + 'wait: loop { + match cooker_prompting.load(Ordering::SeqCst) { + 0 => break 'again, + 1 => thread::sleep(Duration::from_millis(101)), + 2 => { + cooker_prompting.swap(0, Ordering::SeqCst); + break 'wait; + } // retry + 3 => { + cooker_prompting.swap(0, Ordering::SeqCst); + let _ = handle_nonstop_fail(&recipe); + break 'again; + } // skip + 4 => { + cooker_prompting.swap(0, Ordering::SeqCst); + break 'done; + } // done + _ => unreachable!(), + } + } + } + } + } + } + cooker_status_tx + .send(StatusUpdate::CookThreadFinished) + .unwrap_or_default(); + }); + + let mstdin = stdin(); + let mstdout = stdout() + .into_raw_mode() + .unwrap() + .into_alternate_screen() + .unwrap(); + + // ----- Input Thread ----- + let (input_tx, input_rx) = mpsc::channel::(); + let _input_handle = thread::spawn(move || { + for evt in mstdin.events() { + if let Ok(evt) = evt { + if input_tx.send(evt).is_err() { + return; + } + } + } + }); + + // ---- Fetcher Thread ---- + let fetcher_recipes = recipes.clone(); + let fetcher_status_tx = status_tx.clone(); + let fetcher_config = config.clone(); + let fetcher_prompting = prompting.clone(); + let fetcher_handle = thread::spawn(move || { + 'done: for mut recipe in fetcher_recipes { + let name = recipe.name.clone(); + let (mut stdout_writer, mut stderr_writer) = setup_logger(&fetcher_status_tx, &name); + let mut logger = Some((&mut stdout_writer, &mut stderr_writer)); + 'again: loop { + fetcher_status_tx + .send(StatusUpdate::StartFetch(name.clone())) + .unwrap(); + let _ = recipe.reload_recipe(); // reread recipe.toml in case we're retrying + let handler = handle_fetch(&recipe, &fetcher_config, true, &logger); + if let Some(log_path) = fetcher_config.logs_dir.as_ref() + // successful fetch log usually not that helpful + && handler.is_err() + { + if let Err(err_ctx) = &handler { + log_to_pty!(&logger, "\n{:?}", err_ctx) + } + flush_pty(&mut logger); + let log_path = log_path.join(format!("{}/{}.log", recipe.target, name.name())); + fetcher_status_tx + .send(StatusUpdate::FlushLog(name.clone(), log_path)) + .unwrap_or_default(); + } + match handler { + Ok(source_dir) => { + fetcher_status_tx + .send(StatusUpdate::Fetched(recipe.clone())) + .unwrap(); + if work_tx.send((recipe.clone(), source_dir)).is_err() { + // Cooker thread died + break 'done; + } + if fetcher_config.cook.nonstop + && fetcher_prompting.load(Ordering::SeqCst) == 4 + { + break 'done; + } + break; + } + Err(e) => { + fetcher_status_tx + .send(StatusUpdate::FailFetch(recipe.clone(), e.to_string())) + .unwrap_or_default(); + if fetcher_config.cook.nonstop { + if fetcher_prompting.load(Ordering::SeqCst) == 4 { + break 'done; + } + let _ = handle_nonstop_fail(&recipe); + break; + } + while fetcher_prompting.load(Ordering::SeqCst) != 0 { + thread::sleep(Duration::from_millis(101)); // wait other prompt + } + fetcher_prompting.swap(1, Ordering::SeqCst); + 'wait: loop { + match fetcher_prompting.load(Ordering::SeqCst) { + 0 => break 'again, + 1 => thread::sleep(Duration::from_millis(101)), + 2 => { + fetcher_prompting.swap(0, Ordering::SeqCst); + break 'wait; + } // retry + 3 => { + fetcher_prompting.swap(0, Ordering::SeqCst); + let _ = handle_nonstop_fail(&recipe); + break 'again; + } // skip + 4 => { + fetcher_prompting.swap(0, Ordering::SeqCst); + break 'done; + } // done + _ => unreachable!(), + } + } + } + } + } + } + status_tx + .send(StatusUpdate::FetchThreadFinished) + .unwrap_or_default(); + }); + + let mut terminal = Terminal::new(TermionBackend::new(stdout()))?; + terminal.clear()?; + + let mut app = TuiApp::new(recipes); + + let spinner = ['-', '\\', '|', '/']; + let mut spinner_i = 0; + + while running.load(Ordering::SeqCst) { + let frame_start = Instant::now(); + terminal.draw(|f| { + spinner_i = (spinner_i + 1) % spinner.len(); + let spin = spinner[spinner_i]; + + let mut constraints = Vec::new(); + if !app.fetch_complete { + constraints.push(Constraint::Length(22)); + } + constraints.push(Constraint::Length(22)); + constraints.push(Constraint::Min(20)); + let chunks = Layout::default() + .direction(Direction::Horizontal) + .constraints(constraints) + .split(f.area()); + let panel_height = chunks[0].height.saturating_sub(2) as usize; + + // Left Pane + let fetch_items: Vec = app + .recipes + .iter() + .filter(|(_, s)| *s == RecipeStatus::Pending || *s == RecipeStatus::Fetching) + .map(|(r, s)| { + let style = if *s == RecipeStatus::Fetching { + Style::default().fg(Color::Yellow) + } else { + Style::default() + }; + let icon = match s { + RecipeStatus::Pending => ' ', + RecipeStatus::Fetching => spin, + _ => '?', + }; + + ListItem::new(format!("{icon} {}", r.name)).style(style) + }) + .collect(); + let fetch_list = List::new(fetch_items).block( + Block::default() + .title("Fetch Queue [1]") + .borders(Borders::ALL), + ); + f.render_widget(fetch_list, chunks[0]); + + // Right Pane + let cook_items: Vec = app + .recipes + .iter() + .filter(|(_, s)| { + *s == RecipeStatus::Fetched + || *s == RecipeStatus::Cooking + || *s == RecipeStatus::Done + || matches!(s, RecipeStatus::Failed(_)) + }) + .map(|(r, s)| { + let style = match s { + RecipeStatus::Fetched => Style::default().fg(Color::Cyan), + RecipeStatus::Cooking => Style::default().fg(Color::Yellow), + RecipeStatus::Done => Style::default().fg(Color::Green), + RecipeStatus::Failed(_) => Style::default().fg(Color::Red), + _ => Style::default(), + }; + let icon = match s { + RecipeStatus::Fetched => ' ', + RecipeStatus::Cooking => spin, + RecipeStatus::Done => ' ', + RecipeStatus::Failed(_) => 'X', + _ => '?', + }; + ListItem::new(format!("{icon} {}", r.name)).style(style) + }) + .collect(); + let total_items = cook_items.len(); + if app.cook_auto_scroll { + let cooking_index = app + .recipes + .iter() + .filter(|(_, s)| { + *s == RecipeStatus::Fetched + || *s == RecipeStatus::Cooking + || *s == RecipeStatus::Done + || matches!(s, RecipeStatus::Failed(_)) + }) + .position(|(_r, s)| *s == RecipeStatus::Cooking); + + if let Some(index) = cooking_index { + app.cook_list_state.select(Some(index)); + let index_u16 = index; + let center_offset = panel_height / 2; + let new_offset = index_u16.saturating_sub(center_offset) as usize; + + *app.cook_list_state.offset_mut() = new_offset; + } + } else { + app.cook_list_state.select(None); + if total_items > 0 { + let max_offset = total_items.saturating_sub(panel_height as usize); + if *app.cook_list_state.offset_mut() > max_offset { + *app.cook_list_state.offset_mut() = max_offset; + } + } else { + *app.cook_list_state.offset_mut() = 0; + } + } + let cook_items: Vec = cook_items[app.cook_scroll..].into(); + let cook_chunk = chunks[if app.fetch_complete { 0 } else { 1 }]; + let cook_list = List::new(cook_items).block( + Block::default() + .title("Cook Queue [2]") + .borders(Borders::ALL), + ); + f.render_stateful_widget(cook_list, cook_chunk, &mut app.cook_list_state); + + let (active_name, log_text, log_line) = app.get_active_log(); + let log_title = if let Some(active_name) = active_name { + format!( + " {} Log: {} ", + app.log_view_job.to_string(), + active_name.as_str() + ) + } else { + format!(" {} Log ", app.log_view_job.to_string()) + }; + + let mut enable_auto_scroll = false; + let mut intended_scroll_pos = 0usize; + + let mut log_lines: Vec = if let Some(log_text) = log_text + && !log_text.is_empty() + { + let total_log_lines = log_text.len() as usize; + + let start = if app.auto_scroll { + if total_log_lines > panel_height { + intended_scroll_pos = total_log_lines - panel_height; + total_log_lines - panel_height + } else { + 0 + } + } else { + if total_log_lines > panel_height { + let limit = 2; // arbitrary number + if app.log_scroll >= total_log_lines - limit { + if app.prompt.is_none() || config.cook.nonstop { + enable_auto_scroll = true; + } + intended_scroll_pos = total_log_lines - limit; + total_log_lines - limit + } else { + app.log_scroll + } + } else { + 0 + } + }; + + let end = cmp::min(panel_height + start, total_log_lines - 1); + + log_text[start..end] + .iter() + .map(|s| { + let text_with_colors = s + .into_text() + .unwrap_or_else(|_| Text::raw("--unrenderable line--")); + text_with_colors + .lines + .into_iter() + .next() + .unwrap_or_else(|| Line::raw("--unrenderable line--")) + }) + .collect() + } else { + vec![Line::from("No logs yet")] + }; + + if let Some(buffer) = log_line + && !buffer.is_empty() + { + let text_with_colors = handle_cr(&buffer) + .into_text() + .unwrap_or_else(|_| Text::raw("--unrenderable line--")); + + if let Some(line) = text_with_colors.lines.into_iter().next() { + log_lines.push(line); + } + } + + let instruct = format!( + " Keys: [c] Stop [PageUp/Down] Scroll{}{} ", + match app.auto_scroll { + true => "", + false => " [End] Follow log trails", + }, + match (&app.log_view_job, app.fetch_complete) { + (JobType::Fetch, _) => " [2] View Cook Log", + (JobType::Cook, false) => " [1] View Fetch Log", + (JobType::Cook, true) => "", + } + ); + + let mut log_paragraph = Paragraph::new(log_lines).block( + Block::default() + .title(log_title) + .title_bottom(instruct) + .borders(Borders::ALL), + ); + + if !app.auto_scroll { + log_paragraph = log_paragraph.wrap(Wrap { trim: false }); + } + + f.render_widget( + log_paragraph, + chunks[if app.fetch_complete { 1 } else { 2 }], + ); + if let Some(prompt) = &mut app.prompt { + if config.cook.nonstop && prompt.selected == PromptOption::Retry { + prompt.selected = PromptOption::Skip; + } + draw_prompt(f, prompt, config.cook.nonstop); + } + if enable_auto_scroll { + app.auto_scroll = true; + } + if intended_scroll_pos > 0 { + app.log_scroll = intended_scroll_pos; + } + + while let Ok(event) = input_rx.try_recv() { + if let Some((app, res)) = handle_prompt_input(&event, &mut app) { + prompting.swap(res as u32, Ordering::SeqCst); + if res == PromptOption::Exit { + // TODO: This can be a different log with what prompted on nonstop mode + let (name, log, line) = app.get_active_log(); + if let Some(name) = name + && let Some(log) = log + { + app.dump_logs_on_exit = Some((name.to_owned(), join_logs(log, line))); + } + running.store(false, Ordering::SeqCst); + } + app.prompt = None; + } else { + handle_main_event(&mut app, &event); + } + } + })?; + + while let Ok(update) = status_rx.try_recv() { + app.update_status(update); + } + + if app.cook_complete { + running.swap(false, Ordering::SeqCst); + } + + if let Some(sleep_duration) = TICK_RATE.checked_sub(frame_start.elapsed()) { + thread::sleep(sleep_duration); + } + } + + drop(mstdout); + let _ = stdout().flush(); + + if config.cook.nonstop && app.dump_logs_on_exit.is_some() { + kill_everything(); + } + + fetcher_handle.join().unwrap(); + cooker_handle.join().unwrap(); + + Ok(app.dump_logs_on_exit) +} + +fn join_logs(log: &Vec, line: Option>) -> String { + let mut logs = log.join("\n"); + if let Some(line) = line { + logs.push_str("\n"); + logs.push_str(handle_cr(&line)); + } + logs +} + +fn handle_cr<'a>(buffer: &'a Cow<'_, str>) -> &'a str { + let st = buffer.trim_end(); + st.rsplit('\r').next().unwrap_or(&st) +} + +fn handle_main_event(app: &mut TuiApp, event: &Event) { + match event { + Event::Key(key) => match key { + Key::Char('1') => { + app.log_view_job = JobType::Fetch; + } + Key::Char('2') => { + app.log_view_job = JobType::Cook; + } + Key::Char('c') => { + // as compilers still running, we use this way to stop it + kill_everything(); + } + Key::Up => { + app.auto_scroll = false; + app.log_scroll = app.log_scroll.saturating_sub(1); + } + Key::Down => { + app.auto_scroll = false; + app.log_scroll = app.log_scroll.saturating_add(1); + } + Key::PageUp => { + app.auto_scroll = false; + app.log_scroll = app.log_scroll.saturating_sub(20); + } + Key::PageDown => { + app.auto_scroll = false; + app.log_scroll = app.log_scroll.saturating_add(20); + } + Key::End => { + app.auto_scroll = true; + } + Key::Home => { + app.auto_scroll = false; + app.log_scroll = 0; + } + _ => {} + }, + + //FIXME: This does nothing, it seems ratatui handles this itself magically + Event::Mouse(mouse_event) => { + match mouse_event { + MouseEvent::Press(termion::event::MouseButton::WheelUp, x, y) => { + // termion is 1-based, ratatui rects are 0-based + let pos = Position { + x: x.saturating_sub(1), + y: y.saturating_sub(1), + }; + + if app.fetch_panel_rect.map_or(false, |r| r.contains(pos)) { + app.fetch_scroll = app.fetch_scroll.saturating_sub(1); + } else if app.cook_panel_rect.map_or(false, |r| r.contains(pos)) { + app.cook_scroll = app.cook_scroll.saturating_sub(1); + app.cook_auto_scroll = false; + } else if app.log_panel_rect.map_or(false, |r| r.contains(pos)) { + app.auto_scroll = false; + app.log_scroll = app.log_scroll.saturating_sub(1); + } + } + MouseEvent::Press(termion::event::MouseButton::WheelDown, x, y) => { + let pos = Position { + x: x.saturating_sub(1), + y: y.saturating_sub(1), + }; + + if app.fetch_panel_rect.map_or(false, |r| r.contains(pos)) { + app.fetch_scroll = app.fetch_scroll.saturating_add(1); + } else if app.cook_panel_rect.map_or(false, |r| r.contains(pos)) { + app.cook_scroll = app.cook_scroll.saturating_add(1); + app.cook_auto_scroll = false; + } else if app.log_panel_rect.map_or(false, |r| r.contains(pos)) { + app.auto_scroll = false; + app.log_scroll = app.log_scroll.saturating_add(1); + } + } + _ => {} + } + } + _ => {} + } +} + +fn kill_everything() { + let pid = std::process::id(); + Command::new("bash") + .arg("-c") + .arg(KILL_ALL_PID.replace("$PID", &pid.to_string())) + .stdout(process::Stdio::null()) + .stderr(process::Stdio::null()) + .spawn() + .expect("unable to spawn kill"); +} + +fn handle_prompt_input<'a>( + event: &Event, + app: &'a mut TuiApp, +) -> Option<(&'a mut TuiApp, PromptOption)> { + if let Some(prompt) = &mut app.prompt { + match event { + Event::Key(key) => match key { + Key::Char('q') | Key::Ctrl('c') | Key::Esc => { + // Treat as "Exit" + return Some((app, PromptOption::Exit)); + } + Key::Left | Key::BackTab => prompt.prev(), + Key::Right | Key::Char('\t') => prompt.next(), + Key::Char('\n') => { + let prompt = app.prompt.take().unwrap(); + return Some((app, prompt.selected)); + } + _ => {} + }, + _ => {} // Ignore mouse events + } + } + None +} + +fn draw_prompt(f: &mut ratatui::Frame, prompt: &FailurePrompt, is_nonstop: bool) { + let title = format!( + " FAILURE in {} {}", + prompt.recipe.name, + if is_nonstop { "(skipped) " } else { "" } + ); + let mut error_text = prompt.error.clone(); + if error_text.len() > 200 { + error_text = error_text[0..100].to_string() + + ".." + + &error_text[(error_text.len() - 100)..(error_text.len() - 1)]; + } else if error_text.len() > 100 { + error_text = error_text[0..100].to_string() + ".."; + } + + // Style for options + let retry_style = if prompt.selected == PromptOption::Retry { + Style::default().bg(Color::White).fg(Color::Black) + } else { + Style::default() + }; + let skip_style = if prompt.selected == PromptOption::Skip { + Style::default().bg(Color::White).fg(Color::Black) + } else { + Style::default() + }; + let exit_style = if prompt.selected == PromptOption::Exit { + Style::default().bg(Color::White).fg(Color::Black) + } else { + Style::default() + }; + + let mut buttons = vec![ + Span::styled(" [Skip] ", skip_style), + Span::raw(" "), + Span::styled(" [Exit] ", exit_style), + ]; + + if !is_nonstop { + buttons.push(Span::raw(" ")); + buttons.push(Span::styled(" [Retry] ", retry_style)); + } + + let text = vec![ + Line::from(error_text).style(Style::default().fg(Color::Yellow)), + Line::from(""), + Line::from(buttons), + ]; + + let block = Block::default() + .title(Span::styled( + title, + Style::default().fg(Color::White).bg(Color::Red), + )) + .borders(Borders::ALL) + .border_style(Style::default().fg(Color::Red)); + + let paragraph = Paragraph::new(text) + .block(block) + .alignment(ratatui::layout::Alignment::Center) + .wrap(Wrap { trim: true }); + + let area = f.area(); + let popup_area = Rect { + x: area.width / 4, + y: area.height / 3, + width: area.width / 2, + height: 10, + }; + + f.render_widget(Clear, popup_area); // Clear the background + f.render_widget(paragraph, popup_area); +} + +fn spawn_log_reader( + mut reader: R, + package_name: PackageName, + status_tx: mpsc::Sender, +) where + R: Read + Send + 'static, +{ + thread::spawn(move || { + let mut buffer = [0; 1024]; + loop { + let buf = match reader.read(&mut buffer) { + Ok(0) => break, + Ok(n) => buffer[..n].to_vec(), + Err(e) => format!("[IO Error] {}", e).into_bytes(), + }; + if status_tx + .send(StatusUpdate::PushLog(package_name.clone(), buf)) + .is_err() + { + // TUI thread hung up + break; + } + } + }); +} + +fn setup_logger( + status_tx: &mpsc::Sender, + name: &PackageName, +) -> (UnixSlavePty, std::io::PipeWriter) { + let (pty_reader, log_reader, pipes) = setup_pty(); + + spawn_log_reader(pty_reader, name.clone(), status_tx.clone()); + spawn_log_reader(log_reader, name.clone(), status_tx.clone()); + pipes +} + +#[derive(PartialEq, Clone, Copy)] +#[repr(u32)] +enum PromptOption { + Retry = 2, + Skip, + Exit, +} + +struct FailurePrompt { + recipe: CookRecipe, + error: String, + selected: PromptOption, +} + +impl FailurePrompt { + fn new(recipe: CookRecipe, error: String) -> Self { + Self { + recipe, + error, + selected: PromptOption::Exit, + } + } + + fn next(&mut self) { + self.selected = match self.selected { + PromptOption::Retry => PromptOption::Skip, + PromptOption::Skip => PromptOption::Exit, + PromptOption::Exit => PromptOption::Retry, + } + } + + fn prev(&mut self) { + self.selected = match self.selected { + PromptOption::Retry => PromptOption::Exit, + PromptOption::Skip => PromptOption::Retry, + PromptOption::Exit => PromptOption::Skip, + } + } +} diff --git a/src/bin/repo_builder.rs b/src/bin/repo_builder.rs new file mode 100644 index 000000000..4b14ea7b1 --- /dev/null +++ b/src/bin/repo_builder.rs @@ -0,0 +1,268 @@ +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 pkg::{Package, PackageName, recipes}; +use std::collections::{BTreeMap, BTreeSet, HashMap}; +use std::env; +use std::fs::{self, File}; +use std::io::{Read, Write}; +use std::path::{Path, PathBuf}; +use std::process::Command; +use toml::Value; + +fn is_newer(src: &Path, dst: &Path) -> bool { + match (fs::metadata(src), fs::metadata(dst)) { + (Ok(src_meta), Ok(dst_meta)) => match (src_meta.modified(), dst_meta.modified()) { + (Ok(src_time), Ok(dst_time)) => src_time > dst_time, + (Ok(_), Err(_)) => true, + _ => false, + }, + (Ok(_), Err(_)) => true, + _ => false, + } +} + +#[derive(Clone)] +struct CliConfig { + repo_dir: PathBuf, + appstream: bool, + recipe_list: Vec, +} + +impl CliConfig { + fn parse_args() -> Result { + let mut args = env::args().skip(1); + let repo_dir = args + .next() + .expect("Usage: repo_builder ..."); + Ok(CliConfig { + repo_dir: PathBuf::from(repo_dir), + appstream: env::var("COOKBOOK_APPSTREAM").ok().as_deref() == Some("true"), + recipe_list: args.collect(), + }) + } +} + +fn main() -> Result<(), Box> { + init_ident(); + let conf = CliConfig::parse_args()?; + Ok(publish_packages(&conf)?) +} + +// TODO: Make this callable from repo bin +fn publish_packages(config: &CliConfig) -> anyhow::Result<()> { + let repo_path = &config.repo_dir.join(redoxer::target()); + if !repo_path.is_dir() { + fs::create_dir_all(repo_path)?; + } + + // 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, + ); + + if recipe_list.len() == 0 { + // Fail-Safe + bail!("Zero packages are passing the build"); + } + + let mut appstream_sources: HashMap = HashMap::new(); + let mut packages: BTreeMap = BTreeMap::new(); + let mut outdated_packages: BTreeMap = BTreeMap::new(); + + // === 1. Push recipes in list === + for recipe_toml in &recipe_list { + let recipe = &recipe_toml.name; + let Some(recipe_path) = recipes::find(recipe.name()) else { + eprintln!("recipe {} not found", recipe); + continue; + }; + let Ok(cookbook_recipe) = CookRecipe::from_path(recipe_path, true, false) else { + eprintln!("recipe {} unable to read", recipe); + continue; + }; + + let target_dir = cookbook_recipe.target_dir(); + for package in cookbook_recipe.recipe.get_packages_list() { + let (stage_dir, pkgar_src, toml_src) = + cook_package::package_stage_paths(package, &target_dir); + let recipe_name = cook_package::get_package_name(recipe.name(), package); + let pkgar_dst = repo_path.join(format!("{}.pkgar", recipe_name)); + let toml_dst = repo_path.join(format!("{}.toml", recipe_name)); + + if !fs::exists(&toml_src)? { + eprintln!("recipe {} is missing stage.toml", recipe_name); + continue; + } + + if is_newer(&toml_src, &toml_dst) { + eprintln!("\x1b[01;38;5;155mrepo - publishing {}\x1b[0m", recipe_name); + if fs::exists(&pkgar_src)? { + fs::copy(&pkgar_src, &pkgar_dst)?; + } + fs::copy(&toml_src, &toml_dst)?; + } + + if stage_dir.join("usr/share/metainfo").exists() { + appstream_sources.insert(recipe.name().to_string(), stage_dir.clone()); + } + } + } + + // === 2. Optional AppStream generation === + if config.appstream { + eprintln!("\x1b[01;38;5;155mrepo - generating appstream data\x1b[0m"); + + let root = env::var("ROOT").unwrap_or_else(|_| ".".into()); + let target = env::var("TARGET").unwrap_or_else(|_| "x86_64-unknown-linux-gnu".into()); + let appstream_root = Path::new(&root) + .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() { + let mut compose_cmd = Command::new("appstreamcli"); + compose_cmd + .arg("compose") + .arg("--origin=pkgar") + .arg("--print-report=full") + .arg(format!("--result-root={}", appstream_root.display())); + + for (_recipe, source_path) in &appstream_sources { + 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, + )?; + } + } + + // === 3. List outdated packages === + for (recipe, e) in recipe_map + .into_iter() + .filter_map(|(k, v)| v.err().and_then(|e| Some((k, e)))) + { + eprintln!( + "\x1b[0;91;49mrepo - marking {} as outdated:\x1b[0m {e}", + recipe + ); + + let Some(recipe_path) = recipes::find(recipe.name()) else { + eprintln!("recipe {} not found", recipe); + continue; + }; + let Ok(cookbook_recipe) = CookRecipe::from_path(recipe_path, true, false) else { + eprintln!("recipe {} unable to read", recipe); + continue; + }; + + match fetch::fetch_get_source_info(&cookbook_recipe) { + Ok(source_ident) => { + outdated_packages.insert(recipe.name().to_string(), source_ident); + } + Err(e) => { + eprintln!( + "\x1b[0;91;49m source of {} is not identifiable:\x1b[0m {e}", + recipe + ); + let ident = get_ident(); + outdated_packages.insert( + recipe.name().to_string(), + SourceIdentifier { + source_identifier: "missing_source".to_string(), + commit_identifier: ident.commit.clone(), + time_identifier: ident.time.clone(), + }, + ); + } + }; + } + + eprintln!("\x1b[01;38;5;155mrepo - generating repo.toml\x1b[0m"); + + // === 4. Read and update repo.toml === + let repo_toml_path = repo_path.join("repo.toml"); + if repo_toml_path.exists() { + let mut file = File::open(&repo_toml_path)?; + let mut contents = String::new(); + file.read_to_string(&mut contents)?; + + let parsed: Repository = toml::from_str(&contents)?; + for (k, v) in parsed.packages { + packages.insert(k, v); + } + if parsed.outdated_packages.len() > 0 { + let built_packages: BTreeSet = recipe_list + .iter() + .map(|p| p.name.name().to_string()) + .collect(); + for (k, v) in parsed.outdated_packages { + if outdated_packages.contains_key(&k) || !built_packages.contains(&k) { + outdated_packages.insert(k, v); + } + } + } + } + + for entry in fs::read_dir(&repo_path)? { + let entry = entry?; + let path = entry.path(); + + if path.extension().and_then(|s| s.to_str()) != Some("toml") { + continue; + } + + if path.file_stem().and_then(|s| s.to_str()) == Some("repo") { + continue; + } + + let content = fs::read_to_string(&path)?; + let parsed: Value = toml::from_str(&content)?; + + let empty_ver = Value::String("".to_string()); + let version_str = parsed + .get("blake3") + .unwrap_or_else(|| parsed.get("version").unwrap_or_else(|| &empty_ver)) + .as_str() + .unwrap_or(""); + let package_name = path.file_stem().unwrap().to_string_lossy().to_string(); + packages.insert(package_name, version_str.to_string()); + } + + let output = toml::to_string(&Repository { + packages, + outdated_packages, + })?; + let mut output_file = File::create(&repo_toml_path)?; + output_file.write_all(output.as_bytes())?; + + Ok(()) +} diff --git a/src/blake3.rs b/src/blake3.rs new file mode 100644 index 000000000..6ad16476d --- /dev/null +++ b/src/blake3.rs @@ -0,0 +1,35 @@ +use blake3::Hasher; +use std::{fs, io::Result, path::Path, time::Duration}; + +use crate::progress_bar::{ProgressBar, ProgressBarRead}; + +pub fn blake3_progress>(path: P) -> Result { + let len = fs::metadata(&path)?.len(); + + let mut f = fs::File::open(&path)?; + + let mut pb = ProgressBar::new(len); + pb.message("blake3: "); + pb.set_max_refresh_rate(Some(Duration::new(1, 0))); + pb.set_units(pbr::Units::Bytes); + + let mut pbr = ProgressBarRead::new(&mut pb, &mut f); + let hash = Hasher::new().update_reader(&mut pbr)?.finalize(); + let res = format!("{}", hash.to_hex()); + + pb.finish_println(""); + + Ok(res) +} + +pub fn blake3_silent>(path: P) -> Result { + let mut f = fs::File::open(&path)?; + + let hash = Hasher::new().update_reader(&mut f)?.finalize(); + let res = format!("{}", hash.to_hex()); + Ok(res) +} + +pub fn hash_to_hex(h: [u8; 32]) -> String { + format!("{}", blake3::Hash::from_bytes(h).to_hex()) +} diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 000000000..c8836c6d0 --- /dev/null +++ b/src/config.rs @@ -0,0 +1,222 @@ +use std::{collections::HashMap, env, fs, str::FromStr, sync::OnceLock}; + +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Default, Clone, Deserialize, PartialEq, Serialize)] +#[serde(default)] +pub struct CookConfigOpt { + /// whether to run offline + pub offline: Option, + /// whether to set jobs number instead of from nproc + pub jobs: Option, + /// whether to use TUI to allow parallel build + /// default value is yes if "CI" env unset and STDIN is open. + pub tui: Option, + /// whether to write logs to build/logs dir, default true on TUI + pub logs: Option, + /// whether to ignore build errors + pub nonstop: Option, + /// whether to print verbose logs to certain commands + /// build failure still be printed anyway + pub verbose: Option, +} + +#[derive(Debug, Default, Clone, Deserialize, PartialEq, Serialize)] +pub struct CookConfig { + pub offline: bool, + pub jobs: usize, + pub tui: bool, + pub logs: bool, + pub nonstop: bool, + pub verbose: bool, +} + +impl From for CookConfig { + fn from(value: CookConfigOpt) -> Self { + CookConfig { + offline: value.offline.unwrap(), + jobs: value.jobs.unwrap(), + tui: value.tui.unwrap(), + logs: value.logs.unwrap(), + nonstop: value.nonstop.unwrap(), + verbose: value.verbose.unwrap(), + } + } +} + +#[derive(Debug, Default, Deserialize, PartialEq, Serialize)] +#[serde(default)] +pub struct CookbookConfig { + #[serde(rename = "cook")] + cook_opt: CookConfigOpt, + #[serde(skip)] + pub cook: CookConfig, + pub mirrors: HashMap, +} + +static CONFIG: OnceLock = OnceLock::new(); + +pub fn init_config() { + let mut config: CookbookConfig = if fs::exists("cookbook.toml").unwrap_or(false) { + let toml_content = fs::read_to_string("cookbook.toml") + .map_err(|e| format!("Unable to read config: {:?}", e)) + .unwrap(); + toml::from_str(&toml_content) + .map_err(|e| format!("Unable to parse config: {:?}", e)) + .unwrap() + } else { + CookbookConfig::default() + }; + + if config.cook_opt.tui.is_none() { + config.cook_opt.tui = Some(!env::var("CI").is_ok_and(|s| !s.is_empty())); + } + if config.cook_opt.jobs.is_none() { + config.cook_opt.jobs = Some(extract_env( + "COOKBOOK_MAKE_JOBS", + std::thread::available_parallelism() + .map(|f| usize::from(f)) + .unwrap_or(1), + )); + } + if config.cook_opt.logs.is_none() { + config.cook_opt.logs = Some(extract_env("COOKBOOK_LOGS", config.cook_opt.tui.unwrap())); + } + if config.cook_opt.offline.is_none() { + config.cook_opt.offline = Some(extract_env("COOKBOOK_OFFLINE", 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.mirrors.len() == 0 { + // The GNU FTP mirror below is automatically inserted for convenience + // You can choose other mirrors by setting it on cookbook.toml + config.mirrors.insert( + "ftp.gnu.org/gnu".to_string(), + "mirrors.ocf.berkeley.edu/gnu".to_string(), + ); + } + + config.cook = CookConfig::from(config.cook_opt.clone()); + + CONFIG.set(config).expect("config is initialized twice"); +} + +fn extract_env(key: &str, default: T) -> T { + if let Ok(e) = env::var(&key) { + str::parse(&e).unwrap_or(default) + } else { + default + } +} + +pub fn get_config() -> &'static CookbookConfig { + return CONFIG.get().expect("Configuration is not initialized"); +} + +pub fn translate_mirror(original_url: &str) -> String { + let config = CONFIG.get().expect("Configuration is not initialized"); + + let stripped_url = original_url + .strip_prefix("https://") + .or_else(|| original_url.strip_prefix("http://")) + .unwrap_or(original_url); + + let mut best_match_prefix: Option<&String> = None; + + for prefix in config.mirrors.keys() { + if stripped_url.starts_with(prefix) { + match best_match_prefix { + Some(current_best) if prefix.len() > current_best.len() => { + best_match_prefix = Some(prefix); + } + None => { + best_match_prefix = Some(prefix); + } + _ => {} + } + } + } + + if let Some(prefix) = best_match_prefix { + let mirror_base = config.mirrors.get(prefix).unwrap(); + let suffix = &stripped_url[prefix.len()..]; + let ptotocol = &original_url[..(original_url.len() - stripped_url.len())]; + return format!("{}{}{}", ptotocol, mirror_base, suffix); + } + + original_url.to_string() +} + +#[cfg(test)] +mod tests { + use super::*; + + fn setup_test_config() { + let app_config = toml::from_str( + "[mirrors]\n\ + \"ftp.gnu.org/gnu\" = \"example.com/gnu\"\n\ + \"github.com/foo/bar\" = \"github.com/baz/bar\"\n\ + \"github.com/a\" = \"github.com/b\"\n", + ) + .expect("Unable to parse test config"); + // This will be called for each test. If the config is already set, + // it will do nothing, which is fine as all tests use the same config. + let _ = CONFIG.set(app_config); + } + + #[test] + fn test_parse_cook() { + let app_config: CookbookConfig = toml::from_str( + "[cook]\n\ + offline = true\n", + ) + .expect("Unable to parse test config"); + assert_eq!(app_config.cook_opt.offline, Some(true)); + assert_eq!(app_config.cook_opt.jobs, None); + } + + #[test] + fn test_exact_match() { + setup_test_config(); + assert_eq!(translate_mirror("ftp.gnu.org/gnu"), "example.com/gnu"); + assert_eq!(translate_mirror("github.com/foo/bar"), "github.com/baz/bar"); + } + + #[test] + fn test_prefix_match() { + setup_test_config(); + assert_eq!( + translate_mirror("https://github.com/a/c"), + "https://github.com/b/c" + ); + assert_eq!( + translate_mirror("https://ftp.gnu.org/gnu/bash/bash-5.2.15.tar.gz"), + "https://example.com/gnu/bash/bash-5.2.15.tar.gz" + ); + } + + #[test] + fn test_longest_prefix_match() { + setup_test_config(); + // "github.com/foo/bar" is a longer and more specific prefix than "github.com/a", + // so it should be chosen for the translation. + assert_eq!( + translate_mirror("https://github.com/foo/bar/baz"), + "https://github.com/baz/bar/baz" + ); + } + + #[test] + fn test_no_match() { + setup_test_config(); + assert_eq!(translate_mirror("www.rust-lang.org"), "www.rust-lang.org"); + assert_eq!( + translate_mirror("http://github.com/unrelated/repo"), + "http://github.com/unrelated/repo" + ); + } +} diff --git a/src/cook.rs b/src/cook.rs new file mode 100644 index 000000000..70a53a066 --- /dev/null +++ b/src/cook.rs @@ -0,0 +1,9 @@ +// avoid confusion with build.rs +pub mod cook_build; +pub mod fetch; +pub mod fs; +pub mod ident; +pub mod package; +pub mod pty; +pub mod script; +pub mod tree; diff --git a/src/cook/cook_build.rs b/src/cook/cook_build.rs new file mode 100644 index 000000000..3b7b9255a --- /dev/null +++ b/src/cook/cook_build.rs @@ -0,0 +1,626 @@ +use pkg::package::PackageError; +use pkg::{Package, PackageName}; + +use crate::cook::fs::*; +use crate::cook::package::{package_source_paths, package_target}; +use crate::cook::pty::PtyOut; +use crate::cook::script::*; +use crate::recipe::Recipe; +use crate::recipe::{AutoDeps, CookRecipe}; +use crate::recipe::{BuildKind, OptionalPackageRecipe}; +use std::collections::VecDeque; +use std::{ + collections::BTreeSet, + fs, + path::{Path, PathBuf}, + process::Command, + str, + time::SystemTime, +}; + +use crate::{is_redox, log_to_pty}; + +fn auto_deps_from_dynamic_linking( + stage_dirs: &[PathBuf], + target_dir: &Path, + dep_pkgars: &BTreeSet<(PackageName, PathBuf)>, + logger: &PtyOut, +) -> BTreeSet { + let mut paths = BTreeSet::new(); + let mut visited = BTreeSet::new(); + let verbose = crate::config::get_config().cook.verbose; + // Base directories may need to be updated for packages that place binaries in odd locations. + let mut walk = VecDeque::new(); + + for stage_dir in stage_dirs { + walk.push_back(stage_dir.join("usr/bin")); + walk.push_back(stage_dir.join("usr/games")); + walk.push_back(stage_dir.join("usr/lib")); + walk.push_back(stage_dir.join("usr/libexec")); + } + + // Recursively (DFS) walk each directory to ensure nested libs and bins are checked. + while let Some(dir) = walk.pop_front() { + let Ok(dir) = dir.canonicalize() else { + continue; + }; + if visited.contains(&dir) { + #[cfg(debug_assertions)] + log_to_pty!( + logger, + "DEBUG: auto_deps => Skipping `{dir:?}` (already visited)" + ); + continue; + } + assert!( + visited.insert(dir.clone()), + "Directory `{:?}` should not be in visited\nVisited: {:#?}", + dir, + visited + ); + + let Ok(read_dir) = fs::read_dir(&dir) else { + continue; + }; + for entry_res in read_dir { + let Ok(entry) = entry_res else { continue }; + let Ok(file_type) = entry.file_type() else { + continue; + }; + if file_type.is_file() { + paths.insert(entry.path()); + } else if file_type.is_dir() { + walk.push_front(entry.path()); + } + } + } + + let mut needed = BTreeSet::new(); + for path in paths { + let Ok(file) = fs::File::open(&path) else { + continue; + }; + let read_cache = object::ReadCache::new(file); + let Ok(object) = object::build::elf::Builder::read(&read_cache) else { + continue; + }; + let Some(dynamic_data) = object.dynamic_data() else { + continue; + }; + for dynamic in dynamic_data { + let object::build::elf::Dynamic::String { tag, val } = dynamic else { + continue; + }; + if *tag == object::elf::DT_NEEDED { + let Ok(name) = str::from_utf8(val) else { + continue; + }; + if let Ok(relative_path) = path.strip_prefix(target_dir) { + if verbose { + log_to_pty!(logger, "DEBUG: {} needs {}", relative_path.display(), name); + } + } + needed.insert(name.to_string()); + } + } + } + + let mut missing = needed.clone(); + // relibc and friends will always be installed + for preinstalled in &["libc.so.6", "libgcc_s.so.1", "libstdc++.so.6"] { + missing.remove(*preinstalled); + } + + let mut deps = BTreeSet::new(); + if let Ok(key_file) = pkgar_keys::PublicKeyFile::open("build/id_ed25519.pub.toml") { + for (dep, archive_path) in dep_pkgars.iter() { + let Ok(mut package) = pkgar::PackageFile::new(archive_path, &key_file.pkey) else { + continue; + }; + let Ok(entries) = pkgar_core::PackageSrc::read_entries(&mut package) else { + continue; + }; + for entry in entries { + let Ok(entry_path) = pkgar::ext::EntryExt::check_path(&entry) else { + continue; + }; + for prefix in &["lib", "usr/lib"] { + let Ok(child_path) = entry_path.strip_prefix(prefix) else { + continue; + }; + let Some(child_name) = child_path.to_str() else { + continue; + }; + if needed.contains(child_name) { + if verbose { + log_to_pty!(logger, "DEBUG: {} provides {}", dep, child_name); + } + deps.insert(dep.clone()); + missing.remove(child_name); + } + } + } + } + } + + if verbose { + for name in missing { + log_to_pty!(logger, "INFO: {} missing", name); + } + } + + deps +} + +fn auto_deps_from_static_package_deps( + build_dep_pkgars: &BTreeSet<(PackageName, PathBuf)>, + dynamic_dep_pkgars: &BTreeSet, +) -> Result, PackageError> { + let static_dep_pkgars: Vec = build_dep_pkgars + .iter() + .map(|x| x.0.clone()) + .filter(|x| !dynamic_dep_pkgars.contains(x)) + .collect(); + let pkgs = CookRecipe::get_package_deps_recursive(&static_dep_pkgars, false)?; + + Ok(pkgs.into_iter().collect()) +} + +pub fn build( + recipe_dir: &Path, + source_dir: &Path, + target_dir: &Path, + name: &PackageName, + recipe: &Recipe, + offline_mode: bool, + 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; + if recipe.build.kind == BuildKind::None { + // metapackages don't need to do anything here + return Ok((stage_dirs, BTreeSet::new())); + } + + let mut dep_pkgars = BTreeSet::new(); + let mut dep_host_pkgars = BTreeSet::new(); + let build_deps = [ + &recipe.build.dependencies[..], + &recipe.build.dev_dependencies[..], + ] + .concat(); + let build_deps = CookRecipe::get_build_deps_recursive(&build_deps, false, false) + .map_err(|e| format!("{:?}", e))?; + for dependency in build_deps.iter() { + let (_, pkgar, _) = dependency.stage_paths(); + if dependency.name.is_host() { + dep_host_pkgars.insert((dependency.name.clone(), pkgar)); + } else { + dep_pkgars.insert((dependency.name.clone(), pkgar)); + } + } + + 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)); + } + + let mut source_modified = modified_dir_ignore_git(source_dir).unwrap_or(SystemTime::UNIX_EPOCH); + if let Ok(recipe_modified) = modified(&recipe_dir.join("recipe.toml")) { + if recipe_modified > source_modified { + source_modified = recipe_modified + } + } + let deps_modified = dep_pkgars + .iter() + .map(|(_dep, pkgar)| modified(pkgar)) + .max() + .unwrap_or(Ok(SystemTime::UNIX_EPOCH))?; + let deps_host_modified = dep_host_pkgars + .iter() + .map(|(_dep, pkgar)| modified(pkgar)) + .max() + .unwrap_or(Ok(SystemTime::UNIX_EPOCH))?; + + // Rebuild sysroot if source is newer + if recipe.build.kind != BuildKind::Remote { + build_deps_dir( + logger, + &sysroot_dir, + target_dir.join("sysroot.tmp"), + if name.is_host() { + &dep_host_pkgars + } else { + &dep_pkgars + }, + source_modified, + deps_modified, + )?; + } + if recipe.build.kind != BuildKind::Remote && !name.is_host() && dep_host_pkgars.len() > 0 { + build_deps_dir( + logger, + &toolchain_dir, + target_dir.join("toolchain.tmp"), + &dep_host_pkgars, + 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 !stage_dirs.last().is_some_and(|dir| dir.is_dir()) { + let stage_dir = stage_dirs + .last() + .expect("Should have atleast one stage 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_dir_clean(&build_dir)?; + } + + let flags_fn = |name, flags: &Vec| { + format!( + "{name}+=(\n{}\n)\n", + flags + .iter() + .map(|s| format!(" \"{s}\"")) + .collect::>() + .join("\n") + ) + }; + + if recipe.build.kind == BuildKind::Remote { + return build_remote(stage_dirs, recipe, target_dir); + } + //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, + cargoflags, + } => { + format!( + "DYNAMIC_INIT\nPACKAGE_PATH={} cookbook_cargo {cargoflags}", + package_path.as_deref().unwrap_or(".") + ) + } + BuildKind::Configure { configureflags } => format!( + "DYNAMIC_INIT\n{}cookbook_configure", + flags_fn("COOKBOOK_CONFIGURE_FLAGS", configureflags), + ), + BuildKind::Cmake { cmakeflags } => format!( + "DYNAMIC_INIT\n{}cookbook_cmake", + flags_fn("COOKBOOK_CMAKE_FLAGS", cmakeflags), + ), + BuildKind::Meson { mesonflags } => format!( + "DYNAMIC_INIT\n{}cookbook_meson", + flags_fn("COOKBOOK_MESON_FLAGS", mesonflags), + ), + BuildKind::Custom { script } => script.clone(), + BuildKind::Remote => unreachable!(), + BuildKind::None => "".to_owned(), + }; + + let command = { + //TODO: remove unwraps + let cookbook_build = build_dir.canonicalize().unwrap(); + let cookbook_recipe = recipe_dir.canonicalize().unwrap(); + let cookbook_root = Path::new(".").canonicalize().unwrap(); + let cookbook_stage = stage_dir_tmp.canonicalize().unwrap(); + let cookbook_source = source_dir.canonicalize().unwrap(); + 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"); + command.arg(bash_args); + command.env("COOKBOOK_REDOXER", "cargo"); + command + } else { + let cookbook_redoxer = Path::new("target/release/cookbook_redoxer") + .canonicalize() + .unwrap_or(PathBuf::from("/bin/false")); + let mut command = Command::new(&cookbook_redoxer); + command.arg("env").arg("bash").arg(bash_args); + command.env("COOKBOOK_REDOXER", &cookbook_redoxer); + command + }; + command.current_dir(&cookbook_build); + command.env("TARGET", package_target(name)); + command.env("COOKBOOK_BUILD", &cookbook_build); + command.env("COOKBOOK_NAME", name.name()); + command.env("COOKBOOK_HOST_TARGET", redoxer::host_target()); + command.env("COOKBOOK_RECIPE", &cookbook_recipe); + command.env("COOKBOOK_ROOT", &cookbook_root); + command.env("COOKBOOK_STAGE", &cookbook_stage); + command.env("COOKBOOK_SOURCE", &cookbook_source); + command.env("COOKBOOK_SYSROOT", &cookbook_sysroot); + if let Some(cookbook_toolchain) = &cookbook_toolchain { + command.env("COOKBOOK_TOOLCHAIN", cookbook_toolchain); + } else if name.is_host() { + command.env("COOKBOOK_TOOLCHAIN", &cookbook_sysroot); + } + command.env("COOKBOOK_MAKE_JOBS", cli_jobs.to_string()); + if cli_verbose { + command.env("COOKBOOK_VERBOSE", "1"); + } + if offline_mode { + command.env("COOKBOOK_OFFLINE", "1"); + } + command + }; + + let full_script = format!( + "{}\n{}\n{}\n{}", + BUILD_PRESCRIPT, SHARED_PRESCRIPT, script, BUILD_POSTSCRIPT + ); + run_command_stdin(command, full_script.as_bytes(), logger)?; + + // Move to each features dir + let mut globs = Vec::new(); + for (i, feat) in recipe.optional_packages.iter().enumerate() { + let stage_dir = &stage_dirs[i]; + create_dir_clean(&stage_dir)?; + for path in &feat.files { + let glob = globset::Glob::new(&path).map_err(|e| format!("{}", e))?; + globs.push((glob.compile_matcher(), stage_dir.clone())); + } + } + move_dir_all_fn( + &stage_dir_tmp, + &Box::new(|path: PathBuf| { + for (glob, dst) in &globs { + if glob.is_match(&path) { + return Some(dst.as_path()); + } + } + None + }), + ) + .map_err(|e| format!("Unable to move {e:?}"))?; + + // Move stage.tmp to stage atomically + rename(&stage_dir_tmp, &stage_dir)?; + } + + let auto_deps = build_auto_deps(recipe, target_dir, &stage_dirs, dep_pkgars, logger)?; + + Ok((stage_dirs, auto_deps)) +} + +pub fn remove_stage_dir(stage_dir: &PathBuf) -> Result<(), String> { + if stage_dir.is_dir() { + remove_all(&stage_dir)?; + } + let stage_file = stage_dir.with_added_extension("pkgar"); + if stage_file.is_file() { + remove_all(&stage_file)?; + } + let stage_meta = stage_dir.with_added_extension("toml"); + Ok(if stage_meta.is_file() { + remove_all(&stage_meta)?; + }) +} + +pub fn get_stage_dirs(features: &Vec, target_dir: &Path) -> Vec { + 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 +} + +fn build_deps_dir( + logger: &PtyOut, + deps_dir: &PathBuf, + deps_dir_tmp: PathBuf, + dep_pkgars: &BTreeSet<(PackageName, PathBuf)>, + source_modified: SystemTime, + deps_modified: SystemTime, +) -> Result<(), String> { + 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()) + { + log_to_pty!(logger, "DEBUG: updating '{}'", deps_dir.display()); + remove_all(deps_dir)?; + } + } + if !deps_dir.is_dir() { + // Create sysroot.tmp + create_dir_clean(&deps_dir_tmp)?; + let tags_dir = deps_dir_tmp.join(".tags"); + let usr_dir = deps_dir_tmp.join("usr"); + create_dir(&tags_dir)?; + create_dir(&usr_dir)?; + + for folder in &["bin", "include", "lib", "share"] { + // Make sure sysroot/usr/$folder exists + create_dir(&usr_dir.join(folder))?; + + // Link sysroot/$folder sysroot/usr/$folder + symlink(Path::new("usr").join(folder), &deps_dir_tmp.join(folder))?; + } + + 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()); + 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( + |err| { + format!( + "failed to install '{}' in '{}': {:?}", + archive_path.display(), + deps_dir_tmp.display(), + err + ) + }, + )?; + } + + // Move sysroot.tmp to sysroot atomically + rename(&deps_dir_tmp, deps_dir)?; + } + + Ok(()) +} + +/// Calculate automatic dependencies +fn build_auto_deps( + recipe: &Recipe, + target_dir: &Path, + stage_dirs: &Vec, + 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)? + } + + let auto_deps = if auto_deps_path.exists() { + let toml_content = + fs::read_to_string(&auto_deps_path).map_err(|_| "failed to read cached auto_deps")?; + let wrapper: AutoDeps = + toml::from_str(&toml_content).map_err(|_| "failed to deserialize cached auto_deps")?; + wrapper.packages + } else { + let mut dynamic_deps = + auto_deps_from_dynamic_linking(stage_dirs, target_dir, &dep_pkgars, logger); + dep_pkgars.retain(|x| recipe.build.dependencies.contains(&x.0)); + let package_deps = + auto_deps_from_static_package_deps(&dep_pkgars, &dynamic_deps).unwrap_or_default(); + dynamic_deps.extend(package_deps); + + let wrapper = AutoDeps { + packages: dynamic_deps, + }; + serialize_and_write(&auto_deps_path, &wrapper)?; + wrapper.packages + }; + Ok(auto_deps) +} + +pub fn build_remote( + stage_dirs: Vec, + recipe: &Recipe, + target_dir: &Path, +) -> Result<(Vec, BTreeSet), String> { + let source_toml = target_dir.join("source.toml"); + let source_pubkey = target_dir.join("id_ed25519.pub.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 !stage_dir.is_dir() { + let (_, source_pkgar, _) = package_source_paths(package, &target_dir); + let stage_dir_tmp = target_dir.join("stage.tmp"); + pkgar::extract(&source_pubkey, &source_pkgar, &stage_dir_tmp).map_err(|err| { + format!( + "failed to install '{}' in '{}': {:?}", + source_pkgar.display(), + stage_dir_tmp.display(), + err + ) + })?; + // Move stage.tmp to stage atomically + rename(&stage_dir_tmp, &stage_dir)?; + } + } + + 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)? + } + + let auto_deps = if auto_deps_path.exists() { + let toml_content = + fs::read_to_string(&auto_deps_path).map_err(|_| "failed to read cached auto_deps")?; + let wrapper: AutoDeps = + toml::from_str(&toml_content).map_err(|_| "failed to deserialize cached auto_deps")?; + wrapper.packages + } else { + let toml_content = + fs::read_to_string(&source_toml).map_err(|_| "failed to read source.toml")?; + let pkg_toml: Package = + toml::from_str(&toml_content).map_err(|_| "failed to deserialize source.toml")?; + let wrapper = AutoDeps { + packages: pkg_toml.depends.into_iter().collect(), + }; + serialize_and_write(&auto_deps_path, &wrapper)?; + wrapper.packages + }; + Ok((stage_dirs, auto_deps)) +} + +#[cfg(test)] +mod tests { + use std::os::unix; + + #[test] + fn file_system_loop_no_infinite_loop() { + let mut root = std::env::temp_dir(); + root.push("temp_test_dir_file_system_loop_no_infinite_loop"); + let _ = std::fs::remove_dir_all(&root); + std::fs::create_dir_all(&root).expect("Failed to create temporary root directory"); + + // Hierarchy with an infinite loop + let dir = root.join("loop"); + unix::fs::symlink(&root, &dir).expect("Linking {dir:?} to {root:?}"); + + // Sanity check that we have a loop + assert_eq!( + root.canonicalize().unwrap(), + dir.canonicalize().unwrap(), + "Expected a loop where {dir:?} points to {root:?}" + ); + + let entries = super::auto_deps_from_dynamic_linking( + &vec![root.clone()], + &root.join(".."), + &Default::default(), + &None, + ); + assert!( + entries.is_empty(), + "auto_deps shouldn't have yielded any libraries" + ); + } +} diff --git a/src/cook/fetch.rs b/src/cook/fetch.rs new file mode 100644 index 000000000..b5ab0cb8e --- /dev/null +++ b/src/cook/fetch.rs @@ -0,0 +1,674 @@ +use pkg::package::SourceIdentifier; + +use crate::REMOTE_PKG_SOURCE; +use crate::config::translate_mirror; +use crate::cook::fs::*; +use crate::cook::package::get_package_name; +use crate::cook::package::package_source_paths; +use crate::cook::pty::PtyOut; +use crate::cook::script::*; +use crate::is_redox; +use crate::log_to_pty; +use crate::recipe::BuildKind; +use crate::recipe::CookRecipe; +use crate::{blake3, recipe::SourceRecipe}; +use std::fs; +use std::fs::File; +use std::io::Read; +use std::path::{Path, PathBuf}; +use std::process::Command; + +pub(crate) fn get_blake3(path: &PathBuf, show_progress: bool) -> Result { + if show_progress { + blake3::blake3_progress(&path) + } else { + blake3::blake3_silent(&path) + } + .map_err(|err| { + format!( + "failed to calculate blake3 of '{}': {}\n{:?}", + path.display(), + err, + err + ) + }) +} + +pub fn fetch_offline(recipe: &CookRecipe, logger: &PtyOut) -> Result { + let recipe_dir = &recipe.dir; + let source_dir = recipe_dir.join("source"); + match recipe.recipe.build.kind { + BuildKind::None => { + // the build function doesn't need source dir exists + fetch_apply_source_info(recipe, "".to_string())?; + return Ok(source_dir); + } + BuildKind::Remote => { + fetch_remote(recipe_dir, recipe, true, logger)?; + return Ok(source_dir); + } + _ => {} + } + + let ident = match &recipe.recipe.source { + Some(SourceRecipe::Path { path: _ }) | None => { + fetch(recipe, logger)?; + "local_source".to_string() + } + Some(SourceRecipe::SameAs { same_as }) => { + let recipe = fetch_resolve_canon(recipe_dir, &same_as, recipe.name.is_host())?; + // recursively fetch + fetch_offline(&recipe, logger)?; + fetch_make_symlink(&source_dir, &same_as)?; + fetch_get_source_info(&recipe)?.source_identifier + } + Some(SourceRecipe::Git { + git: _, + upstream: _, + branch: _, + rev: _, + patches: _, + script: _, + shallow_clone: _, + }) => { + offline_check_exists(&source_dir)?; + let (head_rev, _) = get_git_head_rev(&source_dir)?; + head_rev + } + Some(SourceRecipe::Tar { + tar: _, + blake3, + patches, + script, + }) => { + if !source_dir.is_dir() { + let source_tar = recipe_dir.join("source.tar"); + let source_tar_blake3 = get_blake3(&source_tar, true && logger.is_none())?; + if source_tar.exists() { + if let Some(blake3) = blake3 { + if source_tar_blake3 != *blake3 { + return Err(format!( + "The downloaded tar blake3 '{source_tar_blake3}' is not equal to blake3 in recipe.toml." + )); + } + create_dir(&source_dir)?; + fetch_extract_tar(source_tar, &source_dir, logger)?; + fetch_apply_patches(recipe_dir, patches, script, &source_dir, logger)?; + } else { + // need to trust this tar file + return Err(format!( + "Please add blake3 = \"{source_tar_blake3}\" to '{recipe}'", + recipe = recipe_dir.join("recipe.toml").display(), + )); + } + } else { + offline_check_exists(&source_dir)?; + } + } + blake3.clone().unwrap_or("no_tar_blake3_hash_info".into()) + } + }; + + fetch_apply_source_info(recipe, ident)?; + + Ok(source_dir) +} + +pub fn fetch(recipe: &CookRecipe, logger: &PtyOut) -> Result { + let recipe_dir = &recipe.dir; + let source_dir = recipe_dir.join("source"); + match recipe.recipe.build.kind { + BuildKind::None => { + // the build function doesn't need source dir exists + fetch_apply_source_info(recipe, "".to_string())?; + return Ok(source_dir); + } + BuildKind::Remote => { + fetch_remote(recipe_dir, recipe, false, logger)?; + return Ok(source_dir); + } + _ => {} + } + + let ident = match &recipe.recipe.source { + Some(SourceRecipe::SameAs { same_as }) => { + let recipe = fetch_resolve_canon(recipe_dir, &same_as, recipe.name.is_host())?; + // recursively fetch + fetch(&recipe, logger)?; + fetch_make_symlink(&source_dir, &same_as)?; + fetch_get_source_info(&recipe)?.source_identifier + } + Some(SourceRecipe::Path { path }) => { + if !source_dir.is_dir() || modified_dir(Path::new(&path))? > modified_dir(&source_dir)? + { + log_to_pty!( + logger, + "[DEBUG]: {} is newer than {}", + path, + source_dir.display() + ); + copy_dir_all(path, &source_dir).map_err(|e| { + format!( + "Couldn't copy source from {} to {}: {}", + path, + source_dir.display(), + e + ) + })?; + } + "local_source".to_string() + } + Some(SourceRecipe::Git { + git, + upstream, + branch, + rev, + patches, + script, + shallow_clone, + }) => { + //TODO: use libgit? + let shallow_clone = *shallow_clone == Some(true); + let can_skip_rebuild = if !source_dir.is_dir() { + // Create source.tmp + let source_dir_tmp = recipe_dir.join("source.tmp"); + create_dir_clean(&source_dir_tmp)?; + + // Clone the repository to source.tmp + let mut command = Command::new("git"); + command + .arg("clone") + .arg("--recursive") + .arg(translate_mirror(&git)); + if let Some(branch) = branch { + command.arg("--branch").arg(branch); + } + if shallow_clone { + command + .arg("--filter=tree:0") + .arg("--also-filter-submodules"); + } + command.arg(&source_dir_tmp); + run_command(command, logger)?; + + // Move source.tmp to source atomically + rename(&source_dir_tmp, &source_dir)?; + + false + } else { + if !source_dir.join(".git").is_dir() { + return Err(format!( + "'{}' is not a git repository, but recipe indicated git source", + source_dir.display(), + )); + } + + // Reset origin + let mut command = Command::new("git"); + command.arg("-C").arg(&source_dir); + command.arg("remote").arg("set-url").arg("origin").arg(git); + run_command(command, logger)?; + + // Fetch origin + let mut command = Command::new("git"); + command.arg("-C").arg(&source_dir); + command.arg("fetch").arg("origin"); + run_command(command, logger)?; + + let (head_rev, detached_rev) = get_git_head_rev(&source_dir)?; + if detached_rev { + if let Some(rev) = rev + && let Ok(exp_rev) = get_git_tag_rev(&source_dir, &rev) + { + exp_rev == head_rev + } else { + false + } + } else { + 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) { + 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 + } + } + } else { + false + } + } + }; + + if !can_skip_rebuild { + if let Some(_upstream) = upstream { + //TODO: set upstream URL (is this needed?) + // git remote set-url upstream "$GIT_UPSTREAM" &> /dev/null || + // git remote add upstream "$GIT_UPSTREAM" + // git fetch upstream + } + + if let Some(rev) = rev { + // Check out specified revision + let mut command = Command::new("git"); + command.arg("-C").arg(&source_dir); + command.arg("checkout").arg(rev); + run_command(command, logger)?; + } else if !is_redox() { + //If patches exists, we have to drop it + if patches.len() > 0 { + let mut command = Command::new("git"); + command.arg("-C").arg(&source_dir); + command.arg("reset").arg("--hard"); + run_command(command, logger)?; + } + //TODO: complicated stuff to check and reset branch to origin + //TODO: redox can't undestand this (got exit status 1) + let mut command = Command::new("bash"); + command.arg("-c").arg(GIT_RESET_BRANCH); + if let Some(branch) = branch { + command.env("BRANCH", branch); + } + command.current_dir(&source_dir); + run_command(command, logger)?; + } + + if !patches.is_empty() || script.is_some() { + // Hard reset + let mut command = Command::new("git"); + command.arg("-C").arg(&source_dir); + command.arg("reset").arg("--hard"); + run_command(command, logger)?; + } + + // Sync submodules URL + let mut command = Command::new("git"); + command.arg("-C").arg(&source_dir); + command.arg("submodule").arg("sync").arg("--recursive"); + + run_command(command, logger)?; + + // Update submodules + let mut command = Command::new("git"); + command.arg("-C").arg(&source_dir); + command + .arg("submodule") + .arg("update") + .arg("--init") + .arg("--recursive"); + if shallow_clone { + command.arg("--filter=tree:0"); + } + run_command(command, logger)?; + + fetch_apply_patches(recipe_dir, patches, script, &source_dir, logger)?; + } + + let (head_rev, _) = get_git_head_rev(&source_dir)?; + head_rev + } + Some(SourceRecipe::Tar { + tar, + blake3, + patches, + script, + }) => { + let source_tar = recipe_dir.join("source.tar"); + let mut tar_updated = false; + while { + if !source_tar.is_file() { + tar_updated = true; + download_wget(&tar, &source_tar, logger)?; + } + 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 + } else { + false + } + } else { + //TODO: set blake3 hash on the recipe with something like "cook fix" + log_to_pty!( + logger, + "WARNING: set blake3 for '{}' to '{}'", + source_tar.display(), + source_tar_blake3 + ); + false + } + } {} + if source_dir.is_dir() { + if tar_updated || fetch_is_patches_newer(recipe_dir, patches, &source_dir)? { + log_to_pty!( + logger, + "DEBUG: source tar or patches is newer than the source directory" + ); + remove_all(&source_dir)? + } + } + if !source_dir.is_dir() { + // Create source.tmp + let source_dir_tmp = recipe_dir.join("source.tmp"); + create_dir_clean(&source_dir_tmp)?; + fetch_extract_tar(source_tar, &source_dir_tmp, logger)?; + fetch_apply_patches(recipe_dir, patches, script, &source_dir_tmp, logger)?; + + // Move source.tmp to source atomically + rename(&source_dir_tmp, &source_dir)?; + } + blake3.clone().unwrap_or("no_tar_blake3_hash_info".into()) + } + // Local Sources + None => { + if !source_dir.is_dir() { + log_to_pty!( + logger, + "WARNING: Recipe without source section expected source dir at '{}'", + source_dir.display(), + ); + create_dir(&source_dir)?; + } + "local_source".into() + } + }; + + if let BuildKind::Cargo { + package_path, + cargoflags: _, + } = &recipe.recipe.build.kind + { + fetch_cargo(&source_dir, package_path.as_ref(), logger)?; + } + + fetch_apply_source_info(recipe, ident)?; + + Ok(source_dir) +} + +pub(crate) fn fetch_make_symlink(source_dir: &PathBuf, same_as: &String) -> Result<(), String> { + let target_dir = Path::new(same_as).join("source"); + if !source_dir.is_symlink() { + if source_dir.is_dir() { + return Err(format!( + "'{dir}' is a directory, but recipe indicated a symlink. \n\ + try removing '{dir}' if you haven't made any changes that would be lost", + dir = source_dir.display(), + )); + } + std::os::unix::fs::symlink(&target_dir, source_dir).map_err(|err| { + format!( + "failed to symlink '{}' to '{}': {}\n{:?}", + target_dir.display(), + source_dir.display(), + err, + err + ) + })?; + } + Ok(()) +} + +pub(crate) fn fetch_resolve_canon( + recipe_dir: &Path, + same_as: &String, + is_host: bool, +) -> Result { + let canon_dir = Path::new(recipe_dir).join(same_as); + if canon_dir + .to_str() + .unwrap() + .chars() + .filter(|c| *c == '/') + .count() + > 50 + { + return Err(format!("Infinite loop detected")); + } + if !canon_dir.exists() { + return Err(format!("'{dir}' is not exists.", dir = canon_dir.display())); + } + CookRecipe::from_path(canon_dir.as_path(), true, is_host) + .map_err(|e| format!("Unable to load {dir}: {e:?}", dir = canon_dir.display())) +} + +pub(crate) fn fetch_extract_tar( + source_tar: PathBuf, + source_dir_tmp: &PathBuf, + logger: &PtyOut, +) -> Result<(), String> { + let mut command = Command::new("tar"); + let verbose = crate::config::get_config().cook.verbose; + if is_redox() { + command.arg(if verbose { "xvf" } else { "xf" }); + } else { + command.arg("--extract"); + command.arg("--no-same-owner"); + if verbose { + command.arg("--verbose"); + } + command.arg("--file"); + } + command.arg(&source_tar); + command.arg("--directory").arg(source_dir_tmp); + command.arg("--strip-components").arg("1"); + run_command(command, logger)?; + Ok(()) +} + +pub(crate) fn fetch_cargo( + source_dir: &PathBuf, + package_path: 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); + } + + let mut command = if is_redox() { + Command::new("cargo") + } else { + let cookbook_redoxer = Path::new("target/release/cookbook_redoxer") + .canonicalize() + .unwrap_or(PathBuf::from("cargo")); + Command::new(&cookbook_redoxer) + }; + command.arg("fetch"); + command.arg("--manifest-path"); + command.arg(source_dir.join("Cargo.toml").into_os_string()); + run_command(command, logger)?; + 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 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)?; + } + + let packages = recipe.recipe.get_packages_list(); + + let name = recipe_dir + .file_name() + .ok_or("Unable to get recipe name")? + .to_str() + .unwrap(); + + for package in packages { + let (_, source_pkgar, source_toml) = package_source_paths(package, &target_dir); + let source_name = get_package_name(name, package); + + 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)?; + } else { + offline_check_exists(&source_pkgar)?; + offline_check_exists(&source_toml)?; + } + + // 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:?}"))?; + + fetch_apply_source_info_from_remote( + recipe, + &SourceIdentifier { + commit_identifier: pkg_toml.commit_identifier.clone(), + source_identifier: pkg_toml.source_identifier.clone(), + time_identifier: pkg_toml.time_identifier.clone(), + ..Default::default() + }, + )?; + } + } + + Ok(()) +} + +pub(crate) fn fetch_is_patches_newer( + recipe_dir: &Path, + patches: &Vec, + source_dir: &PathBuf, +) -> Result { + // don't check source files inside as it can be mixed with user patches + let source_time = modified(&source_dir)?; + for patch_name in patches { + let patch_file = recipe_dir.join(patch_name); + if !patch_file.is_file() { + return Err(format!( + "failed to find patch file '{}'", + patch_file.display() + )); + } + + let patch_time = modified(&patch_file)?; + if patch_time > source_time { + return Ok(true); + } + } + return Ok(false); +} + +pub(crate) fn fetch_apply_patches( + recipe_dir: &Path, + patches: &Vec, + script: &Option, + source_dir_tmp: &PathBuf, + logger: &PtyOut, +) -> Result<(), String> { + for patch_name in patches { + let patch_file = recipe_dir.join(patch_name); + if !patch_file.is_file() { + return Err(format!( + "failed to find patch file '{}'", + patch_file.display() + )); + } + + let patch = fs::read_to_string(&patch_file).map_err(|err| { + format!( + "failed to read patch file '{}': {}\n{:#?}", + patch_file.display(), + err, + err + ) + })?; + + let mut command = Command::new("patch"); + command.arg("--directory").arg(source_dir_tmp); + command.arg("--strip=1"); + run_command_stdin(command, patch.as_bytes(), logger)?; + } + Ok(if let Some(script) = script { + let mut command = Command::new("bash"); + command.arg("-ex"); + command.current_dir(source_dir_tmp); + run_command_stdin( + command, + format!("{SHARED_PRESCRIPT}\n{script}").as_bytes(), + logger, + )?; + }) +} + +pub(crate) fn fetch_apply_source_info( + recipe: &CookRecipe, + source_identifier: String, +) -> Result<(), String> { + let ident = crate::cook::ident::get_ident(); + let info = pkg::package::SourceIdentifier { + commit_identifier: ident.commit.to_string(), + time_identifier: ident.time.to_string(), + source_identifier: source_identifier, + }; + + fetch_apply_source_info_from_remote(&recipe, &info) +} + +pub(crate) fn fetch_apply_source_info_from_remote( + recipe: &CookRecipe, + info: &pkg::package::SourceIdentifier, +) -> Result<(), String> { + let target_dir = create_target_dir(&recipe.dir, recipe.target)?; + let source_toml_path = target_dir.join("source_info.toml"); + serialize_and_write(&source_toml_path, &info)?; + Ok(()) +} + +pub fn fetch_get_source_info(recipe: &CookRecipe) -> Result { + let target_dir = recipe.target_dir(); + let source_toml_path = target_dir.join("source_info.toml"); + let toml_content = fs::read_to_string(source_toml_path) + .map_err(|e| format!("Unable to read source_info.toml: {:?}", e))?; + let parsed = toml::from_str(&toml_content) + .map_err(|e| format!("Unable to parse source_info.toml: {:?}", e))?; + Ok(parsed) +} diff --git a/src/cook/fs.rs b/src/cook/fs.rs new file mode 100644 index 000000000..b32558bf1 --- /dev/null +++ b/src/cook/fs.rs @@ -0,0 +1,471 @@ +use serde::Serialize; +use std::{ + fs, + io::{self, Write}, + path::{Path, PathBuf}, + process::{self, Command, Stdio}, + time::SystemTime, +}; +use walkdir::{DirEntry, WalkDir}; + +use crate::{ + config::translate_mirror, + cook::pty::{PtyOut, spawn_to_pipe}, +}; + +//TODO: pub(crate) for all of these functions + +pub fn remove_all(path: &Path) -> Result<(), String> { + if path.is_dir() { + fs::remove_dir_all(path) + } else { + fs::remove_file(path) + } + .map_err(|err| format!("failed to remove '{}': {}\n{:?}", path.display(), err, err)) +} + +pub fn create_dir(dir: &Path) -> Result<(), String> { + fs::create_dir(dir) + .map_err(|err| format!("failed to create '{}': {}\n{:?}", dir.display(), err, err)) +} + +pub fn create_dir_clean(dir: &Path) -> Result<(), String> { + if dir.is_dir() { + remove_all(dir)?; + } + create_dir(dir) +} + +pub fn create_target_dir(recipe_dir: &Path, target: &'static str) -> Result { + let target_parent_dir = recipe_dir.join("target"); + if !target_parent_dir.is_dir() { + create_dir(&target_parent_dir)?; + } + let target_dir = target_parent_dir.join(target); + if !target_dir.is_dir() { + create_dir(&target_dir)?; + } + Ok(target_dir) +} + +pub fn copy_dir_all(src: impl AsRef, dst: impl AsRef) -> io::Result<()> { + fs::create_dir_all(&dst)?; + for entry in fs::read_dir(src)? { + let entry = entry?; + let ty = entry.file_type()?; + if ty.is_dir() { + copy_dir_all(entry.path(), dst.as_ref().join(entry.file_name()))?; + } else { + fs::copy(entry.path(), dst.as_ref().join(entry.file_name()))?; + } + } + Ok(()) +} + +pub fn move_dir_all_fn<'a>( + src: impl AsRef, + mv: &'a Box Option<&'a Path>>, +) -> io::Result<()> { + move_dir_all_inner_fn(&src, &src, mv) +} + +fn move_dir_all_inner_fn<'a>( + src: impl AsRef, + srcrel: impl AsRef, + mv: &'a Box Option<&'a Path>>, +) -> io::Result<()> { + let mut files = Vec::new(); + for entry in fs::read_dir(&src)? { + let entry = entry?; + let ty = entry.file_type()?; + if ty.is_dir() { + move_dir_all_inner_fn(entry.path(), srcrel.as_ref(), mv)?; + } else { + let path: PathBuf = entry.path(); + let Ok(relpath) = path.strip_prefix(&srcrel) else { + continue; + }; + + if let Some(dst) = mv(relpath.to_path_buf()) { + files.push((entry.path(), relpath.to_path_buf(), dst.to_owned())); + } + } + } + for (src, srcrel, dst) in files { + let path = dst.join(&srcrel); + fs::create_dir_all(&path.parent().unwrap())?; + std::fs::rename(&src, &path)?; + } + Ok(()) +} + +pub fn symlink(original: impl AsRef, link: impl AsRef) -> Result<(), String> { + std::os::unix::fs::symlink(&original, &link).map_err(|err| { + format!( + "failed to symlink '{}' to '{}': {}\n{:?}", + original.as_ref().display(), + link.as_ref().display(), + err, + err + ) + }) +} + +pub fn modified(path: &Path) -> Result { + let metadata = fs::metadata(path).map_err(|err| { + format!( + "failed to get metadata of '{}': {}\n{:#?}", + path.display(), + err, + err + ) + })?; + metadata.modified().map_err(|err| { + format!( + "failed to get modified time of '{}': {}\n{:#?}", + path.display(), + err, + err + ) + }) +} + +pub fn modified_all( + path: &Vec, + func: fn(path: &Path) -> Result, +) -> Result { + let mut newest = SystemTime::UNIX_EPOCH; + for entry_res in path { + let modified = func(entry_res)?; + if modified > newest { + newest = modified; + } + } + Ok(newest) +} + +pub fn modified_dir_inner bool>( + dir: &Path, + filter: F, +) -> io::Result { + let mut newest = fs::metadata(dir)?.modified()?; + for entry_res in WalkDir::new(dir).into_iter().filter_entry(filter) { + let entry = entry_res?; + let modified = entry.metadata()?.modified()?; + if modified > newest { + newest = modified; + } + } + Ok(newest) +} + +pub fn modified_dir(dir: &Path) -> Result { + modified_dir_inner(dir, |_| true).map_err(|err| { + format!( + "failed to get modified time of '{}': {}\n{:#?}", + dir.display(), + err, + err + ) + }) +} + +pub fn modified_dir_ignore_git(dir: &Path) -> Result { + modified_dir_inner(dir, |entry| { + entry + .file_name() + .to_str() + .map(|s| s != ".git") + .unwrap_or(true) + }) + .map_err(|err| { + format!( + "failed to get modified time of '{}': {}\n{:#?}", + dir.display(), + err, + err + ) + }) +} + +pub fn rename(src: &Path, dst: &Path) -> Result<(), String> { + fs::rename(src, dst).map_err(|err| { + format!( + "failed to rename '{}' to '{}': {}\n{:?}", + src.display(), + dst.display(), + err, + err + ) + }) +} + +pub fn run_command(mut command: process::Command, stdout_pipe: &PtyOut) -> Result<(), String> { + let status = spawn_to_pipe(&mut command, stdout_pipe) + .map_err(|err| format!("failed to run {:?}: {}\n{:#?}", command, err, err))? + .wait() + .map_err(|err| format!("failed to run {:?}: {}\n{:#?}", command, err, err))?; + + if !status.success() { + return Err(format!( + "failed to run {:?}: exited with status {}", + command, status + )); + } + + Ok(()) +} + +pub fn run_command_stdin( + mut command: process::Command, + stdin_data: &[u8], + stdout_pipe: &PtyOut, +) -> Result<(), String> { + command.stdin(Stdio::piped()); + let mut child = spawn_to_pipe(&mut command, stdout_pipe) + .map_err(|err| format!("failed to spawn {:?}: {}\n{:#?}", command, err, err))?; + + if let Some(ref mut stdin) = child.stdin { + stdin.write_all(stdin_data).map_err(|err| { + format!( + "failed to write stdin of {:?}: {}\n{:#?}", + command, err, err + ) + })?; + } else { + return Err(format!("failed to find stdin of {:?}", command)); + } + + let status = child + .wait() + .map_err(|err| format!("failed to run {:?}: {}\n{:#?}", command, err, err))?; + + if !status.success() { + return Err(format!( + "failed to run {:?}: exited with status {}", + command, status + )); + } + + Ok(()) +} + +pub fn serialize_and_write(file_path: &Path, content: &T) -> Result<(), String> { + let toml_content = toml::to_string(content).map_err(|err| { + format!( + "Failed to serialize content for '{}': {}", + file_path.display(), + err + ) + })?; + + fs::write(file_path, toml_content) + .map_err(|err| format!("Failed to write to file '{}': {}", file_path.display(), err))?; + Ok(()) +} + +pub fn offline_check_exists(path: &PathBuf) -> Result<(), String> { + if !path.exists() { + return Err(format!( + "'{path}' is not exist and unable to continue in offline mode", + path = path.display(), + ))?; + } + Ok(()) +} + +pub fn download_wget(url: &str, dest: &PathBuf, logger: &PtyOut) -> Result<(), String> { + if !dest.is_file() { + let dest_tmp = PathBuf::from(format!("{}.tmp", dest.display())); + let mut command = Command::new("wget"); + command.arg(translate_mirror(url)); + command.arg("--continue").arg("-O").arg(&dest_tmp); + run_command(command, logger)?; + rename(&dest_tmp, &dest)?; + } + Ok(()) +} + +/// get commit rev and return if it's detached or not +pub fn get_git_head_rev(dir: &PathBuf) -> Result<(String, bool), String> { + let git_head = dir.join(".git/HEAD"); + 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()))?; + Ok((ref_str.trim().to_string(), false)) + } else { + Ok((head_str.trim().to_string(), true)) + } +} + +/// get commit from "rev" which either a full commit hash or a tag name +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()); + } + 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) { + let sha = line + .split_whitespace() + .next() + .ok_or_else(|| "packed-refs line is malformed.".to_string())?; + + return Ok(sha.to_string()); + } + } + + Err(format!( + "Could not find a rev tag for {}", + expected_comment_part + )) +} + +/// get commit rev after fetch +pub fn get_git_fetch_rev( + dir: &PathBuf, + remote_url: &str, + remote_branch: &str, +) -> Result { + let git_fetch_head = dir.join(".git/FETCH_HEAD"); + + let fetch_head_content = fs::read_to_string(&git_fetch_head).map_err(|e| { + format!( + "unable to read {path}: {e}", + path = git_fetch_head.display() + ) + })?; + + let expected_comment_part = format!("branch '{}' of {}", remote_branch, remote_url); + + for line in fetch_head_content.lines() { + if line.contains(&expected_comment_part) && !line.contains("not-for-merge") { + let sha = line + .split_whitespace() + .next() + .ok_or_else(|| "FETCH_HEAD line is malformed.".to_string())?; + + return Ok(sha.to_string()); + } + } + + Err(format!( + "Could not find a fetch target for tracking {}", + expected_comment_part + )) +} + +/// (local_branch_name, remote_branch, remote_name, remote_url) +/// -> ("fix_stuff", "master", "origin", "https://gitlab.redox-os.org/willnode/redox") +pub fn get_git_remote_tracking(dir: &PathBuf) -> Result<(String, String, String, String), String> { + let git_head = dir.join(".git/HEAD"); + let git_config = dir.join(".git/config"); + + let head_content = fs::read_to_string(&git_head) + .map_err(|e| format!("unable to read {path}: {e}", path = git_head.display()))?; + + if !head_content.starts_with("ref: ") { + let sha = head_content.trim_end().to_string(); + return Ok((sha, "".to_string(), "".to_string(), "".to_string())); + } + + let local_branch_path = head_content["ref: ".len()..].trim_end(); + let local_branch_name = get_git_branch_name(local_branch_path)?; + + let config_content = fs::read_to_string(&git_config) + .map_err(|e| format!("unable to read {path}: {e}", path = git_config.display()))?; + + let branch_section = format!("[branch \"{}\"]", local_branch_name); + let mut remote_name: Option = None; + let mut remote_branch: Option = None; + let mut parsing_branch_section = false; + + for line in config_content.lines().map(|l| l.trim()) { + if line.is_empty() { + continue; + } + + if line == branch_section { + parsing_branch_section = true; + continue; + } + + if parsing_branch_section { + if line.starts_with('[') { + break; + } + if line.starts_with("remote = ") { + remote_name = Some(line["remote = ".len()..].trim().to_string()); + } + if line.starts_with("merge = ") { + remote_branch = Some(get_git_branch_name(line["merge = ".len()..].trim())?); + } + } + } + + let remote_name_str = remote_name + .ok_or_else(|| format!("Branch '{}' is not tracking a remote.", local_branch_name))?; + let remote_branch_str = remote_branch.unwrap_or("".into()); + + let remote_section = format!("[remote \"{}\"]", remote_name_str); + let mut remote_url: Option = None; + let mut parsing_remote_section = false; + + for line in config_content.lines().map(|l| l.trim()) { + if line.is_empty() { + continue; + } + + if line == remote_section { + parsing_remote_section = true; + continue; + } + + if parsing_remote_section { + if line.starts_with('[') { + break; + } + if line.starts_with("url = ") { + let mut url = line["url = ".len()..].trim(); + url = chop_dot_git(url); + remote_url = Some(url.to_string()); + } + } + } + + let remote_url_str = remote_url.ok_or_else(|| { + format!( + "Could not find URL for remote '{}' in .git/config.", + remote_name_str + ) + })?; + + Ok(( + local_branch_name, + remote_branch_str, + remote_name_str, + remote_url_str, + )) +} + +pub(crate) fn chop_dot_git(url: &str) -> &str { + if url.ends_with(".git") { + return &url[..url.len() - ".git".len()]; + } + url +} + +fn get_git_branch_name(local_branch_path: &str) -> Result { + // TODO: incorrectly handle branch with slashes + Ok(local_branch_path + .split('/') + .last() + .ok_or_else(|| format!("Failed to parse branch name of {:?}", local_branch_path))? + .to_string()) +} diff --git a/src/cook/ident.rs b/src/cook/ident.rs new file mode 100644 index 000000000..586e41d15 --- /dev/null +++ b/src/cook/ident.rs @@ -0,0 +1,46 @@ +use std::{ + process::{Command, Stdio}, + sync::OnceLock, +}; + +#[derive(Debug, Default)] +pub struct IdentifierConfig { + pub commit: String, + pub time: String, +} + +impl IdentifierConfig { + fn new() -> Self { + let (commit, _) = crate::cook::fs::get_git_head_rev( + &std::env::current_dir().expect("unable to get $PWD"), + ) + .unwrap_or(("".into(), false)); + // better than importing heavy deps like chrono + let time = String::from_utf8_lossy( + &Command::new("date") + .arg("-u") + .arg("+%Y-%m-%dT%H:%M:%SZ") + .stdout(Stdio::piped()) + .output() + .expect("Failed to get current ISO-formatted time") + .stdout + .trim_ascii(), + ) + .into(); + IdentifierConfig { commit, time } + } +} + +static IDENTIFIER_CONFIG: OnceLock = OnceLock::new(); + +pub fn get_ident() -> &'static IdentifierConfig { + IDENTIFIER_CONFIG + .get() + .expect("Identifier is not initialized") +} + +pub fn init_ident() { + IDENTIFIER_CONFIG + .set(IdentifierConfig::new()) + .expect("Identifier is initialized twice") +} diff --git a/src/cook/package.rs b/src/cook/package.rs new file mode 100644 index 000000000..3a635377e --- /dev/null +++ b/src/cook/package.rs @@ -0,0 +1,230 @@ +use std::{ + collections::BTreeSet, + path::{Path, PathBuf}, +}; + +use pkg::{Package, PackageName}; + +use crate::{ + blake3::hash_to_hex, + cook::{fetch, fs::*, pty::PtyOut}, + log_to_pty, + recipe::{BuildKind, CookRecipe, OptionalPackageRecipe, Recipe}, +}; + +pub fn package( + recipe: &CookRecipe, + stage_dirs: &Vec, + auto_deps: &BTreeSet, + logger: &PtyOut, +) -> Result<(), String> { + let name = &recipe.name; + let target_dir = &recipe.target_dir(); + if recipe.recipe.build.kind == BuildKind::None { + // metapackages don't have stage dir and optional packages + package_toml( + target_dir.join("stage.toml"), + recipe, + None, + recipe.recipe.package.dependencies.clone(), + &auto_deps, + )?; + return Ok(()); + } + + let secret_path = "build/id_ed25519.toml"; + let public_path = "build/id_ed25519.pub.toml"; + if !Path::new(secret_path).is_file() || !Path::new(public_path).is_file() { + if !Path::new("build").is_dir() { + create_dir(Path::new("build"))?; + } + let (public_key, secret_key) = pkgar_keys::SecretKeyFile::new(); + public_key + .save(public_path) + .map_err(|err| format!("failed to save pkgar public key: {:?}", err))?; + secret_key + .save(secret_path) + .map_err(|err| format!("failed to save pkgar secret key: {:?}", err))?; + } + + let stage_modified = modified_all(stage_dirs, modified_dir)?; + + let packages = recipe.recipe.get_packages_list(); + + for package in packages { + let (stage_dir, package_file, package_meta) = package_stage_paths(package, target_dir); + // Rebuild package if stage is newer + if package_file.is_file() && modified(&package_file)? < stage_modified { + log_to_pty!(logger, "DEBUG: updating '{}'", package_file.display()); + remove_all(&package_file)?; + if package_meta.is_file() { + remove_all(&package_meta)?; + } + } + + if !package_file.is_file() { + pkgar::create( + secret_path, + package_file.to_str().unwrap(), + stage_dir.to_str().unwrap(), + ) + .map_err(|err| format!("failed to create pkgar archive: {:?}", err))?; + } + + let deps = if package.is_some() { + BTreeSet::from([name.without_host()]) + } else { + auto_deps.clone() + }; + + if !package_meta.is_file() { + let name = match package { + Some(p) => PackageName::new(format!("{}.{}", name.name(), p.name)) + .map_err(|e| format!("{}", e))?, + None => name.clone(), + }; + let package_deps = match package { + Some(p) => p + .dependencies + .iter() + .map(|dep| { + if dep.name().is_empty() { + name.with_suffix(dep.suffix()) + } else { + dep.clone() + } + }) + .collect(), + None => recipe.recipe.package.dependencies.clone(), + }; + package_toml( + package_meta, + recipe, + Some((Path::new(public_path), &package_file)), + package_deps, + &deps, + )?; + } + } + + Ok(()) +} + +pub fn package_toml( + toml_path: PathBuf, + recipe: &CookRecipe, + package_file: Option<(&Path, &PathBuf)>, + mut package_deps: Vec, + auto_deps: &BTreeSet, +) -> Result<(), String> { + for dep in auto_deps.iter() { + if !package_deps.contains(dep) { + package_deps.push(dep.clone()); + } + } + + let (hash, 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| { + format!( + "Unable to read packaged pkgar file {}: {e:?}", + archive_path.display(), + ) + })?; + let mt = std::fs::metadata(archive_path).map_err(|e| { + format!( + "Unable to read packaged pkgar file {}: {e:?}", + archive_path.display(), + ) + })?; + (hash_to_hex(package.header().blake3), mt.len()) + } else { + ("".into(), 0) + }; + + let ident_source = fetch::fetch_get_source_info(recipe)?; + + let package = Package { + name: recipe.name.without_host(), + 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, + depends: package_deps, + commit_identifier: ident_source.commit_identifier, + source_identifier: ident_source.source_identifier, + time_identifier: ident_source.time_identifier, + ..Default::default() + }; + + serialize_and_write(&toml_path, &package)?; + return Ok(()); +} + +fn package_version(recipe: &Recipe) -> String { + if recipe.build.kind == BuildKind::None { + "".into() + } else if let Some(v) = &recipe.package.version { + v.to_string() + } else if let Some(r) = &recipe.source { + if let Some(m) = r.guess_version() { + m + } else { + "TODO".into() + } + } else { + "TODO".into() + } +} + +pub fn package_target(name: &PackageName) -> &'static str { + if name.is_host() { + redoxer::host_target() + } else { + redoxer::target() + } +} + +pub fn package_stage_paths( + package: Option<&OptionalPackageRecipe>, + target_dir: &Path, +) -> (PathBuf, PathBuf, PathBuf) { + package_name_paths(package, target_dir, "stage") +} + +pub fn package_source_paths( + package: Option<&OptionalPackageRecipe>, + target_dir: &Path, +) -> (PathBuf, PathBuf, PathBuf) { + package_name_paths(package, target_dir, "source") +} + +fn package_name_paths( + package: Option<&OptionalPackageRecipe>, + target_dir: &Path, + name: &str, +) -> (PathBuf, PathBuf, PathBuf) { + let prefix_name = get_package_name(name, package); + let package_stage = target_dir.join(&prefix_name); + let package_file = package_stage.with_added_extension("pkgar"); + let package_meta = package_stage.with_added_extension("toml"); + (package_stage, package_file, package_meta) +} + +pub fn get_package_name(name: &str, package: Option<&OptionalPackageRecipe>) -> String { + get_package_name_inner(name, package.map(|p| p.name.as_str())) +} + +fn get_package_name_inner(name: &str, package: Option<&str>) -> String { + let mut prefix_name = name.to_string(); + if let Some(package) = package { + prefix_name.push('.'); + prefix_name.push_str(package); + } + prefix_name +} diff --git a/src/cook/pty.rs b/src/cook/pty.rs new file mode 100644 index 000000000..aec8869b0 --- /dev/null +++ b/src/cook/pty.rs @@ -0,0 +1,356 @@ +use anyhow::{Error, bail}; +use filedescriptor::FileDescriptor; +use libc::{self, winsize}; +use std::io::{Read, Write}; +use std::os::fd::FromRawFd; +use std::os::unix::io::AsRawFd; +use std::os::unix::process::CommandExt; +use std::process::Child; +use std::time::Duration; +use std::{io, mem, ptr}; +use std::{ + io::{PipeReader, PipeWriter}, + process::Command, +}; + +pub use std::os::unix::io::RawFd; + +#[macro_export] +macro_rules! log_to_pty { + ($logger:expr, $($arg:tt)+) => { + if $logger.is_some() { + use std::io::Write; + let mut logfd = $logger.as_ref().unwrap().1.try_clone().unwrap(); + let _ = logfd.write(format!($($arg)+).as_bytes()); + let _ = logfd.write(&[b'\n']); + } else { + eprintln!($($arg)+); + } + }; +} + +pub type PtyOut<'a> = Option<(&'a mut UnixSlavePty, &'a mut PipeWriter)>; + +pub fn setup_pty() -> ( + Box, + PipeReader, + (UnixSlavePty, std::io::PipeWriter), +) { + let pty_system = UnixPtySystem::default(); + let pair = pty_system + .openpty(PtySize { + rows: 24, // Standard terminal size + cols: 80, // Standard terminal size + ..Default::default() + }) + .expect("Unable to open pty"); + + // TODO: There's no way to handle stdin + let pty_reader = pair + .master + .try_clone_reader() + .expect("Unable to clone pty reader"); + + let (log_reader, log_writer) = std::io::pipe().expect("Failed to create log pipe"); + let pipes = (pair.slave, log_writer); + (pty_reader, log_reader, pipes) +} + +pub fn flush_pty(logger: &mut PtyOut) { + let Some((pty, file)) = logger else { + return; + }; + // Not sure if flush actually working + let _ = pty.flush(); + std::thread::sleep(Duration::from_millis(100)); + let _ = file.flush(); + std::thread::sleep(Duration::from_millis(100)); +} + +pub fn spawn_to_pipe(command: &mut Command, stdout_pipe: &PtyOut) -> Result { + match stdout_pipe { + Some(stdout) => stdout.0.spawn_command(command.into()), + None => Ok(command.spawn()?), + } +} + +// +// based on portable-pty crate +// copied here since it isn't flexible enough +// + +#[derive(Default)] +pub struct UnixPtySystem {} + +/// Represents the size of the visible display area in the pty +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct PtySize { + /// The number of lines of text + pub rows: u16, + /// The number of columns of text + pub cols: u16, + /// The width of a cell in pixels. Note that some systems never + /// fill this value and ignore it. + pub pixel_width: u16, + /// The height of a cell in pixels. Note that some systems never + /// fill this value and ignore it. + pub pixel_height: u16, +} + +impl Default for PtySize { + fn default() -> Self { + PtySize { + rows: 24, + cols: 80, + pixel_width: 0, + pixel_height: 0, + } + } +} + +fn openpty(size: PtySize) -> anyhow::Result<(UnixMasterPty, UnixSlavePty)> { + let mut master: RawFd = -1; + let mut slave: RawFd = -1; + + let mut size = winsize { + ws_row: size.rows, + ws_col: size.cols, + ws_xpixel: size.pixel_width, + ws_ypixel: size.pixel_height, + }; + + let result = unsafe { + // BSDish systems may require mut pointers to some args + #[allow(clippy::unnecessary_mut_passed)] + libc::openpty( + &mut master, + &mut slave, + ptr::null_mut(), + ptr::null_mut(), + &mut size, + ) + }; + + if result != 0 { + bail!("failed to openpty: {:?}", io::Error::last_os_error()); + } + + let master = UnixMasterPty { + fd: PtyFd(unsafe { FileDescriptor::from_raw_fd(master) }), + }; + let slave = UnixSlavePty { + fd: PtyFd(unsafe { FileDescriptor::from_raw_fd(slave) }), + }; + + // Ensure that these descriptors will get closed when we execute + // the child process. This is done after constructing the Pty + // instances so that we ensure that the Ptys get drop()'d if + // the cloexec() functions fail (unlikely!). + cloexec(master.fd.as_raw_fd())?; + cloexec(slave.fd.as_raw_fd())?; + + Ok((master, slave)) +} + +pub struct PtyPair { + // slave is listed first so that it is dropped first. + // The drop order is stable and specified by rust rfc 1857 + pub slave: UnixSlavePty, + pub master: UnixMasterPty, +} + +impl UnixPtySystem { + fn openpty(&self, size: PtySize) -> anyhow::Result { + let (master, slave) = openpty(size)?; + Ok(PtyPair { + master: master, + slave: slave, + }) + } +} + +struct PtyFd(pub FileDescriptor); +impl std::ops::Deref for PtyFd { + type Target = FileDescriptor; + fn deref(&self) -> &FileDescriptor { + &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 { + match self.0.read(buf) { + Err(ref e) if e.raw_os_error() == Some(libc::EIO) => { + // EIO indicates that the slave pty has been closed. + // Treat this as EOF so that std::io::Read::read_to_string + // and similar functions gracefully terminate when they + // encounter this condition + Ok(0) + } + x => x, + } + } +} + +impl PtyFd { + fn resize(&self, size: PtySize) -> Result<(), Error> { + let ws_size = winsize { + ws_row: size.rows, + ws_col: size.cols, + ws_xpixel: size.pixel_width, + ws_ypixel: size.pixel_height, + }; + + if unsafe { + libc::ioctl( + self.0.as_raw_fd(), + libc::TIOCSWINSZ as _, + &ws_size as *const _, + ) + } != 0 + { + bail!( + "failed to ioctl(TIOCSWINSZ): {:?}", + io::Error::last_os_error() + ); + } + + Ok(()) + } + + fn get_size(&self) -> Result { + let mut size: winsize = unsafe { mem::zeroed() }; + if unsafe { + libc::ioctl( + self.0.as_raw_fd(), + libc::TIOCGWINSZ as _, + &mut size as *mut _, + ) + } != 0 + { + bail!( + "failed to ioctl(TIOCGWINSZ): {:?}", + io::Error::last_os_error() + ); + } + Ok(PtySize { + rows: size.ws_row, + cols: size.ws_col, + pixel_width: size.ws_xpixel, + pixel_height: size.ws_ypixel, + }) + } + + fn spawn_command(&self, cmd: &mut Command) -> anyhow::Result { + unsafe { + cmd + // .stdin(self.as_stdio()?) + .stdout(self.as_stdio()?) + .stderr(self.as_stdio()?) + .pre_exec(move || { + // Clean up a few things before we exec the program + // Clear out any potentially problematic signal + // dispositions that we might have inherited + for signo in &[ + libc::SIGCHLD, + libc::SIGHUP, + libc::SIGINT, + libc::SIGQUIT, + libc::SIGTERM, + libc::SIGALRM, + ] { + libc::signal(*signo, libc::SIG_DFL); + } + + let empty_set: libc::sigset_t = std::mem::zeroed(); + libc::sigprocmask(libc::SIG_SETMASK, &empty_set, std::ptr::null_mut()); + + // Establish ourselves as a session leader. + if libc::setsid() == -1 { + return Err(io::Error::last_os_error()); + } + + Ok(()) + }) + }; + + let mut child = cmd.spawn()?; + + // Ensure that we close out the slave fds that Child retains; + // they are not what we need (we need the master side to reference + // them) and won't work in the usual way anyway. + // In practice these are None, but it seems best to be move them + // out in case the behavior of Command changes in the future. + // child.stdin.take(); + child.stdout.take(); + child.stderr.take(); + + Ok(child) + } + + fn flush(&mut self) -> std::io::Result<()> { + self.0.flush() + } +} + +/// Represents the master end of a pty. +/// The file descriptor will be closed when the Pty is dropped. +pub struct UnixMasterPty { + fd: PtyFd, +} + +/// Represents the slave end of a pty. +/// The file descriptor will be closed when the Pty is dropped. +pub struct UnixSlavePty { + fd: PtyFd, +} + +/// Helper function to set the close-on-exec flag for a raw descriptor +fn cloexec(fd: RawFd) -> Result<(), Error> { + let flags = unsafe { libc::fcntl(fd, libc::F_GETFD) }; + if flags == -1 { + bail!( + "fcntl to read flags failed: {:?}", + io::Error::last_os_error() + ); + } + let result = unsafe { libc::fcntl(fd, libc::F_SETFD, flags | libc::FD_CLOEXEC) }; + if result == -1 { + bail!( + "fcntl to set CLOEXEC failed: {:?}", + io::Error::last_os_error() + ); + } + Ok(()) +} + +impl UnixSlavePty { + fn spawn_command(&self, builder: &mut Command) -> Result { + Ok(self.fd.spawn_command(builder)?) + } + fn flush(&mut self) -> Result<(), anyhow::Error> { + Ok(self.fd.flush()?) + } +} + +impl UnixMasterPty { + #[allow(unused)] + fn resize(&self, size: PtySize) -> Result<(), Error> { + self.fd.resize(size) + } + + #[allow(unused)] + fn get_size(&self) -> Result { + self.fd.get_size() + } + + fn try_clone_reader(&self) -> Result, Error> { + let fd = PtyFd(self.fd.try_clone()?); + Ok(Box::new(fd)) + } +} diff --git a/src/cook/script.rs b/src/cook/script.rs new file mode 100644 index 000000000..fe7736829 --- /dev/null +++ b/src/cook/script.rs @@ -0,0 +1,380 @@ +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") + ;; + *) + [ -z "${COOKBOOK_VERBOSE}" ] || echo "WARN: ${TARGET} does not support dynamic linking." >&2 + return + ;; + esac + + [ -z "${COOKBOOK_VERBOSE}" ] || echo "DEBUG: Program is being compiled dynamically." + + COOKBOOK_CONFIGURE_FLAGS=( + --host="${GNU_TARGET}" + --prefix="/usr" + --enable-shared + --disable-static + ) + + COOKBOOK_CMAKE_FLAGS=( + -DBUILD_SHARED_LIBS=True + -DENABLE_SHARED=True + -DENABLE_STATIC=False + ) + + 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 COOKBOOK_DYNAMIC=1 +} + +# Build both dynamically and statically +function DYNAMIC_STATIC_INIT { + DYNAMIC_INIT + if [ "${COOKBOOK_DYNAMIC}" == "1" ] + then + COOKBOOK_CONFIGURE_FLAGS=( + --host="${GNU_TARGET}" + --prefix="/usr" + --enable-shared + --enable-static + ) + + COOKBOOK_CMAKE_FLAGS=( + -DBUILD_SHARED_LIBS=True + -DENABLE_SHARED=True + -DENABLE_STATIC=True + ) + + COOKBOOK_MESON_FLAGS=( + --buildtype release + --wrap-mode nofallback + --strip + -Ddefault_library=both + -Dprefix=/usr + ) + fi +} + +function GNU_CONFIG_GET { + wget -O "$1" "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" +} +"#; + +pub(crate) static BUILD_PRESCRIPT: &str = r#" +# Add cookbook bins to path +export PATH="${COOKBOOK_ROOT}/bin:${PATH}" + +# Add toolchain dir to path if exists +if [ ! -z "${COOKBOOK_TOOLCHAIN}" ] +then +export PATH="${COOKBOOK_TOOLCHAIN}/bin:${PATH}" +export LD_LIBRARY_PATH="${COOKBOOK_TOOLCHAIN}/lib:${LD_LIBRARY_PATH}" +fi + +# This puts cargo build artifacts in the build directory +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" + +# 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" + +# These ensure that pkg-config gets the right flags from the sysroot +if [ "${TARGET}" != "${COOKBOOK_HOST_TARGET}" ] +then + export PKG_CONFIG_ALLOW_CROSS=1 + export PKG_CONFIG_PATH= + export PKG_CONFIG_LIBDIR="${COOKBOOK_SYSROOT}/lib/pkgconfig" + export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}" +fi + +# To build the debug version of a Cargo program, add COOKBOOK_DEBUG=true, and +# 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= +build_flags=--release +if [ ! -z "${COOKBOOK_DEBUG}" ] +then + install_flags=--debug + build_flags= + build_type=debug + export CFLAGS="${CFLAGS} -g" + export CPPFLAGS="${CPPFLAGS} -g" +fi + +if [ ! -z "${COOKBOOK_OFFLINE}" ] +then +build_flags+=" --offline" +install_flags+=" --offline" +fi + +# cargo template +COOKBOOK_CARGO="${COOKBOOK_REDOXER}" +function cookbook_cargo { + "${COOKBOOK_CARGO}" install \ + --path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}" \ + --root "${COOKBOOK_STAGE}/usr" \ + --locked \ + --no-track \ + ${install_flags} \ + -j "${COOKBOOK_MAKE_JOBS}" "$@" +} + +# helper for installing binaries that are cargo examples +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}" + done +} + +# helper for installing binaries that are cargo packages +function cookbook_cargo_packages { + recipe="$(basename "${COOKBOOK_RECIPE}")" + 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}" + done +} + +# configure template +COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/configure" +COOKBOOK_CONFIGURE_FLAGS=( + --host="${GNU_TARGET}" + --prefix="/usr" + --disable-shared + --enable-static +) +COOKBOOK_MAKE="make" + +function cookbook_configure { + "${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" "$@" + "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" + "${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" +} + +COOKBOOK_CMAKE="cmake" +COOKBOOK_NINJA="ninja" +COOKBOOK_CMAKE_FLAGS=( + -DBUILD_SHARED_LIBS=False + -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 <> cross_file.cmake + echo "set(CMAKE_CXX_COMPILER_LAUNCHER ${CC_WRAPPER})" >> cross_file.cmake + fi + + "${COOKBOOK_CMAKE}" "${COOKBOOK_SOURCE}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CROSSCOMPILING=True \ + -DCMAKE_INSTALL_INCLUDEDIR=include \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_INSTALL_OLDINCLUDEDIR=/include \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_SBINDIR=bin \ + -DCMAKE_TOOLCHAIN_FILE=cross_file.cmake \ + -GNinja \ + -Wno-dev \ + "${COOKBOOK_CMAKE_FLAGS[@]}" \ + "$@" + + "${COOKBOOK_NINJA}" -j"${COOKBOOK_MAKE_JOBS}" + DESTDIR="${COOKBOOK_STAGE}" "${COOKBOOK_NINJA}" install -j"${COOKBOOK_MAKE_JOBS}" +} + +COOKBOOK_MESON="meson" +COOKBOOK_MESON_FLAGS=( + --buildtype release + --wrap-mode nofallback + --strip + -Ddefault_library=static + -Dprefix=/usr +) +function cookbook_meson { + 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 + echo "ar = '${AR}'" >> cross_file.txt + echo "strip = '${STRIP}'" >> cross_file.txt + echo "pkg-config = '${PKG_CONFIG}'" >> cross_file.txt + echo "llvm-config = '${TARGET}-llvm-config'" >> cross_file.txt + echo "glib-compile-resources = 'glib-compile-resources'" >> cross_file.txt + echo "glib-compile-schemas = 'glib-compile-schemas'" >> cross_file.txt + + echo "[host_machine]" >> cross_file.txt + echo "system = '$(echo "${TARGET}" | cut -d - -f3)'" >> cross_file.txt + echo "cpu_family = '$(echo "${TARGET}" | cut -d - -f1)'" >> cross_file.txt + echo "cpu = '$(echo "${TARGET}" | cut -d - -f1)'" >> cross_file.txt + echo "endian = 'little'" >> cross_file.txt + + echo "[paths]" >> cross_file.txt + echo "prefix = '/usr'" >> cross_file.txt + echo "libdir = 'lib'" >> cross_file.txt + echo "bindir = 'bin'" >> 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 + + "${COOKBOOK_MESON}" setup \ + "${COOKBOOK_SOURCE}" \ + . \ + --cross-file cross_file.txt \ + "${COOKBOOK_MESON_FLAGS[@]}" \ + "$@" + "${COOKBOOK_NINJA}" -j"${COOKBOOK_MAKE_JOBS}" + DESTDIR="${COOKBOOK_STAGE}" "${COOKBOOK_NINJA}" install -j"${COOKBOOK_MAKE_JOBS}" +} +"#; + +pub(crate) static BUILD_POSTSCRIPT: &str = r#" +# Strip binaries +for dir in "${COOKBOOK_STAGE}/bin" "${COOKBOOK_STAGE}/usr/bin" +do + if [ -d "${dir}" ] && [ -z "${COOKBOOK_NOSTRIP}" ] + then + find "${dir}" -type f -exec "${GNU_TARGET}-strip" -v {} ';' + fi +done + +# Remove libtool files +for dir in "${COOKBOOK_STAGE}/lib" "${COOKBOOK_STAGE}/usr/lib" +do + if [ -d "${dir}" ] + then + find "${dir}" -type f -name '*.la' -exec rm -fv {} ';' + fi +done + +# Remove cargo install files +for file in .crates.toml .crates2.json +do + if [ -f "${COOKBOOK_STAGE}/${file}" ] + then + rm -v "${COOKBOOK_STAGE}/${file}" + fi +done + +# Add pkgname to appstream metadata +for dir in "${COOKBOOK_STAGE}/share/metainfo" "${COOKBOOK_STAGE}/usr/share/metainfo" +do + if [ -d "${dir}" ] + then + find "${dir}" -type f -name '*.xml' -exec sed -i 's||'"${COOKBOOK_NAME}"'|g' {} ';' + fi +done +"#; + +pub(crate) static GIT_RESET_BRANCH: &str = r#" +ORIGIN_BRANCH="$(git branch --remotes | grep '^ origin/HEAD -> ' | cut -d ' ' -f 5-)" +if [ -n "$BRANCH" ] +then + ORIGIN_BRANCH="origin/$BRANCH" +fi + +if [ "$(git rev-parse HEAD)" != "$(git rev-parse $ORIGIN_BRANCH)" ] +then + git checkout -B "$(echo "$ORIGIN_BRANCH" | cut -d / -f 2-)" "$ORIGIN_BRANCH" +fi"#; + +pub static KILL_ALL_PID: &str = r#" +THISPID=$$ +CHILDREN=$(ps -o pid= --ppid $PID | grep -v $THISPID); + +ALL_DESCENDANTS=''; + +while [ -n "$CHILDREN" ]; do + ALL_DESCENDANTS="$ALL_DESCENDANTS $CHILDREN"; + CHILDREN=$(ps -o pid= --ppid $(echo $CHILDREN) | tr '\n' ' '); +done; + +if [ -n "$ALL_DESCENDANTS" ]; then + kill -9 $ALL_DESCENDANTS; +fi +"#; diff --git a/src/cook/tree.rs b/src/cook/tree.rs new file mode 100644 index 000000000..70bacb1d3 --- /dev/null +++ b/src/cook/tree.rs @@ -0,0 +1,134 @@ +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> { + Built(&'a PathBuf, u64), + NotBuilt, + Deduped, + Missing, +} + +pub fn display_tree_entry( + package_name: &PackageName, + recipe_map: &HashMap<&PackageName, &CookRecipe>, + prefix: &str, + is_last: bool, + visited: &mut HashSet, + total_size: &mut u64, +) -> anyhow::Result<()> { + walk_tree_entry( + package_name, + recipe_map, + prefix, + is_last, + visited, + total_size, + display_pkg_fn, + ) +} + +pub fn walk_tree_entry( + package_name: &PackageName, + recipe_map: &HashMap<&PackageName, &CookRecipe>, + prefix: &str, + is_last: bool, + visited: &mut HashSet, + total_size: &mut u64, + op: fn(&PackageName, &str, bool, &WalkTreeEntry) -> anyhow::Result<()>, +) -> anyhow::Result<()> { + 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 + op(package_name, prefix, is_last, &WalkTreeEntry::Missing)?; + return Ok(()); + } + }; + + let (_, pkg_path, pkg_toml) = cook_recipe.stage_paths(); + + let deduped = visited.contains(package_name); + let entry = match (std::fs::metadata(&pkg_path), deduped) { + (_, true) => WalkTreeEntry::Deduped, + (Ok(meta), _) => WalkTreeEntry::Built(&pkg_path, meta.len()), + (Err(_), _) => WalkTreeEntry::NotBuilt, + }; + + op(package_name, prefix, is_last, &entry)?; + + if deduped { + return Ok(()); + } + + visited.insert(package_name.clone()); + 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 { + all_deps_set.extend(cook_recipe.recipe.package.dependencies.iter()); + } + + if all_deps_set.is_empty() { + return Ok(()); + } + + let sorted_deps: Vec<&PackageName> = all_deps_set.into_iter().collect(); + let deps_count = sorted_deps.len(); + let child_prefix = if is_last { " " } else { "│ " }; + for (i, dep_name) in sorted_deps.iter().enumerate() { + walk_tree_entry( + dep_name, + recipe_map, + &format!("{}{}", prefix, child_prefix), + i == deps_count - 1, + visited, + total_size, + op, + )?; + } + + Ok(()) +} + +pub fn display_pkg_fn( + package_name: &PackageName, + prefix: &str, + is_last: bool, + entry: &WalkTreeEntry, +) -> anyhow::Result<()> { + let size_str = match entry { + 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(), + }; + let line_prefix = if is_last { "└── " } else { "├── " }; + println!("{}{}{} {}", prefix, line_prefix, package_name, size_str); + Ok(()) +} + +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]) +} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 000000000..0c8f7153b --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,16 @@ +pub mod blake3; +pub mod config; +pub mod cook; +pub mod recipe; + +mod progress_bar; + +/// Default for maximum number of levels to descend down dependencies tree. +pub const WALK_DEPTH: usize = 16; + +/// Default remote package source, for recipes with build type = "remote" +pub const REMOTE_PKG_SOURCE: &str = "https://static.redox-os.org/pkg"; + +pub fn is_redox() -> bool { + cfg!(target_os = "redox") +} diff --git a/src/progress_bar.rs b/src/progress_bar.rs new file mode 100644 index 000000000..ef7ce1fcc --- /dev/null +++ b/src/progress_bar.rs @@ -0,0 +1,22 @@ +pub use pbr::ProgressBar; + +use std::io::{Read, Result, Write}; + +pub struct ProgressBarRead<'p, 'r, P: Write + 'p, R: Read + 'r> { + pb: &'p mut ProgressBar

, + r: &'r mut R, +} + +impl<'p, 'r, P: Write, R: Read> ProgressBarRead<'p, 'r, P, R> { + pub fn new(pb: &'p mut ProgressBar

, r: &'r mut R) -> ProgressBarRead<'p, 'r, P, R> { + ProgressBarRead { pb, r } + } +} + +impl<'p, 'r, P: Write, R: Read> Read for ProgressBarRead<'p, 'r, P, R> { + fn read(&mut self, buf: &mut [u8]) -> Result { + let count = self.r.read(buf)?; + self.pb.add(count as u64); + Ok(count) + } +} diff --git a/src/recipe.rs b/src/recipe.rs new file mode 100644 index 000000000..184f17b9c --- /dev/null +++ b/src/recipe.rs @@ -0,0 +1,590 @@ +use std::{ + collections::BTreeSet, + convert::TryInto, + fs, + path::{Path, PathBuf}, +}; + +use pkg::{PackageName, package::PackageError, recipes}; +use regex::Regex; +use serde::{ + Deserialize, Serialize, + de::{Error as DeErrorT, value::Error as DeError}, +}; + +use crate::{WALK_DEPTH, cook::package as cook_package}; + +/// Specifies how to download the source for a recipe +#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] +#[serde(untagged)] +pub enum SourceRecipe { + /// Reuse the source directory of another package + /// + /// This is useful when a single source repo contains multiple projects which each have their + /// own recipe to build them. + SameAs { + /// Relative path to the package for which to reuse the source dir + same_as: String, + }, + /// Path source + Path { + /// The path to the source + path: String, + }, + /// A git repository source + Git { + /// The URL for the git repository, such as https://gitlab.redox-os.org/redox-os/ion.git + git: String, + /// The URL for an upstream repository + upstream: Option, + /// The optional branch of the git repository to track, such as master. Please specify to + /// make updates to the rev easier + branch: Option, + /// The optional revision of the git repository to use for builds. Please specify for + /// reproducible builds + rev: Option, + /// The optional config to clone with treeless clone. Default is true if "rev" added + shallow_clone: Option, + /// A list of patch files to apply to the source + #[serde(default)] + patches: Vec, + /// Optional script to run to prepare the source + script: Option, + }, + /// A tar file source + Tar { + /// The URL of a tar source + tar: String, + /// The optional blake3 sum of the tar file. Please specify this to make reproducible + /// builds more reliable + blake3: Option, + /// A list of patch files to apply to the source + #[serde(default)] + patches: Vec, + /// Optional script to run to prepare the source, such as ./autogen.sh + script: Option, + }, +} + +impl SourceRecipe { + pub fn guess_version(&self) -> Option { + match self { + SourceRecipe::Tar { + tar, + blake3: _, + patches: _, + script: _, + } => { + let re = Regex::new(r"\d+\.\d+\.\d+").unwrap(); + if let Some(arm) = re.captures(&tar) { + return Some(arm.get(0).unwrap().as_str().to_string()); + } + None + } + _ => None, + } + } +} + +/// Specifies how to build a recipe +#[derive(Debug, Clone, Deserialize, PartialEq, Serialize)] +#[serde(tag = "template")] +pub enum BuildKind { + /// Will not build (for meta packages) + #[serde(rename = "none")] + None, + /// Will download compiled package from remote + #[serde(rename = "remote")] + Remote, + /// Will build and install using cargo + #[serde(rename = "cargo")] + Cargo { + #[serde(default)] + package_path: Option, + #[serde(default)] + cargoflags: String, + }, + /// Will build and install using configure and make + #[serde(rename = "configure")] + Configure { + #[serde(default)] + configureflags: Vec, + }, + /// Will build and install using cmake + #[serde(rename = "cmake")] + Cmake { + #[serde(default)] + cmakeflags: Vec, + }, + /// Will build and install using meson + #[serde(rename = "meson")] + Meson { + #[serde(default)] + mesonflags: Vec, + }, + /// Will build and install using custom commands + #[serde(rename = "custom")] + Custom { script: String }, +} + +impl Default for BuildKind { + fn default() -> Self { + BuildKind::None + } +} + +#[derive(Debug, Clone, Default, Deserialize, PartialEq, Serialize)] +#[serde(default)] +pub struct BuildRecipe { + #[serde(flatten)] + pub kind: BuildKind, + pub dependencies: Vec, + #[serde(rename = "dev-dependencies")] + pub dev_dependencies: Vec, +} + +#[derive(Debug, Clone, Default, Deserialize, PartialEq, Serialize)] +#[serde(default)] +pub struct PackageRecipe { + pub dependencies: Vec, + pub version: Option, +} + +#[derive(Debug, Clone, Default, Deserialize, PartialEq, Serialize)] +#[serde(default)] +pub struct OptionalPackageRecipe { + pub name: String, + pub dependencies: Vec, + pub files: Vec, +} + +/// Everything required to build a Redox package +#[derive(Debug, Clone, Default, Deserialize, PartialEq, Serialize)] +#[serde(default)] +pub struct Recipe { + /// Specifies how to download the source for this recipe + pub source: Option, + /// Specifies how to build this recipe + pub build: BuildRecipe, + /// Specifies how to package this recipe + pub package: PackageRecipe, + /// Specifies optional packages based from this recipe + #[serde(rename = "optional-packages")] + pub optional_packages: Vec, +} + +impl BuildRecipe { + pub fn new(kind: BuildKind) -> Self { + let mut build = Self::default(); + build.kind = kind; + build + } + + pub fn set_as_remote(&mut self) { + self.kind = BuildKind::Remote; + self.dev_dependencies = Vec::new(); + } + + pub fn set_as_none(&mut self) { + self.kind = BuildKind::None; + self.dependencies = Vec::new(); + self.dev_dependencies = Vec::new(); + } +} + +#[derive(Debug, Clone, PartialEq)] +pub struct CookRecipe { + pub name: PackageName, + pub dir: PathBuf, + pub recipe: Recipe, + pub target: &'static str, + /// If false, it's listed on install config + pub is_deps: bool, + pub rule: String, +} + +impl Recipe { + pub fn new(file: &PathBuf) -> Result { + if !file.is_file() { + return Err(PackageError::FileMissing(file.clone())); + } + let toml = fs::read_to_string(&file) + .map_err(|err| PackageError::Parse(DeError::custom(err), Some(file.clone())))?; + let recipe: Recipe = toml::from_str(&toml) + .map_err(|err| PackageError::Parse(DeError::custom(err), Some(file.clone())))?; + Ok(recipe) + } + + pub fn get_packages_list(&self) -> Vec> { + let mut packages: Vec> = + self.optional_packages.iter().map(|p| Some(p)).collect(); + // the mandatory package, put last because of cook_build + packages.push(None); + packages + } +} + +impl CookRecipe { + pub fn new(name: PackageName, dir: PathBuf, mut recipe: Recipe) -> Result { + let target = cook_package::package_target(&name); + if name.is_host() { + let thisname = name.name(); + let fn_map = |p: PackageName| { + if p.is_host() { + if p.name() == thisname { None } else { Some(p) } + } else { + Some(p.with_host()) + } + }; + recipe.build.dependencies = recipe + .build + .dependencies + .into_iter() + .filter_map(fn_map) + .collect(); + recipe.build.dev_dependencies = recipe + .build + .dev_dependencies + .into_iter() + .filter_map(fn_map) + .collect(); + } + Ok(Self { + name, + dir, + recipe, + target, + is_deps: false, + rule: "".into(), + }) + } + + pub fn from_name(name: PackageName) -> Result { + let dir = recipes::find(name.name()) + .ok_or_else(|| PackageError::PackageNotFound(name.clone()))?; + let file = dir.join("recipe.toml"); + let recipe = Recipe::new(&file)?; + Self::new(name, dir.to_path_buf(), recipe) + } + + 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()?; + if is_host { + name = name.with_host(); + } + let recipe = if read_recipe { + Recipe::new(&file)? + } else { + // clean/unfetch don't need to read recipe + Recipe::default() + }; + Self::new(name, dir.to_path_buf(), recipe) + } + + pub fn new_recursive( + names: &[PackageName], + recurse_build_deps: bool, + recurse_dev_build_deps: bool, + recurse_package_deps: bool, + collect_build_deps: bool, + collect_package_deps: bool, + collect_self: bool, + recursion: usize, + ) -> Result, PackageError> { + if recursion == 0 { + return Err(PackageError::Recursion(Default::default())); + } + + let mut recipes = Vec::new(); + for name in names { + let recipe = Self::from_name(name.clone())?; + + if recurse_build_deps { + let dependencies = Self::new_recursive( + &recipe.recipe.build.dependencies, + recurse_build_deps, + recurse_dev_build_deps, + recurse_package_deps, + collect_build_deps, + collect_package_deps, + collect_build_deps, + recursion - 1, + ) + .map_err(|mut err| { + err.append_recursion(name); + err + })?; + + for dependency in dependencies { + if !recipes.contains(&dependency) { + recipes.push(dependency); + } + } + } + + if recurse_dev_build_deps { + let dependencies = Self::new_recursive( + &recipe.recipe.build.dev_dependencies, + recurse_build_deps, + recurse_dev_build_deps, + recurse_package_deps, + collect_build_deps, + collect_package_deps, + collect_build_deps, + recursion - 1, + ) + .map_err(|mut err| { + err.append_recursion(name); + err + })?; + + for dependency in dependencies { + if !recipes.contains(&dependency) { + recipes.push(dependency); + } + } + } + + if recurse_package_deps { + let dependencies = Self::new_recursive( + &recipe.recipe.package.dependencies, + recurse_build_deps, + recurse_dev_build_deps, + recurse_package_deps, + collect_build_deps, + collect_package_deps, + collect_package_deps, + recursion - 1, + ) + .map_err(|mut err| { + err.append_recursion(name); + err + })?; + + for dependency in dependencies { + if !recipes.contains(&dependency) { + recipes.push(dependency); + } + } + } + + if collect_self && !recipes.contains(&recipe) { + recipes.push(recipe); + } + } + + Ok(recipes) + } + + pub fn get_build_deps_recursive( + names: &[PackageName], + include_dev: bool, + mark_is_deps: bool, + ) -> Result, PackageError> { + let mut packages = Self::new_recursive( + names, + true, + include_dev, + false, + true, + false, + true, + WALK_DEPTH, + )?; + + if mark_is_deps { + for package in packages.iter_mut() { + package.is_deps = !names.contains(&package.name); + } + } + + Ok(packages) + } + + pub fn get_package_deps_recursive( + names: &[PackageName], + include_names: bool, + ) -> Result, PackageError> { + // recurse_build_deps == true here as libraries (build deps) can have runtime files (package deps) + let packages = Self::new_recursive( + names, + true, + false, + true, + false, + true, + include_names, + 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()); + Ok(()) + } + + /// returns stage dir, pkgar file and toml file. + pub fn stage_paths(&self) -> (PathBuf, PathBuf, PathBuf) { + let r = self.name.suffix().map(|p| OptionalPackageRecipe { + name: p.to_string(), + ..Default::default() + }); + cook_package::package_stage_paths(r.as_ref(), &self.target_dir()) + } + + pub fn target_dir(&self) -> PathBuf { + self.dir.join("target").join(self.target) + } + + pub fn apply_filesystem_config(&mut self, rule: &str) -> Result<(), String> { + match rule { + // build from source as usual + "source" => {} + // keep local changes + "local" => self.recipe.source = None, + // download from remote build + "binary" => { + self.recipe.source = None; + self.recipe.build.set_as_remote(); + } + // don't build this recipe (unlikely to go here unless some deps need it) + // TODO: Note that we're assuming this being ignored from e.g. metapackages + // TODO: Will totally broke build if this recipe needed as some other build dependencies + "ignore" => { + self.recipe.source = None; + self.recipe.build.set_as_none(); + } + rule => { + return Err(format!( + // 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(); + + Ok(()) + } +} + +#[derive(Serialize, Deserialize)] +pub struct AutoDeps { + pub packages: BTreeSet, +} + +#[cfg(test)] +mod tests { + use pkg::PackageName; + + #[test] + fn git_cargo_recipe() { + use crate::recipe::{BuildKind, BuildRecipe, Recipe, SourceRecipe}; + + let recipe: Recipe = toml::from_str( + r#" + [source] + git = "https://gitlab.redox-os.org/redox-os/acid.git" + branch = "master" + rev = "06344744d3d55a5ac9a62a6059cb363d40699bbc" + + [build] + template = "cargo" + "#, + ) + .unwrap(); + + assert_eq!( + recipe, + Recipe { + source: Some(SourceRecipe::Git { + git: "https://gitlab.redox-os.org/redox-os/acid.git".to_string(), + upstream: None, + branch: Some("master".to_string()), + rev: Some("06344744d3d55a5ac9a62a6059cb363d40699bbc".to_string()), + patches: Vec::new(), + script: None, + shallow_clone: None, + }), + build: BuildRecipe::new(BuildKind::Cargo { + package_path: None, + cargoflags: String::new(), + }), + ..Default::default() + } + ); + } + + #[test] + fn tar_custom_recipe() { + use crate::recipe::{BuildKind, BuildRecipe, Recipe, SourceRecipe}; + + let recipe: Recipe = toml::from_str( + r#" + [source] + tar = "http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.xz" + blake3 = "8220c0e4082fa26c07b10bfe31f641d2e33ebe1d1bb0b20221b7016bc8b78a3a" + + [build] + template = "custom" + script = "make" + "#, + ) + .unwrap(); + + assert_eq!( + recipe, + Recipe { + source: Some(SourceRecipe::Tar { + tar: "http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.xz".to_string(), + blake3: Some( + "8220c0e4082fa26c07b10bfe31f641d2e33ebe1d1bb0b20221b7016bc8b78a3a" + .to_string() + ), + patches: Vec::new(), + script: None, + }), + build: BuildRecipe::new(BuildKind::Custom { + script: "make".to_string() + }), + ..Default::default() + } + ); + + let source = recipe.source.unwrap(); + assert_eq!(source.guess_version(), Some("1.3.3".to_string())); + } + + #[test] + fn meta_recipe() { + use crate::recipe::{BuildKind, BuildRecipe, PackageRecipe, Recipe}; + + let recipe: Recipe = toml::from_str( + r#" + [package] + dependencies = [ + "gcc13", + ] + "#, + ) + .unwrap(); + + assert_eq!( + recipe, + Recipe { + source: None, + build: BuildRecipe::new(BuildKind::None), + package: PackageRecipe { + dependencies: vec![PackageName::new("gcc13").unwrap()], + ..Default::default() + }, + ..Default::default() + } + ); + } +} diff --git a/targets/README b/targets/README deleted file mode 100644 index 0b172dc89..000000000 --- a/targets/README +++ /dev/null @@ -1,3 +0,0 @@ -This contains a target definition for targets that Redox supports but have not -yet been added to the upstream rust, specifically for compiling relibc in -freestanding mode. diff --git a/targets/i686-unknown-redox.json b/targets/i686-unknown-redox.json deleted file mode 100644 index 889e1eeb9..000000000 --- a/targets/i686-unknown-redox.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "arch": "x86", - "cpu": "pentiumpro", - "crt-objects-fallback": "false", - "crt-static-allows-dylibs": true, - "crt-static-default": true, - "crt-static-respected": true, - "data-layout": "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128", - "dynamic-linking": true, - "env": "relibc", - "has-rpath": true, - "has-thread-local": true, - "late-link-args": { - "gnu-cc": [ - "-lgcc" - ], - "gnu-lld-cc": [ - "-lgcc" - ] - }, - "linker-flavor": "gnu-cc", - "llvm-target": "i686-unknown-redox", - "max-atomic-width": 64, - "metadata": { - "description": null, - "host_tools": null, - "std": null, - "tier": null - }, - "os": "redox", - "plt-by-default": false, - "position-independent-executables": true, - "pre-link-args": { - "gnu-cc": [ - "-m32" - ], - "gnu-lld-cc": [ - "-m32" - ] - }, - "relro-level": "full", - "stack-probes": { - "kind": "call" - }, - "target-family": [ - "unix" - ], - "target-pointer-width": 32 -} diff --git a/targets/riscv64gc-unknown-redox.json b/targets/riscv64gc-unknown-redox.json deleted file mode 100644 index 97d191578..000000000 --- a/targets/riscv64gc-unknown-redox.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "arch": "riscv64", - "code-model": "medium", - "cpu": "generic-rv64", - "crt-objects-fallback": "false", - "crt-static-allows-dylibs": true, - "crt-static-default": true, - "crt-static-respected": true, - "data-layout": "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128", - "dynamic-linking": true, - "env": "relibc", - "features": "+m,+a,+f,+d,+c", - "has-rpath": true, - "has-thread-local": true, - "late-link-args": { - "gnu-cc": [ - "-lgcc" - ], - "gnu-lld-cc": [ - "-lgcc" - ] - }, - "linker-flavor": "gnu-cc", - "llvm-abiname": "lp64d", - "llvm-target": "riscv64-unknown-redox", - "max-atomic-width": 64, - "metadata": { - "description": null, - "host_tools": null, - "std": null, - "tier": null - }, - "os": "redox", - "plt-by-default": false, - "position-independent-executables": true, - "relro-level": "full", - "target-family": [ - "unix" - ], - "target-pointer-width": 64 -}