From 638de79b9a45a2ab5a141f546c6cbb23e548dcbf Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Mon, 23 Jun 2025 16:59:57 +0200 Subject: [PATCH 1/2] RFC: Default to cargo-auditable --- recipe/activate.bat | 1 + recipe/activate.sh | 1 + recipe/{bld.bat => build-activation.bat} | 0 recipe/{build.sh => build-activation.sh} | 4 +++- recipe/cargo-auditable-wrapper.sh | 2 ++ recipe/meta.yaml | 12 +++++++----- 6 files changed, 14 insertions(+), 6 deletions(-) rename recipe/{bld.bat => build-activation.bat} (100%) rename recipe/{build.sh => build-activation.sh} (86%) create mode 100755 recipe/cargo-auditable-wrapper.sh diff --git a/recipe/activate.bat b/recipe/activate.bat index ebe1bdd..9271686 100644 --- a/recipe/activate.bat +++ b/recipe/activate.bat @@ -2,6 +2,7 @@ set CARGO_HOME=%CONDA_PREFIX%\.cargo set CARGO_CONFIG=%CARGO_HOME%\config set RUSTUP_HOME=%CARGO_HOME%\rustup set PATH=%CARGO_HOME%\bin:%PATH% +set "CARGO=cargo auditable" if not exist "%CARGO_HOME%" mkdir "%CARGO_HOME%" diff --git a/recipe/activate.sh b/recipe/activate.sh index e597e47..471c517 100755 --- a/recipe/activate.sh +++ b/recipe/activate.sh @@ -2,6 +2,7 @@ export CARGO_HOME=${CONDA_PREFIX}/.cargo export CARGO_CONFIG=${CARGO_HOME}/config +export CARGO="cargo-auditable-wrapper" export RUSTUP_HOME=${CARGO_HOME}/rustup [[ -d ${CARGO_HOME} ]] || mkdir -p ${CARGO_HOME} diff --git a/recipe/bld.bat b/recipe/build-activation.bat similarity index 100% rename from recipe/bld.bat rename to recipe/build-activation.bat diff --git a/recipe/build.sh b/recipe/build-activation.sh similarity index 86% rename from recipe/build.sh rename to recipe/build-activation.sh index 74090ba..f736ee4 100755 --- a/recipe/build.sh +++ b/recipe/build-activation.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -x +set -exuo pipefail mkdir -p ${PREFIX}/etc/conda/{de,}activate.d cp "${RECIPE_DIR}"/activate.sh activate.sh @@ -13,3 +13,5 @@ sed -i.bak "s/@cross_target_platform@/$cross_target_platform/g" activate.sh sed -i.bak "s/@CONDA_RUST_HOST_LOWER@/$(echo $rust_arch_env_build | tr '[:upper:]' '[:lower:]')/g" activate.sh sed -i.bak "s/@CONDA_RUST_TARGET_LOWER@/$(echo $rust_arch_env | tr '[:upper:]' '[:lower:]')/g" activate.sh cp activate.sh ${PREFIX}/etc/conda/activate.d/activate_${PKG_NAME}.sh +mkdir -p ${PREFIX}/bin +cp ${RECIPE_DIR}/cargo-auditable-wrapper.sh $PREFIX/bin/cargo-auditable-wrapper diff --git a/recipe/cargo-auditable-wrapper.sh b/recipe/cargo-auditable-wrapper.sh new file mode 100755 index 0000000..c393fb7 --- /dev/null +++ b/recipe/cargo-auditable-wrapper.sh @@ -0,0 +1,2 @@ +#!/bin/sh +exec cargo auditable $* diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 6f0270a..ddd5a8e 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -11,12 +11,12 @@ package: version: {{ version }} build: - number: 1 + number: 2 outputs: - name: rust_{{ cross_target_platform }} - script: build.sh # [unix] - script: bld.bat # [win] + script: build-activation.sh # [unix] + script: build-activation.bat # [win] build: skip: True # [win and vc<14] run_exports: @@ -48,6 +48,7 @@ outputs: - vs_{{ cross_target_platform }} >=2019 # [win] {% endif %} - ld64_{{ target_platform }} # [osx] + - cargo-auditable test: requires: - file # [unix] @@ -60,7 +61,8 @@ outputs: - rustc --help - rustdoc --help - cargo --help - - cargo install --force xsv + - ls $PREFIX/bin/cargo* + - $CARGO install --force xsv - file $PREFIX/.cargo/bin/xsv # [unix and cross_target_platform != "win-64" and cross_target_platform != "win-arm64"] - file $PREFIX/.cargo/bin/xsv | grep "Mach-O 64-bit arm64 executable" # [unix and cross_target_platform == "osx-arm64"] - file $PREFIX/.cargo/bin/xsv | grep "Mach-O 64-bit x86_64 executable" # [unix and cross_target_platform == "osx-64"] @@ -71,7 +73,7 @@ outputs: - file $PREFIX/.cargo/bin/xsv.exe | grep "PE32+ executable for MS Windows" | grep x86-64 # [unix and cross_target_platform == "win-64"] - name: rust-gnu_{{ target_platform }} - script: bld.bat + script: build-activation.bat build: skip: True # [not win] skip: True From f9673f3c492c496cb8956d70ccaaf5f066ef68cc Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Mon, 23 Jun 2025 20:32:20 +0200 Subject: [PATCH 2/2] Add windows support --- recipe/activate.bat | 2 +- recipe/build-activation.bat | 11 +++++++++++ recipe/cargo-auditable-wrapper.bat | 1 + recipe/meta.yaml | 4 ++-- 4 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 recipe/cargo-auditable-wrapper.bat diff --git a/recipe/activate.bat b/recipe/activate.bat index 9271686..7e21a1a 100644 --- a/recipe/activate.bat +++ b/recipe/activate.bat @@ -2,7 +2,7 @@ set CARGO_HOME=%CONDA_PREFIX%\.cargo set CARGO_CONFIG=%CARGO_HOME%\config set RUSTUP_HOME=%CARGO_HOME%\rustup set PATH=%CARGO_HOME%\bin:%PATH% -set "CARGO=cargo auditable" +set "CARGO=cargo-auditable-wrapper.bat" if not exist "%CARGO_HOME%" mkdir "%CARGO_HOME%" diff --git a/recipe/build-activation.bat b/recipe/build-activation.bat index d448dd5..e70400d 100644 --- a/recipe/build-activation.bat +++ b/recipe/build-activation.bat @@ -1,2 +1,13 @@ +@echo on + mkdir %PREFIX%\etc\conda\activate.d +if %ERRORLEVEL% neq 0 exit 1 + copy %RECIPE_DIR%\activate.bat %PREFIX%\etc\conda\activate.d\activate-%PKG_NAME%.bat +if %ERRORLEVEL% neq 0 exit 1 + +md %LIBRARY_PREFIX%\bin +if %ERRORLEVEL% neq 0 exit 1 + +copy %RECIPE_DIR%\cargo-auditable-wrapper.bat %LIBRARY_PREFIX%\bin\cargo-auditable-wrapper.bat +if %ERRORLEVEL% neq 0 exit 1 diff --git a/recipe/cargo-auditable-wrapper.bat b/recipe/cargo-auditable-wrapper.bat new file mode 100644 index 0000000..448a624 --- /dev/null +++ b/recipe/cargo-auditable-wrapper.bat @@ -0,0 +1 @@ +cargo auditable %* diff --git a/recipe/meta.yaml b/recipe/meta.yaml index ddd5a8e..55fd649 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -61,8 +61,8 @@ outputs: - rustc --help - rustdoc --help - cargo --help - - ls $PREFIX/bin/cargo* - - $CARGO install --force xsv + - "%CARGO% install --force xsv" # [win] + - $CARGO install --force xsv # [unix] - file $PREFIX/.cargo/bin/xsv # [unix and cross_target_platform != "win-64" and cross_target_platform != "win-arm64"] - file $PREFIX/.cargo/bin/xsv | grep "Mach-O 64-bit arm64 executable" # [unix and cross_target_platform == "osx-arm64"] - file $PREFIX/.cargo/bin/xsv | grep "Mach-O 64-bit x86_64 executable" # [unix and cross_target_platform == "osx-64"]