6.4.有分发限制或法律问题的 port

许可证各不相同,其中一些对应用程序的打包方式、是否可以出售牟利等都有限制。

重要

搬运工有责任阅读软件的许可条款, 并确保 FreeBSD 项目不会因为通过 FTP/HTTP 或 CD-ROM 重新发布源代码或编译的二进制文件而被追究责任。如果有疑问, 请联系 FreeBSD ports 邮件列表。

在这样的情况下,可以设置接下来的章节中描述的变量。

6.4.1. 无包装

这个变量表示我们可能不会生成应用程序的二进制包。例如,许可证可能不允许二进制重新分发,或者禁止分发从补丁源创建的包。

然而, port 的 DISTFILES 可以在 FTP/HTTP 上自由镜像。它们也可以在 CD-ROM (或类似介质) 上发布, 除非也设置了 NO_CDROM

设置 NO_PACKAGE 为一个字符串,描述不能生成软件包的原因。

6.4.2. NO_CDROM

这个变量表明, 尽管我们被允许生成二进制包, 但我们既不能把这些包也不能把 port 的 DISTFILES 放到 CD-ROM (或类似的介质) 上进行转售。然而, 二进制包和 port 的 DISTFILES 仍然可以通过 FTP/HTTP 获得。

如果这个变量和 NO_PACKAGE 一起被设置, 则只有 Port 的 DISTFILES 可以使用, 而且只能通过 FTP/HTTP 使用。

NO_CDROM 设为一个字符串, 以描述 port 不能通过 CD-ROM 重新发布的原因。例如, 如果 port 的许可证只用于“非商业”用途, 可以使用这个选项。

6.4.3. 无FETCHFILES

NOFETCHFILES 中定义的文件是不能从任何 MASTER_SITES 中获取的。这种文件的一个例子是当文件是由供应商提供的 CD-ROM。

检查 MASTER_SITES 上是否有这些文件的工具必须忽略这些文件,并且不报告它们。

## 6.4.4. 受限制的

如果应用程序的许可证既不允许镜像应用程序的 DISTFILES,也不允许以任何方式分发二进制包,则单独设置这个变量。

不要将 NO_CDROMNO_PACKAGERESTRICTED 一起设置,因为后者意味着前者。

RESTRICTED 设为一个字符串, 用以描述为什么这个 port 不能被重新分发的原因。通常情况下, 这表示这个 port 包含专有软件, 用户需要手动下载 DISTFILES, 可能是在注册了软件或同意接受 EULA 的条款之后。

6.4.5. 限制性文件

当设置了 RESTRICTEDNO_CDROM 时, 这个变量的默认值为 ${DISTFILES}, 否则为空。${PATCHFILES}, 否则它就是空的。如果只有部分发行文件受到限制, 则应设置此变量以列出它们。

如果 port 有上述变量未涉及的法律问题, 则应将 LEGAL_TEXT 设为一个解释这种问题的字符串。例如, 如果获得了 FreeBSD 的特别许可来重新发布二进制文件, 这个变量就必须这样表示。

设置了上述任何变量的 port 也必须加入 /usr/ports/LEGAL。第一列是一个与受限制的 distfiles 匹配的 glob。第二列是这个 port 的来源。第三列是 make -VLEGAL 的输出。

6.4.8. 实例

阐述“此 Port 的 distfiles 必须手动获取”的首选方式如下:

.if !exists(${DISTDIR}/${DISTNAME}${EXTRACT_SUFX})
IGNORE=	may not be redistributed because of licensing reasons. Please visit some-website to accept their license and download ${DISTFILES} into ${DISTDIR}
.endif

这既通知了用户,又在用户的机器上设置了适当的元数据供自动程序使用。

请注意, 在这个节段之前, 必须包含 bsd.port.pre.mk

最后更新于

FreeBSD 中文社区