X-Git-Url: https://git.tld-linux.org/?p=packages%2Fpoldek.git;a=blobdiff_plain;f=rpm4-rpmvercmp.patch;fp=rpm4-rpmvercmp.patch;h=a2cbf18156c7070d3a5eb5b9e46ec53eb1519815;hp=0000000000000000000000000000000000000000;hb=b39c401088d0afae01ca65c90e8c59a77dbbcb57;hpb=ae8686af22109bd2ed8a8f3587e79209c7dbec0e diff --git a/rpm4-rpmvercmp.patch b/rpm4-rpmvercmp.patch new file mode 100644 index 0000000..a2cbf18 --- /dev/null +++ b/rpm4-rpmvercmp.patch @@ -0,0 +1,73 @@ +From 70940292e321f1b7f4af217425810ed4110f6333 Mon Sep 17 00:00:00 2001 +From: Jan Palus +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