使用autotools automake打包debian时如何删除许可证文件?

使用autotools automake打包debian时如何删除许可证文件?

我的 Debian 软件包产生 lintian 错误:

Rhythmbox-plugin-alternative-toolbar:额外许可证文件 usr/lib/rhythmbox/plugins/alternative-toolbar/LICENSE

这是因为源代码包含 LICENSE 文件 - 并且 Debian 打包规则规定所有许可证信息都应位于软件包的版权文件内。

我正在使用 autotools automake 进行构建 - 我的 debian/rules 如下所示:

#!/usr/bin/make -f

包括/usr/share/cdbs/1/rules/autoreconf.mk
包括/usr/share/cdbs/1/rules/debhelper.mk
包括/usr/share/cdbs/1/rules/utils.mk
包括/usr/share/cdbs/1/class/gnome.mk
包括 /usr/share/gnome-pkg-tools/1/rules/uploaders.mk
包括 /usr/share/gnome-pkg-tools/1/rules/gnome-version.mk
-包括/usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk

DEB_DH_AUTORECONF_ARGS := --按需 ./autogen.sh

# 列出所有未安装的文件
通用二进制安装后架构:: 列表缺失

我最初的想法是在规则中包含 override_dh_auto_install 语句以删除许可证文件,但如果我在当前规则的底部添加以下内容,这似乎会被忽略(或不起作用)

override_dh_auto_install:
    寻找 。 -名称“许可证”-删除
    dh_自动安装

因此,我的问题是 - 在构建 Debian 软件包时如何删除 LICENSE 文件?

注意 - 我不想通过某种覆盖人为地隐藏 lintian 错误 - 我想确保构建的包不包含额外的许可证文件。

答案1

这个问题大约两年前就被问过,但没有任何答案。所以我将发布我最近找到的解决方案。

删除文件呼叫dh_自动安装:

override_dh_auto_install:
    dh_auto_install
    find ./debian -type f -name "LICENSE" -delete

或者覆盖在文件暂存之后但在构建包之前调用的另一个指令。这是我首先通过覆盖来做到这一点的方法dh_md5sums指示:

override_dh_md5sums:
    find ./debian/<package_name> -type f -name "LICENSE.txt" -delete
    dh_md5sums

压倒其他DH_指令也可能有效。

相关内容