5.8.许可证

每一个 port 都必须记录它所使用的许可证。如果它不是 OSI 批准的许可证, 也必须记录对再分发的任何限制。

5.8.1. 许可证

如果适用一个以上的许可证,一个或多个许可证的短名称。

如果是预定义许可证列表中列出的许可证之一,只能设置 LICENSE_FILELICENSE_DISTFILES 变量。

如果这是一个没有在 ports 框架中定义的许可证 (参见 预定义许可证列表), 则必须设置 LICENSE_PERMSLICENSE_NAME, 以及 LICENSE_FILELICENSE_TEXTLICENSE_DISTFILESLICENSE_GROUPS 也可以被设置, 但不是必须的。

预定义的许可证显示在 Predefined License List 中。当前的列表总是在 Mk/bsd.licenses.db.mk 中可用。

例32. 最简单的用法,预定义的许可证

当某些软件的 README 说 "本软件采用自由软件基金会发布的 GNU Lesser General Public License 的条款;或者是 2.1 版本的 License,或者(由你选择)任何更高的版本。"但没有提供许可证文件,使用这个:

LICENSE=	LGPL21+

当软件提供许可证文件时,使用这个:

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

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

表7. 预定义许可证列表

Short NameNameGroupPermissions

AGPLv3

GNU Affero General Public License version 3

FSF GPL OSI

(default)

AGPLv3+

GNU Affero General Public License version 3 (or later)

FSF GPL OSI

(default)

APACHE10

Apache License 1.0

FSF

(default)

APACHE11

Apache License 1.1

FSF OSI

(default)

APACHE20

Apache License 2.0

FSF OSI

(default)

ART10

Artistic License version 1.0

OSI

(default)

ART20

Artistic License version 2.0

FSF GPL OSI

(default)

ARTPERL10

Artistic License (perl) version 1.0

OSI

(default)

BSD

BSD license Generic Version (deprecated)

FSF OSI COPYFREE

(default)

BSD2CLAUSE

BSD 2-clause "Simplified" License

FSF OSI COPYFREE

(default)

BSD3CLAUSE

BSD 3-clause "New" or "Revised" License

FSF OSI COPYFREE

(default)

BSD4CLAUSE

BSD 4-clause "Original" or "Old" License

FSF

(default)

BSL

Boost Software License

FSF OSI COPYFREE

(default)

CC-BY-1.0

Creative Commons Attribution 1.0

(default)

CC-BY-2.0

Creative Commons Attribution 2.0

(default)

CC-BY-2.5

Creative Commons Attribution 2.5

(default)

CC-BY-3.0

Creative Commons Attribution 3.0

(default)

CC-BY-4.0

Creative Commons Attribution 4.0

(default)

CC-BY-NC-1.0

Creative Commons Attribution Non Commercial 1.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-2.0

Creative Commons Attribution Non Commercial 2.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-2.5

Creative Commons Attribution Non Commercial 2.5

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-3.0

Creative Commons Attribution Non Commercial 3.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-4.0

Creative Commons Attribution Non Commercial 4.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-ND-1.0

Creative Commons Attribution Non Commercial No Derivatives 1.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-ND-2.0

Creative Commons Attribution Non Commercial No Derivatives 2.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-ND-2.5

Creative Commons Attribution Non Commercial No Derivatives 2.5

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-ND-3.0

Creative Commons Attribution Non Commercial No Derivatives 3.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-ND-4.0

Creative Commons Attribution Non Commercial No Derivatives 4.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-SA-1.0

Creative Commons Attribution Non Commercial Share Alike 1.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-SA-2.0

Creative Commons Attribution Non Commercial Share Alike 2.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-SA-2.5

Creative Commons Attribution Non Commercial Share Alike 2.5

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-SA-3.0

Creative Commons Attribution Non Commercial Share Alike 3.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-NC-SA-4.0

Creative Commons Attribution Non Commercial Share Alike 4.0

dist-mirrorpkg-mirrorauto-accept

CC-BY-ND-1.0

Creative Commons Attribution No Derivatives 1.0

(default)

CC-BY-ND-2.0

Creative Commons Attribution No Derivatives 2.0

(default)

CC-BY-ND-2.5

Creative Commons Attribution No Derivatives 2.5

(default)

