Home Opensource License
Post
Cancel

Opensource License

一、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

image-20210105144454851

This post is licensed under CC BY 4.0 by the author.