我正在打包一个使用 DistUtilsExtra 的 Python 软件。在我的 debian/rules
中运行 python setup.py install
时,DistUtilsExtra 会自动重新编译翻译模板 .pot
文件并直接在源代码中更新它存储库。因此,我第二次执行打包命令(使用 debuild
或 pdebuild
)会创建一个自动补丁文件(因为它认为我已手动更新.pot 文件)。 Debian 软件包中显然不需要这个补丁,我正在寻找一种不生成它的方法。
一个解决方案是让 DistUtilsExtra 不更改源存储库中的 .pot 文件,但目前这是不可能的。因此,我正在测试另一种解决方案:为 clean
指令创建一个覆盖,该指令从 .orig.tar.gz
tarball 中提取原始 .pot 文件,在 debian/规则
:
override_dh_clean:
tar -zxvf ../<projname>_*.orig.tar.gz --wildcards --strip-components=1 <projname>-*/po/<projname>.pot
dh_clean
然而,我在 debian-mentors 邮件列表上被告知原始压缩包不能保证位于 ../
中。因此,我想知道是否有一种方法可以从 debian/rules
内部可靠地访问 .orig.tar.gz
tarball,就像包含其位置的“变量” ?
最佳答案
严格来说,这并不是对在为 Debian 打包时如何访问原始 tarball? 问题的答案,但这就是我解决问题的方法,所以这里是:
我发现了一个有趣的 blog post by Raphaël Hertzog这解释了如何在构建 Debian 软件包时忽略自动生成的文件。这是通过将 --extend-diff-ignore
选项传递给 debian/source/options
文件中的 dpkg-source
来完成的。因此,我从 override_dh_clean
中删除了建议的命令,并且不再创建不需要的自动补丁。
关于python - 为 Debian 打包时如何访问原始 tarball?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5695688/