git: 4a1614a51de9 - main - devel/pkgconf: fix regression introduced by last minute patch
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 02 Sep 2023 17:52:06 UTC
The branch main has been updated by bapt:
URL: https://cgit.FreeBSD.org/ports/commit/?id=4a1614a51de9e7b4dcd58d102abefde1187c80a8
commit 4a1614a51de9e7b4dcd58d102abefde1187c80a8
Author: Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2023-09-02 17:49:35 +0000
Commit: Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2023-09-02 17:51:53 +0000
devel/pkgconf: fix regression introduced by last minute patch
the last minute patch was intended to fix a bug in pkgconf which broke
the expected behaviour of cabal (haskell)
$ pkgconf --modversion atf-c atf-c++
0.21
0.21
0.21
due to bad pattern matching, the fix was a bit too harsh and broke the
version comparison
$ pkgconf --modversion "gtk+-2.0 >= 2.0.0"
Reported by: cmt
---
devel/pkgconf/Makefile | 1 +
devel/pkgconf/files/patch-modversion-comparison | 12 +++++++++---
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/devel/pkgconf/Makefile b/devel/pkgconf/Makefile
index e0b94fef0171..08e260c626e1 100644
--- a/devel/pkgconf/Makefile
+++ b/devel/pkgconf/Makefile
@@ -1,5 +1,6 @@
PORTNAME= pkgconf
PORTVERSION= 2.0.2
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= https://distfiles.ariadne.space/${PORTNAME}/
diff --git a/devel/pkgconf/files/patch-modversion-comparison b/devel/pkgconf/files/patch-modversion-comparison
index a8d4c26e6c0a..dcab7c93146b 100644
--- a/devel/pkgconf/files/patch-modversion-comparison
+++ b/devel/pkgconf/files/patch-modversion-comparison
@@ -1,13 +1,19 @@
diff --git cli/main.c cli/main.c
-index 25ff5ca..d75bbb7 100644
+index 25ff5ca..055b05a 100644
--- cli/main.c
+++ cli/main.c
-@@ -306,7 +306,7 @@ apply_modversion(pkgconf_client_t *client, pkgconf_pkg_t *world, void *data, int
+@@ -305,10 +305,13 @@ apply_modversion(pkgconf_client_t *client, pkgconf_pkg_t *world, void *data, int
+ {
pkgconf_dependency_t *dep = world_iter->data;
pkgconf_pkg_t *pkg = dep->match;
++ size_t len = strlen(pkg->id);
- if (strncmp(pkg->id, queue_node->package, strlen(pkg->id)))
-+ if (strcmp(pkg->id, queue_node->package))
++ if (strncmp(pkg->id, queue_node->package, len))
continue;
++ if (!isspace(queue_node->package[len]) && queue_node->package[len] != '\0')
++ continue;
if (pkg->version != NULL) {
+ if (verbosity)
+ printf("%s: ", pkg->id);