如何根据debian本土源码包制作第一个patch包

本文介绍了Debian源代码包的3.0(quilt)格式,涉及如何使用dpkg-source创建、应用和管理补丁,包括下载源码、修改format、生成patch和打包过程。

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

1 介绍

在 debian/source/format 中只包含一行,写明了此源代码包的格式(查看 dpkg-source(1) 获得完整列表)。在 squeeze 后,它应该是以下二者之一:

  • 3.0 (native) - Debian 本土软件或者

  • 3.0 (quilt) - 其他所有软件

全新的 3.0 (quilt) 源代码格式将所有修改使用 quilt 补丁系列记录到 debian/patches。这些修改会在解压源代码包时自动应用。[58] Debian 修改保存于 debian.tar.gz 归档文件,其中包含了整个 debian 目录。这个新格式支持直接添加例如 PNG 图标等的二进制文件。[59]

dpkg-source 解压 3.0 (quilt) 格式的源码包时会自动应用所有列于 debian/patches/series 的补丁。你可以使用 --skip-patches 选项避免在解压后自动应用补丁。

2 使用dpkg-source制作patch的方式

1)下载本土源码包,包含  ${packagename}_${version}.dsc和 ${packagename}_${version}.debian.tar.xz两个文件

wget -c .dsc文件url .debian.tar.xz文件url

2)解压源码包

dpkg-source -x ${packagename}_${version}.dsc

3)由于源码包不包含${packagename}_${version}.orig.tar.gz文件,需要先手动根据上面的源码包生成最原始的upstream上游源码包。如下:

cd ${packagename}  // 进入解压后的源码路径

vim debian/source/format   // 3.0 (native)修改为3.0 (quilt),改为补丁方式

cd ..

tar -zcvf 包名_changelog最新的版本.orig.tar.gz --exclude=.git 源码路径

或者:

a. 修改debian/source/format文件,改为3.0 (quilt):

mkdir -p debian/source

echo "3.0 (quilt)" > debian/source/format

b. 打包orig.tar:

debmake -t

4)后面就可以进入源码路径去修改代码了,修改完后,用下面命令生成patch包

dpkg-source --commit [<dir> [<patch-name>]]

输入patch包名xxx.patch

完成后会在debian/patchs目录下看到新的patch包

5)打包源码,命令如下:

debuild -sa -S -nc

6)cd .., 可以看到已打包完成,可以提交launchpad了。这时,源码包包含了:{packagename}_${version}.dsc、 ${packagename}_${version}.debian.tar.xz、${packagename}_${version}.orig.tar.gz 3个文件。

3 其它如quilt命令等打包patch的方法介绍文章后很多,这里不再详述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值