源包:软件中心的精确构建依赖关系策略

源包:软件中心的精确构建依赖关系策略

我正在寻找关于在软件中心发布的源包的构建依赖项的详细规范。

我发现Ubuntu 政策手册 — 第 4 章 - 源包(顺便说一下,不知道这个链接是否仍然有效),它相当精确,但缺乏某种精度。

  • 如果构建需要目标平台默认不提供的编译器版本,该怎么办?例如,假设源包需要 GCC 4.8 才能构建,而 Ubuntu Precise 仅提供 GCC 4.6?
  • 如果构建需要的编译器不是免费提供的怎么办?例如,Ubuntu Precise 中 Ada 编译器的当前版本不能正确支持该标准的最新版本,或者某些需要某些商业 Prolog 编译器才能编译的应用程序。
  • 如果构建依赖于未作为单独源包提供的库源包,该怎么办?上面的链接说不应该有源重复,但如果库的源不是单独提供的,那么除了在应用程序的源包中复制库源之外没有其他方法可以做到(前提是这样做合法,如果库和应用程序的作者是同一个人,情况总是如此)。

这是我心中悬而未决的三个问题,上面的链接并没有给出答案,我更希望得到明确的答案,而不是纯粹的个人猜测。

祝大家有愉快的一天。

答案1

回复我自己,我很抱歉。

关于第二个问题,一个可能的答案可能是使用针对 ISO/ANSI C 的编译器,就像一些高级语言编译器一样。重用示例案例,假设应用程序需要这个或那个商业或非免费的 Prolog 编译器进行编译,那么如果该 Prolog 编译器能够针对 C(而不仅仅是本机机器代码),那么也许可以有一个基于高级编译器生成的 C 源代码的源代码包。这种机器生成的源代码大多数时候不如手写源代码那么好,但这真的很重要吗……

如果这些假设是正确的,那么这意味着如果有人希望将某些东西发布到软件中心,那么他/她必须使用能够生成 C 源作为目标的工具链。

相关内容