怎样才有资格被称为开源软件

来源:互联网 发布:笨办法学python 41 编辑:程序博客网 时间:2024/04/27 15:52
    发现国内不少软件都开源了。但很奇怪,他们都有自己相同一套的软件版权许可协议。这些软件许可协议跟开源本身的精神是有冲突的。举个例子:
    摘自Discuz!NT 里的许可协议:禁止在 Discuz!NT 的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。 与其它条款无抵触的前提下,允许以自用为目的的进行进行二次开发或整合,但同样受前文第3项约束和限制,即保留Discuz!NT名称与链接。
    以上规定显然是违背开源精神的,通过OSI认证的许可协议:如GNU GPL、MPL、BSD等许可协议里面都明确规定可以修改版本或第三方版本用于重新分发的权利,但要保证你发布的系统也必须开源,包括你修改的地方都要注释清楚。著名的开源软件SUGARCRM就有几个较好的派生版本如:vtigerCRM、C3CRM。
    这些自搞一套许可协议的严格上都不能算是开源软件,开源软件不光光是软件源代码的开放,除了这些,还要说明遵守那种许可协议(OSI认可),还要包括开源文档(使用手册和开发手册)。那么怎样才有资格被称为开源软件?Eric Steven Raymond给出如下解释:
    根据许可的目的,我们可以区别许可证赋予你的各种不同权利。复制和再发布的权利,使用的权利,为个人目的修改的权利,发布修改后的作品的权利。一个许可证可能会对这些权利加上一些限制或给出一些附加条件。opensource.org就是各种对软件“开源”或“自由”思考的结果。该站点许可证的约束条款包括:
    1. 无限制的拷贝权。
    2. 无限制的使用权。
    3. 无限制的针对个人使用目的而修改的权利。

    这些指导方针保证修改后的二进制代码的再发布权;这与那些要求可以无障碍的取用软件的发行商的需求相吻合。这个做法使得软件的作者们可以要求修改的原始源代码采取把原有代码加上补丁程序的方式来再发布,这样就保全了作者们的原意同时又可以让他们“审查”其他人对项目的改进工作。
    OSD(开放源代码定义)是对“OSI开源软件认证”证书的法律定义,实际上她和人们曾经提出的各种关于“自由软件”的定义一样好。所有标准的许可证协议(如 MIT、BSD、Artistic、GPL和LGPL协议)都与该提法一致(然而有时候,比如GPL,有更多的限制条款,在选择这些许可证时请仔细理解)。
    值得注意的是有些只允许非商业用途的许可证并没有资格被成为开源许可证,尽管他们标榜自己是“GPL”或者其他典型的许可证。这种许可证对特殊的拥有者,或者对个人和小组有着歧视。他们对通过光盘渠道再发布的做法以及其他商业化的推广开源软件的尝试做出种种限制,从而把事情搞的非常复杂。
   
   博客园的开源项目NBear做的非常不错,完全符合开源精神,是一个地地道道的开源项目,NBear采用的是BSD的开源协议,项目也做得非常成功,为中国的开源项目的楷模。主要有几点非常值得国内的开源项目学习:
    1、建立开源社区:建立开源社区内容包括:项目概况、软件下载(源代码CVS/SVN)、文档(wiki)、BUG提交、FAQ、互动平台。让更多的人可以参与进来,这也是开源软件的开发模式。NBear的官方网站(http://nbear.org/)都包含这些非常重要的内容,希望大家支持NBear.
    2、软件许可协议: NBear采用的是BSD的开源协议,找一个符合自己项目的开源许可协议。如gpl、mpl、mit等等。这些许可协议可以帮助你来对付一些侵权行为的组织和人。
    3、软件服务模式:NBear项目也有一个链接是赞助|Donate NBear ,这也是为了项目生存的经济来源。我也看到了NBear的领导者Teddy's Knowledge Base的公告里有一段“承接有偿技术咨询及项目外包”。
原创粉丝点击