diff -Nur poldek-0.18.1.orig/pkg.c poldek-0.18.1/pkg.c --- poldek-0.18.1.orig/pkg.c Fri Oct 18 18:19:42 2002 +++ poldek-0.18.1/pkg.c Sun Nov 23 02:22:57 2003 @@ -699,8 +699,8 @@ if ((strcmp(capreq_name(cap), capreq_name(req))) != 0) return 0; - if (capreq_has_epoch(req)) { - if (!capreq_has_epoch(cap)) + if (capreq_has_epoch(req) || capreq_has_ver(req)) { + if (!(capreq_has_epoch(cap) || capreq_has_ver(cap))) return strict == 0; cmprc = capreq_epoch(cap) - capreq_epoch(req); @@ -743,18 +743,13 @@ if (!capreq_versioned(req)) return 1; - if (capreq_has_epoch(req) && pkg->epoch) { + if (capreq_has_epoch(req) && (pkg->epoch || pkg->ver)) { cmprc = pkg->epoch - capreq_epoch(req); if (cmprc != 0) return rel_match(cmprc, req); evr = 1; - - } else if (capreq_epoch(req) > 0) { - cmprc = 0; - evr = 1; } - - + if (capreq_has_ver(req)) { cmprc = rpmvercmp(pkg->ver, capreq_ver(req)); if (cmprc != 0) diff -Nur poldek-0.18.1.orig/pkgset.c poldek-0.18.1/pkgset.c --- poldek-0.18.1.orig/pkgset.c Thu Nov 14 19:21:42 2002 +++ poldek-0.18.1/pkgset.c Sun Nov 23 02:21:01 2003 @@ -815,7 +815,7 @@ { int rc = 1; - if (pdef->pkg->epoch && pkg->epoch != pdef->pkg->epoch) + if ((pdef->pkg->epoch /* || pdef->pkg->ver */) && pkg->epoch != pdef->pkg->epoch) rc = 0; if (rc && *pdef->pkg->ver)