I have written an application, and I'm now interested in creating a Debian package and setting up a PPA. The application is written primarily in XSLT, and includes a very thin front-end that can be written in any language that can access an XSLT processor. I currently have front-ends written in JavaScript (able to run in the browser client, and from the command-line under Rhino) and Python. I'd also like to write a front-end entirely in bash, and simply use one of the command-line XSLT processors available in apt.
There are several available via apt, including xsltproc, xalan, and 4suite's xslt processor. I'd like to make the bash front-end flexible so that it is able to use any of these command-line clients, and will simply use whichever is available.
How can I best express in terms of Debian's package dependency system the relationship between my package and these three other packages, which is a logical disjunction (OR relationship)?
My package relies on xsltproc
OR 4suite
OR xalan
. Ideally, when my package is installed, the user should be prompted to choose any of these three package to install as a dependency; and if one of these packages is already installed on the system when my package is installed, then no additional dependencies should be installed. Is such a thing possible with Debian packages?
OR relationships can be expressed like
xsltproc | 4suit | xalan
in the Depends: field for the binary package in debian/control. The first package on the list will be preferred when none of them are currently on the system.For further details, see http://www.debian.org/doc/debian-policy/ch-relationships.html