#define TAG_CONFLICTFLAGS 1053
#define TAG_CONFLICTNAME 1054
#define TAG_CONFLICTVERSION 1055
+#define TAG_RPMVERSION 1064
#define TAG_TRIGGERNAME 1066
#define TAG_TRIGGERVERSION 1067
#define TAG_TRIGGERFLAGS 1068
char *name;
char *evr;
char *sourcerpm;
+ int forcebinary = rpmhead->forcebinary;
name = headstring(rpmhead, TAG_NAME);
if (!strcmp(name, "gpg-pubkey"))
return 0;
}
sourcerpm = headstring(rpmhead, TAG_SOURCERPM);
- if (sourcerpm || rpmhead->forcebinary)
+ if (!sourcerpm && forcebinary)
+ {
+ char *rpmversion = headstring(rpmhead, TAG_RPMVERSION);
+ if (rpmversion && *rpmversion == '5')
+ forcebinary = 0;
+ }
+ if (sourcerpm || forcebinary)
s->arch = pool_str2id(pool, headstring(rpmhead, TAG_ARCH), 1);
else
{
const char *name, *arch, *sourcerpm;
char *evr, *r;
int l;
+ int forcebinary;
RpmHead *rpmhead = rpmhandle;
r = 0;
if (!name)
name = "";
sourcerpm = headstring(rpmhead, TAG_SOURCERPM);
- if (sourcerpm || rpmhead->forcebinary)
+ forcebinary = rpmhead->forcebinary;
+ if (!sourcerpm && forcebinary)
+ {
+ char *rpmversion = headstring(rpmhead, TAG_RPMVERSION);
+ if (rpmversion && *rpmversion == '5')
+ forcebinary = 0;
+ }
+ if (sourcerpm || forcebinary)
arch = headstring(rpmhead, TAG_ARCH);
else
{