你乐谷
首页 > 图文

自由软件与开源软件的定义(2)

2023-03-15 来源:你乐谷
再分发软件副本的自由,表示分发该程序的二进制或可执行格式时必须附带源代码,包括修改过的和未修改版(以可运行格式发布程序可以方便在自由的操作系统上安装)。对特定程序也可以不发布和产生二进制可执行格式(因为一些编程语言不支持这个特性),但你仍有发布这些格式,或开发一种方法来产生这些格式文件的自由。
为了实现自由之一和自由之三(修改软件并发布修改版的自由),你必须能够访问程序的源代码,因此有权力访问程序的源代码对自由软件来说是一个必要条件。而混淆过的“源代码”不能算真正的源代码2。
自由之一允许用你修改的版本来替代原始的版本。如果一个程序从产品设计的角度发布只能用其他人修过的版本而不能用你的修改版——例如所谓的“Tivo 化”3或“锁定”,或者(用行业内的话来说)“安全启动”(Secure Boot)——这样自由之一就被架空而无法实现,即便这些软件的二进制是从自由的源代码编译而来,也不能算是自由软件。
修改软件的一个重要方法是合并可用的自由子程序或模块。如果一个程序的许可证让你不能将一个合理授权发布的现有模块融合进来——例如要求你是你所添加进的代码的版权所有者,那么该许可证过于严苛以致不能被视为自由的。
自由之三允许你以自由软件的方式发布修改版。一个自由许可证可允许以其他形式发布;也就是说,这不一定是 copyleft 许可证。不过如果一个许可证要求以非自由的方式发布修改版,则是非自由的。
为了让这些自由得以实现,在你遵守许可的条件下,这些条款必须是永久且不可撤销的。在你遵守许可的情况下,如果软件的开发者有权力撤销,或者添加限制性条款,那么该软件就不是自由的。
然而,一些对自由软件发布方式的限制规则是可以接受的,前提是与核心自由不冲突。例如,copyleft(最简单地说)规定你不能在分发程序的时候添加限制性条款以拒绝其他人的核心自由。这一规则与核心自由并不冲突,反而是在保护核心自由。
在 GNU 工程中,我们用 copyleft 合法保护每个人的四项基本自由,我们相信使用 copyleft 是非常重要的。然而非 copyleft 的许可证也是合乎伦理的。有关“自由软件”、“copyleft 软件”和其他类型软件的话题可以参见本书《自由与非自由软件的分类》一文。
“自由软件”并不意味着“非商业”。一个自由软件允许商业使用,商业开发以及商业发布。自由软件的商业开发已经不是一件特殊的事情。这对自由软件是非常重要的,你可能需要为获取自由软件的副本而付费,也可能不需要付费。但是无论如何获得副本,你都有复制并修改软件的自由,甚至有重新销售的自由。
对程序的修改是不是改进程序,这只是一个主观判断。如果你对软件的修改权实际上仅限于作出被他人认作改进的修改,该程序并不自由。
不过,规范修改版打包行为的条款是可以接受的,因为实质上这没有限制你发布修改版的自由,或者私下使用的自由。因此,许可证的一些条款是可以接受的,比如要求你改变修改版的名字,移除徽标(LOGO),或者修改版为你自己所有。只要这些要求不那么繁冗以至于影响了正常发布,都是可以接受的。既然你都已经做过一些修改,也就无所谓再多做一些了。
“如果你的版本在这种方式下可用,也必须能够在另一种方式下可用”,类似这样的条款也是可以接受的。同样的,比如有规则要求如果你发布了修改版,也必须给前一个开发者发送一份,也是可以接受的(注意这样的条款仍然让你有自由选择是否公开发布的权力)。要求你为公开发布版的程序附带源代码,也是可以接受的。
猜你喜欢