rpm/rpm-5.3.8-distepoch-pattern-hack.patch

22 lines
871 B
Diff
Raw Normal View History

2012-02-01 14:15:49 +04:00
--- rpm-5.3.8/rpmdb/rpmdb.c.distpatt~ 2011-01-09 07:25:35.000000000 +0100
+++ rpm-5.3.8/rpmdb/rpmdb.c 2011-02-25 08:03:31.073663026 +0100
@@ -2441,6 +2446,18 @@ assert(keylen == sizeof(hdrNum));
/* XXX Special case #4: gather primary keys with patterns. */
rpmRC rc;
+ /* ugly hack to workaround disttag/distepoch pattern matching issue */
+ const char *tmp = strstr(keyp, "-mdv2011.0");
+ if(tmp) {
+ const char *origkeyp = keyp;
+ size_t klen = strlen(keyp);
+ keyp = alloca(klen);
+ memset((void*)keyp, klen, 0);
+ klen = tmp-origkeyp+1;
+ snprintf((char*)keyp, klen, "%s", origkeyp);
+ if(strlen(tmp) > sizeof("-mdv2011.0")-1)
+ stpcpy((char*)keyp+(klen-1), &tmp[sizeof("-mdv2011.0")-1]);
+ }
rc = dbiFindMatches(dbi, keyp, &set);
if ((rc && rc != RPMRC_NOTFOUND) || set == NULL || set->count < 1) { /* error or empty set */