diff options
| author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-10-24 16:28:28 -0400 | 
|---|---|---|
| committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-10-24 16:28:28 -0400 | 
| commit | e1cfdd3202fbf0a7cb11b8c72ee7ba2cb934d76f (patch) | |
| tree | 4091bf12e12c9923040dfb22601735688d988158 | |
| parent | 0e2bc0da2b934b14226eb6fd1b112e15d9bd7a5b (diff) | |
| download | stasis-e1cfdd3202fbf0a7cb11b8c72ee7ba2cb934d76f.tar.gz | |
Strip the version spec off of the package name if presentcombine-provides
| -rw-r--r-- | src/lib/core/delivery_install.c | 18 | 
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; | 
