我正在打包一个使用DistUtilsExtra的Python软件。在我的python setup.py install
中运行debian/rules
时,DistUtilsExtra会自动重新编译翻译模板.pot
文件,并直接在源存储库中对其进行更新。因此,第二次执行打包命令(使用debuild
或pdebuild
)时,会创建一个自动补丁文件(因为它认为我已手动更新.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,就像包含其位置的“变量”一样?
答案 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)
自动生成文件的常用解决方案是在清理过程中删除它们。