Ubuntu – PPA package: Specify different dependencies for different Ubuntu versions

dependenciespackagingppa

Let's say I have a PPA package that depends on the libtool executable to build. In Vivid, this executable is provided by the libtool-bin package. For earlier Ubuntu versions, it is provided by the libtool package.

Using a substitution variable like ${dist:BuildDepends} is apparently only possible for Depends, but not for Build-Depends. So how do I specify the Build-Depends in the control file of my package to work with both Vivid (Build-Depends: libtool-bin) and earlier versions (Build-Depends: libtool)?

Best Answer

In the case libtool/libtool-bin, I think an OR relation might work:

Build-Depends: libtool-bin (>= 2.4.2-1.10) | libtool (<< 2.4.2-1.10)

The version numbers are that of utopic, when the split was imported from Debian. Note that in 2.4.2-1.10, libtool still depends on libtool-bin. The dependency was reversed in 2.4.2-1.11, which is why this change is now needed.

Depending on what you do, it might be simpler and safer to add a combined libtool to a separate PPA and depend on it. Since this is a B-D, it needn't be installed by your end-users, so depending on a separate PPA should be safe.

Related Question