CC-BY-ND-3.0

Creative Commons Attribution No Derivatives 3.0

(default)

CC-BY-ND-4.0

Creative Commons Attribution No Derivatives 4.0

(default)

CC-BY-SA-1.0

Creative Commons Attribution Share Alike 1.0

(default)

CC-BY-SA-2.0

Creative Commons Attribution Share Alike 2.0

(default)

CC-BY-SA-2.5

Creative Commons Attribution Share Alike 2.5

(default)

CC-BY-SA-3.0

Creative Commons Attribution Share Alike 3.0

(default)

CC-BY-SA-4.0

Creative Commons Attribution Share Alike 4.0

(default)

CC0-1.0

Creative Commons Zero v1.0 Universal

FSF GPL COPYFREE

(default)

CDDL

Common Development and Distribution License

FSF OSI

(default)

CPAL-1.0

Common Public Attribution License

FSF OSI

(default)

ClArtistic

Clarified Artistic License

FSF GPL OSI

(default)

EPL

Eclipse Public License

FSF OSI

(default)

GFDL

GNU Free Documentation License

FSF

(default)

GMGPL

GNAT Modified General Public License

FSF GPL OSI

(default)

GPLv1

GNU General Public License version 1

FSF GPL OSI

(default)

GPLv1+

GNU General Public License version 1 (or later)

FSF GPL OSI

(default)

GPLv2

GNU General Public License version 2

FSF GPL OSI

(default)

GPLv2+

GNU General Public License version 2 (or later)

FSF GPL OSI

(default)

GPLv3

GNU General Public License version 3

FSF GPL OSI

(default)

GPLv3+

GNU General Public License version 3 (or later)

FSF GPL OSI

(default)

GPLv3RLE

GNU GPL version 3 Runtime Library Exception

FSF GPL OSI

(default)

GPLv3RLE+

GNU GPL version 3 Runtime Library Exception (or later)

FSF GPL OSI

(default)

ISCL

Internet Systems Consortium License

FSF GPL OSI COPYFREE

(default)

LGPL20

GNU Library General Public License version 2.0

FSF GPL OSI

(default)

LGPL20+

GNU Library General Public License version 2.0 (or later)

FSF GPL OSI

(default)

LGPL21

GNU Lesser General Public License version 2.1

FSF GPL OSI

(default)

LGPL21+

GNU Lesser General Public License version 2.1 (or later)

FSF GPL OSI

(default)

LGPL3

GNU Lesser General Public License version 3

FSF GPL OSI

(default)

LGPL3+

GNU Lesser General Public License version 3 (or later)

FSF GPL OSI

(default)

LPPL10

LaTeX Project Public License version 1.0

FSF OSI

dist-mirror dist-sell

LPPL11

LaTeX Project Public License version 1.1

FSF OSI

dist-mirror dist-sell

LPPL12

LaTeX Project Public License version 1.2

FSF OSI

dist-mirror dist-sell

LPPL13

LaTeX Project Public License version 1.3

FSF OSI

dist-mirror dist-sell

LPPL13a

LaTeX Project Public License version 1.3a

FSF OSI

dist-mirror dist-sell

LPPL13b

LaTeX Project Public License version 1.3b

FSF OSI

dist-mirror dist-sell

LPPL13c

LaTeX Project Public License version 1.3c

FSF OSI

dist-mirror dist-sell

MIT

MIT license / X11 license

COPYFREE FSF GPL OSI

(default)

MPL10

Mozilla Public License version 1.0

FSF OSI

(default)

MPL11

Mozilla Public License version 1.1

FSF OSI

(default)

MPL20

Mozilla Public License version 2.0

FSF OSI

(default)

NCSA

University of Illinois/NCSA Open Source License

COPYFREE FSF GPL OSI

(default)

NONE

No license specified

none

OFL10

