谈谈开源协议

来源:互联网 时间:2017-01-22


目录

引言



常见的五种开源协议



BSD



APL



MIT



GPL



LGPL




iOS常用第三方库的开源协议



Android常用第三方库的开源协议



引言

如何看懂所引用文件头的版权声明, 这是一个问题


如何为代码开源选择合适的许可证, 这是一个问题


如何为商业软件引用不侵权的软件, 这也是一个问题


带着这么多问题, 我们就看看到底有哪些常见的开源协议


常见的五种开源协议
BSD

BSD (Berkeley Software Distribution)


BSD开源协议是一个给于使用者很大自由的协议, 基本上使用者可以"为所欲为", 因此是对商业集成很友好的协议


但"为所欲为"的前提当你发布使用了BSD协议的代码时, 需要满足这三个条件



如果在发布的产品中包含源代码, 则在源代码中必须带有原来代码中的BSD协议



如果在发布的只是二进制类库/软件, 则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议



不可以用开源代码的作者/机构名字和原来产品的名字做市场推广



采用BSD协议的软件有


nginx

为所欲为协议, 只是要有版权声明, 且不侵犯"肖像权"


APL

APL (Apache License)


该协议和BSD类似, 同样鼓励代码共享和尊重原作者的着作权, 同样允许代码修改再发布


该协议相比BSD的区别是


如果你修改了代码, 需要再被修改的文件中说明

采用Apache License协议的软件有


Apache

另一个为所欲为协议,只是版权声明稍微"严了点"


MIT

MIT (Massachusetts Institute of Technology)


MIT是和BSD一样宽范的许可协议, 作者只想保留版权, 而无任何其他了限制


采用MIT协议的软件有


node

如果你只想让别人记住你, 请用MIT


GPL

GPL (GNU General Public License)


上面的三个协议都是鼓励代码重用的, 所以说他们不仅是商业友好的, 更是程序员友好的


GPL相比他们就没有那么商业"友好"了


GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用


但是不允许修改后和衍生的代码做为闭源的商业软件发布和销售


通俗地说就是:


只要你用了任何该协议的库、甚至是一段代码, 那么你的整个程序, 不管以何种方式链接, 都必须全部使用GPL协议、并遵循该协议开源


采用GPL协议的软件有


Linux

俗称"传染病"协议, 用了它你也就被开源了


LGPL

LGPL (GNU Lesser General Public License)


鉴于GPL是如此的隔绝商业, 就出现了一个宽松版的GPL即LGPL


但LGPL其实只是GPL的一个为主要为类库使用设计的开源协议


LGPL允许商业软件通过类库引用方式使用LGPL类库而不需要开源商业软件的代码


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


采用LGPL协议的软件有


Hibernate

适用于类库引用而不是二次开发的GPL


<!--more-->


iOS常用第三方库的开源协议

AFNetworking/AFNetworking - MIT



CocoaPods/CocoaPods - MIT



Coding/Coding-iOS - MIT



facebook/SocketRocket - BSD



fastlane/fastlane - MIT



IFTTT/JazzHands - MIT



magicalpanda/MagicalRecord - MIT



SnapKit/Masonry - MIT



TTTAttributedLabel/TTTAttributedLabel - MIT



wordpress-mobile/WordPress-iOS - GPL



YYKit - MIT



Android常用第三方库的开源协议

afollestad/material-dialogs - MIT



alibaba/fastjson - APL



Clans/FloatingActionButton - APL



greenrobot/EventBus -APL



greenrobot/greenDAO - APL



JakeWharton/butterknife - APL



koush/AndroidAsync - APL



loopj/android-async-http - APL



nostra13/Android-Universal-Image-Loader - APL



PaoloRotolo/AppIntro - APL



square/okhttp - APL



wordpress-mobile/WordPress-Android - GPL



附录

常见的开源协议



5种常见的开源协议



如何为你的代码选择一个开源协议



如何选择开源许可证?



更多文章, 请支持我的个人博客




相关阅读:
Top