10 #define _RPMEVR_INTERNAL
31 if (Flags & RPMSENSE_PROVIDES) {
35 extra = Flags & RPMSENSE_FIND_PROVIDES;
36 }
else if (Flags & RPMSENSE_OBSOLETES) {
40 }
else if (Flags & RPMSENSE_CONFLICTS) {
44 }
else if (Flags & RPMSENSE_TRIGGER) {
49 extra = Flags & RPMSENSE_TRIGGER;
51 #if defined(RPM_VENDOR_MANDRIVA)
52 if (!strcmp(N,
"/bin/sh") || !strcmp(N,
"/sbin/ldconfig")) {
53 rpmlog(
RPMLOG_DEBUG,
"%s will be satisfied by glibc or it's dependencies, won't add dependency to package\n");
60 extra = Flags & _ALL_REQUIRES_MASK;
67 #if defined(RPM_VENDOR_MANDRIVA)
75 NEVR =
headerSprintf(h,
"%{NAME}-%|EPOCH?{%{EPOCH}:}|%{VERSION}-%{RELEASE}", NULL, NULL, NULL);
76 duplicate = !strncmp(NEVR, N, len) && !strcmp(NEVR+len+1, EVR);
91 const char ** versions = NULL;
99 versions = he->
p.
argv;
112 if (strcmp(names[len], N))
115 #if defined(RPM_VENDOR_MANDRIVA)
120 if (Flags & RPMSENSE_TRIGGER)
123 if (flagtag && versions != NULL) {
124 int overlap = 0, res = 0;
125 rpmds old =
rpmdsSingle(flagtag, names[len], versions[len] ? versions[len] :
"", flags[len]);
131 #define RPMSENSE_SCRIPTS (RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN|RPMSENSE_SCRIPT_VERIFY)
135 !(((Flags & RPMSENSE_GREATER) && (flags[len] & RPMSENSE_LESS)) ||
136 ((flags[len] & RPMSENSE_GREATER) && (Flags & RPMSENSE_LESS))) &&
138 !(((Flags & RPMSENSE_SCRIPTS) && !(flags[len] & RPMSENSE_SCRIPTS)) ||
139 ((flags[len] & RPMSENSE_SCRIPTS) && !(Flags & RPMSENSE_SCRIPTS))))
141 #undef RPMSENSE_SCRIPTS
147 if (!(Flags & RPMSENSE_MISSINGOK) || !(flags[len] & RPMSENSE_MISSINGOK)) {
148 flags[len] &= ~RPMSENSE_MISSINGOK;
149 Flags &= ~RPMSENSE_MISSINGOK;
153 newflags = ((flags[len]| Flags) & _ALL_REQUIRES_MASK);
158 rEVR->Flags = flags[len];
166 he->
tag = versiontag;
168 he->
p.
argv = versions;
173 else if (flags[len] != Flags) {
179 flags[len] |= newflags;
196 if (flagtag && versions != NULL &&
197 (strcmp(versions[len], EVR) || (
rpmsenseFlags)flags[len] != Flags))
201 if (indextag && indexes != NULL && indexes[len] != index)
210 names =
_free(names);
211 versions =
_free(versions);
212 flags =
_free(flags);
213 indexes =
_free(indexes);
229 he->
tag = versiontag;
239 he->
p.
ui32p = (
void *) &Flags;
260 char * reqname =
alloca(
sizeof(
"rpmlib()") + strlen(feature));