]> TLD Linux GIT Repositories - packages/poldek.git/blobdiff - rpm4-rpmvercmp.patch
- merged fixes from PLD
[packages/poldek.git] / rpm4-rpmvercmp.patch
diff --git a/rpm4-rpmvercmp.patch b/rpm4-rpmvercmp.patch
new file mode 100644 (file)
index 0000000..a2cbf18
--- /dev/null
@@ -0,0 +1,73 @@
+From 70940292e321f1b7f4af217425810ed4110f6333 Mon Sep 17 00:00:00 2001
+From: Jan Palus <atler@pld-linux.org>
+Date: Sat, 31 Oct 2020 00:32:04 +0100
+Subject: [PATCH] implement rpmvercmp for rpm.org
+
+---
+ pm/rpmorg/rpmvercmp.c | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/pm/rpmorg/rpmvercmp.c b/pm/rpmorg/rpmvercmp.c
+index 7e40e15..36bf9e5 100644
+--- a/pm/rpmorg/rpmvercmp.c
++++ b/pm/rpmorg/rpmvercmp.c
+@@ -49,18 +49,15 @@ static void parse(const char *evrstr, EVR_t evr)
+ #endif
+ #endif
+-#ifdef HAVE_RPMORG
+-int main(void)
+-{
+-    printf("not implemented");
+-    exit(EXIT_SUCCESS);
+-}
+-#else
+ int main(int argc, char *argv[])
+ {
+     int cmprc;
+     const char *v1, *v2;
++#ifdef HAVE_RPMORG
++    rpmver evr1, evr2;
++#else
+     EVR_t evr1, evr2;
++#endif
+     if (argc < 3) {
+         printf("Usage: rpmvercmp VERSION1 VERSION2\n");
+@@ -81,6 +78,12 @@ int main(int argc, char *argv[])
+       exit(2);
+     }
++#ifdef HAVE_RPMORG
++    evr1 = rpmverParse(v1);
++    evr2 = rpmverParse(v2);
++
++    cmprc = rpmverCmp(evr1, evr2);
++#else
+     evr1 = malloc(sizeof(struct EVR_s));
+     evr2 = malloc(sizeof(struct EVR_s));
+@@ -93,17 +96,22 @@ int main(int argc, char *argv[])
+ #endif
+     cmprc = rpmEVRcompare(evr1, evr2);
++#endif
+     printf("%s %s %s\n", v1, cmprc == 0 ?  "==" : cmprc > 0 ? ">" : "<", v2);
+     if (cmprc < 0)
+         cmprc = 2;
++#ifdef HAVE_RPMORG
++    rpmverFree(evr1);
++    rpmverFree(evr2);
++#else
+     free((char *)evr1->str);
+     free((char *)evr2->str);
+     free(evr1);
+     free(evr2);
++#endif
+     exit(cmprc);
+ }
+-#endif