我的 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_指令也可能有效。