]> TLD Linux GIT Repositories - packages/poldek.git/blob - rpm4-rpmvercmp.patch
- https-redirect.patch from PLD
[packages/poldek.git] / rpm4-rpmvercmp.patch
1 From 70940292e321f1b7f4af217425810ed4110f6333 Mon Sep 17 00:00:00 2001
2 From: Jan Palus <atler@pld-linux.org>
3 Date: Sat, 31 Oct 2020 00:32:04 +0100
4 Subject: [PATCH] implement rpmvercmp for rpm.org
5
6 ---
7  pm/rpmorg/rpmvercmp.c | 24 ++++++++++++++++--------
8  1 file changed, 16 insertions(+), 8 deletions(-)
9
10 diff --git a/pm/rpmorg/rpmvercmp.c b/pm/rpmorg/rpmvercmp.c
11 index 7e40e15..36bf9e5 100644
12 --- a/pm/rpmorg/rpmvercmp.c
13 +++ b/pm/rpmorg/rpmvercmp.c
14 @@ -49,18 +49,15 @@ static void parse(const char *evrstr, EVR_t evr)
15  #endif
16  #endif
17  
18 -#ifdef HAVE_RPMORG
19 -int main(void)
20 -{
21 -    printf("not implemented");
22 -    exit(EXIT_SUCCESS);
23 -}
24 -#else
25  int main(int argc, char *argv[])
26  {
27      int cmprc;
28      const char *v1, *v2;
29 +#ifdef HAVE_RPMORG
30 +    rpmver evr1, evr2;
31 +#else
32      EVR_t evr1, evr2;
33 +#endif
34  
35      if (argc < 3) {
36          printf("Usage: rpmvercmp VERSION1 VERSION2\n");
37 @@ -81,6 +78,12 @@ int main(int argc, char *argv[])
38         exit(2);
39      }
40  
41 +#ifdef HAVE_RPMORG
42 +    evr1 = rpmverParse(v1);
43 +    evr2 = rpmverParse(v2);
44 +
45 +    cmprc = rpmverCmp(evr1, evr2);
46 +#else
47      evr1 = malloc(sizeof(struct EVR_s));
48      evr2 = malloc(sizeof(struct EVR_s));
49  
50 @@ -93,17 +96,22 @@ int main(int argc, char *argv[])
51  #endif
52  
53      cmprc = rpmEVRcompare(evr1, evr2);
54 +#endif
55  
56      printf("%s %s %s\n", v1, cmprc == 0 ?  "==" : cmprc > 0 ? ">" : "<", v2);
57  
58      if (cmprc < 0)
59          cmprc = 2;
60  
61 +#ifdef HAVE_RPMORG
62 +    rpmverFree(evr1);
63 +    rpmverFree(evr2);
64 +#else
65      free((char *)evr1->str);
66      free((char *)evr2->str);
67      free(evr1);
68      free(evr2);
69 +#endif
70  
71      exit(cmprc);
72  }
73 -#endif