5.8.许可证
最后更新于
最后更新于
FreeBSD 中文社区 2024
每个port必须记录其可用的许可证。如果它不是一个 OSI 批准的许可证,还必须记录任何关于重新分发的限制。
LICENSE
对于许可证的简称或适用的多个许可证。
如果它是预定义许可证列表中列出的许可证之一,则只能设置 LICENSE_FILE 和 LICENSE_DISTFILES 变量。
如果这是未在ports框架中定义的许可证(请参阅预定义许可证列表),则必须设置 LICENSE_PERMS 和 LICENSE_NAME ,以及 LICENSE_FILE 或 LICENSE_TEXT 。 LICENSE_DISTFILES 和 LICENSE_GROUPS 也可以设置,但不是必需的。
预定义的许可证显示在预定义许可证列表中。当前列表始终可在 Mk/bsd.licenses.db.mk 中找到。
示例 28。最简单的用法,预定义许可证
当某些软件的 README 中写着"This software is under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version."但没有提供许可证文件时,请使用以下内容:
软件提供许可文件时,请使用此文件:
对于预定义许可证, 默认权限为 dist-mirror dist-sell pkg-mirror pkg-sell auto-accept 。
表 7。预定义许可证列表
简称 | 名称 | 组别 | 权限 |
---|---|---|---|
权限。如果为空使用 none 。
许可权限列表
dist-mirror 允许重新分发分发文件。 分发文件将被添加到 FreeBSD MASTER_SITE_BACKUP CDN 中。
no-dist-mirror 禁止重新分发分发文件。 这相当于设置 RESTRICTED 。分发文件将不会被添加到 FreeBSD MASTER_SITE_BACKUP CDN 中。
dist-sell 允许销售发行文件。发行文件将出现在安装程序镜像上。
no-dist-sell 禁止销售发行文件。这相当于设置 NO_CDROM 。
pkg-mirror 允许免费重新分发软件包。该软件包将通过 FreeBSD 软件包 CDN https://pkg.freebsd.org/进行分发。
禁止自由再发行软件包。相当于设置 NO_PACKAGE 。软件包将不会从 FreeBSD 软件包 CDN https://pkg.freebsd.org/分发。
允许销售软件包。该软件包将出现在安装程序映像上。
禁止销售软件包。这相当于设置 NO_CDROM 。该软件包将不会出现在安装程序映像上。
默认情况下, auto-accept 许可证已被接受。仅当用户定义了 LICENSES_ASK 才会显示提示要接受许可证。除非许可证规定用户必须接受许可证条款,否则请使用此选项。
默认情况下, no-auto-accept 许可证未被接受。用户将被要求始终确认接受此许可证。如果许可证规定用户必须接受其条款,则必须使用此选项。
当同时存在 permission 和 no-permission 时, no-permission 将取消 permission 。
当 permission 不存在时,视为 no-permission 。
示例 29. 非标准许可证
阅读许可协议的条款,并利用可用的许可进行翻译。
实例 30. 标准和非标准许可证
阅读许可证条款,并使用可用权限表达这些。如有疑问,请在 FreeBSD ports 邮件列表上寻求指导。
当混合 GPLv2 和 UNKNOWN 许可证的权限时,port 将以 dist-mirror dist-sell pkg-mirror pkg-sell auto-accept dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept 结束。 no-permissions 取消权限。所得到的权限列表是 dist-mirror pkg-mirror auto-accept。分发文件和软件包将不会在安装镜像上可用。
许可组所属的组
预定义许可组列表
FSF
自由软件基金会批准,请查看 FSF 许可及合规团队。
GPL
GPL 兼容
OSI
OSI 批准,请查看开放源代码组织开源许可证页面。
COPYFREE
遵守 Copyfree 标准定义,请参见 Copyfree 许可证页面。
FONTS
字体许可证
授权的完整名称。
示例 31. LICENSE_NAME
包含许可证文本的文件的完整路径,通常是 ${WRKSRC}/some/file。如果文件不在 distfile 中,并且其内容太长而无法放入 LICENSE_TEXT 中,则将其放入 ${FILESDIR} 中的新文件中。
示例 32. LICENSE_FILE
用作许可证的文本。在许可证不在分发文件中且其文本较短时非常有用。
示例 33. LICENSE_TEXT
适用许可证的发行文件。默认适用于所有发行文件。
示例 34. LICENSE_DISTFILES
当发行文件不全都具有相同的许可证时使用。例如,一个具有代码许可证,另一个具有一些不能重新分发的艺术作品时:
LICENSE_COMB
设置为 multi 如果所有许可证适用。如果有任何许可证适用,则设置为 dual 。默认为 single 。
示例 35。双重许可证
当一个port说"本软件可以根据 GNU 通用公共许可证或艺术许可证进行分发"时,这意味着可以使用任一许可证。使用这个:
如果提供许可文件,请使用此选项:
示例 36. 多个许可证
当port的一部分具有一个许可证,而另一部分具有不同的许可证时,请使用 multi :