6.2. Ports 的发行限制
上一页 | 第 6 章 特殊情况 | 下一页

## 6.2. Ports 的发行限制

众多协议，并且其中的一些致力于 限制怎样的应用程序能被打包， 是否能用于销售赢利等等。

### 重要:

做为一名porter您有义务去阅读软件的协议 并且确保FreeBSD 项目不必为通过FTP/HTTP 或CD-ROM重新发布源码或编译的二进制而解释 什么。如果有任何疑问， 请联系 FreeBSD ports 邮件列表。

处于这种情况，就可以设置以下描述 的变量。

### 6.2.1. `NO_PACKAGE` (禁止编译结果打包)

这个变量表示我们可能不能生成这个应用 程序的二进制文件。例如，他的协议不允许 二进制文件的再次发行，或者他可能禁止从 补丁过的源代码打包的发行。

不管怎么样，port的 `DISTFILES` 可以 随意的镜像到FTP/HTTP。除非`NO_CDROM` 变量也被设置，软件包也可以发行在一张CD-ROM （或类似的媒介上）。

`NO_PACKAGE`也能用在当二进制包 不是非常有用，并且这个应用软件经常要 从源代码编译。例如：当这个应用软件在 编译的时候要在配置信息中指定特定的硬件 代码时，可以设置`NO_PACKAGE`。

`NO_PACKAGE`应该设置成字符串 来描述为什么这个软件 不能打包。

### 6.2.2. `NO_CDROM` (禁止以 CDROM 发行预编译包)

这个变量仅仅指出虽然我们允许 生成二进制包，但也许我们既不能把这个 软件包也不能把port的`DISTFILES` 放在光盘（或类似的媒介）上销售。但不管怎么样， 二进制包和port的`DISTFILES` 可以从FTP/HTTP上获得。

如果这个变量和 `NO_PACKAGE`一起被设置， 那么这个port的`DISTFIELS` 将只能从FTP/HTTP上获得。

`NO_CDROM` 应该被设置成一个字符串 来描述为什么这个port不能重新发布在CD-ROM上。 例如：如果这个port的协议仅仅是用于“非商业活动” ,那么这个变量就能设置了。

### 6.2.3. `NOFETCHFILES` (不自动抓取指定的文件)

在 `NOFETCHFILES` 变量中定义的文件， 不会自动从 `MASTER_SITES` 抓取。 一种典型的用例是， 使用来自某个软件供应商提供的 CD-ROM 上的文件。

用于检查在 `MASTER_SITES` 上是否包含了所需文件的工具， 应忽略这些文件， 而不是报告它们不存在。

### 6.2.4. `RESTRICTED` (禁止任何形式的再分发)

如果应用程序既不允许镜像其 `DISTFILES`， 也不允许发布其预编译版本的包， 设置它就可以了。

`NO_CDROM` 或 `NO_PACKAGE` 不应与 `RESTRICTED` 同时设置， 因为它包含了这些情形。

`RESTRICTED` 应设置为一个说明 port 为何不能发布的串。 典型情况可能是由于 port 包含了专有的软件， 因而用户需要自行下载 `DISTFILES`， 可能是注册或者同意某一 EULA 的条款。

### 6.2.5. `RESTRICTED_FILES` (禁止某些文件的再分发)

当设置了 `RESTRICTED` 或 `NO_CDROM` 时， 这个变量会默认设置为 `${DISTFILES} ${PATCHFILES}`， 否则它会为空。 如果只有某些源码包文件是受限的， 则可以用这个变量来指明它们。

注意， port committer 应该在 `/usr/ports/LEGAL` 中为每一个源码包文件撰写对应的项目， 并介绍这些限制的原因。

上一页 | 上一级 | 下一页
第 6 章 特殊情况 | 起始页 | 6.3. 联编机制

本文档和其它文档可从这里下载： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.