如何在Debian打包时访问原始tarball?

时间:2011-04-17 18:57:15

标签: python debian packaging deb

我正在打包一个使用DistUtilsExtra的Python软件。在我的python setup.py install中运行debian/rules时,DistUtilsExtra会自动重新编译翻译模板.pot文件,并直接在源存储库中对其进行更新。因此,第二次执行打包命令(使用debuildpdebuild)时,会创建一个自动补丁文件(因为它认为我已手动更新.pot文件)。这个补丁在Debian软件包中显然是不受欢迎的,我正在寻找一种不生成它的方法。

一个解决方案是DistUtilsExtra不会更改源存储库中的.pot文件,但是现在这是不可能的。我正在测试另一个解决方案:为clean指令创建一个覆盖,从.orig.tar.gz tarball中提取原始.pot文件,在debian/rules中完成这样做:

override_dh_clean:
    tar -zxvf ../<projname>_*.orig.tar.gz --wildcards --strip-components=1 <projname>-*/po/<projname>.pot
    dh_clean

但是我在debian-mentors邮件列表中被告知,原始的tarball不能保证位于../。因此,我想知道是否有办法从.orig.tar.gz内部可靠地访问debian/rules tarball,就像包含其位置的“变量”一样?

2 个答案:

答案 0 :(得分:2)

这不是严格意义上的回答问题如何在打包Debian时访问原始tarball?,但这就是我解决问题的方法,因为它是:< / p>

我发现了一个有趣的blog post by Raphaël Hertzog,它解释了在构建Debian软件包时如何忽略自动生成的文件。这是通过将--extend-diff-ignore选项传递到dpkg-source文件中的debian/source/options来完成的。因此,我从override_dh_clean删除了建议的命令,并且不再创建不需要的自动补丁。

答案 1 :(得分:0)

自动生成文件的常用解决方案是在清理过程中删除它们。