本文看了五个最常见的开源协议及其适用范围,供准备开源或开源产品的开发者/制造商参考。
BSD开源协议
BSD开源协议是给用户很大自由的协议。 使用者基本上可以“做自己想做的事”,可以自由使用,修改源代码,并将修改后的代码作为开源或专有软件重新分发。
但是,以“想做的事”为前提的有魅力的自行车,在发行使用BSD协议的代码或者以BSD协议代码为基础进行二次本公司产品开发时,必须满足以下三个条件。
如果重新分发的产品包含源代码,则源代码中必须包含原始代码的BSD协议。
如果只重新分发二进制库/软件,则库/软件的文档和版权声明必须包含原始代码的BSD协议。
不得以开放源代码作者/机构名称和原始产品的名称进行营销。
BSD代码鼓励共享代码,但必须尊重代码作者的版权。 BSD是一种业务集成友好的协议,用户可以修改并重新发布代码,或者在BSD代码上使用、开发和销售业务软件。 许多企业在选择开源产品时首选BSD协议。 您可以完全控制这些第三方代码,因此可以根据需要修改或进行二次开发。
Apache Licence 2.0
Apache Licence是著名的非营利开源组织Apache采用的协议。 该协议与BSD类似,同样鼓励共享代码和尊重原作者的版权,同样允许修改代码后发布(作为开源或商业软件)。 必须满足的条件也与BSD类似:
必须将Apache Licence传递给代码的用户
修改代码后,必须在修改后的文件中进行说明。
扩展的代码必须包括原始代码中包含的协议、商标、专利声明以及其他原始作者必须包含的说明。
如果重新发布的产品包含Notice文件,则Notice文件必须包含Apache Licence。 您可以将自己的许可证添加到Notice,但不能将其表示为对Apache Licence的配置更改。
Apache Licence也是商务APP应用程序友好的许可证。 使用者还可以根据需要修改代码以满足需求,并作为开源或商业产品发布/销售。
GPL
我们熟悉的Linux是采用了GPL。 GPL协议和BSD、Apache Licence等鼓励代码复用的许可证有很大不同。 GPL的出发点是代码的开源/免费使用和引用/修改/派生代码的开源/免费使用,但是不允许将修改后和派生代码作为封闭源代码的商业软件公开销售。 因此,我们现在可以使用各种免费的linux,包括商业公司的linux和linux上不同的个人、组织和商业软件公司开发的自由软件。
如果GPL协议的主要内容是在一个软件中使用“使用”GPL协议(指向类库引用、修改的代码或派生代码)的产品,则该软件产品也必须采用GPL协议,并且开源和免费这就是所谓的“传染性”。 GPL合同的产品作为单独的产品使用也没有任何问题,还可以享受免费的好处。
由于GPL严格要求在使用GPL类库的软件产品中使用GPL协议,因此在使用GPL协议的开源代码的情况下,对商用软件和代码有保密要求的部门,需要掌握类库和二次开发的基础和
关于其他的详细情况,在再发行时需要伴随GPL协议等,与BSD/Apache等类似。
LGPL
LGPL是GPL的开源协议,主要是为了类库的使用而设计的。 对于需要GPL使用/修改/派生的GPL类库的软件,必须采用GPL协议。 LGPL允许业务软件在类库引用link方法中使用LGPL类库,而不需要开源业务软件的代码。 这样,业务软件就可以将采用LGPL协议的开源代码作为类库进行引用并公开销售。
但是,修改LGPL协议的代码或派生代码时,所有修改的代码、与修改部分相关的附加代码和派生代码都必须采用LGPL协议。 因此,LGPL协议的开放源代码适合作为第三方类库被业务软件引用,但不适合希望基于LGPL协议代码进行修改和派生二次开发的业务软件
GPL/LGPL均保障原作者的知识产权,避免有人利用开源代码复制开发类似产品。
MIT
MIT和BSD一样是广泛的许可协议,作者只保留版权,没有其他限制。 这意味着,无论是以二进制形式公开还是以源代码形式公开,发行版都必须包含原始许可协议的声明。