For the record, rpm seems to have added support for boolean operations [0].
and - requires all operands to be fulfilled for the term to be True. Conflicts: (pkgA and pkgB) or - requires one of the operands to be fulfilled Requires: (pkgA >= 3.2 or pkgB) if - requires the first operand to be fulfilled if the second is (reverse implication) Recommends: (myPkg-langCZ if langsupportCZ) if else - same as above but requires the third operand to be fulfilled if the second is not Requires: (myPkg-backend-mariaDB if mariaDB else sqlite) nesting: Requires: (pkgA or pkgB or pkgC) Requires: (pkgA or (pkgB and pkgC)) Supplements: (foo and (lang-support-cz or lang-support-all)) (I'm pasting the content of the site because perhaps in 16 years from now the URL is unreachable) [0] http://rpm.org/wiki/PackagerDocs/BooleanDependencies

