Debian 打包

本文是4digits项目进行Debian打包的帮助文档。

更新上游

首先用

quilt pop

把当前的补丁去掉。然后在pkg-4digits项目里面执行:

git import-orig --pristine-tar --uscan

这样就把上游的最新版(打了tag的)导入进来了。如果出现如下的信息:

gbp:info: Launching uscan...

gbp:info: package is up to date, nothing to do.

是因为debian/changelog里面已经包含了最新的版本号,需要先删除,然后再行导入。此外,需要删除老的tag才能让导入成功:

git tag -d upstream/<lastest_version_number>

打包和上传

dpkg-source(1)里面FILE FORMATS一节。

在根目录里面,执行debuild,即可在上级目录里面打包生成deb包。安装测试没有问题之后:

debuild -S

打包出source package。如果设置好了GPG,那么会自动把dsc和changes文件签名,无须手工去做。之后

dput mentors 4digits_1.1-1_source.changes

上载到Debian的mentors服务器。可以到Mentors首页登录后查看自己的包。

找到sponsor

到irc.oftc.org的#debian-mentors频道,找人来上传到Debian的服务器。

Quilt

Quilt的用法见/usr/share/doc/quilt/quilt.pdf。

移除补丁用quilt delete <patch_name>,不要去删除补丁文件。

遇到的问题

Debian官方打包的要求很多,设计的工具也很多。以下列出一些遇到的问题和解决办法。

bad-distribution-in-changes-file

在Ubuntu下打包,lintian可能会报bad-distribution-in-changes-file的错误,用这里的方法来解决。不过不用理财,不影响打包的。

包含.mo文件

mo文件是二进制文件,来源自upstream,所以不必要加入。可以在debian/rules的clean里面把它们删除,以让dpkg-source能够正确运行。