项目开源许可证合规基本要求

123 阅读5分钟

一、目的

公司在对内或对外发布的产品及服务中使用开源软件,需要遵守开源许可证的合规要求。为了帮助同学们识别合规义务,本文档列出了常用开源许可证、类型及基本合规要求。

二、适用

本文档适用于公司不拥有著作权的开源或第三方代码、二进制文件或数据(“代码”)等。

三、许可证合规基本要求

```

  • 对外分发的软件中包含的开源软件应使用本部分2-4列出的许可证并履行合规义务。如果有问题,请联系opensource-legal@bytedance.com。 - 如使用本部分2-4节中未列明的许可证或者需要寻求许可证例外,参见第四部分《许可证合规评估流程》。

表1列明了公司对外发布的软件或服务中不允许使用的许可证类型。这些许可证主要存在以下问题:不允许商用、许可证的条款模糊、许可证规定了公司难以遵守的义务等。

表1:

| **简称(SPDX-Identifier )** | **全称或者子类别**                                  | 内部使用 | 外部使用:提供服务 | 外部使用:提供软件 | 说明                                                                   |
| ------------------------ | -------------------------------------------- | ---- | --------- | --------- | -------------------------------------------------------------------- |
| AGPL-3.0                 | GNU Affero General Public License v3.0       | √    | ×         | ×         | 1.  AGPL属于强互惠型许可证。-   如果可以通过远程网络接口访问产品或服务,触发开源义务。
-   在分发软件时,触发开源义务。 |
| SSPL-1.0                 | Server Side Public License, v 1              | √    | ×         | ×         | 1.  原因同AGPL。                                                         |
| CPAL-1.0                 | Common Public Attribution License 1.0        | √    | ×         | ×         | 1.  原因同AGPL。                                                         |
| EUPL-1.1                 | European Union Public License 1.1            | √    | ×         | ×         | 1.  原因同AGPL。                                                         |
| Commons Clause           | Commons Clause                               | ×    | ×         | ×         | 1.  本许可证不允许商用。
1.  很难争辩公司使用开源软件的行为不属商用。                              |
| Non-Commercial           | 具体包括:CC BY-NC, CC BY-NC-SA, CC BY-NC-ND      | ×    | ×         | ×         | 1.  此类许可证均不允许商用,
1.  很难争辩公司的任何行为不是出于商业目的。                            |
| SISSL                    | Sun Industry Standards Source License v1.1   | ×    | ×         | ×         | 1.  本许可证合规要求过于严格,很难满足。
1.  Sun也已经停止使用该许可证。                           |
| Watcom-1.0               | Sybase Open Watcom Public License 1.0        | ×    | ×         | ×         | 1.  专利限制太强:对Sybase或贡献者提起专利诉讼均会导致许可终止。                                |
| WTFPL                    | Do What The F*ck You Want To Public License | ×    | ×         | ×         | 1.  本许可证没有不担保条款。
1.  授权不清晰。                                          |

## 2. 限制型许可证,也称互惠型许可证

表2列明了在对外分发的客户端及嵌入式软件中不允许使用的许可证。如果独立程序中包含采用此类许可证的代码,依据许可证的要求,公司可能需要提供整个程序的源代码。

表2:

| **简称**                           | **全称或者子类别**                                           | 内部使用 | 外部使用仅提供服务 | 外部使用客户端 | 外部使用私有部署 | 关于○的说明                                                                                         |
| -------------------------------- | ----------------------------------------------------- | ---- | --------- | ------- | -------- | ---------------------------------------------------------------------------------------------- |
| CC-BY-SA                         | Creative Commons Attribution ShareAlike               | √    | √         | ×       | ○        | 采用此类许可证的组件如用于私有部署,需要经过批准:1.  该组件是否可以按照许可证的规定披露相关源代码给用户
1.  部署方式是否会导致其他组件承担开源义务。其他外部使用方式需要另行确认。 |
| CC-BY-ND                         | Creative Commons Attribution No Derivatives           | √    | √         | ×       | ○        |                                                                                                |
| GPL                              | GNU General Public LicenseGPL-1.0,GPL-2.0,GPL-3.0     | √    | √         | ×       | ○        |                                                                                                |
| GPL-2.0-with-classpath-exception | GNU General Public License v2.0 w/Classpath exception | √    | √         | ×       | ○        |                                                                                                |
| LGPL(静态链接)                       | GNU Lesser General Public LicenseLGPL-2.1,LGPL-3.0    | √    | √         | ×       | ○        |                                                                                                |
| NPL                              | Netscape Public LicenseNPL-1.0, NPL-1.1               | √    | √         | ×       | ○        |                                                                                                |
| OSL                              | Open Software License                                 | √    | √         | ×       | ○        |                                                                                                |
| QPL-1.0                          | Q Public License 1.0                                  | √    | √         | ×       | ○        |                                                                                                |
| Sleepycat                        | Sleepycat License                                     | √    | √         | ×       | ○        |                                                                                                |

## 3. 弱限制型许可证,也称弱互惠型许可证

表3列明了一些弱限制性的许可证。如果公司交付的软件中包含适用此类许可证的源代码,可能需要向软件接受方提供该源代码、相应的修改及添加。

表3:

| **简称**     | **全称或者子类别**                                              | 内部使用 | 外部使用 | 说明                                                            |
| ---------- | -------------------------------------------------------- | ---- | ---- | ------------------------------------------------------------- |
| CDDL-1.0   | Common Development and Distribution License 1.0          | √    | √    | 可能需要承担开源义务:一般而言,是库本身的内容,以及对该库的任何添加或修改。需要确认开源义务是否可以满足,再决定是否使用。 |
| CeCILL-2.0 | CeCILL Free Software License Agreement v2.0              | √    | √    |                                                               |
| CPL-1.0    | Common Public License 1.0                                | √    | √    |                                                               |
| EPL        | Eclipse Public LicenseEPL-1.0 and EPL-2.0                | √    | √    |                                                               |
| IPL-1.0    | IBM Public License v1.0                                  | √    | √    |                                                               |
| MPL        | Mozilla Public LicenseMPL-1.0, MPL-1.1, and MPL-2.0      | √    | √    |                                                               |
| APSL-2.0   | Apple Public Source License 2.0                          | √    | √    |                                                               |
| LGPL       | GNU Lesser General Public LicenseLGPL 2.1, LGPL-3 (动态链接) | √    | √    |                                                               |
| Ruby       | Ruby License                                             | √    | √    |                                                               |

## 4. 声明型许可证

表4中的许可证对公司分发的软件中的源代码没有限制,但是需要包含许可证中列明的“原始版权声明”或“广告条款”。

表4

| **简称**              | **全称或者子类别**                                                                           | 内部使用 | 外部使用 |
| ------------------- | ------------------------------------------------------------------------------------- | ---- | ---- |
| AFL                 | Academic Free LicenseAFL 2.1, AFL 3.0                                                 | √    | √    |
| Apache              | Apache LicenseApache-1.1 and Apache-2.0                                               | √    | √    |
| Artistic            | Artistic LicenseArtistic-1.0 and Artistic-2.0                                         | √    | √    |
| BSL-1.0             | Boost Software License 1.0                                                            | √    | √    |
| BSD-2-Clause        | BSD 2-Clause "Simplified" License                                                     | √    | √    |
| BSD-3-clause        | BSD 3-Clause "New" or "Revised" License                                               | √    | √    |
| BSD-2-Clause-Patent | BSD-2-Clause Plus Patent License                                                      | √    | √    |
| CC BY               | Creative Commons Attribution GenericCC-BY-1.0,CC-BY-2.0,CC-BY-2.5,CC-BY-3.0,CC-BY-4.0 | √    | √    |
| JSON                | JSON License                                                                          | √    | √    |
| EDL-1.0             | Eclipse Distribution License - v 1.0                                                  | √    | √    |
| FTL                 | Freetype Project License                                                              | √    | √    |
| ICU                 | ICU License                                                                           | √    | √    |
| ISC License         | ISC                                                                                   | √    | √    |
| LibTIFF             | libtiff License                                                                       | √    | √    |
| LPL 1.02            | Lucent Public License v1.02                                                           | √    | √    |
| MS-PL               | Microsoft Public License                                                              | √    | √    |
| Mulan PSL 2.0       | Mulan Permissive Software License, Version 2                                          | √    | √    |
| MIT/X11/Expat       | MIT License                                                                           | √    | √    |
| NCSA                | University of Illinois/NCSA Open Source License                                       | √    | √    |
| OpenSSL             | OpenSSL License                                                                       | √    | √    |
| PHP-3.0             | PHP License v3.0                                                                      | √    | √    |
| PIL                 | Python Imaging Library License                                                        | √    | √    |
| PostgreSQL          | PostgreSQL License                                                                    | √    | √    |
| PSF-2.0             | Python Software Foundation License 2.0                                                | √    | √    |
| TCP Wrappers        | TCP Wrappers License                                                                  | √    | √    |
| Unicode-DFS         | Unicode License Agreement - Data Files and Software                                   | √    | √    |
| UPL-1.0             | Universal Permissive License v1.0                                                     | √    | √    |
| W3C                 | W3C® SOFTWARE NOTICE AND LICENSE                                                      | √    | √    |
| XNet                | X.Net License                                                                         | √    | √    |
| zlib/libpng         | zlib License                                                                          | √    | √    |
| ZPL-2.0             | Zope Public License 2.0                                                               | √    | √    |

# 四、许可证合规评估流程

如果需要评估第三部分未列出的许可证,请联系opensource-legal@bytedance.com。POC@孙振华 会建立Lark群进行进一步讨论。邮件模板见下:

邮件标题为: [Confidential & Privileged]开源评估:关于[填入需要评估的软件]的评估

邮件正文需要列明:

  1. 产品/项目及介绍文档:

  2. 评估需求:

  3. 开源软件使用场景:客户端/服务端/前端/算法模型/私有部署

  4. 开源软件的信息:

  • 名称:

  • 版本号:

  • 发布日期:

  • 开源协议名称及版本:

  • 官方地址:

  • Github地址:

  • 如该组件有依赖需要一并列出所有依赖的上述信息: