From 45b03a18aad7c10da930af5fc3643d13547673bb Mon Sep 17 00:00:00 2001 From: Wildan M Date: Tue, 14 Jul 2026 20:50:10 +0700 Subject: [PATCH] Fix fetch-changed prefix, use rustinstall.sh for img --- .gitlab-ci.yml | 22 +++++++++++++--------- flake.nix | 2 +- mk/depends.mk | 8 ++------ recipes/dev/python312/recipe.toml | 5 +++-- src/cook/fetch.rs | 8 ++++---- 5 files changed, 23 insertions(+), 22 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d1552d489..d976da5ab 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,21 +29,25 @@ fetch-changed: image: "redoxos/redox-base-x86_64" stage: test script: + - echo 'progress = bar:force:noscroll' > /etc/wgetrc + - curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal + - export PATH="$HOME/.cargo/bin:$PATH" PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 + - make prefix/x86_64-unknown-redox/gcc-install + - ln -s gcc-install prefix/x86_64-unknown-redox/sysroot - | - export PATH="$HOME/.cargo/bin:$PATH" && - (curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal ) && - cargo install cbindgen && - env PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 ./scripts/fetch-changed.sh + (cd prefix/x86_64-unknown-redox/sysroot && + sed "s|/usr/share|$(pwd)/share|g" "bin/libtoolize.orig" > "bin/libtoolize") + - ./scripts/fetch-changed.sh img: image: "redoxos/redox-base-x86_64" stage: test script: - - | - export PATH="$HOME/.cargo/bin:$PATH" && - (curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal ) && - cargo install cbindgen && - PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 REPO_BINARY=1 FSTOOLS_NO_MOUNT=1 COOKBOOK_VERBOSE=false make ci-img IMG_TAG=$CI_COMMIT_REF_NAME + - echo 'progress = bar:force:noscroll' > /etc/wgetrc + - export PATH="$HOME/.cargo/bin:$PATH" + - export PODMAN_BUILD=0 SKIP_CHECK_TOOLS=1 REPO_BINARY=1 FSTOOLS_NO_MOUNT=1 COOKBOOK_VERBOSE=false + - ./podman/rustinstall.sh + - make ci-img IMG_TAG=$CI_COMMIT_REF_NAME pkg: image: "rust:trixie" diff --git a/flake.nix b/flake.nix index 8bc01f879..5a30f5874 100644 --- a/flake.nix +++ b/flake.nix @@ -116,7 +116,7 @@ ]; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs; - NIX_SHELL_BUILD = "1"; + SKIP_CHECK_TOOLS = "1"; FSTOOLS_IN_PODMAN = "1"; shellHook = '' # Install required configuration diff --git a/mk/depends.mk b/mk/depends.mk index 4d698c84c..e3643316f 100644 --- a/mk/depends.mk +++ b/mk/depends.mk @@ -5,15 +5,11 @@ ifneq ($(PODMAN_BUILD),1) # Don't check for dependencies if you will be using Hosted Redox ifneq ($(HOSTED_REDOX),1) -# don't check for Rust and Cargo if building on a Nix system -ifneq ($(NIX_SHELL_BUILD),1) +# don't check for compile tools, used when tools are managed externally, like in nix or CI +ifneq ($(SKIP_CHECK_TOOLS),1) ifeq ($(shell which rustup),) $(error rustup not found, install from "https://rustup.rs/") endif -endif - -# don't check for compile tools, used internally when installing fstools on host -ifneq ($(SKIP_CHECK_TOOLS),1) ifeq ($(shell which cbindgen),) $(error cbindgen not found, install from crates.io or from your package manager) endif diff --git a/recipes/dev/python312/recipe.toml b/recipes/dev/python312/recipe.toml index bf54aa66c..300a7554e 100644 --- a/recipes/dev/python312/recipe.toml +++ b/recipes/dev/python312/recipe.toml @@ -58,8 +58,9 @@ cookbook_configure # monkey patching to make paths working in target system if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then PYTHON_INIT - sed -i "s/sccache //g" "$COOKBOOK_STAGE/usr/lib/$COOKBOOK_PYTHON_V/$_PYTHON_SYSCONFIGDATA_NAME.py" - sed -i "s|${COOKBOOK_SYSROOT}|/usr|g" "$COOKBOOK_STAGE/usr/lib/$COOKBOOK_PYTHON_V/$_PYTHON_SYSCONFIGDATA_NAME.py" + CONF="$COOKBOOK_STAGE/usr/lib/$COOKBOOK_PYTHON_V/$_PYTHON_SYSCONFIGDATA_NAME.py" + sed -i "s/sccache //g" "$CONF" + sed -i "s|${COOKBOOK_SYSROOT}|/usr|g" $CONF" fi """ diff --git a/src/cook/fetch.rs b/src/cook/fetch.rs index 7e0cb0824..e2c426c6b 100644 --- a/src/cook/fetch.rs +++ b/src/cook/fetch.rs @@ -657,7 +657,7 @@ pub(crate) fn fetch_cargo( cargopath: Option<&String>, logger: &PtyOut, ) -> Result<()> { - if !check_toolchain_available() { + if !check_cargo_available() { return Ok(()); } @@ -682,12 +682,12 @@ pub(crate) fn fetch_cargo( Ok(()) } -/// Check if "REDOXER_TOOLCHAIN" is available. -fn check_toolchain_available() -> bool { +/// Check if "$REDOXER_TOOLCHAIN/bin/cargo" is available. +fn check_cargo_available() -> bool { let Ok(dir) = std::env::var("REDOXER_TOOLCHAIN") else { return false; }; - PathBuf::from(dir).is_dir() + PathBuf::from(dir).join("bin/cargo").is_file() } pub fn fetch_remote(