补丁
这个文档讲述了 openRuyi 的补丁策略。
通常策略
所有在 spec 文件中引用的补丁在其上方都应当有一行注释。这行注释可以是包含该补丁文件的作用,也可以是上游链接。
补丁文件命名策略
所有补丁文件应该以四位数字开头,这四位数分别代表不同类型的补丁文件:
-
来自同一版本的 upstream 的补丁声明范围为 0001-0999。
-
CVE 修复及上游其它版本 backport 补丁,声明范围为 1000-1999。
-
openRuyi 特有,而不会被 upstream 的补丁声明范围为 2000-2999。
使用单 Patch 字段
Patch 字段应写在 BuildOption 字段(如果有)或者 BuildRequires 字段的上方。
# https://github.com/pypa/wheel/pull/655
Patch0: 0001-adjusts-tests-for-setuptools-78.patch
如果你愿意的话,可以同时添加注释并附上链接:
# Upstream has removed this code entirely instead
# https://github.com/pypa/wheel/pull/655
Patch0: 0001-adjusts-tests-for-setuptools-78.patch
使用 %patchlist 字段
如果有大于 3 个 patch,则不宜使用 Patch 字段,可直接定义 %patchlist 即可。如果定义 %patchlist,需要将列表放置于 %description 的上方。详见这里。
%patchlist
# Fix executable space protection patch, upstream plans to do this
0001-unzip-6.0-exec-shield.patch
# http://www.info-zip.org/board/board.pl?m-1259575993/
0002-unzip-6.0-attribs-overflow.patch
# ...
# covscan issues
0020-unzip-6.0-COVSCAN-fix-unterminated-string.patch