FreeBSD Port 开发者手册
FreeBSD 中文社区
  • FreeBSD Port 开发者手册翻译项目
  • 编辑日志
  • 译者说明
  • FreeBSD Port 开发者手册
    • FreeBSD Port 开发者手册
  • 第1章 简介
    • 1.1.简介
  • 第2章 制作新的 port
    • 2.1.制作新的 port
  • 第3章 简单的 port
    • 3.1.编写 Makefile
    • 3.2.编写描述文件
    • 3.3.创建校验和文件
    • 3.4.测试 port
    • 3.5.用 portlint 来检查 port
    • 3.6.提交新的 port
  • 第4章 复杂的 Port
    • 4.1 Port 工作原理
    • 4.2.获取源代码
    • 4.3.修改 port
    • 4.4.打补丁
    • 4.5.配置
    • 4.6.处理用户输入
  • 第5章 配置 Makefile
    • 5.1.原始来源
    • 5.2.命名
    • 5.3.归类
    • 5.4.源代码包文件
    • 5.5.维护者(MAINTAINER)
    • 5.6.一句话说明(COMMENT)
    • 5.7.项目网站
    • 5.8.许可证
    • 5.9.PORTSCOUT
    • 5.10.依赖
    • 5.11.从属 port 和 MASTERDIR
    • 5.12.man 手册
    • 5.13.info 文件
    • 5.14.Makefile 参数
    • 5.15.特殊的工作目录
    • 5.16.解决冲突
    • 5.17.安装文件
    • 5.18. 使用 BINARY_ALIAS 来重命名命令,而不是在编译中打补丁
  • 第6章 特殊情况
    • 第6章 特殊情况
  • 第7章 Flavors
    • 7.1.Flavors 简介
    • 7.2.使用 FLAVORS
    • 7.3.USES=php 和 Flavors
    • 7.4.USES=python 和 Flavors
    • 7.5.USES=lua 和 Flavors
  • 第8章 高级 pkg-plist 实践
    • 8.1.根据 make 变量对 pkg-plist 进行修改
    • 8.2.空目录
    • 8.3.配置文件
    • 8.4.动态与静态软件包列表
    • 8.5.自动创建软件包列表
    • 8.6.用关键词扩展软件包列表
  • 第9章 pkg-*
    • 9.1.pkg-message(安装二进制包时显示的消息文件)
    • 9.2.pkg-install、pkg-pre-install 和 pkg-post-install(安装二进制包时执行的脚本文件)
    • 9.3.pkg-deinstall、pkg-pre-deinstall 和 pkg-post-deinstall(卸载时执行的脚本文件)
    • 9.4.修改 pkg-* 文件的名字
    • 9.5.使用 SUB_FILES 和 SUB_LIST
  • 第10章 测试 port
    • 10.1.运行 make describe
    • 10.2.运行 make test
    • 10.3.Portclippy / Portfmt
    • 10.4.Portlint
    • 10.5.Port 工具
    • 10.6.PREFIX 和 DESTDIR
    • 10.7.Poudriere
    • 10.8.调试 port
  • 第11章 升级 port
    • 11.1.使用 Git 制作补丁
    • 11.2.UPDATING 和 MOVED
  • 第12章 安全
    • 12.1.安全为何如此重要
    • 12.2.修复安全漏洞
    • 12.3.向社区通报情况
  • 第13章 该做什么和不该做什么
    • 第13章 该做什么和不该做什么
  • 第14章 一个简单的 port
    • 第14章 一个简单的 port
  • 第15章 在 Port Makefile 中变量的顺序
    • 第15章 在 Port Makefile 中变量的顺序
  • 第16章 保持更新
    • 第16章 保持更新
  • 第17章 使用 USES 宏
    • 第17章 使用 USES 宏
  • 第18章 __FreeBSD_version 的值
    • 第18章 __FreeBSD_version 的值
由 GitBook 提供支持

FreeBSD 中文社区

在本页
  • 5.8.1. LICENSE
  • 5.8.2. LICENSE_PERMS 和 LICENSE_PERMS_NAME_
  • 5.8.3. LICENSE_GROUPS 和 LICENSE_GROUPS_NAME
  • 5.8.4. LICENSE_NAME 和 LICENSE_NAME_NAME
  • 5.8.5. LICENSE_FILE 和 LICENSE_FILE_NAME
  • 5.8.6. LICENSE_TEXT 和 LICENSE_TEXT_NAME
  • 5.8.7. LICENSE_DISTFILES 和 LICENSE_DISTFILES_NAME
  • 5.8.8. LICENSE_COMB

