西西河

主题:使用开源代码的各种注意事项与LB( 纯技术【讨论】贴 -- 素里太守

共:💬10 🌺23
全看树展主题 · 分页首页 上页
/ 1
下页 末页
家园 使用开源代码的各种注意事项与LB( 纯技术【讨论】贴

LB事件闹得沸沸扬扬,很是热闹,俺也“掺和掺和”。

但是的但是,虽然俺也会在本线中谈及LB,但俺不想在本线中涉及其中的“政治”是非 --- 开这个线的目的是想讨论如何使用开源软件代码开发新产品或者新功能,涉及到开源软件使用许可,代码维护和代码扩充。对上述问题感兴趣的河友,欢迎参加讨论。如涉及到LB的“政治”是非,安全评测,技术原理,可以移步到:

俺的提纲也很简单:

1.如何从开源到“闭源”。

2.如何在产品中维护其中的“开源”代码。

3.如何扩展“开源”代码(欢迎类C++代码的例子)

注:俺不喜欢写长贴,请包涵。

家园 沙发
家园 比萨斜饼
家园 如何从开源到“闭源”。

从闭到开容易,从开到闭却有点麻烦,且听太守演绎。

家园 不同开源协议要求也不太一样。

GPL协议的代码,包装一下拿出去卖,不开源就有违反版权之嫌。

BSD、MIT协议就宽松一些。还有Public domain,则不作要求开源的限制。

不熟悉版权协议方面,只是对平常看到一些开源软件对采用协议的解释有些印象,还请熟悉的同学指正。

家园 如何从开源到“闭源”(1)林林总总的许可大摘抄

小高同学不许拍砖,今天俺要做文抄公 --- 开源软件的本意就是鼓励大家做“文抄公”。

开源软件的定义是什么?俺WIKI了一下,下面是WIKI的[URL=http://en.wikipedia.org/wiki /Open_Source_Definition]英文定义[/URL],版面有限,俺不引用英文了,于是俺引用台湾繁体版的 --- 实际上就是英文版的台湾翻译 --- “开放源代码”

开放源代码的定义由Bruce Perens(曾是Debian的创始人之一)定义如下:

* 自由再散布(Free Distribution):允许获得源代码的人可自由再将此源代码散布。

* 源代码(Source Code):程式的可执行档在散布时,必需以随附完整源代码或是可让人方便的事后取得源代码。

* 衍生著作(Derived Works):让人可依此源代码修改后,在依照同一授权条款的情形下再散布。

* 原创作者程式源代码的完整性(Integrity of The Author’s Source Code):意即修改后的版本,需以不同的版本号码以与原始的程式码做分别,保障原始的程式码完整性。

* 不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):开放源代码软件不得因性别、团体、国家、族群等设定限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。

* 对程式在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):意即不得限制商业使用。

* 散布授权条款(Distribution of License):若软件再散布,必需以同一条款散布之。

* 授权条款不得专属于特定产品(License Must Not Be Specific to a Product):若多个程式组合成一套软件,则当某一开放源代码的程式单独散布时,也必需要符合开放源代码的条件。

* 授权条款不得限制其他软件(License Must Not Restrict Other Software):当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光碟片),不得限制其他软件的授权条件也要遵照开放源代码的授权。

* 授权条款必须技术中立(License Must Be Technology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。

洋洋洒洒,10条之多,大家先凑合着读一遍,领会一下精神实质。个人认为最实质的问题有4条:自由再散布(Free Distribution),源代码(Source Code),衍生著作(Derived Works)和散布授权条款(Distribution of License)。

本着以上的精神,各路“牛鬼蛇神”纷纷出马了,[URL=http://www.gnu.org/philosophy/license- list.html]“黑名单”[/URL]在此。上面有GNU的GPL, Apache, Berkeley,Boost, BSD,NCSA/Illinois,Perl 5,JAVA SCRIPT,Python,Ruby及其各种变体。大概最有名的当属GNU的GPL,CPL,以及各种BSD变体。

GPL包括17项条款(TERMS AND CONDITIONS),真是烂婆娘的裹脚 --- 又臭又长。而BSD的变体Berkeley仅包含3项。GPL的俺就不引用了,Berkeley版的BSD在此:

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

看清楚了没有,就3条。

家园 调皮的小高来占个沙发。。。。。先花后看
家园 GPL不是这样的

是修改了GPL的code,修改那部分需要开源

而如果你仅仅使用GPL的code,那你不需要公开你使用的代码。就算你修改了,你也只需要公开你修改的代码,而不需要公开你的业务代码

家园 GPL是copyleft,你说的是LGPL
家园 关于GPL的描述不正确

GPL要求所有使用GPL代码的软件都公开代码,哪怕是你把GPL的库动态编联到你的产品里都不行,都必须要公开代码。

弱一级的是LGPL,就是说你可以使用库和编译连接LGPL的代码,不需要公开你的代码

GPL对于商用软件来说是病毒,因为他要求只要你的软件产品中包含有GPL的代码部分,你的软件就要开放源代码,所以,我认为除非真正的投入到开放源代码运动中去,否则尽量不要使用GPL。

全看树展主题 · 分页首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河