while (*p == ' ' || *p == '\t' || *p == '\n')
p++;
}
- name = pool_strn2id(pool, n, ne - n, 1);
+ if (ne - n > 4 && !strncmp(ne - 4, ":any", 4))
+ {
+ /* multiarch annotation */
+ name = pool_strn2id(pool, n, ne - n - 4, 1);
+ name = pool_rel2id(pool, name, ARCH_ANY, REL_MULTIARCH, 1);
+ }
+ else
+ name = pool_strn2id(pool, n, ne - n, 1);
if (e)
{
evr = pool_strn2id(pool, e, ee - e, 1);
if (!pool_match_nevr(pool, s, name))
return 0;
return pool_match_nevr(pool, s, evr);
+ case REL_MULTIARCH:
+ if (evr != ARCH_ANY)
+ return 0;
+ /* XXX : need to check for Multi-Arch: allowed! */
+ return pool_match_nevr(pool, s, name);
default:
return 0;
}
wp = 0;
}
break;
+ case REL_MULTIARCH:
+ if (evr != ARCH_ANY)
+ break;
+ /* XXX : need to check for Multi-Arch: allowed! */
+ wp = pool_whatprovides(pool, name);
+ break;
case REL_KIND:
/* package kind filtering */
if (!name)
#define REL_FILECONFLICT 21
#define REL_COND 22
#define REL_COMPAT 23
-#define REL_KIND 24 /* for filters only */
+#define REL_KIND 24 /* for filters only */
+#define REL_MULTIARCH 25 /* debian multiarch annotation */
#if !defined(__GNUC__) && !defined(__attribute__)
# define __attribute__(x)
return " NAMESPACE "; /* actually not used in dep2str */
case REL_ARCH:
return ".";
+ case REL_MULTIARCH:
+ return ":";
case REL_FILECONFLICT:
return " FILECONFLICT ";
case REL_COND: