r = vercmp(evr1, r1 ? r1 : s1, evr2, r2 ? r2 : s2);
if (r)
return r;
+#ifdef DEBIAN_SEMANTICS
+ if (!r1 && r2)
+ return -1;
+ if (r1 && !r2)
+ return 1;
+#endif
if (r1 && r2)
{
if (s1 != ++r1 && s2 != ++r2)
Id pevr;
if (pid == name)
- break; /* yes, provides all versions */
+ {
+#ifdef DEBIAN_SEMANTICS
+ continue; /* unversioned provides can
+ * never match versioned deps */
+#else
+ break; /* yes, provides all versions */
+#endif
+ }
if (!ISRELDEP(pid))
continue; /* wrong provides name */
prd = GETRELDEP(pool, pid);