|
Bernhard M. Wiedemann |
1250f9 |
Also compare the name/arch and not only the version when checking if
|
|
Bernhard M. Wiedemann |
1250f9 |
two packages are the same. rh#104066
|
|
Bernhard M. Wiedemann |
1250f9 |
|
|
Bernhard M. Wiedemann |
1250f9 |
--- ./lib/depends.c.orig 2014-06-26 06:51:54.163820067 +0000
|
|
Bernhard M. Wiedemann |
1250f9 |
+++ ./lib/depends.c 2014-08-04 12:22:24.030575105 +0000
|
|
Bernhard M. Wiedemann |
1250f9 |
@@ -158,6 +158,24 @@ static int skipColor(rpm_color_t tscolor
|
|
Bernhard M. Wiedemann |
1250f9 |
return tscolor && color && ocolor && !(color & ocolor);
|
|
Bernhard M. Wiedemann |
1250f9 |
}
|
|
Bernhard M. Wiedemann |
1250f9 |
|
|
Bernhard M. Wiedemann |
1250f9 |
+static int rpmNameVersionCompare(Header first, Header second)
|
|
Bernhard M. Wiedemann |
1250f9 |
+{
|
|
Bernhard M. Wiedemann |
1250f9 |
+ const char * one, * two;
|
|
Bernhard M. Wiedemann |
1250f9 |
+ int rc;
|
|
Bernhard M. Wiedemann |
1250f9 |
+
|
|
Bernhard M. Wiedemann |
1250f9 |
+ one = headerGetString(first, RPMTAG_NAME);
|
|
Bernhard M. Wiedemann |
1250f9 |
+ two = headerGetString(second, RPMTAG_NAME);
|
|
Bernhard M. Wiedemann |
1250f9 |
+ rc = strcmp(one, two);
|
|
Bernhard M. Wiedemann |
1250f9 |
+ if (rc)
|
|
Bernhard M. Wiedemann |
1250f9 |
+ return rc;
|
|
Bernhard M. Wiedemann |
1250f9 |
+ one = headerGetString(first, RPMTAG_ARCH);
|
|
Bernhard M. Wiedemann |
1250f9 |
+ two = headerGetString(second, RPMTAG_ARCH);
|
|
Bernhard M. Wiedemann |
1250f9 |
+ rc = strcmp(one, two);
|
|
Bernhard M. Wiedemann |
1250f9 |
+ if (rc)
|
|
Bernhard M. Wiedemann |
1250f9 |
+ return rc;
|
|
Bernhard M. Wiedemann |
1250f9 |
+ return rpmVersionCompare(first, second);
|
|
Bernhard M. Wiedemann |
1250f9 |
+}
|
|
Bernhard M. Wiedemann |
1250f9 |
+
|
|
Bernhard M. Wiedemann |
1250f9 |
/* Add erase elements for older packages of same color (if any). */
|
|
Bernhard M. Wiedemann |
1250f9 |
static int addSelfErasures(rpmts ts, rpm_color_t tscolor, int op,
|
|
Bernhard M. Wiedemann |
1250f9 |
rpmte p, rpm_color_t hcolor, Header h)
|
|
Bernhard M. Wiedemann |
1250f9 |
@@ -172,7 +190,7 @@ static int addSelfErasures(rpmts ts, rpm
|
|
Bernhard M. Wiedemann |
1250f9 |
if (skipColor(tscolor, hcolor, headerGetNumber(oh, RPMTAG_HEADERCOLOR)))
|
|
Bernhard M. Wiedemann |
1250f9 |
continue;
|
|
Bernhard M. Wiedemann |
1250f9 |
|
|
Bernhard M. Wiedemann |
1250f9 |
- cmp = rpmVersionCompare(h, oh);
|
|
Bernhard M. Wiedemann |
1250f9 |
+ cmp = rpmNameVersionCompare(h, oh);
|
|
Bernhard M. Wiedemann |
1250f9 |
|
|
Bernhard M. Wiedemann |
1250f9 |
/* On upgrade, skip packages that contain identical NEVR. */
|
|
Bernhard M. Wiedemann |
1250f9 |
if ((op == RPMTE_UPGRADE) && (cmp == 0))
|