长期支持版本

    社区创新版本

      社区热补丁制作发布流程

      制作内核态/用户态热补丁

      场景1. 在src-openEuler/openEuler仓下评论pr制作新版本热补丁

      制作内核态热补丁需在openEuler/kernel仓评论pr。

      制作用户态热补丁需在src-openEuler仓评论pr,现在支持src-openEuler/openssl,src-openEuler/glibc,src-openEuler/systemd

      1. 在已合入pr下评论制作热补丁

      • 从src-openeuler仓【支持openssl, glibc, systemd】评论已合入pr制作新版本热补丁。
      /makehotpatch [软件包版本号] [patch list] [cve/bug] [issue id] [os_branch]
      

      命令说明:使用多个patch用','分隔,需注意patch的先后顺序。

      image-20230629114903593

      • 从openeuler仓【支持kernel】评论已合入pr制作新版本热补丁。
      /makehotpatch [软件包版本号] [cve/bug] [issue id] [os_branch]
      

      image-20230629142933917

      评论后,门禁触发hotpatch_metadata仓创建热补丁issue以及同步该pr。

      2. hotpatch_metadata仓自动创建热补丁issue、同步该pr

      pr评论区提示启动热补丁制作流程。

      image-20230629143426498

      随后,hotpatch_metadata仓自动创建热补丁issue,并在hotpatch_metadata仓同步该pr。

      热补丁issue用于跟踪热补丁制作流程。

      hotpatch_metadata仓用于触发制作热补丁。

      image-20230629144503840

      点击查看热补丁issue链接内容。

      • 热补丁Issue类别为hotpatch。

      image-20230607161545732

      点击查看在hotpatch_metadata仓自动创建的pr。

      hotpatch-fix-pr

      3. 触发制作热补丁

      打开hotpatch_metadata仓自动创建的pr,评论区可以查看热补丁制作信息。

      img

      查看热补丁制作结果。

      img

      如果热补丁制作失败,可以根据相关日志信息修改pr、评论 /retest直到热补丁可以被成功制作。

      如果热补丁制作成功,可以通过Download link下载热补丁进行自验。

      image-20230608151244425

      若热补丁制作成功,可以对热补丁进行审阅

      场景2、从hotpatch_metadata仓提pr修改热补丁

      从hotpatch_metadata仓提pr只能修改还未正式发布的热补丁。

      1. 提pr

      用户需要手动创建热补丁issue。

      (1)阅读readme,根据热补丁issue模版创建热补丁。

      image-20230612113428096

      用户不允许修改热补丁元数据文件中已被正式发布的热补丁的相关内容。

      pr内容:

      • patch文件。
      • 修改热补丁元数据hotmetadata.xml文件。

      2. 触发制作热补丁

      若热补丁制作成功,可以对热补丁进行审阅

      场景3、从hotpatch_metadata仓提pr制作新版本热补丁

      1. 提pr

      在hotpatch_metadata仓提pr。

      (1)阅读readme,根据热补丁issue模版创建热补丁。

      image-20230612113428096

      pr内容:

      • patch文件。
      • 如果没有相应热补丁元数据hotmetadata.xml文件,则手动创建;否则修改热补丁元数据hotmetadata.xml文件。

      2. 触发制作热补丁

      若热补丁制作成功,可以对热补丁进行审阅

      审阅热补丁

      1. 审阅热补丁pr

      确认可发布,合入pr。

      2. pr合入,回填热补丁issue

      在热补丁issue页面补充热补丁路径,包含src.rpm/arm架构/x86架构的rpm包,以及对应hotpatch.xml,用于展示热补丁信息。

      如果一个架构失败,强行合入,也可只发布单架构的包。

      img

      • 热补丁Issue标签为hotpatch。

      • 查看热补丁元数据内容。

      热补丁元数据模版:

      热补丁元数据用于管理查看热补丁相关历史制作信息。

      <?xml version="1.0" ?>
      <ns0:hotpatchdoc xmlns:ns0="https://gitee.com/openeuler/HotPatch_metadata">
       <DocumentTitle xml:lang="en">Managing Hot Patch Metadata</DocumentTitle>
       <HotPatchList>
        <Package name=软件版本号>
         <hotpatch version=热补丁版本 type=热补丁类型>
          <SRC_RPM>src.rpm归档地址</SRC_RPM>
          <Debug_RPM_X86_64>x86架构debuginfo二进制包归档地址</Debug_RPM_X86_64>
          <Debug_RPM_Aarch64>arm架构debuginfo二进制包归档地址</Debug_RPM_Aarch64>
          <patch>patch文件</patch>
          <issue id="CVE-2023-33203" hotpatch_issue_href="https://gitee.com/src-openeuler/kernel/issues/I75ZRL"/>
          <hotpatch_issue_link>https://gitee.com/wanghuan158/hot-patch_metadata/issues/I7AE5F</hotpatch_issue_link>
         </hotpatch>
        </Package>
       </HotPatchList>
      </ns0:hotpatchdoc>
      
      <?xml version="1.0" ?>
      <ns0:hotpatchdoc xmlns:ns0="https://gitee.com/openeuler/HotPatch_metadata">
       <DocumentTitle xml:lang="en">Managing Hot Patch Metadata</DocumentTitle>
       <HotPatchList>
        <Package name="openssl-1.1.1m-20">
         <hotpatch version="1" type="cve">
          <SRC_RPM>download_link</SRC_RPM>
          <Debug_RPM_X86_64>download_link</Debug_RPM_X86_64>
          <Debug_RPM_Aarch64>download_link</Debug_RPM_Aarch64>
          <patch>0001-PEM-read-bio-ret-failure.patch</patch>
          <issue id="CVE-2023-33203" hotpatch_issue_href="https://gitee.com/src-openeuler/kernel/issues/I75ZRL"/>
          <hotpatch_issue_link>https://gitee.com/wanghuan158/hot-patch_metadata/issues/I7AE5F</hotpatch_issue_link>
         </hotpatch>
         <hotpatch version="2" type="cve">
          <SRC_RPM>download_link</SRC_RPM>
          <Debug_RPM_X86_64> download_link</Debug_RPM_X86_64>
          <Debug_RPM_Aarch64>download_link</Debug_RPM_Aarch64>
          <patch>0001-PEM-read-bio-ret-failure.patch</patch>
          <issue id="CVE-2023-33203" hotpatch_issue_href="https://gitee.com/src-openeuler/kernel/issues/I75ZRL"/>
          <hotpatch_issue_link>https://gitee.com/wanghuan158/hot-patch_metadata/issues/I7AE5P</hotpatch_issue_link>
         </hotpatch>
        </Package>
       </HotPatchList>
      </ns0:hotpatchdoc>
      

      注意:download_link均为repo仓正式的归档链接。

      热补丁当前只考虑演进,version 2基于version 1的src继续构建。

      image-20230607163358749

      3. 关闭相应热补丁Issue

      发布热补丁

      1、收集热补丁发布需求

      在release-management仓库每周update需求收集的issue下方,手动评论start-update命令,此时会收集待发布的热补丁和待发布的修复cve的冷补丁。后台会在hotpatch_meta仓库根据hotpatch标签查找已关闭的热补丁issue。

      2、生成安全公告热补丁信息

      社区根据收集到的热补丁issue信息,在生成安全公告的同时生成hotpatch字段补丁,过滤已经发布的漏洞。

      • 在安全公告文件新增HotPatchTree字段,记录和公告相关漏洞的热补丁,每个补丁按架构和CVE字段区分(Type=ProductName 记录分支,Type=ProductArch 记录补丁具体的rpm包)。

      3、Majun平台上传文件到openEuler官网,同步生成updateinfo.xml文件

      社区将生成的安全公告上传到openEuler官网,同时基于所收集的热补丁信息生成updateinfo.xml文件。

      updateinfo.xml文件样例:

              <?xml version="1.0" encoding="UTF-8"?>
              <updates>
                  <update from="openeuler.org" type="security" status="stable">
                      <id>openEuler-SA-2022-1</id>
                      <title>An update for mariadb is now available for openEuler-22.03-LTS</title>
                      <severity>Important</severity>
                      <release>openEuler</release>
                      <issued date="2022-04-16"></issued>
                      <references>
                          <reference href="https://nvd.nist.gov/vuln/detail/CVE-2021-1111" id="CVE-2021-1111" title="CVE-2021-1111" type="cve"></reference>
                          <reference href="https://nvd.nist.gov/vuln/detail/CVE-2021-1112" id="CVE-2021-1112" title="CVE-2021-1112" type="cve"></reference>
                      </references>
                      <description>patch-redis-6.2.5-1-HP001.(CVE-2022-24048)</description>
                      <pkglist>
                      <hot_patch_collection>
                          <name>openEuler</name>
                          <package arch="aarch64" name="patch-redis-6.2.5-1-HP001" release="1" version="1" id="CVE-2021-1111" >
                              <filename>patch-redis-6.2.5-1-HP001-1-1.aarch64.rpm</filename>
                          </package>
                          <package arch="x86_64" name="patch-redis-6.2.5-1-HP001" release="1" version="1" id="CVE-2021-1111">
                              <filename>patch-redis-6.2.5-1-HP001-1-1.x86_64.rpm</filename>
                          </package>
                          <package arch="aarch64" name="patch-redis-6.2.5-1-HP002" release="1" version="1" id="CVE-2021-1111,CVE-2021-1112">
                              <filename>patch-redis-6.2.5-1-HP002-1-1.aarch64.rpm</filename>
                          </package>
                          <package arch="x86_64" name="patch-redis-6.2.5-1-HP002" release="1" version="1" id="CVE-2021-1111,CVE-2021-1112">
                              <filename>patch-redis-6.2.5-1-HP002-1-1.x86_64.rpm</filename>
                          </package>
                      </hot_patch_collection>
                      </pkglist>
                  </update>
                  ...
              </updates>
      

      4、openEuler官网可以查看更新的热补丁信息,以cve编号划分

      image-20230612113626330

      5、获取热补丁相关文件

      社区将热补丁相关文件同步至openEuler的repo源下,可以在各个分支的hotpatch目录下获取相应文件。

      openEuler的repo地址:https://repo.openeuler.org/

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份