How can I make an RPM depend on package a OR package b?
dependencies, requires, rpm
Solution
The standard way to do this is via virtual provides: the providing RPMs each state that they provide a virtual package, and the dependent RPM requires that virtual package. So, in your example, `vim` and `emacs` both `Provides: text-editor`, and your package would `Requires: text-editor`.
If the packages that you're depending on don't provide an appropriate virtual package, you could probably hack around this by making up your own. Make dummy `my-package-vim-mode` and `my-package-emacs-mode` RPMs that `Requires: vim` and `Requires: emacs`, respectively, and `Provides: my-package-text-editor`, then have your package `Requires: my-package-text-editor`.
Problem
This seems like a simple question, but the docs don't seem to have anything to say on the subject. I would like to do something like `Requires: vim or emacs` but when I do that, I in fact depend on `vim`, `or` and `emacs`. What is the syntax for depending on one or another of two packages?