一、CDLL license
```c /*
- CDDL HEADER START *
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the “License”).
- You may not use this file except in compliance with the License. *
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License. *
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets “[]” replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner] *
- CDDL HEADER END */
静态/动态链接,自研代码部分均不感染~ 但是对CDDL开源软件本身的修改,必须以CDDL开源.
1、 CDDL 与 GPL不兼容
https://fedoraproject.org/wiki/Licensing/CDDL
The Common Development and Distribution License (CDDL) version 1.0 is a Free license, but it was intentionally drafted by Sun in such a way as to make it GPL (v2 and v3) incompatible. A copy of this license was taken from https://netbeans.org/cddl-gplv2.html on Wednesday, August 21, 2013. It was previously available at http://www.opensolaris.org/os/licensing/cddllicense.txt, but that link has been removed by Oracle.
(1)GPL
软件本身须开源。 具有传染性,与其有链接关系的代码都必须以GPL许可对外开源,即与该软件在同一进程中运行的代码都必须开源.
GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
(2) CDDL
静态/动态链接,自研代码部分均不感染~ 但是对CDDL开源软件本身的修改,必须以CDDL开源
如果GPL license的软件要引用CDDL license的软件,如果无法做到进程隔离,那么CDDL license被要求以GPL的license开源,与CDDL的本身的license要求冲突,导致不兼容。
2、 CDDL与LGPL的兼容,只能动态库引用,使用时不做任何修改
3、CDDL与商业友好license 例如BSD兼容,使用时不做任何修改
4、CDDL与自研代码可能存在兼容风险, 如果自研代码没有使用GPL(进程隔离),可以直接使用。
二 LICENSE对比
见许可证类型 | 典型软件 | 触发代码开源义务前提条件 | 开源要求和范围 | 规避开源方式 |
---|---|---|---|---|
BSD类如Apache/BSD/MIT等 | Tomcat,OpenSSL | 无 | 无 | 不涉及 |
MPL类如:MPL/EPL等 | FireFox,Eclipse | 产品集成使用该软件,并对外分发或销售产品对该软件进行了修改 | 若无修改,则无需开源若对其进行了修改,需将修改的部分开源 | 使用时不做任何修改 |
LGPL | Hibernate,glibc | 产品集成使用该软件,并对外分发或销售 | 软件本身须开源。 具有传染性,与其静态链接部分的代码也必须以LGPL许可开源;动态链接则不被传染。若对其进行修改,若修改后增加的功能实现依赖于产品软件的数据或功能,则产品代码也会被传染。 | 动态链接使用,仅开源其软件本身即可,产品代码可免受传染。 |
GPL | Busybox,linux kernel | 产品集成使用该软件,并对外分发或销售 | 软件本身须开源。 具有传染性,与其有链接关系的代码都必须以GPL许可对外开源,即与该软件在同一进程中运行的代码都必须开源 | 进程隔离,独立于产品进程运行,仅开源其软件本身即可,产品代码可免受传染 |
AGPL | Berkeley_DB | 产品集成使用该软件 | 在GPL上增加了一条限制:即便不对外分发,只要在网络服务器上使用AGPL软件提供网络服务,就需要履行相关开源义务。例如: Berkeley_DB,即使没有“分发”动作,通过WEB形式为用户提供服务,也要履行对外开源义务。 | 同GPL |