python - 为 Debian 打包时如何访问原始 tarball?

标签 python debian packaging deb

我正在打包一个使用 DistUtilsExtra 的 Python 软件。在我的 debian/rules 中运行 python setup.py install 时,DistUtilsExtra 会自动重新编译翻译模板 .pot 文件并直接在源代码中更新它存储库。因此,我第二次执行打包命令(使用 debuildpdebuild)会创建一个自动补丁文件(因为它认为我已手动更新.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/

相关文章:

c# - OpenXML文件,没有扩展名的时候你怎么知道哪个是哪个

python - 深度嵌套的命名空间包

python - 使用 seaborn barplot 绘制宽格式数据帧

PHPMyAdmin 在 Debian 上安装时不要求输入 Mysql 密码

c++ - 什么是 debian 打包过程中的 changelog.Debian.gz 文件?

linux - 如何知道我拥有的 Linux 发行版?

powershell - 安装包 : Dependency loop detected for package 'Microsoft.Data.Sqlite'

Python提取关键字和括号后的文本

python - 在 spyder IDE 中以时间相关值显示 gekko 变量值

python - 如何在 Django Rest Framework 上通过 serializers.ListField 进行排序