From aae524ce14a00cba3d219e36eee7063dfa0eb84a Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Sep 27 2023 10:28:44 +0000 Subject: move creation of target/release compat symlink to %cargo_prep Not all projects that use %cargo_prep use %cargo_build (like Python extensions built with setuptools_rust or maturin). To ensure the symlink for the different profile name is always present, move its creation into the same macro that also sets up the profile. --- diff --git a/macros.d/macros.cargo b/macros.d/macros.cargo index ea9a720..fd482b0 100644 --- a/macros.d/macros.cargo +++ b/macros.d/macros.cargo @@ -59,6 +59,8 @@ %{-v:%{-N:%{error:-v and -N are mutually exclusive!}}}\ (\ set -euo pipefail\ +%{__mkdir} -p target/rpm\ +%{__ln} -s rpm target/release\ %{__rm} -rf .cargo/\ %{__mkdir} -p .cargo\ cat > .cargo/config << EOF\ @@ -135,8 +137,7 @@ EOF}}\ --profile rpm \ %{__cargo_parse_opts %{-n} %{-a} %{-f:-f%{-f*}}} \ %* \ -}\ -%{__ln} -s rpm target/release +} # cargo_test: runs the test suite with cargo with the specified feature flags # diff --git a/tests/test_macros_cargo.py b/tests/test_macros_cargo.py index 92792e9..ed46305 100644 --- a/tests/test_macros_cargo.py +++ b/tests/test_macros_cargo.py @@ -58,6 +58,8 @@ def test_cargo_prep(evaluater): assert evaluater("%cargo_prep")[0].splitlines() == [ "(", "set -euo pipefail", + "/usr/bin/mkdir -p target/rpm", + "/usr/bin/ln -s rpm target/release", "/usr/bin/rm -rf .cargo/", "/usr/bin/mkdir -p .cargo", "cat > .cargo/config << EOF", @@ -114,6 +116,8 @@ def test_cargo_prep_vendor(evaluater): assert evaluater("%cargo_prep -v vendor")[0].splitlines() == [ "(", "set -euo pipefail", + "/usr/bin/mkdir -p target/rpm", + "/usr/bin/ln -s rpm target/release", "/usr/bin/rm -rf .cargo/", "/usr/bin/mkdir -p .cargo", "cat > .cargo/config << EOF", @@ -168,6 +172,8 @@ def test_cargo_prep_no_replacement(evaluater): assert evaluater("%cargo_prep -N")[0].splitlines() == [ "(", "set -euo pipefail", + "/usr/bin/mkdir -p target/rpm", + "/usr/bin/ln -s rpm target/release", "/usr/bin/rm -rf .cargo/", "/usr/bin/mkdir -p .cargo", "cat > .cargo/config << EOF", @@ -246,12 +252,8 @@ def test_cargo_generate_buildrequires(evaluater, flags: str, expected: str): def test_cargo_build(evaluater): cargo = evaluater("%__cargo")[0] cargo_common_opts = evaluater("%__cargo_common_opts")[0] - ln = evaluater("%__ln")[0] - assert [line.rstrip() for line in evaluater("%cargo_build")[0].splitlines()] == [ - f"{cargo} build {cargo_common_opts} --profile rpm", - f"{ln} -s rpm target/release", - ] + assert evaluater("%cargo_build")[0] == f"{cargo} build {cargo_common_opts} --profile rpm" def test_cargo_test(evaluater):