我应该如何打包我的源代码,以便Launchpad可以为所有Ubuntu版本构建我的软件包?

我有一个应该适用于所有Ubuntu版本的软件包,所以我希望Launchpad可以为它们都构建...但事实并非如此。我只在changelog发布字段中使用了"trusty",Launchpad只为Trusty构建了它。我改成了"precise",结果只为Precise构建了它。有没有办法我可以在多个发布目标上使用相同的源代码?
ffc (1.3.20140513-1) trusty; urgency=medium

  * Non-maintainer upload.
  * Moving to git.
  * Syncronized debian/* with upstream

 -- redacted <redacted@example.com>  Fri, 16 May 2014 16:15:00 -0400

如果您的软件包没有不同的要求或不同的构建依赖关系,您可以直接使用“复制软件包”链接,并将其复制到Launchpad上的不同Ubuntu版本中。 - Rael Gugelmin Cunha
1个回答

是和不是。

目前无法使用 dput 来上传适用于多个Ubuntu版本的软件包。然而,您可以通过以下两种方法实现您的目标:

创建一个配方

如果您正在从Launchpad上的分支构建软件包,并且拥有Debian打包,请创建一个每日构建的配方,以针对您希望支持的Ubuntu版本。这在this answer的后半部分有更详细的描述。

这确实是最好的解决方案,因为它还可以在您进行更改时自动进行新的构建(每天限制一个自动构建,但您可以手动调度其他构建)。

手动上传多个构建

这不是一个理想的解决方案,但它有效。要使其工作,您需要执行以下操作:

调整更改日志中的版本号以匹配此格式: [version]-1ppa1~[release]1 其中,[version]是软件包版本,[release]是Ubuntu发布代号(如trusty、saucy等)。
确保更改日志设置为构建正确的发布版本。换句话说,对于Trusty,您的更改日志的第一行应该像这样: ffc (1.3.20140513-1ppa1~trusty1) trusty; urgency=medium
使用dput上传软件包,然后对每个要上传软件包的发布版本重复上述两个步骤。您可以在这里看到此操作的示例。

你可能可以补充一下,dput 方法要求你上传到 ubuntu/<suite> 目录,详细说明可参考这里 - saiarcot895