From 60bf37dd0c989ee3cff000c427cf272556fa2aab Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jackpot51@gmail.com> Date: Thu, 18 May 2023 12:49:23 -0600 Subject: [PATCH] Convert some recipes to toml --- recipes/autoconf/recipe.sh | 25 ------------------------- recipes/autoconf/recipe.toml | 6 ++++++ recipes/automake/recipe.sh | 28 ---------------------------- recipes/automake/recipe.toml | 6 ++++++ recipes/cosmic-text/recipe.sh | 17 ----------------- recipes/cosmic-text/recipe.toml | 9 +++++++++ recipes/cpal/recipe.sh | 11 ----------- recipes/cpal/recipe.toml | 10 ++++++++++ recipes/orbclient/recipe.sh | 10 ---------- recipes/orbclient/recipe.toml | 8 ++++++++ recipes/orbterm/recipe.toml | 1 + recipes/winit/recipe.sh | 11 ----------- recipes/winit/recipe.toml | 10 ++++++++++ src/bin/cook.rs | 32 ++++++++++++++++++++++++++++++++ 14 files changed, 82 insertions(+), 102 deletions(-) delete mode 100644 recipes/autoconf/recipe.sh create mode 100644 recipes/autoconf/recipe.toml delete mode 100644 recipes/automake/recipe.sh create mode 100644 recipes/automake/recipe.toml delete mode 100644 recipes/cosmic-text/recipe.sh create mode 100644 recipes/cosmic-text/recipe.toml delete mode 100644 recipes/cpal/recipe.sh create mode 100644 recipes/cpal/recipe.toml delete mode 100644 recipes/orbclient/recipe.sh create mode 100644 recipes/orbclient/recipe.toml delete mode 100644 recipes/winit/recipe.sh create mode 100644 recipes/winit/recipe.toml diff --git a/recipes/autoconf/recipe.sh b/recipes/autoconf/recipe.sh deleted file mode 100644 index 750349aa4..000000000 --- a/recipes/autoconf/recipe.sh +++ /dev/null @@ -1,25 +0,0 @@ -VERSION=2.71 -TAR=https://ftp.gnu.org/gnu/autoconf/autoconf-$VERSION.tar.xz - -function recipe_version { - echo "$VERSION" - skip=1 -} - -function recipe_build { - wget -O build-aux/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" - ./configure --build=${BUILD} --host=${HOST} --prefix='' - "$REDOX_MAKE" -j"$($NPROC)" - skip=1 -} - -function recipe_clean { - "$REDOX_MAKE" clean - skip=1 -} - -function recipe_stage { - dest="$(realpath $1)" - "$REDOX_MAKE" DESTDIR="$dest" install - skip=1 -} diff --git a/recipes/autoconf/recipe.toml b/recipes/autoconf/recipe.toml new file mode 100644 index 000000000..a4f8df2f8 --- /dev/null +++ b/recipes/autoconf/recipe.toml @@ -0,0 +1,6 @@ +[source] +tar = "https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz" +blake3 = "da1cc8af8551c343de9f42af0ae53fd7dff3623487157623892b6cd7e3bb5692" + +[build] +template = "configure" diff --git a/recipes/automake/recipe.sh b/recipes/automake/recipe.sh deleted file mode 100644 index 22776f81a..000000000 --- a/recipes/automake/recipe.sh +++ /dev/null @@ -1,28 +0,0 @@ -VERSION=1.16.5 -TAR=https://ftp.gnu.org/gnu/automake/automake-$VERSION.tar.xz - -function recipe_version { - echo "$VERSION" - skip=1 -} - -function recipe_build { - wget -O lib/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false" - sed -i 's|.*/doc/help2man.*|\&\& true|' Makefile.in - sed -i 's|install-info-am install-man|install-info-am|' Makefile.in - - ./configure --build=${BUILD} --host=${HOST} --prefix='' - "$REDOX_MAKE" -j"$($NPROC)" - skip=1 -} - -function recipe_clean { - "$REDOX_MAKE" clean - skip=1 -} - -function recipe_stage { - dest="$(realpath $1)" - "$REDOX_MAKE" DESTDIR="$dest" install - skip=1 -} diff --git a/recipes/automake/recipe.toml b/recipes/automake/recipe.toml new file mode 100644 index 000000000..c733beb95 --- /dev/null +++ b/recipes/automake/recipe.toml @@ -0,0 +1,6 @@ +[source] +tar = "https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz" +blake3 = "f42cfc333aaaa11f2bcb05b5b0273b8706c820c22f9ba4367f7eb920551695cd" + +[build] +template = "configure" diff --git a/recipes/cosmic-text/recipe.sh b/recipes/cosmic-text/recipe.sh deleted file mode 100644 index 8d7d37ea5..000000000 --- a/recipes/cosmic-text/recipe.sh +++ /dev/null @@ -1,17 +0,0 @@ -GIT=https://github.com/pop-os/cosmic-text.git -BRANCH=main - -function recipe_build { - sysroot="$(realpath ../sysroot)" - set -x - cargo build --target "$TARGET" --release --package editor-orbclient --features vi - set +x - skip=1 -} - -function recipe_stage { - dest="$(realpath $1)" - mkdir -pv "$dest/bin" - cp -v "target/${TARGET}/release/editor-orbclient" "$dest/bin/cosmic-text" - skip=1 -} diff --git a/recipes/cosmic-text/recipe.toml b/recipes/cosmic-text/recipe.toml new file mode 100644 index 000000000..32f0525b9 --- /dev/null +++ b/recipes/cosmic-text/recipe.toml @@ -0,0 +1,9 @@ +[source] +git = "https://github.com/pop-os/cosmic-text.git" +branch = "main" + +[build] +template = "custom" +script = """ +cookbook_cargo_packages editor-orbclient +""" diff --git a/recipes/cpal/recipe.sh b/recipes/cpal/recipe.sh deleted file mode 100644 index 2ffe7617c..000000000 --- a/recipes/cpal/recipe.sh +++ /dev/null @@ -1,11 +0,0 @@ -GIT=https://gitlab.redox-os.org/redox-os/cpal.git -GIT_UPSTREAM=https://github.com/tomaka/cpal.git -BRANCH=redox -CARGOFLAGS="--example beep" - -function recipe_stage { - dest="$(realpath $1)" - mkdir -pv "$dest/bin" - cp -v "target/${TARGET}/release/examples/beep" "$dest/bin/cpal" - skip=1 -} diff --git a/recipes/cpal/recipe.toml b/recipes/cpal/recipe.toml new file mode 100644 index 000000000..4ff3861b2 --- /dev/null +++ b/recipes/cpal/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/cpal.git" +branch = "redox" +upstream = "https://github.com/tomaka/cpal.git" + +[build] +template = "custom" +script = """ +cookbook_cargo_examples beep +""" diff --git a/recipes/orbclient/recipe.sh b/recipes/orbclient/recipe.sh deleted file mode 100644 index cdd0c9787..000000000 --- a/recipes/orbclient/recipe.sh +++ /dev/null @@ -1,10 +0,0 @@ - -GIT=https://gitlab.redox-os.org/redox-os/orbclient.git -CARGOFLAGS="--example simple" - -function recipe_stage { - dest="$(realpath $1)" - mkdir -pv "$dest/bin" - cp -v "target/${TARGET}/release/examples/simple" "$dest/bin/orbclient" - skip=1 -} diff --git a/recipes/orbclient/recipe.toml b/recipes/orbclient/recipe.toml new file mode 100644 index 000000000..27f07e47b --- /dev/null +++ b/recipes/orbclient/recipe.toml @@ -0,0 +1,8 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/orbclient.git" + +[build] +template = "custom" +script = """ +cookbook_cargo_examples simple +""" diff --git a/recipes/orbterm/recipe.toml b/recipes/orbterm/recipe.toml index e6e23e155..869254582 100644 --- a/recipes/orbterm/recipe.toml +++ b/recipes/orbterm/recipe.toml @@ -8,6 +8,7 @@ COOKBOOK_CARGO_FLAGS=( --path "${COOKBOOK_SOURCE}" --root "${COOKBOOK_STAGE}/ui" --locked + --no-track ) cookbook_cargo """ diff --git a/recipes/winit/recipe.sh b/recipes/winit/recipe.sh deleted file mode 100644 index 4ac8f27c6..000000000 --- a/recipes/winit/recipe.sh +++ /dev/null @@ -1,11 +0,0 @@ -GIT=https://gitlab.redox-os.org/redox-os/winit.git -GIT_UPSTREAM=https://github.com/rust-windowing/winit.git -BRANCH=redox-0.27 -CARGOFLAGS="--example window" - -function recipe_stage { - dest="$(realpath $1)" - mkdir -pv "$dest/bin" - cp -v "target/${TARGET}/release/examples/window" "$dest/bin/winit" - skip=1 -} diff --git a/recipes/winit/recipe.toml b/recipes/winit/recipe.toml new file mode 100644 index 000000000..818e6e835 --- /dev/null +++ b/recipes/winit/recipe.toml @@ -0,0 +1,10 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/winit.git" +branch = "redox-0.27" +upstream = "https://github.com/rust-windowing/winit.git" + +[build] +template = "custom" +script = """ +cookbook_cargo_examples window +""" diff --git a/src/bin/cook.rs b/src/bin/cook.rs index 5d36682da..b055920b6 100644 --- a/src/bin/cook.rs +++ b/src/bin/cook.rs @@ -471,6 +471,38 @@ function cookbook_cargo { "${COOKBOOK_CARGO}" install "${COOKBOOK_CARGO_FLAGS[@]}" } +# helper for installing binaries that are cargo examples +function cookbook_cargo_examples { + recipe="$(basename "${COOKBOOK_RECIPE}")" + for example in "$@" + do + "${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --example "${example}" \ + --release + mkdir -pv "${COOKBOOK_STAGE}/bin" + cp -v \ + "target/${TARGET}/release/examples/${example}" \ + "${COOKBOOK_STAGE}/bin/${recipe}_${example}" + done +} + +# helper for installing binaries that are cargo packages +function cookbook_cargo_packages { + recipe="$(basename "${COOKBOOK_RECIPE}")" + for package in "$@" + do + "${COOKBOOK_CARGO}" build \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --package "${package}" \ + --release + mkdir -pv "${COOKBOOK_STAGE}/bin" + cp -v \ + "target/${TARGET}/release/${package}" \ + "${COOKBOOK_STAGE}/bin/${recipe}_${package}" + done +} + # configure template COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/configure" COOKBOOK_CONFIGURE_FLAGS=( -- GitLab