众多协议,并且其中的一些致力于 限制怎样的应用程序能被打包, 是否能用于销售赢利等等。
重要: 做为一名porter您有义务去阅读软件的协议 并且确保FreeBSD 项目不必为通过FTP/HTTP 或CD-ROM重新发布源码或编译的二进制而解释 什么。如果有任何疑问, 请联系 FreeBSD ports 邮件列表。
处于这种情况,就可以设置以下描述 的变量。
这个变量表示我们可能不能生成这个应用 程序的二进制文件。例如,他的协议不允许 二进制文件的再次发行,或者他可能禁止从 补丁过的源代码打包的发行。
不管怎么样,port的 DISTFILES 可以 随意的镜像到FTP/HTTP。除非NO_CDROM 变量也被设置,软件包也可以发行在一张CD-ROM (或类似的媒介上)。
NO_PACKAGE也能用在当二进制包 不是非常有用,并且这个应用软件经常要 从源代码编译。例如:当这个应用软件在 编译的时候要在配置信息中指定特定的硬件 代码时,可以设置NO_PACKAGE。
NO_PACKAGE应该设置成字符串 来描述为什么这个软件 不能打包。
这个变量仅仅指出虽然我们允许 生成二进制包,但也许我们既不能把这个 软件包也不能把port的DISTFILES 放在光盘(或类似的媒介)上销售。但不管怎么样, 二进制包和port的DISTFILES 可以从FTP/HTTP上获得。
如果这个变量和 NO_PACKAGE一起被设置, 那么这个port的DISTFIELS 将只能从FTP/HTTP上获得。
NO_CDROM 应该被设置成一个字符串 来描述为什么这个port不能重新发布在CD-ROM上。 例如:如果这个port的协议仅仅是用于“非商业活动” ,那么这个变量就能设置了。
在 NOFETCHFILES 变量中定义的文件, 不会自动从 MASTER_SITES 抓取。 一种典型的用例是, 使用来自某个软件供应商提供的 CD-ROM 上的文件。
用于检查在 MASTER_SITES 上是否包含了所需文件的工具, 应忽略这些文件, 而不是报告它们不存在。
如果应用程序既不允许镜像其 DISTFILES, 也不允许发布其预编译版本的包, 设置它就可以了。
NO_CDROM 或 NO_PACKAGE 不应与 RESTRICTED 同时设置, 因为它包含了这些情形。
RESTRICTED 应设置为一个说明 port 为何不能发布的串。 典型情况可能是由于 port 包含了专有的软件, 因而用户需要自行下载 DISTFILES, 可能是注册或者同意某一 EULA 的条款。
当设置了 RESTRICTED 或 NO_CDROM 时, 这个变量会默认设置为 ${DISTFILES} ${PATCHFILES}, 否则它会为空。 如果只有某些源码包文件是受限的, 则可以用这个变量来指明它们。
注意, port committer 应该在 /usr/ports/LEGAL 中为每一个源码包文件撰写对应的项目, 并介绍这些限制的原因。