--- 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 */