aboutsummaryrefslogtreecommitdiff
path: root/src/lib/delivery/delivery_install.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@users.noreply.github.com>2025-03-20 12:11:35 -0400
committerGitHub <noreply@github.com>2025-03-20 12:11:35 -0400
commit629f18d3cdea6340f4a76d9e997ef80b6e17ada4 (patch)
tree25c60be20c78b5d339e4421458799a021bdcb0c2 /src/lib/delivery/delivery_install.c
parent2ffd817603ecc713988fe2796c9562a857a92ef4 (diff)
parent5126b191b6d1a53d3a402478472fd1d357ace293 (diff)
downloadstasis-629f18d3cdea6340f4a76d9e997ef80b6e17ada4.tar.gz
Merge pull request #100 from jhunkeler/without-extras-in-spec
delivery_overlay_packages_from_env: remove extras from spec
Diffstat (limited to 'src/lib/delivery/delivery_install.c')
-rw-r--r--src/lib/delivery/delivery_install.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/lib/delivery/delivery_install.c b/src/lib/delivery/delivery_install.c
index bb9bb48..cf6ccaa 100644
--- a/src/lib/delivery/delivery_install.c
+++ b/src/lib/delivery/delivery_install.c
@@ -9,6 +9,7 @@ static struct Test *requirement_from_test(struct Delivery *ctx, const char *name
if (spec) {
*spec = '\0';
}
+ remove_extras(package_name);
if (ctx->tests[i].name && !strcmp(package_name, ctx->tests[i].name)) {
result = &ctx->tests[i];
@@ -80,6 +81,7 @@ int delivery_overlay_packages_from_env(struct Delivery *ctx, const char *env_nam
} else {
strncpy(spec_name, spec, sizeof(spec_name) - 1);
}
+
struct Test *test_block = requirement_from_test(ctx, spec_name);
if (!test_block) {
msg(STASIS_MSG_L2 | STASIS_MSG_WARN, "from config without test: %s\n", spec);
@@ -272,9 +274,21 @@ int delivery_install_packages(struct Delivery *ctx, char *conda_install_dir, cha
}
wheel_free(&whl);
}
+
+ char req[255] = {0};
+ if (!strcmp(name, info->name)) {
+ strcpy(req, info->name);
+ } else {
+ strcpy(req, name);
+ char *spec = find_version_spec(req);
+ if (spec) {
+ *spec = 0;
+ }
+ }
+
snprintf(cmd + strlen(cmd),
sizeof(cmd) - strlen(cmd) - strlen(info->name) - strlen(info->version) + 5,
- " '%s==%s'", info->name, info->version);
+ " '%s==%s'", req, info->version);
} else {
fprintf(stderr, "Deferred package '%s' is not present in the tested package list!\n", name);
return -1;