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个文件。