10 #define _RPMEVR_INTERNAL
29 if (Flags & RPMSENSE_PROVIDES) {
33 extra = Flags & RPMSENSE_FIND_PROVIDES;
34 }
else if (Flags & RPMSENSE_OBSOLETES) {
38 }
else if (Flags & RPMSENSE_CONFLICTS) {
42 }
else if (Flags & RPMSENSE_TRIGGER) {
47 extra = Flags & RPMSENSE_TRIGGER;
52 extra = Flags & _ALL_REQUIRES_MASK;
59 #if defined(RPM_VENDOR_MANDRIVA)
67 NEVR =
headerSprintf(h,
"%{NAME}-%|EPOCH?{%{EPOCH}:}|%{VERSION}-%{RELEASE}", NULL, NULL, NULL);
68 duplicate = !strncmp(NEVR, N, len) && !strcmp(NEVR+len+1, EVR);
83 const char ** versions = NULL;
91 versions = he->
p.
argv;
104 if (strcmp(names[len], N))
107 #if defined(RPM_VENDOR_MANDRIVA)
112 if (Flags & RPMSENSE_TRIGGER)
115 if (flagtag && versions != NULL) {
118 if(*EVR && !*versions[len]) {
123 he->
p.
argv = (
void *) &Flags;
142 he->
tag = versiontag;
144 he->
p.
argv = versions;
150 if (flagtag && versions != NULL &&
151 (strcmp(versions[len], EVR) || (
rpmsenseFlags)flags[len] != Flags))
155 if (indextag && indexes != NULL && indexes[len] != index)
164 names =
_free(names);
165 versions =
_free(versions);
166 flags =
_free(flags);
167 indexes =
_free(indexes);
183 he->
tag = versiontag;
193 he->
p.
ui32p = (
void *) &Flags;
214 char * reqname =
alloca(
sizeof(
"rpmlib()") + strlen(feature));
const char const char size_t len
#define RPMSENSE_SENSEMASK
int addReqProv(Spec spec, Header h, rpmTag tagN, const char *N, const char *EVR, rpmsenseFlags Flags, rpmuint32_t index)
Add dependency to header, filtering duplicates.
int rpmEVRparse(const char *evrstr, EVR_t evr)
Split EVR string into epoch, version, and release components.
char * headerSprintf(Header h, const char *fmt, headerTagTableEntry tags, headerSprintfExtension exts, errmsg_t *errmsg)
Return formatted output string from header tags.
enum evrFlags_e rpmsenseFlags
The structure used to store values parsed from a spec file.
const char const bson int mongo_write_concern int flags
EVR_t rpmEVRnew(uint32_t Flags, int initialize)
Create a new EVR container.
EVR_t rpmEVRfree(EVR_t evr)
Destroy an EVR container.
This is the only module users of librpmbuild should need to include.
int rpmEVRoverlap(EVR_t a, EVR_t b)
Compare EVR containers for overlap.
char * stpcpy(char *dest, const char *src)
static void * _free(const void *p)
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
int rpmlibNeedsFeature(Header h, const char *feature, const char *featureEVR)
Add rpmlib feature dependency.