diff options
author | Joseph Hunkeler <jhunkeler@users.noreply.github.com> | 2025-03-20 12:11:35 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-20 12:11:35 -0400 |
commit | 629f18d3cdea6340f4a76d9e997ef80b6e17ada4 (patch) | |
tree | 25c60be20c78b5d339e4421458799a021bdcb0c2 /src/lib/delivery | |
parent | 2ffd817603ecc713988fe2796c9562a857a92ef4 (diff) | |
parent | 5126b191b6d1a53d3a402478472fd1d357ace293 (diff) | |
download | stasis-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')
-rw-r--r-- | src/lib/delivery/delivery.c | 2 | ||||
-rw-r--r-- | src/lib/delivery/delivery_build.c | 1 | ||||
-rw-r--r-- | src/lib/delivery/delivery_install.c | 16 | ||||
-rw-r--r-- | src/lib/delivery/delivery_postprocess.c | 2 |
4 files changed, 18 insertions, 3 deletions
diff --git a/src/lib/delivery/delivery.c b/src/lib/delivery/delivery.c index 41be64c..7ae2b01 100644 --- a/src/lib/delivery/delivery.c +++ b/src/lib/delivery/delivery.c @@ -2,7 +2,7 @@ void delivery_free(struct Delivery *ctx) { guard_free(ctx->system.arch); - GENERIC_ARRAY_FREE(ctx->system.platform); + guard_array_free(ctx->system.platform); guard_free(ctx->meta.name); guard_free(ctx->meta.version); guard_free(ctx->meta.codename); diff --git a/src/lib/delivery/delivery_build.c b/src/lib/delivery/delivery_build.c index 03f2d4c..2d891d2 100644 --- a/src/lib/delivery/delivery_build.c +++ b/src/lib/delivery/delivery_build.c @@ -141,6 +141,7 @@ struct StrList *delivery_build_wheels(struct Delivery *ctx) { char name[100] = {0}; char *fullspec = strlist_item(ctx->conda.pip_packages_defer, p); strncpy(name, fullspec, sizeof(name) - 1); + remove_extras(name); char *spec = find_version_spec(name); if (spec) { *spec = '\0'; 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; diff --git a/src/lib/delivery/delivery_postprocess.c b/src/lib/delivery/delivery_postprocess.c index b43e247..5029e02 100644 --- a/src/lib/delivery/delivery_postprocess.c +++ b/src/lib/delivery/delivery_postprocess.c @@ -120,7 +120,7 @@ void delivery_rewrite_spec(struct Delivery *ctx, char *filename, unsigned stage) } fprintf(tp, "%s", contents[i]); } - GENERIC_ARRAY_FREE(contents); + guard_array_free(contents); guard_free(header); fflush(tp); fclose(tp); |