如何给grub2 以git方式添加patch

这篇博客详细记录了在Linux环境中对grub配置文件的修改过程,包括使用git添加和提交修改,生成patch文件,并介绍了如何在SPEC文件中应用patch。博主还分享了在打包过程中对SOURCE目录的管理,以及changelog的更新方法。整个流程涉及到了版本控制、源码打包和软件发布的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改了 10_linux.in文件

/root/rpmbuild/BUILD/grub-2.02~beta2/grub-2.02~beta2/util/grub.d
[root@localhost grub.d]# ls -al 10_linux.in 
-rw-r--r-- 1 root root 11433 1112 17:00 10_linux.in
[root@localhost grub.d]# 

1.git add 10_linux.in
2.git commit -m “xxxx”
3.git format-patch HEAD^
生成了0001-linbo-test.patch

在这里插入图片描述
生成的patch,如下样式。包含commit的信息等。
在这里插入图片描述
把patch移到SOURCE目录

[root@localhost util]# cp 0001-v10-to-v7-01-KYLIN-add-bootargs-for-security.patch-b.patch ~/rpmbuild/SOURCES/0217-v10-to-v7-01-KYLIN-add-bootargs-for-security.patch
cp:是否覆盖"/root/rpmbuild/SOURCES/0217-v10-to-v7-01-KYLIN-add-bootargs-for-security.patch"? y

SPEC修改changelog
在这里插入图片描述
在这里插入图片描述

%prep
%setup -T -c -n grub-%{tarversion}
%ifarch %{efiarchs}
%setup -D -q -T -a 0 -n grub-%{tarversion}
cd grub-%{tarversion}
# place unifont in the '.' from which configure is run
cp %{SOURCE4} unifont.pcf.gz
cp %{SOURCE6} .gitignore
git init
git config user.email "example@example.com"
git config user.name "RHEL Ninjas"
git add .
git commit -a -q -m "%{tarversion} baseline."
git am %{patches}
cd ..
mv grub-%{tarversion} grub-efi-%{tarversion}
%endif

SPEC是通过git am 给打进去patch。
在这里插入图片描述

关键是{patches}是从SOURCE目录下的grub.macros,然后找到SOURCE3,然后SPECS/grub2.spec:67:%include %{SOURCE3}的67行找到。然后SPEC的61行SPECS/grub2.spec:61:Source3: grub.patches。
grub.patches文件里面存的是git am 打patchs的列表。路径:/SOURCES/grub.patches
沃日,找半天。

然后在文件的最好一行添加0217patch就可。擦
在这里插入图片描述

rpm -Uvh grub2-2.02-0.44.ns7.se.5.dky.3.x86_64.rpm grub2-tools-2.02-0.44.ns7.se.5.dky.3.x86_64.rpm grub2-efi-modules-2.02-0.44.ns7.se.5.dky.3.x86_6
4.rpm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值