aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-10-24 16:28:28 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-10-24 16:28:28 -0400
commite1cfdd3202fbf0a7cb11b8c72ee7ba2cb934d76f (patch)
tree4091bf12e12c9923040dfb22601735688d988158
parent0e2bc0da2b934b14226eb6fd1b112e15d9bd7a5b (diff)
downloadstasis-combine-provides.tar.gz
Strip the version spec off of the package name if presentcombine-provides
-rw-r--r--src/lib/core/delivery_install.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/core/delivery_install.c b/src/lib/core/delivery_install.c
index 76c3f4a..098e6f4 100644
--- a/src/lib/core/delivery_install.c
+++ b/src/lib/core/delivery_install.c
@@ -3,9 +3,21 @@
static struct Test *requirement_from_test(struct Delivery *ctx, const char *name) {
struct Test *result = NULL;
for (size_t i = 0; i < sizeof(ctx->tests) / sizeof(ctx->tests[0]); i++) {
- if (ctx->tests[i].name && !strcmp(name, ctx->tests[i].name)) {
- result = &ctx->tests[i];
- break;
+ char *package_name = strdup(name);
+ if (package_name) {
+ char *spec = find_version_spec(package_name);
+ if (spec) {
+ *spec = '\0';
+ }
+
+ if (ctx->tests[i].name && !strcmp(package_name, ctx->tests[i].name)) {
+ result = &ctx->tests[i];
+ break;
+ }
+ guard_free(package_name);
+ } else {
+ SYSERROR("unable to allocate memory for package name: %s", name);
+ return NULL;
}
}
return result;