简介
本文采用quilt命令制作deb包的补丁具体操作如下
解压源码包
首先应从相关源地址下载所需打补丁的源码包
[root@localhost /]# ls
initramfs-tools_0.136kylin6k7.dsc
initramfs-tools_0.136kylin6k7.tar.xz
使用dpkg-source -x initramfs-tools_0.136kylin6k7.dsc解压包后会生成对应软件包目录;
[root@localhost /]# ls
initramfs-tools-0.136kylin6k7
[root@localhost initramfs-tools-0.136kylin6k7]# ls
bash_completion.d init mkinitramfs unmkinitramfs.8
conf initramfs.conf.5 mkinitramfs.8 update-initramfs
debian initramfs-tools.7 scripts update-initramfs.8
docs kernel src update-initramfs.conf.5
hook-functions lsinitramfs tests
hooks lsinitramfs.8 unmkinitramfs
patch存放目录
[root@localhost initramfs-tools-0.136kylin6k7]# ls debian/patches
initramfs-tools-kylin-for-huawei-boot-accel.patch series
initramfs-tools-kylin-transplant-include-modules.patch
制作补丁包
安装devscripts pbuilder使使用dch、debuild和quilt命令
[root@localhost initramfs-tools-0.136kylin6k7]# apt install devscripts pbuilder quilt
patch的制作需要借quilt工具完成补丁,quilt 命令提供了记录修改的一个基本方式。对 Debian 打包来说,该工具需要进行自定义,从而在 debian/patches/ 目录内记录修改内容,而非使用默认的 patches/ 目录。为了避免改变 quilt 命令自身的行为,我们在这里创建一个用于 Debian 打包工作的命令别名:dquilt。之后,我们将对应内容写入 ~/.bashrc 文件。下面给出的第二行为 dquilt 命令提供与 quilt 命令相同的命令行补全功能。
自定义设置quilt命令的配置点击该链接:
dquilt new test.patch //会在debian目录下自动生成patches目录,并建立patch文件
dquilt add conf/modules // 将conf/modules文件与patch文件关联
手动修改modules文件
[root@localhost initramfs-tools-0.136kylin6k7]# vim conf/modules
修改changelog
[root@localhost initramfs-tools-0.136kylin6k7]# dch -m
更新修改文件生成patch文件
[root@localhost initramfs-tools-0.136kylin6k7]# dquilt refresh
Refreshed patch test.patch
本地编译,编译通过后会在上层目录形成二进制包
[root@localhost initramfs-tools-0.136kylin6k7]# debuild -S
注意:如果源码包要上传到git管理平台,最后一行的作者信息要与git注册信息一致