openSUSE:构建服务概念临时修复

跳转到:导航搜索

程序临时修复

程序临时修复 (PTF) 的概念在技术上与源链接非常相似。此概念的目的是在不进行其他额外补丁的情况下,为某个程序的特定版本提供特定的修复。这用于在维护更新发布之间修复客户问题。

示例工作流程

  • 在 PTF 命名空间中创建一个项目,例如:PTF:<Bug # from b.n.c>
  • 创建一个指向维护产品更新仓库快照的源链接,例如:SUSE:SLE-11:Update
    • 通过添加源修订计数器(rev=...)到 Build_Service/Tips_and_Tricks#Example_of_a__link _link 文件来指定源修订。
    • 此外,现在可以基于一个移动目标创建 PTF。除非补丁不再适用,否则这些 PTF 会在发布新的维护更新时自动重建。
    • 拥有固定的修订源链接是默认策略。
  • 创建补丁并在本地验证修复(osc build --local-package ...)
  • 提交并将修复上传到构建服务
  • 构建成功后,构建结果将交付给客户

PTF 命名空间由内部构建服务中的 PTF 项目定义。能够创建 PTF 命名空间中的项目的人员列在 PTF 项目中作为维护者。可以稍后授予创建的项目写访问权限给其他人员。因此,软件包的维护者可以在 L3 代理协调工作的同时准备 PTF。

此工作流程是通用的,并且独立于其他问题,例如版本和发布编号方案。


PTF 发布编号

发布编号方案应独立于如何在 openSUSE 构建服务中构建 PTF 的技术方面进行处理。尽管如此,此处描述了编号方案以供参考。

理想情况下,PTF 使用的发布编号方案应与官方维护更新使用的发布编号无缝集成。应满足以下要求

  • 易于确定系统中是否安装了 PTF
  • 已安装的 PTF 不应影响新维护更新的安装
  • 较新的维护更新将使已安装的 PTF 过时

当前的编号方案

目前我们使用以下编号方案

<name>-<version>-<release>.PTF.<bug number>.<ptfrelease>

<name>-<version>-<release> 是 PTF 基于的软件包的名称版本-发布字符串。发布编号的扩展用于清楚地表明该软件包是一个 PTF。

可以在 spec 文件中如下重写 Release 标签

将链接元素的“cicount”属性设置为“copy”。将 .spec 文件中的 Release 标签设置为如下所示:

Release: <CI_CNT>.3.PTF.284686.0

其中“3”是 PTF 源软件包的原始构建编号,“284686”是错误编号,“0”是 PTF 的序列号。