这有帮助吗?

在GitHub上编辑
导出为 PDF
  1. 第5章 配置 Makefile

5.8.许可证

最后更新于2天前

这有帮助吗?

每个 Port 必须记录其可用的许可证。如果它不是一个 OSI 批准的许可证,则必须记录任何关于再分发的限制。

5.8.1. 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 文件中写道“本软件根据自由软件基金会发布的 GNU 较宽松公共许可证(LGPL)条款进行许可;可以选择版本 2.1 或(根据你的选择)任何更高版本。”但没有提供许可证文件时,可以使用以下内容:

LICENSE=	LGPL21+

当软件提供许可证文件时,使用以下内容:

LICENSE=	LGPL21+
LICENSE_FILE=	${WRKSRC}/COPYING

对于预定义的许可证,默认权限为 dist-mirror dist-sell pkg-mirror pkg-sell auto-accept。

表 7. 预定义许可证列表

表 7. 预定义许可证列表

简短名称
名称
组别
权限

AGPLv3

GNU Affero General Public License 版本 3

FSF GPL OSI

(默认)

AGPLv3+

GNU Affero General Public License 版本 3(或更高版本)

FSF GPL OSI

(默认)

APACHE10

Apache License 1.0

FSF

(默认)

APACHE11

Apache License 1.1

FSF OSI

(默认)

APACHE20

Apache License 2.0

FSF OSI

(默认)

ART10

Artistic License 版本 1.0

OSI

(默认)

ART20

Artistic License 版本 2.0

FSF GPL OSI

(默认)

ARTPERL10

Artistic License (perl) 版本 1.0

OSI

(默认)

BSD

BSD 许可证通用版本(已弃用)

FSF OSI COPYFREE

(默认)

BSD2CLAUSE

BSD 2-clause “简化版”许可证

FSF OSI COPYFREE

(默认)

BSD3CLAUSE

BSD 3-clause “新”或“修订版”许可证

FSF OSI COPYFREE

(默认)

BSD4CLAUSE

BSD 4-clause “原始”或“旧版”许可证

FSF

(默认)

BSL

Boost 软件许可证

FSF OSI COPYFREE

(默认)

CC-BY-1.0

Creative Commons Attribution 1.0

(默认)

CC-BY-2.0

Creative Commons Attribution 2.0

(默认)

CC-BY-2.5

Creative Commons Attribution 2.5

(默认)

CC-BY-3.0

Creative Commons Attribution 3.0

(默认)

CC-BY-4.0

Creative Commons Attribution 4.0

(默认)

CC-BY-NC-1.0

Creative Commons Attribution Non Commercial 1.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-2.0

Creative Commons Attribution Non Commercial 2.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-2.5

Creative Commons Attribution Non Commercial 2.5

dist-mirror pkg-mirror auto-accept

CC-BY-NC-3.0

Creative Commons Attribution Non Commercial 3.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-4.0

Creative Commons Attribution Non Commercial 4.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-ND-1.0

Creative Commons Attribution Non Commercial No Derivatives 1.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-ND-2.0

Creative Commons Attribution Non Commercial No Derivatives 2.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-ND-2.5

Creative Commons Attribution Non Commercial No Derivatives 2.5

dist-mirror pkg-mirror auto-accept

CC-BY-NC-ND-3.0

Creative Commons Attribution Non Commercial No Derivatives 3.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-ND-4.0

Creative Commons Attribution Non Commercial No Derivatives 4.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-SA-1.0

Creative Commons Attribution Non Commercial Share Alike 1.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-SA-2.0

Creative Commons Attribution Non Commercial Share Alike 2.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-SA-2.5

Creative Commons Attribution Non Commercial Share Alike 2.5

dist-mirror pkg-mirror auto-accept

CC-BY-NC-SA-3.0

Creative Commons Attribution Non Commercial Share Alike 3.0

dist-mirror pkg-mirror auto-accept

CC-BY-NC-SA-4.0

