diff --git a/.gitignore b/.gitignore index b172da92b..32c640d13 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ /build /repo +/cookbook.toml source source.tmp source-new +source-old source.tar source.tar.tmp target diff --git a/Cargo.lock b/Cargo.lock index ce231b233..ce7dbe514 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -642,11 +642,11 @@ dependencies = [ [[package]] name = "dirs" -version = "5.0.1" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ - "dirs-sys 0.4.1", + "dirs-sys 0.5.0", ] [[package]] @@ -656,20 +656,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", - "redox_users", + "redox_users 0.4.6", "winapi", ] [[package]] name = "dirs-sys" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users", - "windows-sys 0.48.0", + "redox_users 0.5.2", + "windows-sys 0.60.2", ] [[package]] @@ -1538,6 +1538,8 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "pkgar" version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db98a45d3bdaf7dceeee5716f3eec9af0e67deec64eec9e717536b89de323c22" dependencies = [ "anyhow", "blake3 0.3.8", @@ -1550,29 +1552,17 @@ dependencies = [ [[package]] name = "pkgar" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db98a45d3bdaf7dceeee5716f3eec9af0e67deec64eec9e717536b89de323c22" +version = "0.1.19" dependencies = [ "anyhow", "blake3 0.3.8", "bytemuck", "clap", - "pkgar-core 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "pkgar-keys 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "pkgar-core 0.1.19", + "pkgar-keys 0.1.19", "thiserror 2.0.12", ] -[[package]] -name = "pkgar-core" -version = "0.1.18" -dependencies = [ - "bitflags 1.3.2", - "blake3 0.3.8", - "bytemuck", - "dryoc", -] - [[package]] name = "pkgar-core" version = "0.1.18" @@ -1585,9 +1575,21 @@ dependencies = [ "dryoc", ] +[[package]] +name = "pkgar-core" +version = "0.1.19" +dependencies = [ + "bitflags 1.3.2", + "blake3 0.3.8", + "bytemuck", + "dryoc", +] + [[package]] name = "pkgar-keys" version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4494325c5c408d718d1df657cceeadc2102f02e7c9298343ce230f557f13e80c" dependencies = [ "anyhow", "clap", @@ -1604,16 +1606,14 @@ dependencies = [ [[package]] name = "pkgar-keys" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4494325c5c408d718d1df657cceeadc2102f02e7c9298343ce230f557f13e80c" +version = "0.1.19" dependencies = [ "anyhow", "clap", "dirs 3.0.2", "hex", "lazy_static", - "pkgar-core 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "pkgar-core 0.1.19", "seckey", "serde", "termion", @@ -1832,32 +1832,16 @@ checksum = "436d45c2b6a5b159d43da708e62b25be3a4a3d5550d654b72216ade4c4bfd717" [[package]] name = "redox-pkg" -version = "0.2.5" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f49b2c29ae3c72ff3a8dbc1c5eefba9093a8c5ceaa8ca5292833816fe931e2" -dependencies = [ - "anyhow", - "indicatif", - "pkgar 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "pkgar-core 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "pkgar-keys 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest", - "serde", - "serde_derive", - "thiserror 1.0.69", - "toml 0.8.23", -] - -[[package]] -name = "redox-pkg" -version = "0.2.7" -source = "git+https://gitlab.redox-os.org/redox-os/pkgutils#436c97a0df26bfce24e33a5a86a21218aca7591f" +checksum = "6d50a7ed267e236ce8bfa178bfd3fb7a39765689d037e51c57f36bad46f474fd" dependencies = [ "anyhow", "ignore", - "pkgar 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "pkgar-core 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "pkgar-keys 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "indicatif", + "pkgar 0.1.18", + "pkgar-core 0.1.18", + "pkgar-keys 0.1.18", "reqwest", "serde", "serde_derive", @@ -1883,11 +1867,12 @@ dependencies = [ "ignore", "object", "pbr", - "pkgar 0.1.18", - "pkgar-core 0.1.18", - "pkgar-keys 0.1.18", - "redox-pkg 0.2.7", + "pkgar 0.1.19", + "pkgar-core 0.1.19", + "pkgar-keys 0.1.19", + "redox-pkg", "redoxer", + "regex", "serde", "tempfile", "termion", @@ -1908,11 +1893,11 @@ dependencies = [ "fscommon", "gpt", "libc", - "pkgar 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "pkgar-core 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "pkgar-keys 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "pkgar 0.1.18", + "pkgar-core 0.1.18", + "pkgar-keys 0.1.18", "rand 0.8.5", - "redox-pkg 0.2.5", + "redox-pkg", "redox_liner", "redox_syscall", "redoxfs", @@ -1964,18 +1949,29 @@ dependencies = [ ] [[package]] -name = "redoxer" -version = "0.2.53" +name = "redox_users" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5558ef5ce386b5a4b7d5276467d940023b31c5a85484a05ac35b31da4055d740" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ - "dirs 5.0.1", + "getrandom 0.2.16", + "libredox", + "thiserror 2.0.12", +] + +[[package]] +name = "redoxer" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ead20eb76f54e16ecc3e678daca948d49497588a777148ac60d99a67dab8a2b0" +dependencies = [ + "dirs 6.0.0", "proc-mounts", "redox_installer", "redox_syscall", "redoxfs", "tempfile", - "toml 0.5.11", + "toml 0.9.5", ] [[package]] @@ -2273,6 +2269,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -2546,15 +2551,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.8.23" @@ -2562,11 +2558,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", "toml_edit", ] +[[package]] +name = "toml" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" +dependencies = [ + "indexmap", + "serde", + "serde_spanned 1.0.0", + "toml_datetime 0.7.0", + "toml_parser", + "toml_writer", + "winnow", +] + [[package]] name = "toml_datetime" version = "0.6.11" @@ -2576,6 +2587,15 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +dependencies = [ + "serde", +] + [[package]] name = "toml_edit" version = "0.22.27" @@ -2584,18 +2604,33 @@ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", "toml_write", "winnow", ] +[[package]] +name = "toml_parser" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +dependencies = [ + "winnow", +] + [[package]] name = "toml_write" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" + [[package]] name = "tower" version = "0.5.2" @@ -3000,15 +3035,6 @@ dependencies = [ "windows-targets 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -3051,21 +3077,6 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -3104,12 +3115,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -3128,12 +3133,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -3152,12 +3151,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -3188,12 +3181,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -3212,12 +3199,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -3236,12 +3217,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -3260,12 +3235,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" diff --git a/Cargo.toml b/Cargo.toml index 9376f6612..e163cf5e1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "redox_cookbook" version = "0.1.0" authors = ["Jeremy Soller "] -edition = "2018" +edition = "2024" default-run = "cook" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -18,6 +18,7 @@ path = "src/bin/cookbook_redoxer.rs" [lib] name = "cookbook" path = "src/lib.rs" +doctest = false [dependencies] blake3 = "=1.5.3" # 1.5.4 is incompatible with blake3 0.3 dependency from pkgar @@ -27,8 +28,9 @@ pbr = "1.0.2" pkgar = { path = "pkgar/pkgar" } pkgar-core = { path = "pkgar/pkgar-core" } pkgar-keys = { path = "pkgar/pkgar-keys" } -redox-pkg = { git = "https://gitlab.redox-os.org/redox-os/pkgutils" } +redox-pkg = "0.2.8" redoxer = "0.2" +regex = "1.11" serde = { version = "=1.0.197", features = ["derive"] } termion = "4" toml = "0.8" diff --git a/README.md b/README.md index 45af88447..9da5af7b7 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,11 @@ This repository contains the system source code and packages inside the `recipes **Read [this](https://doc.redox-os.org/book/porting-applications.html) page before porting programs to Redox** In order for this repository to be useful, it must be set up with an environment -from the [redox](https://gitlab.redox-os.org/redox-os/redox) repository. +from the [redox](https://gitlab.redox-os.org/redox-os/redox) repository or inside Redox OS with `cookbook` package. [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) +- [Cookbook Config](#cookbook-config) - [Recipe Categories](#recipe-categories) - [Search Recipes](#search-recipes) - [Package Policy](#package-policy) @@ -21,6 +22,21 @@ from the [redox](https://gitlab.redox-os.org/redox-os/redox) repository. - [Repository Layout](#repository-layout) - [TODO](#todo) +### Cookbook Config + +Cookbook has special config to avoid repetitive args, place this file into `cookbook.toml` (in this cookbook directory, not redox build system) and configure it necessarily. + +```toml +# Configuration file +# This is a configuration file to avoid repetitively spelling command args. +# At the moment only mirrors here implemented but in future it will be expanded when scripts are rusted + +[mirrors] +# see list of GNU FTP mirrors at https://www.gnu.org/prep/ftp.en.html +"ftp.gnu.org/gnu" = "example.com/gnu" +"github.com/foo/bar" = "github.com/baz/bar" +``` + ### Recipe Categories The categories inside the `recipes` folder. diff --git a/clean.sh b/clean.sh index 7aba7ca85..6f7d0b0fd 100755 --- a/clean.sh +++ b/clean.sh @@ -5,12 +5,15 @@ source config.sh if [ $# = 0 ] then - recipes="$(target/release/list_recipes)" + recipes="$(list_recipes --short)" else recipes="$@" fi -for recipe_path in $recipes +for recipe_name in $recipes do - ./cook.sh "$recipe_path" distclean + recipe_path=`find_recipe $recipe_name` + + echo -e "\033[01;38;5;215mcook - clean $recipe_name\033[0m" + rm -rf "${ROOT}/$recipe_path/target/${TARGET}" done diff --git a/config.sh b/config.sh index f3a3b2de4..c3eccb17d 100755 --- a/config.sh +++ b/config.sh @@ -6,6 +6,11 @@ if [ -z "${TARGET}" ] then export TARGET=x86_64-unknown-redox fi +if [ $(uname -s) = 'Redox' ] +then + export IS_REDOX="1" +fi + ARCH="${TARGET%%-*}" HOST="$TARGET" if [ x"${HOST}" == x"riscv64gc-unknown-redox" ] ; then @@ -14,8 +19,6 @@ fi # Automatic variables ROOT="$(cd `dirname "$0"` && pwd)" -REPO="$ROOT/repo/$TARGET" -export PATH="${ROOT}/bin:$PATH" export AR="${HOST}-gcc-ar" export AS="${HOST}-as" @@ -43,30 +46,27 @@ export PKG_CONFIG_FOR_BUILD="pkg-config" if [[ "$OSTYPE" == "darwin"* ]] || [[ "$OSTYPE" == "FreeBSD" ]]; then # GNU find FIND="gfind"; - - # GNU stat from Homebrew or MacPorts - if [ ! -z "$(which brew)" ]; then - STAT="$(brew --prefix)/opt/coreutils/libexec/gnubin/stat"; - elif [ ! -z "$(which port)" ]; then - # TODO: find a programatic way of asking MacPorts for it's root dir. - STAT="/opt/local/opt/coreutils/libexec/gnubin/stat"; - elif [ ! -z "$(which pkg)" ]; then - STAT="gnustat" - else - echo "Please install either Homebrew or MacPorts and run the boostrap script." - exit 1 - fi else - FIND="find" - STAT="stat"; + FIND="find"; fi export FIND -export STAT -if [ ! "$(uname -s)" = "Redox" ] +if [ -z "${IS_REDOX}" ] then function pkgar { "$ROOT/pkgar/target/release/pkgar" "$@" } +function cook { + "$ROOT/target/release/cook" "$@" +} +function repo_builder { + "$ROOT/target/release/repo_builder" "$@" +} +function list_recipes { + "$ROOT/target/release/list_recipes" "$@" +} +function find_recipe { + "$ROOT/target/release/find_recipe" "$@" +} fi diff --git a/cook.sh b/cook.sh deleted file mode 100755 index 6435f2cce..000000000 --- a/cook.sh +++ /dev/null @@ -1,380 +0,0 @@ -#!/usr/bin/env bash -set -e -shopt -s nullglob - -source config.sh - -# Variables to be overriden by recipes -export BINDIR=bin -export CARGO=(env RUSTFLAGS="$PREFIX_RUSTFLAGS -C link-arg=-zmuldefs" cargo) -export CARGOBUILD=rustc -export CARGOFLAGS= -export DEBUG= -export EXAMPLES= -export PREPARE_COPY=1 - -if hash sha256sum 2>/dev/null -then - SHASUM="sha256sum" -else - SHASUM="shasum -a 256" -fi - -function usage { - echo "cook.sh $1 " >&2 - echo " dist" >&2 - echo " distclean" >&2 - echo " build" >&2 - echo " clean" >&2 - echo " fetch" >&2 - echo " unfetch" >&2 - echo " pkg" >&2 - echo " unpkg" >&2 - echo " prepare" >&2 - echo " unprepare" >&2 - echo " stage" >&2 - echo " unstage" >&2 - echo " version" >&2 -} - -function op { - if [ ! "$COOK_QUIET" = "1" ] - then - echo -e "\033[01;38;5;215mcook - $1 $2\033[0m" >&2 - fi - - case "$2" in - dist) - op $1 prepare - op $1 build - op $1 stage - op $1 pkg - ;; - distclean) - op $1 unpkg - op $1 unstage - op $1 unprepare - ;; - fetch) - skip=0 - if [ "$(type -t recipe_fetch)" = "function" ] - then - recipe_fetch - fi - if [ "$skip" -eq "0" ] - then - if [ -n "$TAR" ] - then - if [ ! -f source.tar ] - then - wget "$TAR" --continue -O source.tar.tmp - mv source.tar.tmp source.tar - fi - - if [ -n "$TAR_SHA256" ] - then - $SHASUM -c <<< "${TAR_SHA256} source.tar" - fi - - if [ ! -d source ] - then - mkdir source - tar xvf source.tar -C source --strip-components 1 - fi - elif [ -n "$GIT" ] - then - if [ ! -d source ] - then - if [ -n "$BRANCH" ] - then - git clone --recursive "$GIT" -b "$BRANCH" source - else - git clone --recursive "$GIT" source - fi - fi - - pushd source > /dev/null - git remote set-url origin "$GIT" - git fetch origin - if [ -n "$GIT_UPSTREAM" ] - then - git remote set-url upstream "$GIT_UPSTREAM" &> /dev/null || - git remote add upstream "$GIT_UPSTREAM" - git fetch upstream - fi - - 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 - git submodule sync --recursive - git submodule update --init --recursive - popd > /dev/null - fi - fi - ;; - unfetch) - rm -rfv source source.tar - ;; - prepare) - skip=0 - if [ "$(type -t recipe_prepare)" = "function" ] - then - recipe_prepare - fi - if [ "$skip" -eq "0" ] - then - rm -rf "${COOKBOOK_SYSROOT}" - mkdir "${COOKBOOK_SYSROOT}" - - # usrmerge - mkdir "${COOKBOOK_SYSROOT}/usr" - for folder in bin include lib share - do - mkdir "${COOKBOOK_SYSROOT}/usr/${folder}" - ln -s "usr/${folder}" "${COOKBOOK_SYSROOT}/${folder}" - done - - if [ ${#BUILD_DEPENDS} -gt 0 ] - then - pushd $ROOT - ./repo.sh "${BUILD_DEPENDS[@]}" - popd - - for i in "${BUILD_DEPENDS[@]}" - do - pkgar \ - extract \ - "${COOKBOOK_SYSROOT}" \ - --archive "$REPO/$i.pkgar" \ - --pkey "${ROOT}/build/id_ed25519.pub.toml" - done - fi - - rm -rf "${COOKBOOK_BUILD}" - if [ "$PREPARE_COPY" -eq "0" ] - then - mkdir "${COOKBOOK_BUILD}" - else - cp -Rp source "${COOKBOOK_BUILD}" - fi - - for patch in *.patch - do - patch -p1 -d "${COOKBOOK_BUILD}" < "$patch" - done - fi - ;; - unprepare) - rm -rf "${COOKBOOK_BUILD}" - rm -rf "${COOKBOOK_SYSROOT}" - ;; - version) - pushd "${COOKBOOK_BUILD}" > /dev/null - skip=0 - if [ "$(type -t recipe_version)" = "function" ] - then - recipe_version - fi - if [ "$skip" -eq "0" ] - then - # there's an unstable built-in cargo config command, so hack around it - cargo-config config package.version | tr -d '"' - fi - popd > /dev/null - ;; - gitversion) - if [ -d "${COOKBOOK_BUILD}"/.git ] - then - echo "$(op $1 version)-$(git -C "${COOKBOOK_BUILD}" rev-parse --short HEAD)" - else - op $1 version - fi - ;; - build) - pushd "${COOKBOOK_BUILD}" > /dev/null - skip=0 - if [ "$(type -t recipe_build)" = "function" ] - then - recipe_build - fi - - release_flag="--release" - if [ "$DEBUG" == 1 ] - then - release_flag= - fi - - if [ -n "$CARGO_PACKAGE" ]; then - package_flag="--package=$CARGO_PACKAGE" - else - package_flag= - fi - - if [ "$skip" -eq "0" ] - then - "${CARGO[@]}" "$CARGOBUILD" --target "$TARGET" $release_flag $package_flag $CARGOFLAGS - fi - popd > /dev/null - ;; - clean) - pushd "${COOKBOOK_BUILD}" > /dev/null - skip=0 - if [ "$(type -t recipe_clean)" = "function" ] - then - recipe_clean - fi - if [ "$skip" -eq "0" ] - then - "${CARGO[@]}" clean - fi - popd > /dev/null - ;; - stage) - op $1 unstage - mkdir -p "${COOKBOOK_STAGE}" - stage="$(realpath "${COOKBOOK_STAGE}")" - source="$(realpath source)" - pushd "${COOKBOOK_BUILD}" > /dev/null - skip=0 - if [ "$(type -t recipe_stage)" = "function" ] - then - recipe_stage "$stage" - fi - if [ "$skip" -eq "0" ] - then - #TODO "${CARGO[@]}" install --root "$stage" $CARGOFLAGS - if [ "$DEBUG" == 1 ] - then - build=debug - else - build=release - fi - - bins="$(find target/$TARGET/$build/ -maxdepth 1 -type f ! -name '*.*')" - if [ -z "$bins" ] || [ "$EXAMPLES" == 1 ] - then - example=true - bins="$bins $(find target/$TARGET/$build/examples/ -maxdepth 1 -type f ! -name '*.*' ! -name '*-*' \ - 2> /dev/null || true)" - fi - if [ -n "$bins" ] - then - if [ -n "$example" ] && [ "$EXAMPLES" != 1 ] - then - echo "$(tput bold)Note$(tput sgr0): No binaries detected, using example binaries" - fi - mkdir -p "$stage/$BINDIR" - for bin in $bins - do - if [ "$DEBUG" == 1 ] - then - cp -v "$bin" "$stage/$BINDIR/$(basename $bin)" - else - "${STRIP}" -v "$bin" -o "$stage/$BINDIR/$(basename $bin)" - fi - done - else - echo "$(tput bold)Warning$(tput sgr0): Recipe does not have any binaries" >&2 - fi - fi - popd > /dev/null - ;; - unstage) - rm -rfv "${COOKBOOK_STAGE}" - rm -fv "${TARGET_DIR}/auto_deps.toml" - ;; - pkg) - pkgar \ - create \ - --archive "${COOKBOOK_STAGE}.pkgar" \ - --skey "${ROOT}/build/id_ed25519.toml" \ - "${COOKBOOK_STAGE}" - - # Generate stage.toml - echo "name = \"$1\"" > "${COOKBOOK_STAGE}.toml" - echo "version = \"$(op $1 version)\"" >> "${COOKBOOK_STAGE}.toml" - echo "target = \"$TARGET\"" >> "${COOKBOOK_STAGE}.toml" - - # Add runtime dependencies to package if they exist - if [ -n "$DEPENDS" ] - then - # Remove leading and trailing whitespace, replace whitespace between - # package names with commas, and surround package names with quotes - dependencies=$(echo -e "$DEPENDS" | sed -E 's/^[[:space:]]*//;s/[[:space:]]*$//;s/[[:space:]]+/,/g;s/[^, ][^, ]*/"&"/g') - echo "depends = [$dependencies]" >> "${COOKBOOK_STAGE}.toml" - else - echo "depends = []" >> "${COOKBOOK_STAGE}.toml" - fi - ;; - unpkg) - rm -fv "${COOKBOOK_STAGE}.pkgar" "${COOKBOOK_STAGE}.toml" - ;; - *) - usage $1 - ;; - esac -} - -if [ -n "$1" ] -then - if (echo "$1" | grep '.*/.*' >/dev/null); then - recipe_name=$(basename "$1") - recipe_path="$1" - else - recipe_name="$1" - recipe_path=`target/release/find_recipe $recipe_name` - fi - - if [ -d "$ROOT/$recipe_path" ] - then - export COOKBOOK_RECIPE="${ROOT}/$recipe_path" - - TARGET_DIR="${COOKBOOK_RECIPE}/target/${TARGET}" - mkdir -p "${TARGET_DIR}" - - export COOKBOOK_BUILD="${TARGET_DIR}/build" - export COOKBOOK_STAGE="${TARGET_DIR}/stage" - export COOKBOOK_SOURCE="${COOKBOOK_RECIPE}/source" - export COOKBOOK_SYSROOT="${TARGET_DIR}/sysroot" - - 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}" - - cd "${COOKBOOK_RECIPE}" - - if [ -e recipe.sh ]; then - source recipe.sh - fi - - ops=() - for arg in "${@:2}" - do - if [ "$arg" == "--debug" ] - then - DEBUG=1 - else - ops[${#ops[@]}]="$arg" - fi - done - - for i in "${ops[@]}" - do - op "$recipe_name" "$i" - done - elif [ "$IGNORE_ERROR" != "1" ] - then - echo "cook.sh: recipe '$recipe_name' at not found" >&2 - exit 1 - fi -else - usage "{package}" -fi diff --git a/fetch.sh b/fetch.sh index 060ac6e4d..73da2648a 100755 --- a/fetch.sh +++ b/fetch.sh @@ -3,39 +3,4 @@ set -e source config.sh -recipes="" -for arg in "${@:1}" -do - if [ "$arg" == "--nonstop" ] - then - set +e - elif [ "$arg" == "--offline" ] - then - export COOKBOOK_OFFLINE="1" - else - recipes+=" $arg" - fi -done - -if [ "$recipes" == "" ] -then - recipes="$(target/release/list_recipes)" -fi - -for recipe_path in $recipes -do - if (echo "$recipe_path" | grep '.*/.*' >/dev/null); then - recipe_name=$(basename "$recipe_path") - recipe_path="$recipe_path" - else - recipe_name="$recipe_path" - recipe_path=`target/release/find_recipe $recipe_name` - fi - - if [ -e "$recipe_path/recipe.toml" ] - then - target/release/cook --fetch-only "$recipe_name" - else - ./cook.sh "$recipe_name" fetch - fi -done +cook --fetch-only ${@:1} diff --git a/pkgar b/pkgar index 185fe5c33..98aecac8d 160000 --- a/pkgar +++ b/pkgar @@ -1 +1 @@ -Subproject commit 185fe5c3346d9aa552f308cf61c66f7b6e25280a +Subproject commit 98aecac8d40b6a47429e2a5585416ad90c02e6db diff --git a/recipes/archives/lz4/recipe.toml b/recipes/archives/lz4/recipe.toml index bd1763e51..1aacf8260 100644 --- a/recipes/archives/lz4/recipe.toml +++ b/recipes/archives/lz4/recipe.toml @@ -6,13 +6,10 @@ patches = ["redox.patch"] [build] template = "custom" script = """ +DYNAMIC_INIT rsync -av --delete "${COOKBOOK_SOURCE}/" ./ - -# No configure provided -COOKBOOK_CONFIGURE="true" -COOKBOOK_CONFIGURE_FLAGS="" - export CPPFLAGS="${CPPFLAGS} -D_REDOX" -cookbook_configure +${COOKBOOK_MAKE} +${COOKBOOK_MAKE} install DESTDIR="${COOKBOOK_STAGE}" prefix="/usr" """ diff --git a/recipes/archives/zstd/recipe.toml b/recipes/archives/zstd/recipe.toml index e42573e07..906848506 100644 --- a/recipes/archives/zstd/recipe.toml +++ b/recipes/archives/zstd/recipe.toml @@ -9,4 +9,5 @@ script = """ DYNAMIC_INIT rsync -av --delete "${COOKBOOK_SOURCE}/" ./ ${COOKBOOK_MAKE} +${COOKBOOK_MAKE} install DESTDIR="${COOKBOOK_STAGE}" prefix="/usr" """ diff --git a/recipes/core/base-initfs/aarch64-unknown-redox/init_drivers.rc b/recipes/core/base-initfs/aarch64-unknown-redox/init_drivers.rc index cb8ab2bef..cc94430c2 100644 --- a/recipes/core/base-initfs/aarch64-unknown-redox/init_drivers.rc +++ b/recipes/core/base-initfs/aarch64-unknown-redox/init_drivers.rc @@ -1,3 +1,3 @@ -acpid +hwd pcid pcid-spawner /etc/pcid/initfs.toml diff --git a/recipes/core/base-initfs/init.rc b/recipes/core/base-initfs/init.rc index 366bbab09..6fb3094f7 100644 --- a/recipes/core/base-initfs/init.rc +++ b/recipes/core/base-initfs/init.rc @@ -24,7 +24,6 @@ fbcond 2 # Live disk # Note: Needs to start before drivers to ensure it gets priority when redoxfs searches for disks lived -unset DISK_LIVE_ADDR DISK_LIVE_SIZE # Drivers run /scheme/initfs/etc/init_drivers.rc diff --git a/recipes/core/base-initfs/init_drivers.rc b/recipes/core/base-initfs/init_drivers.rc index 2769ae679..5291733e1 100644 --- a/recipes/core/base-initfs/init_drivers.rc +++ b/recipes/core/base-initfs/init_drivers.rc @@ -1,4 +1,4 @@ ps2d us -acpid +hwd pcid pcid-spawner /etc/pcid/initfs.toml diff --git a/recipes/core/drivers-initfs/recipe.toml b/recipes/core/drivers-initfs/recipe.toml index 39b06258b..8f2e1d018 100644 --- a/recipes/core/drivers-initfs/recipe.toml +++ b/recipes/core/drivers-initfs/recipe.toml @@ -8,6 +8,7 @@ BINS=( acpid fbbootlogd fbcond + hwd inputd lived nvmed @@ -64,7 +65,7 @@ export CARGO_PROFILE_RELEASE_PANIC=abort for bin in "${BINS[@]}" do case "${bin}" in - pcid | pcid-spawner | fbbootlogd | fbcond | inputd | vesad | lived | ps2d | acpid | bcm2835-sdhcid | rtcd) + pcid | pcid-spawner | fbbootlogd | fbcond | inputd | vesad | lived | ps2d | acpid | bcm2835-sdhcid | rtcd | hwd) cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/bin" ;; *) diff --git a/recipes/core/uutils/recipe.toml b/recipes/core/uutils/recipe.toml index 56fcb14df..2f2d85737 100644 --- a/recipes/core/uutils/recipe.toml +++ b/recipes/core/uutils/recipe.toml @@ -41,6 +41,7 @@ BINS=( hashsum head join + install link ln ls diff --git a/recipes/demos/cairodemo/recipe.toml b/recipes/demos/cairodemo/recipe.toml index c4f58aac3..6538f035d 100755 --- a/recipes/demos/cairodemo/recipe.toml +++ b/recipes/demos/cairodemo/recipe.toml @@ -13,8 +13,6 @@ dependencies = [ ] template = "custom" script = """ -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib" -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include" "${CXX}" \ $("${PKG_CONFIG}" --cflags cairo) \ "${COOKBOOK_RECIPE}/cairodemo.c" \ diff --git a/recipes/dev/cargo/recipe.toml b/recipes/dev/cargo/recipe.toml index 07acd357a..e07489624 100644 --- a/recipes/dev/cargo/recipe.toml +++ b/recipes/dev/cargo/recipe.toml @@ -1,7 +1,9 @@ [source] -git = "https://gitlab.redox-os.org/redox-os/cargo.git" -upstream = "https://github.com/rust-lang/cargo.git" -branch = "redox-2023-01-21" +git = "https://github.com/rust-lang/cargo.git" +rev = "d73d2caf9e41a39daf2a8d6ce60ec80bf354d2a7" # 0.86 +patches = [ + "redox.patch" +] [build] template = "custom" @@ -19,14 +21,13 @@ export LIBZ_SYS_STATIC=1 export DEP_NGHTTP2_ROOT="${COOKBOOK_SYSROOT}" export DEP_OPENSSL_ROOT="${COOKBOOK_SYSROOT}" export DEP_Z_ROOT="${COOKBOOK_SYSROOT}" -# Force linking system nghttp2 "${COOKBOOK_CARGO}" rustc \ --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ --release \ --bin cargo \ -- \ -L "${COOKBOOK_SYSROOT}/lib" \ - -C link-arg="-lnghttp2" + -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 index 4425cd336..1cc846152 100644 --- a/recipes/dev/cmake/recipe.toml +++ b/recipes/dev/cmake/recipe.toml @@ -22,9 +22,7 @@ dependencies = [ script = """ DYNAMIC_INIT -export LDFLAGS="-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib $LDFLAGS" - -COOKBOOK_CMAKE_FLAGS=( +COOKBOOK_CMAKE_FLAGS+=( -DBUILD_TESTING=Off -DCMAKE_USE_SYSTEM_BZIP2=On -DCMAKE_USE_SYSTEM_CURL=On 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/gcc13/recipe.toml b/recipes/dev/gcc13/recipe.toml index 38dde656d..6b61540bd 100644 --- a/recipes/dev/gcc13/recipe.toml +++ b/recipes/dev/gcc13/recipe.toml @@ -21,12 +21,8 @@ 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=( - --host="${GNU_TARGET}" +COOKBOOK_CONFIGURE_FLAGS+=( --target="${GNU_TARGET}" - --prefix=/ - --enable-shared - --disable-static --with-sysroot=/ --with-build-sysroot="${COOKBOOK_SYSROOT}" --enable-languages=c,c++,lto @@ -40,9 +36,12 @@ COOKBOOK_CONFIGURE_FLAGS=( "${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}/bin/cc" -mkdir -p "${COOKBOOK_STAGE}/usr/libexec" -ln -s "/libexec/gcc" "${COOKBOOK_STAGE}/usr/libexec/gcc" +ln -s "gcc" "${COOKBOOK_STAGE}/usr/bin/cc" # Avoid conflict with libgcc & libstdcxx -rm -f "${COOKBOOK_STAGE}"/lib/libgcc_s.so* "${COOKBOOK_STAGE}"/lib/libstdc++.so* +rm -f "${COOKBOOK_STAGE}"/usr/lib/libgcc_s.so* "${COOKBOOK_STAGE}"/usr/lib/libstdc++.so* """ + +[package] +dependencies = [ + "gnu-binutils" +] diff --git a/recipes/dev/git/git.patch b/recipes/dev/git/git.patch index 0e20bc967..998bd9d6f 100644 --- a/recipes/dev/git/git.patch +++ b/recipes/dev/git/git.patch @@ -129,27 +129,10 @@ diff -ruwN git-2.13.1/git-compat-util.h source/git-compat-util.h #define _FILE_OFFSET_BITS 64 -@@ -179,7 +191,9 @@ - #include - #include - #include -+#if !defined(__redox__) - #include -+#endif - #ifndef NO_SYS_POLL_H - #include - #else -@@ -320,8 +334,20 @@ - #endif - - #ifndef PATH_SEP -+#if defined(__redox__) -+#define PATH_SEP ';' -+#else +@@ -323,6 +335,14 @@ #define PATH_SEP ':' #endif -+#endif -+ + +#ifndef DEV_NULL +#if defined(__redox__) +#define DEV_NULL "/scheme/null" @@ -157,58 +140,13 @@ diff -ruwN git-2.13.1/git-compat-util.h source/git-compat-util.h +#define DEV_NULL "/dev/null" +#endif +#endif - ++ #ifdef HAVE_PATHS_H #include -@@ -333,6 +359,16 @@ - #ifndef has_dos_drive_prefix - static inline int git_has_dos_drive_prefix(const char *path) - { -+#if defined(__redox__) -+ char * pos = (char *)path; -+ char c; -+ while (c = *pos) { -+ pos++; -+ if (c == ':') { -+ return pos - path; -+ } -+ } -+#endif - return 0; - } - #define has_dos_drive_prefix git_has_dos_drive_prefix -@@ -341,7 +377,13 @@ - #ifndef skip_dos_drive_prefix - static inline int git_skip_dos_drive_prefix(char **path) - { -+#if defined(__redox__) -+ int ret = has_dos_drive_prefix(*path); -+ *path += ret; -+ return ret; -+#else - return 0; -+#endif - } - #define skip_dos_drive_prefix git_skip_dos_drive_prefix - #endif -@@ -357,7 +399,14 @@ - #ifndef offset_1st_component - static inline int git_offset_1st_component(const char *path) - { -+#if defined(__redox__) -+ char * pos = (char *)path; -+ skip_dos_drive_prefix(&pos); -+ pos += is_dir_sep(*pos); -+ return pos - path; -+#else - return is_dir_sep(path[0]); -+#endif - } - #define offset_1st_component git_offset_1st_component #endif diff -ruwN git-2.13.1/Makefile source/Makefile ---- git-2.13.1/Makefile 2017-06-04 19:08:11.000000000 -0600 -+++ source/Makefile 2025-04-18 10:00:11.319697447 -0600 +--- 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 @@ -272,18 +210,9 @@ diff -ruwN git-2.13.1/run-command.c source/run-command.c if (dup2(fd, to) < 0) die_errno(_("dup2(%d,%d) failed"), fd, to); close(fd); -@@ -138,7 +138,7 @@ - return NULL; - - while (1) { -- const char *end = strchrnul(p, ':'); -+ const char *end = strchrnul(p, PATH_SEP); - - strbuf_reset(&buf); - diff -ruwN git-2.13.1/setup.c source/setup.c ---- git-2.13.1/setup.c 2017-06-04 19:08:11.000000000 -0600 -+++ source/setup.c 2025-04-18 10:00:11.320697447 -0600 +--- 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) diff --git a/recipes/dev/git/recipe.toml b/recipes/dev/git/recipe.toml index 616f7a815..52d5b70cf 100644 --- a/recipes/dev/git/recipe.toml +++ b/recipes/dev/git/recipe.toml @@ -28,8 +28,6 @@ MAKEFLAGS=( BLK_SHA1=1 V=1 ) -export LDFLAGS="-L${COOKBOOK_SYSROOT}/usr/lib" -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/usr/include" export CURL_CONFIG="${COOKBOOK_SYSROOT}/usr/bin/curl-config" ./configure \ --host="${GNU_TARGET}" \ diff --git a/recipes/dev/llvm18/recipe.toml b/recipes/dev/llvm18/recipe.toml index da8be3e49..1834a94e3 100644 --- a/recipes/dev/llvm18/recipe.toml +++ b/recipes/dev/llvm18/recipe.toml @@ -31,7 +31,7 @@ case "${TARGET}" in ;; esac -COOKBOOK_CMAKE_FLAGS=( +COOKBOOK_CMAKE_FLAGS+=( -DCMAKE_CXX_FLAGS="--std=gnu++11" -DBUILD_SHARED_LIBS=False -DLLVM_LINK_LLVM_DYLIB=On 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/python312/recipe.toml b/recipes/dev/python312/recipe.toml new file mode 100644 index 000000000..f7759afad --- /dev/null +++ b/recipes/dev/python312/recipe.toml @@ -0,0 +1,81 @@ +[source] +tar = "https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz" +patches = [ + "redox.patch" +] + +[build] +template = "custom" +dependencies = [ + "bzip2", + "libffi", + "libuuid", + "openssl3", + "ncurses", + "ncursesw", + "readline", + "sqlite3", + "zlib", + "xz", + "zstd", +] +script = """ +DYNAMIC_INIT + +# Build host python3 +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[@]}" "${COOKBOOK_CONFIGURE}" --prefix="${PWD}/usr" +"${HOST_ENV[@]}" "${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" +"${HOST_ENV[@]}" "${COOKBOOK_MAKE}" altinstall +popd + +export PYTHONDONTWRITEBYTECODE=1 +ARCH="${TARGET%%-*}" + +# Packages are considerably larger because of this issue +# https://gitlab.redox-os.org/redox-os/relibc/-/issues/227 +export MODULE_BUILDTYPE=static + +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/usr + --enable-shared + --disable-ipv6 + --host=${GNU_TARGET} + --build="$ARCH" + --with-build-python="${PWD}/host/usr/bin/python3.12" + --with-ensurepip=install + --disable-test-modules + ac_cv_file__dev_ptmx=no + ac_cv_file__dev_ptc=no +) + +cookbook_configure +""" diff --git a/recipes/dev/python312/redox.patch b/recipes/dev/python312/redox.patch new file mode 100644 index 000000000..9ead63c55 --- /dev/null +++ b/recipes/dev/python312/redox.patch @@ -0,0 +1,216 @@ +diff -ruwN source/configure source-new/configure +--- source/configure 2023-10-02 05:48:14.000000000 -0600 ++++ source-new/configure 2025-09-28 13:44:57.914820310 -0600 +@@ -4276,6 +4276,9 @@ + *-*-wasi) + ac_sys_system=WASI + ;; ++ *-*-redox*) ++ ac_sys_system=Redox ++ ;; + *) + # for now, limit cross builds to known configurations + MACHDEP="unknown" +@@ -4300,6 +4303,7 @@ + case $MACHDEP in + aix*) MACHDEP="aix";; + linux*) MACHDEP="linux";; ++ redox*) MACHDEP="redox";; + cygwin*) MACHDEP="cygwin";; + darwin*) MACHDEP="darwin";; + '') MACHDEP="unknown";; +@@ -4311,7 +4315,7 @@ + + if test "$cross_compiling" = yes; then + case "$host" in +- *-*-linux*) ++ *-*-linux*|*-*-redox*) + case "$host_cpu" in + arm*) + _host_cpu=arm +@@ -6746,6 +6750,7 @@ + #undef cris + #undef fr30 + #undef linux ++#undef redox + #undef hppa + #undef hpux + #undef i386 +@@ -6891,6 +6896,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__) +@@ -7488,7 +7505,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}} +@@ -12753,7 +12770,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*) +@@ -12839,7 +12856,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 : +@@ -12877,7 +12894,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 2023-10-02 05:48:14.000000000 -0600 ++++ source-new/Include/pyport.h 2025-09-28 13:44:57.916856922 -0600 +@@ -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 2023-10-02 05:48:14.000000000 -0600 ++++ source-new/Modules/_cryptmodule.c 2025-09-28 13:44:57.917139387 -0600 +@@ -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 2023-10-02 05:48:14.000000000 -0600 ++++ source-new/Modules/posixmodule.c 2025-09-28 13:44:57.918070573 -0600 +@@ -2610,8 +2610,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; +@@ -3083,8 +3082,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); +@@ -3369,8 +3366,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.) +@@ -3747,8 +3743,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; + } +@@ -14598,8 +14593,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 2023-10-02 05:48:14.000000000 -0600 ++++ source-new/Modules/resource.c 2025-09-28 13:44:57.919295094 -0600 +@@ -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 -ruwN source/Modules/timemodule.c source-new/Modules/timemodule.c +--- source/Modules/timemodule.c 2023-10-02 05:48:14.000000000 -0600 ++++ source-new/Modules/timemodule.c 2025-09-28 13:45:28.513234796 -0600 +@@ -1494,7 +1494,7 @@ + + #elif defined(HAVE_CLOCK_GETTIME) && \ + defined(CLOCK_PROCESS_CPUTIME_ID) && \ +- !defined(__EMSCRIPTEN__) && !defined(__wasi__) ++ !defined(__EMSCRIPTEN__) && !defined(__wasi__) && !defined(__redox__) + #define HAVE_THREAD_TIME + + #if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability) diff --git a/recipes/emulators/dosbox/recipe.toml b/recipes/emulators/dosbox/recipe.toml index c25c50430..61e31fc94 100644 --- a/recipes/emulators/dosbox/recipe.toml +++ b/recipes/emulators/dosbox/recipe.toml @@ -15,8 +15,8 @@ dependencies = [ template = "custom" script = """ DYNAMIC_INIT -export CFLAGS="-I${COOKBOOK_SYSROOT}/include/SDL" -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/SDL" +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" +export CPPFLAGS="${CPPFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" export LDFLAGS+=" -lorbital" COOKBOOK_CONFIGURE_FLAGS+=( --disable-opengl diff --git a/recipes/emulators/flycast/recipe.toml b/recipes/emulators/flycast/recipe.toml index 65e439c73..0c90a4301 100644 --- a/recipes/emulators/flycast/recipe.toml +++ b/recipes/emulators/flycast/recipe.toml @@ -16,8 +16,8 @@ dependencies = [ ] script = """ DYNAMIC_INIT -export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/usr/include -I${COOKBOOK_SYSROOT}/usr/include/SDL2" -export CXXFLAGS="${CXXFLAGS} -D_GLIBCXX_USE_C99_MATH_TR1=1 -I${COOKBOOK_SYSROOT}/usr/include -I${COOKBOOK_SYSROOT}/usr/include/SDL2" +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 diff --git a/recipes/emulators/rvvm/recipe.toml b/recipes/emulators/rvvm/recipe.toml index d355186ed..c98185fb1 100644 --- a/recipes/emulators/rvvm/recipe.toml +++ b/recipes/emulators/rvvm/recipe.toml @@ -17,7 +17,7 @@ export BUILDDIR="${COOKBOOK_BUILD}" export DESTDIR="${COOKBOOK_STAGE}" # Redox currently doesn't support dynamic library loading -export LDFLAGS="$(pkg-config --libs sdl)" +export LDFLAGS="${LDFLAGS} $(pkg-config --libs sdl)" # Networking is currently broken on Redox (missing setsockopt?) export USE_NET=0 diff --git a/recipes/games/eduke32/recipe.toml b/recipes/games/eduke32/recipe.toml index 29616fba0..2cc38c167 100644 --- a/recipes/games/eduke32/recipe.toml +++ b/recipes/games/eduke32/recipe.toml @@ -19,14 +19,9 @@ DYNAMIC_INIT # Copy source to build directory rsync -av --delete "${COOKBOOK_SOURCE}/" ./ -export CFLAGS="-I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL" +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" export SDLCONFIG="${COOKBOOK_SYSROOT}/bin/sdl-config --prefix=${COOKBOOK_SYSROOT}" -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib" -if [[ -n "${COOKBOOK_PREFER_STATIC}" ]]; then - LDFLAGS+=" -static" -fi - PLATFORM=REDOX "${COOKBOOK_MAKE}" -j"$($NPROC)" mkdir -pv "${COOKBOOK_STAGE}/usr/games" diff --git a/recipes/games/gigalomania/recipe.toml b/recipes/games/gigalomania/recipe.toml index a39f84fe8..5a000cba2 100644 --- a/recipes/games/gigalomania/recipe.toml +++ b/recipes/games/gigalomania/recipe.toml @@ -21,8 +21,6 @@ DYNAMIC_INIT rsync -av --delete "${COOKBOOK_SOURCE}/" ./ export CPPHOST="${TARGET}-g++" -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib" -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include" "${REDOX_MAKE}" all -j"$(${NPROC})" diff --git a/recipes/games/opentyrian/recipe.toml b/recipes/games/opentyrian/recipe.toml index d20cecf32..ba168fb22 100644 --- a/recipes/games/opentyrian/recipe.toml +++ b/recipes/games/opentyrian/recipe.toml @@ -38,7 +38,7 @@ export bindir="${prefix}/games" export icondir="/ui/icons/apps" export gamesdir="${prefix}/share/games" -if ! [[ -n "${COOKBOOK_PREFER_STATIC}" ]]; then +if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then LDFLAGS+=" -lstdc++" fi diff --git a/recipes/games/quakespasm/recipe.toml b/recipes/games/quakespasm/recipe.toml index f101e8975..58cefddb9 100644 --- a/recipes/games/quakespasm/recipe.toml +++ b/recipes/games/quakespasm/recipe.toml @@ -39,7 +39,7 @@ export USE_SDL2=1 export USE_CODEC_MP3=0 export DO_USERDIRS=1 -if ! [[ -n "${COOKBOOK_PREFER_STATIC}" ]]; then +if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then LDFLAGS+=" -lstdc++" fi diff --git a/recipes/games/sopwith/recipe.toml b/recipes/games/sopwith/recipe.toml index 60bdad06d..219c5c334 100644 --- a/recipes/games/sopwith/recipe.toml +++ b/recipes/games/sopwith/recipe.toml @@ -10,8 +10,7 @@ dependencies = [ "libiconv", ] script = """ -export CFLAGS="-I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL" -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib -static" +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 diff --git a/recipes/games/vvvvvv/recipe.sh b/recipes/games/vvvvvv/recipe.sh deleted file mode 100644 index 7964cafb3..000000000 --- a/recipes/games/vvvvvv/recipe.sh +++ /dev/null @@ -1,38 +0,0 @@ -VERSION=2.0 -GIT=https://github.com/xTibor/VVVVVV -BRANCH=redox -GIT_UPSTREAM=https://github.com/TerryCavanagh/VVVVVV -BUILD_DEPENDS=(sdl2-image sdl2-mixer sdl2 liborbital llvm18 mesa mesa-glu zlib libogg libvorbis) - -function recipe_version { - printf "1.0.0" - skip=1 -} - -function recipe_build { - sysroot="$(realpath ../sysroot)" - cd desktop_version - - cmake \ - -DCMAKE_INSTALL_PREFIX:PATH=/ \ - -DBUILD_STATIC=ON \ - -DBUILD_SHARED=OFF \ - -DSDL2_INCLUDE_DIRS="$sysroot/include/SDL2" \ - -DSDL2_LIBRARIES="-static -lSDL2main -lSDL2_mixer -lSDL2 $("${PKG_CONFIG}" --libs glu) -lorbital -lz -lvorbisfile -lvorbis -logg" \ - . - - "$REDOX_MAKE" -j"$($NPROC)" - skip=1 -} - -function recipe_clean { - echo "skipping clean" - skip=1 -} - -function recipe_stage { - dest="$(realpath $1)" - mkdir -pv "$1/usr/games/vvvvvv" - cp ./desktop_version/VVVVVV "$1/usr/games/vvvvvv" - skip=1 -} diff --git a/recipes/games/wesnoth/recipe.sh b/recipes/games/wesnoth/recipe.sh deleted file mode 100644 index 26fc0739a..000000000 --- a/recipes/games/wesnoth/recipe.sh +++ /dev/null @@ -1,62 +0,0 @@ -VERSION=1.14.6 -GIT=https://github.com/wesnoth/wesnoth.git -BRANCH=$VERSION -BUILD_DEPENDS=( - cairo - freetype2 - glib - libjpeg - liborbital - libpng - libvorbis - llvm18 - mesa mesa-glu - pcre - pixman - sdl2 sdl2-image sdl2-mixer sdl2-ttf - zlib -) - -function recipe_version { - printf "$VERSION" - skip=1 -} - -function recipe_build { - sysroot="$(realpath ../sysroot)" - export CFLAGS="-I$sysroot/include" - export LDFLAGS="-L$sysroot/lib" - - rm -rf build - mkdir -p build - cd build - set -x - cmake \ - -DCMAKE_INSTALL_PREFIX:PATH=/ \ - -DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \ - -DENABLE_SERVER=OFF \ - -DENABLE_TESTS=OFF \ - -DCRYPTO_LIBRARY=openssl \ - -DSDL2_LIBRARY=sdl2 \ - -DSDL2_IMAGE_LIBRARY=SDL2_image \ - -DSDL2_MIXER_LIBRARY=SDL2_mixer \ - -DSDL2_TTF_LIBRARY=SDL2_ttf \ - -DVORBISFILE_INCLUDE_DIR="${sysroot}/include" \ - -DVORBISFILE_LIBRARY=vorbisfile \ - .. - VERBOSE=1 "$REDOX_MAKE" all -j"$($NPROC)" - set +x - skip=1 -} - -function recipe_clean { - rm -rf build - skip=1 -} - -function recipe_stage { - dest="$(realpath $1)" - mkdir -pv "$dest/bin" - cp "build/wesnoth" "$dest/bin/wesnoth" - skip=1 -} 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 index 7c43f12c9..b90147a81 100644 --- a/recipes/gui/installer-gui/recipe.toml +++ b/recipes/gui/installer-gui/recipe.toml @@ -2,4 +2,10 @@ git = "https://gitlab.redox-os.org/redox-os/installer-gui.git" [build] -template = "cargo" +template = "custom" +script = """ +cookbook_cargo + +mkdir -pv "${COOKBOOK_STAGE}/ui/apps" +cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/redox-installer-gui" +""" diff --git a/recipes/icons/hicolor-icon-theme/recipe.toml b/recipes/icons/hicolor-icon-theme/recipe.toml index a216df371..c7bfc9def 100644 --- a/recipes/icons/hicolor-icon-theme/recipe.toml +++ b/recipes/icons/hicolor-icon-theme/recipe.toml @@ -4,6 +4,6 @@ git = "https://gitlab.freedesktop.org/xdg/default-icon-theme.git" [build] template = "custom" script = """ -meson setup -Dprefix=/usr . "${COOKBOOK_SOURCE}" +meson setup --reconfigure -Dprefix=/usr . "${COOKBOOK_SOURCE}" env DESTDIR="${COOKBOOK_STAGE}" meson install """ diff --git a/recipes/libs/expat/recipe.toml b/recipes/libs/expat/recipe.toml index c88685e4d..37f15adb0 100644 --- a/recipes/libs/expat/recipe.toml +++ b/recipes/libs/expat/recipe.toml @@ -9,12 +9,8 @@ autotools_recursive_regenerate [build] template = "custom" script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE_FLAGS=( - --host="${GNU_TARGET}" - --prefix="/usr" - --enable-shared - --enable-static +DYNAMIC_STATIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( --without-docbook --without-examples --without-tests diff --git a/recipes/libs/freetype2/recipe.toml b/recipes/libs/freetype2/recipe.toml index 12cb960ca..90c12fac1 100644 --- a/recipes/libs/freetype2/recipe.toml +++ b/recipes/libs/freetype2/recipe.toml @@ -9,6 +9,6 @@ dependencies = [ "zlib" ] script = """ -DYNAMIC_INIT -cookbook_meson -Ddefault_library=both +DYNAMIC_STATIC_INIT +cookbook_meson """ diff --git a/recipes/libs/glib/redox.patch b/recipes/libs/glib/redox.patch index 90b4cdf77..18024068e 100644 --- a/recipes/libs/glib/redox.patch +++ b/recipes/libs/glib/redox.patch @@ -1,6 +1,20 @@ +diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/glocalfile.c source/gio/glocalfile.c +--- glib-2.82.5/gio/glocalfile.c 2025-02-20 06:08:16.000000000 -0700 ++++ source/gio/glocalfile.c 2025-09-08 15:00:09.240010601 -0600 +@@ -77,6 +77,10 @@ + + #include "glib-private.h" + ++#if defined(__redox__) ++#undef AT_FDCWD ++#endif ++ + #ifdef G_OS_WIN32 + #include + #include diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/gnetworking.h.in source/gio/gnetworking.h.in --- glib-2.82.5/gio/gnetworking.h.in 2025-02-20 06:08:16.000000000 -0700 -+++ source/gio/gnetworking.h.in 2025-04-10 14:12:46.307891418 -0600 ++++ source/gio/gnetworking.h.in 2025-04-21 14:36:14.671018625 -0600 @@ -40,13 +40,17 @@ #include #include @@ -19,9 +33,42 @@ diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/gnetworking.h.in source/gio/g @NAMESER_COMPAT_INCLUDE@ #ifndef __GI_SCANNER__ +diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/gsocket.c source/gio/gsocket.c +--- glib-2.82.5/gio/gsocket.c 2025-02-20 06:08:16.000000000 -0700 ++++ source/gio/gsocket.c 2025-06-16 09:52:49.595949295 -0600 +@@ -487,6 +487,7 @@ + if (!g_socket_get_option (socket, SOL_SOCKET, SO_TYPE, &value, NULL)) + { + errsv = get_socket_errno (); ++ fprintf(stderr, "%s:%d\n", __FILE__, __LINE__); + goto err; + } + +@@ -513,6 +514,7 @@ + if (getsockname (fd, &address.sa, &addrlen) != 0) + { + errsv = get_socket_errno (); ++ fprintf(stderr, "%s:%d\n", __FILE__, __LINE__); + goto err; + } + +@@ -531,11 +533,13 @@ + if (!g_socket_get_option (socket, SOL_SOCKET, SO_DOMAIN, &family, NULL)) + { + errsv = get_socket_errno (); ++ fprintf(stderr, "%s:%d\n", __FILE__, __LINE__); + goto err; + } + #else + /* This will translate to G_IO_ERROR_FAILED on either unix or windows */ + errsv = -1; ++ fprintf(stderr, "%s:%d\n", __FILE__, __LINE__); + goto err; + #endif + } diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/gthreadedresolver.c source/gio/gthreadedresolver.c --- glib-2.82.5/gio/gthreadedresolver.c 2025-02-20 06:08:16.000000000 -0700 -+++ source/gio/gthreadedresolver.c 2025-04-10 15:19:32.649611384 -0600 ++++ source/gio/gthreadedresolver.c 2025-04-21 14:36:14.672018626 -0600 @@ -579,8 +579,26 @@ return g_task_propagate_pointer (G_TASK (result), error); } @@ -64,7 +111,7 @@ diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/gthreadedresolver.c source/gi len = res_query (rrname, C_IN, rrtype, answer->data, answer->len); diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/gunixmounts.c source/gio/gunixmounts.c --- glib-2.82.5/gio/gunixmounts.c 2025-02-20 06:08:16.000000000 -0700 -+++ source/gio/gunixmounts.c 2025-04-10 14:57:29.342807607 -0600 ++++ source/gio/gunixmounts.c 2025-04-21 14:36:14.672018626 -0600 @@ -1135,6 +1135,37 @@ return NULL; } @@ -134,7 +181,7 @@ diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/gunixmounts.c source/gio/guni } diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/meson.build source/gio/meson.build --- glib-2.82.5/gio/meson.build 2025-02-20 06:08:16.000000000 -0700 -+++ source/gio/meson.build 2025-04-10 14:06:57.909467382 -0600 ++++ source/gio/meson.build 2025-04-21 14:36:14.672018626 -0600 @@ -18,7 +18,7 @@ gnetworking_h_nameser_compat_include = '' @@ -155,7 +202,7 @@ diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/meson.build source/gio/meson. int main (int argc, char ** argv) { diff -ruwN '--exclude=subprojects' glib-2.82.5/gio/xdgmime/xdgmimecache.c source/gio/xdgmime/xdgmimecache.c --- glib-2.82.5/gio/xdgmime/xdgmimecache.c 2025-02-20 06:08:16.000000000 -0700 -+++ source/gio/xdgmime/xdgmimecache.c 2025-04-10 14:11:44.020815595 -0600 ++++ source/gio/xdgmime/xdgmimecache.c 2025-04-21 14:36:14.673018628 -0600 @@ -22,7 +22,7 @@ #include #include diff --git a/recipes/libs/libarchive/recipe.toml b/recipes/libs/libarchive/recipe.toml index b5686e0ba..033f271ee 100644 --- a/recipes/libs/libarchive/recipe.toml +++ b/recipes/libs/libarchive/recipe.toml @@ -1,6 +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/libffi/recipe.toml b/recipes/libs/libffi/recipe.toml index 1cc1701e3..8851cfcea 100644 --- a/recipes/libs/libffi/recipe.toml +++ b/recipes/libs/libffi/recipe.toml @@ -13,12 +13,6 @@ autotools_recursive_regenerate -I$(realpath ./m4) [build] template = "custom" script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE_FLAGS=( - --host="${GNU_TARGET}" - --prefix="/usr" - --enable-shared - --enable-static -) +DYNAMIC_STATIC_INIT cookbook_configure """ \ No newline at end of file diff --git a/recipes/libs/libiconv/recipe.toml b/recipes/libs/libiconv/recipe.toml index 43db90f75..bce6869a8 100644 --- a/recipes/libs/libiconv/recipe.toml +++ b/recipes/libs/libiconv/recipe.toml @@ -19,12 +19,8 @@ autotools_recursive_regenerate -I$(realpath ./m4) -I$(realpath ./srcm4) [build] template = "custom" script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE_FLAGS=( - --host="${GNU_TARGET}" - --prefix="/usr" - --enable-shared - --enable-static +DYNAMIC_STATIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( ac_cv_have_decl_program_invocation_name=no ) cookbook_configure diff --git a/recipes/libs/libjpeg/recipe.toml b/recipes/libs/libjpeg/recipe.toml index 646a06b7f..b7b417412 100644 --- a/recipes/libs/libjpeg/recipe.toml +++ b/recipes/libs/libjpeg/recipe.toml @@ -6,6 +6,6 @@ blake3 = "3efc14da55c56fc0a6a50f109d9e1ee8a91f5ae7dd17a21d3aebe04a65f3ee96" [build] template = "custom" script = """ -DYNAMIC_INIT +DYNAMIC_STATIC_INIT cookbook_cmake """ diff --git a/recipes/libs/libogg/recipe.toml b/recipes/libs/libogg/recipe.toml index 4d35c4c05..9e219c87c 100644 --- a/recipes/libs/libogg/recipe.toml +++ b/recipes/libs/libogg/recipe.toml @@ -1,12 +1,8 @@ [source] -tar = "https://github.com/xiph/ogg/releases/download/v1.3.3/libogg-1.3.3.tar.xz" -blake3 = "8220c0e4082fa26c07b10bfe31f641d2e33ebe1d1bb0b20221b7016bc8b78a3a" -patches = [ - "redox.patch" -] +tar = "https://github.com/xiph/ogg/releases/download/v1.3.4/libogg-1.3.4.tar.xz" +blake3 = "1cffbe7c498555ddfdb1390d7a38179c4bead6129ea37b1b1d54f3a76b816304" script = """ DYNAMIC_INIT -GNU_CONFIG_GET config.sub autotools_recursive_regenerate """ diff --git a/recipes/libs/libogg/redox.patch b/recipes/libs/libogg/redox.patch deleted file mode 100644 index c07ab514d..000000000 --- a/recipes/libs/libogg/redox.patch +++ /dev/null @@ -1,2833 +0,0 @@ ---- source/config.sub 2017-11-07 13:38:55.000000000 -0700 -+++ source-new/config.sub 2020-05-20 15:34:35.000000000 -0600 -@@ -1,8 +1,8 @@ - #! /bin/sh - # Configuration validation subroutine script. --# Copyright 1992-2016 Free Software Foundation, Inc. -+# Copyright 1992-2020 Free Software Foundation, Inc. - --timestamp='2016-09-05' -+timestamp='2020-05-04' - - # 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 -@@ -15,7 +15,7 @@ - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, see . -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a -@@ -33,7 +33,7 @@ - # Otherwise, we print the canonical config type on stdout and succeed. - - # You can get the latest version of this script from: --# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub -+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - - # This file is supposed to be the same for all GNU packages - # and recognize all the CPU types, system types and aliases -@@ -57,7 +57,7 @@ - - Canonicalize a configuration name. - --Operation modes: -+Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit -@@ -67,7 +67,7 @@ - version="\ - GNU config.sub ($timestamp) - --Copyright 1992-2016 Free Software Foundation, Inc. -+Copyright 1992-2020 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -89,12 +89,12 @@ - - ) # Use stdin as input. - break ;; - -* ) -- echo "$me: invalid option $1$help" -+ echo "$me: invalid option $1$help" >&2 - exit 1 ;; - - *local*) - # First pass through any local machine types. -- echo $1 -+ echo "$1" - exit ;; - - * ) -@@ -110,1242 +110,1164 @@ - exit 1;; - esac - --# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). --# Here we must recognize all the valid KERNEL-OS combinations. --maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -+# Split fields of configuration type -+# shellcheck disable=SC2162 -+IFS="-" read field1 field2 field3 field4 <&2 -+ exit 1 -+ ;; -+ *-*-*-*) -+ basic_machine=$field1-$field2 -+ os=$field3-$field4 -+ ;; -+ *-*-*) -+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two -+ # parts -+ maybe_os=$field2-$field3 - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ -- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ -- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ -- kopensolaris*-gnu* | cloudabi*-eabi* | \ -- storm-chaos* | os2-emx* | rtmk-nova*) -- os=-$maybe_os -- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` -+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ -+ | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ -+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ -+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ -+ | storm-chaos* | os2-emx* | rtmk-nova*) -+ basic_machine=$field1 -+ os=$maybe_os - ;; - android-linux) -- os=-linux-android -- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown -+ basic_machine=$field1-unknown -+ os=linux-android - ;; - *) -- basic_machine=`echo $1 | sed 's/-[^-]*$//'` -- if [ $basic_machine != $1 ] -- then os=`echo $1 | sed 's/.*-/-/'` -- else os=; fi -+ basic_machine=$field1-$field2 -+ os=$field3 - ;; - esac -- --### Let's recognize common machines as not being operating systems so --### that things like config.sub decstation-3100 work. We also --### recognize some manufacturers as not being operating systems, so we --### can provide default operating systems below. --case $os in -- -sun*os*) -- # Prevent following clause from handling this invalid input. - ;; -- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis | -knuth | -cray | -microblaze*) -+ *-*) -+ # A lone config we happen to match not fitting any pattern -+ case $field1-$field2 in -+ decstation-3100) -+ basic_machine=mips-dec - os= -- basic_machine=$1 -- ;; -- -bluegene*) -- os=-cnk - ;; -- -sim | -cisco | -oki | -wec | -winbond) -+ *-*) -+ # Second component is usually, but not always the OS -+ case $field2 in -+ # Prevent following clause from handling this valid os -+ sun*os*) -+ basic_machine=$field1 -+ os=$field2 -+ ;; -+ # Manufacturers -+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ -+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ -+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ -+ | convergent* | ncr* | news | 32* | 3600* | 3100* \ -+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ -+ | ultra | tti* | harris | dolphin | highlevel | gould \ -+ | cbm | ns | masscomp | apple | axis | knuth | cray \ -+ | microblaze* | sim | cisco \ -+ | oki | wec | wrs | winbond) -+ basic_machine=$field1-$field2 - os= -- basic_machine=$1 -- ;; -- -scout) -- ;; -- -wrs) -- os=-vxworks -- basic_machine=$1 -- ;; -- -chorusos*) -- os=-chorusos -- basic_machine=$1 - ;; -- -chorusrdb) -- os=-chorusrdb -- basic_machine=$1 -- ;; -- -hiux*) -- os=-hiuxwe2 -- ;; -- -sco6) -- os=-sco5v6 -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -sco5) -- os=-sco3.2v5 -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -sco4) -- os=-sco3.2v4 -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -sco3.2.[4-9]*) -- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -sco3.2v[4-9]*) -- # Don't forget version if it is 3.2v4 or newer. -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -sco5v6*) -- # Don't forget version if it is 3.2v4 or newer. -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -sco*) -- os=-sco3.2v2 -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -udk*) -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -isc) -- os=-isc2.2 -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -clix*) -- basic_machine=clipper-intergraph -- ;; -- -isc*) -- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -- ;; -- -lynx*178) -- os=-lynxos178 -- ;; -- -lynx*5) -- os=-lynxos5 -- ;; -- -lynx*) -- os=-lynxos -- ;; -- -ptx*) -- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` -- ;; -- -windowsnt*) -- os=`echo $os | sed -e 's/windowsnt/winnt/'` -- ;; -- -psos*) -- os=-psos -- ;; -- -mint | -mint[0-9]*) -- basic_machine=m68k-atari -- os=-mint -+ *) -+ basic_machine=$field1 -+ os=$field2 - ;; - esac -- --# Decode aliases for certain CPU-COMPANY combinations. --case $basic_machine in -- # Recognize the basic CPU types without company name. -- # Some are omitted here because they have special meanings below. -- 1750a | 580 \ -- | a29k \ -- | aarch64 | aarch64_be \ -- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ -- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | am33_2.0 \ -- | arc | arceb \ -- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ -- | avr | avr32 \ -- | ba \ -- | be32 | be64 \ -- | bfin \ -- | c4x | c8051 | clipper \ -- | d10v | d30v | dlx | dsp16xx \ -- | e2k | epiphany \ -- | fido | fr30 | frv | ft32 \ -- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ -- | hexagon \ -- | i370 | i860 | i960 | ia64 \ -- | ip2k | iq2000 \ -- | k1om \ -- | le32 | le64 \ -- | lm32 \ -- | m32c | m32r | m32rle | m68000 | m68k | m88k \ -- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ -- | mips | mipsbe | mipseb | mipsel | mipsle \ -- | mips16 \ -- | mips64 | mips64el \ -- | mips64octeon | mips64octeonel \ -- | mips64orion | mips64orionel \ -- | mips64r5900 | mips64r5900el \ -- | mips64vr | mips64vrel \ -- | mips64vr4100 | mips64vr4100el \ -- | mips64vr4300 | mips64vr4300el \ -- | mips64vr5000 | mips64vr5000el \ -- | mips64vr5900 | mips64vr5900el \ -- | mipsisa32 | mipsisa32el \ -- | mipsisa32r2 | mipsisa32r2el \ -- | mipsisa32r6 | mipsisa32r6el \ -- | mipsisa64 | mipsisa64el \ -- | mipsisa64r2 | mipsisa64r2el \ -- | mipsisa64r6 | mipsisa64r6el \ -- | mipsisa64sb1 | mipsisa64sb1el \ -- | mipsisa64sr71k | mipsisa64sr71kel \ -- | mipsr5900 | mipsr5900el \ -- | mipstx39 | mipstx39el \ -- | mn10200 | mn10300 \ -- | moxie \ -- | mt \ -- | msp430 \ -- | nds32 | nds32le | nds32be \ -- | nios | nios2 | nios2eb | nios2el \ -- | ns16k | ns32k \ -- | open8 | or1k | or1knd | or32 \ -- | pdp10 | pdp11 | pj | pjl \ -- | powerpc | powerpc64 | powerpc64le | powerpcle \ -- | pyramid \ -- | riscv32 | riscv64 \ -- | rl78 | rx \ -- | score \ -- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ -- | sh64 | sh64le \ -- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -- | spu \ -- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ -- | ubicom32 \ -- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ -- | visium \ -- | we32k \ -- | x86 | xc16x | xstormy16 | xtensa \ -- | z8k | z80) -- basic_machine=$basic_machine-unknown -- ;; -- c54x) -- basic_machine=tic54x-unknown -- ;; -- c55x) -- basic_machine=tic55x-unknown -- ;; -- c6x) -- basic_machine=tic6x-unknown -- ;; -- leon|leon[3-9]) -- basic_machine=sparc-$basic_machine -- ;; -- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) -- basic_machine=$basic_machine-unknown -- os=-none -- ;; -- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -- ms1) -- basic_machine=mt-unknown -- ;; -- -- strongarm | thumb | xscale) -- basic_machine=arm-unknown -- ;; -- xgate) -- basic_machine=$basic_machine-unknown -- os=-none -- ;; -- xscaleeb) -- basic_machine=armeb-unknown -- ;; -- -- xscaleel) -- basic_machine=armel-unknown -- ;; -- -- # We use `pc' rather than `unknown' -- # because (1) that's what they normally are, and -- # (2) the word "unknown" tends to confuse beginning users. -- i*86 | x86_64) -- basic_machine=$basic_machine-pc -- ;; -- # Object if more than one company name word. -- *-*-*) -- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 -- exit 1 -- ;; -- # Recognize the basic CPU types with company name. -- 580-* \ -- | a29k-* \ -- | aarch64-* | aarch64_be-* \ -- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ -- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ -- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* | avr32-* \ -- | ba-* \ -- | be32-* | be64-* \ -- | bfin-* | bs2000-* \ -- | c[123]* | c30-* | [cjt]90-* | c4x-* \ -- | c8051-* | clipper-* | craynv-* | cydra-* \ -- | d10v-* | d30v-* | dlx-* \ -- | e2k-* | elxsi-* \ -- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ -- | h8300-* | h8500-* \ -- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ -- | hexagon-* \ -- | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* | iq2000-* \ -- | k1om-* \ -- | le32-* | le64-* \ -- | lm32-* \ -- | m32c-* | m32r-* | m32rle-* \ -- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -- | microblaze-* | microblazeel-* \ -- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ -- | mips16-* \ -- | mips64-* | mips64el-* \ -- | mips64octeon-* | mips64octeonel-* \ -- | mips64orion-* | mips64orionel-* \ -- | mips64r5900-* | mips64r5900el-* \ -- | mips64vr-* | mips64vrel-* \ -- | mips64vr4100-* | mips64vr4100el-* \ -- | mips64vr4300-* | mips64vr4300el-* \ -- | mips64vr5000-* | mips64vr5000el-* \ -- | mips64vr5900-* | mips64vr5900el-* \ -- | mipsisa32-* | mipsisa32el-* \ -- | mipsisa32r2-* | mipsisa32r2el-* \ -- | mipsisa32r6-* | mipsisa32r6el-* \ -- | mipsisa64-* | mipsisa64el-* \ -- | mipsisa64r2-* | mipsisa64r2el-* \ -- | mipsisa64r6-* | mipsisa64r6el-* \ -- | mipsisa64sb1-* | mipsisa64sb1el-* \ -- | mipsisa64sr71k-* | mipsisa64sr71kel-* \ -- | mipsr5900-* | mipsr5900el-* \ -- | mipstx39-* | mipstx39el-* \ -- | mmix-* \ -- | mt-* \ -- | msp430-* \ -- | nds32-* | nds32le-* | nds32be-* \ -- | nios-* | nios2-* | nios2eb-* | nios2el-* \ -- | none-* | np1-* | ns16k-* | ns32k-* \ -- | open8-* \ -- | or1k*-* \ -- | orion-* \ -- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ -- | pyramid-* \ -- | riscv32-* | riscv64-* \ -- | rl78-* | romp-* | rs6000-* | rx-* \ -- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ -- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -- | sparclite-* \ -- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ -- | tahoe-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -- | tile*-* \ -- | tron-* \ -- | ubicom32-* \ -- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ -- | vax-* \ -- | visium-* \ -- | we32k-* \ -- | x86-* | x86_64-* | xc16x-* | xps100-* \ -- | xstormy16-* | xtensa*-* \ -- | ymp-* \ -- | z8k-* | z80-*) -- ;; -- # Recognize the basic CPU types without company name, with glob match. -- xtensa*) -- basic_machine=$basic_machine-unknown -+ esac - ;; -- # Recognize the various machine names and aliases which stand -- # for a CPU type and a company and sometimes even an OS. -+ *) -+ # Convert single-component short-hands not valid as part of -+ # multi-component configurations. -+ case $field1 in - 386bsd) -- basic_machine=i386-unknown -- os=-bsd -- ;; -- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) -- basic_machine=m68000-att -- ;; -- 3b*) -- basic_machine=we32k-att -+ basic_machine=i386-pc -+ os=bsd - ;; - a29khif) - basic_machine=a29k-amd -- os=-udi -- ;; -- abacus) -- basic_machine=abacus-unknown -+ os=udi - ;; - adobe68k) - basic_machine=m68010-adobe -- os=-scout -+ os=scout - ;; -- alliant | fx80) -+ alliant) - basic_machine=fx80-alliant -+ os= - ;; - altos | altos3068) - basic_machine=m68k-altos -+ os= - ;; - am29k) - basic_machine=a29k-none -- os=-bsd -- ;; -- amd64) -- basic_machine=x86_64-pc -- ;; -- amd64-*) -- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=bsd - ;; - amdahl) - basic_machine=580-amdahl -- os=-sysv -+ os=sysv - ;; -- amiga | amiga-*) -+ amiga) - basic_machine=m68k-unknown -+ os= - ;; - amigaos | amigados) - basic_machine=m68k-unknown -- os=-amigaos -+ os=amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown -- os=-sysv4 -+ os=sysv4 - ;; - apollo68) - basic_machine=m68k-apollo -- os=-sysv -+ os=sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo -- os=-bsd -+ os=bsd - ;; - aros) - basic_machine=i386-pc -- os=-aros -- ;; -- asmjs) -- basic_machine=asmjs-unknown -+ os=aros - ;; - aux) - basic_machine=m68k-apple -- os=-aux -+ os=aux - ;; - balance) - basic_machine=ns32k-sequent -- os=-dynix -+ os=dynix - ;; - blackfin) - basic_machine=bfin-unknown -- os=-linux -- ;; -- blackfin-*) -- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -- os=-linux -- ;; -- bluegene*) -- basic_machine=powerpc-ibm -- os=-cnk -- ;; -- c54x-*) -- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- c55x-*) -- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- c6x-*) -- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- c90) -- basic_machine=c90-cray -- os=-unicos -+ os=linux - ;; - cegcc) - basic_machine=arm-unknown -- os=-cegcc -+ os=cegcc - ;; - convex-c1) - basic_machine=c1-convex -- os=-bsd -+ os=bsd - ;; - convex-c2) - basic_machine=c2-convex -- os=-bsd -+ os=bsd - ;; - convex-c32) - basic_machine=c32-convex -- os=-bsd -+ os=bsd - ;; - convex-c34) - basic_machine=c34-convex -- os=-bsd -+ os=bsd - ;; - convex-c38) - basic_machine=c38-convex -- os=-bsd -+ os=bsd - ;; -- cray | j90) -+ cray) - basic_machine=j90-cray -- os=-unicos -- ;; -- craynv) -- basic_machine=craynv-cray -- os=-unicosmp -- ;; -- cr16 | cr16-*) -- basic_machine=cr16-unknown -- os=-elf -+ os=unicos - ;; - crds | unos) - basic_machine=m68k-crds -+ os= - ;; -- crisv32 | crisv32-* | etraxfs*) -- basic_machine=crisv32-axis -- ;; -- cris | cris-* | etrax*) -- basic_machine=cris-axis -- ;; -- crx) -- basic_machine=crx-unknown -- os=-elf -- ;; -- da30 | da30-*) -+ da30) - basic_machine=m68k-da30 -+ os= - ;; -- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) -+ decstation | pmax | pmin | dec3100 | decstatn) - basic_machine=mips-dec -- ;; -- decsystem10* | dec10*) -- basic_machine=pdp10-dec -- os=-tops10 -- ;; -- decsystem20* | dec20*) -- basic_machine=pdp10-dec -- os=-tops20 -- ;; -- delta | 3300 | motorola-3300 | motorola-delta \ -- | 3300-motorola | delta-motorola) -- basic_machine=m68k-motorola -+ os= - ;; - delta88) - basic_machine=m88k-motorola -- os=-sysv3 -+ os=sysv3 - ;; - dicos) - basic_machine=i686-pc -- os=-dicos -+ os=dicos - ;; - djgpp) - basic_machine=i586-pc -- os=-msdosdjgpp -- ;; -- dpx20 | dpx20-*) -- basic_machine=rs6000-bull -- os=-bosx -- ;; -- dpx2* | dpx2*-bull) -- basic_machine=m68k-bull -- os=-sysv3 -- ;; -- e500v[12]) -- basic_machine=powerpc-unknown -- os=$os"spe" -- ;; -- e500v[12]-*) -- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -- os=$os"spe" -+ os=msdosdjgpp - ;; - ebmon29k) - basic_machine=a29k-amd -- os=-ebmon -- ;; -- elxsi) -- basic_machine=elxsi-elxsi -- os=-bsd -- ;; -- encore | umax | mmax) -- basic_machine=ns32k-encore -+ os=ebmon - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson -- os=-ose -- ;; -- fx2800) -- basic_machine=i860-alliant -- ;; -- genix) -- basic_machine=ns32k-ns -+ os=ose - ;; - gmicro) - basic_machine=tron-gmicro -- os=-sysv -+ os=sysv - ;; - go32) - basic_machine=i386-pc -- os=-go32 -- ;; -- h3050r* | hiux*) -- basic_machine=hppa1.1-hitachi -- os=-hiuxwe2 -+ os=go32 - ;; - h8300hms) - basic_machine=h8300-hitachi -- os=-hms -+ os=hms - ;; - h8300xray) - basic_machine=h8300-hitachi -- os=-xray -+ os=xray - ;; - h8500hms) - basic_machine=h8500-hitachi -- os=-hms -+ os=hms - ;; - harris) - basic_machine=m88k-harris -- os=-sysv3 -+ os=sysv3 - ;; -- hp300-*) -+ hp300 | hp300hpux) - basic_machine=m68k-hp -+ os=hpux - ;; - hp300bsd) - basic_machine=m68k-hp -- os=-bsd -- ;; -- hp300hpux) -- basic_machine=m68k-hp -- os=-hpux -- ;; -- hp3k9[0-9][0-9] | hp9[0-9][0-9]) -- basic_machine=hppa1.0-hp -- ;; -- hp9k2[0-9][0-9] | hp9k31[0-9]) -- basic_machine=m68000-hp -- ;; -- hp9k3[2-9][0-9]) -- basic_machine=m68k-hp -- ;; -- hp9k6[0-9][0-9] | hp6[0-9][0-9]) -- basic_machine=hppa1.0-hp -- ;; -- hp9k7[0-79][0-9] | hp7[0-79][0-9]) -- basic_machine=hppa1.1-hp -- ;; -- hp9k78[0-9] | hp78[0-9]) -- # FIXME: really hppa2.0-hp -- basic_machine=hppa1.1-hp -- ;; -- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) -- # FIXME: really hppa2.0-hp -- basic_machine=hppa1.1-hp -- ;; -- hp9k8[0-9][13679] | hp8[0-9][13679]) -- basic_machine=hppa1.1-hp -- ;; -- hp9k8[0-9][0-9] | hp8[0-9][0-9]) -- basic_machine=hppa1.0-hp -- ;; -- hppa-next) -- os=-nextstep3 -+ os=bsd - ;; - hppaosf) - basic_machine=hppa1.1-hp -- os=-osf -+ os=osf - ;; - hppro) - basic_machine=hppa1.1-hp -- os=-proelf -- ;; -- i370-ibm* | ibm*) -- basic_machine=i370-ibm -- ;; -- i*86v32) -- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` -- os=-sysv32 -- ;; -- i*86v4*) -- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` -- os=-sysv4 -- ;; -- i*86v) -- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` -- os=-sysv -- ;; -- i*86sol2) -- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` -- os=-solaris2 -+ os=proelf - ;; - i386mach) - basic_machine=i386-mach -- os=-mach -- ;; -- i386-vsta | vsta) -- basic_machine=i386-unknown -- os=-vsta -- ;; -- iris | iris4d) -- basic_machine=mips-sgi -- case $os in -- -irix*) -- ;; -- *) -- os=-irix4 -- ;; -- esac -+ os=mach - ;; - isi68 | isi) - basic_machine=m68k-isi -- os=-sysv -- ;; -- leon-*|leon[3-9]-*) -- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` -+ os=sysv - ;; - m68knommu) - basic_machine=m68k-unknown -- os=-linux -- ;; -- m68knommu-*) -- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -- os=-linux -- ;; -- m88k-omron*) -- basic_machine=m88k-omron -+ os=linux - ;; - magnum | m3230) - basic_machine=mips-mips -- os=-sysv -+ os=sysv - ;; - merlin) - basic_machine=ns32k-utek -- os=-sysv -- ;; -- microblaze*) -- basic_machine=microblaze-xilinx -+ os=sysv - ;; - mingw64) - basic_machine=x86_64-pc -- os=-mingw64 -+ os=mingw64 - ;; - mingw32) - basic_machine=i686-pc -- os=-mingw32 -+ os=mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown -- os=-mingw32ce -- ;; -- miniframe) -- basic_machine=m68000-convergent -- ;; -- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) -- basic_machine=m68k-atari -- os=-mint -- ;; -- mips3*-*) -- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` -- ;; -- mips3*) -- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown -+ os=mingw32ce - ;; - monitor) - basic_machine=m68k-rom68k -- os=-coff -+ os=coff - ;; - morphos) - basic_machine=powerpc-unknown -- os=-morphos -+ os=morphos - ;; - moxiebox) - basic_machine=moxie-unknown -- os=-moxiebox -+ os=moxiebox - ;; - msdos) - basic_machine=i386-pc -- os=-msdos -- ;; -- ms1-*) -- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ os=msdos - ;; - msys) - basic_machine=i686-pc -- os=-msys -+ os=msys - ;; - mvs) - basic_machine=i370-ibm -- os=-mvs -+ os=mvs - ;; - nacl) - basic_machine=le32-unknown -- os=-nacl -+ os=nacl - ;; - ncr3000) - basic_machine=i486-ncr -- os=-sysv4 -+ os=sysv4 - ;; - netbsd386) -- basic_machine=i386-unknown -- os=-netbsd -+ basic_machine=i386-pc -+ os=netbsd - ;; - netwinder) - basic_machine=armv4l-rebel -- os=-linux -+ os=linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony -- os=-newsos -+ os=newsos - ;; - news1000) - basic_machine=m68030-sony -- os=-newsos -- ;; -- news-3600 | risc-news) -- basic_machine=mips-sony -- os=-newsos -+ os=newsos - ;; - necv70) - basic_machine=v70-nec -- os=-sysv -- ;; -- next | m*-next ) -- basic_machine=m68k-next -- case $os in -- -nextstep* ) -- ;; -- -ns2*) -- os=-nextstep2 -- ;; -- *) -- os=-nextstep3 -- ;; -- esac -+ os=sysv - ;; - nh3000) - basic_machine=m68k-harris -- os=-cxux -+ os=cxux - ;; - nh[45]000) - basic_machine=m88k-harris -- os=-cxux -+ os=cxux - ;; - nindy960) - basic_machine=i960-intel -- os=-nindy -+ os=nindy - ;; - mon960) - basic_machine=i960-intel -- os=-mon960 -+ os=mon960 - ;; - nonstopux) - basic_machine=mips-compaq -- os=-nonstopux -- ;; -- np1) -- basic_machine=np1-gould -- ;; -- neo-tandem) -- basic_machine=neo-tandem -- ;; -- nse-tandem) -- basic_machine=nse-tandem -- ;; -- nsr-tandem) -- basic_machine=nsr-tandem -- ;; -- op50n-* | op60c-*) -- basic_machine=hppa1.1-oki -- os=-proelf -- ;; -- openrisc | openrisc-*) -- basic_machine=or32-unknown -+ os=nonstopux - ;; - os400) - basic_machine=powerpc-ibm -- os=-os400 -+ os=os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson -- os=-ose -+ os=ose - ;; - os68k) - basic_machine=m68k-none -- os=-os68k -- ;; -- pa-hitachi) -- basic_machine=hppa1.1-hitachi -- os=-hiuxwe2 -+ os=os68k - ;; - paragon) - basic_machine=i860-intel -- os=-osf -+ os=osf - ;; - parisc) - basic_machine=hppa-unknown -- os=-linux -- ;; -- parisc-*) -- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -- os=-linux -- ;; -- pbd) -- basic_machine=sparc-tti -- ;; -- pbb) -- basic_machine=m68k-tti -- ;; -- pc532 | pc532-*) -- basic_machine=ns32k-pc532 -- ;; -- pc98) -- basic_machine=i386-pc -- ;; -- pc98-*) -- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- pentium | p5 | k5 | k6 | nexgen | viac3) -- basic_machine=i586-pc -- ;; -- pentiumpro | p6 | 6x86 | athlon | athlon_*) -- basic_machine=i686-pc -- ;; -- pentiumii | pentium2 | pentiumiii | pentium3) -- basic_machine=i686-pc -- ;; -- pentium4) -- basic_machine=i786-pc -- ;; -- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) -- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- pentiumpro-* | p6-* | 6x86-* | athlon-*) -- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) -- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- pentium4-*) -- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- pn) -- basic_machine=pn-gould -- ;; -- power) basic_machine=power-ibm -- ;; -- ppc | ppcbe) basic_machine=powerpc-unknown -- ;; -- ppc-* | ppcbe-*) -- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- ppcle | powerpclittle) -- basic_machine=powerpcle-unknown -- ;; -- ppcle-* | powerpclittle-*) -- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- ppc64) basic_machine=powerpc64-unknown -- ;; -- ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- ppc64le | powerpc64little) -- basic_machine=powerpc64le-unknown -- ;; -- ppc64le-* | powerpc64little-*) -- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` -- ;; -- ps2) -- basic_machine=i386-ibm -+ os=linux - ;; - pw32) - basic_machine=i586-unknown -- os=-pw32 -+ os=pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc -- os=-rdos -+ os=rdos - ;; - rdos32) - basic_machine=i386-pc -- os=-rdos -+ os=rdos - ;; - rom68k) - basic_machine=m68k-rom68k -- os=-coff -- ;; -- rm[46]00) -- basic_machine=mips-siemens -- ;; -- rtpc | rtpc-*) -- basic_machine=romp-ibm -- ;; -- s390 | s390-*) -- basic_machine=s390-ibm -- ;; -- s390x | s390x-*) -- basic_machine=s390x-ibm -+ os=coff - ;; - sa29200) - basic_machine=a29k-amd -- os=-udi -- ;; -- sb1) -- basic_machine=mipsisa64sb1-unknown -- ;; -- sb1el) -- basic_machine=mipsisa64sb1el-unknown -- ;; -- sde) -- basic_machine=mipsisa32-sde -- os=-elf -+ os=udi - ;; - sei) - basic_machine=mips-sei -- os=-seiux -+ os=seiux - ;; - sequent) - basic_machine=i386-sequent -- ;; -- sh) -- basic_machine=sh-hitachi -- os=-hms -- ;; -- sh5el) -- basic_machine=sh5le-unknown -- ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparclite-wrs | simso-wrs) -- basic_machine=sparclite-wrs -- os=-vxworks -+ os= - ;; - sps7) - basic_machine=m68k-bull -- os=-sysv2 -- ;; -- spur) -- basic_machine=spur-unknown -+ os=sysv2 - ;; - st2000) - basic_machine=m68k-tandem -+ os= - ;; - stratus) - basic_machine=i860-stratus -- os=-sysv4 -- ;; -- strongarm-* | thumb-*) -- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=sysv4 - ;; - sun2) - basic_machine=m68000-sun -+ os= - ;; - sun2os3) - basic_machine=m68000-sun -- os=-sunos3 -+ os=sunos3 - ;; - sun2os4) - basic_machine=m68000-sun -- os=-sunos4 -+ os=sunos4 -+ ;; -+ sun3) -+ basic_machine=m68k-sun -+ os= - ;; - sun3os3) - basic_machine=m68k-sun -- os=-sunos3 -+ os=sunos3 - ;; - sun3os4) - basic_machine=m68k-sun -- os=-sunos4 -+ os=sunos4 -+ ;; -+ sun4) -+ basic_machine=sparc-sun -+ os= - ;; - sun4os3) - basic_machine=sparc-sun -- os=-sunos3 -+ os=sunos3 - ;; - sun4os4) - basic_machine=sparc-sun -- os=-sunos4 -+ os=sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun -- os=-solaris2 -- ;; -- sun3 | sun3-*) -- basic_machine=m68k-sun -- ;; -- sun4) -- basic_machine=sparc-sun -+ os=solaris2 - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun -+ os= - ;; - sv1) - basic_machine=sv1-cray -- os=-unicos -+ os=unicos - ;; - symmetry) - basic_machine=i386-sequent -- os=-dynix -+ os=dynix - ;; - t3e) - basic_machine=alphaev5-cray -- os=-unicos -+ os=unicos - ;; - t90) - basic_machine=t90-cray -- os=-unicos -- ;; -- tile*) -- basic_machine=$basic_machine-unknown -- os=-linux-gnu -- ;; -- tx39) -- basic_machine=mipstx39-unknown -- ;; -- tx39el) -- basic_machine=mipstx39el-unknown -+ os=unicos - ;; - toad1) - basic_machine=pdp10-xkl -- os=-tops20 -- ;; -- tower | tower-32) -- basic_machine=m68k-ncr -+ os=tops20 - ;; - tpf) - basic_machine=s390x-ibm -- os=-tpf -+ os=tpf - ;; - udi29k) - basic_machine=a29k-amd -- os=-udi -+ os=udi - ;; - ultra3) - basic_machine=a29k-nyu -- os=-sym1 -+ os=sym1 - ;; - v810 | necv810) - basic_machine=v810-nec -- os=-none -+ os=none - ;; - vaxv) - basic_machine=vax-dec -- os=-sysv -+ os=sysv - ;; - vms) - basic_machine=vax-dec -- os=-vms -+ os=vms - ;; -- vpp*|vx|vx-*) -- basic_machine=f301-fujitsu -+ vsta) -+ basic_machine=i386-pc -+ os=vsta - ;; - vxworks960) - basic_machine=i960-wrs -- os=-vxworks -+ os=vxworks - ;; - vxworks68) - basic_machine=m68k-wrs -- os=-vxworks -+ os=vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs -- os=-vxworks -- ;; -- w65*) -- basic_machine=w65-wdc -- os=-none -- ;; -- w89k-*) -- basic_machine=hppa1.1-winbond -- os=-proelf -+ os=vxworks - ;; - xbox) - basic_machine=i686-pc -- os=-mingw32 -- ;; -- xps | xps100) -- basic_machine=xps100-honeywell -- ;; -- xscale-* | xscalee[bl]-*) -- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` -+ os=mingw32 - ;; - ymp) - basic_machine=ymp-cray -- os=-unicos -+ os=unicos - ;; -- z8k-*-coff) -- basic_machine=z8k-unknown -- os=-sim -- ;; -- z80-*-coff) -- basic_machine=z80-unknown -- os=-sim -+ *) -+ basic_machine=$1 -+ os= - ;; -- none) -- basic_machine=none-none -- os=-none -+ esac - ;; -+esac - -+# Decode 1-component or ad-hoc basic machines -+case $basic_machine in - # Here we handle the default manufacturer of certain CPU types. It is in - # some cases the only manufacturer, in others, it is the most popular. - w89k) -- basic_machine=hppa1.1-winbond -+ cpu=hppa1.1 -+ vendor=winbond - ;; - op50n) -- basic_machine=hppa1.1-oki -+ cpu=hppa1.1 -+ vendor=oki - ;; - op60c) -- basic_machine=hppa1.1-oki -+ cpu=hppa1.1 -+ vendor=oki - ;; -- romp) -- basic_machine=romp-ibm -+ ibm*) -+ cpu=i370 -+ vendor=ibm - ;; -- mmix) -- basic_machine=mmix-knuth -+ orion105) -+ cpu=clipper -+ vendor=highlevel - ;; -- rs6000) -- basic_machine=rs6000-ibm -+ mac | mpw | mac-mpw) -+ cpu=m68k -+ vendor=apple - ;; -- vax) -- basic_machine=vax-dec -+ pmac | pmac-mpw) -+ cpu=powerpc -+ vendor=apple - ;; -- pdp10) -- # there are many clones, so DEC is not a safe bet -- basic_machine=pdp10-unknown -+ -+ # Recognize the various machine names and aliases which stand -+ # for a CPU type and a company and sometimes even an OS. -+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) -+ cpu=m68000 -+ vendor=att - ;; -- pdp11) -- basic_machine=pdp11-dec -+ 3b*) -+ cpu=we32k -+ vendor=att - ;; -- we32k) -- basic_machine=we32k-att -+ bluegene*) -+ cpu=powerpc -+ vendor=ibm -+ os=cnk - ;; -- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) -- basic_machine=sh-unknown -+ decsystem10* | dec10*) -+ cpu=pdp10 -+ vendor=dec -+ os=tops10 - ;; -- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) -- basic_machine=sparc-sun -+ decsystem20* | dec20*) -+ cpu=pdp10 -+ vendor=dec -+ os=tops20 - ;; -- cydra) -- basic_machine=cydra-cydrome -+ delta | 3300 | motorola-3300 | motorola-delta \ -+ | 3300-motorola | delta-motorola) -+ cpu=m68k -+ vendor=motorola - ;; -- orion) -- basic_machine=orion-highlevel -+ dpx2*) -+ cpu=m68k -+ vendor=bull -+ os=sysv3 - ;; -- orion105) -- basic_machine=clipper-highlevel -+ encore | umax | mmax) -+ cpu=ns32k -+ vendor=encore - ;; -- mac | mpw | mac-mpw) -- basic_machine=m68k-apple -+ elxsi) -+ cpu=elxsi -+ vendor=elxsi -+ os=${os:-bsd} - ;; -- pmac | pmac-mpw) -- basic_machine=powerpc-apple -+ fx2800) -+ cpu=i860 -+ vendor=alliant -+ ;; -+ genix) -+ cpu=ns32k -+ vendor=ns -+ ;; -+ h3050r* | hiux*) -+ cpu=hppa1.1 -+ vendor=hitachi -+ os=hiuxwe2 -+ ;; -+ hp3k9[0-9][0-9] | hp9[0-9][0-9]) -+ cpu=hppa1.0 -+ vendor=hp -+ ;; -+ hp9k2[0-9][0-9] | hp9k31[0-9]) -+ cpu=m68000 -+ vendor=hp -+ ;; -+ hp9k3[2-9][0-9]) -+ cpu=m68k -+ vendor=hp -+ ;; -+ hp9k6[0-9][0-9] | hp6[0-9][0-9]) -+ cpu=hppa1.0 -+ vendor=hp -+ ;; -+ hp9k7[0-79][0-9] | hp7[0-79][0-9]) -+ cpu=hppa1.1 -+ vendor=hp -+ ;; -+ hp9k78[0-9] | hp78[0-9]) -+ # FIXME: really hppa2.0-hp -+ cpu=hppa1.1 -+ vendor=hp -+ ;; -+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) -+ # FIXME: really hppa2.0-hp -+ cpu=hppa1.1 -+ vendor=hp -+ ;; -+ hp9k8[0-9][13679] | hp8[0-9][13679]) -+ cpu=hppa1.1 -+ vendor=hp -+ ;; -+ hp9k8[0-9][0-9] | hp8[0-9][0-9]) -+ cpu=hppa1.0 -+ vendor=hp -+ ;; -+ i*86v32) -+ cpu=`echo "$1" | sed -e 's/86.*/86/'` -+ vendor=pc -+ os=sysv32 -+ ;; -+ i*86v4*) -+ cpu=`echo "$1" | sed -e 's/86.*/86/'` -+ vendor=pc -+ os=sysv4 -+ ;; -+ i*86v) -+ cpu=`echo "$1" | sed -e 's/86.*/86/'` -+ vendor=pc -+ os=sysv -+ ;; -+ i*86sol2) -+ cpu=`echo "$1" | sed -e 's/86.*/86/'` -+ vendor=pc -+ os=solaris2 -+ ;; -+ j90 | j90-cray) -+ cpu=j90 -+ vendor=cray -+ os=${os:-unicos} -+ ;; -+ iris | iris4d) -+ cpu=mips -+ vendor=sgi -+ case $os in -+ irix*) -+ ;; -+ *) -+ os=irix4 -+ ;; -+ esac -+ ;; -+ miniframe) -+ cpu=m68000 -+ vendor=convergent -+ ;; -+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) -+ cpu=m68k -+ vendor=atari -+ os=mint -+ ;; -+ news-3600 | risc-news) -+ cpu=mips -+ vendor=sony -+ os=newsos -+ ;; -+ next | m*-next) -+ cpu=m68k -+ vendor=next -+ case $os in -+ openstep*) -+ ;; -+ nextstep*) - ;; -- *-unknown) -- # Make sure to match an already-canonicalized machine name. -+ ns2*) -+ os=nextstep2 - ;; - *) -- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 -+ os=nextstep3 -+ ;; -+ esac -+ ;; -+ np1) -+ cpu=np1 -+ vendor=gould -+ ;; -+ op50n-* | op60c-*) -+ cpu=hppa1.1 -+ vendor=oki -+ os=proelf -+ ;; -+ pa-hitachi) -+ cpu=hppa1.1 -+ vendor=hitachi -+ os=hiuxwe2 -+ ;; -+ pbd) -+ cpu=sparc -+ vendor=tti -+ ;; -+ pbb) -+ cpu=m68k -+ vendor=tti -+ ;; -+ pc532) -+ cpu=ns32k -+ vendor=pc532 -+ ;; -+ pn) -+ cpu=pn -+ vendor=gould -+ ;; -+ power) -+ cpu=power -+ vendor=ibm -+ ;; -+ ps2) -+ cpu=i386 -+ vendor=ibm -+ ;; -+ rm[46]00) -+ cpu=mips -+ vendor=siemens -+ ;; -+ rtpc | rtpc-*) -+ cpu=romp -+ vendor=ibm -+ ;; -+ sde) -+ cpu=mipsisa32 -+ vendor=sde -+ os=${os:-elf} -+ ;; -+ simso-wrs) -+ cpu=sparclite -+ vendor=wrs -+ os=vxworks -+ ;; -+ tower | tower-32) -+ cpu=m68k -+ vendor=ncr -+ ;; -+ vpp*|vx|vx-*) -+ cpu=f301 -+ vendor=fujitsu -+ ;; -+ w65) -+ cpu=w65 -+ vendor=wdc -+ ;; -+ w89k-*) -+ cpu=hppa1.1 -+ vendor=winbond -+ os=proelf -+ ;; -+ none) -+ cpu=none -+ vendor=none -+ ;; -+ leon|leon[3-9]) -+ cpu=sparc -+ vendor=$basic_machine -+ ;; -+ leon-*|leon[3-9]-*) -+ cpu=sparc -+ vendor=`echo "$basic_machine" | sed 's/-.*//'` -+ ;; -+ -+ *-*) -+ # shellcheck disable=SC2162 -+ IFS="-" read cpu vendor <&2 - exit 1 - ;; - esac -+ ;; -+esac - - # Here we canonicalize certain aliases for manufacturers. --case $basic_machine in -- *-digital*) -- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` -+case $vendor in -+ digital*) -+ vendor=dec - ;; -- *-commodore*) -- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` -+ commodore*) -+ vendor=cbm - ;; - *) - ;; -@@ -1353,200 +1275,244 @@ - - # Decode manufacturer-specific aliases for certain operating systems. - --if [ x"$os" != x"" ] -+if [ x$os != x ] - then - case $os in -- # First match some system type aliases -- # that might get confused with valid system types. -- # -solaris* is a basic system type, with this one exception. -- -auroraux) -- os=-auroraux -+ # First match some system type aliases that might get confused -+ # with valid system types. -+ # solaris* is a basic system type, with this one exception. -+ auroraux) -+ os=auroraux - ;; -- -solaris1 | -solaris1.*) -- os=`echo $os | sed -e 's|solaris1|sunos4|'` -+ bluegene*) -+ os=cnk - ;; -- -solaris) -- os=-solaris2 -+ solaris1 | solaris1.*) -+ os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; -- -svr4*) -- os=-sysv4 -+ solaris) -+ os=solaris2 - ;; -- -unixware*) -- os=-sysv4.2uw -+ unixware*) -+ os=sysv4.2uw - ;; -- -gnu/linux*) -+ gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; -- # First accept the basic system types. -+ # es1800 is here to avoid being matched by es* (a different OS) -+ es1800*) -+ os=ose -+ ;; -+ # Some version numbers need modification -+ chorusos*) -+ os=chorusos -+ ;; -+ isc) -+ os=isc2.2 -+ ;; -+ sco6) -+ os=sco5v6 -+ ;; -+ sco5) -+ os=sco3.2v5 -+ ;; -+ sco4) -+ os=sco3.2v4 -+ ;; -+ sco3.2.[4-9]*) -+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` -+ ;; -+ sco3.2v[4-9]* | sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ ;; -+ scout) -+ # Don't match below -+ ;; -+ sco*) -+ os=sco3.2v2 -+ ;; -+ psos*) -+ os=psos -+ ;; -+ # Now accept the basic system types. - # 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* \ -- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ -- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ -- | -sym* | -kopensolaris* | -plan9* \ -- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* | -aros* | -cloudabi* | -sortix* \ -- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ -- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ -- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ -- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -- | -chorusos* | -chorusrdb* | -cegcc* \ -- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ -- | -linux-newlib* | -linux-musl* | -linux-uclibc* \ -- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ -- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ -- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ -- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ -- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ -- | -onefs* | -tirtos* | -phoenix*) -+ # 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* \ -+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ -+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ -+ | sym* | kopensolaris* | plan9* \ -+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ -+ | aos* | aros* | cloudabi* | sortix* | twizzler* \ -+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ -+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ -+ | knetbsd* | mirbsd* | netbsd* \ -+ | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ -+ | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ -+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ -+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ -+ | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ -+ | chorusrdb* | cegcc* | glidix* \ -+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ -+ | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ -+ | linux-newlib* | linux-musl* | linux-uclibc* \ -+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ -+ | interix* | uwin* | mks* | rhapsody* | darwin* \ -+ | openstep* | oskit* | conix* | pw32* | nonstopux* \ -+ | storm-chaos* | tops10* | tenex* | tops20* | its* \ -+ | os2* | vos* | palmos* | uclinux* | nucleus* \ -+ | morphos* | superux* | rtmk* | windiss* \ -+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ -+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ -+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ -+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ -+ | nsk* | powerunix* | genode*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; -- -qnx*) -- case $basic_machine in -- x86-* | i*86-*) -+ qnx*) -+ case $cpu in -+ x86 | i*86) - ;; - *) -- os=-nto$os -+ os=nto-$os - ;; - esac - ;; -- -nto-qnx*) -+ hiux*) -+ os=hiuxwe2 - ;; -- -nto*) -- os=`echo $os | sed -e 's|nto|nto-qnx|'` -+ nto-qnx*) - ;; -- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ -- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) -+ nto*) -+ os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; -- -mac*) -- os=`echo $os | sed -e 's|mac|macos|'` -+ sim | xray | os68k* | v88r* \ -+ | windows* | osx | abug | netware* | os9* \ -+ | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) - ;; -- -linux-dietlibc) -- os=-linux-dietlibc -+ linux-dietlibc) -+ os=linux-dietlibc - ;; -- -linux*) -+ linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; -- -sunos5*) -- os=`echo $os | sed -e 's|sunos5|solaris2|'` -+ lynx*178) -+ os=lynxos178 - ;; -- -sunos6*) -- os=`echo $os | sed -e 's|sunos6|solaris3|'` -+ lynx*5) -+ os=lynxos5 - ;; -- -opened*) -- os=-openedition -+ lynx*) -+ os=lynxos - ;; -- -os400*) -- os=-os400 -+ mac*) -+ os=`echo "$os" | sed -e 's|mac|macos|'` - ;; -- -wince*) -- os=-wince -+ opened*) -+ os=openedition - ;; -- -osfrose*) -- os=-osfrose -+ os400*) -+ os=os400 - ;; -- -osf*) -- os=-osf -+ sunos5*) -+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'` - ;; -- -utek*) -- os=-bsd -+ sunos6*) -+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'` - ;; -- -dynix*) -- os=-bsd -+ wince*) -+ os=wince - ;; -- -acis*) -- os=-aos -+ utek*) -+ os=bsd - ;; -- -atheos*) -- os=-atheos -+ dynix*) -+ os=bsd - ;; -- -syllable*) -- os=-syllable -+ acis*) -+ os=aos - ;; -- -386bsd) -- os=-bsd -+ atheos*) -+ os=atheos - ;; -- -ctix* | -uts*) -- os=-sysv -+ syllable*) -+ os=syllable - ;; -- -nova*) -- os=-rtmk-nova -+ 386bsd) -+ os=bsd - ;; -- -ns2 ) -- os=-nextstep2 -+ ctix* | uts*) -+ os=sysv - ;; -- -nsk*) -- os=-nsk -+ nova*) -+ os=rtmk-nova -+ ;; -+ ns2) -+ os=nextstep2 - ;; - # Preserve the version number of sinix5. -- -sinix5.*) -+ sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; -- -sinix*) -- os=-sysv4 -+ sinix*) -+ os=sysv4 - ;; -- -tpf*) -- os=-tpf -+ tpf*) -+ os=tpf - ;; -- -triton*) -- os=-sysv3 -+ triton*) -+ os=sysv3 - ;; -- -oss*) -- os=-sysv3 -+ oss*) -+ os=sysv3 - ;; -- -svr4) -- os=-sysv4 -+ svr4*) -+ os=sysv4 - ;; -- -svr3) -- os=-sysv3 -+ svr3) -+ os=sysv3 - ;; -- -sysvr4) -- os=-sysv4 -+ sysvr4) -+ os=sysv4 - ;; -- # This must come after -sysvr4. -- -sysv*) -+ # This must come after sysvr4. -+ sysv*) - ;; -- -ose*) -- os=-ose -+ ose*) -+ os=ose - ;; -- -es1800*) -- os=-ose -+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) -+ os=mint - ;; -- -xenix) -- os=-xenix -+ zvmoe) -+ os=zvmoe - ;; -- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) -- os=-mint -+ dicos*) -+ os=dicos - ;; -- -aros*) -- os=-aros -+ pikeos*) -+ # Until real need of OS specific support for -+ # particular features comes up, bare metal -+ # configurations are quite functional. -+ case $cpu in -+ arm*) -+ os=eabi - ;; -- -zvmoe) -- os=-zvmoe -+ *) -+ os=elf - ;; -- -dicos*) -- os=-dicos -+ esac - ;; -- -nacl*) -+ nacl*) - ;; -- -ios) -+ ios) -+ ;; -+ none) - ;; -- -none) -+ *-eabi) - ;; - *) -- # Get rid of the `-' at the beginning of $os. -- os=`echo $os | sed 's/[^-]*-//'` -- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 -+ echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 - exit 1 - ;; - esac -@@ -1562,261 +1528,265 @@ - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - --case $basic_machine in -+case $cpu-$vendor in - score-*) -- os=-elf -+ os=elf - ;; - spu-*) -- os=-elf -+ os=elf - ;; - *-acorn) -- os=-riscix1.2 -+ os=riscix1.2 - ;; - arm*-rebel) -- os=-linux -+ os=linux - ;; - arm*-semi) -- os=-aout -+ os=aout - ;; - c4x-* | tic4x-*) -- os=-coff -+ os=coff - ;; - c8051-*) -- os=-elf -+ os=elf -+ ;; -+ clipper-intergraph) -+ os=clix - ;; - hexagon-*) -- os=-elf -+ os=elf - ;; - tic54x-*) -- os=-coff -+ os=coff - ;; - tic55x-*) -- os=-coff -+ os=coff - ;; - tic6x-*) -- os=-coff -+ os=coff - ;; - # This must come before the *-dec entry. - pdp10-*) -- os=-tops20 -+ os=tops20 - ;; - pdp11-*) -- os=-none -+ os=none - ;; - *-dec | vax-*) -- os=-ultrix4.2 -+ os=ultrix4.2 - ;; - m68*-apollo) -- os=-domain -+ os=domain - ;; - i386-sun) -- os=-sunos4.0.2 -+ os=sunos4.0.2 - ;; - m68000-sun) -- os=-sunos3 -+ os=sunos3 - ;; - m68*-cisco) -- os=-aout -+ os=aout - ;; - mep-*) -- os=-elf -+ os=elf - ;; - mips*-cisco) -- os=-elf -+ os=elf - ;; - mips*-*) -- os=-elf -+ os=elf - ;; - or32-*) -- os=-coff -+ os=coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. -- os=-sysv3 -+ os=sysv3 - ;; - sparc-* | *-sun) -- os=-sunos4.1.1 -+ os=sunos4.1.1 - ;; -- *-be) -- os=-beos -+ pru-*) -+ os=elf - ;; -- *-haiku) -- os=-haiku -+ *-be) -+ os=beos - ;; - *-ibm) -- os=-aix -+ os=aix - ;; - *-knuth) -- os=-mmixware -+ os=mmixware - ;; - *-wec) -- os=-proelf -+ os=proelf - ;; - *-winbond) -- os=-proelf -+ os=proelf - ;; - *-oki) -- os=-proelf -+ os=proelf - ;; - *-hp) -- os=-hpux -+ os=hpux - ;; - *-hitachi) -- os=-hiux -+ os=hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) -- os=-sysv -+ os=sysv - ;; - *-cbm) -- os=-amigaos -+ os=amigaos - ;; - *-dg) -- os=-dgux -+ os=dgux - ;; - *-dolphin) -- os=-sysv3 -+ os=sysv3 - ;; - m68k-ccur) -- os=-rtu -+ os=rtu - ;; - m88k-omron*) -- os=-luna -+ os=luna - ;; - *-next ) -- os=-nextstep -+ os=nextstep - ;; - *-sequent) -- os=-ptx -+ os=ptx - ;; - *-crds) -- os=-unos -+ os=unos - ;; - *-ns) -- os=-genix -+ os=genix - ;; - i370-*) -- os=-mvs -- ;; -- *-next) -- os=-nextstep3 -+ os=mvs - ;; - *-gould) -- os=-sysv -+ os=sysv - ;; - *-highlevel) -- os=-bsd -+ os=bsd - ;; - *-encore) -- os=-bsd -+ os=bsd - ;; - *-sgi) -- os=-irix -+ os=irix - ;; - *-siemens) -- os=-sysv4 -+ os=sysv4 - ;; - *-masscomp) -- os=-rtu -+ os=rtu - ;; - f30[01]-fujitsu | f700-fujitsu) -- os=-uxpv -+ os=uxpv - ;; - *-rom68k) -- os=-coff -+ os=coff - ;; - *-*bug) -- os=-coff -+ os=coff - ;; - *-apple) -- os=-macos -+ os=macos - ;; - *-atari*) -- os=-mint -+ os=mint -+ ;; -+ *-wrs) -+ os=vxworks - ;; - *) -- os=-none -+ os=none - ;; - esac - fi - - # Here we handle the case where we know the os, and the CPU type, but not the - # manufacturer. We pick the logical manufacturer. --vendor=unknown --case $basic_machine in -- *-unknown) -+case $vendor in -+ unknown) - case $os in -- -riscix*) -+ riscix*) - vendor=acorn - ;; -- -sunos*) -+ sunos*) - vendor=sun - ;; -- -cnk*|-aix*) -+ cnk*|-aix*) - vendor=ibm - ;; -- -beos*) -+ beos*) - vendor=be - ;; -- -hpux*) -+ hpux*) - vendor=hp - ;; -- -mpeix*) -+ mpeix*) - vendor=hp - ;; -- -hiux*) -+ hiux*) - vendor=hitachi - ;; -- -unos*) -+ unos*) - vendor=crds - ;; -- -dgux*) -+ dgux*) - vendor=dg - ;; -- -luna*) -+ luna*) - vendor=omron - ;; -- -genix*) -+ genix*) - vendor=ns - ;; -- -mvs* | -opened*) -+ clix*) -+ vendor=intergraph -+ ;; -+ mvs* | opened*) - vendor=ibm - ;; -- -os400*) -+ os400*) - vendor=ibm - ;; -- -ptx*) -+ ptx*) - vendor=sequent - ;; -- -tpf*) -+ tpf*) - vendor=ibm - ;; -- -vxsim* | -vxworks* | -windiss*) -+ vxsim* | vxworks* | windiss*) - vendor=wrs - ;; -- -aux*) -+ aux*) - vendor=apple - ;; -- -hms*) -+ hms*) - vendor=hitachi - ;; -- -mpw* | -macos*) -+ mpw* | macos*) - vendor=apple - ;; -- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) -+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) - vendor=atari - ;; -- -vos*) -+ vos*) - vendor=stratus - ;; - esac -- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - --echo $basic_machine$os -+echo "$cpu-$vendor-$os" - exit - - # Local variables: --# eval: (add-hook 'write-file-hooks 'time-stamp) -+# eval: (add-hook 'before-save-hook 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" diff --git a/recipes/libs/liborbital/recipe.toml b/recipes/libs/liborbital/recipe.toml index 0276ea61e..469d57f10 100644 --- a/recipes/libs/liborbital/recipe.toml +++ b/recipes/libs/liborbital/recipe.toml @@ -4,8 +4,9 @@ git = "https://gitlab.redox-os.org/redox-os/liborbital.git" [build] template = "custom" script = """ -DYNAMIC_INIT +DYNAMIC_STATIC_INIT rsync -av --delete "${COOKBOOK_SOURCE}/" ./ "${COOKBOOK_CARGO}" build --release -"${COOKBOOK_MAKE}" install HOST="${TARGET}" DESTDIR="${COOKBOOK_STAGE}" +# 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 index d516a8571..cd413dafd 100644 --- a/recipes/libs/libpng/recipe.toml +++ b/recipes/libs/libpng/recipe.toml @@ -12,12 +12,6 @@ autotools_recursive_regenerate template = "custom" dependencies = ["zlib"] script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE_FLAGS=( - --host="${GNU_TARGET}" - --prefix="/usr" - --enable-shared - --enable-static -) +DYNAMIC_STATIC_INIT cookbook_configure """ diff --git a/recipes/libs/libuv/recipe.toml b/recipes/libs/libuv/recipe.toml index dcef35ca4..23b563c32 100644 --- a/recipes/libs/libuv/recipe.toml +++ b/recipes/libs/libuv/recipe.toml @@ -1,6 +1,6 @@ [source] -tar = "https://dist.libuv.org/dist/v1.45.0/libuv-v1.45.0.tar.gz" -blake3 = "b78eaba37bfa5fea75accc6d70c67358a4d0b6bb2dfb79b9bb17cb5478cdf797" +tar = "https://dist.libuv.org/dist/v1.51.0/libuv-v1.51.0.tar.gz" +blake3 = "e8b5e68bc2d0776ac4ea67df59d694fca58d5cc570c103443a2284e723d01fc2" patches = ["redox.patch"] [build] @@ -8,7 +8,7 @@ template = "custom" script = """ DYNAMIC_INIT -COOKBOOK_CMAKE_FLAGS=( +COOKBOOK_CMAKE_FLAGS+=( -DBUILD_TESTING=Off ) cookbook_cmake diff --git a/recipes/libs/libuv/redox.patch b/recipes/libs/libuv/redox.patch index c3f0bf27f..a99c1c54e 100644 --- a/recipes/libs/libuv/redox.patch +++ b/recipes/libs/libuv/redox.patch @@ -1,12 +1,12 @@ diff -ruwN source/CMakeLists.txt source-new/CMakeLists.txt ---- source/CMakeLists.txt 2023-05-19 18:21:01.000000000 +0700 -+++ source-new/CMakeLists.txt 2025-07-22 01:48:56.591286953 +0700 +--- 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.4) + cmake_minimum_required(VERSION 3.10) if(POLICY CMP0091) -@@ -312,6 +313,17 @@ +@@ -323,6 +324,18 @@ src/unix/hurd.c) endif() @@ -18,6 +18,7 @@ diff -ruwN source/CMakeLists.txt source-new/CMakeLists.txt + src/unix/proctitle.c + src/unix/posix-hrtime.c + src/unix/posix-poll.c ++ src/unix/redox.c + ) +endif() + @@ -25,8 +26,8 @@ diff -ruwN source/CMakeLists.txt source-new/CMakeLists.txt 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 2023-05-19 18:21:01.000000000 +0700 -+++ source-new/include/uv/unix.h 2025-07-22 01:53:54.941276543 +0700 +--- 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__) || \ @@ -36,9 +37,9 @@ diff -ruwN source/include/uv/unix.h source-new/include/uv/unix.h # include "uv/posix.h" #endif diff -ruwN source/src/unix/core.c source-new/src/unix/core.c ---- source/src/unix/core.c 2023-05-19 18:21:01.000000000 +0700 -+++ source-new/src/unix/core.c 2025-07-21 22:55:16.826444959 +0700 -@@ -97,6 +97,10 @@ +--- 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 @@ -49,7 +50,7 @@ diff -ruwN source/src/unix/core.c source-new/src/unix/core.c static void uv__run_pending(uv_loop_t* loop); /* Verify that uv_buf_t is ABI-compatible with struct iovec. */ -@@ -709,7 +713,8 @@ +@@ -722,7 +726,8 @@ defined(__FreeBSD__) || \ defined(__NetBSD__) || \ defined(__OpenBSD__) || \ @@ -59,10 +60,39 @@ diff -ruwN source/src/unix/core.c source-new/src/unix/core.c 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 2023-05-19 18:21:01.000000000 +0700 -+++ source-new/src/unix/fs.c 2025-07-21 22:55:16.826444959 +0700 -@@ -87,7 +87,8 @@ +--- 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__) || \ @@ -72,7 +102,7 @@ diff -ruwN source/src/unix/fs.c source-new/src/unix/fs.c # include #else # include -@@ -648,13 +649,13 @@ +@@ -683,13 +684,13 @@ defined(__MVS__) || \ defined(__NetBSD__) || \ defined(__HAIKU__) || \ @@ -88,7 +118,7 @@ diff -ruwN source/src/unix/fs.c source-new/src/unix/fs.c if (0 != statfs(req->path, &buf)) #endif /* defined(__sun) */ return -1; -@@ -670,7 +671,8 @@ +@@ -705,7 +706,8 @@ defined(__OpenBSD__) || \ defined(__NetBSD__) || \ defined(__HAIKU__) || \ @@ -99,8 +129,8 @@ diff -ruwN source/src/unix/fs.c source-new/src/unix/fs.c #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 2023-05-19 18:21:01.000000000 +0700 -+++ source-new/src/unix/proctitle.c 2025-07-22 02:10:12.760625178 +0700 +--- 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(). */ }; @@ -115,9 +145,115 @@ diff -ruwN source/src/unix/proctitle.c source-new/src/unix/proctitle.c 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 2023-05-19 18:21:01.000000000 +0700 -+++ source-new/src/unix/stream.c 2025-07-21 22:55:16.826444959 +0700 +--- 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 @@ -149,9 +285,59 @@ diff -ruwN source/src/unix/stream.c source-new/src/unix/stream.c 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 2023-05-19 18:21:01.000000000 +0700 -+++ source-new/src/unix/udp.c 2025-07-21 22:55:16.826444959 +0700 +--- 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 diff --git a/recipes/libs/libxml2/recipe.toml b/recipes/libs/libxml2/recipe.toml index 4e4b936da..f37f42966 100644 --- a/recipes/libs/libxml2/recipe.toml +++ b/recipes/libs/libxml2/recipe.toml @@ -13,12 +13,8 @@ dependencies = [ "zlib" ] script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE_FLAGS=( - --host="${GNU_TARGET}" - --prefix="/usr" - --enable-shared - --enable-static +DYNAMIC_STATIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( --without-python ) cookbook_configure diff --git a/recipes/libs/luv/recipe.toml b/recipes/libs/luv/recipe.toml index 2d8b08253..ed5a3b877 100644 --- a/recipes/libs/luv/recipe.toml +++ b/recipes/libs/luv/recipe.toml @@ -3,25 +3,15 @@ git = "https://github.com/luvit/luv.git" [build] template = "custom" dependencies = [ - "lua54", "libuv", - "lua-compat-53" + "luajit" ] script = """ -COOKBOOK_CONFIGURE="cmake" -COOKBOOK_CONFIGURE_FLAGS=( - -DBUILD_MODULE=OFF - -DBUILD_STATIC_LIBS=ON - -DWITH_SHARED_LIBUV=ON - -DWITH_LUA_ENGINE=Lua +DYNAMIC_INIT +COOKBOOK_CMAKE_FLAGS+=( + -DWITH_LUA_ENGINE=Luajit -DLUA_BUILD_TYPE=System - -DLUA_COMPAT53_DIR="${COOKBOOK_SYSROOT}/bin" - -DCMAKE_BUILD_TYPE=RelWithDebInfo - -DLIBUV_LIBRARIES="${COOKBOOK_SYSROOT}/usr/lib/libuv.a" - -DLIBUV_INCLUDE_DIR="${COOKBOOK_SYSROOT}/usr/include" - -DLUA_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include" - -DLUV_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include" -"${COOKBOOK_SOURCE}" + -DWITH_SHARED_LIBUV=On ) -cookbook_configure +cookbook_cmake """ diff --git a/recipes/libs/mesa/recipe.toml b/recipes/libs/mesa/recipe.toml index d581c1b31..596010812 100644 --- a/recipes/libs/mesa/recipe.toml +++ b/recipes/libs/mesa/recipe.toml @@ -17,27 +17,19 @@ export CFLAGS+=" -DHAVE_PTHREAD=1" export CPPFLAGS+=" -DHAVE_PTHREAD=1" export LLVM_CONFIG="${TARGET}-llvm-config" -if [[ -n "${COOKBOOK_PREFER_STATIC}" ]]; then - export LDFLAGS+=" --static" - export DEFAULTLIB="static" - export LLVMSHARED="disabled" +if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then + COOKBOOK_MESON_FLAGS+=(-Dshared-llvm=enabled) else - export DEFAULTLIB="shared" - export LLVMSHARED="enabled" + COOKBOOK_MESON_FLAGS+=(-Dshared-llvm=disabled) fi -COOKBOOK_MESON_FLAGS=( - -Ddefault_library="${DEFAULTLIB}" - -Dglx=disabled - -Dllvm=enabled - -Dosmesa=true - -Dplatforms= - -Dshader-cache=disabled - -Dshared-llvm="${LLVMSHARED}" +cookbook_meson \ + -Dglx=disabled \ + -Dllvm=enabled \ + -Dosmesa=true \ + -Dplatforms= \ + -Dshader-cache=disabled \ -Dshared-glapi=disabled -) - -cookbook_meson # Hack to add LLVM libs #TODO: only add necessary LLVM libs, not all of them diff --git a/recipes/libs/ncurses/recipe.toml b/recipes/libs/ncurses/recipe.toml index ff2e30688..87fc7479c 100644 --- a/recipes/libs/ncurses/recipe.toml +++ b/recipes/libs/ncurses/recipe.toml @@ -1,6 +1,9 @@ [source] tar = "https://ftp.gnu.org/gnu/ncurses/ncurses-6.4.tar.gz" blake3 = "0d1c9fdf53c0ca4bd66ba707d49a079d2dd6f5a960cdec74a56e29952c4ffe73" +patches = [ + "redox.patch" +] [build] template = "custom" @@ -10,12 +13,15 @@ COOKBOOK_CONFIGURE_FLAGS+=( --disable-db-install --disable-stripping --without-ada - --without-cxx-binding + --without-manpages --without-tests cf_cv_func_mkstemp=yes ) +if [ "${COOKBOOK_DYNAMIC}" == "1" ] +then + COOKBOOK_CONFIGURE_FLAGS+=(--with-shared) +fi cookbook_configure -rm -rfv "${COOKBOOK_STAGE}/bin" "${COOKBOOK_STAGE}/share/"{doc,info,man} """ [package] 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 index f1733fe43..a697aabe6 100644 --- a/recipes/libs/ncursesw/recipe.toml +++ b/recipes/libs/ncursesw/recipe.toml @@ -1,22 +1,27 @@ [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-ext-colors + --disable-stripping --enable-widec --without-ada - --without-cxx-binding + --without-manpages --without-tests + --with-shared cf_cv_func_mkstemp=yes cf_cv_wint_t=yes ) cookbook_configure -rm -rfv "${COOKBOOK_STAGE}/bin" "${COOKBOOK_STAGE}/share/"{doc,info,man} """ [package] diff --git a/recipes/libs/ncursesw/redox.patch b/recipes/libs/ncursesw/redox.patch new file mode 100644 index 000000000..b446db168 --- /dev/null +++ b/recipes/libs/ncursesw/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/openssl1/recipe.toml b/recipes/libs/openssl1/recipe.toml index 6b01054b1..ea2cb08f2 100644 --- a/recipes/libs/openssl1/recipe.toml +++ b/recipes/libs/openssl1/recipe.toml @@ -10,11 +10,12 @@ ARCH="${TARGET%%-*}" COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/Configure" COOKBOOK_CONFIGURE_FLAGS=( shared + threads no-dgram "redox-${ARCH}" --prefix="/" ) -export CC="${CC_WRAPPER} ${TARGET}-gcc" +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}" diff --git a/recipes/libs/pcre/recipe.toml b/recipes/libs/pcre/recipe.toml index bf12da075..773c8f48c 100644 --- a/recipes/libs/pcre/recipe.toml +++ b/recipes/libs/pcre/recipe.toml @@ -12,12 +12,6 @@ patches = [ [build] template = "custom" script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE_FLAGS=( - --host="${GNU_TARGET}" - --prefix="/usr" - --enable-shared - --enable-static -) +DYNAMIC_STATIC_INIT cookbook_configure """ diff --git a/recipes/libs/pcre2/recipe.toml b/recipes/libs/pcre2/recipe.toml index 176f992ce..09c4d86b0 100644 --- a/recipes/libs/pcre2/recipe.toml +++ b/recipes/libs/pcre2/recipe.toml @@ -9,12 +9,6 @@ autotools_recursive_regenerate [build] template = "custom" script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE_FLAGS=( - --host="${GNU_TARGET}" - --prefix="/usr" - --enable-shared - --enable-static -) +DYNAMIC_STATIC_INIT cookbook_configure """ diff --git a/recipes/libs/readline/recipe.toml b/recipes/libs/readline/recipe.toml index c4a707792..35a30f597 100644 --- a/recipes/libs/readline/recipe.toml +++ b/recipes/libs/readline/recipe.toml @@ -6,7 +6,13 @@ patches = [ ] [build] -template = "configure" -depends = [ +template = "custom" +dependencies = [ "ncurses", ] +script = """ +DYNAMIC_INIT +cookbook_configure +ln -s "libhistory.so.7" "${COOKBOOK_STAGE}"/usr/lib/libhistory.so +ln -s "libreadline.so.7" "${COOKBOOK_STAGE}"/usr/lib/libreadline.so +""" diff --git a/recipes/libs/sdl-gfx/recipe.toml b/recipes/libs/sdl-gfx/recipe.toml index 1ba2b3542..540b8d158 100644 --- a/recipes/libs/sdl-gfx/recipe.toml +++ b/recipes/libs/sdl-gfx/recipe.toml @@ -14,9 +14,6 @@ dependencies = [ "libiconv", ] script = """ -export CFLAGS="-I${COOKBOOK_SYSROOT}/include" -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib" - COOKBOOK_CONFIGURE_FLAGS=( --prefix=/ --build="$(gcc -dumpmachine)" diff --git a/recipes/libs/sdl1-ttf/recipe.toml b/recipes/libs/sdl1-ttf/recipe.toml index 7c335b023..4d0280e6e 100644 --- a/recipes/libs/sdl1-ttf/recipe.toml +++ b/recipes/libs/sdl1-ttf/recipe.toml @@ -16,8 +16,7 @@ dependencies = [ "zlib", ] script = """ -export CFLAGS="-I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/freetype2" -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib" +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/freetype2" COOKBOOK_CONFIGURE_FLAGS=( --prefix=/ diff --git a/recipes/libs/sdl2/recipe.toml b/recipes/libs/sdl2/recipe.toml index 9cc943ac2..bef94c0a2 100644 --- a/recipes/libs/sdl2/recipe.toml +++ b/recipes/libs/sdl2/recipe.toml @@ -12,7 +12,7 @@ dependencies = [ ] script = """ DYNAMIC_INIT -export LDFLAGS="$LDFLAGS -lorbital -lOSMesa -lstdc++" +export LDFLAGS="${LDFLAGS} -lorbital -lOSMesa -lstdc++" COOKBOOK_CONFIGURE_FLAGS+=( --disable-pulseaudio --disable-video-x11 diff --git a/recipes/libs/zlib/recipe.toml b/recipes/libs/zlib/recipe.toml index 865247ba4..626018c72 100644 --- a/recipes/libs/zlib/recipe.toml +++ b/recipes/libs/zlib/recipe.toml @@ -6,9 +6,20 @@ blake3 = "ec1abc6f672a7a6ee6f49ba544cc9529f73121b478310473be44fee22a140ebf" 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. -CHOST="${TARGET}" "${COOKBOOK_CONFIGURE}" --prefix="/usr" +env CHOST="${TARGET}" "${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" "${COOKBOOK_MAKE}" -j "$(nproc)" "${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" -patchelf --set-soname 'libz.so.1.3' "${COOKBOOK_STAGE}/usr/lib/libz.so.1.3" +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/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/wip/ssh/openssh/redox.patch b/recipes/net/openssh/redox.patch similarity index 51% rename from recipes/wip/ssh/openssh/redox.patch rename to recipes/net/openssh/redox.patch index e1b43cae3..a061b1735 100644 --- a/recipes/wip/ssh/openssh/redox.patch +++ b/recipes/net/openssh/redox.patch @@ -1,6 +1,20 @@ +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-08-20 13:37:45.820728226 +0700 ++++ source-new/defines.h 2025-09-07 01:35:40.209700338 +0700 @@ -52,6 +52,18 @@ #define IPPORT_RESERVED 0 #endif @@ -51,7 +65,7 @@ diff -ruwN source/defines.h source-new/defines.h #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-08-20 11:51:28.964103232 +0700 ++++ source-new/hostfile.c 2025-09-06 21:09:36.555438339 +0700 @@ -44,7 +44,9 @@ #include @@ -64,7 +78,7 @@ diff -ruwN source/hostfile.c source-new/hostfile.c #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-08-20 13:43:02.970560664 +0700 ++++ source-new/loginrec.c 2025-09-06 21:09:36.556438304 +0700 @@ -1033,7 +1033,7 @@ return (0); } @@ -76,7 +90,7 @@ diff -ruwN source/loginrec.c source-new/loginrec.c } 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-08-20 13:39:08.570682776 +0700 ++++ source-new/loginrec.h 2025-09-06 21:09:36.556438304 +0700 @@ -30,6 +30,7 @@ **/ @@ -85,9 +99,55 @@ diff -ruwN source/loginrec.h source-new/loginrec.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-08-20 13:37:42.000730245 +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 @@ -104,7 +164,7 @@ diff -ruwN source/openbsd-compat/bsd-statvfs.h source-new/openbsd-compat/bsd-sta 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-08-20 13:51:15.020299084 +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) @@ -232,7 +292,7 @@ diff -ruwN source/openbsd-compat/getrrsetbyname.c source-new/openbsd-compat/getr 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-08-20 11:51:00.744118526 +0700 ++++ source-new/openbsd-compat/getrrsetbyname.h 2025-09-06 21:09:36.557438268 +0700 @@ -54,9 +54,13 @@ #include @@ -249,7 +309,7 @@ diff -ruwN source/openbsd-compat/getrrsetbyname.h source-new/openbsd-compat/getr #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-08-20 11:39:15.244488902 +0700 ++++ source-new/openbsd-compat/inet_ntop.c 2025-09-06 21:09:36.557438268 +0700 @@ -26,7 +26,9 @@ #include #include @@ -262,7 +322,7 @@ diff -ruwN source/openbsd-compat/inet_ntop.c source-new/openbsd-compat/inet_ntop #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-08-20 13:15:22.721439992 +0700 ++++ source-new/openbsd-compat/openbsd-compat.h 2025-09-06 21:09:36.557438268 +0700 @@ -36,6 +36,8 @@ #include /* for wchar_t */ @@ -274,7 +334,7 @@ diff -ruwN source/openbsd-compat/openbsd-compat.h source-new/openbsd-compat/open #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-08-20 13:13:54.971486065 +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 @@ -292,7 +352,7 @@ diff -ruwN source/openbsd-compat/utmpx.c source-new/openbsd-compat/utmpx.c \ 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-08-20 13:13:07.201511825 +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 @@ -364,9 +424,31 @@ diff -ruwN source/openbsd-compat/utmpx.h source-new/openbsd-compat/utmpx.h +#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-08-20 11:50:49.164126484 +0700 ++++ source-new/regress/netcat.c 2025-09-06 21:09:36.558438233 +0700 @@ -1384,7 +1384,9 @@ #include #include @@ -377,9 +459,41 @@ diff -ruwN source/regress/netcat.c source-new/regress/netcat.c #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-08-20 11:51:17.444108963 +0700 ++++ source-new/sshbuf-misc.c 2025-09-06 21:09:36.559438198 +0700 @@ -28,7 +28,9 @@ #include #include @@ -390,9 +504,112 @@ diff -ruwN source/sshbuf-misc.c source-new/sshbuf-misc.c #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-08-20 11:50:36.114133643 +0700 ++++ source-new/sshkey.c 2025-09-06 21:09:36.567437916 +0700 @@ -43,7 +43,9 @@ #include #include @@ -403,3 +620,67 @@ diff -ruwN source/sshkey.c source-new/sshkey.c #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/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/cookbook/recipe.toml b/recipes/other/cookbook/recipe.toml new file mode 100644 index 000000000..9b24639a5 --- /dev/null +++ b/recipes/other/cookbook/recipe.toml @@ -0,0 +1,28 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/cookbook.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", + "git", + "gnu-make", + "libtool", + "patch", + "pkg-config", + "pkgar", + "sed", + "wget", +] diff --git a/recipes/shells/bash/redox.patch b/recipes/shells/bash/redox.patch index b0aefafb2..bc238aea7 100644 --- a/recipes/shells/bash/redox.patch +++ b/recipes/shells/bash/redox.patch @@ -1,6 +1,6 @@ -diff -ruwN bash-5.2.15/bashline.c source/bashline.c ---- bash-5.2.15/bashline.c 2022-04-17 15:37:12.000000000 -0700 -+++ source/bashline.c 2024-12-05 16:04:07.566380980 -0800 +diff -ruwN source/bashline.c source-new/bashline.c +--- source/bashline.c 2022-04-18 05:37:12.000000000 +0700 ++++ source-new/bashline.c 2025-09-01 04:36:35.272926519 +0700 @@ -2645,7 +2645,7 @@ const char *text; int state; @@ -10,9 +10,9 @@ diff -ruwN bash-5.2.15/bashline.c source/bashline.c return ((char *)NULL); #else static char *gname = (char *)NULL; -diff -ruwN bash-5.2.15/builtins/ulimit.def source/builtins/ulimit.def ---- bash-5.2.15/builtins/ulimit.def 2021-11-05 06:19:53.000000000 -0700 -+++ source/builtins/ulimit.def 2024-12-05 16:04:07.567380980 -0800 +diff -ruwN source/builtins/ulimit.def source-new/builtins/ulimit.def +--- source/builtins/ulimit.def 2021-11-05 20:19:53.000000000 +0700 ++++ source-new/builtins/ulimit.def 2025-09-01 04:36:35.272926519 +0700 @@ -609,7 +609,7 @@ } else @@ -22,38 +22,9 @@ diff -ruwN bash-5.2.15/builtins/ulimit.def source/builtins/ulimit.def if (getrlimit (limits[ind].parameter, &limit) < 0) return -1; # if defined (HPUX9) -diff -ruwN bash-5.2.15/config-top.h source/config-top.h ---- bash-5.2.15/config-top.h 2021-11-05 06:11:12.000000000 -0700 -+++ source/config-top.h 2024-12-06 01:06:18.324586528 -0800 -@@ -63,24 +63,24 @@ - /* The default value of the PATH variable. */ - #ifndef DEFAULT_PATH_VALUE - #define DEFAULT_PATH_VALUE \ -- "/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:." -+ "/usr/local/bin;/usr/local/sbin;/usr/bin;/usr/sbin;/bin;/sbin;." - #endif - - /* If you want to unconditionally set a value for PATH in every restricted - shell, set this. */ --/* #define RBASH_STATIC_PATH_VALUE "/rbin:/usr/rbin" */ -+/* #define RBASH_STATIC_PATH_VALUE "/rbin;/usr/rbin" */ - - /* The value for PATH when invoking `command -p'. This is only used when - the Posix.2 confstr () function, or CS_PATH define are not present. */ - #ifndef STANDARD_UTILS_PATH - #define STANDARD_UTILS_PATH \ -- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" -+ "/bin;/usr/bin;/sbin;/usr/sbin;/etc;/usr/etc" - #endif - - /* The default path for enable -f */ - #ifndef DEFAULT_LOADABLE_BUILTINS_PATH - #define DEFAULT_LOADABLE_BUILTINS_PATH \ -- "/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:." -+ "/usr/local/lib/bash;/usr/lib/bash;/opt/local/lib/bash;/usr/pkg/lib/bash;/opt/pkg/lib/bash;." - #endif - - /* Default primary and secondary prompt strings. */ +diff -ruwN source/config-top.h source-new/config-top.h +--- source/config-top.h 2021-11-05 20:11:12.000000000 +0700 ++++ source-new/config-top.h 2025-09-19 21:55:55.439030906 +0700 @@ -199,3 +199,6 @@ /* Undefine or define to 0 if you don't want to allow associative array assignment using a compound list of key-value pairs. */ @@ -61,9 +32,9 @@ diff -ruwN bash-5.2.15/config-top.h source/config-top.h + +/* Don't check for a valid inode number when pattern matching on Redox */ +#define BROKEN_DIRENT_D_INO 1 -diff -ruwN bash-5.2.15/configure source/configure ---- bash-5.2.15/configure 2022-09-23 07:13:22.000000000 -0700 -+++ source/configure 2024-12-05 16:06:32.812286102 -0800 +diff -ruwN source/configure source-new/configure +--- source/configure 2022-09-23 21:13:22.000000000 +0700 ++++ source-new/configure 2025-09-01 04:52:47.542177017 +0700 @@ -3298,6 +3298,7 @@ *-nsk*) opt_bash_malloc=no ;; # HP NonStop *-haiku*) opt_bash_malloc=no ;; # Haiku OS @@ -72,9 +43,9 @@ diff -ruwN bash-5.2.15/configure source/configure esac # memory scrambling on free() -diff -ruwN bash-5.2.15/configure.ac source/configure.ac ---- bash-5.2.15/configure.ac 2022-09-23 07:12:27.000000000 -0700 -+++ source/configure.ac 2024-12-05 16:04:07.571380977 -0800 +diff -ruwN source/configure.ac source-new/configure.ac +--- source/configure.ac 2022-09-23 21:12:27.000000000 +0700 ++++ source-new/configure.ac 2025-09-01 04:36:35.275926660 +0700 @@ -92,6 +92,7 @@ *-nsk*) opt_bash_malloc=no ;; # HP NonStop *-haiku*) opt_bash_malloc=no ;; # Haiku OS @@ -83,9 +54,9 @@ diff -ruwN bash-5.2.15/configure.ac source/configure.ac esac # memory scrambling on free() -diff -ruwN bash-5.2.15/execute_cmd.c source/execute_cmd.c ---- bash-5.2.15/execute_cmd.c 2022-12-13 09:09:02.000000000 -0800 -+++ source/execute_cmd.c 2024-12-05 16:04:07.573380976 -0800 +diff -ruwN source/execute_cmd.c source-new/execute_cmd.c +--- source/execute_cmd.c 2022-12-14 00:09:02.000000000 +0700 ++++ source-new/execute_cmd.c 2025-09-01 04:36:35.275926660 +0700 @@ -1379,11 +1379,11 @@ nullcmd = (command == 0) || (command->type == cm_simple && command->value.Simple->words == 0 && command->value.Simple->redirects == 0); if (posixly_correct && nullcmd) @@ -100,9 +71,9 @@ diff -ruwN bash-5.2.15/execute_cmd.c source/execute_cmd.c before.tms_utime = before.tms_stime = before.tms_cutime = before.tms_cstime = 0; tbefore = shell_start_time; #endif -diff -ruwN bash-5.2.15/general.c source/general.c ---- bash-5.2.15/general.c 2022-11-23 14:10:12.000000000 -0800 -+++ source/general.c 2024-12-05 16:04:07.574380975 -0800 +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 () @@ -119,22 +90,9 @@ diff -ruwN bash-5.2.15/general.c source/general.c } /* Return 1 if PATH1 and PATH2 are the same file. This is kind of -@@ -1031,10 +1033,10 @@ - `:'. If I is 0, then the path has a leading colon. Trailing colons - are handled OK by the `else' part of the if statement; an empty - string is returned in that case. */ -- if (i && string[i] == ':') -+ if (i && string[i] == ';') - i++; - -- for (start = i; string[i] && string[i] != ':'; i++) -+ for (start = i; string[i] && string[i] != ';'; i++) - ; - - *p_index = i; -diff -ruwN bash-5.2.15/include/posixwait.h source/include/posixwait.h ---- bash-5.2.15/include/posixwait.h 2019-03-29 10:25:52.000000000 -0700 -+++ source/include/posixwait.h 2024-12-05 16:04:07.574380975 -0800 +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 @@ -153,9 +111,9 @@ diff -ruwN bash-5.2.15/include/posixwait.h source/include/posixwait.h # if !defined (WSTOPSIG) # define WSTOPSIG(s) ((s) >> 8) -diff -ruwN bash-5.2.15/lib/readline/input.c source/lib/readline/input.c ---- bash-5.2.15/lib/readline/input.c 2022-04-08 12:43:24.000000000 -0700 -+++ source/lib/readline/input.c 2024-12-05 16:04:07.575380974 -0800 +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; @@ -165,9 +123,9 @@ diff -ruwN bash-5.2.15/lib/readline/input.c source/lib/readline/input.c sigset_t empty_set; fd_set readfds; #endif -diff -ruwN bash-5.2.15/lib/readline/terminal.c source/lib/readline/terminal.c ---- bash-5.2.15/lib/readline/terminal.c 2022-04-05 07:44:17.000000000 -0700 -+++ source/lib/readline/terminal.c 2024-12-05 16:04:07.575380974 -0800 +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; @@ -177,9 +135,9 @@ diff -ruwN bash-5.2.15/lib/readline/terminal.c source/lib/readline/terminal.c # if defined (__EMX__) || defined (NEED_EXTERN_PC) extern # endif /* __EMX__ || NEED_EXTERN_PC */ -diff -ruwN bash-5.2.15/lib/sh/getcwd.c source/lib/sh/getcwd.c ---- bash-5.2.15/lib/sh/getcwd.c 2012-03-10 07:48:50.000000000 -0800 -+++ source/lib/sh/getcwd.c 2024-12-05 16:04:07.575380974 -0800 +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 @@ -189,9 +147,9 @@ diff -ruwN bash-5.2.15/lib/sh/getcwd.c source/lib/sh/getcwd.c #if !defined (__GNUC__) && !defined (HAVE_ALLOCA_H) && defined (_AIX) #pragma alloca -diff -ruwN bash-5.2.15/lib/sh/input_avail.c source/lib/sh/input_avail.c ---- bash-5.2.15/lib/sh/input_avail.c 2021-05-24 08:16:33.000000000 -0700 -+++ source/lib/sh/input_avail.c 2024-12-05 16:04:07.576380974 -0800 +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 */ @@ -201,9 +159,9 @@ diff -ruwN bash-5.2.15/lib/sh/input_avail.c source/lib/sh/input_avail.c # include #endif -diff -ruwN bash-5.2.15/lib/sh/strtoimax.c source/lib/sh/strtoimax.c ---- bash-5.2.15/lib/sh/strtoimax.c 2021-09-10 07:32:35.000000000 -0700 -+++ source/lib/sh/strtoimax.c 2024-12-05 16:04:07.576380974 -0800 +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 @@ -222,9 +180,9 @@ diff -ruwN bash-5.2.15/lib/sh/strtoimax.c source/lib/sh/strtoimax.c #ifdef TESTING # include int -diff -ruwN bash-5.2.15/parse.y source/parse.y ---- bash-5.2.15/parse.y 2022-12-13 09:09:02.000000000 -0800 -+++ source/parse.y 2024-12-05 16:04:07.577380973 -0800 +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 @@ -241,9 +199,9 @@ diff -ruwN bash-5.2.15/parse.y source/parse.y return ' '; /* END_ALIAS */ } #endif -diff -ruwN bash-5.2.15/y.tab.c source/y.tab.c ---- bash-5.2.15/y.tab.c 2022-12-13 09:09:02.000000000 -0800 -+++ source/y.tab.c 2024-12-05 16:04:07.579380972 -0800 +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 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.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/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 index 6aecb889c..3ff2cb7e7 100644 --- a/recipes/tests/openposixtestsuite/recipe.toml +++ b/recipes/tests/openposixtestsuite/recipe.toml @@ -1,11 +1,19 @@ [source] -git = "https://gitlab.redox-os.org/rw_van/openposixtestsuite.git" +git = "https://gitlab.redox-os.org/redox-os/openposixtestsuite.git" branch = "redox" [build] template = "custom" script = """ -rsync -av --delete "${COOKBOOK_SOURCE}/" ./ -mkdir -pv "${COOKBOOK_STAGE}/share/openposixtests" -rsync -av --delete . "${COOKBOOK_STAGE}/share/openposixtestsuite" +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/recipe.toml b/recipes/tests/os-test/recipe.toml index 59467c204..9b0d02354 100644 --- a/recipes/tests/os-test/recipe.toml +++ b/recipes/tests/os-test/recipe.toml @@ -1,3 +1,4 @@ +# TODO remove gnu-grep when extrautils grep supports grep -E [source] git = "https://gitlab.com/sortix/os-test" @@ -10,8 +11,10 @@ cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/share/os-test" [package] dependencies = [ - "gnu-binutils", - "gnu-make", "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/recipe.toml b/recipes/tests/relibc-tests/recipe.toml index 023ac741e..8f587bb5d 100644 --- a/recipes/tests/relibc-tests/recipe.toml +++ b/recipes/tests/relibc-tests/recipe.toml @@ -8,7 +8,7 @@ script = """ rsync -av --delete "${COOKBOOK_SOURCE}/" ./ pushd tests export CARGO_TEST="${COOKBOOK_CARGO}" -export NATIVE_RELIBC=1 +export NATIVE_RELIBC=0 # set 0 to link against relibc "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" all bins_verify/relibc-tests popd mkdir -pv "${COOKBOOK_STAGE}/share/relibc" diff --git a/recipes/tools/gettext/recipe.toml b/recipes/tools/gettext/recipe.toml index e30751579..c50a5fb1c 100644 --- a/recipes/tools/gettext/recipe.toml +++ b/recipes/tools/gettext/recipe.toml @@ -8,7 +8,7 @@ patches = [ ] script = """ DYNAMIC_INIT -wget -O build-aux/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" +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 ) @@ -23,10 +23,8 @@ dependencies = [ "libiconv" ] script = """ -DYNAMIC_INIT +DYNAMIC_STATIC_INIT COOKBOOK_CONFIGURE_FLAGS+=( - --enable-static - --enable-shared ac_cv_have_decl_program_invocation_name=no gt_cv_locale_fr=false gt_cv_locale_fr_utf8=false diff --git a/recipes/tools/gettext/redox.patch b/recipes/tools/gettext/redox.patch index 8c01434ef..8b6f307d0 100644 --- a/recipes/tools/gettext/redox.patch +++ b/recipes/tools/gettext/redox.patch @@ -32,3 +32,15 @@ diff -ruwN source/gettext-tools/gnulib-lib/spawni.c source-new/gettext-tools/gnu # 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/schismtracker/recipe.toml b/recipes/tools/schismtracker/recipe.toml index aea391eaf..7d08b5ad5 100644 --- a/recipes/tools/schismtracker/recipe.toml +++ b/recipes/tools/schismtracker/recipe.toml @@ -14,8 +14,7 @@ dependencies = [ "libiconv", ] script = """ -export CFLAGS="-I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL" -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib -static" +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/SDL" export SDL_CONFIG="${COOKBOOK_SYSROOT}/bin/sdl-config" COOKBOOK_CONFIGURE_FLAGS=( diff --git a/recipes/tools/xz/recipe.toml b/recipes/tools/xz/recipe.toml index 339b5102a..51ca7e47b 100644 --- a/recipes/tools/xz/recipe.toml +++ b/recipes/tools/xz/recipe.toml @@ -9,16 +9,12 @@ autotools_recursive_regenerate [build] template = "custom" script = """ -DYNAMIC_INIT -COOKBOOK_CONFIGURE_FLAGS=( - --host="${GNU_TARGET}" - --prefix="/usr" +DYNAMIC_STATIC_INIT +COOKBOOK_CONFIGURE_FLAGS+=( --disable-lzmadec --disable-lzmainfo --disable-xz --disable-xzdec - --enable-shared=yes - --enable-static=yes --enable-threads=no ) cookbook_configure diff --git a/recipes/tui/mdp/recipe.toml b/recipes/tui/mdp/recipe.toml index a78e477fe..ca3be43af 100644 --- a/recipes/tui/mdp/recipe.toml +++ b/recipes/tui/mdp/recipe.toml @@ -10,8 +10,7 @@ dependencies = [ script = """ rsync -av --delete --exclude='.git' "${COOKBOOK_SOURCE}/" ./ -export CFLAGS="-I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/ncursesw" -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib" +export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/ncursesw" "${COOKBOOK_MAKE}" -j"$(${NPROC})" diff --git a/recipes/video/sdl-player/recipe.toml b/recipes/video/sdl-player/recipe.toml index 5f8ee857c..b870523b3 100644 --- a/recipes/video/sdl-player/recipe.toml +++ b/recipes/video/sdl-player/recipe.toml @@ -11,8 +11,6 @@ dependencies = [ ] script = """ rsync -av --delete --exclude='.git' "${COOKBOOK_SOURCE}/" ./ -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include" -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib -static" "${COOKBOOK_MAKE}" -j"$(${NPROC})" mkdir -pv "${COOKBOOK_STAGE}/bin" diff --git a/recipes/web/netsurf/recipe.toml b/recipes/web/netsurf/recipe.toml index 5501fa549..fabdc0321 100644 --- a/recipes/web/netsurf/recipe.toml +++ b/recipes/web/netsurf/recipe.toml @@ -27,8 +27,8 @@ DYNAMIC_INIT rsync -av --delete "${COOKBOOK_SOURCE}/" ./ export TARGET="framebuffer" -export CFLAGS="-I${COOKBOOK_SYSROOT}/include -I${PWD}/inst-${TARGET}/include" -export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib -L${PWD}/inst-${TARGET}/lib -Wl,--allow-multiple-definition -Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib" +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" diff --git a/recipes/web/website/recipe.toml b/recipes/web/website/recipe.toml index 4df01db06..e9d240f19 100644 --- a/recipes/web/website/recipe.toml +++ b/recipes/web/website/recipe.toml @@ -3,6 +3,7 @@ git = "https://gitlab.redox-os.org/redox-os/website" [build] template = "custom" script = """ +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/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/analysis/cutter/recipe.toml b/recipes/wip/analysis/cutter/recipe.toml index b023d0a58..33fc1fcf9 100644 --- a/recipes/wip/analysis/cutter/recipe.toml +++ b/recipes/wip/analysis/cutter/recipe.toml @@ -1,26 +1,12 @@ -#TODO maybe incomplete script, see https://cutter.re/docs/building.html +#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 = "custom" +template = "cmake" dependencies = [ "libzip", "zlib", "qt5-base", "qt5-svg", ] -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/analysis/netdata/recipe.toml b/recipes/wip/analysis/netdata/recipe.toml index d5a2aca34..fc4f14ddb 100644 --- a/recipes/wip/analysis/netdata/recipe.toml +++ b/recipes/wip/analysis/netdata/recipe.toml @@ -1,25 +1,11 @@ -#TODO maybe incomplete script, see https://learn.netdata.cloud/docs/developer-and-contributor-corner/build-the-netdata-agent-yourself/compile-from-source-code#building-netdata +#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 = "custom" +template = "cmake" dependencies = [ "zlib", "libuv", "libuuid", ] -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/analysis/rizin/recipe.toml b/recipes/wip/analysis/rizin/recipe.toml index 3b2a8e353..385be03bd 100644 --- a/recipes/wip/analysis/rizin/recipe.toml +++ b/recipes/wip/analysis/rizin/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for meson, see https://github.com/rizinorg/rizin/blob/dev/BUILDING.md +#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 = "custom" +template = "meson" diff --git a/recipes/wip/archives/file-roller/recipe.toml b/recipes/wip/archives/file-roller/recipe.toml index c3392c6e8..d4e493be3 100644 --- a/recipes/wip/archives/file-roller/recipe.toml +++ b/recipes/wip/archives/file-roller/recipe.toml @@ -1,9 +1,10 @@ -#TODO missing script for Meson, see https://gitlab.gnome.org/GNOME/file-roller#building-locally -#TODO the "libportal" dependency is for Flatpak, maybe it's optional - https://gitlab.gnome.org/GNOME/file-roller#dependencies +#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 = "custom" +template = "meson" dependencies = [ "glib", "gtk3", diff --git a/recipes/wip/codecs/dav1d/recipe.toml b/recipes/wip/codecs/dav1d/recipe.toml index 7b5425a1a..2384fba7b 100644 --- a/recipes/wip/codecs/dav1d/recipe.toml +++ b/recipes/wip/codecs/dav1d/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing script for Meson, see https://code.videolan.org/videolan/dav1d#compile +#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 = "custom" +template = "meson" diff --git a/recipes/wip/codecs/svt-hevc/recipe.toml b/recipes/wip/codecs/svt-hevc/recipe.toml index 160c0199e..78c54ef7c 100644 --- a/recipes/wip/codecs/svt-hevc/recipe.toml +++ b/recipes/wip/codecs/svt-hevc/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/OpenVisualCloud/SVT-HEVC#linux-operating-systems-64-bit +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/codecs/svt-vp9/recipe.toml b/recipes/wip/codecs/svt-vp9/recipe.toml index 52a4a4d4f..47574a5fd 100644 --- a/recipes/wip/codecs/svt-vp9/recipe.toml +++ b/recipes/wip/codecs/svt-vp9/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://github.com/OpenVisualCloud/SVT-VP9#linux-operating-systems-64-bit +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/codecs/uvg266/recipe.toml b/recipes/wip/codecs/uvg266/recipe.toml index 2dc7576f5..4005e380b 100644 --- a/recipes/wip/codecs/uvg266/recipe.toml +++ b/recipes/wip/codecs/uvg266/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/ultravideo/uvg266#compiling-uvg266 +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/codecs/vvenc/recipe.toml b/recipes/wip/codecs/vvenc/recipe.toml index a039c28bf..0a2eb4172 100644 --- a/recipes/wip/codecs/vvenc/recipe.toml +++ b/recipes/wip/codecs/vvenc/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/fraunhoferhhi/vvenc/wiki/Build#build-using-plain-cmake +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/codecs/x265/recipe.toml b/recipes/wip/codecs/x265/recipe.toml index 0637eb951..ce61981df 100644 --- a/recipes/wip/codecs/x265/recipe.toml +++ b/recipes/wip/codecs/x265/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://bitbucket.org/multicoreware/x265_git/src/master/build/README.txt#lines-68 +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/db/clickhouse/recipe.toml b/recipes/wip/db/clickhouse/recipe.toml index e975c8d3e..5c52357eb 100644 --- a/recipes/wip/db/clickhouse/recipe.toml +++ b/recipes/wip/db/clickhouse/recipe.toml @@ -1,26 +1,12 @@ -#TODO maybe incomplete script, see https://clickhouse.com/docs/en/development/build#how-to-build-clickhouse-on-any-linux +#TODO not compiled or tested +# build instructions: https://clickhouse.com/docs/en/development/build#how-to-build-clickhouse-on-any-linux #TODO probably disable some submodules to use our recipes [source] tar = "https://github.com/ClickHouse/ClickHouse" [build] -template = "custom" +template = "cmake" dependencies = [ "curl", "openssl1", "xz", ] -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/db/mariadb-lts/recipe.toml b/recipes/wip/db/mariadb-lts/recipe.toml index 3e4dffa61..3a2e48aef 100644 --- a/recipes/wip/db/mariadb-lts/recipe.toml +++ b/recipes/wip/db/mariadb-lts/recipe.toml @@ -1,4 +1,4 @@ -#TODO probably wrong script, see: +#TODO not compiled or tested # https://mariadb.com/kb/en/generic-build-instructions/ # https://mariadb.com/kb/en/cross-compiling-mariadb/ [source] @@ -17,17 +17,5 @@ dependencies = [ ] script = """ export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" -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 +cookbook_cmake """ diff --git a/recipes/wip/db/mariadb/recipe.toml b/recipes/wip/db/mariadb/recipe.toml index 4b8d6556d..39038da89 100644 --- a/recipes/wip/db/mariadb/recipe.toml +++ b/recipes/wip/db/mariadb/recipe.toml @@ -1,4 +1,4 @@ -#TODO probably wrong script, see: +#TODO not compiled or tested # https://mariadb.com/kb/en/generic-build-instructions/ # https://mariadb.com/kb/en/cross-compiling-mariadb/ [source] @@ -17,17 +17,5 @@ dependencies = [ ] script = """ export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" -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 +cookbook_cmake """ diff --git a/recipes/wip/db/mysql-server/recipe.toml b/recipes/wip/db/mysql-server/recipe.toml index 45b5d00a6..4c9785001 100644 --- a/recipes/wip/db/mysql-server/recipe.toml +++ b/recipes/wip/db/mysql-server/recipe.toml @@ -1,4 +1,5 @@ -#TODO maybe incomplete script, see https://dev.mysql.com/doc/refman/8.2/en/installing-source-distribution.html +#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] @@ -10,17 +11,5 @@ dependencies = [ ] script = """ export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" -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 +cookbook_cmake """ 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/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/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/imgui-examples/recipe.toml b/recipes/wip/demos/imgui-examples/recipe.toml index e29d3b733..560d8ce65 100644 --- a/recipes/wip/demos/imgui-examples/recipe.toml +++ b/recipes/wip/demos/imgui-examples/recipe.toml @@ -3,19 +3,4 @@ git = "https://github.com/Qix-/imgui" branch = "cmake" [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 -""" +template = "cmake" diff --git a/recipes/wip/demos/mesa-demos/recipe.toml b/recipes/wip/demos/mesa-demos/recipe.toml index b23143495..f5577ef3f 100644 --- a/recipes/wip/demos/mesa-demos/recipe.toml +++ b/recipes/wip/demos/mesa-demos/recipe.toml @@ -1,9 +1,9 @@ -#TODO missing script for Meson, see https://gitlab.freedesktop.org/mesa/demos/-/blob/main/README.rst?ref_type=heads -#TODO make freeglut works +#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 = "custom" +template = "meson" dependencies = [ "freeglut", ] 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/demos/rust-cairo-demo/recipe.sh b/recipes/wip/demos/rust-cairo-demo/recipe.sh similarity index 100% rename from recipes/demos/rust-cairo-demo/recipe.sh rename to recipes/wip/demos/rust-cairo-demo/recipe.sh diff --git a/recipes/demos/rust-cairo/recipe.sh b/recipes/wip/demos/rust-cairo/recipe.sh similarity index 100% rename from recipes/demos/rust-cairo/recipe.sh rename to recipes/wip/demos/rust-cairo/recipe.sh 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/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/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/build-system/ccache/recipe.toml b/recipes/wip/dev/build-system/ccache/recipe.toml index 6e12c2306..f44200884 100644 --- a/recipes/wip/dev/build-system/ccache/recipe.toml +++ b/recipes/wip/dev/build-system/ccache/recipe.toml @@ -1,30 +1,16 @@ -#TODO maybe incomplete script +#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 = "custom" +template = "cmake" +cmakeflags = [ + "-DENABLE_TESTING=OFF", + "-DREDIS_STORAGE_BACKEND=OFF", +] dependencies = [ "libfmt", "xxhash", "zstd", ] -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 - -D STATIC_LINK=ON - -D ENABLE_TESTING=OFF - -D REDIS_STORAGE_BACKEND=OFF -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" diff --git a/recipes/wip/dev/build-system/ninja-build/recipe.toml b/recipes/wip/dev/build-system/ninja-build/recipe.toml index badcc36c8..bfed73afa 100644 --- a/recipes/wip/dev/build-system/ninja-build/recipe.toml +++ b/recipes/wip/dev/build-system/ninja-build/recipe.toml @@ -1,21 +1,7 @@ -#TODO probably wrong script, see https://github.com/ninja-build/ninja#building-ninja-itself +#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 = "a524bf3f6bacd1b4ad85d719eed2737d8562f27a" [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 -""" +template = "cmake" 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/graphics/bonzomatic/recipe.toml b/recipes/wip/dev/graphics/bonzomatic/recipe.toml index 1af4e27a9..d12b8a2d0 100644 --- a/recipes/wip/dev/graphics/bonzomatic/recipe.toml +++ b/recipes/wip/dev/graphics/bonzomatic/recipe.toml @@ -1,24 +1,12 @@ -#TODO port to orbital +#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 = "custom" +template = "cmake" dependencies = [ - "mesa", + "libx11", + "libalsa", + "mesa-glu", ] -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/dev/hw/recipe.toml b/recipes/wip/dev/hw/recipe.toml new file mode 100644 index 000000000..e3361580c --- /dev/null +++ b/recipes/wip/dev/hw/recipe.toml @@ -0,0 +1,20 @@ +#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 = "77db4fda7f5df5d058bfc5d2fae3072bb30c8402" +[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/gnome-builder/recipe.toml b/recipes/wip/dev/ide/gnome-builder/recipe.toml index 53b8683f7..0142c9e05 100644 --- a/recipes/wip/dev/ide/gnome-builder/recipe.toml +++ b/recipes/wip/dev/ide/gnome-builder/recipe.toml @@ -1,9 +1,10 @@ -#TODO missing script for Meson, see https://builder.readthedocs.io/installation.html#via-release-tarball -#TODO missing dependencies, see https://packages.debian.org/source/trixie/gnome-builder +#TODO not compiled or tested +# build instructions: https://builder.readthedocs.io/installation.html#via-release-tarball +#TODO missing dependencies, see: https://packages.debian.org/source/trixie/gnome-builder [source] tar = "https://download.gnome.org/sources/gnome-builder/45/gnome-builder-45.0.tar.xz" [build] -template = "custom" +template = "meson" dependencies = [ "cairo", "cmark", diff --git a/recipes/wip/dev/ide/kdevelop/recipe.toml b/recipes/wip/dev/ide/kdevelop/recipe.toml index a5ff324a1..4d63d0ea0 100644 --- a/recipes/wip/dev/ide/kdevelop/recipe.toml +++ b/recipes/wip/dev/ide/kdevelop/recipe.toml @@ -1,10 +1,11 @@ -#TODO missing script for building, see https://kdevelop.org/build-it/ +#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" rev = "3021daeb5d62bc7a7a7dec4bcc23e19d3bfdaadd" [build] -template = "custom" +template = "cmake" dependencies = [ "apr", "apr-util", diff --git a/recipes/wip/dev/lang/go/recipe.toml b/recipes/wip/dev/lang/go/recipe.toml index 97b80f536..278f374bf 100644 --- a/recipes/wip/dev/lang/go/recipe.toml +++ b/recipes/wip/dev/lang/go/recipe.toml @@ -1,4 +1,4 @@ -#TODO: Can be built, but ends in breakpoint trap +#TODO compiling, not tested further [source] git = "https://github.com/willnode/go" branch = "go-1.25-redox" @@ -9,7 +9,6 @@ template = "custom" script = """ export PATH=$HOME/go/bin:$PATH -rm -rf $HOME/.cache/go-build 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 @@ -33,8 +32,18 @@ esac export CGO_ENABLED=1 export CC=x86_64-unknown-redox-gcc export CCX=x86_64-unknown-redox-g++ +echo "go1.25" > VERSION # to set -trimpath (cd ./src && bash ./make.bash) -mkdir -p ${COOKBOOK_STAGE}/bin -rsync -a --delete "bin/redox_${GOARCH}/" ${COOKBOOK_STAGE}/bin +mkdir -p "${COOKBOOK_STAGE}"/usr/bin \ + "${COOKBOOK_STAGE}"/usr/lib/golang/{bin,lib,misc,pkg/include,pkg/tool,src} +rsync -a bin/redox_${GOARCH}/* "${COOKBOOK_STAGE}"/usr/lib/golang/bin/ +rsync -a lib/* "${COOKBOOK_STAGE}"/usr/lib/golang/lib/ +rsync -a misc/* "${COOKBOOK_STAGE}"/usr/lib/golang/misc/ +rsync -a pkg/include/* "${COOKBOOK_STAGE}"/usr/lib/golang/pkg/include/ +rsync -a pkg/tool/redox_${GOARCH} "${COOKBOOK_STAGE}"/usr/lib/golang/pkg/tool/ +rsync -a 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/nodejs-21/recipe.toml b/recipes/wip/dev/lang/nodejs-21/recipe.toml new file mode 100644 index 000000000..7b5d1d6d8 --- /dev/null +++ b/recipes/wip/dev/lang/nodejs-21/recipe.toml @@ -0,0 +1,49 @@ +#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", +] +script = """ +DYNAMIC_INIT +export PYTHONDONTWRITEBYTECODE=1 +export CC_host="$CC_WRAPPER gcc" CXX_host="$CC_WRAPPER g++" + +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ + +case "${TARGET}" in + x86-unknown-redox) export NODE_CPU=x32;; + x86_64-unknown-redox) export NODE_CPU=x64;; + aarch64-unknown-redox) export NODE_CPU=arm64;; +esac + +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/usr + --dest-cpu=${NODE_CPU} + --dest-os=redox + --shared-cares + --shared-libuv + --shared-ngtcp2 + --shared-nghttp2 + --shared-nghttp3 + --shared-openssl + --shared-zlib + --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..3a665e904 --- /dev/null +++ b/recipes/wip/dev/lang/nodejs-21/redox.patch @@ -0,0 +1,540 @@ +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 4096 ++#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_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/01_redox.patch b/recipes/wip/dev/lang/nodejs-24/01_redox.patch similarity index 100% rename from recipes/wip/dev/lang/nodejs/01_redox.patch rename to recipes/wip/dev/lang/nodejs-24/01_redox.patch diff --git a/recipes/wip/dev/lang/nodejs/recipe.toml b/recipes/wip/dev/lang/nodejs-24/recipe.toml similarity index 60% rename from recipes/wip/dev/lang/nodejs/recipe.toml rename to recipes/wip/dev/lang/nodejs-24/recipe.toml index fbc91fb97..cfd29f13d 100644 --- a/recipes/wip/dev/lang/nodejs/recipe.toml +++ b/recipes/wip/dev/lang/nodejs-24/recipe.toml @@ -1,22 +1,23 @@ -#TODO depedencies needed +#TODO requires stdc++20 [source] -tar = "https://nodejs.org/dist/v24.5.0/node-v24.5.0.tar.gz" +tar = "https://nodejs.org/dist/v24.5.0/node-v24.9.0.tar.xz" +blake3 = "c710713c9144dc2dfadaef1d180b295d85edd9945513017fc700af68eb08a251" patches = ["01_redox.patch"] [build] template = "custom" -depedencies = [ +dependencies = [ # "ada", "libbrotli", -# "cares", + "c-ares", "libuv", -# "ngtcp2", + "ngtcp2", "nghttp2", # "http-parser", -# "nghttp3", + "nghttp3", "openssl1", "simdjson", -# "simdutf", + "simdutf", "sqlite3", # "uvwasi", "zlib", @@ -24,6 +25,7 @@ depedencies = [ ] script = """ DYNAMIC_INIT +rsync -av --delete "${COOKBOOK_SOURCE}/" ./ case "${TARGET}" in x86-unknown-redox) @@ -41,12 +43,21 @@ 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/nodejs-lts/recipe.toml b/recipes/wip/dev/lang/nodejs-lts/recipe.toml deleted file mode 100644 index 233365de1..000000000 --- a/recipes/wip/dev/lang/nodejs-lts/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO can't find the Redox target -[source] -tar = "https://nodejs.org/dist/v18.17.1/node-v18.17.1.tar.gz" -[build] -template = "configure" diff --git a/recipes/wip/dev/lang/php/recipe.toml b/recipes/wip/dev/lang/php/recipe.toml deleted file mode 100644 index b82e6f59b..000000000 --- a/recipes/wip/dev/lang/php/recipe.toml +++ /dev/null @@ -1,11 +0,0 @@ -#TODO can't detect libiconv -# in case of problems, read https://www.php.net/manual/en/install.unix.php -[source] -tar = "https://www.php.net/distributions/php-8.3.0.tar.xz" -[build] -template = "configure" -dependencies = [ - "libxml2", - "sqlite3", - "libiconv", -] 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/python312/recipe.toml b/recipes/wip/dev/lang/python312/recipe.toml deleted file mode 100644 index e53fb2c00..000000000 --- a/recipes/wip/dev/lang/python312/recipe.toml +++ /dev/null @@ -1,14 +0,0 @@ -#TODO finish it based on the python310 recipe -[source] -tar = "https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz" -[build] -template = "custom" -dependencies = [ - "openssl1", -] -script = """ -COOKBOOK_CONFIGURE_FLAGS+=( - --disable-ipv6 -) -cookbook_configure -""" diff --git a/recipes/wip/dev/lang/python310/recipe.toml b/recipes/wip/dev/lang/python39/recipe.toml similarity index 61% rename from recipes/wip/dev/lang/python310/recipe.toml rename to recipes/wip/dev/lang/python39/recipe.toml index 6c69663f0..f7bc5ddb2 100644 --- a/recipes/wip/dev/lang/python310/recipe.toml +++ b/recipes/wip/dev/lang/python39/recipe.toml @@ -1,16 +1,29 @@ #TODO Fix dynamic loading of C modules -#TODO Fix openssl dependency -#TODO Add additional dependencies (readline, ncurses, etc.) [source] -tar = "https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tar.xz" +tar = "https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz" patches = [ 'redox.patch' ] [build] template = "custom" -dependencies = [] +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" @@ -27,19 +40,23 @@ mkdir -p "${BUILDMACH_STAGE}" cd "${BUILDMACH_BUILD}" # Use env that does not use the Redox build tools -env -i PATH="$PATH" CC=gcc "${COOKBOOK_SOURCE}/configure" -env -i PATH="$PATH" CC=gcc "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" +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}" -# --enable-optimizations for release build -COOKBOOK_CONFIGURE_FLAGS+=( +COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/usr + --enable-shared --disable-ipv6 - --build="${ARCH}" + --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/python310/redox.patch b/recipes/wip/dev/lang/python39/redox.patch similarity index 66% rename from recipes/wip/dev/lang/python310/redox.patch rename to recipes/wip/dev/lang/python39/redox.patch index 3f42622d3..5f776a987 100644 --- a/recipes/wip/dev/lang/python310/redox.patch +++ b/recipes/wip/dev/lang/python39/redox.patch @@ -1,7 +1,7 @@ -diff -ur source-orig/configure source/configure ---- source-orig/configure 2023-08-24 13:46:25.000000000 +0100 -+++ source/configure 2024-10-17 16:50:09.377036649 +0100 -@@ -3347,6 +3347,9 @@ +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 ;; @@ -11,7 +11,7 @@ diff -ur source-orig/configure source/configure *) # for now, limit cross builds to known configurations MACHDEP="unknown" -@@ -3371,6 +3374,7 @@ +@@ -3331,6 +3334,7 @@ case $MACHDEP in aix*) MACHDEP="aix";; linux*) MACHDEP="linux";; @@ -19,7 +19,7 @@ diff -ur source-orig/configure source/configure cygwin*) MACHDEP="cygwin";; darwin*) MACHDEP="darwin";; '') MACHDEP="unknown";; -@@ -3382,7 +3386,7 @@ +@@ -3342,7 +3346,7 @@ if test "$cross_compiling" = yes; then case "$host" in @@ -28,16 +28,16 @@ diff -ur source-orig/configure source/configure case "$host_cpu" in arm*) _host_cpu=arm -@@ -5989,7 +5993,7 @@ +@@ -5951,7 +5955,7 @@ PY3LIBRARY=libpython3.so fi ;; -- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|VxWorks*) -+ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|VxWorks*|Redox*) +- 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}} -@@ -9787,7 +9791,7 @@ +@@ -9551,7 +9555,7 @@ BLDSHARED="$LDSHARED" fi ;; @@ -46,7 +46,7 @@ diff -ur source-orig/configure source/configure LDSHARED='$(CC) -shared' LDCXXSHARED='$(CXX) -shared';; FreeBSD*) -@@ -9856,7 +9860,7 @@ +@@ -9620,7 +9624,7 @@ else CCSHARED="+z"; fi;; Linux-android*) ;; @@ -55,7 +55,7 @@ diff -ur source-orig/configure source/configure FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";; OpenUNIX*|UnixWare*) if test "$GCC" = "yes" -@@ -9886,7 +9890,7 @@ +@@ -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";; @@ -64,22 +64,22 @@ diff -ur source-orig/configure source/configure # -u libsys_s pulls in all symbols in libsys Darwin/*) LINKFORSHARED="$extra_undefs -framework CoreFoundation" -diff -ur source-orig/Include/pyport.h source/Include/pyport.h ---- source-orig/Include/pyport.h 2023-08-24 13:46:25.000000000 +0100 -+++ source/Include/pyport.h 2024-10-17 17:34:54.514295923 +0100 -@@ -843,7 +843,7 @@ +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__) - // Use UTF-8 as the locale encoding, ignore the LC_CTYPE locale. - // See _Py_GetLocaleEncoding(), PyUnicode_DecodeLocale() - // and PyUnicode_EncodeLocale(). -diff -ur source-orig/Modules/timemodule.c source/Modules/timemodule.c ---- source-orig/Modules/timemodule.c 2023-08-24 13:46:25.000000000 +0100 -+++ source/Modules/timemodule.c 2024-10-17 17:38:08.481699567 +0100 -@@ -1453,7 +1453,7 @@ + /* 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; } 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/zig/recipe.toml b/recipes/wip/dev/lang/zig/recipe.toml index 90ceedba0..5c9d26f7e 100644 --- a/recipes/wip/dev/lang/zig/recipe.toml +++ b/recipes/wip/dev/lang/zig/recipe.toml @@ -1,20 +1,22 @@ -#TODO probably wrong script, see https://github.com/ziglang/zig/wiki/Building-Zig-From-Source +#TODO compiling, not tested further [source] -tar = "https://ziglang.org/download/0.10.1/zig-0.10.1.tar.xz" +git = "https://github.com/willnode/zig" +branch = "zig-0.15-redox" + [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 +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/other/apitrace/recipe.toml b/recipes/wip/dev/other/apitrace/recipe.toml index 3bd0f6fd8..a95456155 100644 --- a/recipes/wip/dev/other/apitrace/recipe.toml +++ b/recipes/wip/dev/other/apitrace/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/apitrace/apitrace/blob/master/docs/INSTALL.markdown#linux +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/dev/other/cling/recipe.toml b/recipes/wip/dev/other/cling/recipe.toml index d4830298c..9c3b32861 100644 --- a/recipes/wip/dev/other/cling/recipe.toml +++ b/recipes/wip/dev/other/cling/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/vgvassilev/cling#building-from-source +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/dev/other/crates-tui/recipe.toml b/recipes/wip/dev/other/crates-tui/recipe.toml index 6a37b7708..f7ded8dd9 100644 --- a/recipes/wip/dev/other/crates-tui/recipe.toml +++ b/recipes/wip/dev/other/crates-tui/recipe.toml @@ -1,4 +1,4 @@ -#TODO port to the Orbital clipboard +#TODO not compiled or tested [source] git = "https://github.com/ratatui-org/crates-tui" [build] diff --git a/recipes/wip/dev/other/doxygen/recipe.toml b/recipes/wip/dev/other/doxygen/recipe.toml index 7351a2266..ec69b8bfe 100644 --- a/recipes/wip/dev/other/doxygen/recipe.toml +++ b/recipes/wip/dev/other/doxygen/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://www.doxygen.nl/manual/install.html#install_src_unix +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/dev/other/gegl/recipe.toml b/recipes/wip/dev/other/gegl/recipe.toml index 0ca3f0263..37b448db6 100644 --- a/recipes/wip/dev/other/gegl/recipe.toml +++ b/recipes/wip/dev/other/gegl/recipe.toml @@ -1,8 +1,9 @@ -#TODO missing script for Meson, see https://gitlab.gnome.org/GNOME/gegl/-/blob/master/docs/development.adoc?ref_type=heads#user-content-debugging +#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 = "custom" +template = "meson" dependencies = [ "libpng", "glib", diff --git a/recipes/wip/dev/other/gexiv2/recipe.toml b/recipes/wip/dev/other/gexiv2/recipe.toml index 16bf91bf2..fe53453b7 100644 --- a/recipes/wip/dev/other/gexiv2/recipe.toml +++ b/recipes/wip/dev/other/gexiv2/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.gnome.org/GNOME/gexiv2/-/blob/master/INSTALLING?ref_type=heads +#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 = "custom" +template = "meson" diff --git a/recipes/wip/dev/other/graphene/recipe.toml b/recipes/wip/dev/other/graphene/recipe.toml index 29fa65e69..40d77cfe4 100644 --- a/recipes/wip/dev/other/graphene/recipe.toml +++ b/recipes/wip/dev/other/graphene/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://github.com/ebassi/graphene#installation +#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 = "custom" +template = "meson" diff --git a/recipes/wip/dev/other/gtest/recipe.toml b/recipes/wip/dev/other/gtest/recipe.toml index 413588600..b9370e250 100644 --- a/recipes/wip/dev/other/gtest/recipe.toml +++ b/recipes/wip/dev/other/gtest/recipe.toml @@ -1,21 +1,7 @@ -#TODO probably wrong script, see https://github.com/google/googletest/blob/main/googletest/README.md +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/dev/other/kicad/recipe.toml b/recipes/wip/dev/other/kicad/recipe.toml index 5428e894c..8dfecdca8 100644 --- a/recipes/wip/dev/other/kicad/recipe.toml +++ b/recipes/wip/dev/other/kicad/recipe.toml @@ -1,10 +1,11 @@ -#TODO maybe incomplete script, see https://dev-docs.kicad.org/en/build/linux/ +#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 = "custom" +template = "cmake" dependencies = [ "wxwidgets-gtk3", "cairo", @@ -16,18 +17,3 @@ dependencies = [ "curl", "ngspice", ] -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/dev/other/level-zero/recipe.toml b/recipes/wip/dev/other/level-zero/recipe.toml index 97e7249c9..75e9fe639 100644 --- a/recipes/wip/dev/other/level-zero/recipe.toml +++ b/recipes/wip/dev/other/level-zero/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/oneapi-src/level-zero#building-and-installing +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/dev/other/mnn/recipe.toml b/recipes/wip/dev/other/mnn/recipe.toml index 13d910092..605457a02 100644 --- a/recipes/wip/dev/other/mnn/recipe.toml +++ b/recipes/wip/dev/other/mnn/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, lacking English build instructions +#TODO not compiled or tested +# lacking English build instructions [source] git = "https://github.com/alibaba/MNN" rev = "1ea55f467fb231655cf1e08f77d4a0f1043c4c29" [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 -""" +template = "cmake" diff --git a/recipes/wip/dev/other/mold/recipe.toml b/recipes/wip/dev/other/mold/recipe.toml index 2692aae6e..7234cb240 100644 --- a/recipes/wip/dev/other/mold/recipe.toml +++ b/recipes/wip/dev/other/mold/recipe.toml @@ -1,24 +1,7 @@ -#TODO compilation error -#TODO maybe incomplete script +#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 = "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 - -DCMAKE_CXX_COMPILER=c++ -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" +template = "cmake" diff --git a/recipes/wip/dev/other/ncnn/recipe.toml b/recipes/wip/dev/other/ncnn/recipe.toml index 0a473e1f2..b363536e7 100644 --- a/recipes/wip/dev/other/ncnn/recipe.toml +++ b/recipes/wip/dev/other/ncnn/recipe.toml @@ -1,25 +1,11 @@ -#TODO maybe incomplete script, see https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux +#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 = "custom" +template = "cmake" dependencies = [ "protobuf", "libvulkan", "opencv4", ] -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/dev/other/netradiant/recipe.toml b/recipes/wip/dev/other/netradiant/recipe.toml index 599fef2fe..eb1bf9872 100644 --- a/recipes/wip/dev/other/netradiant/recipe.toml +++ b/recipes/wip/dev/other/netradiant/recipe.toml @@ -1,8 +1,9 @@ -#TODO maybe incomplete script, see https://gitlab.com/xonotic/netradiant#advanced-compilation +#TODO not compiled or tested +# build instructions: https://gitlab.com/xonotic/netradiant#advanced-compilation [source] git = "https://gitlab.com/xonotic/netradiant" [build] -template = "custom" +template = "cmake" dependencies = [ "libxml2", "mesa", @@ -11,18 +12,3 @@ dependencies = [ "libpng", "zlib", ] -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/dev/other/opencascade/recipe.toml b/recipes/wip/dev/other/opencascade/recipe.toml index 06ff823a1..1f4757573 100644 --- a/recipes/wip/dev/other/opencascade/recipe.toml +++ b/recipes/wip/dev/other/opencascade/recipe.toml @@ -1,26 +1,12 @@ -#TODO maybe incomplete script, see https://dev.opencascade.org/doc/overview/html/build_upgrade__building_occt.html +#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 = "custom" +template = "cmake" dependencies = [ "freetype2", "tcl", "tk", ] -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/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/protobuf/recipe.toml b/recipes/wip/dev/other/protobuf/recipe.toml index f0827b2a5..9458f8c3a 100644 --- a/recipes/wip/dev/other/protobuf/recipe.toml +++ b/recipes/wip/dev/other/protobuf/recipe.toml @@ -7,14 +7,10 @@ rev = "74211c0dfc2777318ab53c2cd2c317a2ef9012de" shallow_clone = true [build] -template = "custom" +template = "cmake" +cmakeflags = [ + "-Dprotobuf_BUILD_TESTS=OFF" +] dependencies = [ "zlib", ] -script = """ -DYNAMIC_INIT -COOKBOOK_CMAKE_FLAGS=( - -Dprotobuf_BUILD_TESTS=OFF -) -cookbook_cmake -""" diff --git a/recipes/wip/dev/other/renderdoc/recipe.toml b/recipes/wip/dev/other/renderdoc/recipe.toml index 8c85c67e3..1fb82abeb 100644 --- a/recipes/wip/dev/other/renderdoc/recipe.toml +++ b/recipes/wip/dev/other/renderdoc/recipe.toml @@ -1,27 +1,13 @@ -#TODO probably wrong script, see https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING/Compiling.md#linux +#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 = "custom" +template = "cmake" dependencies = [ "libxcb", "mesa", "qt5-base", "pcre", ] -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/dev/other/shaderc/recipe.toml b/recipes/wip/dev/other/shaderc/recipe.toml index cbc9bb1e0..6dde3f798 100644 --- a/recipes/wip/dev/other/shaderc/recipe.toml +++ b/recipes/wip/dev/other/shaderc/recipe.toml @@ -1,21 +1,7 @@ -#TODO Probably wrong script, see https://github.com/google/shaderc#getting-and-building-shaderc +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/dev/other/souper/recipe.toml b/recipes/wip/dev/other/souper/recipe.toml index ba91a50fa..2ebf55477 100644 --- a/recipes/wip/dev/other/souper/recipe.toml +++ b/recipes/wip/dev/other/souper/recipe.toml @@ -1,20 +1,6 @@ -#TODO probably wrong script, see https://github.com/google/souper#building-souper +#TODO not compiled or tested +# build instructions: https://github.com/google/souper#building-souper [source] git = "https://github.com/google/souper" [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 -""" +template = "cmake" 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/valkey/recipe.toml b/recipes/wip/dev/other/valkey/recipe.toml index ec17f5dea..30c251925 100644 --- a/recipes/wip/dev/other/valkey/recipe.toml +++ b/recipes/wip/dev/other/valkey/recipe.toml @@ -1,6 +1,19 @@ -#TODO Missing script for "make", see https://github.com/valkey-io/valkey#building-valkey +#TODO Compiling, server crashes in page fault [source] git = "https://github.com/valkey-io/valkey" -rev = "26388270f197bce84817eea0a73d687d58442654" +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/zeal/recipe.toml b/recipes/wip/dev/other/zeal/recipe.toml index 35484489d..0f4eebf91 100644 --- a/recipes/wip/dev/other/zeal/recipe.toml +++ b/recipes/wip/dev/other/zeal/recipe.toml @@ -1,8 +1,9 @@ -#TODO maybe incomplete script, see https://github.com/zealdocs/zeal#build-instructions +#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 = "custom" +template = "cmake" dependencies = [ "qt6-base", "qt6-webengine", @@ -10,18 +11,3 @@ dependencies = [ "sqlite3", "mesa", ] -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/dev/performance/vkpeak/recipe.toml b/recipes/wip/dev/performance/vkpeak/recipe.toml index 9d42a8b07..6ba6cbb8f 100644 --- a/recipes/wip/dev/performance/vkpeak/recipe.toml +++ b/recipes/wip/dev/performance/vkpeak/recipe.toml @@ -1,23 +1,9 @@ -#TODO maybe incomplete script, see https://github.com/nihui/vkpeak#build-from-source +#TODO not compiled or tested +# build instructions: https://github.com/nihui/vkpeak#build-from-source [source] git = "https://github.com/nihui/vkpeak" [build] -template = "custom" +template = "cmake" dependencies = [ "libvulkan", ] -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/dev/wasm/wasmtime/recipe.toml b/recipes/wip/dev/wasm/wasmtime/recipe.toml index a8f9539cb..ed1295bb5 100644 --- a/recipes/wip/dev/wasm/wasmtime/recipe.toml +++ b/recipes/wip/dev/wasm/wasmtime/recipe.toml @@ -1,5 +1,9 @@ -#TODO fs-set-times crate error +#TODO requires *at functions in fcntl.h +#TODO (willnode) push changes upstream [source] -git = "https://github.com/bytecodealliance/wasmtime" +git = "https://github.com/willnode/wasmtime" +branch = "v36-redox" +shallow_clone = true + [build] template = "cargo" diff --git a/recipes/wip/doc/gtk-doc/recipe.toml b/recipes/wip/doc/gtk-doc/recipe.toml index 423615c09..853dfd10a 100644 --- a/recipes/wip/doc/gtk-doc/recipe.toml +++ b/recipes/wip/doc/gtk-doc/recipe.toml @@ -1,5 +1,5 @@ -#TODO missing script for Meson +#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 = "custom" +template = "meson" 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/emulators/cpu/unicorn/recipe.toml b/recipes/wip/emulators/cpu/unicorn/recipe.toml index c5f877728..0e0977ccb 100644 --- a/recipes/wip/emulators/cpu/unicorn/recipe.toml +++ b/recipes/wip/emulators/cpu/unicorn/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, read https://github.com/unicorn-engine/unicorn/blob/master/docs/COMPILE.md +#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 = "e9c1c17f6df8f8f5da85ee80ad527452db5870ce" [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 -""" +template = "cmake" 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..4a21189ab --- /dev/null +++ b/recipes/wip/emulators/game-console/dolphin-emu/recipe.toml @@ -0,0 +1,20 @@ +#TODO not compiled or tested yet +# build instructions: https://github.com/dolphin-emu/dolphin/wiki/Building-for-Linux +#TODO probably missing dependencies +[source] +git = "https://github.com/dolphin-emu/dolphin" +[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/arcade/finalburn-neo/recipe.toml b/recipes/wip/emulators/game-console/finalburn-neo/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/arcade/finalburn-neo/recipe.toml rename to recipes/wip/emulators/game-console/finalburn-neo/recipe.toml diff --git a/recipes/wip/emulators/game-console/gameboy/gameroy/recipe.toml b/recipes/wip/emulators/game-console/gameboy/gameroy/recipe.toml index aa26a7ca4..004d06dc5 100644 --- a/recipes/wip/emulators/game-console/gameboy/gameroy/recipe.toml +++ b/recipes/wip/emulators/game-console/gameboy/gameroy/recipe.toml @@ -1,4 +1,4 @@ -#TODO port to Orbital +#TODO not compiled or tested [source] git = "https://github.com/Rodrigodd/gameroy" [build] diff --git a/recipes/wip/emulators/game-console/n64/gopher64/recipe.toml b/recipes/wip/emulators/game-console/gopher64/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/n64/gopher64/recipe.toml rename to recipes/wip/emulators/game-console/gopher64/recipe.toml diff --git a/recipes/wip/emulators/game-console/lime3ds/recipe.toml b/recipes/wip/emulators/game-console/lime3ds/recipe.toml new file mode 100644 index 000000000..621331ec9 --- /dev/null +++ b/recipes/wip/emulators/game-console/lime3ds/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions - https://github.com/Lime3DS/Lime3DS/wiki/Building-From-Source#linux +[source] +git = "https://github.com/Lime3DS/Lime3DS" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "qt6-base", + "qt6-multimedia", + "portaudio", + "libx11", + "libxext", + "pipewire", +] diff --git a/recipes/wip/emulators/game-console/arcade/mame/recipe.toml b/recipes/wip/emulators/game-console/mame/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/arcade/mame/recipe.toml rename to recipes/wip/emulators/game-console/mame/recipe.toml 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..58a0fc1f6 --- /dev/null +++ b/recipes/wip/emulators/game-console/melonds/recipe.toml @@ -0,0 +1,17 @@ +#TODO not compiled or tested yet +# build instructions: https://github.com/melonDS-emu/melonDS#linux +[source] +git = "https://github.com/melonDS-emu/melonDS" +rev = "430de6b2702bb93faa8c2004aff3fbd084db4a1e" +[build] +template = "cmake" +dependencies = [ + "curl", + "libpcap", + "sdl2", + "qt5-base", + "qt5-multimedia", + "libslirp", + "libarchive", + "zstd", +] diff --git a/recipes/wip/emulators/game-console/nintendo/meru/recipe.toml b/recipes/wip/emulators/game-console/meru/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/nintendo/meru/recipe.toml rename to recipes/wip/emulators/game-console/meru/recipe.toml diff --git a/recipes/wip/emulators/game-console/n64/mupen64plus-core/recipe.toml b/recipes/wip/emulators/game-console/mupen64plus-core/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/n64/mupen64plus-core/recipe.toml rename to recipes/wip/emulators/game-console/mupen64plus-core/recipe.toml diff --git a/recipes/wip/emulators/game-console/nds/melonds/recipe.toml b/recipes/wip/emulators/game-console/nds/melonds/recipe.toml deleted file mode 100644 index 46b747eaf..000000000 --- a/recipes/wip/emulators/game-console/nds/melonds/recipe.toml +++ /dev/null @@ -1,32 +0,0 @@ -#TODO maybe incomplete script, see https://github.com/melonDS-emu/melonDS#linux -#TODO make all dependencies work -[source] -git = "https://github.com/melonDS-emu/melonDS" -rev = "430de6b2702bb93faa8c2004aff3fbd084db4a1e" -[build] -template = "custom" -dependencies = [ - "curl", - "libpcap", - "sdl2", - "qt5-base", - "qt5-multimedia", - "libslirp", - "libarchive", - "zstd", -] -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/emulators/game-console/nintendo/dolphin-emu/recipe.toml b/recipes/wip/emulators/game-console/nintendo/dolphin-emu/recipe.toml deleted file mode 100644 index d99ca0044..000000000 --- a/recipes/wip/emulators/game-console/nintendo/dolphin-emu/recipe.toml +++ /dev/null @@ -1,37 +0,0 @@ -#TODO probably wrong script, see https://github.com/dolphin-emu/dolphin/wiki/Building-for-Linux -#TODO probably missing dependencies -#TODO make all dependencies work -[source] -git = "https://github.com/dolphin-emu/dolphin" -[build] -template = "custom" -dependencies = [ - "ffmpeg6", - "libevdev", - "libusb", - "pango", - "cairo", - "qt6-base", - "qt6-svg", - "mesa-x11", - "curl", - "libvulkan", - "openal", -] -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/wip/emulators/game-console/nintendo/lime3ds/recipe.toml b/recipes/wip/emulators/game-console/nintendo/lime3ds/recipe.toml deleted file mode 100644 index a73772c3f..000000000 --- a/recipes/wip/emulators/game-console/nintendo/lime3ds/recipe.toml +++ /dev/null @@ -1,32 +0,0 @@ -#TODO not compiled or tested -# build instructions - https://github.com/Lime3DS/Lime3DS/wiki/Building-From-Source#linux -[source] -git = "https://github.com/Lime3DS/Lime3DS" -[build] -template = "custom" -dependencies = [ - "sdl2", - "qt6-base", - "qt6-multimedia", - "portaudio", - "libx11", - "libxext", - "pipewire", -] -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/wip/emulators/game-console/obliteration/recipe.toml b/recipes/wip/emulators/game-console/obliteration/recipe.toml new file mode 100644 index 000000000..7a361a3c9 --- /dev/null +++ b/recipes/wip/emulators/game-console/obliteration/recipe.toml @@ -0,0 +1,5 @@ +#TODO missing script, see: https://github.com/obhq/obliteration/blob/main/docs/building.md +[source] +git = "https://github.com/obhq/obliteration" +[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..e974c3587 --- /dev/null +++ b/recipes/wip/emulators/game-console/pcsx2/recipe.toml @@ -0,0 +1,26 @@ +#TODO not compiled or tested yet +# build instructions: https://github.com/PCSX2/pcsx2/wiki/10-Building-on-Linux +#TODO probably need patches on submodules +#TODO determine dependencies - https://aur.archlinux.org/packages/pcsx2-git +#TODO make all dependencies work +[source] +git = "https://github.com/PCSX2/pcsx2.git" +[build] +template = "cmake" +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/sega/picodrive/recipe.toml b/recipes/wip/emulators/game-console/picodrive/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/sega/picodrive/recipe.toml rename to recipes/wip/emulators/game-console/picodrive/recipe.toml 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..b65ade643 --- /dev/null +++ b/recipes/wip/emulators/game-console/play/recipe.toml @@ -0,0 +1,14 @@ +#TODO not compiled or tested +# build instructions - https://github.com/jpd002/Play-#building-for-unix +[source] +git = "https://github.com/jpd002/Play-" +[build] +template = "cmake" +dependencies = [ + "openal", + "libevdev", + "freealut", + "qt5-base", + "qt5-x11extras", + "sqlite3", +] diff --git a/recipes/wip/emulators/game-console/psp/ppsspp/recipe.toml b/recipes/wip/emulators/game-console/ppsspp/recipe.toml similarity index 51% rename from recipes/wip/emulators/game-console/psp/ppsspp/recipe.toml rename to recipes/wip/emulators/game-console/ppsspp/recipe.toml index 8d1a4d79b..a4a3fc1a0 100644 --- a/recipes/wip/emulators/game-console/psp/ppsspp/recipe.toml +++ b/recipes/wip/emulators/game-console/ppsspp/recipe.toml @@ -1,33 +1,13 @@ #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] -git = "https://github.com/jackpot51/ppsspp" - +git = "https://github.com/hrydgard/ppsspp" [build] -template = "custom" -dependencies = [ - "liborbital", - "llvm18", - "mesa", - "mesa-glu", - "sdl2", - "zlib", - "glew", -] -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" +template = "cmake" +cmakeflags = [ -DCMAKE_C_FLAGS="-I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL2" -DCMAKE_CXX_FLAGS="-I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL2" - -DCMAKE_INSTALL_PREFIX="/" - -DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}" - -DCMAKE_SYSTEM_NAME=Generic - -DCMAKE_SYSTEM_PROCESSOR="$(echo "${TARGET}" | cut -d - -f1)" - -DCMAKE_VERBOSE_MAKEFILE=On -DOPENGL_opengl_LIBRARY="/dev/null" -DOPENGL_glx_LIBRARY="/dev/null" -DUSE_DISCORD=OFF @@ -39,7 +19,16 @@ COOKBOOK_CONFIGURE_FLAGS=( -DUSING_GLES2=OFF -DUSING_X11_VULKAN=OFF -DUNIX=ON - "${COOKBOOK_SOURCE}" -) -cookbook_configure -""" +] +dependencies = [ + #"liborbital", + "llvm18", + "mesa", + "mesa-glu", + "sdl2", + "sdl2-ttf", + "zlib", + "glew", + "fontconfig", + "curl", +] diff --git a/recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml b/recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml index 238e89df3..aaa892f86 100644 --- a/recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml +++ b/recipes/wip/emulators/game-console/ps1/duckstation/recipe.toml @@ -1,29 +1,13 @@ -#TODO probably wrong script, see https://github.com/stenzek/duckstation#linux-1 +#TODO not compiled or tested yet +# build instructions: https://github.com/stenzek/duckstation#linux-1 #TODO make qt6 work [source] tar = "https://github.com/stenzek/duckstation" [build] -template = "custom" +template = "cmake" dependencies = [ "sdl2", "qt6-base", "qt6-svg", "qt6-tools", ] -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/wip/emulators/game-console/ps2/pcsx2/recipe.toml b/recipes/wip/emulators/game-console/ps2/pcsx2/recipe.toml deleted file mode 100644 index 31166adb9..000000000 --- a/recipes/wip/emulators/game-console/ps2/pcsx2/recipe.toml +++ /dev/null @@ -1,42 +0,0 @@ -#TODO probably wrong script, see https://github.com/PCSX2/pcsx2/wiki/10-Building-on-Linux -#TODO probably need patches on submodules -#TODO determine dependencies - https://aur.archlinux.org/packages/pcsx2-git -#TODO make all dependencies work -[source] -git = "https://github.com/PCSX2/pcsx2.git" -[build] -template = "custom" -dependencies = [ - "sdl2", - "xz", - "libpng", - "qt6-base", - "qt6-svg", - "mesa-x11", - "libaio", - "harfbuzz", - "libpcap", - "pipewire", - "libsamplerate", - "soundtouch", - "zlib", - "libxml2", - "ffmpeg6", -] -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/wip/emulators/game-console/ps2/play/recipe.toml b/recipes/wip/emulators/game-console/ps2/play/recipe.toml deleted file mode 100644 index 58de310ac..000000000 --- a/recipes/wip/emulators/game-console/ps2/play/recipe.toml +++ /dev/null @@ -1,31 +0,0 @@ -#TODO not compiled or tested -# build instructions - https://github.com/jpd002/Play-#building-for-unix -[source] -git = "https://github.com/jpd002/Play-" -[build] -template = "custom" -dependencies = [ - "openal", - "libevdev", - "freealut", - "qt5-base", - "qt5-x11extras", - "sqlite3", -] -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/wip/emulators/game-console/ps3/rpcs3/recipe.toml b/recipes/wip/emulators/game-console/ps3/rpcs3/recipe.toml deleted file mode 100644 index cf3994a9f..000000000 --- a/recipes/wip/emulators/game-console/ps3/rpcs3/recipe.toml +++ /dev/null @@ -1,46 +0,0 @@ -#TODO finish script, see https://github.com/RPCS3/rpcs3/blob/master/BUILDING.md#linux-1 -#TODO missing dependencies -# customization - https://wiki.rpcs3.net/index.php?title=Help:Building_RPCS3#CMake_Build_Options -[source] -git = "https://github.com/RPCS3/rpcs3" -[build] -template = "custom" -dependencies = [ - "mesa-x11", - "qt6-base", - "qt6-multimedia", - "qt6-svg", - "sdl2", - "eudev", - "glew", - "openal", - "zlib", - "libpng", - #"libevdev", - "libedit", - #"libvulkan", - "pulseaudio", - "ffmpeg6", -] -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="/" - -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 -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" \ No newline at end of file diff --git a/recipes/wip/emulators/game-console/ps4/obliteration/recipe.toml b/recipes/wip/emulators/game-console/ps4/obliteration/recipe.toml deleted file mode 100644 index 787704512..000000000 --- a/recipes/wip/emulators/game-console/ps4/obliteration/recipe.toml +++ /dev/null @@ -1,27 +0,0 @@ -#TODO maybe incomplete script, see https://github.com/obhq/obliteration#configure-build-system -#TODO probably missing dependencies -#TODO make qt6 work -[source] -git = "https://github.com/obhq/obliteration" -[build] -template = "custom" -dependencies = [ - "qt6-base", -] -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/wip/emulators/game-console/ps4/shadPS4/recipe.toml b/recipes/wip/emulators/game-console/ps4/shadPS4/recipe.toml deleted file mode 100644 index ed53ad0c3..000000000 --- a/recipes/wip/emulators/game-console/ps4/shadPS4/recipe.toml +++ /dev/null @@ -1,38 +0,0 @@ -#TODO maybe incomplete script for cmake -#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 = "custom" -dependencies = [ - "pulseaudio", - "openal", - "openssl1", - "libedit", - "eudev", - "libevdev", - "sdl2", - "sndio", - "qt6-base", - "qt6-multimedia", - "libvulkan", -] -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 - -DENABLE_QT_GUI=ON -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" diff --git a/recipes/wip/emulators/game-console/psvita/vita3k/recipe.toml b/recipes/wip/emulators/game-console/psvita/vita3k/recipe.toml deleted file mode 100644 index efdc97f54..000000000 --- a/recipes/wip/emulators/game-console/psvita/vita3k/recipe.toml +++ /dev/null @@ -1,27 +0,0 @@ -#TODO probalby wrong script, see https://github.com/Vita3K/Vita3K/blob/master/building.md#linux -[source] -git = "https://github.com/Vita3K/Vita3K" -[build] -template = "custom" -dependencies = [ - "sdl2", - "gtk3", - "openssl1", -] -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/wip/emulators/game-console/rpcs3/recipe.toml b/recipes/wip/emulators/game-console/rpcs3/recipe.toml new file mode 100644 index 000000000..1dee01cb5 --- /dev/null +++ b/recipes/wip/emulators/game-console/rpcs3/recipe.toml @@ -0,0 +1,36 @@ +#TODO not compiled or tested yet +#TODO missing dependencies +# build instructions: https://github.com/RPCS3/rpcs3/blob/master/BUILDING.md#linux-1 +# customization - https://wiki.rpcs3.net/index.php?title=Help:Building_RPCS3#CMake_Build_Options +[source] +git = "https://github.com/RPCS3/rpcs3" +[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", + "sdl2", + "eudev", + "glew", + "openal", + "zlib", + "libpng", + #"libevdev", + "libedit", + #"libvulkan", + "pulseaudio", + "ffmpeg6", +] diff --git a/recipes/wip/emulators/game-console/sega/uoyabause/recipe.toml b/recipes/wip/emulators/game-console/sega/uoyabause/recipe.toml deleted file mode 100644 index 2eb3b900a..000000000 --- a/recipes/wip/emulators/game-console/sega/uoyabause/recipe.toml +++ /dev/null @@ -1,27 +0,0 @@ -#TODO maybe incomplete script, see https://github.com/devmiyax/yabause/blob/master/yabause/README.LIN#L77 -#TODO make gtk2 work -[source] -git = "https://github.com/devmiyax/yabause" -[build] -template = "custom" -dependencies = [ - "gtk2", - "sdl2", - "mesa", - "gtkglext", -] -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/emulators/game-console/shadPS4/recipe.toml b/recipes/wip/emulators/game-console/shadPS4/recipe.toml new file mode 100644 index 000000000..d90202479 --- /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", + "openssl1", + "libedit", + "eudev", + "libevdev", + "sdl2", + "sndio", + "qt6-base", + "qt6-multimedia", + "libvulkan", +] diff --git a/recipes/wip/emulators/game-console/snes/snes9x/recipe.toml b/recipes/wip/emulators/game-console/snes/snes9x/recipe.toml deleted file mode 100644 index a44ada03f..000000000 --- a/recipes/wip/emulators/game-console/snes/snes9x/recipe.toml +++ /dev/null @@ -1,30 +0,0 @@ -#TODO probably wrong script, see https://github.com/snes9xgit/snes9x/wiki/Compiling -#TODO make gtk3 work -[source] -git = "https://github.com/snes9xgit/snes9x" -rev = "8b82d487937d9ea39f7229d280c6f6686c415fe7" -[build] -template = "custom" -dependencies = [ - "sdl2", - "gtk3mm", - "libpng", - "zlib", - "libx11", - "libepoxy", -] -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/emulators/game-console/snes9x/recipe.toml b/recipes/wip/emulators/game-console/snes9x/recipe.toml new file mode 100644 index 000000000..a00eedcb8 --- /dev/null +++ b/recipes/wip/emulators/game-console/snes9x/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/snes9xgit/snes9x/wiki/Compiling +[source] +git = "https://github.com/snes9xgit/snes9x" +rev = "8b82d487937d9ea39f7229d280c6f6686c415fe7" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "gtk3mm", + "libpng", + "zlib", + "libx11", + "libepoxy", +] 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..f5d3c5c69 --- /dev/null +++ b/recipes/wip/emulators/game-console/uoyabause/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested yet +# build instructions: https://github.com/devmiyax/yabause/blob/master/yabause/README.LIN#L77 +#TODO make gtk2 work +[source] +git = "https://github.com/devmiyax/yabause" +[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..65de26d1e --- /dev/null +++ b/recipes/wip/emulators/game-console/vita3k/recipe.toml @@ -0,0 +1,11 @@ +#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" +[build] +template = "cmake" +dependencies = [ + "sdl2", + "gtk3", + "openssl1", +] diff --git a/recipes/wip/emulators/game-console/xbox/xemu/recipe.toml b/recipes/wip/emulators/game-console/xemu/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/xbox/xemu/recipe.toml rename to recipes/wip/emulators/game-console/xemu/recipe.toml diff --git a/recipes/wip/emulators/game-console/xbox360/xenia-canary/recipe.toml b/recipes/wip/emulators/game-console/xenia-canary/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/xbox360/xenia-canary/recipe.toml rename to recipes/wip/emulators/game-console/xenia-canary/recipe.toml diff --git a/recipes/wip/emulators/game-console/snes/zsnes/recipe.toml b/recipes/wip/emulators/game-console/zsnes/recipe.toml similarity index 100% rename from recipes/wip/emulators/game-console/snes/zsnes/recipe.toml rename to recipes/wip/emulators/game-console/zsnes/recipe.toml diff --git a/recipes/wip/emulators/pc/darling/recipe.toml b/recipes/wip/emulators/pc/darling/recipe.toml index c6f74ba58..328476067 100644 --- a/recipes/wip/emulators/pc/darling/recipe.toml +++ b/recipes/wip/emulators/pc/darling/recipe.toml @@ -1,10 +1,13 @@ -#TODO probably wrong script, see https://docs.darlinghq.org/build-instructions.html#building-and-installing +#TODO not compiled or tested +# build instructions: https://docs.darlinghq.org/build-instructions.html#building-and-installing #TODO require Git LFS installed on host -#TODO port to orbital? [source] git = "https://github.com/darlinghq/darling" [build] -template = "custom" +template = "cmake" +cmakeflags = [ + "-DTARGET_i386=OFF" +] dependencies = [ "libfuse3", "libevdev", @@ -20,21 +23,3 @@ dependencies = [ "openssl1", "libxkbfile", ] -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 - -DTARGET_i386=OFF -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" 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/finance/monero/xmrig/recipe.toml b/recipes/wip/finance/monero/xmrig/recipe.toml index 5c62f1846..991da573c 100644 --- a/recipes/wip/finance/monero/xmrig/recipe.toml +++ b/recipes/wip/finance/monero/xmrig/recipe.toml @@ -1,27 +1,15 @@ -#TODO probably wrong script, see https://xmrig.com/docs/miner/build/ubuntu -#TODO customization - https://xmrig.com/docs/miner/cmake-options +#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 = "custom" +template = "cmake" +#cmakeflags = [ +# "-DOPENSSL_ROOT_DIR=${COOKBOOK_SYSROOT}" # test if the program need this +#] dependencies = [ "openssl1", "libuv", ] -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 - -DOPENSSL_ROOT_DIR="${COOKBOOK_SYSROOT}" -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" diff --git a/recipes/wip/fuse/cvmfs/recipe.toml b/recipes/wip/fuse/cvmfs/recipe.toml index 4c35fa3b3..3a6813bb8 100644 --- a/recipes/wip/fuse/cvmfs/recipe.toml +++ b/recipes/wip/fuse/cvmfs/recipe.toml @@ -1,23 +1,9 @@ -#TODO maybe incomplete script, see https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#building-from-source +#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 = "custom" +template = "cmake" dependencies = [ "libfuse3", ] -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/fuse/dwarfs/recipe.toml b/recipes/wip/fuse/dwarfs/recipe.toml index a97778b2a..dd3623952 100644 --- a/recipes/wip/fuse/dwarfs/recipe.toml +++ b/recipes/wip/fuse/dwarfs/recipe.toml @@ -1,13 +1,14 @@ -#TODO probably wrong script, see https://github.com/mhx/dwarfs#building +#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 = "custom" +template = "cmake" dependencies = [ "libfuse3", "boost", - "brotli", + "libbrotli", "libevent", "openssl1", "lz4", @@ -15,18 +16,3 @@ dependencies = [ "libunwind", "libfmt", ] -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/fuse/httpdirfs/recipe.toml b/recipes/wip/fuse/httpdirfs/recipe.toml index 8f03b3afa..e772e3f1e 100644 --- a/recipes/wip/fuse/httpdirfs/recipe.toml +++ b/recipes/wip/fuse/httpdirfs/recipe.toml @@ -1,9 +1,10 @@ -#TODO missing script for meson, see https://github.com/fangfufu/httpdirfs#compilation +#TODO not compiled or tested +# build instructions: https://github.com/fangfufu/httpdirfs#compilation [source] git = "https://github.com/fangfufu/httpdirfs" rev = "d91bb2b2789be8a0f72c7baddac63ffb78299ad9" [build] -template = "custom" +template = "meson" dependencies = [ "libfuse3", "openssl1", diff --git a/recipes/wip/games/action/opentomb/recipe.toml b/recipes/wip/games/action/opentomb/recipe.toml index e71bedeb7..da9618736 100644 --- a/recipes/wip/games/action/opentomb/recipe.toml +++ b/recipes/wip/games/action/opentomb/recipe.toml @@ -1,8 +1,9 @@ -#TODO probably wrong script, see https://github.com/opentomb/OpenTomb#compiling +#TODO not compiled or tested +# build instructions: https://github.com/opentomb/OpenTomb#compiling [source] git = "https://github.com/opentomb/OpenTomb" [build] -template = "custom" +template = "cmake" dependencies = [ "sdl2", "libpng", @@ -10,18 +11,3 @@ dependencies = [ "openal", "mesa", ] -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/games/fps/betterspades/recipe.toml b/recipes/wip/games/fps/betterspades/recipe.toml index 1e223a364..d7ed6d1c0 100644 --- a/recipes/wip/games/fps/betterspades/recipe.toml +++ b/recipes/wip/games/fps/betterspades/recipe.toml @@ -1,9 +1,10 @@ +#TODO not compiled or tested #TODO probably missing dependencies, see https://github.com/xtreme8000/BetterSpades#build-requirements -#TODO probably wrong script, see https://github.com/xtreme8000/BetterSpades#linux +# build instructions: https://github.com/xtreme8000/BetterSpades#linux [source] git = "https://github.com/xtreme8000/BetterSpades" [build] -template = "custom" +template = "cmake" dependencies = [ "glfw3", "openal", @@ -12,18 +13,3 @@ dependencies = [ "glew", "mesa", ] -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/games/fps/et-legacy/recipe.toml b/recipes/wip/games/fps/et-legacy/recipe.toml index 80089128f..bff1a0201 100644 --- a/recipes/wip/games/fps/et-legacy/recipe.toml +++ b/recipes/wip/games/fps/et-legacy/recipe.toml @@ -1,28 +1,12 @@ -#TODO maybe incomplete script, see https://github.com/etlegacy/etlegacy#compile-and-install +#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 = "custom" +template = "cmake" dependencies = [ "sdl2", "openssl1", "mesa", ] -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/wip/games/fps/gzdoom/recipe.toml b/recipes/wip/games/fps/gzdoom/recipe.toml index bca60685c..bbb08c2b3 100644 --- a/recipes/wip/games/fps/gzdoom/recipe.toml +++ b/recipes/wip/games/fps/gzdoom/recipe.toml @@ -3,7 +3,7 @@ git = "https://github.com/ZDoom/gzdoom" rev = "6ce809efe2902e43ceaa7031b875225d3a0367de" [build] -template = "custom" +template = "cmake" dependencies = [ "sdl2", "mesa", @@ -11,20 +11,3 @@ dependencies = [ "openal", "zmusic", ] -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/wip/games/fps/openspades-free/recipe.toml b/recipes/wip/games/fps/openspades-free/recipe.toml index e87b01482..2c85ccf5a 100644 --- a/recipes/wip/games/fps/openspades-free/recipe.toml +++ b/recipes/wip/games/fps/openspades-free/recipe.toml @@ -1,6 +1,5 @@ -#TODO probably wrong script, see https://github.com/yvt/openspades#on-unixes-from-source -#TODO port GLEW to Orbital -#TODO add the FOSS assets on the script, see https://github.com/DeathByDenim/openspades-free-pak +#TODO not compiled or tested +# build instructions: https://github.com/yvt/openspades#on-unixes-from-source [source] git = "https://github.com/yvt/openspades" [build] @@ -16,21 +15,16 @@ dependencies = [ "opusfile", "libjpeg", "openal", + "curl", + "libxinerama", + "libxft", ] 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_CMAKE_FLAGS+=( + -DOPENSPADES_NONFREE_RESOURCES=OFF ) -cookbook_configure +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/rbdoom3-bfg/recipe.toml b/recipes/wip/games/fps/rbdoom3-bfg/recipe.toml index 692427e45..4380a4c68 100644 --- a/recipes/wip/games/fps/rbdoom3-bfg/recipe.toml +++ b/recipes/wip/games/fps/rbdoom3-bfg/recipe.toml @@ -1,28 +1,14 @@ -#TODO maybe incomplete script, see https://github.com/RobertBeckebans/RBDOOM-3-BFG#compiling-on-linux- +#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 = "custom" +template = "cmake" dependencies = [ "sdl2", "openal", "ffmpeg6", "libvulkan", ] -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/games/fps/unvanquished/recipe.toml b/recipes/wip/games/fps/unvanquished/recipe.toml index cd12c6eca..be786ce68 100644 --- a/recipes/wip/games/fps/unvanquished/recipe.toml +++ b/recipes/wip/games/fps/unvanquished/recipe.toml @@ -1,4 +1,5 @@ -#TODO maybe incomplete script, see https://github.com/DaemonEngine/Daemon#build-instructions +#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" @@ -22,17 +23,6 @@ dependencies = [ "opusfile", ] 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 +DYNAMIC_INIT +cookbook_cmake """ diff --git a/recipes/wip/games/fps/vkquake/recipe.toml b/recipes/wip/games/fps/vkquake/recipe.toml index 9131a3094..b16b4f845 100644 --- a/recipes/wip/games/fps/vkquake/recipe.toml +++ b/recipes/wip/games/fps/vkquake/recipe.toml @@ -1,9 +1,9 @@ -#TODO missing script for Meson, see https://github.com/Novum/vkQuake#linux-1 -#TODO port to orbital? +#TODO not compiled or tested +# build instructions: https://github.com/Novum/vkQuake#linux-1 [source] git = "https://github.com/Novum/vkQuake" [build] -template = "custom" +template = "meson" dependencies = [ "sdl2", "libvulkan", diff --git a/recipes/wip/games/fps/vkquake2/recipe.toml b/recipes/wip/games/fps/vkquake2/recipe.toml index 705d821f4..982a96e3e 100644 --- a/recipes/wip/games/fps/vkquake2/recipe.toml +++ b/recipes/wip/games/fps/vkquake2/recipe.toml @@ -1,5 +1,5 @@ -#TODO missing script for "make", see https://github.com/kondrak/vkQuake2#linux -#TODO port to orbital +#TODO missing script for gnu make +# build instructions: https://github.com/kondrak/vkQuake2#linux [source] git = "https://github.com/kondrak/vkQuake2" rev = "bdd39b142fbadf581fd9d904968a83fb9b4a929a" diff --git a/recipes/wip/games/fps/zerospades-free/recipe.toml b/recipes/wip/games/fps/zerospades-free/recipe.toml index 5e3505b02..401f8af61 100644 --- a/recipes/wip/games/fps/zerospades-free/recipe.toml +++ b/recipes/wip/games/fps/zerospades-free/recipe.toml @@ -1,6 +1,5 @@ -#TODO probably wrong script, see https://github.com/yvt/openspades#on-unixes-from-source -#TODO port GLEW to Orbital -#TODO add the FOSS assets on the script, see https://github.com/DeathByDenim/openspades-free-pak +#TODO not compiled or tested +# build instructions: https://github.com/yvt/openspades#on-unixes-from-source [source] git = "https://github.com/siecvi/zerospades" [build] @@ -16,21 +15,16 @@ dependencies = [ "opusfile", "libjpeg", "openal", + "curl", + "libxinerama", + "libxft", ] 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_CMAKE_FLAGS+=( + -DOPENSPADES_NONFREE_RESOURCES=OFF ) -cookbook_configure +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/music/composer/recipe.toml b/recipes/wip/games/music/composer/recipe.toml deleted file mode 100644 index c44ceeb3a..000000000 --- a/recipes/wip/games/music/composer/recipe.toml +++ /dev/null @@ -1,25 +0,0 @@ -#TODO maybe incomplete script -# build instructions - https://github.com/performous/performous/wiki/Composer -[source] -git = "https://github.com/performous/composer" -[build] -template = "custom" -dependencies = [ - "qt5-base", - "ffmpeg6", -] -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/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 index 98d113723..c1f4c3934 100644 --- a/recipes/wip/games/music/performous/recipe.toml +++ b/recipes/wip/games/music/performous/recipe.toml @@ -1,11 +1,11 @@ -#TODO maybe incomplete script +#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 = "custom" +template = "cmake" dependencies = [ "openblas", "fftw", @@ -24,18 +24,3 @@ dependencies = [ "aubio", "libfmt", ] -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/games/music/stepmania/recipe.toml b/recipes/wip/games/music/stepmania/recipe.toml index c36e5dd49..f0bd55fc5 100644 --- a/recipes/wip/games/music/stepmania/recipe.toml +++ b/recipes/wip/games/music/stepmania/recipe.toml @@ -1,10 +1,10 @@ -#TODO maybe incomplete script +#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 = "custom" +template = "cmake" dependencies = [ "mesa", "mesa-glu", @@ -23,18 +23,3 @@ dependencies = [ "gtk3", "libmad", ] -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/games/open-world/cytopia/recipe.toml b/recipes/wip/games/open-world/cytopia/recipe.toml index edb201261..ea8d27724 100644 --- a/recipes/wip/games/open-world/cytopia/recipe.toml +++ b/recipes/wip/games/open-world/cytopia/recipe.toml @@ -3,7 +3,7 @@ [source] git = "https://github.com/CytopiaTeam/Cytopia" [build] -template = "custom" +template = "cmake" dependencies = [ "sdl2", "sdl2-ttf", @@ -16,18 +16,3 @@ dependencies = [ "libnoise", "imgui", ] -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/games/open-world/luanti/recipe.toml b/recipes/wip/games/open-world/luanti/recipe.toml index 1d4c658b5..c591c12d7 100644 --- a/recipes/wip/games/open-world/luanti/recipe.toml +++ b/recipes/wip/games/open-world/luanti/recipe.toml @@ -1,10 +1,14 @@ -#TODO probably wrong script, see https://github.com/minetest/minetest/blob/master/doc/compiling/linux.md -#TODO customization - https://github.com/minetest/minetest/tree/master/doc/compiling#cmake-options +#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" +script = """ +git clone --depth 1 https://github.com/minetest/irrlicht.git "${COOKBOOK_SOURCE}"/lib/irrlichtmt +""" [build] -template = "custom" +template = "cmake" dependencies = [ "freetype2", "sqlite3", @@ -17,21 +21,3 @@ dependencies = [ "curl", "zstd", ] -script = """ -DYNAMIC_INIT -git clone --depth 1 https://github.com/minetest/irrlicht.git "${COOKBOOK_SOURCE}"/lib/irrlichtmt - 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/wip/games/other/shockolate/recipe.toml b/recipes/wip/games/other/shockolate/recipe.toml index 892671009..11b7e365b 100644 --- a/recipes/wip/games/other/shockolate/recipe.toml +++ b/recipes/wip/games/other/shockolate/recipe.toml @@ -9,22 +9,14 @@ dependencies = [ "libvorbis", "mesa", "sdl2", - "sdl2_mixer", + "sdl2-mixer", "zlib", ] script = """ -COOKBOOK_CONFIGURE="cmake" -COOKBOOK_CONFIGURE_FLAGS=( - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_CROSSCOMPILING=True +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" - -DCMAKE_EXE_LINKER_FLAGS="-L${COOKBOOK_SYSROOT}/lib -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 -DENABLE_FLUIDSYNTH=OFF -DENABLE_SDL2=ON -DENABLE_SOUND=ON @@ -32,10 +24,8 @@ COOKBOOK_CONFIGURE_FLAGS=( -DOPENGL_opengl_LIBRARY="-lgl" -DOPENGL_glx_LIBRARY="-lglx" -DSDL2_MIXER_LIBRARIES="-lSDL2_mixer -lvorbisfile -lvorbis -logg -lSDL2 -lorbital $("${TARGET}-pkg-config" --libs osmesa)" - "${COOKBOOK_SOURCE}" ) -cmake "${COOKBOOK_CONFIGURE_FLAGS[@]}" -make -j "${COOKBOOK_MAKE_JOBS}" +cookbook_cmake mkdir -pv "${COOKBOOK_STAGE}/home/user/systemshock" cp -v systemshock "${COOKBOOK_STAGE}/home/user/systemshock/systemshock" cp -rv "${COOKBOOK_SOURCE}/shaders" "${COOKBOOK_STAGE}/home/user/systemshock/shaders" diff --git a/recipes/wip/games/other/vvvvvv/recipe.toml b/recipes/wip/games/other/vvvvvv/recipe.toml new file mode 100644 index 000000000..92f51c390 --- /dev/null +++ b/recipes/wip/games/other/vvvvvv/recipe.toml @@ -0,0 +1,24 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/xTibor/VVVVVV" +upstream = "https://github.com/TerryCavanagh/VVVVVV" +branch = "redox" +script = "COOKBOOK_SOURCE=${COOKBOOK_SOURCE}/desktop_version" +[build] +template = "cmake" +cmakeflags = [ + "-DSDL2_INCLUDE_DIRS=${COOKBOOK_SYSROOT}/include/SDL2", + "-DSDL2_LIBRARIES="-lSDL2main -lSDL2_mixer -lSDL2 $(${TARGET}-pkg-config --libs glu) -lorbital -lz -lvorbisfile -lvorbis -logg" .", +] +dependencies = [ + "sdl2-image", + "sdl2-mixer", + "sdl2", + "liborbital", + "llvm18", + "mesa", + "mesa-glu", + "zlib", + "libogg", + "libvorbis", +] diff --git a/recipes/wip/games/other/wesnoth/recipe.toml b/recipes/wip/games/other/wesnoth/recipe.toml new file mode 100644 index 000000000..890ee7ffe --- /dev/null +++ b/recipes/wip/games/other/wesnoth/recipe.toml @@ -0,0 +1,37 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/wesnoth/wesnoth" +branch = "1.14.6" +[build] +template = "cmake" +cmakeflags = [ + "-DCMAKE_TRY_COMPILE_TARGET_TYPE=DYNAMIC_LIBRARY", + "-DENABLE_SERVER=OFF", + "-DENABLE_TESTS=OFF" + "-DCRYPTO_LIBRARY=openssl", + "-DSDL2_LIBRARY=sdl2", + "-DSDL2_IMAGE_LIBRARY=SDL2_image", + "-DSDL2_MIXER_LIBRARY=SDL2_mixer", + "-DSDL2_TTF_LIBRARY=SDL2_ttf", + "-DVORBISFILE_INCLUDE_DIR=${COOKBOOK_SYSROOT}/include", + "-DVORBISFILE_LIBRARY=vorbisfile ..", +] +dependencies = [ + "cairo", + "freetype2", + "glib", + "libjpeg", + "liborbital", + "libpng", + "libvorbis", + "llvm18", + "mesa", + "mesa-glu", + "pcre", + "pixman", + "sdl2", + "sdl2-image", + "sdl2-mixer", + "sdl2-ttf", + "zlib", +] diff --git a/recipes/wip/games/puzzle/conduit/recipe.toml b/recipes/wip/games/puzzle/conduit/recipe.toml new file mode 100644 index 000000000..81dcde1ee --- /dev/null +++ b/recipes/wip/games/puzzle/conduit/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/WizCrab/conduit-cli-game" +[build] +template = "cargo" diff --git a/recipes/wip/games/racing/supertuxkart/recipe.toml b/recipes/wip/games/racing/supertuxkart/recipe.toml index 34f0bda92..c10bc8501 100644 --- a/recipes/wip/games/racing/supertuxkart/recipe.toml +++ b/recipes/wip/games/racing/supertuxkart/recipe.toml @@ -1,8 +1,13 @@ -#TODO probably wrong script, see https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md#compiling +#TODO not compiled or tested +# build instructions: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md#compiling [source] tar = "https://github.com/supertuxkart/stk-code/releases/download/1.4/SuperTuxKart-1.4-src.tar.xz" [build] -template = "custom" +template = "cmake" +cmakeflags = [ + "-DNO_SHADERC=ON", + "-DBUILD_RECORDER=OFF", +] dependencies = [ "openal", "libogg", @@ -16,20 +21,3 @@ dependencies = [ "libjpeg", "sdl2", ] -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 - -DNO_SHADERC=on - -DBUILD_RECORDER=off -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" diff --git a/recipes/wip/games/servers/cuberite/recipe.toml b/recipes/wip/games/servers/cuberite/recipe.toml index 3a0e97b7b..7b19d796a 100644 --- a/recipes/wip/games/servers/cuberite/recipe.toml +++ b/recipes/wip/games/servers/cuberite/recipe.toml @@ -1,20 +1,6 @@ -#TODO probably wrong script, see https://github.com/cuberite/cuberite/blob/master/COMPILING.md#building-1 +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/games/space/endless-sky/recipe.toml b/recipes/wip/games/space/endless-sky/recipe.toml index d102de669..de8798177 100644 --- a/recipes/wip/games/space/endless-sky/recipe.toml +++ b/recipes/wip/games/space/endless-sky/recipe.toml @@ -1,9 +1,10 @@ -#TODO maybe incomplete script, see https://github.com/endless-sky/endless-sky/blob/master/docs/readme-cmake.md#building-the-game +#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 = "custom" +template = "cmake" dependencies = [ "sdl2", "libpng", @@ -14,18 +15,3 @@ dependencies = [ "libmad", "libuuid", ] -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/games/space/naev/recipe.toml b/recipes/wip/games/space/naev/recipe.toml index 87fc343b7..994c24605 100644 --- a/recipes/wip/games/space/naev/recipe.toml +++ b/recipes/wip/games/space/naev/recipe.toml @@ -1,8 +1,9 @@ -#TODO missing script for Meson, see https://github.com/naev/naev/wiki/Compiling-on-*nix +#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 = "custom" +template = "meson" dependencies = [ "sdl2", "sdl2-image", 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/strategy/ship-of-harkinian/recipe.toml b/recipes/wip/games/strategy/ship-of-harkinian/recipe.toml index 01b0af365..027a63941 100644 --- a/recipes/wip/games/strategy/ship-of-harkinian/recipe.toml +++ b/recipes/wip/games/strategy/ship-of-harkinian/recipe.toml @@ -1,27 +1,12 @@ -#TODO maybe incomplete script, see https://github.com/HarbourMasters/Shipwright/blob/develop/docs/BUILDING.md#linux -#TODO port to orbital? +#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 = "custom" +template = "cmake" dependencies = [ "sdl2", "libpng", "glew", ] -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/games/strategy/warsow/recipe.toml b/recipes/wip/games/strategy/warsow/recipe.toml index 1e4fdcab9..6b16cde82 100644 --- a/recipes/wip/games/strategy/warsow/recipe.toml +++ b/recipes/wip/games/strategy/warsow/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, lacking build instructions +#TODO not compiled or tested +# lacking build instructions [source] tar = "https://warsow.net/warsow_21_sdk.tar.gz" [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 -""" +template = "cmake" diff --git a/recipes/games/syobonaction/01_redox.patch b/recipes/wip/games/syobonaction/01_redox.patch similarity index 100% rename from recipes/games/syobonaction/01_redox.patch rename to recipes/wip/games/syobonaction/01_redox.patch diff --git a/recipes/games/syobonaction/recipe.sh b/recipes/wip/games/syobonaction/recipe.sh similarity index 100% rename from recipes/games/syobonaction/recipe.sh rename to recipes/wip/games/syobonaction/recipe.sh diff --git a/recipes/wip/graphics/editors/blender-lts/recipe.toml b/recipes/wip/graphics/editors/blender-lts/recipe.toml index 45fbd2e25..52b4308c9 100644 --- a/recipes/wip/graphics/editors/blender-lts/recipe.toml +++ b/recipes/wip/graphics/editors/blender-lts/recipe.toml @@ -1,11 +1,11 @@ -#TODO probably wrong script, see https://wiki.blender.org/wiki/Building_Blender/Linux/Generic_Distro -#TODO probably missing dependencies -#TODO port to Orbital -#TODO customization - https://wiki.blender.org/wiki/Building_Blender/Options +#TODO not compiled or tested +# build instructions: https://wiki.blender.org/wiki/Building_Blender/Linux/Generic_Distro +# probably missing dependencies +# customization - https://wiki.blender.org/wiki/Building_Blender/Options [source] tar = "https://download.blender.org/source/blender-3.6.5.tar.xz" [build] -template = "custom" +template = "cmake" dependencies = [ "dbus", "libdecor", @@ -24,20 +24,3 @@ dependencies = [ "mesa-x11", "libxkbcommon", ] -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/wip/graphics/editors/blender/recipe.toml b/recipes/wip/graphics/editors/blender/recipe.toml index b50d7d6d0..0399b0e69 100644 --- a/recipes/wip/graphics/editors/blender/recipe.toml +++ b/recipes/wip/graphics/editors/blender/recipe.toml @@ -1,11 +1,11 @@ -#TODO probably wrong script, see https://wiki.blender.org/wiki/Building_Blender/Linux/Generic_Distro -#TODO probably missing dependencies -#TODO port to Orbital -#TODO customization - https://wiki.blender.org/wiki/Building_Blender/Options +#TODO not compiled or tested +# build instructions: https://wiki.blender.org/wiki/Building_Blender/Linux/Generic_Distro +# probably missing dependencies +# customization - https://wiki.blender.org/wiki/Building_Blender/Options [source] tar = "https://download.blender.org/source/blender-4.1.0.tar.xz" [build] -template = "custom" +template = "cmake" dependencies = [ "dbus", "libdecor", @@ -24,20 +24,3 @@ dependencies = [ "mesa-x11", "libxkbcommon", ] -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/wip/graphics/editors/opentoonz/recipe.toml b/recipes/wip/graphics/editors/opentoonz/recipe.toml index 029a3153d..32b9b08bf 100644 --- a/recipes/wip/graphics/editors/opentoonz/recipe.toml +++ b/recipes/wip/graphics/editors/opentoonz/recipe.toml @@ -1,10 +1,11 @@ -#TODO probably wrong script, see https://github.com/opentoonz/opentoonz/blob/master/doc/how_to_build_linux.md +#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 = "custom" +template = "cmake" dependencies = [ "boost", "qt5-base", @@ -13,18 +14,3 @@ dependencies = [ "libmypaint", "opencv4", ] -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/graphics/other/appleseed/recipe.toml b/recipes/wip/graphics/other/appleseed/recipe.toml index 45a947dfb..76def06ba 100644 --- a/recipes/wip/graphics/other/appleseed/recipe.toml +++ b/recipes/wip/graphics/other/appleseed/recipe.toml @@ -1,26 +1,12 @@ -#TODO maybe incomplete script, see https://github.com/appleseedhq/appleseed/wiki/Building-appleseed-on-Linux +#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 = "custom" +template = "cmake" dependencies = [ "zlib", "qt5-base", "libnsl", ] -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/graphics/other/cmark/recipe.toml b/recipes/wip/graphics/other/cmark/recipe.toml index 0bb76c0b5..8b616f4ac 100644 --- a/recipes/wip/graphics/other/cmark/recipe.toml +++ b/recipes/wip/graphics/other/cmark/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/commonmark/cmark#installing +#TODO not compiled or tested +# build instructions: https://github.com/commonmark/cmark#installing [source] git = "https://github.com/commonmark/cmark" rev = "5ba25ff40eba44c811f79ab6a792baf945b8307c" [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 -""" +template = "cmake" diff --git a/recipes/wip/graphics/other/darktable/recipe.toml b/recipes/wip/graphics/other/darktable/recipe.toml index 9b0f4bbd0..6427794c0 100644 --- a/recipes/wip/graphics/other/darktable/recipe.toml +++ b/recipes/wip/graphics/other/darktable/recipe.toml @@ -1,9 +1,10 @@ -#TODO maybe incomplete script, see https://github.com/darktable-org/darktable?tab=readme-ov-file#linux -# dependencies - https://github.com/darktable-org/darktable?tab=readme-ov-file#dependencies +#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 = "custom" +template = "cmake" dependencies = [ "gtk3", "glib", @@ -17,18 +18,3 @@ dependencies = [ "libwebp", "libgphoto2", ] -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/graphics/other/embree/recipe.toml b/recipes/wip/graphics/other/embree/recipe.toml index 0c8bfcf4e..d5a592036 100644 --- a/recipes/wip/graphics/other/embree/recipe.toml +++ b/recipes/wip/graphics/other/embree/recipe.toml @@ -1,25 +1,11 @@ -#TODO maybe incomplete script, see https://github.com/embree/embree#linux-and-macos +#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 = "custom" +template = "cmake" dependencies = [ "glfw", "onetbb", ] -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/graphics/other/glou/recipe.toml b/recipes/wip/graphics/other/glou/recipe.toml index dd3e9ea2a..578130deb 100644 --- a/recipes/wip/graphics/other/glou/recipe.toml +++ b/recipes/wip/graphics/other/glou/recipe.toml @@ -1,4 +1,4 @@ -#TODO port to orbital +#TODO not compiled or tested [source] git = "https://github.com/Nurrl/glou" [build] diff --git a/recipes/wip/graphics/other/luxcorerender/recipe.toml b/recipes/wip/graphics/other/luxcorerender/recipe.toml index d4753ffb7..34ef517e9 100644 --- a/recipes/wip/graphics/other/luxcorerender/recipe.toml +++ b/recipes/wip/graphics/other/luxcorerender/recipe.toml @@ -1,10 +1,11 @@ -#TODO maybe incomplete script, see https://wiki.luxcorerender.org/Compiling_LuxCore +#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 = "custom" +template = "cmake" dependencies = [ "bzip2", "libtiff", @@ -15,18 +16,3 @@ dependencies = [ "openimageio", "openexr", ] -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/graphics/other/oculante/recipe.toml b/recipes/wip/graphics/other/oculante/recipe.toml index 72e854d0c..7df3c88f9 100644 --- a/recipes/wip/graphics/other/oculante/recipe.toml +++ b/recipes/wip/graphics/other/oculante/recipe.toml @@ -1,8 +1,10 @@ -#TODO needs to be ported to Orbital +#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/ospray-studio/recipe.toml b/recipes/wip/graphics/other/ospray-studio/recipe.toml index 573193cd0..542e8cc38 100644 --- a/recipes/wip/graphics/other/ospray-studio/recipe.toml +++ b/recipes/wip/graphics/other/ospray-studio/recipe.toml @@ -1,9 +1,10 @@ -#TODO maybe incomplete script, see https://github.com/ospray/ospray_studio#standard-cmake-build +#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 = "custom" +template = "cmake" dependencies = [ "ospray", "onetbb", @@ -12,18 +13,3 @@ dependencies = [ "glfw", "open-image-denoise", ] -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/graphics/other/ospray/recipe.toml b/recipes/wip/graphics/other/ospray/recipe.toml index 3a57813be..4470753ee 100644 --- a/recipes/wip/graphics/other/ospray/recipe.toml +++ b/recipes/wip/graphics/other/ospray/recipe.toml @@ -1,9 +1,10 @@ -#TODO maybe incomplete script, see https://github.com/ospray/OSPRay#building-and-finding-ospray +#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 = "custom" +template = "cmake" dependencies = [ "librkcommon", "embree", @@ -12,18 +13,3 @@ dependencies = [ "openvkl", "open-image-denoise", ] -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/graphics/other/paraview/recipe.toml b/recipes/wip/graphics/other/paraview/recipe.toml index 013791d39..3209ea4c6 100644 --- a/recipes/wip/graphics/other/paraview/recipe.toml +++ b/recipes/wip/graphics/other/paraview/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://kitware.github.io/paraviewweb/docs/configure_and_build_pvweb.html +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/graphics/other/rawtherapee/recipe.toml b/recipes/wip/graphics/other/rawtherapee/recipe.toml index 4c8a04dac..87c6b27c1 100644 --- a/recipes/wip/graphics/other/rawtherapee/recipe.toml +++ b/recipes/wip/graphics/other/rawtherapee/recipe.toml @@ -1,9 +1,10 @@ -#TODO maybe incomplete script, see https://rawpedia.rawtherapee.com/Linux#Compile_RawTherapee +#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 = "custom" +template = "cmake" dependencies = [ "gexiv2", "expat", @@ -19,18 +20,3 @@ dependencies = [ "libtiff", "zlib", ] -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/graphics/other/toybrot/recipe.toml b/recipes/wip/graphics/other/toybrot/recipe.toml index cee45b81f..29594f379 100644 --- a/recipes/wip/graphics/other/toybrot/recipe.toml +++ b/recipes/wip/graphics/other/toybrot/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe incomplete script, see https://gitlab.com/VileLasagna/toyBrot#building-toybrot +#TODO not compiled or tested +# build instructions: https://gitlab.com/VileLasagna/toyBrot#building-toybrot [source] git = "https://gitlab.com/VileLasagna/toyBrot" [build] -template = "custom" +template = "cmake" dependencies = [ "sdl2", "libpng", ] -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/graphics/other/tungsten-renderer/recipe.toml b/recipes/wip/graphics/other/tungsten-renderer/recipe.toml index 6a1069dd2..3ad8d162e 100644 --- a/recipes/wip/graphics/other/tungsten-renderer/recipe.toml +++ b/recipes/wip/graphics/other/tungsten-renderer/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://github.com/tunabrain/tungsten#compilation +#TODO not compiled or tested +# build instructions: https://github.com/tunabrain/tungsten#compilation [source] git = "https://github.com/tunabrain/tungsten" [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 -""" +template = "cmake" diff --git a/recipes/wip/graphics/other/vulkan-tools/recipe.toml b/recipes/wip/graphics/other/vulkan-tools/recipe.toml index 9b95301e8..d6b879a40 100644 --- a/recipes/wip/graphics/other/vulkan-tools/recipe.toml +++ b/recipes/wip/graphics/other/vulkan-tools/recipe.toml @@ -1,23 +1,10 @@ -#TODO probably need to be ported to Orbital -#TODO probably wrong script, see https://github.com/KhronosGroup/Vulkan-Tools/blob/main/BUILD.md +#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 = "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 - -DUPDATE_DEPS=ON -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" +template = "cmake" +cmakeflags = [ + "-DUPDATE_DEPS=ON" +] diff --git a/recipes/wip/graphics/shaders/glsl-viewer/recipe.toml b/recipes/wip/graphics/shaders/glsl-viewer/recipe.toml index 438c2a1fe..fad66faaf 100644 --- a/recipes/wip/graphics/shaders/glsl-viewer/recipe.toml +++ b/recipes/wip/graphics/shaders/glsl-viewer/recipe.toml @@ -1,5 +1,5 @@ -#TODO maybe incomplete script, see https://github.com/patriciogonzalezvivo/glslViewer/wiki/Compile-on-linux#3-compile -#TODO port to orbital +#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" @@ -10,21 +10,9 @@ dependencies = [ "ncurses", "ncursesw", "ffmpeg6", - "glfw", + "glfw3", ] script = """ export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" -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 +cookbook_cmake """ diff --git a/recipes/wip/icons/breeze-icons/recipe.toml b/recipes/wip/icons/breeze-icons/recipe.toml index 31717dab1..2c1b4d96d 100644 --- a/recipes/wip/icons/breeze-icons/recipe.toml +++ b/recipes/wip/icons/breeze-icons/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, lacking build instructions +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/image/editors/inkscape/recipe.toml b/recipes/wip/image/editors/inkscape/recipe.toml index 2f0a492ca..22f29f63b 100644 --- a/recipes/wip/image/editors/inkscape/recipe.toml +++ b/recipes/wip/image/editors/inkscape/recipe.toml @@ -1,9 +1,10 @@ -#TODO probably wrong script, see https://inkscape.org/develop/getting-started/#compile +#TODO not compiled or tested #TODO missing dependencies, see https://gitlab.com/inkscape/inkscape-ci-docker/-/raw/master/install_dependencies.sh +# build instructions: https://inkscape.org/develop/getting-started/#compile [source] tar = "https://inkscape.org/gallery/item/44467/inkscape-1.3.1.tar.xz" [build] -template = "custom" +template = "cmake" dependencies = [ "boost", "glib", @@ -42,20 +43,3 @@ dependencies = [ "liblcms", "liblapack", ] -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/wip/image/editors/krita/recipe.toml b/recipes/wip/image/editors/krita/recipe.toml index 5a1d8695d..2309295d5 100644 --- a/recipes/wip/image/editors/krita/recipe.toml +++ b/recipes/wip/image/editors/krita/recipe.toml @@ -1,10 +1,10 @@ -#TODO probably wrong script, see https://docs.krita.org/en/untranslatable_pages/building_krita.html#building-on-linux -#TODO port to orbital -#TODO maybe missing dependencies +#TODO not compiled or tested +# build instructions: https://docs.krita.org/en/untranslatable_pages/building_krita.html#building-on-linux +# maybe missing dependencies [source] tar = "https://download.kde.org/stable/krita/5.2.1/krita-5.2.1.tar.gz" [build] -template = "custom" +template = "cmake" dependencies = [ "gexiv2", "ffmpeg6", @@ -51,20 +51,3 @@ dependencies = [ "libxsimd", "libxtl", ] -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/wip/image/editors/pastel-editor/recipe.sh b/recipes/wip/image/editors/pastel-editor/recipe.sh deleted file mode 100644 index 987a251fd..000000000 --- a/recipes/wip/image/editors/pastel-editor/recipe.sh +++ /dev/null @@ -1,21 +0,0 @@ -GIT=https://gitlab.redox-os.org/redox-os/pastel.git -GIT_UPSTREAM=https://github.com/robbycerantola/pastel.git -BINDIR=/usr/bin -DEPENDS="orbital" - -function recipe_stage { - mkdir "$1/ui" - cp -rv res "$1/ui/pastel" - mkdir "$1/ui/apps" - cat > "$1/ui/apps/pastel" <<-EOF - name=Pastel - binary=/usr/bin/pastel - icon=/ui/pastel/accessories-bitmap-editor.png - accept=*.bmp - accept=*.jpg - accept=*.jpeg - accept=*.png - author=Robby Cerantola - description=Bitmap Editor - EOF -} diff --git a/recipes/wip/image/editors/xpano/recipe.toml b/recipes/wip/image/editors/xpano/recipe.toml index a45f938db..1d597d65f 100644 --- a/recipes/wip/image/editors/xpano/recipe.toml +++ b/recipes/wip/image/editors/xpano/recipe.toml @@ -1,29 +1,14 @@ -#TODO satisfy the dependencies and complete the script -# build instructions - https://github.com/krupkat/xpano#development -# linux script - https://github.com/krupkat/xpano/blob/main/misc/build/build-ubuntu-22.sh +#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 = "custom" +template = "cmake" dependencies = [ "gtk3", "opencv4", "sdl2", "libspdlog", ] -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/image/other/converseen/recipe.toml b/recipes/wip/image/other/converseen/recipe.toml index bb11b1102..c6586e603 100644 --- a/recipes/wip/image/other/converseen/recipe.toml +++ b/recipes/wip/image/other/converseen/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe incomplete script, see https://github.com/Faster3ck/Converseen/blob/main/INSTALL.md#install-converseen-using-qt6 +#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 = "custom" +template = "cmake" dependencies = [ "qt6-base", ] -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/image/upscaling/upscaler/recipe.toml b/recipes/wip/image/upscaling/upscaler/recipe.toml index b9393e380..6d6b73cfa 100644 --- a/recipes/wip/image/upscaling/upscaler/recipe.toml +++ b/recipes/wip/image/upscaling/upscaler/recipe.toml @@ -1,9 +1,10 @@ -#TODO missing script for Meson, see https://gitlab.gnome.org/World/Upscaler#meson +#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 = "custom" +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 index e66ba69c7..de2f4f7b8 100644 --- a/recipes/wip/image/upscaling/upscayl-ncnn/recipe.toml +++ b/recipes/wip/image/upscaling/upscayl-ncnn/recipe.toml @@ -1,22 +1,7 @@ -#TODO incomplete script -# build instructions - https://github.com/upscayl/upscayl-ncnn/blob/master/README.md +#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 = "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 -""" +template = "cmake" 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/archives/libzip/recipe.toml b/recipes/wip/libs/archives/libzip/recipe.toml index afe9a840e..4e7ec064a 100644 --- a/recipes/wip/libs/archives/libzip/recipe.toml +++ b/recipes/wip/libs/archives/libzip/recipe.toml @@ -1,23 +1,8 @@ -#TODO maybe incomplete script, see https://github.com/nih-at/libzip/blob/main/INSTALL.md +#TODO Promote [source] tar = "https://libzip.org/download/libzip-1.10.1.tar.gz" [build] -template = "custom" +template = "cmake" dependencies = [ "zlib", ] -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/audio/libcanberra/recipe.toml b/recipes/wip/libs/audio/libcanberra/recipe.toml new file mode 100644 index 000000000..6d0c6304a --- /dev/null +++ b/recipes/wip/libs/audio/libcanberra/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +tar = "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz" +[build] +template = "configure" diff --git a/recipes/wip/libs/audio/libopenshot-audio/recipe.toml b/recipes/wip/libs/audio/libopenshot-audio/recipe.toml index 8c018375f..5dce1ced9 100644 --- a/recipes/wip/libs/audio/libopenshot-audio/recipe.toml +++ b/recipes/wip/libs/audio/libopenshot-audio/recipe.toml @@ -1,22 +1,7 @@ -#TODO maybe incomplete script +#TODO not compiled or tested #TODO determine dependencies [source] git = "https://github.com/OpenShot/libopenshot-audio" rev = "98f08a6d4a90f3644b6c2c68efb2cbd86c75d87a" [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 -""" +template = "cmake" diff --git a/recipes/wip/libs/audio/mpg123/recipe.toml b/recipes/wip/libs/audio/mpg123/recipe.toml index d092711f4..f88873ab4 100644 --- a/recipes/wip/libs/audio/mpg123/recipe.toml +++ b/recipes/wip/libs/audio/mpg123/recipe.toml @@ -1,5 +1,11 @@ #TODO compilation error [source] -tar = "https://mpg123.de/download/mpg123-1.31.3.tar.bz2" +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 index a4c8d94b5..0f1d8352e 100644 --- a/recipes/wip/libs/audio/openal/recipe.toml +++ b/recipes/wip/libs/audio/openal/recipe.toml @@ -1,4 +1,3 @@ -#TODO probably wrong script, see https://openal-soft.org/#installing [source] tar = "https://openal-soft.org/openal-releases/openal-soft-1.24.1.tar.bz2" blake3 = "8aeaa8307d3e14331ad20761c537ffebe70975cb7c3343e8d5c0c0ed7bc16eab" @@ -17,46 +16,22 @@ dependencies = [ "zlib", ] script = """ -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 < redox.cmake < +-#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/libeigen/recipe.toml b/recipes/wip/libs/other/libeigen/recipe.toml index d47a471dd..7167c7a9f 100644 --- a/recipes/wip/libs/other/libeigen/recipe.toml +++ b/recipes/wip/libs/other/libeigen/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://gitlab.com/libeigen/eigen/-/blob/master/INSTALL?ref_type=heads +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libevent/recipe.toml b/recipes/wip/libs/other/libevent/recipe.toml index 8b6843e09..669ef8eb2 100644 --- a/recipes/wip/libs/other/libevent/recipe.toml +++ b/recipes/wip/libs/other/libevent/recipe.toml @@ -11,19 +11,7 @@ dependencies = [ "openssl1", ] script = """ -COOKBOOK_CONFIGURE="cmake" -COOKBOOK_CONFIGURE_FLAGS=( - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_CROSSCOMPILING=True - -DCMAKE_INSTALL_PREFIX="${COOKBOOK_STAGE}/" - -DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}" - -DCMAKE_SYSTEM_NAME=Generic - -DCMAKE_SYSTEM_PROCESSOR="$(echo "${TARGET}" | cut -d - -f1)" - -DCMAKE_VERBOSE_MAKEFILE=On - -DEVENT__LIBRARY_TYPE=STATIC -"${COOKBOOK_SOURCE}" -) - +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}" diff --git a/recipes/wip/libs/other/libfmt/recipe.toml b/recipes/wip/libs/other/libfmt/recipe.toml index ba81a6790..718baa3c4 100644 --- a/recipes/wip/libs/other/libfmt/recipe.toml +++ b/recipes/wip/libs/other/libfmt/recipe.toml @@ -1,21 +1,7 @@ -#TODO probably wrong script, see https://fmt.dev/latest/usage.html#building-the-library +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libfuse2/recipe.toml b/recipes/wip/libs/other/libfuse2/recipe.toml index 4f20632d9..e17f98df9 100644 --- a/recipes/wip/libs/other/libfuse2/recipe.toml +++ b/recipes/wip/libs/other/libfuse2/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing script for Meson, see https://github.com/libfuse/libfuse#installation -#TODO require the "fused" daemon (equivalent to the Linux kernel module but in user-space) +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/libfuse3/recipe.toml b/recipes/wip/libs/other/libfuse3/recipe.toml index 170c3bd73..8cd145ee5 100644 --- a/recipes/wip/libs/other/libfuse3/recipe.toml +++ b/recipes/wip/libs/other/libfuse3/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing script for Meson, see https://github.com/libfuse/libfuse#installation -#TODO require the "fused" daemon (equivalent to the Linux kernel module but in user-space) +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/libgav1/recipe.toml b/recipes/wip/libs/other/libgav1/recipe.toml index cd6307f6b..37e502a1e 100644 --- a/recipes/wip/libs/other/libgav1/recipe.toml +++ b/recipes/wip/libs/other/libgav1/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://chromium.googlesource.com/codecs/libgav1/#compile +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libgdal/recipe.toml b/recipes/wip/libs/other/libgdal/recipe.toml index 56944b4c5..ef303c132 100644 --- a/recipes/wip/libs/other/libgdal/recipe.toml +++ b/recipes/wip/libs/other/libgdal/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://gdal.org/development/building_from_source.html +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libgit2/recipe.toml b/recipes/wip/libs/other/libgit2/recipe.toml index 8b398019b..f08d3e9ab 100644 --- a/recipes/wip/libs/other/libgit2/recipe.toml +++ b/recipes/wip/libs/other/libgit2/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe wrong script, see https://github.com/libgit2/libgit2#building-libgit2---using-cmake +#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 = "custom" +template = "cmake" dependencies = [ "openssl1", ] -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/other/libgrantlee/recipe.toml b/recipes/wip/libs/other/libgrantlee/recipe.toml index 9e8d4f79b..544697ada 100644 --- a/recipes/wip/libs/other/libgrantlee/recipe.toml +++ b/recipes/wip/libs/other/libgrantlee/recipe.toml @@ -1,23 +1,9 @@ -#TODO maybe incomplete script, see https://github.com/steveire/grantlee#installation +#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 = "custom" +template = "cmake" dependencies = [ "qt5-base", ] -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/other/libhidapi/recipe.toml b/recipes/wip/libs/other/libhidapi/recipe.toml index df68a63de..bc5e83c4a 100644 --- a/recipes/wip/libs/other/libhidapi/recipe.toml +++ b/recipes/wip/libs/other/libhidapi/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe incomplete script, see https://github.com/libusb/hidapi/blob/master/BUILD.cmake.md +#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 = "custom" +template = "cmake" dependencies = [ "libiconv", ] -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/other/libimath/recipe.toml b/recipes/wip/libs/other/libimath/recipe.toml index 6462725c4..9d9b88797 100644 --- a/recipes/wip/libs/other/libimath/recipe.toml +++ b/recipes/wip/libs/other/libimath/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://imath.readthedocs.io/en/latest/install.html#linux-macos +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libimmer/recipe.toml b/recipes/wip/libs/other/libimmer/recipe.toml index 4f665fea6..aed3fe1eb 100644 --- a/recipes/wip/libs/other/libimmer/recipe.toml +++ b/recipes/wip/libs/other/libimmer/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/arximboldi/immer#usage +#TODO not compiled or tested +# build instructions: https://github.com/arximboldi/immer#usage [source] git = "https://github.com/arximboldi/immer" rev = "5875f7739a6c642ad58cbedadb509c86d421217e" [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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libinput/recipe.toml b/recipes/wip/libs/other/libinput/recipe.toml index 40bb422c4..a042016bb 100644 --- a/recipes/wip/libs/other/libinput/recipe.toml +++ b/recipes/wip/libs/other/libinput/recipe.toml @@ -1,9 +1,10 @@ -#TODO missing script for Meson, see https://wayland.freedesktop.org/libinput/doc/latest/building.html#building +#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 = "custom" +template = "meson" dependencies = [ "eudev", "libevdev", diff --git a/recipes/wip/libs/other/libjasper/recipe.toml b/recipes/wip/libs/other/libjasper/recipe.toml index 6b1b8e722..bcdf1a65a 100644 --- a/recipes/wip/libs/other/libjasper/recipe.toml +++ b/recipes/wip/libs/other/libjasper/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://github.com/jasper-software/jasper/blob/master/INSTALL.txt +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libkdcraw/recipe.toml b/recipes/wip/libs/other/libkdcraw/recipe.toml index c551a1f45..ea4789c8c 100644 --- a/recipes/wip/libs/other/libkdcraw/recipe.toml +++ b/recipes/wip/libs/other/libkdcraw/recipe.toml @@ -1,25 +1,11 @@ -#TODO maybe incomplete script, see https://invent.kde.org/graphics/libkdcraw/-/blob/master/README?ref_type=heads +#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 = "custom" +template = "cmake" dependencies = [ "libraw", "qt5-base", ] -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/other/libkomparediff2/recipe.toml b/recipes/wip/libs/other/libkomparediff2/recipe.toml index 3f1222db0..cdc05c415 100644 --- a/recipes/wip/libs/other/libkomparediff2/recipe.toml +++ b/recipes/wip/libs/other/libkomparediff2/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, lacking build instructions +#TODO not compiled or tested +# lacking build instructions [source] git = "https://invent.kde.org/sdk/libkomparediff2" rev = "ea9034ee3e4952862a937255bc6cc4ee392907f6" [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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/liblager/recipe.toml b/recipes/wip/libs/other/liblager/recipe.toml index 9c03020c3..9b9782c7a 100644 --- a/recipes/wip/libs/other/liblager/recipe.toml +++ b/recipes/wip/libs/other/liblager/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe incomplete script, see https://github.com/arximboldi/lager#usage +#TODO not compiled or tested +# build instructions: https://github.com/arximboldi/lager#usage [source] git = "https://github.com/arximboldi/lager" [build] -template = "custom" +template = "cmake" dependencies = [ "libzug", "boost", ] -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/other/liblapack/recipe.toml b/recipes/wip/libs/other/liblapack/recipe.toml index 77b1d122a..fd27e0d5f 100644 --- a/recipes/wip/libs/other/liblapack/recipe.toml +++ b/recipes/wip/libs/other/liblapack/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/Reference-LAPACK/lapack#installation +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/liblensfun/recipe.toml b/recipes/wip/libs/other/liblensfun/recipe.toml index e132a11fa..428eff77a 100644 --- a/recipes/wip/libs/other/liblensfun/recipe.toml +++ b/recipes/wip/libs/other/liblensfun/recipe.toml @@ -1,25 +1,11 @@ -#TODO maybe incomplete script, see https://github.com/lensfun/lensfun?tab=readme-ov-file#build-instructions +#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 = "custom" +template = "cmake" dependencies = [ "glib", "libpng", ] -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/other/libnlopt/recipe.toml b/recipes/wip/libs/other/libnlopt/recipe.toml index f4db165c0..39fbb7180 100644 --- a/recipes/wip/libs/other/libnlopt/recipe.toml +++ b/recipes/wip/libs/other/libnlopt/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/stevengj/nlopt#readme +#TODO not compiled or tested +# build instructions: https://github.com/stevengj/nlopt#readme [source] git = "https://github.com/stevengj/nlopt" rev = "09b3c2a6da71cabcb98d2c8facc6b83d2321ed71" [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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libnotify/recipe.toml b/recipes/wip/libs/other/libnotify/recipe.toml index 456d3cd38..9e66bfe37 100644 --- a/recipes/wip/libs/other/libnotify/recipe.toml +++ b/recipes/wip/libs/other/libnotify/recipe.toml @@ -1,8 +1,8 @@ -#TODO missing script for Meson +#TODO not compiled or tested [source] tar = "https://download.gnome.org/sources/libnotify/0.8/libnotify-0.8.3.tar.xz" [build] -template = "custom" +template = "meson" dependencies = [ "gtk3", "gdk-pixbuf", 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/libpanel/recipe.toml b/recipes/wip/libs/other/libpanel/recipe.toml index bceeb07bc..0dfe1cc64 100644 --- a/recipes/wip/libs/other/libpanel/recipe.toml +++ b/recipes/wip/libs/other/libpanel/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, lacking build instructions +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/libpeas/recipe.toml b/recipes/wip/libs/other/libpeas/recipe.toml index cf0c9090c..b7fa78888 100644 --- a/recipes/wip/libs/other/libpeas/recipe.toml +++ b/recipes/wip/libs/other/libpeas/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.gnome.org/GNOME/libpeas +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/librist/recipe.toml b/recipes/wip/libs/other/librist/recipe.toml index 39d440941..5757c5490 100644 --- a/recipes/wip/libs/other/librist/recipe.toml +++ b/recipes/wip/libs/other/librist/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing script for Meson, see https://code.videolan.org/rist/librist#compile-using-mesonninja-linux-osx-and-windows-mingw +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/librkcommon/recipe.toml b/recipes/wip/libs/other/librkcommon/recipe.toml index 10710db07..c7bb01c00 100644 --- a/recipes/wip/libs/other/librkcommon/recipe.toml +++ b/recipes/wip/libs/other/librkcommon/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe incomplete script, see https://github.com/ospray/rkcommon#building +#TODO not compiled or tested +# build instructions: https://github.com/ospray/rkcommon#building [source] git = "https://github.com/ospray/rkcommon" rev = "f15291d4789a53e5980fd9b3d2639f705d675dd7" [build] -template = "custom" +template = "cmake" dependencies = [ "onetbb", ] -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/other/libseexpr-kde/recipe.toml b/recipes/wip/libs/other/libseexpr-kde/recipe.toml index 39d010df2..6c7b11b61 100644 --- a/recipes/wip/libs/other/libseexpr-kde/recipe.toml +++ b/recipes/wip/libs/other/libseexpr-kde/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe incomplete script, see https://invent.kde.org/graphics/kseexpr#super-impatient-cmake-building-and-installing-guide +#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 = "custom" +template = "cmake" dependencies = [ "qt5-base", ] -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/other/libslirp/recipe.toml b/recipes/wip/libs/other/libslirp/recipe.toml index 5017b462a..2722021bb 100644 --- a/recipes/wip/libs/other/libslirp/recipe.toml +++ b/recipes/wip/libs/other/libslirp/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.freedesktop.org/slirp/libslirp#building +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/libsoundio/recipe.toml b/recipes/wip/libs/other/libsoundio/recipe.toml index 80a4e0fcb..31c835d4d 100644 --- a/recipes/wip/libs/other/libsoundio/recipe.toml +++ b/recipes/wip/libs/other/libsoundio/recipe.toml @@ -1,21 +1,7 @@ -#TODO probably wrong script, see https://github.com/andrewrk/libsoundio#building +#TODO not compiled or tested +# build instructions: https://github.com/andrewrk/libsoundio#building [source] git = "https://github.com/andrewrk/libsoundio" rev = "dc4f84339039ac518b6cd1c0e7683e88e25be470" [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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libspdlog/recipe.toml b/recipes/wip/libs/other/libspdlog/recipe.toml index 79400034d..295574a8c 100644 --- a/recipes/wip/libs/other/libspdlog/recipe.toml +++ b/recipes/wip/libs/other/libspdlog/recipe.toml @@ -1,20 +1,5 @@ -#TODO maybe incomplete script +#TODO not compiled or tested [source] git = "https://github.com/gabime/spdlog" [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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libsrt/recipe.toml b/recipes/wip/libs/other/libsrt/recipe.toml index d163fd078..cd8b2a748 100644 --- a/recipes/wip/libs/other/libsrt/recipe.toml +++ b/recipes/wip/libs/other/libsrt/recipe.toml @@ -1,4 +1,5 @@ -#TODO CMake error, see https://github.com/Haivision/srt/blob/master/docs/build/build-linux.md +#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" diff --git a/recipes/wip/libs/other/libssh/recipe.toml b/recipes/wip/libs/other/libssh/recipe.toml index b75d3a277..013570f22 100644 --- a/recipes/wip/libs/other/libssh/recipe.toml +++ b/recipes/wip/libs/other/libssh/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe incomplete script, see https://git.libssh.org/projects/libssh.git/tree/INSTALL#n36 +#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 = "custom" +template = "cmake" dependencies = [ "zlib", "openssl1", ] -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/other/libtheora/recipe.toml b/recipes/wip/libs/other/libtheora/recipe.toml index 95db350e5..12f2579bb 100644 --- a/recipes/wip/libs/other/libtheora/recipe.toml +++ b/recipes/wip/libs/other/libtheora/recipe.toml @@ -1,13 +1,18 @@ -#TODO the redox target is not supported on the configure script [source] -tar = "http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2" +tar = "http://downloads.xiph.org/releases/theora/libtheora-1.2.0.tar.gz" +blake3 = "b2413d6a29669063c30679eb46e09bd55b47d51e1516282bd1f5a752a8ecae91" script = """ -GNU_CONFIG_GET config.sub +DYNAMIC_INIT +autotools_recursive_regenerate """ [build] -template = "configure" +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 index bc3f10189..f20edf87f 100644 --- a/recipes/wip/libs/other/libtickit/recipe.toml +++ b/recipes/wip/libs/other/libtickit/recipe.toml @@ -1,5 +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.3.tar.gz" +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/libtool/recipe.toml b/recipes/wip/libs/other/libtool/recipe.toml index 9086e63ca..4788b7a54 100644 --- a/recipes/wip/libs/other/libtool/recipe.toml +++ b/recipes/wip/libs/other/libtool/recipe.toml @@ -1,5 +1,14 @@ -#TODO finish libtool setup +#TODO can build, not tested [source] -tar = "https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.gz" +git = "https://gitlab.redox-os.org/redox-os/libtool" +branch = "v2.5.4-redox" +shallow_clone = true +script = """ +./bootstrap \ + --skip-po \ + --force \ + --gnulib-srcdir=./gnulib +""" + [build] template = "configure" diff --git a/recipes/wip/libs/other/liburiparser/recipe.toml b/recipes/wip/libs/other/liburiparser/recipe.toml index 73f68e7d3..c95d227da 100644 --- a/recipes/wip/libs/other/liburiparser/recipe.toml +++ b/recipes/wip/libs/other/liburiparser/recipe.toml @@ -1,20 +1,5 @@ -#TODO compilation error +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libuuid/redox.patch b/recipes/wip/libs/other/libuuid/redox.patch index 3b98fa75d..1ede79c48 100644 --- a/recipes/wip/libs/other/libuuid/redox.patch +++ b/recipes/wip/libs/other/libuuid/redox.patch @@ -1,8 +1,7 @@ -diff --git a/config.sub b/config.sub -index 52f04bc..4a352eb 100755 ---- a/config.sub -+++ b/config.sub -@@ -1376,7 +1376,7 @@ case $os in +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* \ @@ -11,10 +10,39 @@ index 52f04bc..4a352eb 100755 # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) -diff --git a/randutils.c b/randutils.c -index 80893d3..a39168d 100644 ---- a/randutils.c -+++ b/randutils.c +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/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 diff --git a/recipes/wip/libs/other/libvncserver/recipe.toml b/recipes/wip/libs/other/libvncserver/recipe.toml index b56fcdce0..058ff6cb8 100644 --- a/recipes/wip/libs/other/libvncserver/recipe.toml +++ b/recipes/wip/libs/other/libvncserver/recipe.toml @@ -1,28 +1,16 @@ -#TODO probably wrong script, see https://github.com/LibVNC/libvncserver#how-to-build +#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 = "custom" +template = "cmake" +cmakeflags = [ + "-DWITH_OPENSSL=ON", + "-DWITH_GCRYPT=OFF", +] dependencies = [ "openssl1", "ffmpeg6", "libssh2", ] -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 - -DWITH_OPENSSL=ON - -DWITH_GCRYPT=OFF -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" diff --git a/recipes/wip/libs/other/libvte/recipe.toml b/recipes/wip/libs/other/libvte/recipe.toml index 4c08fd16c..b45dbdc7a 100644 --- a/recipes/wip/libs/other/libvte/recipe.toml +++ b/recipes/wip/libs/other/libvte/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.gnome.org/GNOME/vte/#installation +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/libvterm/recipe.toml b/recipes/wip/libs/other/libvterm/recipe.toml index cf68b3dce..4deb0f1dd 100644 --- a/recipes/wip/libs/other/libvterm/recipe.toml +++ b/recipes/wip/libs/other/libvterm/recipe.toml @@ -2,4 +2,12 @@ [source] tar = "https://launchpad.net/libvterm/trunk/v0.3/+download/libvterm-0.3.3.tar.gz" [build] -template = "configure" +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 index 23a72a2de..b7630f7de 100644 --- a/recipes/wip/libs/other/libvulkan/recipe.toml +++ b/recipes/wip/libs/other/libvulkan/recipe.toml @@ -1,25 +1,10 @@ -#TODO probably wrong script, see https://github.com/KhronosGroup/Vulkan-Loader/blob/main/BUILD.md -#TODO port to orbital +#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 = "custom" +template = "cmake" dependencies = [ "libxkbcommon", ] -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/other/libwayland/recipe.toml b/recipes/wip/libs/other/libwayland/recipe.toml deleted file mode 100644 index 28b54879e..000000000 --- a/recipes/wip/libs/other/libwayland/recipe.toml +++ /dev/null @@ -1,15 +0,0 @@ -#TODO missing script for Meson, see https://gitlab.freedesktop.org/wayland/wayland/-/blob/main/README.md?ref_type=heads -[source] -tar = "https://gitlab.freedesktop.org/wayland/wayland/-/releases/1.22.0/downloads/wayland-1.22.0.tar.xz" - -[build] -template = "custom" -dependencies = [ - "expat", - "libffi", - "libxml2", -] -script = """ -DYNAMIC_INIT -cookbook_meson -""" diff --git a/recipes/wip/libs/other/libwebsockets/recipe.toml b/recipes/wip/libs/other/libwebsockets/recipe.toml index a878f665a..c99518a27 100644 --- a/recipes/wip/libs/other/libwebsockets/recipe.toml +++ b/recipes/wip/libs/other/libwebsockets/recipe.toml @@ -1,24 +1,9 @@ -#TODO maybe wrong script +#TODO not compiled or tested [source] git = "https://github.com/warmcat/libwebsockets" rev = "4415e84c095857629863804e941b9e1c2e9347ef" [build] -template = "custom" +template = "cmake" dependencies = [ "openssl1", ] -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/other/libxcursor/recipe.toml b/recipes/wip/libs/other/libxcursor/recipe.toml index 882f1fad9..b0e44dff6 100644 --- a/recipes/wip/libs/other/libxcursor/recipe.toml +++ b/recipes/wip/libs/other/libxcursor/recipe.toml @@ -1,10 +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] -template = "configure" 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/libxsimd/recipe.toml b/recipes/wip/libs/other/libxsimd/recipe.toml index eb269b444..c2f013ce6 100644 --- a/recipes/wip/libs/other/libxsimd/recipe.toml +++ b/recipes/wip/libs/other/libxsimd/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/xtensor-stack/xsimd#install-from-sources +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libxtl/recipe.toml b/recipes/wip/libs/other/libxtl/recipe.toml index 4f93588d0..3c1a82981 100644 --- a/recipes/wip/libs/other/libxtl/recipe.toml +++ b/recipes/wip/libs/other/libxtl/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/xtensor-stack/xtl#install-from-sources +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/libzug/recipe.toml b/recipes/wip/libs/other/libzug/recipe.toml index cc550078d..378ad6a56 100644 --- a/recipes/wip/libs/other/libzug/recipe.toml +++ b/recipes/wip/libs/other/libzug/recipe.toml @@ -1,23 +1,9 @@ -#TODO maybe incomplete script, see https://github.com/arximboldi/zug#usage +#TODO not compiled or tested +# build instructions: https://github.com/arximboldi/zug#usage [source] git = "https://github.com/arximboldi/zug" [build] -template = "custom" +template = "cmake" dependencies = [ "boost", ] -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/other/lilv/recipe.toml b/recipes/wip/libs/other/lilv/recipe.toml index c15da0083..04e68ce91 100644 --- a/recipes/wip/libs/other/lilv/recipe.toml +++ b/recipes/wip/libs/other/lilv/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.com/lv2/lilv/-/blob/master/INSTALL.md?ref_type=heads +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/lv2/recipe.toml b/recipes/wip/libs/other/lv2/recipe.toml index bcbb450d2..e21a5da24 100644 --- a/recipes/wip/libs/other/lv2/recipe.toml +++ b/recipes/wip/libs/other/lv2/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.com/lv2/lv2/-/blob/master/INSTALL.md +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/mimalloc/recipe.toml b/recipes/wip/libs/other/mimalloc/recipe.toml index 960c6168b..a2d0b0bf1 100644 --- a/recipes/wip/libs/other/mimalloc/recipe.toml +++ b/recipes/wip/libs/other/mimalloc/recipe.toml @@ -1,21 +1,7 @@ -#TODO probably wrong script, see https://github.com/microsoft/mimalloc#macos-linux-bsd-etc +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/mlt/recipe.toml b/recipes/wip/libs/other/mlt/recipe.toml index 5fdc9d009..ca0822667 100644 --- a/recipes/wip/libs/other/mlt/recipe.toml +++ b/recipes/wip/libs/other/mlt/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://github.com/mltframework/mlt#readme +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/oidn/recipe.toml b/recipes/wip/libs/other/oidn/recipe.toml index d3bb3241f..798cff299 100644 --- a/recipes/wip/libs/other/oidn/recipe.toml +++ b/recipes/wip/libs/other/oidn/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe incomplete script, see https://github.com/OpenImageDenoise/oidn#compiling-on-linuxmacos +#TODO not compiled or tested +# build instructions: https://github.com/OpenImageDenoise/oidn#compiling-on-linuxmacos [source] git = "https://github.com/OpenImageDenoise/oidn" [build] -template = "custom" +template = "cmake" dependencies = [ "ispc", "onetbb", ] -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/other/onednn/recipe.toml b/recipes/wip/libs/other/onednn/recipe.toml index e9bb9fca1..5ea551878 100644 --- a/recipes/wip/libs/other/onednn/recipe.toml +++ b/recipes/wip/libs/other/onednn/recipe.toml @@ -1,24 +1,10 @@ -#TODO maybe incomplete script, see https://oneapi-src.github.io/oneDNN/dev_guide_build.html#linux-macos +#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 = "custom" +template = "cmake" dependencies = [ "onetbb", ] -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/other/onetbb/recipe.toml b/recipes/wip/libs/other/onetbb/recipe.toml index 7fa5af42e..223a1d9e3 100644 --- a/recipes/wip/libs/other/onetbb/recipe.toml +++ b/recipes/wip/libs/other/onetbb/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/oneapi-src/oneTBB/blob/master/INSTALL.md +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/opencolorio/recipe.toml b/recipes/wip/libs/other/opencolorio/recipe.toml index c4b7bb005..270ca315e 100644 --- a/recipes/wip/libs/other/opencolorio/recipe.toml +++ b/recipes/wip/libs/other/opencolorio/recipe.toml @@ -1,27 +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 -#TODO maybe incomplete script, see https://opencolorio.readthedocs.io/en/latest/quick_start/installation.html [source] git = "https://github.com/AcademySoftwareFoundation/OpenColorIO" rev = "92db29b9e7e298c4c2cc67c8a74944c2e7e716e5" [build] -template = "custom" +template = "cmake" dependencies = [ "expat", "imath", "zlib", ] -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/other/opencv4/recipe.toml b/recipes/wip/libs/other/opencv4/recipe.toml index 8340c64eb..c2c16eac4 100644 --- a/recipes/wip/libs/other/opencv4/recipe.toml +++ b/recipes/wip/libs/other/opencv4/recipe.toml @@ -1,22 +1,8 @@ -#TODO probably wrong script, lacking build instructions +#TODO not compiled or tested +# lacking build instructions [source] git = "https://github.com/opencv/opencv" rev = "49486f61fb25722cbcf586b7f4320921d46fb38e" [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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/openexr/recipe.toml b/recipes/wip/libs/other/openexr/recipe.toml index 0c8bceb66..f4e0aaaa7 100644 --- a/recipes/wip/libs/other/openexr/recipe.toml +++ b/recipes/wip/libs/other/openexr/recipe.toml @@ -1,25 +1,11 @@ -#TODO maybe incomplete script, see https://openexr.com/en/latest/install.html#linux-macos +#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 = "custom" +template = "cmake" dependencies = [ "libdeflate", "libimath" ] -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/other/openjpeg/recipe.toml b/recipes/wip/libs/other/openjpeg/recipe.toml index a1f373320..0a3fe8699 100644 --- a/recipes/wip/libs/other/openjpeg/recipe.toml +++ b/recipes/wip/libs/other/openjpeg/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/uclouvain/openjpeg/blob/master/INSTALL.md +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/openvkl/recipe.toml b/recipes/wip/libs/other/openvkl/recipe.toml index c4d82da5a..c027c3693 100644 --- a/recipes/wip/libs/other/openvkl/recipe.toml +++ b/recipes/wip/libs/other/openvkl/recipe.toml @@ -1,27 +1,13 @@ -#TODO maybe incomplete script, see https://github.com/openvkl/openvkl#building-open-vkl-from-source +#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 = "custom" +template = "cmake" dependencies = [ "ispc", "librkcommon", "embree", "level-zero", ] -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/other/popt/recipe.toml b/recipes/wip/libs/other/popt/recipe.toml index ccffe9137..98a185693 100644 --- a/recipes/wip/libs/other/popt/recipe.toml +++ b/recipes/wip/libs/other/popt/recipe.toml @@ -1,20 +1,6 @@ -#TODO probably wrong script, lacking build instructions +#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 = "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 -""" \ No newline at end of file +template = "cmake" diff --git a/recipes/wip/libs/other/projectm/recipe.toml b/recipes/wip/libs/other/projectm/recipe.toml index 1240f1776..600f37601 100644 --- a/recipes/wip/libs/other/projectm/recipe.toml +++ b/recipes/wip/libs/other/projectm/recipe.toml @@ -1,25 +1,11 @@ -#TODO Probably wrong script, see https://github.com/projectM-visualizer/projectm/wiki/Building-libprojectM#build-and-install-projectm +#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 = "custom" +template = "cmake" dependencies = [ "mesa", "qt5-base", ] -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/other/pystring/recipe.toml b/recipes/wip/libs/other/pystring/recipe.toml index 3d66d82ad..8b0038462 100644 --- a/recipes/wip/libs/other/pystring/recipe.toml +++ b/recipes/wip/libs/other/pystring/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, lacking build instructions +#TODO not compiled or tested +# lacking build instructions [source] git = "https://github.com/imageworks/pystring" rev = "7d16bc814ccb4cad03c300dcb77440034caa84f7" [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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/raylib/recipe.toml b/recipes/wip/libs/other/raylib/recipe.toml index cdd626f52..011342983 100644 --- a/recipes/wip/libs/other/raylib/recipe.toml +++ b/recipes/wip/libs/other/raylib/recipe.toml @@ -1,26 +1,11 @@ -#TODO port to Orbital -#TODO probably wrong script, see https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux +#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 = "custom" +template = "cmake" dependencies = [ "mesa", "libxkbcommon", ] -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/other/rubberband/recipe.toml b/recipes/wip/libs/other/rubberband/recipe.toml index 7908a22ad..e962cea6e 100644 --- a/recipes/wip/libs/other/rubberband/recipe.toml +++ b/recipes/wip/libs/other/rubberband/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://hg.sr.ht/~breakfastquay/rubberband/browse/COMPILING.md?rev=tip +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/scotch/recipe.toml b/recipes/wip/libs/other/scotch/recipe.toml index 2b28b4895..3cb29ed11 100644 --- a/recipes/wip/libs/other/scotch/recipe.toml +++ b/recipes/wip/libs/other/scotch/recipe.toml @@ -1,22 +1,8 @@ -#TODO maybe incomplete script, see https://gitlab.inria.fr/scotch/scotch#installation +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/sdl2-net/recipe.toml b/recipes/wip/libs/other/sdl2-net/recipe.toml index f15233521..f4f335410 100644 --- a/recipes/wip/libs/other/sdl2-net/recipe.toml +++ b/recipes/wip/libs/other/sdl2-net/recipe.toml @@ -1,23 +1,9 @@ -#TODO probably wrong script, lacking build instructions +#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 = "custom" +template = "cmake" dependencies = [ "sdl2", ] -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/other/simdjson/recipe.toml b/recipes/wip/libs/other/simdjson/recipe.toml index 08031f96a..5f162af51 100644 --- a/recipes/wip/libs/other/simdjson/recipe.toml +++ b/recipes/wip/libs/other/simdjson/recipe.toml @@ -1,21 +1,9 @@ -#TODO maybe incomplete script, see https://github.com/simdjson/simdjson/blob/master/HACKING.md#usage-cmake-on-64-bit-platforms-like-linux-freebsd-or-macos [source] git = "https://github.com/simdjson/simdjson" -rev = "6060be2fdf62edf4a8f51a8b0883d57d09397b30" +rev = "0c0ce1bd48baa0677dc7c0945ea7cd1e8b52b297" # 3.13.0 [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 +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 index ba3623122..6dd1ed2be 100644 --- a/recipes/wip/libs/other/snappy/recipe.toml +++ b/recipes/wip/libs/other/snappy/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/google/snappy#building +#TODO not compiled or tested +# build instructions: https://github.com/google/snappy#building [source] git = "https://github.com/google/snappy" rev = "dc05e026488865bc69313a68bcc03ef2e4ea8e83" [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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/sord/recipe.toml b/recipes/wip/libs/other/sord/recipe.toml index fc03c5ed8..a9335d540 100644 --- a/recipes/wip/libs/other/sord/recipe.toml +++ b/recipes/wip/libs/other/sord/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.com/drobilla/sord/-/blob/master/INSTALL.md?ref_type=heads +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/sratom/recipe.toml b/recipes/wip/libs/other/sratom/recipe.toml index d15d8d3c3..dc1b31a28 100644 --- a/recipes/wip/libs/other/sratom/recipe.toml +++ b/recipes/wip/libs/other/sratom/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.com/lv2/sratom/-/blob/master/INSTALL.md?ref_type=heads +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/suil/recipe.toml b/recipes/wip/libs/other/suil/recipe.toml index 7aa3f6083..49ff331ff 100644 --- a/recipes/wip/libs/other/suil/recipe.toml +++ b/recipes/wip/libs/other/suil/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.com/lv2/suil/-/blob/master/INSTALL.md?ref_type=heads +#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 = "custom" +template = "meson" diff --git a/recipes/wip/libs/other/taglib/recipe.toml b/recipes/wip/libs/other/taglib/recipe.toml index 506164f09..d75e92c6e 100644 --- a/recipes/wip/libs/other/taglib/recipe.toml +++ b/recipes/wip/libs/other/taglib/recipe.toml @@ -1,20 +1,6 @@ -#TODO probably wrong script, see https://github.com/taglib/taglib/blob/master/INSTALL.md +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/termcap/recipe.toml b/recipes/wip/libs/other/termcap/recipe.toml index d63ea82f2..77eadc226 100644 --- a/recipes/wip/libs/other/termcap/recipe.toml +++ b/recipes/wip/libs/other/termcap/recipe.toml @@ -1,5 +1,11 @@ -#TODO non-sense "permission denied" error +#TODO need testing [source] tar = "https://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz" [build] -template = "configure" +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 index 8e55be1a4..ebc359d50 100644 --- a/recipes/wip/libs/other/totem-pl-parser/recipe.toml +++ b/recipes/wip/libs/other/totem-pl-parser/recipe.toml @@ -1,8 +1,9 @@ -#TODO missing script for Meson, lacking build instructions +#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 = "configure" +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/volk/recipe.toml b/recipes/wip/libs/other/volk/recipe.toml index 656e4f7e0..4752dcaed 100644 --- a/recipes/wip/libs/other/volk/recipe.toml +++ b/recipes/wip/libs/other/volk/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://github.com/gnuradio/volk#building-on-most-x86-32-bit-and-64-bit-platforms +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/other/webkitgtk3/recipe.toml b/recipes/wip/libs/other/webkitgtk3/recipe.toml index 682b2856e..09261153c 100644 --- a/recipes/wip/libs/other/webkitgtk3/recipe.toml +++ b/recipes/wip/libs/other/webkitgtk3/recipe.toml @@ -1,6 +1,4 @@ -#TODO missing script for Ninja, see https://trac.webkit.org/wiki/BuildingGtk#BuildingWebKitGTKfromareleasetarball -#TODO port to orbital -#TODO missing dependencies, see https://archlinux.org/packages/extra/x86_64/webkitgtk-6.0/ +#TODO runtime hangs [source] tar = "https://webkitgtk.org/releases/webkitgtk-2.49.1.tar.xz" blake3 = "7f04acb2f909ad334fc623afb297ebca1d5a5005bda1682946fb37e044e45ecb" @@ -22,6 +20,7 @@ dependencies = [ "gtk3", "harfbuzz", "libepoxy", + "libatomic", "libffi", "libgcrypt", "libgpg-error", @@ -59,87 +58,41 @@ dependencies = [ ] script = """ DYNAMIC_INIT -#TODO: why are these not automatic? -LIBS=( - $("${TARGET}-pkg-config" --libs epoxy) - $("${TARGET}-pkg-config" --libs expat) - $("${TARGET}-pkg-config" --libs fontconfig) - $("${TARGET}-pkg-config" --libs freetype2) - $("${TARGET}-pkg-config" --libs fribidi) - $("${TARGET}-pkg-config" --libs gdk-3.0) - $("${TARGET}-pkg-config" --libs gdk-pixbuf-2.0) - $("${TARGET}-pkg-config" --libs gpg-error) - #$("${TARGET}-pkg-config" --libs gstreamer-1.0) - #$("${TARGET}-pkg-config" --libs gstreamer-allocators-1.0) - #$("${TARGET}-pkg-config" --libs gstreamer-app-1.0) - #$("${TARGET}-pkg-config" --libs gstreamer-audio-1.0) - #$("${TARGET}-pkg-config" --libs gstreamer-base-1.0) - #$("${TARGET}-pkg-config" --libs gstreamer-fft-1.0) - #$("${TARGET}-pkg-config" --libs gstreamer-pbutils-1.0) - #$("${TARGET}-pkg-config" --libs gstreamer-tag-1.0) - #$("${TARGET}-pkg-config" --libs gstreamer-transcoder-1.0) - #$("${TARGET}-pkg-config" --libs gstreamer-video-1.0) - $("${TARGET}-pkg-config" --libs gtk+-3.0) - $("${TARGET}-pkg-config" --libs harfbuzz-icu) - $("${TARGET}-pkg-config" --libs libffi) - $("${TARGET}-pkg-config" --libs libgcrypt) - $("${TARGET}-pkg-config" --libs libjpeg) - $("${TARGET}-pkg-config" --libs liblzma) - $("${TARGET}-pkg-config" --libs libnghttp2) - $("${TARGET}-pkg-config" --libs libpcre2-8) - $("${TARGET}-pkg-config" --libs libpng) - $("${TARGET}-pkg-config" --libs libpsl) - $("${TARGET}-pkg-config" --libs libsharpyuv) - $("${TARGET}-pkg-config" --libs libsoup-3.0) - $("${TARGET}-pkg-config" --libs libtasn1) - $("${TARGET}-pkg-config" --libs libwebp) - $("${TARGET}-pkg-config" --libs libwebpdemux) - $("${TARGET}-pkg-config" --libs libxml2) - $("${TARGET}-pkg-config" --libs libxslt) - $("${TARGET}-pkg-config" --libs pango) - $("${TARGET}-pkg-config" --libs pangofc) - $("${TARGET}-pkg-config" --libs pangoft2) - $("${TARGET}-pkg-config" --libs pixman-1) - $("${TARGET}-pkg-config" --libs sqlite3) - $("${TARGET}-pkg-config" --libs x11) - $("${TARGET}-pkg-config" --libs x11-xcb) - $("${TARGET}-pkg-config" --libs xau) - $("${TARGET}-pkg-config" --libs xcb) - $("${TARGET}-pkg-config" --libs xcb-render) - $("${TARGET}-pkg-config" --libs xext) - $("${TARGET}-pkg-config" --libs xfixes) - $("${TARGET}-pkg-config" --libs xi) - $("${TARGET}-pkg-config" --libs xrandr) - $("${TARGET}-pkg-config" --libs xrender) -) +export WEBKIT_USE_SCCACHE=1 +export PYTHONDONTWRITEBYTECODE=1 #TODO: enable more features -cookbook_cmake \ - -DCMAKE_CXX_STANDARD_LIBRARIES="${LIBS[*]}" \ - -DENABLE_GAMEPAD=OFF \ - -DENABLE_INTROSPECTION=OFF \ - -DENABLE_MEDIA_STREAM=OFF \ - -DENABLE_JOURNALD_LOG=OFF \ - -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=ON \ - -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF \ +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 +) + +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" diff --git a/recipes/wip/libs/other/webkitgtk3/redox.patch b/recipes/wip/libs/other/webkitgtk3/redox.patch index 8e1436a75..a193e23ea 100644 --- a/recipes/wip/libs/other/webkitgtk3/redox.patch +++ b/recipes/wip/libs/other/webkitgtk3/redox.patch @@ -1,6 +1,6 @@ -diff -ruwN webkitgtk-2.49.1/Source/bmalloc/bmalloc/BPlatform.h source/Source/bmalloc/bmalloc/BPlatform.h ---- webkitgtk-2.49.1/Source/bmalloc/bmalloc/BPlatform.h 2025-03-28 00:18:28.347204000 -0600 -+++ source/Source/bmalloc/bmalloc/BPlatform.h 2025-05-12 20:54:40.104051612 -0600 +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 @@ -19,9 +19,121 @@ diff -ruwN webkitgtk-2.49.1/Source/bmalloc/bmalloc/BPlatform.h source/Source/bma #define BENABLE_LIBPAS 1 #ifndef PAS_BMALLOC #define PAS_BMALLOC 1 -diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/heap/BlockDirectory.cpp source/Source/JavaScriptCore/heap/BlockDirectory.cpp ---- webkitgtk-2.49.1/Source/JavaScriptCore/heap/BlockDirectory.cpp 2025-03-20 11:07:59.015023500 -0600 -+++ source/Source/JavaScriptCore/heap/BlockDirectory.cpp 2025-05-10 21:38:36.889325942 -0600 +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 @@ -31,35 +143,9 @@ diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/heap/BlockDirectory.cpp source size_t pageSize = WTF::pageSize(); ASSERT(!(MarkedBlock::blockSize % pageSize)); auto numberOfPagesInMarkedBlock = MarkedBlock::blockSize / pageSize; -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/cpp_generator.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/cpp_generator.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/cpp_generator_templates.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/cpp_generator_templates.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_alternate_backend_dispatcher_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_alternate_backend_dispatcher_header.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_backend_dispatcher_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_backend_dispatcher_header.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_backend_dispatcher_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_backend_dispatcher_implementation.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_frontend_dispatcher_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_frontend_dispatcher_header.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_frontend_dispatcher_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_frontend_dispatcher_implementation.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_protocol_types_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_protocol_types_header.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_protocol_types_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_protocol_types_implementation.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_js_backend_commands.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_js_backend_commands.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_backend_dispatcher_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_backend_dispatcher_header.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_backend_dispatcher_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_backend_dispatcher_implementation.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_configuration_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_configuration_header.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_configuration_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_configuration_implementation.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_frontend_dispatcher_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_frontend_dispatcher_implementation.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_header.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_internal_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_internal_header.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_type_conversions_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_type_conversions_header.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_type_conversions_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_type_conversions_implementation.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_types_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_types_implementation.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generator.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generator.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generator_templates.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generator_templates.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/__init__.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/__init__.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/models.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/models.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/objc_generator.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/objc_generator.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/objc_generator_templates.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/objc_generator_templates.cpython-311.pyc differ -diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/jsc.cpp source/Source/JavaScriptCore/jsc.cpp ---- webkitgtk-2.49.1/Source/JavaScriptCore/jsc.cpp 2025-03-21 05:07:10.820055200 -0600 -+++ source/Source/JavaScriptCore/jsc.cpp 2025-05-12 21:27:55.789300618 -0600 +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) @@ -69,9 +155,9 @@ diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/jsc.cpp source/Source/JavaScri #else pause(); #endif -diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp source/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp ---- webkitgtk-2.49.1/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp 2025-03-20 11:07:59.015023500 -0600 -+++ source/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp 2025-05-11 08:15:28.272811727 -0600 +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 @@ -90,9 +176,9 @@ diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersio auto result = ([&] -> std::optional { Dl_info info { }; if (!dladdr(jsFunctionAddr, &info)) -diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/runtime/MachineContext.h source/Source/JavaScriptCore/runtime/MachineContext.h ---- webkitgtk-2.49.1/Source/JavaScriptCore/runtime/MachineContext.h 2025-03-20 11:07:59.015023500 -0600 -+++ source/Source/JavaScriptCore/runtime/MachineContext.h 2025-05-12 20:27:42.492098710 -0600 +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) @@ -152,11 +238,9 @@ diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/runtime/MachineContext.h sourc #if CPU(X86_64) return reinterpret_cast((uintptr_t&) machineContext.r8); #else -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/wasm/__pycache__/generateWasm.cpython-311.pyc and source/Source/JavaScriptCore/wasm/__pycache__/generateWasm.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/JavaScriptCore/yarr/__pycache__/hasher.cpython-311.pyc and source/Source/JavaScriptCore/yarr/__pycache__/hasher.cpython-311.pyc differ -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/GLESv2.cmake source/Source/ThirdParty/ANGLE/GLESv2.cmake ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/GLESv2.cmake 2025-02-17 05:59:58.567796700 -0700 -+++ source/Source/ThirdParty/ANGLE/GLESv2.cmake 2025-05-10 20:36:08.275484081 -0600 +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) @@ -166,18 +250,18 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/GLESv2.cmake source/Source/T "src/common/system_utils_posix.cpp" ) endif() -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/PlatformGTK.cmake source/Source/ThirdParty/ANGLE/PlatformGTK.cmake ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/PlatformGTK.cmake 2023-10-21 01:33:32.730009300 -0600 -+++ source/Source/ThirdParty/ANGLE/PlatformGTK.cmake 2025-05-10 20:22:26.792451858 -0600 +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 webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/log_utils.h source/Source/ThirdParty/ANGLE/src/common/log_utils.h ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/log_utils.h 2025-02-17 05:59:58.571796700 -0700 -+++ source/Source/ThirdParty/ANGLE/src/common/log_utils.h 2025-05-10 20:10:39.639595675 -0600 +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'); } @@ -191,9 +275,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/log_utils.h sourc }; } // namespace priv -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/platform.h source/Source/ThirdParty/ANGLE/src/common/platform.h ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/platform.h 2024-09-03 00:28:47.067031900 -0600 -+++ source/Source/ThirdParty/ANGLE/src/common/platform.h 2025-05-10 20:07:40.561378854 -0600 +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__) || \ @@ -203,9 +287,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/platform.h source # define ANGLE_PLATFORM_POSIX 1 #else # error Unsupported platform. -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/system_utils.h source/Source/ThirdParty/ANGLE/src/common/system_utils.h ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/system_utils.h 2024-05-30 05:59:22.953676200 -0600 -+++ source/Source/ThirdParty/ANGLE/src/common/system_utils.h 2025-05-13 10:29:39.241586171 -0600 +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 @@ -217,9 +301,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/system_utils.h so } // namespace angle #endif // COMMON_SYSTEM_UTILS_H_ -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp source/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp 2024-05-30 05:59:22.953676200 -0600 -+++ source/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp 2025-05-10 20:28:38.268901621 -0600 +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 @@ -232,9 +316,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/system_utils_posi namespace angle { -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp source/Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp 2024-06-25 02:04:37.142420000 -0600 -+++ source/Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp 2025-05-13 10:31:32.029891938 -0600 +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() @@ -245,9 +329,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp while (true) { -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp source/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp 2025-02-05 02:14:42.678567400 -0700 -+++ source/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp 2025-05-10 20:42:33.040029309 -0600 +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 @@ -266,9 +350,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp sou # if defined(ANGLE_USE_GBM) if (platformType == 0) { -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp source/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp 2025-02-17 05:59:58.575796600 -0700 -+++ source/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CLCommandQueueVk.cpp 2025-05-13 10:30:15.002645630 -0600 +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() @@ -279,9 +363,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan while (true) { -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandQueue.cpp source/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandQueue.cpp ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandQueue.cpp 2025-02-05 02:14:42.690567300 -0700 -+++ source/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandQueue.cpp 2025-05-13 10:30:05.421614993 -0600 +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() @@ -292,9 +376,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan while (true) { -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libGLESv2.gni source/Source/ThirdParty/ANGLE/src/libGLESv2.gni ---- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libGLESv2.gni 2025-02-17 05:59:58.587796200 -0700 -+++ source/Source/ThirdParty/ANGLE/src/libGLESv2.gni 2025-05-10 20:36:18.426498466 -0600 +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) { @@ -304,9 +388,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libGLESv2.gni source/Sou "src/common/system_utils_posix.cpp", ] } -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h source/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h ---- webkitgtk-2.49.1/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h 2024-08-14 02:56:17.506453500 -0600 -+++ source/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h 2025-05-10 21:10:41.689374796 -0600 +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 @@ -316,9 +400,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSe #define HAVE_LOCALE_T 0 #else #define HAVE_LOCALE_T 1 -diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp source/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp ---- webkitgtk-2.49.1/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp 2024-05-30 05:59:23.965655000 -0600 -+++ source/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp 2025-05-10 21:14:33.304664836 -0600 +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); @@ -328,9 +412,9 @@ diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp completeSize = malloc_usable_size(addr); SkASSERT(completeSize >= size); #elif defined(SK_BUILD_FOR_WIN) -diff -ruwN webkitgtk-2.49.1/Source/WebCore/page/Page.cpp source/Source/WebCore/page/Page.cpp ---- webkitgtk-2.49.1/Source/WebCore/page/Page.cpp 2025-04-01 01:53:09.527295000 -0600 -+++ source/Source/WebCore/page/Page.cpp 2025-06-14 18:21:41.320992545 -0600 +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(); @@ -354,9 +438,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WebCore/page/Page.cpp source/Source/WebCore/p } #if ENABLE(MEDIA_STREAM) -diff -ruwN webkitgtk-2.49.1/Source/WebCore/PlatformGTK.cmake source/Source/WebCore/PlatformGTK.cmake ---- webkitgtk-2.49.1/Source/WebCore/PlatformGTK.cmake 2024-12-16 02:07:48.162613200 -0700 -+++ source/Source/WebCore/PlatformGTK.cmake 2025-05-10 19:05:57.526658690 -0600 +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 @@ ) @@ -379,9 +463,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WebCore/PlatformGTK.cmake source/Source/WebCo ${GIO_UNIX_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${LIBSECRET_INCLUDE_DIRS} -diff -ruwN webkitgtk-2.49.1/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp source/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp ---- webkitgtk-2.49.1/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp 2025-03-31 03:35:43.461813700 -0600 -+++ source/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp 2025-06-15 20:53:04.313171066 -0600 +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 @@ -398,9 +482,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp s #define SOCKET_TYPE SOCK_SEQPACKET #else #if USE(GLIB) -diff -ruwN webkitgtk-2.49.1/Source/WebKit/PlatformGTK.cmake source/Source/WebKit/PlatformGTK.cmake ---- webkitgtk-2.49.1/Source/WebKit/PlatformGTK.cmake 2025-03-05 03:09:47.273706000 -0700 -+++ source/Source/WebKit/PlatformGTK.cmake 2025-05-10 18:54:43.437475299 -0600 +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 @@ ) @@ -409,13 +493,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WebKit/PlatformGTK.cmake source/Source/WebKit ${GIO_UNIX_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${GSTREAMER_INCLUDE_DIRS} -Binary files webkitgtk-2.49.1/Source/WebKit/Scripts/webkit/__pycache__/__init__.cpython-311.pyc and source/Source/WebKit/Scripts/webkit/__pycache__/__init__.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/WebKit/Scripts/webkit/__pycache__/messages.cpython-311.pyc and source/Source/WebKit/Scripts/webkit/__pycache__/messages.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/WebKit/Scripts/webkit/__pycache__/model.cpython-311.pyc and source/Source/WebKit/Scripts/webkit/__pycache__/model.cpython-311.pyc differ -Binary files webkitgtk-2.49.1/Source/WebKit/Scripts/webkit/__pycache__/parser.cpython-311.pyc and source/Source/WebKit/Scripts/webkit/__pycache__/parser.cpython-311.pyc differ -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/glib/FileSystemGlib.cpp source/Source/WTF/wtf/glib/FileSystemGlib.cpp ---- webkitgtk-2.49.1/Source/WTF/wtf/glib/FileSystemGlib.cpp 2024-12-16 02:07:48.134613800 -0700 -+++ source/Source/WTF/wtf/glib/FileSystemGlib.cpp 2025-05-10 20:14:04.266843426 -0600 +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 @@ -425,9 +505,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/glib/FileSystemGlib.cpp source/Source CString currentExecutablePath() { return { }; -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/InlineASM.h source/Source/WTF/wtf/InlineASM.h ---- webkitgtk-2.49.1/Source/WTF/wtf/InlineASM.h 2024-09-23 04:54:44.750106000 -0600 -+++ source/Source/WTF/wtf/InlineASM.h 2025-05-10 21:34:44.313517406 -0600 +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) \ @@ -438,9 +518,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/InlineASM.h source/Source/WTF/wtf/Inl // GNU as-compatible syntax. #define LOCAL_LABEL_STRING(name) ".L" #name #endif -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/PlatformHave.h source/Source/WTF/wtf/PlatformHave.h ---- webkitgtk-2.49.1/Source/WTF/wtf/PlatformHave.h 2025-04-02 06:09:45.800669000 -0600 -+++ source/Source/WTF/wtf/PlatformHave.h 2025-05-11 08:45:52.150157369 -0600 +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 @@ -450,9 +530,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/PlatformHave.h source/Source/WTF/wtf/ #define HAVE_MACHINE_CONTEXT 1 #endif -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/PlatformOS.h source/Source/WTF/wtf/PlatformOS.h ---- webkitgtk-2.49.1/Source/WTF/wtf/PlatformOS.h 2025-04-02 23:49:09.282701700 -0600 -+++ source/Source/WTF/wtf/PlatformOS.h 2025-05-10 21:44:33.694803473 -0600 +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) \ @@ -463,9 +543,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/PlatformOS.h source/Source/WTF/wtf/Pl #define WTF_OS_UNIX 1 #endif -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/PlatformRegisters.h source/Source/WTF/wtf/PlatformRegisters.h ---- webkitgtk-2.49.1/Source/WTF/wtf/PlatformRegisters.h 2024-11-20 06:56:01.847236400 -0700 -+++ source/Source/WTF/wtf/PlatformRegisters.h 2025-05-10 19:12:14.761916702 -0600 +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) @@ -475,9 +555,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/PlatformRegisters.h source/Source/WTF #else #include #endif -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/posix/CPUTimePOSIX.cpp source/Source/WTF/wtf/posix/CPUTimePOSIX.cpp ---- webkitgtk-2.49.1/Source/WTF/wtf/posix/CPUTimePOSIX.cpp 2023-09-18 01:56:45.363115500 -0600 -+++ source/Source/WTF/wtf/posix/CPUTimePOSIX.cpp 2025-05-10 19:30:23.676993788 -0600 +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() @@ -493,9 +573,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/posix/CPUTimePOSIX.cpp source/Source/ } } -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/posix/FileHandlePOSIX.cpp source/Source/WTF/wtf/posix/FileHandlePOSIX.cpp ---- webkitgtk-2.49.1/Source/WTF/wtf/posix/FileHandlePOSIX.cpp 2025-03-21 05:07:10.828055100 -0600 -+++ source/Source/WTF/wtf/posix/FileHandlePOSIX.cpp 2025-05-10 19:26:54.845585962 -0600 +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 @@ -507,9 +587,9 @@ diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/posix/FileHandlePOSIX.cpp source/Sour namespace WTF::FileSystemImpl { std::optional FileHandle::read(std::span data) -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/posix/ThreadingPOSIX.cpp source/Source/WTF/wtf/posix/ThreadingPOSIX.cpp ---- webkitgtk-2.49.1/Source/WTF/wtf/posix/ThreadingPOSIX.cpp 2025-03-05 03:09:47.149706400 -0700 -+++ source/Source/WTF/wtf/posix/ThreadingPOSIX.cpp 2025-05-10 19:19:09.728119543 -0600 +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) @@ -519,37 +599,3 @@ diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/posix/ThreadingPOSIX.cpp source/Sourc Locker locker { m_mutex }; int policy; -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/RAMSize.cpp source/Source/WTF/wtf/RAMSize.cpp ---- webkitgtk-2.49.1/Source/WTF/wtf/RAMSize.cpp 2024-10-01 01:40:32.303785300 -0600 -+++ source/Source/WTF/wtf/RAMSize.cpp 2025-05-12 21:08:59.548628775 -0600 -@@ -46,7 +46,7 @@ - - namespace WTF { - --#if OS(WINDOWS) -+#if OS(WINDOWS) || defined(__redox__) - static constexpr size_t ramSizeGuess = 512 * MB; - #endif - -@@ -64,6 +64,9 @@ - struct sysinfo si; - sysinfo(&si); - return si.totalram * si.mem_unit; -+#elif defined(__redox__) -+ //TODO: implement using /scheme/mem -+ return ramSizeGuess; - #elif OS(UNIX) || OS(HAIKU) - long pages = sysconf(_SC_PHYS_PAGES); - long pageSize = sysconf(_SC_PAGE_SIZE); -diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/StackBounds.cpp source/Source/WTF/wtf/StackBounds.cpp ---- webkitgtk-2.49.1/Source/WTF/wtf/StackBounds.cpp 2025-03-18 02:33:00.063181400 -0600 -+++ source/Source/WTF/wtf/StackBounds.cpp 2025-05-10 19:16:43.976048337 -0600 -@@ -120,6 +120,8 @@ - #if HAVE(PTHREAD_NP_H) || OS(NETBSD) - // e.g. on FreeBSD 5.4, neundorf@kde.org - pthread_attr_get_np(thread, &sattr); -+#elif defined(__redox__) -+ //TODO - #else - // FIXME: this function is non-portable; other POSIX systems may have different np alternatives - pthread_getattr_np(thread, &sattr); diff --git a/recipes/wip/libs/other/webkitgtk4/recipe.toml b/recipes/wip/libs/other/webkitgtk4/recipe.toml index 442fe96a7..d46196276 100644 --- a/recipes/wip/libs/other/webkitgtk4/recipe.toml +++ b/recipes/wip/libs/other/webkitgtk4/recipe.toml @@ -1,40 +1,100 @@ -#TODO missing script for Ninja, see https://trac.webkit.org/wiki/BuildingGtk#BuildingWebKitGTKfromareleasetarball -#TODO port to orbital -#TODO missing dependencies, see https://archlinux.org/packages/extra/x86_64/webkitgtk-6.0/ +#TODO not compiled or tested [source] -tar = "https://webkitgtk.org/releases/webkitgtk-2.42.2.tar.xz" +tar = "https://webkitgtk.org/releases/webkitgtk-2.49.1.tar.xz" +blake3 = "7f04acb2f909ad334fc623afb297ebca1d5a5005bda1682946fb37e044e45ecb" +#patches = ["redox.patch"] + [build] template = "custom" dependencies = [ - "gtk4", + "atk", "cairo", + "expat", "fontconfig", "freetype2", + "fribidi", + "gdk-pixbuf", + "gettext", "glib", - "gstreamer", + #TODO "gstreamer", + "gtk4", "harfbuzz", - "libavif", - "mesa", "libepoxy", + "libatomic", + "libffi", "libgcrypt", + "libgpg-error", + "libiconv", + "libicu", + "libjpeg", "libpng", + "libpsl", + "libpthread-stubs", + "libsoup", + "libtasn1", "libwebp", + "libx11", + "libxau", + "libxcb", + "libxext", + "libxfixes", + "libxi", "libxml2", - "zlib", + "libxrandr", + "libxrender", + "libxslt", + "libxxf86vm", + "mesa-x11", + "nghttp2", + "pango", + "pcre2", + "pixman", + "shared-mime-info", "sqlite3", + "x11proto", + "xextproto", + "xz", + "zlib", ] 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}" +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_configure + +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/xxhash/recipe.toml b/recipes/wip/libs/other/xxhash/recipe.toml index 20f056531..902e13476 100644 --- a/recipes/wip/libs/other/xxhash/recipe.toml +++ b/recipes/wip/libs/other/xxhash/recipe.toml @@ -1,6 +1,11 @@ -#TODO missing script for building, lacking build instructions +#TODO promote [source] git = "https://github.com/Cyan4973/xxHash" -rev = "bbb27a5efb85b92a0486cf361a8635715a53f6ba" +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/qt4/recipe.toml b/recipes/wip/libs/qt4/recipe.toml index 92e1abe5b..b45036ec2 100644 --- a/recipes/wip/libs/qt4/recipe.toml +++ b/recipes/wip/libs/qt4/recipe.toml @@ -1,5 +1,4 @@ -#TODO find a tarball link -#TODO port to Orbital +#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] diff --git a/recipes/wip/libs/qt5/qt5-webkit/recipe.toml b/recipes/wip/libs/qt5/qt5-webkit/recipe.toml index cf71dd2e0..d36dd52b6 100644 --- a/recipes/wip/libs/qt5/qt5-webkit/recipe.toml +++ b/recipes/wip/libs/qt5/qt5-webkit/recipe.toml @@ -1,10 +1,11 @@ -#TODO probably wrong branch -#TODO maybe incomplete script, see https://github.com/qtwebkit/qtwebkit/wiki/Building-QtWebKit-on-Linux +#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 = "custom" +template = "cmake" dependencies = [ "qt5-base", "qt5-guiaddons", @@ -25,18 +26,3 @@ dependencies = [ "glib", "gstreamer", ] -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/qt6/qt6-full/recipe.toml b/recipes/wip/libs/qt6/qt6-full/recipe.toml index 8dd76934a..feecc13ac 100644 --- a/recipes/wip/libs/qt6/qt6-full/recipe.toml +++ b/recipes/wip/libs/qt6/qt6-full/recipe.toml @@ -1,9 +1,9 @@ -#TODO port to Orbital -#TODO Missing script for GNU Autotools and CMake +#TODO not compiled or tested +# probably wrong template [source] tar = "https://download.qt.io/official_releases/qt/6.6/6.6.1/single/qt-everywhere-src-6.6.1.tar.xz" [build] -template = "custom" +template = "cmake" dependencies = [ "fontconfig", "freetype2", diff --git a/recipes/wip/libs/tls/mbedtls/recipe.toml b/recipes/wip/libs/tls/mbedtls/recipe.toml index efb6a3f58..42d21aac5 100644 --- a/recipes/wip/libs/tls/mbedtls/recipe.toml +++ b/recipes/wip/libs/tls/mbedtls/recipe.toml @@ -1,22 +1,7 @@ -#TODO probaly wrong script, see https://mbed-tls.readthedocs.io/en/latest/getting_started/building/#building-with-cmake -# They say that the CMake method is better than GNU make +#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 = "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 -""" +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..6ce485eee --- /dev/null +++ b/recipes/wip/libs/tls/openssl3/recipe.toml @@ -0,0 +1,29 @@ +[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%%-*}" +export ARFLAGS=cr +COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/Configure" +COOKBOOK_CONFIGURE_FLAGS=( + no-tests + no-unit-test + shared + zlib + enable-zstd + "redox-${ARCH}" + --prefix="/usr" +) +"${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/video/libmatroska/recipe.toml b/recipes/wip/libs/video/libmatroska/recipe.toml index a5b2b0ba8..4dc091649 100644 --- a/recipes/wip/libs/video/libmatroska/recipe.toml +++ b/recipes/wip/libs/video/libmatroska/recipe.toml @@ -1,20 +1,6 @@ -#TODO probably wrong script, see https://github.com/Matroska-Org/libmatroska#building-and-installing +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/libs/video/libopenshot-video/recipe.toml b/recipes/wip/libs/video/libopenshot-video/recipe.toml index 0b861b24d..a203ccffd 100644 --- a/recipes/wip/libs/video/libopenshot-video/recipe.toml +++ b/recipes/wip/libs/video/libopenshot-video/recipe.toml @@ -1,10 +1,10 @@ -#TODO maybe incomplete script -#TODO determine dependencies - https://github.com/OpenShot/libopenshot/wiki/Linux-Build-Instructions +#TODO not compiled or tested +#TODO determine dependencies: https://github.com/OpenShot/libopenshot/wiki/Linux-Build-Instructions [source] git = "https://github.com/OpenShot/libopenshot" rev = "3170768e0ccbaad5b2a4696e84dd649738ec1a1b" [build] -template = "custom" +template = "cmake" dependencies = [ "libopenshot-audio", "ffmpeg6", @@ -17,18 +17,3 @@ dependencies = [ "babl", "imagemagick", ] -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/math/primesieve/recipe.toml b/recipes/wip/math/primesieve/recipe.toml index b94f4301d..75b9866d3 100644 --- a/recipes/wip/math/primesieve/recipe.toml +++ b/recipes/wip/math/primesieve/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/kimwalisch/primesieve/blob/master/doc/BUILD.md +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/monitors/bottom/recipe.toml b/recipes/wip/monitors/bottom/recipe.toml index 1032de526..530c4186f 100644 --- a/recipes/wip/monitors/bottom/recipe.toml +++ b/recipes/wip/monitors/bottom/recipe.toml @@ -1,5 +1,6 @@ -#TODO starship-battery crate compilation error +#TODO missing data [source] -git = "https://github.com/ClementTsang/bottom" +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 index ca3945b36..3f0a2d44e 100644 --- a/recipes/wip/monitors/conky/recipe.toml +++ b/recipes/wip/monitors/conky/recipe.toml @@ -1,4 +1,5 @@ -#TODO probably wrong script, see https://conky.cc/documents/compiling +#TODO not compiled or tested +# build instructions: https://conky.cc/documents/compiling [source] git = "https://github.com/brndnmtthws/conky" rev = "bbdc7081aec27daafca07fc40523335a2ea0a992" @@ -12,17 +13,5 @@ dependencies = [ ] script = """ export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" - 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 +cookbook_cmake """ diff --git a/recipes/wip/monitors/htop/recipe.toml b/recipes/wip/monitors/htop/recipe.toml index 6116bcbc0..f4e554be4 100644 --- a/recipes/wip/monitors/htop/recipe.toml +++ b/recipes/wip/monitors/htop/recipe.toml @@ -1,18 +1,22 @@ -#TODO compilation error -#TODO port to redox -#TODO make ncursesw work -# build instructions - https://github.com/htop-dev/htop#build-instructions +#TODO Promote [source] -tar = "https://github.com/htop-dev/htop/releases/download/3.3.0/htop-3.3.0.tar.xz" +git = "https://github.com/willnode/htop" +branch = "redox" +script = """ +DYNAMIC_INIT +autotools_recursive_regenerate +""" + [build] -template = "custom" +template = "configure" +configureflags = [ + "--disable-unicode", +] dependencies = [ "ncurses", ] -script = """ -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" -COOKBOOK_CONFIGURE_FLAGS+=( - --disable-unicode -) -cookbook_configure -""" + +[package] +dependencies = [ + "terminfo" +] 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/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/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/transmission-daemon/recipe.toml b/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml index 4e12ca4b3..867a34f86 100644 --- a/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml +++ b/recipes/wip/net/bittorrent/transmission-daemon/recipe.toml @@ -1,24 +1,10 @@ -#TODO probably wrong script, see https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#on-unix +#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 = "custom" +template = "cmake" dependencies = [ "openssl1", "curl", ] -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/net/bittorrent/transmission-gtk/recipe.toml b/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml index f365f3ce8..d4646b4ea 100644 --- a/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml +++ b/recipes/wip/net/bittorrent/transmission-gtk/recipe.toml @@ -1,25 +1,11 @@ -#TODO probably wrong script, see https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#on-unix +#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 = "custom" +template = "cmake" dependencies = [ "openssl1", "curl", "gtk3mm", ] -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/net/chat/telegram-desktop/recipe.toml b/recipes/wip/net/chat/telegram-desktop/recipe.toml index 4774399b2..e8da71226 100644 --- a/recipes/wip/net/chat/telegram-desktop/recipe.toml +++ b/recipes/wip/net/chat/telegram-desktop/recipe.toml @@ -1,9 +1,9 @@ -#TODO probably wrong script, lacking build instructions -#TODO port to orbital +#TODO not compiled or tested +# lacking build instructions [source] -tar = "https://github.com/telegramdesktop/tdesktop/releases/download/v4.11.6/tdesktop-4.11.6-full.tar.gz" +tar = "https://github.com/telegramdesktop/tdesktop/releases/download/v6.2.3/tdesktop-6.2.3-full.tar.gz" [build] -template = "custom" +template = "cmake" dependencies = [ "qt6-svg", "qt6-imageformats", @@ -21,18 +21,3 @@ dependencies = [ "libmd", "libbrotli", ] -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/net/download/parabolic/recipe.toml b/recipes/wip/net/download/parabolic/recipe.toml index ba84290f8..4c3104fa4 100644 --- a/recipes/wip/net/download/parabolic/recipe.toml +++ b/recipes/wip/net/download/parabolic/recipe.toml @@ -1,21 +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 = "b2188390ce14b83c41c68eef87e833d6fd8b7d2f" +rev = "7309661a25948c56f25383c464a1b284bdeb00e7" [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 -""" +template = "cmake" diff --git a/recipes/wip/net/gemini/lagrange/recipe.toml b/recipes/wip/net/gemini/lagrange/recipe.toml index d67691d06..db5f9d199 100644 --- a/recipes/wip/net/gemini/lagrange/recipe.toml +++ b/recipes/wip/net/gemini/lagrange/recipe.toml @@ -1,9 +1,13 @@ -#TODO probably wrong script, see https://github.com/skyjake/lagrange#how-to-compile +#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.17.4/lagrange-1.17.4.tar.gz" +tar = "https://git.skyjake.fi/gemini/lagrange/releases/download/v1.19.3/lagrange-1.19.3.tar.gz" [build] -template = "custom" +template = "cmake" +cmakeflags = [ + "-DENABLE_MPG123=OFF" +] dependencies = [ "sdl2", "openssl1", @@ -12,20 +16,5 @@ dependencies = [ "pcre", "fribidi", "libunistring", + #"mpg123", ] -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 - -DENABLE_MPG123=OFF -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" 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/nginx/recipe.toml b/recipes/wip/net/http/nginx/recipe.toml deleted file mode 100644 index 26da4eeeb..000000000 --- a/recipes/wip/net/http/nginx/recipe.toml +++ /dev/null @@ -1,5 +0,0 @@ -#TODO Compilation error -[source] -tar = "https://nginx.org/download/nginx-1.26.0.tar.gz" -[build] -template = "configure" 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/onion-routing/i2pd/recipe.toml b/recipes/wip/net/onion-routing/i2pd/recipe.toml index ab531aea2..6056125cc 100644 --- a/recipes/wip/net/onion-routing/i2pd/recipe.toml +++ b/recipes/wip/net/onion-routing/i2pd/recipe.toml @@ -1,26 +1,12 @@ -#TODO probably wrong script, see https://i2pd.readthedocs.io/en/latest/devs/building/unix/ +#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 = "custom" +template = "cmake" dependencies = [ "boost", "openssl1", "zlib", ] -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/net/onion-routing/lokinet/recipe.toml b/recipes/wip/net/onion-routing/lokinet/recipe.toml index 1eda4cdbe..0061eb0b7 100644 --- a/recipes/wip/net/onion-routing/lokinet/recipe.toml +++ b/recipes/wip/net/onion-routing/lokinet/recipe.toml @@ -1,8 +1,9 @@ -#TODO probably wrong script, see https://github.com/oxen-io/lokinet/blob/dev/docs/install.md#building +#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 = "custom" +template = "cmake" dependencies = [ "libcap", "libuv", @@ -14,19 +15,3 @@ dependencies = [ "unbound", "nlohmann-json", ] -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 - -DBUILD_SHARED_LIBS=OFF -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" 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/nss-pem/recipe.toml b/recipes/wip/net/other/nss-pem/recipe.toml index 3124794e1..15b7a66f2 100644 --- a/recipes/wip/net/other/nss-pem/recipe.toml +++ b/recipes/wip/net/other/nss-pem/recipe.toml @@ -1,20 +1,6 @@ -#TODO probably wrong script, see https://github.com/kdudka/nss-pem/blob/master/README +#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 = "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 -""" +template = "cmake" 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/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/rsync/recipe.toml b/recipes/wip/net/other/rsync/recipe.toml deleted file mode 100644 index e5dcf2109..000000000 --- a/recipes/wip/net/other/rsync/recipe.toml +++ /dev/null @@ -1,12 +0,0 @@ -#TODO make all dependencies work -[source] -tar = "https://download.samba.org/pub/rsync/src/rsync-3.2.7.tar.gz" -[build] -template = "configure" -dependencies = [ - "zstd", - "zlib", - "lz4", - "popt", - "xxhash", -] 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/srsran-4g/recipe.toml b/recipes/wip/net/other/srsran-4g/recipe.toml index be0d308f4..7c4d12331 100644 --- a/recipes/wip/net/other/srsran-4g/recipe.toml +++ b/recipes/wip/net/other/srsran-4g/recipe.toml @@ -1,25 +1,11 @@ -#TODO maybe incomplete script, see https://docs.srsran.com/projects/4g/en/latest/general/source/1_installation.html#installation-from-source +#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 = "custom" +template = "cmake" dependencies = [ "fftw", "mbedtls", ] -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/net/other/srsran-project/recipe.toml b/recipes/wip/net/other/srsran-project/recipe.toml index af76902d8..4ff58768b 100644 --- a/recipes/wip/net/other/srsran-project/recipe.toml +++ b/recipes/wip/net/other/srsran-project/recipe.toml @@ -1,26 +1,12 @@ -#TODO maybe incomplete script, see https://github.com/srsran/srsRAN_Project#build-instructions +#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 = "custom" +template = "cmake" dependencies = [ "fftw", "mbedtls", ] -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/net/other/varia/recipe.toml b/recipes/wip/net/other/varia/recipe.toml index 4313ea734..2c03f083a 100644 --- a/recipes/wip/net/other/varia/recipe.toml +++ b/recipes/wip/net/other/varia/recipe.toml @@ -1,6 +1,8 @@ -#TODO missing script for Meson, see https://github.com/giantpinkrobots/varia#building -#TODO probably missing dependencies +#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 = "custom" +template = "meson" diff --git a/recipes/wip/net/other/warp/recipe.toml b/recipes/wip/net/other/warp/recipe.toml deleted file mode 100644 index 5efe91cb8..000000000 --- a/recipes/wip/net/other/warp/recipe.toml +++ /dev/null @@ -1,6 +0,0 @@ -#TODO missing script for Meson, see https://gitlab.gnome.org/World/warp#meson -[source] -git = "https://gitlab.gnome.org/World/warp" -rev = "1daa60691aa1a697acaff55450dcccb085023fc7" -[build] -template = "custom" 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/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/jupii/recipe.toml b/recipes/wip/net/remote/jupii/recipe.toml index 9169263cd..c93e3437e 100644 --- a/recipes/wip/net/remote/jupii/recipe.toml +++ b/recipes/wip/net/remote/jupii/recipe.toml @@ -1,23 +1,10 @@ -#TODO maybe incomplete script -#TODO missing dependencies? - https://github.com/mkiol/Jupii#libraries +#TODO not compiled or tested +# missing dependencies? - https://github.com/mkiol/Jupii#libraries [source] git = "https://github.com/mkiol/Jupii" rev = "ed80ca0ea29081a2bff038faf4884e3acabb14b7" [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 - -DWITH_DESKTOP=ON -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" +template = "cmake" +cmakeflags = [ + "-DWITH_DESKTOP=ON" +] diff --git a/recipes/wip/net/remote/remmina/recipe.toml b/recipes/wip/net/remote/remmina/recipe.toml index 9f701889e..14605bd7d 100644 --- a/recipes/wip/net/remote/remmina/recipe.toml +++ b/recipes/wip/net/remote/remmina/recipe.toml @@ -1,10 +1,11 @@ -#TODO maybe incomplete script, see https://gitlab.com/Remmina/Remmina/-/wikis/Compilation/Compilation-guide +#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 = "custom" +template = "cmake" dependencies = [ "openssl1", "libxml2", @@ -19,18 +20,3 @@ dependencies = [ "libsodium", "pcre", ] -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/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/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/spadesx/recipe.toml b/recipes/wip/net/server/spadesx/recipe.toml index 0d47d5685..798650814 100644 --- a/recipes/wip/net/server/spadesx/recipe.toml +++ b/recipes/wip/net/server/spadesx/recipe.toml @@ -1,25 +1,11 @@ -#TODO probably wrong script, see https://github.com/SpadesX/SpadesX#installation +#TODO not compiled or tested +# build instructions: https://github.com/SpadesX/SpadesX#installation [source] git = "https://github.com/SpadesX/SpadesX" [build] -template = "custom" +template = "cmake" dependencies = [ "readline", "zlib", "json-c", ] -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/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/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/ssh/dropbear/recipe.toml b/recipes/wip/net/ssh/dropbear/recipe.toml similarity index 100% rename from recipes/wip/ssh/dropbear/recipe.toml rename to recipes/wip/net/ssh/dropbear/recipe.toml diff --git a/recipes/wip/ssh/fastssh/recipe.toml b/recipes/wip/net/ssh/fastssh/recipe.toml similarity index 100% rename from recipes/wip/ssh/fastssh/recipe.toml rename to recipes/wip/net/ssh/fastssh/recipe.toml diff --git a/recipes/wip/ssh/mosh/recipe.toml b/recipes/wip/net/ssh/mosh/recipe.toml similarity index 100% rename from recipes/wip/ssh/mosh/recipe.toml rename to recipes/wip/net/ssh/mosh/recipe.toml diff --git a/recipes/wip/ssh/russh/recipe.toml b/recipes/wip/net/ssh/russh/recipe.toml similarity index 100% rename from recipes/wip/ssh/russh/recipe.toml rename to recipes/wip/net/ssh/russh/recipe.toml diff --git a/recipes/wip/ssh/sshfs/recipe.toml b/recipes/wip/net/ssh/sshfs/recipe.toml similarity index 57% rename from recipes/wip/ssh/sshfs/recipe.toml rename to recipes/wip/net/ssh/sshfs/recipe.toml index 4e45b6b0e..aa97842ec 100644 --- a/recipes/wip/ssh/sshfs/recipe.toml +++ b/recipes/wip/net/ssh/sshfs/recipe.toml @@ -1,8 +1,9 @@ -#TODO missing script for Meson, see https://github.com/libfuse/sshfs#installation +#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 = "custom" +template = "meson" dependencies = [ "libfuse3", "glib", diff --git a/recipes/wip/ssh/sshs/recipe.toml b/recipes/wip/net/ssh/sshs/recipe.toml similarity index 100% rename from recipes/wip/ssh/sshs/recipe.toml rename to recipes/wip/net/ssh/sshs/recipe.toml diff --git a/recipes/wip/ssh/sshx/recipe.toml b/recipes/wip/net/ssh/sshx/recipe.toml similarity index 100% rename from recipes/wip/ssh/sshx/recipe.toml rename to recipes/wip/net/ssh/sshx/recipe.toml 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/nonfree/games/openspades/recipe.toml b/recipes/wip/nonfree/games/openspades/recipe.toml index 798717fb8..e7d60a0dd 100644 --- a/recipes/wip/nonfree/games/openspades/recipe.toml +++ b/recipes/wip/nonfree/games/openspades/recipe.toml @@ -1,9 +1,9 @@ -#TODO probably wrong script, see https://github.com/yvt/openspades#on-unixes-from-source -#TODO port GLEW to Orbital +#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" +template = "cmake" dependencies = [ "glew", "openssl1", @@ -16,18 +16,3 @@ dependencies = [ "libjpeg", "openal", ] -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/nonfree/games/zerospades/recipe.toml b/recipes/wip/nonfree/games/zerospades/recipe.toml index ba270adfe..369eedf8c 100644 --- a/recipes/wip/nonfree/games/zerospades/recipe.toml +++ b/recipes/wip/nonfree/games/zerospades/recipe.toml @@ -1,9 +1,9 @@ -#TODO probably wrong script, see https://github.com/yvt/openspades#on-unixes-from-source -#TODO port GLEW to Orbital +#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" +template = "cmake" dependencies = [ "glew", "openssl1", @@ -16,18 +16,3 @@ dependencies = [ "libjpeg", "openal", ] -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/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/tools/termplay/recipe.sh b/recipes/wip/other/termplay/recipe.sh similarity index 100% rename from recipes/tools/termplay/recipe.sh rename to recipes/wip/other/termplay/recipe.sh diff --git a/recipes/wip/players/cosmic-player/recipe.toml b/recipes/wip/players/cosmic-player/recipe.toml index f7f21ebee..c876bf143 100644 --- a/recipes/wip/players/cosmic-player/recipe.toml +++ b/recipes/wip/players/cosmic-player/recipe.toml @@ -22,7 +22,7 @@ DYNAMIC_INIT --bin cosmic-player \ --no-default-features \ -- \ - -C link-args="-lgmodule-2.0 -lffi -lpcre2-8 -lz" + -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/" diff --git a/recipes/wip/players/mpv/recipe.toml b/recipes/wip/players/mpv/recipe.toml index b3068129e..f036ba6b7 100644 --- a/recipes/wip/players/mpv/recipe.toml +++ b/recipes/wip/players/mpv/recipe.toml @@ -1,11 +1,11 @@ -#TODO missing script for Meson (use system libraries), see https://github.com/mpv-player/mpv#compilation -#TODO port to orbital +#TODO not compiled or tested +# build instructions: https://github.com/mpv-player/mpv#compilation #TODO missing dependencies [source] git = "https://github.com/mpv-player/mpv" -rev = "818ce7c51a6b9179307950e919983e0909942098" +rev = "e48ac7ce08462f5e33af6ef9deeac6fa87eef01e" [build] -template = "custom" +template = "meson" dependencies = [ "ffmpeg6", "libass", @@ -13,5 +13,5 @@ dependencies = [ "libiconv", "zlib", "mesa", - "pulseaudio", + "sdl2", ] 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/recorders/gpu-screen-recorder-gtk/recipe.toml b/recipes/wip/recorders/gpu-screen-recorder-gtk/recipe.toml index c2fc5c68f..e37a5938b 100644 --- a/recipes/wip/recorders/gpu-screen-recorder-gtk/recipe.toml +++ b/recipes/wip/recorders/gpu-screen-recorder-gtk/recipe.toml @@ -3,7 +3,7 @@ git = "https://git.dec05eba.com/gpu-screen-recorder-gtk" rev = "7fb7608b720068d3c114330e8d274b04ef310cf2" [build] -template = "custom" +template = "meson" dependencies = [ "gtk3", "libx11", diff --git a/recipes/wip/recorders/gpu-screen-recorder/recipe.toml b/recipes/wip/recorders/gpu-screen-recorder/recipe.toml index 7c43efed6..ebe10465e 100644 --- a/recipes/wip/recorders/gpu-screen-recorder/recipe.toml +++ b/recipes/wip/recorders/gpu-screen-recorder/recipe.toml @@ -1,9 +1,9 @@ -#TODO missing script for meson +#TODO not compiled or tested [source] git = "https://git.dec05eba.com/gpu-screen-recorder" rev = "422f214283ba50649acca4d9b5a9778d313fe05b" [build] -template = "custom" +template = "meson" dependencies = [ "mesa", "libvulkan", diff --git a/recipes/wip/recorders/obs-studio/recipe.toml b/recipes/wip/recorders/obs-studio/recipe.toml index 04eb475d2..dca4d3927 100644 --- a/recipes/wip/recorders/obs-studio/recipe.toml +++ b/recipes/wip/recorders/obs-studio/recipe.toml @@ -1,11 +1,11 @@ -#TODO maybe incomplete script, see https://github.com/obsproject/obs-studio/wiki/Building-OBS-Studio -#TODO make all dependencies work -#TODO maybe missing dependencies +#TODO not compiled or tested +# build instructions: https://github.com/obsproject/obs-studio/wiki/Building-OBS-Studio +# maybe missing dependencies [source] git = "https://github.com/obsproject/obs-studio" rev = "b45a73296f4f898e2ed455023020058075c30bab" [build] -template = "custom" +template = "cmake" dependencies = [ "boost", "librsvg", @@ -30,18 +30,3 @@ dependencies = [ "libsrt", "libwebsocket++", ] -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/science/celestia-data/recipe.toml b/recipes/wip/science/celestia-data/recipe.toml index dc195256b..06988feaf 100644 --- a/recipes/wip/science/celestia-data/recipe.toml +++ b/recipes/wip/science/celestia-data/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://github.com/CelestiaProject/Celestia/blob/master/INSTALL.md#installing-the-content +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/science/celestia/recipe.toml b/recipes/wip/science/celestia/recipe.toml index f4793712c..1dd31156e 100644 --- a/recipes/wip/science/celestia/recipe.toml +++ b/recipes/wip/science/celestia/recipe.toml @@ -1,10 +1,14 @@ -#TODO probably wrong script, see https://github.com/CelestiaProject/Celestia/blob/master/INSTALL.md#celestia-install-instructions-for-unix -#TODO finish the recipes of some dependencies -#TODO the SDL2 frontend is limited, Qt6 or Qt5 is preferred +#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 = "custom" +template = "cmake" +cmakeflags = [ + "-DENABLE_INTERFACE=ON", + "-DENABLE_SDL=ON", +] dependencies = [ "mesa", "mesa-glu", @@ -16,21 +20,5 @@ dependencies = [ "libpng", "libjpeg", "luajit", + #"qt6-base", ] -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 - -DENABLE_INTERFACE=ON - -DENABLE_SDL=On -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" diff --git a/recipes/wip/science/gromacs/recipe.toml b/recipes/wip/science/gromacs/recipe.toml index c30f71ce4..4b02ebc56 100644 --- a/recipes/wip/science/gromacs/recipe.toml +++ b/recipes/wip/science/gromacs/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://manual.gromacs.org/current/install-guide/index.html +#TODO not compiled or tested +# build instructions: https://manual.gromacs.org/current/install-guide/index.html [source] -tar = "https://ftp.gromacs.org/gromacs/gromacs-2023.3.tar.gz" +tar = "https://ftp.gromacs.org/gromacs/gromacs-2025.3.tar.gz" [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 -""" +template = "cmake" diff --git a/recipes/wip/science/openspace/recipe.toml b/recipes/wip/science/openspace/recipe.toml index 22de374cb..b67caa267 100644 --- a/recipes/wip/science/openspace/recipe.toml +++ b/recipes/wip/science/openspace/recipe.toml @@ -1,25 +1,11 @@ -#TODO maybe incomplete script, see https://docs.openspaceproject.com/en/latest/dev/compiling/index.html# +#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 = "custom" +template = "cmake" dependencies = [ "qt6-base", "libgdal", ] -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/science/qmcpack/recipe.toml b/recipes/wip/science/qmcpack/recipe.toml index 72b4aa824..33777b799 100644 --- a/recipes/wip/science/qmcpack/recipe.toml +++ b/recipes/wip/science/qmcpack/recipe.toml @@ -1,10 +1,11 @@ -#TODO maybe incomplete script, see https://qmcpack.readthedocs.io/en/develop/installation.html#building-with-cmake -#TODO probably missing dependencies +#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 = "custom" +template = "cmake" dependencies = [ "openmpi", "openblas", @@ -13,18 +14,3 @@ dependencies = [ "boost", "fftw", ] -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/science/stellarium/recipe.toml b/recipes/wip/science/stellarium/recipe.toml index 38ded3f92..89430ec2c 100644 --- a/recipes/wip/science/stellarium/recipe.toml +++ b/recipes/wip/science/stellarium/recipe.toml @@ -1,9 +1,10 @@ -#TODO probably wrong script, see https://github.com/Stellarium/stellarium/blob/master/BUILDING.md#building -#TODO missing dependencies - https://github.com/Stellarium/stellarium/blob/master/BUILDING.md#qt6 +#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/v23.3/stellarium-23.3.tar.xz" +tar = "https://github.com/Stellarium/stellarium/releases/download/v25.3/stellarium-25.3.tar.xz" [build] -template = "custom" +template = "cmake" dependencies = [ "mesa", "zlib", @@ -20,18 +21,3 @@ dependencies = [ "gexiv2", "libnlopt", ] -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/security/clamav/recipe.toml b/recipes/wip/security/clamav/recipe.toml index 23435660c..e90d730ab 100644 --- a/recipes/wip/security/clamav/recipe.toml +++ b/recipes/wip/security/clamav/recipe.toml @@ -1,7 +1,8 @@ -#TODO probably wrong script, see https://docs.clamav.net/manual/Installing/Installing-from-source-Unix.html +#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.2.1.tar.gz" +tar = "https://www.clamav.net/downloads/production/clamav-1.5.0.tar.gz" [build] template = "custom" dependencies = [ @@ -15,18 +16,7 @@ dependencies = [ "zlib", ] script = """ +DYNAMIC_INIT export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" - 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 +cookbook_cmake """ diff --git a/recipes/wip/security/keepassxc/recipe.toml b/recipes/wip/security/keepassxc/recipe.toml index ab1148bd0..3727dfa46 100644 --- a/recipes/wip/security/keepassxc/recipe.toml +++ b/recipes/wip/security/keepassxc/recipe.toml @@ -1,10 +1,16 @@ -#TODO probably wrong script, see https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC#linux -#TODO port to orbital -#TODO probably missing dependencies, see https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux#install-the-required-dependencies +#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.6/keepassxc-2.7.6-src.tar.xz" +tar = "https://github.com/keepassxreboot/keepassxc/releases/download/2.7.10/keepassxc-2.7.10-src.tar.xz" [build] -template = "custom" +template = "cmake" +cmakeflags = [ + "-DWITH_XC_AUTOTYPE=OFF", + "-DWITH_XC_UPDATECHECK=OFF", + "-DKEEPASSXC_BUILD_TYPE=Release", + "-DWITH_APP_BUNDLE=OFF", +] dependencies = [ "qt5-base", "qt5-svg", @@ -15,22 +21,3 @@ dependencies = [ "libxtst", "readline", ] -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 - -DWITH_XC_AUTOTYPE=OFF - -DWITH_XC_UPDATECHECK=OFF - -DKEEPASSXC_BUILD_TYPE=Release - -DWITH_APP_BUNDLE=OFF -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" diff --git a/recipes/wip/security/recdec/recipe.toml b/recipes/wip/security/recdec/recipe.toml deleted file mode 100644 index 9e1f10498..000000000 --- a/recipes/wip/security/recdec/recipe.toml +++ /dev/null @@ -1,25 +0,0 @@ -#TODO probably wrong script, see https://github.com/avast/retdec#process -[source] -git = "https://github.com/avast/retdec" -rev = "53e55b4b26e9b843787f0e06d867441e32b1604e" -[build] -template = "custom" -dependencies = [ - "openssl1", - "zlib", -] -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/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/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/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/services/pipewire/recipe.toml b/recipes/wip/services/pipewire/recipe.toml index d23a5eaaf..9e42dc400 100644 --- a/recipes/wip/services/pipewire/recipe.toml +++ b/recipes/wip/services/pipewire/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing script for Meson, see https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/INSTALL.md +#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 = "custom" +template = "meson" diff --git a/recipes/wip/services/qpwgraph/recipe.toml b/recipes/wip/services/qpwgraph/recipe.toml index b8a48fbfa..99df5ae37 100644 --- a/recipes/wip/services/qpwgraph/recipe.toml +++ b/recipes/wip/services/qpwgraph/recipe.toml @@ -1,26 +1,11 @@ -#TODO maybe wrong script -# build instructions - https://gitlab.freedesktop.org/rncbc/qpwgraph#building +#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 = "custom" +template = "cmake" dependencies = [ "qt6-base", "pipewire", ] -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/services/seatd/recipe.toml b/recipes/wip/services/seatd/recipe.toml index b3731c244..65b6f5cd0 100644 --- a/recipes/wip/services/seatd/recipe.toml +++ b/recipes/wip/services/seatd/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing script for Meson, lacking build instructions +#TODO not compiled or tested +# lacking build instructions [source] git = "https://git.sr.ht/~kennylevinsen/seatd" rev = "3e9ef69f14f630a719dd464f3c90a7932f1c8296" [build] -template = "custom" +template = "meson" diff --git a/recipes/wip/services/wireplumber/recipe.toml b/recipes/wip/services/wireplumber/recipe.toml index 34a5804fb..cbac08ad7 100644 --- a/recipes/wip/services/wireplumber/recipe.toml +++ b/recipes/wip/services/wireplumber/recipe.toml @@ -1,9 +1,10 @@ -#TODO missing script for Meson, see https://pipewire.pages.freedesktop.org/wireplumber/installing-wireplumber.html +#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 = "custom" +template = "meson" dependencies = [ "pipewire", "glib", diff --git a/recipes/wip/shells/fish-shell/recipe.toml b/recipes/wip/shells/fish-shell/recipe.toml index 34e55922c..4ef60fe76 100644 --- a/recipes/wip/shells/fish-shell/recipe.toml +++ b/recipes/wip/shells/fish-shell/recipe.toml @@ -1,27 +1,17 @@ -#TODO not compiled or tested +# 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 = [ - "ncurses", - "gettext", - "pcre", -] +dependencies = ["gettext", "ncurses", "pcre"] script = """ -export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" -cookbook_cargo -#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 +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/sound/audacity/recipe.toml b/recipes/wip/sound/audacity/recipe.toml index c444edd68..22ed13cfa 100644 --- a/recipes/wip/sound/audacity/recipe.toml +++ b/recipes/wip/sound/audacity/recipe.toml @@ -1,26 +1,11 @@ -#TODO maybe incomplete script, see https://github.com/audacity/audacity/blob/master/BUILDING.md -#TODO use the GTK2 or wxWidgets frontend? -#TODO probably need audio server patching +#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.5.1/audacity-sources-3.5.1.tar.gz" +tar = "https://github.com/audacity/audacity/releases/download/Audacity-3.7.5/audacity-sources-3.7.5.tar.gz" [build] -template = "custom" +template = "cmake" dependencies = [ "gtk2", "libuuid", ] -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/sound/audio-sharing/recipe.toml b/recipes/wip/sound/audio-sharing/recipe.toml deleted file mode 100644 index 48603b874..000000000 --- a/recipes/wip/sound/audio-sharing/recipe.toml +++ /dev/null @@ -1,12 +0,0 @@ -#TODO missing script for meson -# build instructions - https://gitlab.gnome.org/World/AudioSharing#building-it-manually -[source] -git = "https://gitlab.gnome.org/World/AudioSharing" -[build] -template = "custom" -dependencies = [ - "gtk4", - "glib", - "libadwaita", - "gstreamer", -] 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/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 index 51d57829f..7f3328818 100644 --- a/recipes/wip/sound/lmms/recipe.toml +++ b/recipes/wip/sound/lmms/recipe.toml @@ -1,8 +1,10 @@ -#TODO probably wrong script, see https://github.com/LMMS/lmms/wiki/Compiling#build-environment +#TODO not compiled or tested +# build instructions: https://github.com/LMMS/lmms/wiki/Compiling#build-environment [source] -tar = "https://github.com/LMMS/lmms/releases/download/v1.2.2/lmms_1.2.2.tar.xz" +git = "https://github.com/LMMS/lmms" +rev = "807751dc4dce53583ecf4140b67a5dc343c789a7" [build] -template = "custom" +template = "cmake" dependencies = [ "qt5-base", "libsamplerate", @@ -13,18 +15,3 @@ dependencies = [ "libstk", "fltk", ] -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/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/mixxx/recipe.toml b/recipes/wip/sound/mixxx/recipe.toml index d6bb852e0..6d6121363 100644 --- a/recipes/wip/sound/mixxx/recipe.toml +++ b/recipes/wip/sound/mixxx/recipe.toml @@ -1,11 +1,11 @@ -#TODO incomplete script -#TODO missing dependencies - https://github.com/mixxxdj/mixxx/blob/main/tools/debian_buildenv.sh -# build instructions - https://github.com/mixxxdj/mixxx/wiki/Compiling%20on%20Linux +#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.4" +branch = "2.5" [build] -template = "custom" +template = "cmake" dependencies = [ "fftw", "libflac", @@ -25,18 +25,3 @@ dependencies = [ "openssl1", "portaudio", ] -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/sound/mousai/recipe.toml b/recipes/wip/sound/mousai/recipe.toml index 034a5dfea..69ff17d46 100644 --- a/recipes/wip/sound/mousai/recipe.toml +++ b/recipes/wip/sound/mousai/recipe.toml @@ -1,8 +1,8 @@ -#TODO missing script for meson +#TODO not compiled or tested [source] git = "https://github.com/SeaDve/Mousai" [build] -template = "custom" +template = "meson" dependencies = [ "glib", "gtk4", diff --git a/recipes/wip/sound/odin2/recipe.toml b/recipes/wip/sound/odin2/recipe.toml index c32acf7b8..35b7fdb7b 100644 --- a/recipes/wip/sound/odin2/recipe.toml +++ b/recipes/wip/sound/odin2/recipe.toml @@ -1,26 +1,11 @@ -#TODO maybe incomplete script, see https://github.com/TheWaveWarden/odin2#all-platforms -#TODO port to orbital +#TODO not compiled or tested +# build instructions: https://github.com/TheWaveWarden/odin2#all-platforms [source] git = "https://github.com/TheWaveWarden/odin2" [build] -template = "custom" +template = "cmake" dependencies = [ "mesa", "curl", "webkitgtk3", ] -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/sound/pulseaudio/recipe.toml b/recipes/wip/sound/pulseaudio/recipe.toml deleted file mode 100644 index 1fe3b86f0..000000000 --- a/recipes/wip/sound/pulseaudio/recipe.toml +++ /dev/null @@ -1,14 +0,0 @@ -#TODO missing script for Meson, see https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/PulseAudioFromGit/ -#TODO only build the library and disable the daemon in favor of PipeWire, see https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/INSTALL.md#pulseaudio-replacement -[source] -tar = "https://freedesktop.org/software/pulseaudio/releases/pulseaudio-17.0.tar.xz" -[build] -template = "custom" -dependencies = [ - "libsndfile", - "libatomic_ops", - "speexdsp", - "libtool", - "json-c", - "gettext", -] 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/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/ssh/openssh/recipe.toml b/recipes/wip/ssh/openssh/recipe.toml deleted file mode 100644 index 26ed0f91f..000000000 --- a/recipes/wip/ssh/openssh/recipe.toml +++ /dev/null @@ -1,20 +0,0 @@ -#TODO compiled but not tested -#TODO lack of utmpx.h and resolv.h, expect dns not working -#TODO maybe actually implement utmpx.h in relibc? -[source] -tar = "https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz" -patches = [ - "redox.patch", -] -[build] -template = "custom" -dependencies = [ - "openssl1", - "zlib", -] -script = """ -DYNAMIC_INIT -cookbook_configure -mv "${COOKBOOK_STAGE}"/usr/sbin/sshd "${COOKBOOK_STAGE}"/usr/bin/sshd -rmdir "${COOKBOOK_STAGE}"/usr/sbin -""" diff --git a/recipes/wip/sys-info/cpu-x/recipe.toml b/recipes/wip/sys-info/cpu-x/recipe.toml index c6c51291d..10552eded 100644 --- a/recipes/wip/sys-info/cpu-x/recipe.toml +++ b/recipes/wip/sys-info/cpu-x/recipe.toml @@ -1,31 +1,26 @@ -#TODO maybe incomplete script, see https://github.com/TheTumultuousUnicornOfDarkness/CPU-X/wiki/manual-build#build-and-install-cpu-x +#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 = "b957c031a2eab2c6c88275c4616a6a5e8c8e7670" +rev = "41f5d1ac3b13e60aa30212f2b9f38de646fd2b07" [build] template = "custom" dependencies = [ - "gtk3mm", + #"gtk3mm", "ncurses", - "glfw", - "libvulkan", + #"glfw3", + #"libvulkan", "libstatgrab", "libcpuid", "pciutils", ] script = """ +DYNAMIC_INIT export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include/ncurses" -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_CMAKE_FLAGS+=( + "-DWITH_GTK=0", + "-DWITH_LIBGLFW=0", + "-DWITH_VULKAN=0", ) -cookbook_configure +cookbook_cmake """ 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/mission-center/recipe.toml b/recipes/wip/sys-info/mission-center/recipe.toml index 4016ee5c2..d5f56bee4 100644 --- a/recipes/wip/sys-info/mission-center/recipe.toml +++ b/recipes/wip/sys-info/mission-center/recipe.toml @@ -1,11 +1,14 @@ -#TODO missing script for meson -#TODO missing dependencies -# build instructions - https://gitlab.com/mission-center-devs/mission-center#building---native +#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 = "custom" +template = "meson" dependencies = [ "gtk4", "libadwaita", + "eudev", + "libdrm", + "dbus", ] 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/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/contour-terminal/recipe.toml b/recipes/wip/terminal/contour-terminal/recipe.toml index 565ca2929..40110b1a3 100644 --- a/recipes/wip/terminal/contour-terminal/recipe.toml +++ b/recipes/wip/terminal/contour-terminal/recipe.toml @@ -1,11 +1,11 @@ #TODO not compiled or tested -#TODO missing dependencies, see https://github.com/contour-terminal/contour/blob/master/scripts/install-deps.sh#L328 # 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 = "custom" +template = "cmake" dependencies = [ "fontconfig", "freetyoe2", @@ -18,18 +18,3 @@ dependencies = [ "qt6-tools", "libxcb", ] -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/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/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/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/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/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/neovim/recipe.toml b/recipes/wip/text/neovim/recipe.toml index 205af461b..8978c7ed2 100644 --- a/recipes/wip/text/neovim/recipe.toml +++ b/recipes/wip/text/neovim/recipe.toml @@ -1,29 +1,30 @@ -#TODO probably wrong script, see https://github.com/neovim/neovim/wiki/Installing-Neovim#install-from-source +#TODO mostly work, kinda slow, can't quit (signal issues?) [source] -git = "https://github.com/neovim/neovim" -rev = "d772f697a281ce9c58bf933997b87c7f27428a60" +tar = "https://github.com/neovim/neovim/archive/refs/tags/v0.11.3.tar.gz" +patches = [ + "redox.patch" +] + [build] template = "custom" dependencies = [ "luajit", - "gettext", - "less", + "libiconv", "libuv", - "libvterm", - "libtickit", + "luv", + "lpeg", + "tree-sitter", + "gettext", + "unibilium", + "utf8proc", ] 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 +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/rnote/recipe.toml b/recipes/wip/text/rnote/recipe.toml index c17b24307..1080f336c 100644 --- a/recipes/wip/text/rnote/recipe.toml +++ b/recipes/wip/text/rnote/recipe.toml @@ -1,16 +1,14 @@ #TODO not compiled or tested -# build instructions - https://github.com/flxzt/rnote/blob/main/BUILDING.md#build-with-meson +# build instructions: https://github.com/flxzt/rnote/blob/main/BUILDING.md#build-with-meson [source] git = "https://github.com/flxzt/rnote" [build] -template = "custom" +template = "meson" dependencies = [ + "gtk4", "glib", "libadwaita", - "glib", "libalsa", "libpoppler", + "appstream", ] -script = """ -cookbook_cargo_packages rnote -""" diff --git a/recipes/wip/tools/astc-encoder/recipe.toml b/recipes/wip/tools/astc-encoder/recipe.toml index b6b427d58..a599f9f59 100644 --- a/recipes/wip/tools/astc-encoder/recipe.toml +++ b/recipes/wip/tools/astc-encoder/recipe.toml @@ -1,21 +1,7 @@ -#TODO maybe incomplete script, see https://github.com/ARM-software/astc-encoder/blob/main/Docs/Building.md#macos-and-linux-using-make +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/tools/astyle/recipe.toml b/recipes/wip/tools/astyle/recipe.toml index 6d10b4130..b393bd1d0 100644 --- a/recipes/wip/tools/astyle/recipe.toml +++ b/recipes/wip/tools/astyle/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://astyle.sourceforge.net/install.html +#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 = "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 -""" +template = "cmake" 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/flameshot/recipe.toml b/recipes/wip/tools/flameshot/recipe.toml index 3275faa5f..607a3b1f2 100644 --- a/recipes/wip/tools/flameshot/recipe.toml +++ b/recipes/wip/tools/flameshot/recipe.toml @@ -1,26 +1,12 @@ -#TODO maybe incomplete script, see https://flameshot.org/docs/installation/source-code/#compilation +#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 = "custom" +template = "cmake" dependencies = [ "qt5-base", "qt5-tools", "qt5-svg", ] -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/tools/flowtime/recipe.toml b/recipes/wip/tools/flowtime/recipe.toml index abd3eda59..efbc1e5f2 100644 --- a/recipes/wip/tools/flowtime/recipe.toml +++ b/recipes/wip/tools/flowtime/recipe.toml @@ -1,9 +1,10 @@ -#TODO missing script for Meson, see https://github.com/Diego-Ivan/Flowtime#building-from-source +#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 = "custom" +template = "meson" dependencies = [ "gtk4", "libxml2", diff --git a/recipes/wip/tools/gnu-radio/recipe.toml b/recipes/wip/tools/gnu-radio/recipe.toml index 5d9115ea1..048e48e61 100644 --- a/recipes/wip/tools/gnu-radio/recipe.toml +++ b/recipes/wip/tools/gnu-radio/recipe.toml @@ -1,10 +1,11 @@ -#TODO maybe incomplete script, see https://wiki.gnuradio.org/index.php?title=LinuxInstall#For_GNU_Radio_3.10,_3.9,_and_Main_Branch -#TODO probably missing dependencies, see https://wiki.gnuradio.org/index.php?title=UbuntuInstall#Install_Dependencies +#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 = "custom" +template = "cmake" dependencies = [ "volk", "boost", @@ -15,18 +16,3 @@ dependencies = [ "libusb", "libevdev", ] -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/tools/kodi/recipe.toml b/recipes/wip/tools/kodi/recipe.toml index 7066e3f67..6aac752fc 100644 --- a/recipes/wip/tools/kodi/recipe.toml +++ b/recipes/wip/tools/kodi/recipe.toml @@ -1,11 +1,15 @@ -#TODO probably wrong script, see https://github.com/xbmc/xbmc/blob/master/docs/README.Linux.md#4-build-kodi -#TODO port to orbital -#TODO maybe missing dependencies, see https://archlinux.org/packages/extra/x86_64/kodi/ +#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 = "custom" +template = "cmake" +cmakeflags = [ + "-DCORE_PLATFORM_NAME=wayland", + "-DAPP_RENDER_SYSTEM=gl", +] dependencies = [ "libass", "libbluray", @@ -40,20 +44,3 @@ dependencies = [ "libxslt", "pipewire", ] -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 - -DCORE_PLATFORM_NAME=wayland - -DAPP_RENDER_SYSTEM=gl -"${COOKBOOK_SOURCE}" -) -cookbook_configure -""" diff --git a/recipes/wip/tools/mangohud/recipe.toml b/recipes/wip/tools/mangohud/recipe.toml index 83480f5a7..96db3c626 100644 --- a/recipes/wip/tools/mangohud/recipe.toml +++ b/recipes/wip/tools/mangohud/recipe.toml @@ -1,9 +1,15 @@ -#TODO missing script for Meson, see https://github.com/flightlessmango/MangoHud#installation---build-from-source -#TODO port to orbital +#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.7.0/MangoHud-v0.7.0-Source.tar.xz" +tar = "https://github.com/flightlessmango/MangoHud/releases/download/v0.8.1/MangoHud-v0.8.1-Source.tar.xz" [build] -template = "custom" -dependencies = [ - "mesa", +template = "meson" +mesonflags = [ + "-Dwith_xnvctrl=disabled", + "-Dwith_dbus=disabled", +] +dependencies = [ + "mesa-x11", + "libx11", + #"libxkbcommon", ] diff --git a/recipes/wip/tools/okteta/recipe.toml b/recipes/wip/tools/okteta/recipe.toml index c3ad622a1..18fde6063 100644 --- a/recipes/wip/tools/okteta/recipe.toml +++ b/recipes/wip/tools/okteta/recipe.toml @@ -1,22 +1,8 @@ -#TODO maybe incomplete script, lacking build instructions +#TODO not compiled or tested +# lacking build instructions #TODO missing dependencies [source] git = "https://invent.kde.org/utilities/okteta" rev = "fb6150f2dce791c96b95a12ee0c74942c1774c05" [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 -""" +template = "cmake" diff --git a/recipes/wip/tools/scribus/recipe.toml b/recipes/wip/tools/scribus/recipe.toml index 8e4f19826..e8a33342e 100644 --- a/recipes/wip/tools/scribus/recipe.toml +++ b/recipes/wip/tools/scribus/recipe.toml @@ -1,6 +1,7 @@ -#TODO probably wrong script, see https://wiki.scribus.net/canvas/Official:Compile_with_CMake +#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.4.8/scribus-1.4.8.tar.xz/download" +tar = "https://sourceforge.net/projects/scribus/files/scribus/1.6.4/scribus-1.6.4.tar.xz/download" [build] template = "custom" dependencies = [ @@ -13,18 +14,3 @@ dependencies = [ "libjpeg", "fontconfig", ] -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/tools/spidey/recipe.toml b/recipes/wip/tools/spidey/recipe.toml index 2dcb31af7..58f4aa508 100644 --- a/recipes/wip/tools/spidey/recipe.toml +++ b/recipes/wip/tools/spidey/recipe.toml @@ -1,5 +1,9 @@ -#TODO needs to determine the build method (Cargo or Meson) +#TODO not compiled or tested [source] git = "https://github.com/kdwk/Spidey" [build] -template = "custom" +template = "meson" +dependencies = [ + "gtk4", + "glib", +] diff --git a/recipes/wip/tools/taskserver/recipe.toml b/recipes/wip/tools/taskserver/recipe.toml index c57cb228d..b6f9ff41c 100644 --- a/recipes/wip/tools/taskserver/recipe.toml +++ b/recipes/wip/tools/taskserver/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://taskwarrior.org/download/#quick-setup +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/tools/taskwarrior/recipe.toml b/recipes/wip/tools/taskwarrior/recipe.toml index 5599aef51..d2f20d953 100644 --- a/recipes/wip/tools/taskwarrior/recipe.toml +++ b/recipes/wip/tools/taskwarrior/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://taskwarrior.org/download/#quick-setup +#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 = "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 -""" +template = "cmake" diff --git a/recipes/wip/tools/tauro-monitor/recipe.toml b/recipes/wip/tools/tauno-monitor/recipe.toml similarity index 57% rename from recipes/wip/tools/tauro-monitor/recipe.toml rename to recipes/wip/tools/tauno-monitor/recipe.toml index 3ed900d7e..d04ef7efc 100644 --- a/recipes/wip/tools/tauro-monitor/recipe.toml +++ b/recipes/wip/tools/tauno-monitor/recipe.toml @@ -1,6 +1,7 @@ -#TODO missing script for Meson, lacking installation instructions +#TODO not compiled or tested +# lacking build instructions [source] git = "https://github.com/taunoe/tauno-monitor" rev = "fecab98710bf6918141f34709f4ee1a055413056" [build] -template = "custom" +template = "meson" diff --git a/recipes/wip/tui/gitui/recipe.toml b/recipes/wip/tui/gitui/recipe.toml index b8019c57f..248b6792c 100644 --- a/recipes/wip/tui/gitui/recipe.toml +++ b/recipes/wip/tui/gitui/recipe.toml @@ -1,13 +1,14 @@ -#TODO openssl-sys crate error +#TODO: Page fault [source] git = "https://github.com/extrawurst/gitui" + [build] template = "custom" dependencies = [ "openssl1", ] script = """ -export OPENSSL_DIR="${COOKBOOK_SYSROOT}" -export OPENSSL_STATIC="true" +DYNAMIC_INIT +export OPENSSL_NO_VENDOR=1 cookbook_cargo """ diff --git a/recipes/emulators/vice/01_redox.patch b/recipes/wip/vice/01_redox.patch similarity index 100% rename from recipes/emulators/vice/01_redox.patch rename to recipes/wip/vice/01_redox.patch diff --git a/recipes/emulators/vice/recipe.sh b/recipes/wip/vice/recipe.sh similarity index 100% rename from recipes/emulators/vice/recipe.sh rename to recipes/wip/vice/recipe.sh diff --git a/recipes/wip/video/editors/kdenlive/recipe.toml b/recipes/wip/video/editors/kdenlive/recipe.toml index 5ac7fa157..993dce621 100644 --- a/recipes/wip/video/editors/kdenlive/recipe.toml +++ b/recipes/wip/video/editors/kdenlive/recipe.toml @@ -1,9 +1,10 @@ -#TODO maybe incomplete script, see https://invent.kde.org/multimedia/kdenlive/-/blob/master/dev-docs/build.md#build-and-install-the-projects +#TODO not compiled or tested +# 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" rev = "da6ecdfbba7aadf88572ac5f87aeb88ff2d80f57" [build] -template = "custom" +template = "cmake" dependencies = [ "mlt", "ffmpeg6", @@ -37,18 +38,3 @@ dependencies = [ "kf5-xmlgui", "breeze-icons", ] -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/video/editors/pitivi/recipe.toml b/recipes/wip/video/editors/pitivi/recipe.toml index 35bbf8a59..0f6ac0d1d 100644 --- a/recipes/wip/video/editors/pitivi/recipe.toml +++ b/recipes/wip/video/editors/pitivi/recipe.toml @@ -1,8 +1,9 @@ -#TODO missing script for Meson, lacking build instructions +#TODO not compiled or tested +# lacking build instructions [source] tar = "https://download.gnome.org/sources/pitivi/2023/pitivi-2023.03.tar.xz" [build] -template = "custom" +template = "meson" dependencies = [ "gtk3", "gstreamer", 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/webcam/cheese/recipe.toml b/recipes/wip/video/webcam/cheese/recipe.toml index 8866dea1d..d7c159f7f 100644 --- a/recipes/wip/video/webcam/cheese/recipe.toml +++ b/recipes/wip/video/webcam/cheese/recipe.toml @@ -1,6 +1,21 @@ -#TODO missing script for Meson, see https://gitlab.gnome.org/GNOME/cheese -#TODO maybe need GStreamer as dependency +#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 = "custom" +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/video/webcam/kamoso/recipe.toml b/recipes/wip/video/webcam/kamoso/recipe.toml new file mode 100644 index 000000000..ced03c4e5 --- /dev/null +++ b/recipes/wip/video/webcam/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/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/libvirt/recipe.toml b/recipes/wip/vm/libvirt/recipe.toml index c05469145..c544bea8a 100644 --- a/recipes/wip/vm/libvirt/recipe.toml +++ b/recipes/wip/vm/libvirt/recipe.toml @@ -1,6 +1,6 @@ -#TODO missing script for meson -# build instructions - https://libvirt.org/compiling.html#configuring-the-project +#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 = "custom" +template = "meson" diff --git a/recipes/wip/wayland/hyprland/recipe.toml b/recipes/wip/wayland/hyprland/recipe.toml index dff2a2866..4512978b5 100644 --- a/recipes/wip/wayland/hyprland/recipe.toml +++ b/recipes/wip/wayland/hyprland/recipe.toml @@ -1,6 +1,8 @@ -#TODO missing CMake configuration, see https://wiki.hyprland.org/Getting-Started/Installation/#cmake-recommended +#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 = [ @@ -18,6 +20,8 @@ dependencies = [ "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..cfc7150ea --- /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, ppoll +#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..4bcae30a4 --- /dev/null +++ b/recipes/wip/wayland/libwayland/redox.patch @@ -0,0 +1,205 @@ +diff -ruwN source/meson.build source-new/meson.build +--- source/meson.build 2025-07-06 19:11:26.000000000 +0700 ++++ source-new/meson.build 2025-10-01 06:32:51.610361685 +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/src/connection.c source-new/src/connection.c +--- source/src/connection.c 2025-07-06 19:11:26.000000000 +0700 ++++ source-new/src/connection.c 2025-10-01 07:10:17.676073568 +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,9 +1506,9 @@ + char *buffer; + size_t buffer_length; + +- f = open_memstream(&buffer, &buffer_length); +- if (f == NULL) +- return; ++ // f = open_memstream(&buffer, &buffer_length); ++ // if (f == NULL) ++ // return; + + clock_gettime(CLOCK_REALTIME, &tp); + time = (tp.tv_sec * 1000000L) + (tp.tv_nsec / 1000); +diff -ruwN source/src/event-loop.c source-new/src/event-loop.c +--- source/src/event-loop.c 2025-07-06 19:11:26.000000000 +0700 ++++ source-new/src/event-loop.c 2025-10-01 07:07:26.992243929 +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/src/meson.build source-new/src/meson.build +--- source/src/meson.build 2025-07-06 19:11:26.000000000 +0700 ++++ source-new/src/meson.build 2025-10-01 07:03:52.591689534 +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/src/wayland-client.c source-new/src/wayland-client.c +--- source/src/wayland-client.c 2025-07-06 19:11:26.000000000 +0700 ++++ source-new/src/wayland-client.c 2025-10-01 07:10:48.899322239 +0700 +@@ -1997,14 +1997,6 @@ + + pfd[0].fd = display->fd; + pfd[0].events = events; +- do { +- if (timeout) { +- clock_gettime(CLOCK_MONOTONIC, &now); +- timespec_sub_saturate(&result, &deadline, &now); +- remaining_timeout = &result; +- } +- ret = ppoll(pfd, 1, remaining_timeout, NULL); +- } while (ret == -1 && errno == EINTR); + + return ret; + } +diff -ruwN source/src/wayland-os.c source-new/src/wayland-os.c +--- source/src/wayland-os.c 2025-07-06 19:11:26.000000000 +0700 ++++ source-new/src/wayland-os.c 2025-10-01 07:09:01.188805546 +0700 +@@ -134,7 +134,7 @@ + { + int newfd; + +- newfd = wl_fcntl(fd, F_DUPFD_CLOEXEC, minfd); ++ newfd = wl_fcntl(fd, FD_CLOEXEC, minfd); + if (newfd >= 0) + return newfd; + if (errno != EINVAL) +@@ -189,7 +189,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/src/wayland-server.c source-new/src/wayland-server.c +--- source/src/wayland-server.c 2025-07-06 19:11:26.000000000 +0700 ++++ source-new/src/wayland-server.c 2025-10-01 07:09:51.131179157 +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/sway/recipe.toml b/recipes/wip/wayland/sway/recipe.toml index bbfaf68dd..7107dc3dd 100644 --- a/recipes/wip/wayland/sway/recipe.toml +++ b/recipes/wip/wayland/sway/recipe.toml @@ -1,8 +1,9 @@ -#TODO missing script for Meson, see https://github.com/swaywm/sway#compiling-from-source +#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.8.1/sway-1.8.1.tar.gz" [build] -template = "custom" +template = "meson" dependencies = [ "wlroots", "libwayland", diff --git a/recipes/wip/wayland/wayland-protocols/recipe.toml b/recipes/wip/wayland/wayland-protocols/recipe.toml index 5cdbfefc2..593e24bcd 100644 --- a/recipes/wip/wayland/wayland-protocols/recipe.toml +++ b/recipes/wip/wayland/wayland-protocols/recipe.toml @@ -1,5 +1,7 @@ -#TODO missing script for Meson, lacking build instructions [source] tar = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/1.32/downloads/wayland-protocols-1.32.tar.xz" [build] -template = "custom" +template = "meson" +mesonflags = [ + "-Dtests=false" +] diff --git a/recipes/wip/wayland/wayland-utils/recipe.toml b/recipes/wip/wayland/wayland-utils/recipe.toml index bcfeb935e..fa94decf0 100644 --- a/recipes/wip/wayland/wayland-utils/recipe.toml +++ b/recipes/wip/wayland/wayland-utils/recipe.toml @@ -1,5 +1,6 @@ -#TODO missing script for Meson, see https://gitlab.freedesktop.org/wayland/wayland-utils#building +#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 = "custom" +template = "meson" diff --git a/recipes/wip/wayland/waylandpp/recipe.toml b/recipes/wip/wayland/waylandpp/recipe.toml index 7cf96db85..6bc1a0350 100644 --- a/recipes/wip/wayland/waylandpp/recipe.toml +++ b/recipes/wip/wayland/waylandpp/recipe.toml @@ -1,20 +1,6 @@ -#TODO maybe incomplete script, see https://github.com/NilsBrause/waylandpp#building +#TODO not compiled or tested +# build instructions: https://github.com/NilsBrause/waylandpp#building [source] git = "https://github.com/NilsBrause/waylandpp" [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 -""" +template = "cmake" diff --git a/recipes/wip/wayland/wlroots/recipe.toml b/recipes/wip/wayland/wlroots/recipe.toml index e52475e5b..ba65fb026 100644 --- a/recipes/wip/wayland/wlroots/recipe.toml +++ b/recipes/wip/wayland/wlroots/recipe.toml @@ -1,8 +1,9 @@ -#TODO missing script for Meson, see https://gitlab.freedesktop.org/wlroots/wlroots#building +#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" [build] -template = "custom" +template = "meson" dependencies = [ "libwayland", "libxcb", diff --git a/recipes/wip/wayland/xwayland/recipe.toml b/recipes/wip/wayland/xwayland/recipe.toml index fa972b230..3ac342a59 100644 --- a/recipes/wip/wayland/xwayland/recipe.toml +++ b/recipes/wip/wayland/xwayland/recipe.toml @@ -1,10 +1,38 @@ -#TODO missing script for Meson, see https://wayland.freedesktop.org/xserver.html#heading_toc_j_3 +#TODO wayland-client, fix linux/input, wayland-scanner shim [source] -tar = "https://www.x.org/releases/individual/xserver/xwayland-23.2.4.tar.xz" -[build] -template = "custom" -dependencies = [ - "libepoxy", - "libxtrans", - "libxkbfile", +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/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/servo/recipe.toml b/recipes/wip/web/servo/recipe.toml index 50568e30e..92dbc12f1 100644 --- a/recipes/wip/web/servo/recipe.toml +++ b/recipes/wip/web/servo/recipe.toml @@ -1,16 +1,24 @@ [source] -git = "https://gitlab.redox-os.org/njskalski/servo.git" -branch = "redox_mods" +git = "github.com/servo/servo.git" +rev = "25fea1e086c46d611cf87db439430994e4f56cd5" +patches = [ + "redox.patch" +] +script = """ +cp ../.servobuild ./ +""" [build] template = "custom" dependencies = [ "freetype2", + "expat", "gettext", "glib", "gstreamer", "harfbuzz", "libffi", + "libpng", "libiconv", "libx11", "libxcb", @@ -26,49 +34,34 @@ dependencies = [ "libpthread-stubs", "fontconfig", "expat", - "relibc", - "gcc13", ] script = """ -cp "${COOKBOOK_RECIPE}/.servobuild" "${COOKBOOK_SOURCE}/.servobuild" - -# Add wrapper to PATH -export PATH="${COOKBOOK_RECIPE}:${PATH}" -export TARGET=${TARGET} - -# Force cargo to use the correct build target -export CARGO_BUILD_TARGET=${TARGET} +DYNAMIC_INIT # jemalloc specific configuration export JEMALLOC_SYS_WITH_LG_PAGE=16 -export TARGET_CC=${TARGET}-gcc -export TARGET_CXX=${TARGET}-g++ -export TARGET_AR=${TARGET}-ar +export TARGET_CC="$CC" +export TARGET_CXX="$CXX" +export TARGET_AR="$AR" -export PKG_CONFIG_ALLOW_CROSS=1 - -# 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}" - -export RUSTFLAGS="-C target-feature=-crt-static -C link-args=-lpng -C link-args=-lxcb -C link-args=-lexpat -C link-args=-lgcc_s -C link-args=-lz -C link-args=-lXau -C link-args=-no-pie" - -rsync -a --delete "${COOKBOOK_SOURCE}/" ./ - - -# I'm tired trying figure out why multiple pkgconfig paths are ignored by cargo building stuff +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/ -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 +export RUSTFLAGS="$RUSTFLAGS -L native=${COOKBOOK_SYSROOT}/lib -C link-arg=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib" -# -j 1 to lock down "which crate fails", because cargo tree -i doesn't work for gaol -cargo build --target ${TARGET} --release +#TODO: mozjs-sys and mozangle uses clang, it won't know our prefix C libraries, so here's the workaround +PREFIX_INCLUDE=$(realpath "$COOKBOOK_ROOT/../prefix/$TARGET/sysroot/x86_64-unknown-redox/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" -mkdir -pv "${COOKBOOK_STAGE}/usr/servo" -cp -r -v "target/${TARGET}/release/servo" "${COOKBOOK_STAGE}/usr/servo" +#Mozjs specifics +export CARGO_MAKEFLAGS="-j $COOKBOOK_MAKE_JOBS" CCACHE="sccache" + +PACKAGE_PATH="ports/servoshell" cookbook_cargo """ + +[package] +dependencies = [ + "libxcursor", + "libxkbcommon-x11", +] diff --git a/recipes/wip/web/servo/redox.patch b/recipes/wip/web/servo/redox.patch new file mode 100644 index 000000000..3a0c804f2 --- /dev/null +++ b/recipes/wip/web/servo/redox.patch @@ -0,0 +1,955 @@ +diff --git a/Cargo.toml b/Cargo.toml +index 2dcb622934f..0d5f41924c0 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -55,14 +55,14 @@ ctr = "0.9.2" + darling = { version = "0.20", default-features = false } + data-url = "0.3" + devtools_traits = { path = "components/shared/devtools" } +-dpi = "0.1" ++dpi = { git = "https://gitlab.redox-os.org/njskalski/winit.git", branch = "redox_mods2"} + embedder_traits = { path = "components/shared/embedder" } + encoding_rs = "0.8" + env_logger = "0.11" + euclid = "0.22" + fnv = "1.0" + fonts_traits = { path = "components/shared/fonts" } +-freetype-sys = "0.20" ++freetype-sys = { version ="0.20.1", default-features = false} + fxhash = "0.2" + getopts = "0.2.11" + gleam = "0.15" +@@ -91,7 +91,7 @@ imsz = "0.2" + indexmap = { version = "2.10.0", features = ["std"] } + ipc-channel = "0.20" + itertools = "0.14" +-js = { package = "mozjs", git = "https://github.com/servo/mozjs" } ++js = { package = "mozjs", git = "https://gitlab.redox-os.org/willnode/mozjs.git", branch = "redox_mods" } + keyboard-types = { version = "0.8.1", features = ["serde", "webdriver"] } + kurbo = { version = "0.11.3", features = ["euclid"] } + layout_api = { path = "components/shared/layout" } +@@ -151,7 +151,7 @@ stylo_config = { git = "https://github.com/servo/stylo", branch = "2025-08-01" } + stylo_dom = { git = "https://github.com/servo/stylo", branch = "2025-08-01" } + stylo_malloc_size_of = { git = "https://github.com/servo/stylo", branch = "2025-08-01" } + stylo_traits = { git = "https://github.com/servo/stylo", branch = "2025-08-01" } +-surfman = { git = "https://github.com/servo/surfman", rev = "f7688b4585f9e0b5d4bf8ee8e4a91e82349610b1", features = ["chains"] } ++surfman = { git = "https://gitlab.redox-os.org/njskalski/surfman.git", branch = "redox_mods", features = ["sm-x11"] } + syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] } + synstructure = "0.13" + taffy = { version = "0.9", default-features = false, features = ["calc", "detailed_layout_info", "grid", "std"] } +@@ -178,14 +178,14 @@ vello_cpu = { git = "https://github.com/linebender/vello", rev = "b0e2e598ac62c7 + webdriver = "0.53.0" + webgpu_traits = { path = "components/shared/webgpu" } + webpki-roots = "1.0" +-webrender = { git = "https://github.com/servo/webrender", branch = "0.67", features = ["capture"] } +-webrender_api = { git = "https://github.com/servo/webrender", branch = "0.67" } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { path = "components/shared/webxr" } + wgpu-core = "25" + wgpu-types = "25" + winapi = "0.3" + windows-sys = "0.59" +-winit = "0.30.12" ++winit = { git = "https://gitlab.redox-os.org/njskalski/winit.git", branch = "redox_mods2"} + wio = "0.2" + wr_malloc_size_of = { git = "https://github.com/servo/webrender", branch = "0.67" } + xi-unicode = "0.3.0" +@@ -222,6 +222,20 @@ lto = "thin" + codegen-units = 1 + + [patch.crates-io] ++ipc-channel = { git = "https://gitlab.redox-os.org/njskalski/ipc-channel.git", branch="redox_mods" } ++servo_malloc_size_of = { path = "./components/malloc_size_of" } ++wr_malloc_size_of = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods"} ++tikv-jemalloc-sys = { version = "0.6.0", git = "https://gitlab.redox-os.org/njskalski/jemallocator.git", branch = "redox_mods" } ++tikv-jemallocator = { version = "0.6.0", git = "https://gitlab.redox-os.org/njskalski/jemallocator.git", branch = "redox_mods" } ++mozangle = { git = "https://gitlab.redox-os.org/willnode/mozangle.git", branch = "redox_mods"} ++# gaol = { git = "https://gitlab.redox-os.org/njskalski/gaol.git", branch = "redox_mods" } ++aws-lc-rs = { git = "https://gitlab.redox-os.org/njskalski/aws-lc-rs.git", branch = "redox_mods" } ++# mozjs_sys = { git = "https://gitlab.redox-os.org/njskalski/mozjs.git", rev = "e2ee9c77148c3af4f11fdff9a2cbd7e449d48d33"} ++# mozjs = { git = "https://gitlab.redox-os.org/njskalski/mozjs.git", branch = "redox_mods"} ++x11rb = { git = "https://gitlab.redox-os.org/njskalski/x11rb.git", branch = "redox_mods"} ++libz-sys = { git = "https://github.com/willnode/libz-sys.git", branch = "servo"} ++winit = { git = "https://gitlab.redox-os.org/njskalski/winit.git", branch = "redox_mods2"} ++# freetype-sys = { git = "https://github.com/PistonDevelopers/freetype-sys.git", branch = "master" } + # If you need to temporarily test Servo with a local fork of some upstream + # crate, add that here. Use the form: + # +@@ -250,7 +264,7 @@ codegen-units = 1 + # + # [patch."https://github.com/servo/webrender"] + # webrender = { path = "../webrender/webrender" } +-# webrender_api = { path = "../webrender/webrender_api" } ++# webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } = { path = "../webrender/webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" }" } + # wr_malloc_size_of = { path = "../webrender/wr_malloc_size_of" } + # + # Or for another Git dependency: +diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml +index ef0c84977f2..4edb129dd97 100644 +--- a/components/canvas/Cargo.toml ++++ b/components/canvas/Cargo.toml +@@ -38,7 +38,7 @@ raqote = { version = "0.8.5", optional = true } + servo_arc = { workspace = true } + stylo = { workspace = true } + unicode-script = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + servo_config = { path = "../config" } + vello = { workspace = true, optional = true } + vello_cpu = { workspace = true, optional = true } +diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml +index d5792b858db..38132ba0f2c 100644 +--- a/components/compositing/Cargo.toml ++++ b/components/compositing/Cargo.toml +@@ -44,10 +44,10 @@ servo-tracing = { workspace = true } + stylo_traits = { workspace = true } + timers = { path = "../timers" } + tracing = { workspace = true, optional = true } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr = { path = "../webxr", optional = true } +-wr_malloc_size_of = { workspace = true } ++wr_malloc_size_of = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + + [dev-dependencies] + surfman = { workspace = true } +diff --git a/components/constellation/Cargo.toml b/components/constellation/Cargo.toml +index a982bcbfe73..cb519367edd 100644 +--- a/components/constellation/Cargo.toml ++++ b/components/constellation/Cargo.toml +@@ -58,10 +58,10 @@ stylo_traits = { workspace = true } + tracing = { workspace = true, optional = true } + webgpu = { path = "../webgpu" } + webgpu_traits = { workspace = true } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods", features = ["capture"] } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, features = ["ipc"] } + servo-tracing = { workspace = true } + +-[target.'cfg(any(target_os="macos", all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_env="ohos"), not(target_arch="arm"), not(target_arch="aarch64"))))'.dependencies] ++[target.'cfg(any(target_os="macos", all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_os="redox"), not(target_env="ohos"), not(target_arch="arm"), not(target_arch="aarch64"))))'.dependencies] + gaol = "0.2.1" +diff --git a/components/constellation/sandboxing.rs b/components/constellation/sandboxing.rs +index 02a6f4ed6f6..81dae2503e8 100644 +--- a/components/constellation/sandboxing.rs ++++ b/components/constellation/sandboxing.rs +@@ -11,6 +11,7 @@ use std::{env, process}; + not(target_os = "windows"), + not(target_os = "ios"), + not(target_os = "android"), ++ not(target_os = "redox"), + not(target_env = "ohos"), + not(target_arch = "arm"), + not(target_arch = "aarch64") +@@ -99,7 +100,8 @@ pub fn content_process_sandbox_profile() -> Profile { + not(target_os = "android"), + not(target_env = "ohos"), + not(target_arch = "arm"), +- not(target_arch = "aarch64") ++ not(target_arch = "aarch64"), ++ not(target_os = "redox"), + ))] + pub fn content_process_sandbox_profile() -> Profile { + use std::path::PathBuf; +@@ -128,6 +130,7 @@ pub fn content_process_sandbox_profile() -> Profile { + target_os = "windows", + target_os = "ios", + target_os = "android", ++ target_os = "redox", + target_env = "ohos", + target_arch = "arm", + +@@ -175,7 +178,8 @@ pub fn spawn_multiprocess(content: UnprivilegedContent) -> Result Result { + use gaol::sandbox::{self, Sandbox, SandboxMethods}; +@@ -243,6 +247,12 @@ pub fn spawn_multiprocess(_content: UnprivilegedContent) -> Result Result { ++ log::error!("Multiprocess is not supported on Redox."); ++ process::exit(1); ++} ++ + fn setup_common(command: &mut C, token: String) { + C::arg(command, "--content-process"); + C::arg(command, token); +diff --git a/components/fonts/Cargo.toml b/components/fonts/Cargo.toml +index e4c27ca6c6f..acf5335e922 100644 +--- a/components/fonts/Cargo.toml ++++ b/components/fonts/Cargo.toml +@@ -53,7 +53,7 @@ tracing = { workspace = true, optional = true } + unicode-properties = { workspace = true } + unicode-script = { workspace = true } + url = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + servo-tracing = { workspace = true } + + [target.'cfg(target_os = "macos")'.dependencies] +@@ -62,11 +62,11 @@ core-foundation = "0.9" + core-graphics = "0.23" + core-text = "20.1" + +-[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] ++[target.'cfg(any(target_os = "linux", target_os = "android", target_os = "redox"))'.dependencies] + freetype-sys = { workspace = true } + servo_allocator = { path = "../allocator" } + +-[target.'cfg(all(target_os = "linux", not(target_env = "ohos")))'.dependencies] ++[target.'cfg(all(any(target_os = "linux", target_os = "redox"), not(target_env = "ohos")))'.dependencies] + fontconfig_sys = { package = "yeslogic-fontconfig-sys", version = "6" } + + [target.'cfg(target_os = "android")'.dependencies] +diff --git a/components/fonts/font.rs b/components/fonts/font.rs +index 751aeecdba7..1b62cba5851 100644 +--- a/components/fonts/font.rs ++++ b/components/fonts/font.rs +@@ -947,7 +947,7 @@ pub struct FontBaseline { + /// let mapped_weight = apply_font_config_to_style_mapping(&mapping, weight as f64); + /// ``` + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_env = "ohos") + ))] + pub(crate) fn map_platform_values_to_style_values(mapping: &[(f64, f64)], value: f64) -> f64 { +diff --git a/components/fonts/platform/freetype/mod.rs b/components/fonts/platform/freetype/mod.rs +index feea468008e..24f59a276d4 100644 +--- a/components/fonts/platform/freetype/mod.rs ++++ b/components/fonts/platform/freetype/mod.rs +@@ -16,7 +16,7 @@ use webrender_api::NativeFontHandle; + pub mod font; + mod freetype_face; + +-#[cfg(all(target_os = "linux", not(target_env = "ohos"), not(ohos_mock)))] ++#[cfg(all(any(target_os = "linux", target_os = "redox"), not(target_env = "ohos"), not(ohos_mock)))] + pub mod font_list; + + #[cfg(target_os = "android")] +diff --git a/components/fonts/platform/mod.rs b/components/fonts/platform/mod.rs +index 2c77d17d5d5..3138343feb2 100644 +--- a/components/fonts/platform/mod.rs ++++ b/components/fonts/platform/mod.rs +@@ -3,25 +3,25 @@ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_os = "android"), + not(target_env = "ohos") + ))] + use base::text::{UnicodeBlock, UnicodeBlockMethod}; + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_os = "android"), + not(target_env = "ohos") + ))] + use unicode_script::Script; + + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_os = "android"), + not(target_env = "ohos") + ))] + use crate::FallbackFontSelectionOptions; +-#[cfg(any(target_os = "linux", target_os = "android"))] ++#[cfg(any(target_os = "linux", target_os = "android", target_os="redox"))] + pub use crate::platform::freetype::{LocalFontIdentifier, font, font_list}; + #[cfg(target_os = "macos")] + pub use crate::platform::macos::{ +@@ -30,7 +30,7 @@ pub use crate::platform::macos::{ + #[cfg(target_os = "windows")] + pub use crate::platform::windows::{font, font_list, font_list::LocalFontIdentifier}; + +-#[cfg(any(target_os = "linux", target_os = "android"))] ++#[cfg(any(target_os = "linux", target_os = "android", target_os="redox"))] + pub mod freetype; + + #[cfg(target_os = "macos")] +@@ -47,7 +47,7 @@ mod windows { + } + + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_os = "android"), + not(target_env = "ohos") + ))] +diff --git a/components/geometry/Cargo.toml b/components/geometry/Cargo.toml +index 8634bc1d18c..a4115f6bf90 100644 +--- a/components/geometry/Cargo.toml ++++ b/components/geometry/Cargo.toml +@@ -16,5 +16,5 @@ app_units = { workspace = true } + euclid = { workspace = true } + malloc_size_of = { workspace = true } + malloc_size_of_derive = { workspace = true } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } +diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml +index 139f2ce3dba..0196a3f15e0 100644 +--- a/components/layout/Cargo.toml ++++ b/components/layout/Cargo.toml +@@ -62,7 +62,7 @@ tracing = { workspace = true, optional = true } + unicode-bidi = { workspace = true } + unicode-script = { workspace = true } + url = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + xi-unicode = { workspace = true } + servo-tracing = { workspace = true } + +diff --git a/components/malloc_size_of/Cargo.toml b/components/malloc_size_of/Cargo.toml +index 6e5e45a4e35..8de32d2c798 100644 +--- a/components/malloc_size_of/Cargo.toml ++++ b/components/malloc_size_of/Cargo.toml +@@ -39,5 +39,5 @@ unicode-script = { workspace = true } + url = { workspace = true } + urlpattern = { workspace = true } + uuid = { workspace = true } +-webrender_api = { workspace = true } +-wr_malloc_size_of = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } ++wr_malloc_size_of = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods"} +diff --git a/components/media/Cargo.toml b/components/media/Cargo.toml +index cf51080ec7a..effa64922f8 100644 +--- a/components/media/Cargo.toml ++++ b/components/media/Cargo.toml +@@ -20,4 +20,4 @@ log = { workspace = true } + serde = { workspace = true } + servo-media = { workspace = true } + servo_config = { path = "../config" } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } +diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml +index 7556a1bf81f..38252d09b54 100644 +--- a/components/net/Cargo.toml ++++ b/components/net/Cargo.toml +@@ -77,8 +77,7 @@ tungstenite = { workspace = true } + url = { workspace = true } + uuid = { workspace = true } + webpki-roots = { workspace = true } +-webrender_api = { workspace = true } +- ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + [dev-dependencies] + embedder_traits = { workspace = true, features = ["baked-default-resources"] } + flate2 = "1" +diff --git a/components/pixels/Cargo.toml b/components/pixels/Cargo.toml +index 9ba20db80c0..fe33d20b88b 100644 +--- a/components/pixels/Cargo.toml ++++ b/components/pixels/Cargo.toml +@@ -19,8 +19,7 @@ log = { workspace = true } + malloc_size_of = { workspace = true } + malloc_size_of_derive = { workspace = true } + serde = { workspace = true, features = ["derive"] } +-webrender_api = { workspace = true } +- ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + [dev-dependencies] + criterion = { version = "0.5", features = ["html_reports"] } + +diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml +index 51e81f6c085..fb85b1ea6b1 100644 +--- a/components/script/Cargo.toml ++++ b/components/script/Cargo.toml +@@ -136,7 +136,7 @@ utf-8 = "0.7" + uuid = { workspace = true, features = ["serde"] } + webdriver = { workspace = true } + webgpu_traits = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, features = ["ipc"], optional = true } + wgpu-core = { workspace = true } + wgpu-types = { workspace = true } +diff --git a/components/script/dom/navigatorinfo.rs b/components/script/dom/navigatorinfo.rs +index f3e6ddc109b..ee83d327df9 100644 +--- a/components/script/dom/navigatorinfo.rs ++++ b/components/script/dom/navigatorinfo.rs +@@ -46,7 +46,7 @@ pub(crate) fn Platform() -> DOMString { + } + + #[allow(non_snake_case)] +-#[cfg(any(target_os = "android", target_os = "linux"))] ++#[cfg(any(target_os = "android", target_os = "linux", target_os = "redox"))] + pub(crate) fn Platform() -> DOMString { + DOMString::from("Linux") + } +diff --git a/components/script_bindings/build.rs b/components/script_bindings/build.rs +index c28f900f6ce..2445c2ec9e4 100644 +--- a/components/script_bindings/build.rs ++++ b/components/script_bindings/build.rs +@@ -86,12 +86,12 @@ impl phf_shared::PhfHash for Bytes<'_> { + /// + /// Note: This function should be kept in sync with the version in `components/script/build.rs` + fn find_python() -> Command { +- let mut command = Command::new("uv"); +- command.args(["run", "--no-project", "python"]); ++ let mut command = Command::new("python3"); ++ // command.args(["run", "--no-project", "python"]); + + if command.output().is_ok_and(|out| out.status.success()) { + return command; + } + +- panic!("Can't find python (tried `{command:?}`)! Is uv installed and in PATH?") ++ panic!("Can't find python (tried `{command:?}`)!") + } +diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml +index 2c1f75dca13..03bb5596dc1 100644 +--- a/components/servo/Cargo.toml ++++ b/components/servo/Cargo.toml +@@ -25,7 +25,7 @@ default = ["clipboard", "raqote"] + clipboard = ["dep:arboard"] + crown = ["script/crown"] + debugmozjs = ["script/debugmozjs"] +-background_hang_monitor = ["background_hang_monitor/sampler"] ++# background_hang_monitor = ["background_hang_monitor/sampler"] + jitspew = ["script/jitspew"] + js_backtrace = ["script/js_backtrace"] + media-gstreamer = ["servo-media-gstreamer", "gstreamer"] +@@ -117,8 +117,8 @@ surfman = { workspace = true } + tracing = { workspace = true, optional = true } + url = { workspace = true } + webgpu = { path = "../webgpu" } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods", features = ["capture"] } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, optional = true } + + [target.'cfg(any(target_os = "android", target_env = "ohos"))'.dependencies] +@@ -128,7 +128,7 @@ webxr = { path = "../webxr", optional = true } + arboard = { workspace = true, optional = true } + webxr = { path = "../webxr", features = ["ipc", "glwindow", "headless"] } + +-[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_env = "ohos"), not(target_arch = "arm"), not(target_arch = "aarch64")))'.dependencies] ++[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_env = "ohos"), not(target_arch = "arm"), not(target_arch = "aarch64"), not(target_os = "redox")))'.dependencies] + gaol = "0.2.1" + + [target.'cfg(target_os = "windows")'.dependencies] +diff --git a/components/servo/lib.rs b/components/servo/lib.rs +index 37ce2019c7a..35e64e30c0d 100644 +--- a/components/servo/lib.rs ++++ b/components/servo/lib.rs +@@ -77,6 +77,7 @@ use fonts::SystemFontService; + not(target_arch = "arm"), + not(target_arch = "aarch64"), + not(target_env = "ohos"), ++ not(target_os = "redox"), + ))] + use gaol::sandbox::{ChildSandbox, ChildSandboxMethods}; + pub use gleam::gl; +@@ -1305,6 +1306,7 @@ pub fn run_content_process(token: String) { + not(target_arch = "arm"), + not(target_arch = "aarch64"), + not(target_env = "ohos"), ++ not(target_os = "redox"), + ))] + fn create_sandbox() { + ChildSandbox::new(content_process_sandbox_profile()) +@@ -1319,6 +1321,7 @@ fn create_sandbox() { + target_arch = "arm", + target_arch = "aarch64", + target_env = "ohos", ++ target_os = "redox", + ))] + fn create_sandbox() { + panic!("Sandboxing is not supported on Windows, iOS, ARM targets and android."); +diff --git a/components/shared/base/Cargo.toml b/components/shared/base/Cargo.toml +index b293fa0faf3..eead0fb12e3 100644 +--- a/components/shared/base/Cargo.toml ++++ b/components/shared/base/Cargo.toml +@@ -21,8 +21,7 @@ malloc_size_of_derive = { workspace = true } + parking_lot = { workspace = true } + serde = { workspace = true } + time = { workspace = true } +-webrender_api = { workspace = true } +- ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies] + mach2 = { workspace = true } + +diff --git a/components/shared/canvas/Cargo.toml b/components/shared/canvas/Cargo.toml +index 36711c0f83a..474c7722812 100644 +--- a/components/shared/canvas/Cargo.toml ++++ b/components/shared/canvas/Cargo.toml +@@ -28,5 +28,5 @@ serde = { workspace = true } + servo_config = { path = "../../config" } + strum = { workspace = true } + stylo = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, features = ["ipc"] } +diff --git a/components/shared/compositing/Cargo.toml b/components/shared/compositing/Cargo.toml +index 11ac6223766..98fe1417013 100644 +--- a/components/shared/compositing/Cargo.toml ++++ b/components/shared/compositing/Cargo.toml +@@ -19,7 +19,7 @@ base = { workspace = true } + bincode = { workspace = true } + bitflags = { workspace = true } + crossbeam-channel = { workspace = true } +-dpi = { version = "0.1" } ++dpi = { workspace = true } + embedder_traits = { workspace = true } + euclid = { workspace = true } + gleam = { workspace = true } +@@ -38,4 +38,4 @@ strum_macros = { workspace = true } + stylo = { workspace = true } + stylo_traits = { workspace = true } + surfman = { workspace = true, features = ["sm-x11"] } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } +diff --git a/components/shared/compositing/rendering_context.rs b/components/shared/compositing/rendering_context.rs +index 0596210430b..c85c84618ae 100644 +--- a/components/shared/compositing/rendering_context.rs ++++ b/components/shared/compositing/rendering_context.rs +@@ -105,7 +105,12 @@ impl Drop for SurfmanRenderingContext { + + impl SurfmanRenderingContext { + fn new(connection: &Connection, adapter: &Adapter) -> Result { ++ eprintln!(" SurfmanRenderingContext::new - Starting"); ++ eprintln!(" GL API: {:?}", connection.gl_api()); ++ ++ eprintln!(" Creating device..."); + let mut device = connection.create_device(adapter)?; ++ eprintln!(" Device created"); + + let flags = ContextAttributeFlags::ALPHA | + ContextAttributeFlags::DEPTH | +@@ -115,9 +120,16 @@ impl SurfmanRenderingContext { + GLApi::GLES => surfman::GLVersion { major: 3, minor: 0 }, + GLApi::GL => surfman::GLVersion { major: 3, minor: 2 }, + }; ++ eprintln!(" GL Version requested: {}.{}", version.major, version.minor); ++ ++ eprintln!(" Creating context descriptor..."); + let context_descriptor = + device.create_context_descriptor(&ContextAttributes { flags, version })?; ++ eprintln!(" Context descriptor created"); ++ ++ eprintln!(" Creating context..."); + let context = device.create_context(&context_descriptor, None)?; ++ eprintln!(" Context created"); + + #[allow(unsafe_code)] + let gleam_gl = { +@@ -392,20 +404,41 @@ impl WindowRenderingContext { + window_handle: WindowHandle, + size: PhysicalSize, + ) -> Result { ++ eprintln!("WindowRenderingContext::new - Starting creation"); ++ eprintln!(" Size: {}x{}", size.width, size.height); ++ ++ eprintln!(" Creating connection from display_handle..."); + let connection = Connection::from_display_handle(display_handle)?; ++ eprintln!(" Connection created successfully"); ++ ++ eprintln!(" Creating adapter..."); + let adapter = connection.create_adapter()?; ++ eprintln!(" Adapter created successfully"); ++ ++ eprintln!(" Creating SurfmanRenderingContext..."); + let surfman_context = SurfmanRenderingContext::new(&connection, &adapter)?; ++ eprintln!(" SurfmanRenderingContext created successfully"); + ++ eprintln!(" Creating native widget from window handle..."); + let native_widget = connection + .create_native_widget_from_window_handle( + window_handle, + Size2D::new(size.width as i32, size.height as i32), + ) + .expect("Failed to create native widget"); ++ eprintln!(" Native widget created successfully"); + ++ eprintln!(" Creating surface..."); + let surface = surfman_context.create_surface(SurfaceType::Widget { native_widget })?; ++ eprintln!(" Surface created successfully"); ++ ++ eprintln!(" Binding surface..."); + surfman_context.bind_surface(surface)?; ++ eprintln!(" Surface bound successfully"); ++ ++ eprintln!(" Making context current..."); + surfman_context.make_current()?; ++ eprintln!(" Context made current successfully"); + + Ok(Self { + size: Cell::new(size), +diff --git a/components/shared/constellation/Cargo.toml b/components/shared/constellation/Cargo.toml +index 7a1132ecd63..954c002d7f9 100644 +--- a/components/shared/constellation/Cargo.toml ++++ b/components/shared/constellation/Cargo.toml +@@ -37,5 +37,5 @@ strum_macros = { workspace = true } + stylo_traits = { workspace = true } + uuid = { workspace = true } + webgpu_traits = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + wgpu-core = { workspace = true, optional = true } +diff --git a/components/shared/embedder/Cargo.toml b/components/shared/embedder/Cargo.toml +index 2ff427a4057..bc611d67da4 100644 +--- a/components/shared/embedder/Cargo.toml ++++ b/components/shared/embedder/Cargo.toml +@@ -38,5 +38,5 @@ stylo = { workspace = true } + url = { workspace = true } + uuid = { workspace = true } + webdriver = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + servo_geometry = { path = "../../geometry" } +diff --git a/components/shared/layout/Cargo.toml b/components/shared/layout/Cargo.toml +index ae5d005d103..b24976e9da6 100644 +--- a/components/shared/layout/Cargo.toml ++++ b/components/shared/layout/Cargo.toml +@@ -41,4 +41,4 @@ servo_arc = { workspace = true } + servo_url = { path = "../../url" } + stylo_traits = { workspace = true } + stylo = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } +diff --git a/components/shared/net/Cargo.toml b/components/shared/net/Cargo.toml +index 044b2658c4e..0a36fc291ca 100644 +--- a/components/shared/net/Cargo.toml ++++ b/components/shared/net/Cargo.toml +@@ -41,7 +41,6 @@ servo_rand = { path = "../../rand" } + servo_url = { path = "../../url" } + url = { workspace = true } + uuid = { workspace = true } +-webrender_api = { workspace = true } +- ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + [dev-dependencies] + embedder_traits = { workspace = true, features = ["baked-default-resources"] } +diff --git a/components/shared/script/Cargo.toml b/components/shared/script/Cargo.toml +index 69438867cc0..e65648a60b5 100644 +--- a/components/shared/script/Cargo.toml ++++ b/components/shared/script/Cargo.toml +@@ -41,5 +41,5 @@ strum_macros = { workspace = true } + stylo_atoms = { workspace = true } + stylo_traits = { workspace = true } + webgpu_traits = { workspace = true, optional = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, features = ["ipc"] } +diff --git a/components/shared/webgpu/Cargo.toml b/components/shared/webgpu/Cargo.toml +index 5fb042dfb78..d41af6398d7 100644 +--- a/components/shared/webgpu/Cargo.toml ++++ b/components/shared/webgpu/Cargo.toml +@@ -18,6 +18,6 @@ ipc-channel = { workspace = true } + malloc_size_of = { workspace = true } + pixels = { path = "../../pixels" } + serde = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + wgpu-core = { workspace = true, features = ["serde", "wgsl"] } + wgpu-types = { workspace = true } +diff --git a/components/webgl/Cargo.toml b/components/webgl/Cargo.toml +index 46fe7381959..017cf68eba7 100644 +--- a/components/webgl/Cargo.toml ++++ b/components/webgl/Cargo.toml +@@ -30,7 +30,7 @@ itertools = { workspace = true } + log = { workspace = true } + pixels = { path = "../pixels" } + surfman = { workspace = true } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods", features = ["capture"] } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr = { path = "../webxr", features = ["ipc"], optional = true } + webxr-api = { workspace = true, features = ["ipc"], optional = true } +diff --git a/components/webgpu/Cargo.toml b/components/webgpu/Cargo.toml +index a2119f4c83c..308ab3772fb 100644 +--- a/components/webgpu/Cargo.toml ++++ b/components/webgpu/Cargo.toml +@@ -22,7 +22,7 @@ pixels = { path = "../pixels" } + serde = { workspace = true, features = ["serde_derive"] } + servo_config = { path = "../config" } + webgpu_traits = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + wgpu-core = { workspace = true, features = ["serde", "wgsl"] } + wgpu-types = { workspace = true } + +diff --git a/ports/servoshell/Cargo.toml b/ports/servoshell/Cargo.toml +index 06304184929..fb77b7099b0 100644 +--- a/ports/servoshell/Cargo.toml ++++ b/ports/servoshell/Cargo.toml +@@ -37,7 +37,8 @@ ProductName = "Servo" + [features] + crown = ["libservo/crown"] + debugmozjs = ["libservo/debugmozjs"] +-default = ["max_log_level", "webgpu", "webxr"] ++# cutting , "webxr" for redox ++default = ["max_log_level", "webgpu"] + jitspew = ["libservo/jitspew"] + js_backtrace = ["libservo/js_backtrace"] + max_log_level = ["log/release_max_level_info"] +@@ -68,7 +69,8 @@ image = { workspace = true } + ipc-channel = { workspace = true } + keyboard-types = { workspace = true } + libc = { workspace = true } +-libservo = { path = "../../components/servo", features = ["background_hang_monitor", "bluetooth", "testbinding"] } ++# removed "background_hang_monitor", ++libservo = { path = "../../components/servo", features = [ "bluetooth", "testbinding"] } + log = { workspace = true } + mime_guess = { workspace = true } + raw-window-handle = { workspace = true } +@@ -108,13 +110,32 @@ nix = { workspace = true, features = ["fs"] } + serde_json = { workspace = true } + surfman = { workspace = true, features = ["sm-angle-default"] } + +-[target.'cfg(not(any(target_os = "android", target_env = "ohos")))'.dependencies] +-accesskit_winit = "0.27" ++# I removed the problematic dependencies from everywhere even though they should not be pulled for redox. The thing is that cargo is still complaining about them, even ++# though they should be ignored. ++[target.'cfg(not(any(target_os = "android", target_env = "ohos", target_os = "redox")))'.dependencies] ++# accesskit_winit = "0.27" + dirs = "6.0" +-egui = { version = "0.32.1", features = ["accesskit"] } ++# egui = { version = "0.32.1", features = ["accesskit"] } ++# egui-file-dialog = "0.11.0" ++# egui-winit = { version = "0.32.1", default-features = false, features = ["accesskit", "clipboard", "wayland"] } ++# egui_glow = { version = "0.32.1", features = ["winit"] } ++gilrs = "0.11.0" ++# glow = "0.16.0" ++headers = { workspace = true } ++net = { path = "../../components/net" } ++net_traits = { workspace = true } ++serde_json = { workspace = true } ++# For optional feature servo_allocator/use-system-allocator ++servo_allocator = { path = "../../components/allocator" } ++surfman = { workspace = true, features = ["sm-raw-window-handle-06", "sm-x11"] } ++winit = { workspace = true } ++ ++[target.'cfg(target_os = "redox")'.dependencies] ++dirs = "6.0" ++egui = { version = "0.32.1", default-features = false } + egui-file-dialog = "0.11.0" +-egui-winit = { version = "0.32.1", default-features = false, features = ["accesskit", "clipboard", "wayland"] } +-egui_glow = { version = "0.32.1", features = ["winit"] } ++egui-winit = { version = "0.32.1", default-features = false, features = ["clipboard"] } #<-here ++egui_glow = { version = "0.32.1", default-features = false, features = [] } + gilrs = "0.11.0" + glow = "0.16.0" + headers = { workspace = true } +diff --git a/ports/servoshell/desktop/app.rs b/ports/servoshell/desktop/app.rs +index 08c943b2829..61d20de8bc3 100644 +--- a/ports/servoshell/desktop/app.rs ++++ b/ports/servoshell/desktop/app.rs +@@ -766,18 +766,18 @@ impl ApplicationHandler for App { + } + + fn user_event(&mut self, event_loop: &ActiveEventLoop, event: AppEvent) { +- if let AppEvent::Accessibility(ref event) = event { +- let Some(ref mut minibrowser) = self.minibrowser else { +- return; +- }; +- if !minibrowser.handle_accesskit_event(&event.window_event) { +- return; +- } +- if let Some(window) = self.windows.get(&event.window_id) { +- window.winit_window().unwrap().request_redraw(); +- } +- return; +- } ++ // if let AppEvent::Accessibility(ref event) = event { ++ // let Some(ref mut minibrowser) = self.minibrowser else { ++ // return; ++ // }; ++ // if !minibrowser.handle_accesskit_event(&event.window_event) { ++ // return; ++ // } ++ // if let Some(window) = self.windows.get(&event.window_id) { ++ // window.winit_window().unwrap().request_redraw(); ++ // } ++ // return; ++ // } + + let now = Instant::now(); + let event = winit::event::Event::UserEvent(event); +diff --git a/ports/servoshell/desktop/egui_glue.rs b/ports/servoshell/desktop/egui_glue.rs +index 797ea3c5a91..d658563edc1 100644 +--- a/ports/servoshell/desktop/egui_glue.rs ++++ b/ports/servoshell/desktop/egui_glue.rs +@@ -81,7 +81,7 @@ impl EguiGlow { + None, + ); + let window = window.winit_window().unwrap(); +- egui_winit.init_accesskit(event_loop, window, event_loop_proxy); ++ // egui_winit.init_accesskit(event_loop, window, event_loop_proxy); + window.set_visible(true); + Self { + egui_winit, +diff --git a/ports/servoshell/desktop/events_loop.rs b/ports/servoshell/desktop/events_loop.rs +index 4137001e4eb..b24757b9ad2 100644 +--- a/ports/servoshell/desktop/events_loop.rs ++++ b/ports/servoshell/desktop/events_loop.rs +@@ -22,14 +22,14 @@ pub type EventLoopProxy = winit::event_loop::EventLoopProxy; + pub enum AppEvent { + /// Another process or thread has kicked the OS event loop with EventLoopWaker. + Waker, +- Accessibility(accesskit_winit::Event), ++ // Accessibility(accesskit_winit::Event), + } + +-impl From for AppEvent { +- fn from(event: accesskit_winit::Event) -> AppEvent { +- AppEvent::Accessibility(event) +- } +-} ++// impl From for AppEvent { ++// fn from(event: accesskit_winit::Event) -> AppEvent { ++// AppEvent::Accessibility(event) ++// } ++// } + + /// The real or fake OS event loop. + #[allow(dead_code)] +diff --git a/ports/servoshell/desktop/headed_window.rs b/ports/servoshell/desktop/headed_window.rs +index eef657f2062..7054a201792 100644 +--- a/ports/servoshell/desktop/headed_window.rs ++++ b/ports/servoshell/desktop/headed_window.rs +@@ -144,10 +144,24 @@ impl Window { + let window_handle = winit_window + .window_handle() + .expect("could not get window handle from window"); +- let window_rendering_context = Rc::new( +- WindowRenderingContext::new(display_handle, window_handle, inner_size) +- .expect("Could not create RenderingContext for Window"), +- ); ++ ++ eprintln!("headed_window: Creating WindowRenderingContext..."); ++ eprintln!(" DISPLAY env var: {:?}", std::env::var("DISPLAY")); ++ eprintln!(" Display handle obtained: {:?}", display_handle); ++ eprintln!(" Window handle obtained: {:?}", window_handle); ++ eprintln!(" Inner size: {}x{}", inner_size.width, inner_size.height); ++ ++ let window_rendering_context = match WindowRenderingContext::new(display_handle, window_handle, inner_size) { ++ Ok(context) => { ++ eprintln!(" WindowRenderingContext created successfully!"); ++ Rc::new(context) ++ }, ++ Err(e) => { ++ eprintln!(" Failed to create WindowRenderingContext!"); ++ eprintln!(" Error: {:?}", e); ++ panic!("Could not create RenderingContext for Window: {:?}", e); ++ } ++ }; + + // Setup for GL accelerated media handling. This is only active on certain Linux platforms + // and Windows. +diff --git a/ports/servoshell/desktop/headless_window.rs b/ports/servoshell/desktop/headless_window.rs +index e17e09a5218..24beb102919 100644 +--- a/ports/servoshell/desktop/headless_window.rs ++++ b/ports/servoshell/desktop/headless_window.rs +@@ -179,7 +179,7 @@ impl WindowPortsMethods for Window { + // notification (such as from the display manager) that it has changed size, so we + // must notify the compositor here. + webview.move_resize(self.screen_size.to_f32().into()); +- webview.resize(PhysicalSize::new( ++ webview.resize(PhysicalSize::::new( + self.screen_size.width as u32, + self.screen_size.height as u32, + )); +diff --git a/ports/servoshell/desktop/minibrowser.rs b/ports/servoshell/desktop/minibrowser.rs +index 460e639c15b..3146f73d213 100644 +--- a/ports/servoshell/desktop/minibrowser.rs ++++ b/ports/servoshell/desktop/minibrowser.rs +@@ -522,23 +522,23 @@ impl Minibrowser { + self.update_status_text(state) + } + +- /// Returns true if a redraw is required after handling the provided event. +- pub(crate) fn handle_accesskit_event(&mut self, event: &accesskit_winit::WindowEvent) -> bool { +- match event { +- accesskit_winit::WindowEvent::InitialTreeRequested => { +- self.context.egui_ctx.enable_accesskit(); +- true +- }, +- accesskit_winit::WindowEvent::ActionRequested(req) => { +- self.context +- .egui_winit +- .on_accesskit_action_request(req.clone()); +- true +- }, +- accesskit_winit::WindowEvent::AccessibilityDeactivated => { +- self.context.egui_ctx.disable_accesskit(); +- false +- }, +- } +- } ++ // Returns true if a redraw is required after handling the provided event. ++ // pub(crate) fn handle_accesskit_event(&mut self, event: &accesskit_winit::WindowEvent) -> bool { ++ // match event { ++ // accesskit_winit::WindowEvent::InitialTreeRequested => { ++ // self.context.egui_ctx.enable_accesskit(); ++ // true ++ // }, ++ // accesskit_winit::WindowEvent::ActionRequested(req) => { ++ // self.context ++ // .egui_winit ++ // .on_accesskit_action_request(req.clone()); ++ // true ++ // }, ++ // accesskit_winit::WindowEvent::AccessibilityDeactivated => { ++ // self.context.egui_ctx.disable_accesskit(); ++ // false ++ // }, ++ // } ++ // } + } +diff --git a/ports/servoshell/desktop/tracing.rs b/ports/servoshell/desktop/tracing.rs +index b1f0b1d742e..046b016a2e2 100644 +--- a/ports/servoshell/desktop/tracing.rs ++++ b/ports/servoshell/desktop/tracing.rs +@@ -52,7 +52,7 @@ mod from_winit { + Self::WindowEvent { event, .. } => event.log_target(), + Self::DeviceEvent { .. } => target!("DeviceEvent"), + Self::UserEvent(AppEvent::Waker) => target!("UserEvent(Waker)"), +- Self::UserEvent(AppEvent::Accessibility(..)) => target!("UserEvent(Accessibility)"), ++ // Self::UserEvent(AppEvent::Accessibility(..)) => target!("UserEvent(Accessibility)"), + Self::Suspended => target!("Suspended"), + Self::Resumed => target!("Resumed"), + Self::AboutToWait => target!("AboutToWait"), +diff --git a/rust-toolchain.toml b/rust-toolchain.toml +deleted file mode 100644 +index 09d8bc760c6..00000000000 +--- a/rust-toolchain.toml ++++ /dev/null +@@ -1,17 +0,0 @@ +-[toolchain] +-# Be sure to update the 'rust-overlay' module's url in shell.nix to point to a +-# commit which supports the required rustc version and also update the version +-# in support/crown/rust-toolchain.toml when bumping this! +-channel = "1.85.0" +- +-components = [ +- "clippy", +- # For support/crown +- "llvm-tools", +- # For support/crown +- "rustc-dev", +- "rustfmt", +- "rustc-dev", +- # For rust-analyzer +- "rust-src", +-] diff --git a/recipes/wip/x11/libdrm/recipe.toml b/recipes/wip/x11/libdrm/recipe.toml new file mode 100644 index 000000000..f2775b034 --- /dev/null +++ b/recipes/wip/x11/libdrm/recipe.toml @@ -0,0 +1,6 @@ +# TODO: Port sys/ioccom.h just like BSD? +[source] +tar = "https://gitlab.freedesktop.org/mesa/libdrm/-/archive/libdrm-2.4.125/libdrm-libdrm-2.4.125.tar.gz" + +[build] +template = "meson" diff --git a/recipes/wip/x11/libglvnd/recipe.toml b/recipes/wip/x11/libglvnd/recipe.toml index c2ac4a82f..46ca86c6e 100644 --- a/recipes/wip/x11/libglvnd/recipe.toml +++ b/recipes/wip/x11/libglvnd/recipe.toml @@ -11,8 +11,4 @@ dependencies = [ "libxext", "x11proto", ] -template = "custom" -script = """ -DYNAMIC_INIT -cookbook_meson -""" +template = "meson" diff --git a/recipes/wip/x11/libxkbcommon-x11/recipe.toml b/recipes/wip/x11/libxkbcommon-x11/recipe.toml new file mode 100644 index 000000000..4e33e5d2c --- /dev/null +++ b/recipes/wip/x11/libxkbcommon-x11/recipe.toml @@ -0,0 +1,24 @@ +# TODO: Conflict with libxkbcommon-x11 +[source] +tar = "https://xkbcommon.org/download/libxkbcommon-1.7.0.tar.xz" +b3sum = "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..f942f22f6 --- /dev/null +++ b/recipes/wip/x11/libxkbcommon-x11/redox.patch @@ -0,0 +1,33 @@ +diff -ruwN source/meson.build source-new/meson.build +--- source/meson.build 2024-03-24 04:23:43.000000000 +0700 ++++ source-new/meson.build 2025-09-30 17:40:34.433925985 +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 --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/xserver-xorg/recipe.toml b/recipes/wip/x11/xserver-xorg/recipe.toml index 8436f7b72..3f1fa0b55 100644 --- a/recipes/wip/x11/xserver-xorg/recipe.toml +++ b/recipes/wip/x11/xserver-xorg/recipe.toml @@ -39,5 +39,6 @@ cookbook_meson \ -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 index 12dd9add3..de43a570a 100644 --- a/recipes/wip/x11/xserver-xorg/redox.patch +++ b/recipes/wip/x11/xserver-xorg/redox.patch @@ -82,7 +82,7 @@ diff -ruwN xorg-server-21.1.16/hw/xfree86/os-support/xf86_OSlib.h source/hw/xfre #include diff -ruwN xorg-server-21.1.16/include/meson.build source/include/meson.build --- xorg-server-21.1.16/include/meson.build 2025-02-25 11:56:05.000000000 -0700 -+++ source/include/meson.build 2025-05-06 18:15:08.036215875 -0600 ++++ source/include/meson.build 2025-09-15 08:40:00.484333455 -0600 @@ -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) @@ -92,7 +92,7 @@ diff -ruwN xorg-server-21.1.16/include/meson.build source/include/meson.build 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,7 +190,7 @@ +@@ -190,14 +190,14 @@ conf_data.set('LISTEN_LOCAL', get_option('listen_local')) if cc.has_header_symbol('sys/socket.h', 'SCM_RIGHTS') @@ -100,7 +100,18 @@ diff -ruwN xorg-server-21.1.16/include/meson.build source/include/meson.build + #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 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) diff --git a/recipes/wip/x11/xterm/recipe.toml b/recipes/wip/x11/xterm/recipe.toml index 0158180c6..81f46a81b 100644 --- a/recipes/wip/x11/xterm/recipe.toml +++ b/recipes/wip/x11/xterm/recipe.toml @@ -30,7 +30,7 @@ dependencies = [ template = "custom" script = """ DYNAMIC_INIT -export CFLAGS="-I${COOKBOOK_SYSROOT}/usr/include/freetype2" +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 \ diff --git a/repo.sh b/repo.sh index 40476cefd..ddc0e7793 100755 --- a/repo.sh +++ b/repo.sh @@ -12,100 +12,23 @@ do if [ "$arg" == "--appstream" ] then APPSTREAM="1" - elif [ "$arg" == "--debug" ] - then - DEBUG=--debug elif [ "$arg" == "--with-package-deps" ] then - COOK_OPT=--with-package-deps + COOK_OPT+=" --with-package-deps" elif [ "$arg" == "--nonstop" ] then - set +e + COOK_OPT+=" --nonstop" elif [ "$arg" == "--offline" ] then - export COOKBOOK_OFFLINE="1" + COOK_OPT+=" --offline" else recipes+=" $arg" fi done -if [ "$recipes" == "" ] -then - recipes="$(target/release/list_recipes)" -fi +cook $COOK_OPT $recipes -# All $recipes that are in the new TOML format. -toml_recipes="" +repo="$ROOT/repo/$TARGET" +mkdir -p "$repo" -for recipe in $recipes -do - recipe_path=`target/release/find_recipe $recipe` - COOKBOOK_RECIPE="$recipe_path" - TARGET_DIR="${COOKBOOK_RECIPE}/target/${TARGET}" - COOKBOOK_BUILD="${TARGET_DIR}/build" - COOKBOOK_STAGE="${TARGET_DIR}/stage" - COOKBOOK_SOURCE="${COOKBOOK_RECIPE}/source" - COOKBOOK_SYSROOT="${TARGET_DIR}/sysroot" - - if [ -e "${COOKBOOK_RECIPE}/recipe.toml" ] - then - toml_recipes+=" $recipe" - target/release/cook $COOK_OPT "$recipe" - continue - fi - - if [ ! -d "${COOKBOOK_SOURCE}" ] - then - echo -e "\033[01;38;5;155mrepo - fetching $recipe\033[0m" >&2 - ./cook.sh "$recipe" fetch - fi - - if [ ! -d "${COOKBOOK_BUILD}" ] - then - echo -e "\033[01;38;5;155mrepo - preparing $recipe\033[0m" >&2 - ./cook.sh "$recipe" prepare - elif [ ! -d "${COOKBOOK_SYSROOT}" ] - then - echo -e "\033[01;38;5;155mrepo - repreparing $recipe\033[0m" >&2 - ./cook.sh "$recipe" unprepare prepare - else - TIME_SOURCE="$($FIND "${COOKBOOK_SOURCE}" -type f -not -path '*/.git*' -printf "%Ts\n" | sort -nr | head -n 1)" - TIME_BUILD="$($FIND "${COOKBOOK_BUILD}" -type f -not -path '*/.git*' -printf "%Ts\n" | sort -nr | head -n 1)" - if [ "$TIME_SOURCE" -gt "$TIME_BUILD" ] - then - echo -e "\033[01;38;5;155mrepo - repreparing $recipe\033[0m" >&2 - ./cook.sh "$recipe" unprepare prepare - fi - fi - - if [ ! -f "${COOKBOOK_STAGE}.pkgar" ] - then - echo -e "\033[01;38;5;155mrepo - building $recipe\033[0m" >&2 - ./cook.sh "$recipe" build stage pkg $DEBUG - else - TIME_BUILD="$($FIND "${COOKBOOK_BUILD}" -type f -not -path '*/.git*' -printf "%Ts\n" | sort -nr | head -n 1)" - TIME_STAGE="$($STAT -c "%Y" "${COOKBOOK_STAGE}.pkgar")" - TIME_RECIPE="$($FIND "${COOKBOOK_RECIPE}"/{recipe.sh,*.patch} -printf '%Ts\n' | sort -nr | head -n 1)" - if [ "$TIME_BUILD" -gt "$TIME_STAGE" -o "$TIME_RECIPE" -gt "$TIME_STAGE" ] - then - echo -e "\033[01;38;5;155mrepo - rebuilding $recipe\033[0m" >&2 - ./cook.sh "$recipe" untar unstage build stage pkg $DEBUG - else - echo -e "\033[01;38;5;155mrepo - $recipe up to date\033[0m" >&2 - fi - fi -done - -mkdir -p "$REPO" - -declare -A APPSTREAM_SOURCES - -# Currently, we only support runtime dependencies for recipes in the new TOML -# format. 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. -recipes="$recipes $(target/release/pkg_deps $toml_recipes)" - -target/release/repo_builder "$REPO" $recipes +repo_builder "$repo" $recipes diff --git a/src/bin/cook.rs b/src/bin/cook.rs index ca2e4484b..8f33c9667 100644 --- a/src/bin/cook.rs +++ b/src/bin/cook.rs @@ -1,571 +1,24 @@ -use cookbook::blake3::blake3_progress; -use cookbook::recipe::{AutoDeps, BuildKind, CookRecipe, Recipe, SourceRecipe}; +use cookbook::config::init_config; +use cookbook::cook::build::build_remote; +use cookbook::cook::fetch::*; +use cookbook::cook::fs::*; +use cookbook::cook::script::SHARED_PRESCRIPT; +use cookbook::recipe::{AutoDeps, BuildKind, CookRecipe, Recipe}; use pkg::package::Package; -use pkg::{recipes, PackageName}; -use serde::Serialize; +use pkg::{PackageName, recipes}; use std::collections::VecDeque; use std::convert::TryInto; use std::{ collections::BTreeSet, env, fs, - io::{self, Write}, path::{Path, PathBuf}, - process::{self, Command, Stdio}, + process::{self, Command}, str, time::SystemTime, }; use termion::{color, style}; -use walkdir::{DirEntry, WalkDir}; -use cookbook::WALK_DEPTH; - -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)) -} - -fn create_dir(dir: &Path) -> Result<(), String> { - fs::create_dir(dir) - .map_err(|err| format!("failed to create '{}': {}\n{:?}", dir.display(), err, err)) -} - -fn create_dir_clean(dir: &Path) -> Result<(), String> { - if dir.is_dir() { - remove_all(dir)?; - } - create_dir(dir) -} - -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(()) -} - -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 - ) - }) -} - -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 - ) - }) -} - -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) -} - -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 - ) - }) -} - -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 - ) - }) -} - -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 - ) - }) -} - -fn run_command(mut command: process::Command) -> Result<(), String> { - let status = command - .status() - .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(()) -} - -fn run_command_stdin(mut command: process::Command, stdin_data: &[u8]) -> Result<(), String> { - command.stdin(Stdio::piped()); - - let mut child = command - .spawn() - .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(()) -} - -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(()) -} - -static SHARED_PRESCRIPT: &str = r#" -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 - } - - echo "DEBUG: Program is being compiled dynamically." - - COOKBOOK_CONFIGURE_FLAGS=( - --host="${GNU_TARGET}" - --prefix="/usr" - --enable-shared - --disable-static - ) - - # TODO: check paths for spaces - export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib" - export LDFLAGS="-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib $LDFLAGS" - export RUSTFLAGS="-C target-feature=-crt-static" - export COOKBOOK_DYNAMIC=1 -} - -function GNU_CONFIG_GET { - wget -O "$1" "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" -} -"#; - -fn fetch_offline(recipe_dir: &Path, source: &Option) -> Result { - let source_dir = recipe_dir.join("source"); - match source { - Some(SourceRecipe::SameAs { same_as: _ }) | Some(SourceRecipe::Path { path: _ }) | None => { - return fetch(recipe_dir, source); - } - Some(SourceRecipe::Git { - git: _, - upstream: _, - branch: _, - rev: _, - patches: _, - script: _, - shallow_clone: _, - }) - | Some(SourceRecipe::Tar { - tar: _, - blake3: _, - patches: _, - script: _, - }) => { - if !source_dir.is_dir() { - return Err(format!( - "'{dir}' is not exist and unable to continue in offline mode", - dir = source_dir.display(), - )); - } - } - } - - Ok(source_dir) -} - -fn fetch(recipe_dir: &Path, source: &Option) -> Result { - let source_dir = recipe_dir.join("source"); - match source { - Some(SourceRecipe::SameAs { same_as }) => { - 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(), - )); - } - let original = Path::new(same_as).join("source"); - std::os::unix::fs::symlink(&original, &source_dir).map_err(|err| { - format!( - "failed to symlink '{}' to '{}': {}\n{:?}", - original.display(), - source_dir.display(), - err, - err - ) - })?; - } - } - Some(SourceRecipe::Path { path }) => { - if !source_dir.is_dir() || modified_dir(Path::new(path))? > modified_dir(&source_dir)? { - eprintln!("[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 - ) - })?; - } - } - Some(SourceRecipe::Git { - git, - upstream, - branch, - rev, - patches, - script, - shallow_clone, - }) => { - //TODO: use libgit? - let shallow_clone = *shallow_clone == Some(true); - 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(git); - if let Some(branch) = branch { - command.arg("--branch").arg(branch); - } - if shallow_clone { - command.arg("--depth").arg("1").arg("--shallow-submodules"); - } - command.arg(&source_dir_tmp); - run_command(command)?; - - // Move source.tmp to source atomically - rename(&source_dir_tmp, &source_dir)?; - } else if !shallow_clone { - // Don't let this code reset the origin for the cookbook repo - let source_git_dir = source_dir.join(".git"); - if !source_git_dir.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)?; - - // Fetch origin - let mut command = Command::new("git"); - command.arg("-C").arg(&source_dir); - command.arg("fetch").arg("origin"); - run_command(command)?; - } - - if let Some(_upstream) = upstream { - //TODO: set upstream URL - // 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)?; - } else if !shallow_clone { - //TODO: complicated stuff to check and reset branch to origin - let mut command = Command::new("bash"); - command.arg("-c").arg( - 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"#, - ); - if let Some(branch) = branch { - command.env("BRANCH", branch); - } - command.current_dir(&source_dir); - run_command(command)?; - } - - 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)?; - } - - if !shallow_clone { - // 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)?; - - // Update submodules - let mut command = Command::new("git"); - command.arg("-C").arg(&source_dir); - command - .arg("submodule") - .arg("update") - .arg("--init") - .arg("--recursive"); - run_command(command)?; - } - - // Apply patches - 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("--forward"); - command.arg("--batch"); - command.arg("--directory").arg(&source_dir); - command.arg("--strip=1"); - run_command_stdin(command, patch.as_bytes())?; - } - - // Run source script - if let Some(script) = script { - let mut command = Command::new("bash"); - command.arg("-ex"); - command.current_dir(&source_dir); - run_command_stdin(command, format!("{SHARED_PRESCRIPT}\n{script}").as_bytes())?; - } - } - Some(SourceRecipe::Tar { - tar, - blake3, - patches, - script, - }) => { - if !source_dir.is_dir() { - // Download tar - //TODO: replace wget - let source_tar = recipe_dir.join("source.tar"); - if !source_tar.is_file() { - let source_tar_tmp = recipe_dir.join("source.tar.tmp"); - - let mut command = Command::new("wget"); - command.arg(tar); - command.arg("--continue").arg("-O").arg(&source_tar_tmp); - run_command(command)?; - - // Move source.tar.tmp to source.tar atomically - rename(&source_tar_tmp, &source_tar)?; - } - - // Calculate blake3 - let source_tar_blake3 = blake3_progress(&source_tar).map_err(|err| { - format!( - "failed to calculate blake3 of '{}': {}\n{:?}", - source_tar.display(), - err, - err - ) - })?; - if let Some(blake3) = blake3 { - // Check if it matches recipe - if &source_tar_blake3 != blake3 { - return Err(format!( - "calculated blake3 '{}' does not match recipe blake3 '{}'", - source_tar_blake3, blake3 - )); - } - } else { - //TODO: set blake3 hash on the recipe with something like "cook fix" - eprintln!( - "WARNING: set blake3 for '{}' to '{}'", - source_tar.display(), - source_tar_blake3 - ); - } - - // Create source.tmp - let source_dir_tmp = recipe_dir.join("source.tmp"); - create_dir_clean(&source_dir_tmp)?; - - // Extract tar to source.tmp - //TODO: use tar crate (how to deal with compression?) - let mut command = Command::new("tar"); - command.arg("--extract"); - command.arg("--verbose"); - command.arg("--file").arg(&source_tar); - command.arg("--directory").arg(&source_dir_tmp); - command.arg("--strip-components").arg("1"); - run_command(command)?; - - // Apply patches - 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())?; - } - - // Run source script - 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())?; - } - - // Move source.tmp to source atomically - rename(&source_dir_tmp, &source_dir)?; - } - } - // Local Sources - None => { - if !source_dir.is_dir() { - eprintln!( - "WARNING: Recipe without source section expected source dir at '{}'", - source_dir.display(), - ); - create_dir(&source_dir)?; - } - } - } - - Ok(source_dir) -} +use cookbook::{WALK_DEPTH, is_redox}; fn auto_deps( stage_dir: &Path, @@ -692,7 +145,12 @@ fn build( target_dir: &Path, name: &PackageName, recipe: &Recipe, + offline_mode: bool, + check_source: bool, ) -> Result<(PathBuf, BTreeSet), String> { + let sysroot_dir = target_dir.join("sysroot"); + let stage_dir = target_dir.join("stage"); + let mut dep_pkgars = BTreeSet::new(); for dependency in recipe.build.dependencies.iter() { let dependency_dir = recipes::find(dependency.as_str()); @@ -709,6 +167,11 @@ fn build( )); } + if stage_dir.exists() && !check_source { + let auto_deps = build_auto_deps(target_dir, &stage_dir, dep_pkgars)?; + return Ok((stage_dir, auto_deps)); + } + let source_modified = modified_dir_ignore_git(source_dir)?; let deps_modified = dep_pkgars .iter() @@ -716,7 +179,6 @@ fn build( .max() .unwrap_or(Ok(SystemTime::UNIX_EPOCH))?; - let sysroot_dir = target_dir.join("sysroot"); // Rebuild sysroot if source is newer //TODO: rebuild on recipe changes if sysroot_dir.is_dir() { @@ -766,7 +228,6 @@ fn build( rename(&sysroot_dir_tmp, &sysroot_dir)?; } - let stage_dir = target_dir.join("stage"); // Rebuild stage if source is newer //TODO: rebuild on recipe changes if stage_dir.is_dir() { @@ -795,7 +256,10 @@ fn build( let pre_script = r#"# Common pre script # Add cookbook bins to path +if [ -z "${IS_REDOX}" ] +then export PATH="${COOKBOOK_ROOT}/bin:${PATH}" +fi # This puts cargo build artifacts in the build directory export CARGO_TARGET_DIR="${COOKBOOK_BUILD}/target" @@ -821,11 +285,19 @@ export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}" build_type=release install_flags= build_flags=--release +offline_flags= 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 +offline_flags=--offline fi # cargo template @@ -837,7 +309,8 @@ function cookbook_cargo { --locked \ --no-track \ ${install_flags} \ - "$@" + ${offline_flags} \ + -j "${COOKBOOK_MAKE_JOBS}" "$@" } # helper for installing binaries that are cargo examples @@ -848,7 +321,7 @@ function cookbook_cargo_examples { "${COOKBOOK_CARGO}" build \ --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ --example "${example}" \ - ${build_flags} + ${build_flags} ${offline_flags} -j "${COOKBOOK_MAKE_JOBS}" mkdir -pv "${COOKBOOK_STAGE}/usr/bin" cp -v \ "target/${TARGET}/${build_type}/examples/${example}" \ @@ -864,7 +337,7 @@ function cookbook_cargo_packages { "${COOKBOOK_CARGO}" build \ --manifest-path "${COOKBOOK_SOURCE}/${PACKAGE_PATH}/Cargo.toml" \ --package "${package}" \ - ${build_flags} + ${build_flags} ${offline_flags} -j "${COOKBOOK_MAKE_JOBS}" mkdir -pv "${COOKBOOK_STAGE}/usr/bin" cp -v \ "target/${TARGET}/${build_type}/${package}" \ @@ -881,7 +354,17 @@ COOKBOOK_CONFIGURE_FLAGS=( --enable-static ) COOKBOOK_MAKE="make" + +if [ -z "${COOKBOOK_MAKE_JOBS}" ] +then +if [ -z "${IS_REDOX}" ] +then COOKBOOK_MAKE_JOBS="$(nproc)" +else +COOKBOOK_MAKE_JOBS="1" +fi +fi + function cookbook_configure { "${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" "$@" "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" @@ -890,24 +373,29 @@ function cookbook_configure { COOKBOOK_CMAKE="cmake" COOKBOOK_NINJA="ninja" +COOKBOOK_CMAKE_FLAGS=( + -DBUILD_SHARED_LIBS=False + -DENABLE_SHARED=False + -DENABLE_STATIC=True +) function cookbook_cmake { cat > cross_file.cmake <> cross_file.cmake echo "set(CMAKE_CXX_COMPILER_LAUNCHER ${CC_WRAPPER})" >> cross_file.cmake @@ -922,13 +410,11 @@ EOF -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_SBINDIR=bin \ -DCMAKE_TOOLCHAIN_FILE=cross_file.cmake \ - -DBUILD_SHARED_LIBS=True \ - -DENABLE_STATIC=False \ -GNinja \ -Wno-dev \ "${COOKBOOK_CMAKE_FLAGS[@]}" \ "$@" - + "${COOKBOOK_NINJA}" -j"${COOKBOOK_MAKE_JOBS}" DESTDIR="${COOKBOOK_STAGE}" "${COOKBOOK_NINJA}" install -j"${COOKBOOK_MAKE_JOBS}" } @@ -938,6 +424,7 @@ COOKBOOK_MESON_FLAGS=( --buildtype release --wrap-mode nofallback --strip + -Ddefault_library=static -Dprefix=/usr ) function cookbook_meson { @@ -996,7 +483,7 @@ function cookbook_meson { let post_script = r#"# Common post script # Strip binaries -for dir in "${COOKBOOK_STAGE}/bin" "${COOKBOOK_STAGE}/usr/bin" +for dir in "${COOKBOOK_STAGE}/bin" "${COOKBOOK_STAGE}/usr/bin" do if [ -d "${dir}" ] && [ -z "${COOKBOOK_NOSTRIP}" ] then @@ -1005,7 +492,7 @@ do done # Remove libtool files -for dir in "${COOKBOOK_STAGE}/lib" "${COOKBOOK_STAGE}/usr/lib" +for dir in "${COOKBOOK_STAGE}/lib" "${COOKBOOK_STAGE}/usr/lib" do if [ -d "${dir}" ] then @@ -1069,6 +556,7 @@ done flags_fn("COOKBOOK_MESON_FLAGS", mesonflags), ), BuildKind::Custom { script } => script.clone(), + BuildKind::Remote => return build_remote(target_dir, name, offline_mode), BuildKind::None => "".to_owned(), }; @@ -1076,26 +564,36 @@ done //TODO: remove unwraps let cookbook_build = build_dir.canonicalize().unwrap(); let cookbook_recipe = recipe_dir.canonicalize().unwrap(); - let cookbook_redoxer = Path::new("target/release/cookbook_redoxer") - .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 mut command = Command::new(&cookbook_redoxer); - command.arg("env"); - command.arg("bash").arg("-ex"); + let mut command = if is_redox() { + let mut command = Command::new("bash"); + command.arg("-ex"); + command.env("COOKBOOK_REDOXER", "cargo"); + command + } else { + let cookbook_redoxer = Path::new("target/release/cookbook_redoxer") + .canonicalize() + .unwrap(); + let mut command = Command::new(&cookbook_redoxer); + command.arg("env").arg("bash").arg("-ex"); + command.env("COOKBOOK_REDOXER", &cookbook_redoxer); + command + }; command.current_dir(&cookbook_build); command.env("COOKBOOK_BUILD", &cookbook_build); command.env("COOKBOOK_NAME", name.as_str()); command.env("COOKBOOK_RECIPE", &cookbook_recipe); - command.env("COOKBOOK_REDOXER", &cookbook_redoxer); 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 offline_mode { + command.env("COOKBOOK_OFFLINE", "1"); + } command }; @@ -1109,10 +607,19 @@ done rename(&stage_dir_tmp, &stage_dir)?; } - // Calculate automatic dependencies - let auto_deps_path = target_dir.join("auto_deps.toml"); + let auto_deps = build_auto_deps(target_dir, &stage_dir, dep_pkgars)?; - if auto_deps_path.is_file() && modified(&auto_deps_path)? < modified(&stage_dir)? { + Ok((stage_dir, auto_deps)) +} + +/// Calculate automatic dependencies +fn build_auto_deps( + target_dir: &Path, + stage_dir: &PathBuf, + dep_pkgars: BTreeSet<(PackageName, PathBuf)>, +) -> Result, String> { + let auto_deps_path = target_dir.join("auto_deps.toml"); + if auto_deps_path.is_file() && modified(&auto_deps_path)? < modified(stage_dir)? { remove_all(&auto_deps_path)? } @@ -1123,13 +630,12 @@ done toml::from_str(&toml_content).map_err(|_| "failed to deserialize cached auto_deps")?; wrapper.packages } else { - let packages = auto_deps(&stage_dir, &dep_pkgars); + let packages = auto_deps(stage_dir, &dep_pkgars); let wrapper = AutoDeps { packages }; serialize_and_write(&auto_deps_path, &wrapper)?; wrapper.packages }; - - Ok((stage_dir, auto_deps)) + Ok(auto_deps) } fn package( @@ -1209,6 +715,14 @@ fn package_toml( 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() } @@ -1236,13 +750,14 @@ fn cook( recipe_dir: &Path, name: &PackageName, recipe: &Recipe, + is_deps: bool, fetch_only: bool, + is_offline: bool, ) -> Result<(), String> { if recipe.build.kind == BuildKind::None { return cook_meta(recipe_dir, name, recipe, fetch_only); } - let is_offline = env::var("COOKBOOK_OFFLINE").unwrap_or("".to_string()) == "1"; let source_dir = match is_offline { true => fetch_offline(recipe_dir, &recipe.source), false => fetch(recipe_dir, &recipe.source), @@ -1255,8 +770,16 @@ fn cook( let target_dir = create_target_dir(recipe_dir)?; - let (stage_dir, auto_deps) = build(recipe_dir, &source_dir, &target_dir, name, recipe) - .map_err(|err| format!("failed to build: {}", err))?; + let (stage_dir, auto_deps) = build( + recipe_dir, + &source_dir, + &target_dir, + name, + recipe, + is_offline, + !is_deps, + ) + .map_err(|err| format!("failed to build: {}", err))?; let _package_file = package(&stage_dir, &target_dir, name, recipe, &auto_deps) .map_err(|err| format!("failed to package: {}", err))?; @@ -1277,11 +800,14 @@ fn create_target_dir(recipe_dir: &Path) -> Result { } fn main() { + init_config(); let mut matching = true; let mut dry_run = false; let mut fetch_only = false; let mut with_package_deps = false; let mut quiet = false; + let mut nonstop = false; + let mut is_offline = false; let mut recipe_names = Vec::new(); for arg in env::args().skip(1) { match arg.as_str() { @@ -1290,6 +816,8 @@ fn main() { "--with-package-deps" if matching => with_package_deps = true, "--fetch-only" if matching => fetch_only = true, "-q" | "--quiet" if matching => quiet = true, + "--nonstop" => nonstop = true, + "--offline" => is_offline = true, _ => recipe_names.push(arg.try_into().expect("Invalid package name")), } } @@ -1311,7 +839,7 @@ fn main() { }; } - let recipes = match CookRecipe::new_recursive(&recipe_names, WALK_DEPTH) { + let recipes = match CookRecipe::get_build_deps_recursive(&recipe_names, !with_package_deps) { Ok(ok) => ok, Err(err) => { eprintln!( @@ -1344,7 +872,14 @@ fn main() { } Ok(()) } else { - cook(&recipe.dir, &recipe.name, &recipe.recipe, fetch_only) + cook( + &recipe.dir, + &recipe.name, + &recipe.recipe, + recipe.is_deps, + fetch_only, + is_offline, + ) }; match res { @@ -1370,7 +905,9 @@ fn main() { style::Reset, err, ); - process::exit(1); + if !nonstop { + process::exit(1); + } } } } diff --git a/src/bin/pkg_deps.rs b/src/bin/pkg_deps.rs deleted file mode 100644 index 4fddb79d9..000000000 --- a/src/bin/pkg_deps.rs +++ /dev/null @@ -1,22 +0,0 @@ -use std::env::args; - -use pkg::{ - package::{Package, PackageError}, - PackageName, -}; - -use cookbook::WALK_DEPTH; - -fn main() -> Result<(), PackageError> { - let names: Vec = args() - .skip(1) - .map(PackageName::new) - .collect::>()?; - - let packages = Package::new_recursive(&names, WALK_DEPTH)?; - for package in packages { - println!("{}", package.name); - } - - Ok(()) -} diff --git a/src/bin/repo_builder.rs b/src/bin/repo_builder.rs index 6a7a8a35d..a94123df1 100644 --- a/src/bin/repo_builder.rs +++ b/src/bin/repo_builder.rs @@ -1,164 +1,181 @@ -use pkg::recipes; -use std::collections::{BTreeMap, 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, - } -} - -fn main() -> Result<(), Box> { - let mut args = env::args().skip(1); - let repo_dir = args - .next() - .expect("Usage: repo_builder ..."); - let recipe_list: Vec = args.collect(); - let repo_path = Path::new(&repo_dir); - - let mut appstream_sources: HashMap = HashMap::new(); - let mut packages: BTreeMap = BTreeMap::new(); - - // === 1. Push recipes in list === - for recipe in &recipe_list { - let Some(recipe_path) = recipes::find(recipe) else { - eprintln!("recipe {} not found", recipe); - continue; - }; - - let cookbook_recipe = Path::new(&recipe_path); - let target = env::var("TARGET").unwrap_or_else(|_| "x86_64-unknown-linux-gnu".into()); - let stage_dir = cookbook_recipe.join("target").join(&target).join("stage"); - - let pkgar_src = stage_dir.with_extension("pkgar"); - let pkgar_dst = repo_path.join(format!("{}.pkgar", recipe)); - let toml_src = stage_dir.with_extension("toml"); - let toml_dst = repo_path.join(format!("{}.toml", recipe)); - - if is_newer(&toml_src, &toml_dst) { - eprintln!("\x1b[01;38;5;155mrepo - publishing {}\x1b[0m", recipe); - 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.clone(), stage_dir.clone()); - } - } - - // === 2. Optional AppStream generation === - if env::var("APPSTREAM").ok().as_deref() == Some("1") { - 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("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(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("appstreamcli failed")?; - - Command::new("pkgar") - .arg("create") - .arg("--archive") - .arg(&appstream_pkg) - .arg("--skey") - .arg(format!("{}/build/id_ed25519.toml", root)) - .arg(&appstream_root) - .status()? - .success() - .then_some(()) - .ok_or("pkgar create failed")?; - } - } - - eprintln!("\x1b[01;38;5;155mrepo - generating repo.toml\x1b[0m"); - - // === 3. 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: Value = toml::from_str(&contents)?; - if let Some(pkg_table) = parsed.get("packages").and_then(|v| v.as_table()) { - for (k, v) in pkg_table { - if let Some(s) = v.as_str() { - packages.insert(k.clone(), format!("\"{}\"", s)); - } else { - packages.insert(k.clone(), v.to_string()); - } - } - } - } - - 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)?; - - if let Some(version_val) = parsed.get("version") { - let version_str = version_val.to_string(); // includes quotes - let package_name = path.file_stem().unwrap().to_string_lossy().to_string(); - packages.insert(package_name, version_str); - } else { - eprintln!("Warning: no [version] found in {:?}", path); - } - } - - // FIXME: Use proper TOML serializer - let mut output = String::from("[packages]\n"); - for (name, version) in &packages { - output.push_str(&format!("{name} = {version}\n")); - } - - let mut output_file = File::create(&repo_toml_path)?; - output_file.write_all(output.as_bytes())?; - - Ok(()) -} +use cookbook::WALK_DEPTH; +use pkg::{Package, PackageName, recipes}; +use std::collections::{BTreeMap, 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, + } +} + +fn main() -> Result<(), Box> { + let mut args = env::args().skip(1); + let repo_dir = args + .next() + .expect("Usage: repo_builder ..."); + let repo_path = Path::new(&repo_dir); + + // 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 = Package::new_recursive( + &args.map(PackageName::new).collect::, _>>()?, + WALK_DEPTH, + )? + .into_iter() + .map(|pkg| pkg.name.as_str().to_owned()) + .collect::>(); + + let mut appstream_sources: HashMap = HashMap::new(); + let mut packages: BTreeMap = BTreeMap::new(); + + // === 1. Push recipes in list === + for recipe in &recipe_list { + let Some(recipe_path) = recipes::find(recipe) else { + eprintln!("recipe {} not found", recipe); + continue; + }; + + let cookbook_recipe = Path::new(&recipe_path); + let target = env::var("TARGET").unwrap_or_else(|_| "x86_64-unknown-linux-gnu".into()); + let stage_dir = cookbook_recipe.join("target").join(&target).join("stage"); + + let pkgar_src = stage_dir.with_extension("pkgar"); + let pkgar_dst = repo_path.join(format!("{}.pkgar", recipe)); + let toml_src = stage_dir.with_extension("toml"); + let toml_dst = repo_path.join(format!("{}.toml", recipe)); + + if !fs::exists(&toml_src)? { + eprintln!("recipe {} is missing stage.toml", recipe); + continue; + } + + if is_newer(&toml_src, &toml_dst) { + eprintln!("\x1b[01;38;5;155mrepo - publishing {}\x1b[0m", recipe); + 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.clone(), stage_dir.clone()); + } + } + + // === 2. Optional AppStream generation === + if env::var("APPSTREAM").ok().as_deref() == Some("1") { + 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("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(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("appstreamcli failed")?; + + Command::new("pkgar") + .arg("create") + .arg("--archive") + .arg(&appstream_pkg) + .arg("--skey") + .arg(format!("{}/build/id_ed25519.toml", root)) + .arg(&appstream_root) + .status()? + .success() + .then_some(()) + .ok_or("pkgar create failed")?; + } + } + + eprintln!("\x1b[01;38;5;155mrepo - generating repo.toml\x1b[0m"); + + // === 3. 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: Value = toml::from_str(&contents)?; + if let Some(pkg_table) = parsed.get("packages").and_then(|v| v.as_table()) { + for (k, v) in pkg_table { + if let Some(s) = v.as_str() { + packages.insert(k.clone(), format!("\"{}\"", s)); + } else { + packages.insert(k.clone(), v.to_string()); + } + } + } + } + + 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 version_str = parsed + .get("version") + .unwrap_or(&Value::String("".to_string())) + .to_string(); // includes quotes + let package_name = path.file_stem().unwrap().to_string_lossy().to_string(); + packages.insert(package_name, version_str); + } + + // FIXME: Use proper TOML serializer + let mut output = String::from("[packages]\n"); + for (name, version) in &packages { + output.push_str(&format!("{name} = {version}\n")); + } + + 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 index 746b829d1..0ac193180 100644 --- a/src/blake3.rs +++ b/src/blake3.rs @@ -21,3 +21,11 @@ pub fn blake3_progress>(path: P) -> Result { 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) +} diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 000000000..54d6f8370 --- /dev/null +++ b/src/config.rs @@ -0,0 +1,118 @@ +use std::{collections::HashMap, fs, sync::OnceLock}; + +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Default, Deserialize, PartialEq, Serialize)] +pub struct CookbookConfig { + pub mirrors: HashMap, +} + +static CONFIG: OnceLock = OnceLock::new(); + +pub fn init_config() { + let 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() + }; + + CONFIG.set(config).expect("config is initialized twice"); +} + +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_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..d538dbc35 --- /dev/null +++ b/src/cook.rs @@ -0,0 +1,6 @@ +pub mod fetch; +pub mod fs; +pub mod script; +//TODO: Move rest of cook functions here in the next refactor +pub mod build; +//pub mod package; diff --git a/src/cook/build.rs b/src/cook/build.rs new file mode 100644 index 000000000..cda47fd65 --- /dev/null +++ b/src/cook/build.rs @@ -0,0 +1,84 @@ +use std::{ + collections::BTreeSet, + fs, + path::{Path, PathBuf}, +}; + +use pkg::{Package, PackageName}; +use redoxer::target; + +use crate::{REMOTE_PKG_SOURCE, cook::fs::*, recipe::AutoDeps}; + +fn get_remote_url(name: &PackageName, ext: &str) -> String { + return format!("{}/{}/{}.{}", REMOTE_PKG_SOURCE, target(), name, ext); +} +fn get_pubkey_url() -> String { + return format!("{}/id_ed25519.pub.toml", REMOTE_PKG_SOURCE); +} + +pub fn build_remote( + target_dir: &Path, + name: &PackageName, + offline_mode: bool, +) -> Result<(PathBuf, BTreeSet), String> { + // download straight from remote source then declare pkg dependencies as autodeps dependency + let stage_dir = target_dir.join("stage"); + + let source_pkgar = target_dir.join("source.pkgar"); + let source_toml = target_dir.join("source.toml"); + let source_pubkey = target_dir.join("id_ed25519.pub.toml"); + + if !offline_mode { + download_wget(&get_remote_url(name, "pkgar"), &source_pkgar)?; + download_wget(&get_remote_url(name, "toml"), &source_toml)?; + download_wget(&get_pubkey_url(), &source_pubkey)?; + } else { + offline_check_exists(&source_pkgar)?; + offline_check_exists(&source_toml)?; + offline_check_exists(&source_pubkey)?; + } + + if stage_dir.is_dir() && modified(&source_pkgar)? > modified(&stage_dir)? { + remove_all(&stage_dir)? + } + if !stage_dir.is_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(&stage_dir)? { + 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_dir, auto_deps)) +} diff --git a/src/cook/fetch.rs b/src/cook/fetch.rs new file mode 100644 index 000000000..c3ce9bdc7 --- /dev/null +++ b/src/cook/fetch.rs @@ -0,0 +1,411 @@ +use crate::config::translate_mirror; +use crate::cook::fs::*; +use crate::cook::script::*; +use crate::is_redox; +use crate::recipe::Recipe; +use crate::{blake3, recipe::SourceRecipe}; +use std::fs; +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_dir: &Path, source: &Option) -> Result { + let source_dir = recipe_dir.join("source"); + match source { + Some(SourceRecipe::Path { path: _ }) | None => { + return fetch(recipe_dir, source); + } + Some(SourceRecipe::SameAs { same_as: _ }) => { + return fetch(recipe_dir, source); + } + Some(SourceRecipe::Git { + git: _, + upstream: _, + branch: _, + rev: _, + patches: _, + script: _, + shallow_clone: _, + }) => { + offline_check_exists(&source_dir)?; + } + 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)?; + 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." + )); + } + fetch_extract_tar(source_tar, &source_dir)?; + fetch_apply_patches(recipe_dir, patches, script, &source_dir)?; + } 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)?; + } + } + } + } + + Ok(source_dir) +} + +pub fn fetch(recipe_dir: &Path, source: &Option) -> Result { + let source_dir = recipe_dir.join("source"); + match source { + Some(SourceRecipe::SameAs { same_as }) => { + let (canon_dir, recipe) = fetch_resolve_canon(recipe_dir, same_as)?; + // recursively fetch + fetch(&canon_dir, &recipe.source)?; + fetch_make_symlink(&source_dir, same_as)?; + } + Some(SourceRecipe::Path { path }) => { + if !source_dir.is_dir() || modified_dir(Path::new(path))? > modified_dir(&source_dir)? { + eprintln!("[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 + ) + })?; + } + } + Some(SourceRecipe::Git { + git, + upstream, + branch, + rev, + patches, + script, + shallow_clone, + }) => { + //TODO: use libgit? + let shallow_clone = *shallow_clone == Some(true); + 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("--depth").arg("1").arg("--shallow-submodules"); + } + command.arg(&source_dir_tmp); + run_command(command)?; + + // Move source.tmp to source atomically + rename(&source_dir_tmp, &source_dir)?; + } else if !shallow_clone { + // Don't let this code reset the origin for the cookbook repo + let source_git_dir = source_dir.join(".git"); + if !source_git_dir.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)?; + + // Fetch origin + let mut command = Command::new("git"); + command.arg("-C").arg(&source_dir); + command.arg("fetch").arg("origin"); + run_command(command)?; + } + + if let Some(_upstream) = upstream { + //TODO: set upstream URL + // 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)?; + } else if !shallow_clone && !is_redox() { + //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)?; + } + + 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)?; + } + + if !shallow_clone { + // 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)?; + + // Update submodules + let mut command = Command::new("git"); + command.arg("-C").arg(&source_dir); + command + .arg("submodule") + .arg("update") + .arg("--init") + .arg("--recursive"); + run_command(command)?; + } + + fetch_apply_patches(recipe_dir, patches, script, &source_dir)?; + } + 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)?; + } + let source_tar_blake3 = get_blake3(&source_tar, tar_updated)?; + 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 { + eprintln!("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" + eprintln!( + "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)? { + eprintln!("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)?; + fetch_apply_patches(recipe_dir, patches, script, &source_dir_tmp)?; + + // Move source.tmp to source atomically + rename(&source_dir_tmp, &source_dir)?; + } + } + // Local Sources + None => { + if !source_dir.is_dir() { + //TODO: Don't print if build template is none or remote + eprintln!( + "WARNING: Recipe without source section expected source dir at '{}'", + source_dir.display(), + ); + create_dir(&source_dir)?; + } + } + } + + 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, +) -> Result<(PathBuf, Recipe), String> { + 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())); + } + let recipe_path = canon_dir.join("recipe.toml"); + let recipe_str = fs::read_to_string(&recipe_path) + .map_err(|e| format!("unable to read {path}: {e}", path = recipe_path.display()))?; + let recipe: Recipe = toml::from_str(&recipe_str) + .map_err(|e| format!("Unable to parse {path}: {e}", path = recipe_path.display()))?; + Ok((canon_dir, recipe)) +} + +pub(crate) fn fetch_extract_tar( + source_tar: PathBuf, + source_dir_tmp: &PathBuf, +) -> Result<(), String> { + let mut command = Command::new("tar"); + if is_redox() { + command.arg("xvf"); + } else { + command.arg("--extract"); + 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)?; + 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, +) -> 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())?; + } + 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())?; + }) +} diff --git a/src/cook/fs.rs b/src/cook/fs.rs new file mode 100644 index 000000000..f156bb10a --- /dev/null +++ b/src/cook/fs.rs @@ -0,0 +1,218 @@ +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; + +//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 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 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_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) -> Result<(), String> { + let status = command + .status() + .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]) -> Result<(), String> { + command.stdin(Stdio::piped()); + + let mut child = command + .spawn() + .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) -> 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)?; + rename(&dest_tmp, &dest)?; + } + Ok(()) +} diff --git a/src/cook/script.rs b/src/cook/script.rs new file mode 100644 index 000000000..aa531d699 --- /dev/null +++ b/src/cook/script.rs @@ -0,0 +1,91 @@ +//TODO: pub(crate) +pub 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 + } + + if [ "${TARGET}" != "x86_64-unknown-redox" ] + then + echo "WARN: ${TARGET} does not support dynamic linking." >&2 + return + fi + + 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 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"#; diff --git a/src/lib.rs b/src/lib.rs index 2892e8c90..0c8f7153b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +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/recipe.rs b/src/recipe.rs index 8032e5fe1..99e808007 100644 --- a/src/recipe.rs +++ b/src/recipe.rs @@ -1,11 +1,14 @@ use std::{collections::BTreeSet, convert::TryInto, fs, path::PathBuf}; -use pkg::{package::PackageError, recipes, PackageName}; +use pkg::{PackageName, package::PackageError, recipes}; +use regex::Regex; use serde::{ - de::{value::Error as DeError, Error as DeErrorT}, Deserialize, Serialize, + de::{Error as DeErrorT, value::Error as DeError}, }; +use crate::WALK_DEPTH; + /// Specifies how to download the source for a recipe #[derive(Debug, Deserialize, PartialEq, Serialize)] #[serde(untagged)] @@ -59,6 +62,26 @@ pub enum SourceRecipe { }, } +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, Deserialize, PartialEq, Serialize)] #[serde(tag = "template")] @@ -66,6 +89,9 @@ 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 { @@ -115,6 +141,8 @@ pub struct BuildRecipe { pub struct PackageRecipe { #[serde(default)] pub dependencies: Vec, + #[serde(default)] + pub version: Option, } /// Everything required to build a Redox package @@ -135,6 +163,8 @@ pub struct CookRecipe { pub name: PackageName, pub dir: PathBuf, pub recipe: Recipe, + /// If true, the source will not be checked for freshness + pub is_deps: bool, } impl CookRecipe { @@ -156,7 +186,12 @@ impl CookRecipe { .map_err(|err| PackageError::Parse(DeError::custom(err), Some(file)))?; let dir = dir.to_path_buf(); - Ok(Self { name, dir, recipe }) + Ok(Self { + name, + dir, + recipe, + is_deps: false, + }) } pub fn new_recursive( @@ -193,6 +228,21 @@ impl CookRecipe { Ok(recipes) } + pub fn get_build_deps_recursive( + names: &[PackageName], + mark_is_deps: bool, + ) -> Result, PackageError> { + let mut packages = Self::new_recursive(names, 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], recursion: usize, @@ -274,9 +324,7 @@ mod tests { }, dependencies: Vec::new(), }, - package: PackageRecipe { - dependencies: Vec::new(), - }, + package: PackageRecipe::default(), } ); } @@ -316,11 +364,12 @@ mod tests { }, dependencies: Vec::new(), }, - package: PackageRecipe { - dependencies: Vec::new(), - }, + package: PackageRecipe::default(), } ); + + let source = recipe.source.unwrap(); + assert_eq!(source.guess_version(), Some("1.3.3".to_string())); } #[test] @@ -347,6 +396,7 @@ mod tests { }, package: PackageRecipe { dependencies: vec![PackageName::new("gcc13").unwrap()], + version: None, }, } ); diff --git a/unfetch.sh b/unfetch.sh index eb73178c3..ba273e872 100755 --- a/unfetch.sh +++ b/unfetch.sh @@ -5,12 +5,16 @@ source config.sh if [ $# = 0 ] then - recipes="$(target/release/list_recipes)" + recipes="$(list_recipes --short)" else recipes="$@" fi -for recipe_path in $recipes +for recipe_name in $recipes do - ./cook.sh "$recipe_path" unfetch + recipe_path=`find_recipe $recipe_name` + + echo -e "\033[01;38;5;215mcook - unfetch $recipe_name\033[0m" + rm -rfv "$recipe_path"/source "$recipe_path"/source.tar done +