阅读更多

11顶
1踩

编程语言

转载新闻 Ruby 1.9.3将改用 BSD 许可证发布

2011-08-03 18:43 by 见习编辑 robbin 评论(3) 有4456人浏览
Ruby 从下一个版本,也就是 1.9.3 开始,从原先的 GPLv2 许可证换成了 2-clause BSD 许可证。这是因为GPL协议带来的种种问题,下面请看《delphij's Chaos》对此事件的分析:

Ruby 从下一个版本,也就是 1.9.3 开始,从原先的 GPLv2 许可证换成了 2-clause BSD 许可证(大体上相当于 MIT 许可证)。

早期 Ruby 采用的是自由软件基金会推荐的 GPLv2 or later 许可证方式。在实际操作中这种许可方式十分常见,这种许可证方式包含两层意思:

软件本身以 GPLv2 许可证发布
当自由软件基金会修订 GPL 并发布新版 GPL 时,授权一方同意受权人以新的 GPL 条款来发布软件 (*)
这其中 (*) 的部分实际上是开给自由软件基金会的一张空白支票,并且可能导致各式各样的法律问题。据我个人的了解,湾区企业的法务部门通常不允许公司以这种方式发布软件,因而,商业公司在使用 GPLv2 or later 许可证的软件时,通常会在发布代码的同时明确说明自己在使用这个软件时只遵循某个特定版本的GPL,以规避潜在的法律风险:

/*
* [company] elects to have and use the contents of [filename] under and governed
* by the GNU General Public License (GPL) Version 2, only.  However, the following
* notice accompanied the original version of this file:
*/
然而,实际上这样使用代码也是有风险的。例如,如此这家厂商便无法同时使用 GPLv3 许可证的代码。因为GPLv2 中规定:

4. You may not copy, modify, sublicense, or distribute the Program except as
expressly provided under this License. Any attempt otherwise to copy, modify,
sublicense or distribute the Program is void, and will automatically terminate
your rights under this License. However, parties who have received copies, or
rights, from you under this License will not have their licenses terminated so
long as such parties remain in full compliance.
同时,GPLv2 中也规定:

6. Each time you redistribute the Program (or any work based on the Program), the
recipient automatically receives a license from the original licensor to copy,
distribute or modify the Program subject to these terms and conditions. You may
not impose any further restrictions on the recipients' exercise of the rights
granted herein. You are not responsible for enforcing compliance by third
parties to this License.
简而言之, GPLv2 only 的代码和 GPLv3 许可证的代码是不能一起 redistribute 的,原因是 GPLv3 中增加了包含对硬件和软件专利等问题而增加的一系列限制自由的条款(违反第6条),而另一方面,自由软件基金会又认为 Ruby License 是非自由软件授权,因此,GPLv3 许可证的软件又不能与 Ruby 以 Ruby License 联编,因为这样做违反 GPLv3 第10条的内容:

10. Automatic Licensing of Downstream Recipients.
[...]
You may not impose any further restrictions on the exercise of the rights
granted or affirmed under this License. For example, you may not impose a
license fee, royalty, or other charge for exercise of rights granted under
this License, and you may not initiate litigation (including a cross-claim
or counterclaim in a lawsuit) alleging that any patent claim is infringed
by making, using, selling, offering for sale, or importing the Program or
any portion of it.
由于 Ruby 只以两种许可证之一发布,因此,发布联编的可执行文件要么违反 GPLv2,要么违反 GPLv3,因此再发布的结果只能以源代码的形式提供,而不允许再发布其二进制文件。

自由软件基金会从 6.0 版开始,将 readline 库改为 GPLv3 or later,这样一来,GPLv2 only 的 Ruby 便不能发布联入了 readline 的可执行文件了。

为了因应自由软件基金会改换授权可能给最终用户带来的困扰,去年 9 月,Ruby Changeset r29262 将 Ruby 中的 GPLv2 许可证完全删除,并改换为基于 FreeBSD 许可证的 2-clause BSD 许可证,从而赋予了用户选择的权利。

