openSUSE:Contrib

跳转到:导航搜索

Contrib:适用于第三方软件包的通用 openSUSE 仓库


已弃用:Contrib

请注意,从 openSUSE 12.1 版本开始,Contrib 仓库已被弃用!

如果您是用户,请放心,这些软件包中的绝大多数现在已集成到 openSUSE 的主仓库中。其中一些软件包可在构建服务中找到,您可以使用 [software.opensuse.org/ 软件搜索] 找到它们。

如果您是开发者,请将您的软件包推送到 Factory!这 并不复杂,并且可以将您的软件包提供给所有 openSUSE 用户!

Contrib 的历史原因

构建服务 中使用第三方软件包的模型很复杂。

有大量软件包分布在数百个构建服务项目中,这带来了一些问题:仓库不易导航;存在重复软件包;仓库未经过与其他仓库的兼容性测试。 真正的解决方案是将所有软件包放入 Factory,这是长远目标。然而,与此同时,Contrib 仓库为第三方软件包提供了一个更易于使用的通用仓库。该仓库被视为 Factory 的社区驱动扩展,应用了所有标准和限制。

现在,大多数曾经在 Contrib 中的软件包已集成到 Factory 或构建服务上的少数专业仓库中。有关列表,请参阅 软件包仓库页面


规则或我们如何操作

通常 Contrib 具有与 Factory 相同的规则,例如发布截止日期等。

仓库规则

  • 所有内容都是基于 openSUSE 基础或此仓库中的软件包构建的
  • 不得重复 Factory 中的软件包
  • 仓库在 openSUSE 发布时分支 (openSUSE:Factory:Contrib -> openSUSE:<version>:Contrib)
    • 分支后,除非得到 openSUSE:<version>:Contrib 维护者的明确允许,否则不允许版本更新。
    • 错误修复以软件包的补丁形式进行

软件包规则

  • 软件包必须有负责维护的软件包维护者
    • 软件包更新
    • 软件包维护(修复错误、与上游合作解决错误等)
    • 安全更新(SuSE 安全团队将提供帮助)
    • 在 openSUSE 测试阶段进行 Beta 测试
  • 软件包需要通过 contrib 审核流程
  • 与 Factory 软件包无(文件)冲突

权限或谁负责什么

为了确保我们遵循上述规则,我们需要为仓库和其中的软件包设置一组权限。因此,我们需要涉及两个角色。负责一个或多个软件包的维护者以及负责仓库本身的审核者。

openSUSE:Factory:Contrib

  • 仓库由审核者拥有
    • 新软件包的提交通过 osc submitreq 进行,并经过初步审核。
    • 仓库 bugowner 是 opensuse-contrib@opensuse.org
  • 软件包由维护者拥有
    • 软件包开发直接进行,无需额外审核。
    • 软件包 bugowner 是维护者

openSUSE:<version>:Contrib

  • 仓库由审核者拥有
    • 不允许新软件包
  • 软件包由审核者拥有
    • 所有内容都通过 osc submitreq 处理,并经过审核
    • 软件包 bugowner 是维护者

流程或我们如何操作

还有另一种方法: 命令。

将新软件包添加到 openSUSE:Factory:Contrib

请勿将新软件包提交到 Contrib,请将其提交到 Factory。有关详细信息,请参阅 如何向 Factory 贡献

修复 openSUSE:Factory:Contrib 中的软件包错误

  • Joe Packager 从 openSUSE:Factory:Contrib 中检出软件包

 $ osc co openSUSE:Factory:Contrib blackbox 

  • Joe Packager 进行更改并检入软件包

 $ osc ci -m 'fixed bug in init script' 


修复 openSUSE:<version>:Contrib 中的软件包错误

  • Joe Packager 从 openSUSE:<version>:Contrib 中分支软件包

 $ osc branch openSUSE:11.1:Contrib blackbox 

  • Joe Packager 现在可以从他的分支区域检出软件包并对其进行处理

 $ osc co home:jpack:branches:openSUSE:11.1:Contrib/blackbox 

  • 一旦 Joe Packager 认为他已修复了问题,他就会提交软件包

 $ osc ci -m "fixed serious bug" 

  • 之后,一切都构建完毕,Joe 会为 openSUSE:<version>:Contrib 再次创建一个提交请求

 $ osc sr create -m 'fixed serious bug' 

 $ osc submitreq accept 6002 --message="reviewed ok. Update is released" 

或拒绝它

 $ osc submitreq decline 6002 --message="Sorry. Declined. There is another buffer overflow in main.c line 155" 

类似的过程也用于 Joe Packager 想要修改 openSUSE:Factory:Contrib 中的软件包,但他没有该软件包的维护者权限(由其他人维护)的情况。提交请求应由软件包维护者处理。

修复 openSUSE:<version>:Contrib 中软件包的安全漏洞

  • 与上述相同,只是漏洞报告者将是 安全团队

邮件列表或与谁联系

请参阅 邮件列表 页面,了解如何订阅以及如何处理 openSUSE 主邮件列表。


常见问题解答

  • 问:我们是否需要一个 contrib-(staging|beta|unstable|experimental|testing) 仓库,软件包必须经过报告的测试才能进入 contrib?
  • 答:通常我更喜欢将不稳定/实验性的内容保留在上游或用户的 OBS 中,而不是在 contrib 中。在软件包稳定后,可以发送集成请求。
  • 问:请定义发布周期(冻结、宣布等...)
  • 答:“Contrib”将与 Factory 发布周期同步。它将在 openSUSE 开发周期期间的 openSUSE 里程碑周期内与 Factory 一起开发。Factory 的冻结也会影响“Contrib”。
  • 问:如何在我的 openSUSE 中添加 Factory:Contrib 仓库?
  • 答:对于 openSUSE 11.2,请使用
     zypper ar -f http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/openSUSE_11.2 openSUSE:Factory:Contrib:openSUSE_11.2 
  • 答:对于 openSUSE 11.3,请使用
     zypper ar -f http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/openSUSE_11.3 openSUSE:Factory:Contrib:openSUSE_11.3 
  • 答:对于 openSUSE Factory,请使用
     zypper ar -f http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/standard openSUSE:Factory:Contrib 
  • 问:如何将 openSUSE:11.2:Contrib 仓库添加到我的 openSUSE?
  • 答:使用
     zypper ar http://download.opensuse.org/repositories/openSUSE:/11.2:/Contrib/standard/ 

或使用 yast2->软件仓库->添加->选择社区仓库->下一步->选择 Contrib->确定。

  • 问:但是我不喜欢 Factory,更新太多。这里有回溯吗?
  • 答:是的,Contrib 是为 openSUSE 11.3 构建的,因为我们希望允许更轻松地采用和测试 Contrib。但请考虑 Factory 是主要目标,因此这并不是“回溯”,只是另一个构建目标。