Creative Commons Attribution Non Commercial Share Alike 4.0

dist-mirror pkg-mirror auto-accept

CC-BY-ND-1.0

Creative Commons Attribution No Derivatives 1.0

(默认)

CC-BY-ND-2.0

Creative Commons Attribution No Derivatives 2.0

(默认)

CC-BY-ND-2.5

Creative Commons Attribution No Derivatives 2.5

(默认)

CC-BY-ND-3.0

Creative Commons Attribution No Derivatives 3.0

(默认)

CC-BY-ND-4.0

Creative Commons Attribution No Derivatives 4.0

(默认)

CC-BY-SA-1.0

Creative Commons Attribution Share Alike 1.0

(默认)

CC-BY-SA-2.0

Creative Commons Attribution Share Alike 2.0

(默认)

CC-BY-SA-2.5

Creative Commons Attribution Share Alike 2.5

(默认)

CC-BY-SA-3.0

Creative Commons Attribution 署名-相同方式共享 3.0

(默认)

CC-BY-SA-4.0

Creative Commons Attribution 署名-相同方式共享 4.0

(默认)

CC0-1.0

Creative Commons Attribution 零版权 1.0 通用

FSF GPL COPYFREE

(默认)

CDDL

通用开发与分发许可证

FSF OSI

(默认)

CPAL-1.0

通用公共署名许可证

FSF OSI

(默认)

ClArtistic

明确艺术许可证

FSF GPL OSI

(默认)

EPL

Eclipse 公共许可证

FSF OSI

(默认)

GFDL

GNU 自由文档许可证

FSF

(默认)

GMGPL

GNAT 修改版通用公共许可证

FSF GPL OSI

(默认)

GPLv1

GNU 通用公共许可证版本 1

FSF GPL OSI

(默认)

GPLv1+

GNU 通用公共许可证版本 1(或更高版本)

FSF GPL OSI

(默认)

GPLv2

GNU 通用公共许可证版本 2

FSF GPL OSI

(默认)

GPLv2+

GNU 通用公共许可证版本 2(或更高版本)

FSF GPL OSI

(默认)

GPLv3

GNU 通用公共许可证版本 3

FSF GPL OSI

(默认)

GPLv3+

GNU 通用公共许可证版本 3(或更高版本)

FSF GPL OSI

(默认)

GPLv3RLE

GNU GPL 版本 3 运行时库例外

FSF GPL OSI

(默认)

GPLv3RLE+

GNU GPL 版本 3 运行时库例外(或更高版本)

FSF GPL OSI

(默认)

ISCL

网络系统联盟许可证

FSF GPL OSI COPYFREE

(默认)

LGPL20

GNU 库通用公共许可证版本 2.0

FSF GPL OSI

(默认)

LGPL20+

GNU 库通用公共许可证版本 2.0(或更高版本)

FSF GPL OSI

(默认)

LGPL21

GNU 较小型公共许可证版本 2.1

FSF GPL OSI

(默认)

LGPL21+

GNU 较小型公共许可证版本 2.1(或更高版本)

FSF GPL OSI

(默认)

LGPL3

GNU 较小型公共许可证版本 3

FSF GPL OSI

(默认)

LGPL3+

GNU 较小型公共许可证版本 3(或更高版本)

FSF GPL OSI

(默认)

LPPL10

LaTeX 项目公共许可证版本 1.0

FSF OSI

dist-mirror dist-sell

LPPL11

LaTeX 项目公共许可证版本 1.1

FSF OSI

dist-mirror dist-sell

LPPL12

LaTeX 项目公共许可证版本 1.2

FSF OSI

dist-mirror dist-sell

LPPL13

LaTeX 项目公共许可证版本 1.3

FSF OSI

dist-mirror dist-sell

LPPL13a

LaTeX 项目公共许可证版本 1.3a

FSF OSI

dist-mirror dist-sell

LPPL13b

LaTeX 项目公共许可证版本 1.3b

FSF OSI

dist-mirror dist-sell

LPPL13c

LaTeX 项目公共许可证版本 1.3c

FSF OSI

dist-mirror dist-sell

MIT

MIT 许可证 / X11 许可证

COPYFREE FSF GPL OSI

(默认)

MPL10

Mozilla 公共许可证版本 1.0

FSF OSI

(默认)

