PPA包:为不同的Ubuntu版本指定不同的依赖关系

假设我有一个依赖于可执行文件libtool来构建的PPA包。在Vivid版本中,这个可执行文件由libtool-bin包提供。而在早期的Ubuntu版本中,则由libtool包提供。
使用像${dist:BuildDepends}这样的替换变量明显只能用于Depends,而不能用于Build-Depends。那么,我该如何在我的软件包控制文件中指定Build-Depends,以便同时适用于Vivid(Build-Depends: libtool-bin)和早期版本(Build-Depends: libtool)呢?

如果您正在检查lsb-release,您可以获取发行版本代码并检查它是否大于14.04。 - muru
@muru:谢谢,我尝试过了,但是替代变量似乎在Build-Depends中不起作用,只对Depends有效。我已经更新了问题。 - fwalch
1你试过这个OR吗:Build-Depends: libtool-bin (>= 2.4.2-1.10) | libtool (< 2.4.2-1.10) - muru
2@muru:不错的技巧..希望他们不会将更新的libtool版本回溯到例如utopic。如果你把它作为答案发布,我会接受的。既然我在vi.SE上见过你,你可能会感兴趣知道我用这个方法构建了Neovim PPA,网址是https://code.launchpad.net/~neovim-ppa/+archive/ubuntu/unstable :-) - fwalch
在尝试那个PPA之前,我需要知道什么吗? - muru
1@muru:Neovim使用.nvimrc.nvim/进行配置。可执行文件为nvim。对于基于Python的插件(例如YouCompleteMe),您需要pip install neovim。终端UI在几天前已经重新实现(关于原因,请参见这里),所以您可能会在该领域遇到一些错误。除此之外,如果您有任何问题或困难,请在https://github.com/neovim/neovim上发布。您可以在http://neovim.org/doc找到一些文档链接。我从去年夏天开始使用Neovim,它运行得非常好:-)。 - fwalch
感谢您的编辑建议。我当时不在,所以被拒绝了。我已经进行了更改。 - muru
1个回答

libtool/libtool-bin的情况下,我认为可以使用OR关系。
Build-Depends: libtool-bin (>= 2.4.2-1.10) | libtool (<< 2.4.2-1.10)

版本号是utopic的版本,当时从Debian导入了分割。请注意,在2.4.2-1.10中,libtool仍然依赖于libtool-bin。这个依赖关系在2.4.2-1.11中被反转,所以现在需要进行这个更改。
根据您的操作,将一个组合的libtool添加到一个单独的PPA并依赖它可能更简单和更安全。由于这是一个B-D,不需要由最终用户安装,因此依赖于一个单独的PPA应该是安全的。