openSUSE:构建服务概念项目链接

跳转到:导航搜索

项目链接

源链接

OBS 2.0 提供了一种重用另一个项目的所有源的方法。这可以是本地项目或远程OBS实例上的项目。要链接一个项目,请将链接元素添加到您的项目元文件中,例如通过

osc meta prj -e YOUR_PROJECT

创建一个链接以使 openSUSE:Factory 的所有源可用,如下所示

<project name="openSUSE:Factory:Staging">
 <title>openSUSE Factory Staging</title>
 <description>This is a staging project for openSUSE:Factory. Critical components get tested here before they get submitted to openSUSE:Factory.
 </description>
 <link project="openSUSE:Factory"/>
 <person role="maintainer" userid="adrianSuSE"/>
 ...

openSUSE:Factory 中可用的所有源软件包现在也可用在 openSUSE:Factory:Staging 项目中。它们可以签出或分支。请注意,默认情况下,它们不会在您列出项目内容时列出。

重建机制

默认情况下,链接源在链接项目时不会被重建。您可以使用两种不同的机制来重建它们。显而易见的是再次在您的项目中重建所有源。这可以通过将 linkedbuild 属性设置为“all” 来完成

 <repository linkedbuild="all" name="standard">
 ...
   <arch>i586</arch>
 ...
 </repository>

在这种情况下,所有软件包都会以相同的方式重建。除了如果您的项目中存在更改或额外的软件包源,这些源将被选取。您还可以通过在您的项目中创建软件包并将其设置为构建禁用来禁用软件包构建。

另一种重建方法是通过仅重建受您自己软件包影响的软件包。一个设置如下所示

 <repository linkedbuild="localdep" name="localdep">
   <path repository="standard" project="openSUSE:Factory"/>
   <arch>i586</arch>
   ...
 </repository>

这将重用通过 path 元素定义的二进制文件。默认情况下,不会构建任何软件包,并且所有软件包都将声明为“排除”。但是,当将软件包添加到您的项目中时,该软件包和所有依赖软件包都将被重建。

这对于测试修改 provides 和 requires 的新软件包特别有用。

发布行为

当链接项目发布时,重建软件包的所有二进制文件都会发布,但源项目中未重建的任何二进制文件不会发布。

任何安装都应该具有来自 <link> 项目和源项目的仓库。

链接链

创建到本身就是 <link> 的项目的 <link> 是允许的。不寻常的行为应报告(并在此处记录)。

链接项目和远程OBS链接

项目链接可以在跨OBS链接上工作,但存在一些错误。

更改链接项目中软件包

项目链接不会创建软件包的新源实例。您需要手动创建它们,例如通过“osc branch”命令。之后,您将能够更改链接项目中该软件包的源,而不会影响另一个软件包。