`debian/control` 文件中的条件依赖关系

`debian/control` 文件中的条件依赖关系

我正在打包该软件,这取决于官方 Debian 发行版中附带的库的特定版本。该软件还具有捆绑的库源。

有没有什么方法可以在文件中描述这一点debian/control,对于 10 之前的 Debian 版本,我不需要指定任何内容,但对于 >= 10,我可以使用发布的版本作为构建要求?

另外,对于旧版本(如何在文件中检测它debian/rules?)我必须在cmake配置步骤中传递一个附加选项。

答案1

对此没有任何规定:期望将源包(包括debian/control)上传到特定的发行版和版本,并带有构建指令,包括在该发行版中工作的构建依赖项。

在某些情况下,可以debian/control从 动态修改debian/rules,但这不适用于构建依赖项,因为它们在构建开始之前已解决。

在实践中,有两种方法可能适合您:

  • 使用某种模板工具获取公共源并为您关心的每个目标生成debian/control和;debian/rules

  • 使用版本控制系统中的分支来分离各个目标,但仍然允许相当简单的维护。

后者是 Debian 中大多数软件包的维护方式,当它们需要允许上传到多个目标时(例如实验性的或稳定的或向后移植以及不稳定的)。

另外,对于旧版本(如何在文件中检测它debian/rules?)我必须在cmake配置步骤中传递一个附加选项。

你不应该需要这样做;检测您尝试实现的行为,而不是检测旧版本并对行为进行硬编码。例如,检查系统是否存在依赖库,然后调整cmake调用;或者如果有cmake问题,请检测已安装的cmake.

相关内容