感谢 Richard Stallman 和自由软件基金会使更多的人选择了 BSD 许可证。
来自: delphij's Chaos
11
1
评论 共 3 条 请登录后发表评论
3 楼 robbin 2011-08-04 16:47
richyzhang 写道
关键是这种许可证替换是不是可以随意进行的?

同一个版本不可以,不同的版本可以
2 楼 richyzhang 2011-08-04 10:05
关键是这种许可证替换是不是可以随意进行的?
1 楼 phlsbg 2011-08-04 09:40
慢慢的会不会有多个分支?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • logger:Erlang日志系统 Erlang Logger

    Erlang日志系统启动日志应用:logger_app:start()可动态控制日志等级:loglevel:set(Level)获取当前日志等级:loglevel:get/0每次调用后都会重新编译logger,加载module添加了buffer缓存,每500ms或连续收到100条日志后...

  • erlang_版本24.3.4.4

    erlang 安装包

  • erlang otp25 win安装包

    erlang otp25 win安装包

  • erlang_otp_win64_25.0

    erlang_otp_win64_25.0

  • erlang 23.1

    最新 erlang 下载,帮助大家解决下载慢的问题。官网的下载真的很慢很慢很慢,而且文件也很大,为了方便大家的下载,这里提供一份大家可以接受的积分,可以私信。

  • erlang25.1.1官网的安装包

    erlang25.1.1官网的安装包

  • erlang_ls:Erlang 语言服务器

    erlang_ls 一个实现微软语言服务器协议 3.15 的 Erlang 服务器。最低要求 快速开始编译项目: make要在/usr/local/bin安装生成的erlang_ls escript: make install命令行参数这些是可以提供给erlang_ls脚本的命令行...

  • Erlang项目内存泄漏分析方法

    主要介绍了Erlang项目内存泄漏分析方法,本文讲解了分析方法、分析流程并找到问题原因和解决方法,需要的朋友可以参考下

  • Erlang中的Record详解

    主要介绍了Erlang中的Record详解,本文讲解了定义Record、创建Record、访问Record、更新Record、匹配Record和Guard语句、使用Record等内容,需要的朋友可以参考下

  • erlang 21.3

    erlang21.3版本安装包 ,otp_src_21.3.tar.gz。官网下载实在是太慢了。

  • rabbitmq + Erlang

    1、RabbitMQ依赖于Erlang,需要先安装Erlang 2、Erlang和RabbitMQ版本有对应关系 3、rabbitMQ3.9

  • introducing erlang

    Erlang特性: ● 并发性 - Erlang支持超大量级的并发进程,并且不需要操作系统具有并发机制。 ● 分布式 - 一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点) ● 健壮性 - Erlang...

  • Erlang的windows版本

    Erlang的windows版本Erlang的windows版本Erlang的windows版本Erlang的windows版本Erlang的windows版本Erlang的windows版本Erlang的windows版本Erlang的windows版本Erlang的windows版本Erlang的windows版本Erlang的...

  • erlang24.0_win64

    1、erlang 24.0版本 win64 位安装包 2、与之搭配兼容的rabbitmq-server-3.9.13安装包 3、切记RabbitMQ和Erlang/OTP要兼容性,查看网址https://www.rabbitmq.com/which-erlang.html

  • erlang 24.0 龙芯 loongarch64 预编译版本

    erlang官方没有龙芯版本的安装包,这个是用24版本的源码在龙芯3a5000下编译的版本,解压缩以后将bin路径加入PATH环境变量即可使用。

  • xiandiao_erlang_Erlang课后习题_

    erlang程序设计第二版课后习题源码,源码实现

  • erlang安装包.zip

    erlang安装包

  • Erlang官网下载过慢

    Erlang在官网下载页面一直出现无法请求的情况,现在将下载下来的32位和64位的安装包分享

  • erlang_term:Erlang术语信息

    erlang_term:Erlang术语信息

  • RabbitMQ+Erlang.rar

    CentOS7+CentOS8环境下的RabbitMQ+Erlang安装包

Global site tag (gtag.js) - Google Analytics