openSUSE:更新堆栈维护
简介
应维护团队的要求,现在所有涉及更新堆栈的软件包的更新都由 ZYpp 开发者处理。如果您想更新一个软件包,请联系他们以了解当前协调所有软件包提交的人员。
此工作流程将来可能会更改。因为处理桌面软件包等内容不是 ZYpp 开发者的责任。
构建服务项目
对于 openSUSE,维护在 devel:updatestack 项目中处理。
此仓库中有各种子项目
devel:updatestack:10.3
- 所有软件包都需要由其维护者手动提交
devel:updatestack:11.0
- 与 ZYpp 相关的软件包会自动链接到 zypp:SL11_0-Branch 仓库
- 其他软件包需要由其维护者手动提交
devel:updatestack:11.1
- 与 ZYpp 相关的软件包会自动链接到 zypp:Code11-Branch 仓库
- 其他软件包需要由其维护者手动提交
devel:updatestack:SLE-11
- 与 ZYpp 相关的软件包会自动链接到 zypp:Code11-Branch 仓库
- 其他软件包需要由其维护者手动提交
概述
要获得发行版的概述,您可以使用 osc overview 插件,以及获取 patchinfo 原型。
例如,您可以在 ~/.osc-overview/swmgmt.ini 中使用以下内容
[openSUSE 11.1] repos=obs://openSUSE:11.1,obs://devel:updatestack:11.1,obs://openSUSE:11.1:Update packages=*2
这告诉 osc overview 比较这些源,并使用第二个源中的软件包列表。
结果将是
** openSUSE 11.1 ** +------------------+------------------+------------------+------------------+ | package | obs://openSUSE:1 | obs://devel:upda | obs://openSUSE:1 | | | 1.1 | testack:11.1 | 1.1:Update | +==================+==================+==================+==================+ | gnome-packagekit | 0.3.11 | 0.3.11 | 0.3.11 | +------------------+------------------+------------------+------------------+ | kde4-kupdateappl | 0.8.34 | - | - | | et | | | | +------------------+------------------+------------------+------------------+ | libqdialogsolver | 1.2.5 | 1.2.9 | 1.2.6 | | 1 | | | | +------------------+------------------+------------------+------------------+ | libsatsolver | 0.13.0 | 0.13.6 | 0.13.2 | +------------------+------------------+------------------+------------------+ | libzypp | 5.24.5 | 5.29.5 | 5.25.3 | +------------------+------------------+------------------+------------------+ | libzypp-bindings | 0.4.8 | 0.4.8 | - | +------------------+------------------+------------------+------------------+ | PackageKit | 0.3.11 | 0.3.11 | 0.3.11 | +------------------+------------------+------------------+------------------+ | yast2-gtk | 2.17.8 | - | - | +------------------+------------------+------------------+------------------+ | yast2-ncurses- | 2.17.10 | - | - | | pkg | | | | +------------------+------------------+------------------+------------------+ | yast2-online- | 2.17.10 | 2.17.13 | 2.17.13 | | update | | | | +------------------+------------------+------------------+------------------+ | yast2-pkg- | 2.17.29 | 2.17.38 | 2.17.31 | | bindings | | | | +------------------+------------------+------------------+------------------+ | yast2-qt-pkg | 2.17.22 | 2.17.27 | 2.17.25 | +------------------+------------------+------------------+------------------+ | zypper | 1.0.2 | 1.0.8 | 1.0.5 | +------------------+------------------+------------------+------------------+
Patchinfo
您还可以使用 osc overview 的 -p 选项来获取 patchinfo 原型,其中设置了所有 buglist。或者使用 -c 选项来获取更改的差异。
然后您可以将其复制到 softwaremgmt.patch.{maintained|box}.<swampid>
开发者流程
- 如果您进行了一个应该作为更新发布的修复,不要创建 patchinfo,而是将软件包提交到正确的项目(除非它通过链接自动处理)
- 如果是紧急修复,请联系 softwaremgmt-coord 邮件列表,以了解现在更新整个堆栈的可行性,无论如何,请在正确的项目中保持您的当前软件包更新。
- 否则,只需在邮件列表中宣布任何更改,您的更改将在当前协调员的下一个大补丁中发布。
协调员流程
- 使用 osc overview 查看 devel:updatestack:$dist 项目中当前累积的修复
- 要求开发者提交他们可能需要的其他修复
- 检查仓库是否正确构建
- 审查修复
- 使用 osc overview 获取 patchinfo 原型
- 编辑 patchinfo,创建有意义的描述,添加或删除软件包(使用 check_patchinfo 脚本)
- 与安全和维护协调团队协调更新
- 提交软件包
osc sr create devel:updatestack:11.1 $package1 openSUSE:11.1:Update osc sr create devel:updatestack:11.1 $package2 openSUSE:11.1:Update ...
对于内部产品,您可以从外部 devel:updatestack:SLE-11 提交到外部 SUSE:SLE-11。
- 将 patchinfo 内部提交给维护
其他重要信息
11.0 中 PackageKit 和 gnome-packagekit 问题
在 11.0 中发布的 PackageKit 版本中,zypp 后端仅为每个GetUpdates 请求提供一个重启补丁,即使有多个可用(这是一个功能请求)。不幸的是,提供的补丁是相当随机的。因此,PackageKit 存在一个 bugix,用于一次显示所有可用补丁。
由于 gnome-packagekit 的 Updater-Applet 中的一个错误,该 applet 不会自行重启并查找进一步可用的更新,直到用户重新启动计算机或重新登录。基于此,必须确保至少将 gnome-packagekit 包含在每个重启补丁中。
解决方法
- 仅保留一个标记为重启的补丁,其中包含所有具有修复的更新堆栈软件包。
- 在每个标记为重启的补丁中保留 gnome-packagekit。