summaryrefslogtreecommitdiff
path: root/build/reqprov.c
diff options
context:
space:
mode:
Diffstat (limited to 'build/reqprov.c')
-rw-r--r--build/reqprov.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/build/reqprov.c b/build/reqprov.c
index 989a2f321..529a40097 100644
--- a/build/reqprov.c
+++ b/build/reqprov.c
@@ -47,10 +47,10 @@ int addReqProv(/*@unused@*/ Spec spec, Header h,
flagtag = RPMTAG_REQUIREFLAGS;
}
- flag = (flag & RPMSENSE_SENSEMASK) | extra;
- if (!version) {
+ flag = (flag & (RPMSENSE_SENSEMASK | RPMSENSE_MULTILIB)) | extra;
+
+ if (!version)
version = "";
- }
/* Check for duplicate dependencies. */
if (headerGetEntry(h, nametag, NULL, (void **) &names, &len)) {
@@ -71,13 +71,19 @@ int addReqProv(/*@unused@*/ Spec spec, Header h,
if (strcmp(names[len], name))
continue;
if (flagtag && versions != NULL &&
- (strcmp(versions[len], version) || flags[len] != flag))
+ (strcmp(versions[len], version) ||
+ ((flags[len] | RPMSENSE_MULTILIB) != (flag | RPMSENSE_MULTILIB))))
continue;
if (indextag && indexes != NULL && indexes[len] != index)
continue;
/* This is a duplicate dependency. */
duplicate = 1;
+
+ if (flagtag && isDependsMULTILIB(flag) &&
+ !isDependsMULTILIB(flags[len]))
+ flags[len] |= RPMSENSE_MULTILIB;
+
break;
}
FREE(names);