您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    技术分享 | 如何为你的代码选择一个适宜的开源协议?(2)
    时间:2021-08-23 12:39 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    LGPL是GPL的一个主要为类库运用设计的开源协议。和 GPL要求任何运用/修正/衍生之GPL类库的的软件必须采用GPL协议 不同,LGPL 允许商业软件经过类库援用(link)方式运用LGPL类库而不需求开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库援用并发布和销售。

    但是假设修正LGPL协议的代码或许衍生,则一切修正的代码,触及修正部分的额外代码和衍生的代码都必须采用LGPL协议,因此,LGPL协议的开源代码很适宜作为第三方类库被商业软件援用,但不适宜希望以LGPL协议代码为基础,经过修正和衍生的方式做二次开发的商业软件采用。

    GPL/LGPL都保障原作者的知识产权,避免有人应用开源代码复制并开发相似的产品。

    GPL

    GPL(GNU GENERAL PUBLIC LICENSE)来源于自在软件联盟GNU,GPL/LGPL侧重于代码及衍生代码的开源与无偿运用。

    GPL协议的主要内容是只需在一个软件中运用(”运用”指类库援用,修正后的代码或许衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和收费。 这就是所谓的”传染性” 。

    由于GPL严厉要求运用了GPL类库的软件产品必须运用GPL协议,关于运用GPL协议的开源代码,商业软件或许对代码有保密要求的部门就不适宜集成/采用作为类库和二次开发的基础。

    我们很熟习的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓舞代码重用的容许很不一样。GPL的动身点是 代码的开源/无偿运用/援用/修正 和 衍生代码的开源/无偿运用 ,但 不允许 修正后和衍生的代码做为 闭源 的商业软件发布和销售。

    其它细节和BSD/Apache等协议相似。

    代表作品:

    Linux

    更多开源协议比照

    下方表格中出现的用词的解释:

    协议和版权信息 (License and copyright notice):在代码中保留作者提供的协议和版权信息。

    声明变更 (State Changes):在代码中声明对原来代码的严重修正及变更。

    地下源码 (Disclose Source):代码必需地下。

    库援用 (Library usage):该库可以用于商业软件中。

    责任承当 (Hold Liable):代码的作者承当代码运用后的风险及产生的结果。假设制止,那么作者将不会承当责任,可以了解为免责条款。

    商标运用 (Use Trademark):可以运用作者的姓名,作品的Logo,或商标。

    附加协议 (Sublicensing):允许在软件分发传达进程中附加上原来没有的协议条款等。

    协议 描画 要求 允许 制止
    Apache   一个比较宽松且简明地指出了专利授权的协议。   1. \(\color{#0000FF}{协议和版权信息}\)
    2. \(\color{#0000FF}{声明变更}\)
      1. \(\color{#00EE00}{商用}\)
    2. \(\color{#00EE00}{分发}\)
    3. \(\color{#00EE00}{修正}\)
    4. \(\color{#00EE00}{专利授权}\)
    5. \(\color{#00EE00}{私用}\)
    6. \(\color{#00EE00}{附加协议}\)
      1. \(\color{#FF3030}{责任承当}\) (作者免责)
    2. \(\color{#FF3030}{商标运用}\)
     
    GPL   运用最普遍的开源协议,拥有较强的版权自在(copyleft)要求。
    衍生代码的分发需开源并且也要遵守此协议。
    此协议有许多变种,不同变种的要求略有不同。
      1. \(\color{#0000FF}{地下源码}\)
    2. \(\color{#0000FF}{协议和版权信息}\)
    3. \(\color{#0000FF}{声明变更}\)
      1. \(\color{#00EE00}{商用}\)
    2. \(\color{#00EE00}{分发}\)
    3. \(\color{#00EE00}{修正}\)
    4. \(\color{#00EE00}{专利授权}\)
    5. \(\color{#00EE00}{私用}\)
      1. \(\color{#FF3030}{责任承当}\)
    2. \(\color{#FF3030}{附加协议}\)
     
    MIT   此协议宽松复杂。在适当标明来源及免责的状况下,它允许你对代码停止任何方式的运用。   1. \(\color{#0000FF}{协议和版权信息}\)   1. \(\color{#00EE00}{商用}\)
    2. \(\color{#00EE00}{分发}\)
    3. \(\color{#00EE00}{修正}\)
    4. \(\color{#00EE00}{私用}\)
    5. \(\color{#00EE00}{附加协议}\)
      1. \(\color{#FF3030}{责任承当}\)  
    Artistic   Perl社区最溺爱此协议。要求更改后的软件不能影响原软件的运用。   1. \(\color{#0000FF}{协议和版权信息}\)
    2. \(\color{#0000FF}{声明变更}\)
      1. \(\color{#00EE00}{商用}\)
    2. \(\color{#00EE00}{分发}\)
    3. \(\color{#00EE00}{修正}\)
    4. \(\color{#00EE00}{私用}\)
    5. \(\color{#00EE00}{附加协议}\)
      1. \(\color{#FF3030}{责任承当}\)
    2. \(\color{#FF3030}{商标运用}\)
     
    BSD   较为宽松的协议,有两个变种 BSD 2-Clause 和 BSD 3-Clause ,两者都与MIT协议只存在纤细差异。   1. \(\color{#0000FF}{协议和版权信息}\)   1. \(\color{#00EE00}{商用}\)
    2. \(\color{#00EE00}{分发}\)
    3. \(\color{#00EE00}{修正}\)
    4. \(\color{#00EE00}{私用}\)
    5. \(\color{#00EE00}{附加协议}\)
      1. \(\color{#FF3030}{责任承当}\)  
    Eclipse   对商用十分友好的协议,可以用于软件的商业授权。包含对专利的优雅授权,也可以对相关代码运用商业协议。   1. \(\color{#0000FF}{地下源码}\)
    2. \(\color{#0000FF}{协议和版权信息}\)
      1. \(\color{#00EE00}{商用}\)
    2. \(\color{#00EE00}{分发}\)
    3. \(\color{#00EE00}{修正}\)
    4. \(\color{#00EE00}{专利授权}\)
    5. \(\color{#00EE00}{私用}\)
    6. \(\color{#00EE00}{附加协议}\)
      1. \(\color{#FF3030}{责任承当}\)  
    LGPL   主要用于一些代码库。衍生代码可以以此协议发布(也可以用其他协议),但与此协议相关的代码必需遵照此协议。   1. \(\color{#0000FF}{地下源码}\)
    2. \(\color{#0000FF}{库援用}\)
    3. \(\color{#0000FF}{协议和版权信息}\)
      1. \(\color{#00EE00}{商用}\)
    2. \(\color{#00EE00}{分发}\)
    3. \(\color{#00EE00}{修正}\)
    4. \(\color{#00EE00}{专利授权}\)
    5. \(\color{#00EE00}{私用}\)
    6. \(\color{#00EE00}{附加协议}\)
      1. \(\color{#FF3030}{责任承当}\)  
    Mozilla   Mozilla Public License(MPL 2.0)是由Mozilla基金创立维护的,旨在较为宽松的BSD协议和愈加互惠的GPL协议中找一个折衷点。   1. \(\color{#0000FF}{地下源码}\)
    2. \(\color{#0000FF}{协议和版权信息}\)
      1. \(\color{#00EE00}{商用}\)
    2. \(\color{#00EE00}{分发}\)
    3. \(\color{#00EE00}{修正}\)
    4. \(\color{#00EE00}{专利授权}\)
    5. \(\color{#00EE00}{私用}\)
    6. \(\color{#00EE00}{附加协议}\)
      1. \(\color{#FF3030}{责任承当}\)
    2. \(\color{#FF3030}{商标运用}\)
     
    No license   作者保留一切权益,不允许别人分发,复制或许发明衍生物。
    当你将代码宣布在一些网站上时需求遵守该网站的协议,此协议能够包含了一些对你休息成果的授权容许。比如将代码发布到GitHub,那么就必须赞同别人查看和fork。
      1. \(\color{#0000FF}{协议和版权信息}\)   1. \(\color{#00EE00}{商用}\)
    2. \(\color{#00EE00}{私用}\)
      1. \(\color{#FF3030}{分发}\)
    2. \(\color{#FF3030}{修正}\)
    3. \(\color{#FF3030}{附加协议}\)
     
    Public domain dedication   在许多国度,默许版权归作者自动拥有,所以 Unlicense 协议提供了一种通用的模板。
    此协议表明作者保持版权,将休息成果无私贡献出来,会丧失作品全部权益,包括在MIT/X11中定义的无担保权益。
     

    【编辑引荐】

    微软发信称新的开发渠道的Windows 11构建版本将末尾不波动

    手把手教你开发代码生成器,学不会的来怼我!

    Linux从头学之Linux 是如何保护内核代码的?

    HarmonyOS效劳卡片开发知识总结

    这 6 个开源工具 yyds

    (责任编辑:admin)