MPL11

Mozilla 公共许可证版本 1.1

FSF OSI

(默认)

MPL20

Mozilla 公共许可证版本 2.0

FSF OSI

(默认)

NCSA

伊利诺伊大学/NCSA 开源许可证

COPYFREE FSF GPL OSI

(默认)

NONE

未指定许可证

none

OFL10

FONTS

(默认)

OFL11

FONTS

(默认)

OWL

Open Works 许可证 (owl.apotheon.org)

COPYFREE

(默认)

OpenSSL

OpenSSL 许可证

FSF

(默认)

PD

公有领域

GPL COPYFREE

(默认)

PHP202

PHP 许可证版本 2.02

FSF OSI

(默认)

PHP30

PHP 许可证版本 3.0

FSF OSI

(默认)

PHP301

PHP 许可证版本 3.01

FSF OSI

(默认)

PSFL

Python 软件基金会许可证

FSF GPL OSI

(默认)

PostgreSQL

PostgreSQL 许可证

FSF GPL OSI COPYFREE

(默认)

RUBY

Ruby 许可证

FSF

(默认)

UNLICENSE

The Unlicense

COPYFREE FSF GPL

(默认)

WTFPL

随心所欲公共许可证版本 2

GPL FSF COPYFREE

(默认)

WTFPL1

随心所欲公共许可证版本 1

GPL FSF COPYFREE

(默认)

ZLIB

zlib 许可证

GPL FSF OSI

(默认)

ZPL21

Zope 公共许可证版本 2.1

GPL OSI

(默认)

5.8.2. LICENSE_PERMS 和 LICENSE_PERMS_NAME_

权限。如果为空,使用 none。

许可证权限列表

dist-mirror 允许分发发行文件。发行文件将添加到 FreeBSD MASTER_SITE_BACKUP CDN。

dist-sell 允许出售发行文件。发行文件将出现在安装映像中。

pkg-sell 允许出售软件包。该软件包将出现在安装映像中。

auto-accept 默认接受许可证。除非用户定义了 LICENSES_ASK,否则不会显示接受许可证的提示。如果许可证声明用户必须接受许可证条款,请使用此选项。

no-auto-accept 默认不接受许可证。用户将始终被要求确认接受此许可证。如果许可证声明用户必须接受其条款,则必须使用此选项。

当同时存在 permission 和 no-permission 时,no-permission 将取消 permission。

当 permission 未出现时,视为 no-permission。

警告

某些缺失的权限会导致一个 Port(以及所有依赖于它的 Port)无法通过包管理器使用:

没有 auto-accept 权限的 Port 将永远不会被构建,所有依赖于它的 Port 将被忽略。

没有 pkg-mirror 权限的 Port(以及任何依赖于它的 Port)将在构建后被删除,确保它们不会被分发。

示例 29. 非标准许可证

阅读许可证条款,并使用可用权限进行翻译。

LICENSE=        UNKNOWN
LICENSE_NAME=   unknown
LICENSE_TEXT=   This program is NOT in public domain.\
                It can be freely distributed for non-commercial purposes only.
LICENSE_PERMS=  dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept

示例 30. 标准和非标准许可证

LICENSE=        WARSOW GPLv2
LICENSE_COMB=   multi
LICENSE_NAME_WARSOW=    Warsow Content License
LICENSE_FILE_WARSOW=    ${WRKSRC}/docs/license.txt
LICENSE_PERMS_WARSOW=   dist-mirror pkg-mirror auto-accept

当 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 会取消 permissions。最终的权限列表是 dist-mirror pkg-mirror auto-accept。发行文件和软件包将不会出现在安装映像中。

5.8.3. LICENSE_GROUPS 和 LICENSE_GROUPS_NAME

许可证所属的组。

预定义的许可证组列表

GPL 与 GPL 兼容

FONTS 字体许可证

5.8.4. LICENSE_NAME 和 LICENSE_NAME_NAME

许可证的完整名称。

示例 31. LICENSE_NAME

LICENSE=        UNRAR
LICENSE_NAME=   UnRAR License
LICENSE_FILE=   ${WRKSRC}/license.txt
LICENSE_PERMS=  dist-mirror dist-sell pkg-mirror pkg-sell auto-accept

5.8.5. LICENSE_FILE 和 LICENSE_FILE_NAME