SIL Open Font License version 1.0 (https://scripts.sil.org/OFL/)

FONTS

(default)

OFL11

SIL Open Font License version 1.1 (https://scripts.sil.org/OFL/)

FONTS

(default)

OWL

Open Works License (owl.apotheon.org)

COPYFREE

(default)

OpenSSL

OpenSSL License

FSF

(default)

PD

Public Domain

GPL COPYFREE

(default)

PHP202

PHP License version 2.02

FSF OSI

(default)

PHP30

PHP License version 3.0

FSF OSI

(default)

PHP301

PHP License version 3.01

FSF OSI

(default)

PSFL

Python Software Foundation License

FSF GPL OSI

(default)

PostgreSQL

PostgreSQL License

FSF GPL OSI COPYFREE

(default)

RUBY

Ruby License

FSF

(default)

UNLICENSE

The Unlicense

COPYFREE FSF GPL

(default)

WTFPL

Do What the Fuck You Want To Public License version 2

GPL FSF COPYFREE

(default)

WTFPL1

Do What the Fuck You Want To Public License version 1

GPL FSF COPYFREE

(default)

ZLIB

zlib License

GPL FSF OSI

(default)

ZPL21

Zope Public License version 2.1

GPL OSI

(default)

5.8.2. LICENSE_PERMSLICENSE_PERMS_NAME_

权限。如果为空,则使用无。

许可证权限列表

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-pkg-mirror

禁止免费重新分发软件包。相当于设置 NO_PACKAGE。这个软件包将不会从 FreeBSD 软件包 CDN https://pkg.freebsd.org/ 上发布。

pkg-sell

出售软件包是允许的。该软件包将出现在安装程序的图像上。

no-pkg-sell

禁止出售软件包。这等同于设置 NO_CDROM 。该软件包将不会出现在安装程序的镜像上。

auto-accept

默认接受许可证。除非用户定义了 LICENSES_ASK,否则不显示接受许可证的提示。除非许可证规定用户必须接受许可证的条款,否则使用这个。

no-auto-accept

许可证在默认情况下是不被接受的。用户将始终被要求确认接受该许可证。如果许可证规定用户必须接受其条款,则必须使用该选项。

当权限和无权限同时存在时,无权限将取消权限。

警告

一些缺失的权限会使一个 Port (以及所有依赖于它的 Port ) 不能被软件包用户使用:

没有自动接受权限的 Port 将永远不会被建立, 所有依赖于它的 Port 都将被忽略。

没有 pkg-mirror 权限的 port 会在联编后被删除, 以及所有依赖它的 port, 它们最终都会被分发。

例33. 非标准的许可证

阅读许可证的条款,并使用可用的权限来翻译这些条款。

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

例34. 标准和非标准的许可证

阅读许可证的条款, 并使用可用的权限来表达这些条款。如果有疑问, 请在 FreeBSD ports 邮件列表 中寻求指导。

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 automatic-accept。no-permissions取消了这些权限。由此产生的权限列表是 dist-mirror pkg-mirror auto-accept。分发文件和软件包将不能在安装程序镜像上使用。

5.8.3. LICENSE_GROUPS 和 LICENSE_GROUPS_NAME

许可证所属组别。

预定义许可证组列表

FSF

自由软件基金会批准,请参见FSF许可与合规团队。

GPL

与 GPL 兼容

OSI

OSI批准的,请看开放源码倡议的开放源码许可证页面。

COPYFREE

符合 Copyfree 标准定义,见 Copyfree 许可证页面。

FONTS

字体许可证

5.8.4. LICENSE_NAME 和 LICENSE_NAME_NAME

许可证的全名。

例35. 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

包含许可证文本的文件的完整路径, 通常是 ${WRKSRC}/some/file。如果该文件不在 distfile 中, 而且其内容太长而无法放入 LICENSE_TEXT, 则应将其放入 ${FILESDIR} 中的一个新文件。

例36. LICENSE_FILE

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

5.8.6. LICENSE_TEXT 和 LICENSE_TEXT_NAME

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

例37. 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

许可证所适用的分发文件。默认为所有的分发文件。

例38. 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

如果所有许可证都适用,则设置为多许可证。如果适用任何许可证,则设置为双倍。默认为单一。

例39. 双重许可证

当一个 port 说 "这个软件可以在 GNU General Public License 或 Artistic License 下发布 "时, 它意味着可以使用任何一种许可证。使用这个:

LICENSE=	ART10 GPLv1
LICENSE_COMB=   dual

如果提供了许可证文件,请使用这个:

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

例40. 多个许可证

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

LICENSE=	GPLv2 LGPL21+
LICENSE_COMB=	multi

最后更新于

FreeBSD 中文社区