第31章 GPL开源协议 (第2/2页)
开源也必须遵照开源协议。
选择开源协议也很关键。
毕竟开源协议不止一种,世界上的各种开源协议大概有上百种。
当然了,上百种开源协议里常用的也只有GPL、BSD、MIT、Mozil、Apache和LGPL这些。
前世林灰开源的时候只会选择了BSD开源协议或者是Apache开源协议。
更多时候还是选择BSD开源协议。
BSD开源协议是个给于使用者很大自由的协议。
可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
当其他用户发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
①如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
②如果再发布的只是二进制类库软件,则需要在类库软件的文档和版权声明中包含原来代码中的BSD协议。
③不可以用开源代码的作者机构名字和原来产品的名字做市场推广。
BSD协议鼓励代码共享,但需要尊重代码作者的著作权。
BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售。
因此是对商业集成很友好的协议。
很多企业个人在选用开源产品的时候都首选BSD协议。
因为采用BSD可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
Apache协议和BSD协议差不多,也是对商业应用友好的许可。
使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布销售。
Apache开源协议是著名的非盈利开源组织Apache采用的协议。
该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布作为开源或商业软件。
尽管这两个开发协议都很不错。
但这一次林灰最终还是选择了GPL开源协议。
GPL协议和BSD、ApacheLice
ce等鼓励代码重用的许可很不一样。
GPL的出发点是代码的开源免费使用和引用修改衍生代码的开源免费使用。
但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。
换言之,林灰能够允许别人应用其开源的《2048》代码。
但其他人应用该开源代码开源出的其他版本必须也同样开源。
开源的时候还必须依照GPL协议。
按照这个规则。
原本一个GPL开源项目,很可能带出一大串GPL开源项目。
这就是所谓的”传染性”。
之所以采用这个协议,是因为林灰知道前世2048这款游戏可不止是数字版。
还有很多衍生版本。
比如说朝代版、音符版、5×5版之类的十多个版本。
林灰觉得通过GPL这样略带“传染性的”开源协议。
能够有助于《2048》这款游戏的衍生版本及早出现。
当然了林灰的想法多多少少也有点一厢情愿。
这一切的一切都是建立在其他人遵守规则的情况下。
遇到不守规则的人。
所谓的这个协议那个协议对于他们而言只是一纸空文。
再严密的协议也是防君子不防小人。
不过也无所谓,做事情无愧于心就好。
更何况林灰在《2048》这款游戏上的收获早就大大超出他的心理预期了。