怎样才有资格被称为开源软件[转载]
一、国内“开源软件”许可方式有违开源精神最近发现国内很多网络社区软件都开源了。但很奇怪,他们都有自己相同一套的软件版权许可协议。这些软件许可协议跟开源本身的精神是有冲突的。举个例子:
摘自DedeCMS里的许可协议:未经官方许可,禁止在 DedeCms 的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。
摘自Discuz里的许可协议:禁止在Discuz! 的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。
摘自ECSHOP里的许可协议: 禁止在 ECSHOP! 的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。
摘自HDWIKI里的许可协议:禁止在互动维客的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。
以上几条规定显然是违背开源精神的,通过OSI认证的许可协议:如GNU GPL、MPL、BSD等许可协议里面都明确规定可以修改版本或第三方版本用于重新分发的权利,但要保证你发布的系统也必须开源,包括你修改的地方都要注释清楚。基于redhat的派生版本就很多,如CentOS.著名的开源软件SUGARCRM就有几个较好的派生版本如:vtigerCRM、C3CRM。
二、怎样才有资格被称为开源软件?
这些自搞一套许可协议的严格上都不能算是开源软件,开源软件不光光是软件源代码的开放,除了这些,还要说明遵守那种许可协议(OSI认可),还要包括开源文档(使用手册和开发手册)。那么怎样才有资格被称为开源软件?Eric Steven Raymond大哥给出如下解释:
根据许可的目的,我们可以区别许可证赋予你的各种不同权利。复制和再发布的权利,使用的权利,为个人目的修改的权利,发布修改后的作品的权利。一个许可证可能会对这些权利加上一些限制或给出一些附加条件。就是各种对软件“开源”或“自由”思考的结果。该站点许可证的约束条款包括:
1. 无限制的拷贝权。
2. 无限制的使用权。
3. 无限制的针对个人使用目的而修改的权利。
这些指导方针保证修改后的二进制代码的再发布权;这与那些要求可以无障碍的取用软件的发行商的需求相吻合。这个做法使得软件的作者们可以要求修改的原始源代码采取把原有代码加上补丁程序的方式来再发布,这样就保全了作者们的原意同时又可以让他们“审查”其他人对项目的改进工作。
OSD(开放源代码定义)是对“OSI开源软件认证”证书的法律定义,实际上她和人们曾经提出的各种关于“自由软件”的定义一样好。所有标准的许可证协议(如 MIT、BSD、Artistic、GPL和LGPL协议)都与该提法一致(然而有时候,比如GPL,有更多的限制条款,在选择这些许可证时请仔细理解)。
值得注意的是有些只允许非商业用途的许可证并没有资格被成为开源许可证,尽管他们标榜自己是“GPL”或者其他典型的许可证。这种许可证对特殊的拥有者,或者对个人和小组有着歧视。他们对通过光盘渠道再发布的做法以及其他商业化的推广开源软件的尝试做出种种限制,从而把事情搞的非常复杂。
三、提几点意见吧
1、建立开源社区
建立开源社区内容包括:项目概况、软件下载(源代码CVS\SVN)、文档(wiki)、BUG提交、FAQ、互动平台。让更多的人可以参与进来,这也是开源软件的开发模式。
2、软件许可协议
找一个符合自己项目的开源许可协议。如gpl、mpl、mit等等。这些许可协议可以帮助你来对付一些侵权行为的组织和人。
3、软件服务模式
建立saas软件服务模式,这也是为了项目生存的经济来源。软件服务模式较多,ASP平台服务、项目实施服务(安装、测试、培训等)、定制服务、发展合作伙伴、OEM服务等等。