示例 32. LICENSE_FILE

LICENSE=	GPLv3+
LICENSE_FILE=	${WRKSRC}/COPYING

5.8.6. LICENSE_TEXT 和 LICENSE_TEXT_NAME

作为许可证使用的文本。当许可证不在分发文件中且文本较短时很有用。

示例 33. LICENSE_TEXT

LICENSE=        UNKNOWN
LICENSE_NAME=   unknown
LICENSE_TEXT=   This program is NOT in public domain.\
                It can be freely distributed for non-commercial purposes only,\
                and THERE IS NO WARRANTY FOR THIS PROGRAM.
LICENSE_PERMS=  dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept

5.8.7. LICENSE_DISTFILES 和 LICENSE_DISTFILES_NAME

适用于的分发文件。默认为所有分发文件。

示例 34. LICENSE_DISTFILES

当分发文件并非全部适用同一许可证时使用。例如,一个文件有代码许可证,另一个文件包含不能重新分发的艺术作品:

MASTER_SITES=   SF/some-game
DISTFILES=      ${DISTNAME}${EXTRACT_SUFX} artwork.zip

LICENSE=        BSD3CLAUSE ARTWORK
LICENSE_COMB=   dual
LICENSE_NAME_ARTWORK=      The game artwork license
LICENSE_TEXT_ARTWORK=      The README says that the files cannot be redistributed
LICENSE_PERMS_ARTWORK=     pkg-mirror pkg-sell auto-accept
LICENSE_DISTFILES_BSD3CLAUSE=   ${DISTNAME}${EXTRACT_SUFX}
LICENSE_DISTFILES_ARTWORK= artwork.zip

5.8.8. LICENSE_COMB

如果所有许可证都适用,则设置为 multi。如果任意许可证适用,则设置为 dual。默认为 single。

示例 35. 双重许可证

当一个 Port 显示“此软件可以根据 GNU 通用公共许可证或艺术许可证进行分发”时,表示可以使用其中任何一个许可证。使用如下设置:

LICENSE=	ART10 GPLv1
LICENSE_COMB=   dual

如果提供了许可证文件,请使用如下设置:

LICENSE=	ART10 GPLv1
LICENSE_COMB=   dual
LICENSE_FILE_ART10=     ${WRKSRC}/Artistic
LICENSE_FILE_GPLv1=     ${WRKSRC}/Copying

示例 36. 多个许可证

当一个 Port 的一部分使用一个许可证,而另一部分使用不同的许可证时,使用 multi:

LICENSE=	GPLv2 LGPL21+
LICENSE_COMB=	multi

SIL 开源字体许可证版本 1.0 ()

SIL 开源字体许可证版本 1.1 ()

no-dist-mirror 禁止分发发行文件。这等同于设置 。发行文件将 不会 添加到 FreeBSD MASTER_SITE_BACKUP CDN。

no-dist-sell 禁止出售发行文件。这等同于设置 。

pkg-mirror 允许自由分发软件包。该软件包将分发到 FreeBSD 软件包 CDN 。

no-pkg-mirror 禁止自由分发软件包。等同于设置 。该软件包将 不会 从 FreeBSD 软件包 CDN 分发。

no-pkg-sell 禁止出售软件包。这等同于设置 。该软件包将 不会 出现在安装映像中。

阅读许可证条款,并使用可用权限进行表达。如果有疑问,请在 上请求指导。

FSF Free Software Foundation 批准,见 。

OSI OSI 批准,见 Open Source Initiative 的 页面。

COPYFREE 符合 Copyfree 标准定义,见 页面。

包含许可证文本的文件的完整路径,通常是 ${WRKSRC}/some/file。如果文件不在分发包中,且其内容太长,无法放在 中,请将其放入 ${FILESDIR} 中的新文件。

预定义许可证列表
预定义许可证列表
预定义许可证列表
RESTRICTED
NO_CDROM
https://pkg.freebsd.org/
NO_PACKAGE
https://pkg.freebsd.org/
NO_CDROM
FreeBSD Ports 邮件列表
FSF Licensing & Compliance Team
Open Source Licenses
Copyfree Licenses
LICENSE_TEXT
https://scripts.sil.org/OFL/
https://scripts.sil.org/OFL/