openSUSE:Contrib
Contrib:适用于第三方软件包的通用 openSUSE 仓库
已弃用: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
修复 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'
- 一封邮件将发送到 opensuse-contrib@opensuse.org(看起来像 http://old-en.opensuse.org/User:Hennevogel:Tmp)
- Contrib 审核者接受提交
$ 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”。
- 问:Contrib 仓库在哪里?
- 答:仓库基本目录是:http://download.opensuse.org/repositories/openSUSE:/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 是主要目标,因此这并不是“回溯”,只是另一个构建目标。
