锁定老帖子 主题:Web开发的第一课 - License
精华帖 (12) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-03-25
最后修改:2010-03-25
许多开发者和设计者希望把他们的作品作为开源项目共享,他们希望其他人能够利用和共享他们的代码。 而各种开源社区就是因为这个原因而充满活力。开源软件可以用于你能想象得到的任何应用程序,许多web设计人员使用开源软件作为开发基础(例如 WordPress,Drupal等等许多CMS系统都是开源的)。
但是许多开发者和设计者并没有对开源License有清楚的了解,不清楚当他们选择开发自己的源代码时,他们有什么权利。如果不知道明确的 License的内容,他们就不知道如何做出最明智的选择,如何做对他们最有利。
对于中国的开发者来说,因为中国发达的盗版文化,泛滥的盗版软件,大部分人恐怕都完全没有License或者版权这个概念,都是奉行拿来主义。如果 我们一直都是这样的话,中国软件何来进步。所以对于国内的开发者来说,第一课就是应该学习如何使用和遵守License。
什么是License许多混乱就始于你不知道License到底是什么,到底有什么含义。当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原 著作权。License只是授予他们于特定权利来使用你的产品。 License只是把你的作品释放到公有领域,或者给各个拷贝赋予权限。也意味着你放弃了版权收入,别人也没有义务把你列为原作者或贡献者。 开放源代码许可协议更容易为他人作出贡献,而不必寻求特别的许可。它也可以保护你作为原创者的权利,至少确认了你的贡献。它还可以保证你的工作不 为别人所剽窃。
GNU General Public LicenseGNU General Public License (GPL)的可能是开源项目最常用的许可证。GPL赋予和保证了开源项目开发者广泛的权利。基本上,它允许用户合法复制,分发和修改软件。 这意味着你可以:
商业软件不能使用GPL协议的代码。
GNU Lesser General Public License还有另一个GNU License:GNU Lesser General Public License (LGPL)。比起GPL它授予的权限较少。一般来说,LGPL比较适合连接到非GPL或者非开源文件的库文件。由于GPL的规定,使用到部分GPL代码 的软件,必须也使用GPL,开发人员不能使用GPL来开发收费软件或者专有软件。LGPL则没有这方面的要求,不要求使用与部分代码相同的 License。
商业软件可以使用,但不能修改LGPL协议的代码。
BSD LicenseBSD License与其他自由软件License相比,如GPL,限制更少。但是请注意到BSD License两种版本之间的差别:New BSD License/Modified BSD License 和Simplified BSD License/FreeBSD License。它们两者都是于GPL兼容的自由软件License。 New BSD License (”3-clause license”) 可以用于任何作为版权声明和保证许可的免责声明的目的,可以通过无限长的再分发来得以维持,也就是说如果再发布的产品中包含源代码,则在源代码中必须带有 原来代码中的BSD协 议。它还有一个特殊限制条款,不用特别的许可就是限制使用派生工作的工作者名字,也就是说不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 New BSD License和Simplified BSD License的主要区别是,后者忽略了非认可条款。
商业软件可以使用,也可以修改使用BSD协议的代码。
MIT LicenseMIT是和BSD一样宽松的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二 进制发布的还是以源代码发布的。
商业软件可以使用,也可以修改MIT协议的代码,甚至可以出售MIT协议的代码。
Mozilla Public License 1.1Mozilla Public License 1.1 (MPL)协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益,,它要求基于这种软件得修改无偿贡献 版权给该软件。这样,围绕该软件得所有代码得版权都集中在发起开发人得手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。
商业软件可以使用,也可以修改MPL协议的代码,但修改后的代码版权归软件的发起者。
Common Development and Distribution LicenseCDDL(Common Development and Distribution License,通用开发与销售许可)开源协议,是MPL(Mozilla Public License)的扩展协议,它允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。
商业软件可以使用,也可以修改CDDL协议的代码。
Apache LicenseApache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布 (作为开源或商业软件)。需要满足的条件:
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
商业软件可以使用,也可以修改使用Apache协议的代码。
Eclipse Public LicenseEclipse Public License(EPL)是一个与CPL相类似的许可证,任何扩展自Eclipse源码的代码也必须是开源的。
Creative CommonsCreative Commons(CC)的许可证不太开放源代码授权,它们通常用于设计项目。 CC许可证有着宽广的定义,每个定义都会授予一定的权利。它有四个基本部分,可以单独或者组合使用。下面是部分概述:
商业软件的使用要遵从CC协议的具体规定,最严格的许可证将是“署名,非商业,不能修改”的授权。这意味着你可以自由 共享的工作,但不能改变它,你必须把它归功于原创者。
Common Public License 1.0Common许可证有一些细节性的规定值得参考:
商业软件可以使用,也可以修改Common协议的代码,但要承担代码产生的侵权责任。
更多详细内容,请参考这里。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-03-27
谢谢楼主,讲得非常详细。
有一个不明白的地方,什么软件算作是商业软件? 能够从中盈利的软件就算是商业软件吗? 在自己的网站上放Google广告也算是商业吗? |
|
返回顶楼 | |
发表时间:2010-03-28
这一般都是被忽略的问题,呵呵
|
|
返回顶楼 | |
发表时间:2010-03-28
感觉楼主的讲解,对license方面的知识我了解比较少,在这也想请教个问题,如果软件是在不只一种协议下发布的(如jquery就是在MIT, BSD, 和 GPL协议下发布),我们应该如何对待
|
|
返回顶楼 | |
发表时间:2010-03-29
fredguo 写道 感觉楼主的讲解,对license方面的知识我了解比较少,在这也想请教个问题,如果软件是在不只一种协议下发布的(如jquery就是在MIT, BSD, 和 GPL协议下发布),我们应该如何对待
最好是用最严格的一种,交集嘛,要不出了问题很麻烦。 |
|
返回顶楼 | |
发表时间:2010-03-29
daxiong921 写道 谢谢楼主,讲得非常详细。
有一个不明白的地方,什么软件算作是商业软件? 能够从中盈利的软件就算是商业软件吗? 在自己的网站上放Google广告也算是商业吗? 放广告应该不算吧,其实商业软件并没有准确的定义,我的理解是,如果你去贩卖,那就是商业的。像很多网站之类,你只是让大家来访问,并没有售卖,应该不算商业软件。 |
|
返回顶楼 | |
发表时间:2010-03-29
很少关注这方面。。。
好像我也改过某开源软件的源代码。嘿嘿。但我是公司项目中使用,并没有上传更改该源代码。。 GPL,LGPL。。。很多许可协议。。 |
|
返回顶楼 | |
发表时间:2010-03-30
以前对这些license也注意过,但从来没有总结过,感谢lz总结出来.
|
|
返回顶楼 | |
浏览 11135 次