使用Apache协议的是自由软件吗?
The following article is from 微月人话 Author 卫sir
点击上方“开源社”关注我们
| 作者:卫sir| 转载自:微月人话| 编辑:黄欣宜| 设计:刘颖洁| 责编:王玥敏
大家都知道的是,使用 Apache 协议的是开源软件,但若问是不是自由软件呢?
大多数人是很犹豫的。
因为“自由”两个字,还挺吓人的。
很多人以为,只有采用 GPL 协议的软件才是自由软件。
其实,采用 Apache 2.0协议的也是自由软件。
只不过,自由软件并不等同于 copyleft ,这才是人们容易搞混的东西。
本文就是简单搞明白一下什么是开源软件,什么是自由软件,什么是 copyleft 。
01
谁掌管着定义?
“开源软件”和“自由软件”的定义掌握在这两个组织手中。
1、开放源代码促进会 OSI ( Open Source Initiative ),维护着“开源”( Open Source )软件的定义以及其认可的许可证列表。OSI 的目标是促进和保护开源软件及开源社区,致力于提高人们对开源软件的认识和采用。
OSI 于1998年2月成立,创始人为 Bruce Perens 和 Eric S. Raymond 。
2、自由软件基金会( FSF ),维护着“自由软件”( Free Software )的定义以及其认可的许可证列表,旨在促进人们对计算机软件研究、分发、创建和修改的自由。FSF 推崇 copyleft 的分享方式(如 GPL 规定的那样),不过,自由软件大多不是 copyleft 的。
FSF 于1985年10月由 Richard stallman 建立。其主要工作是执行 GNU 计划,开发更多的自由软件。
这两个组织都是民间组织,都是非营利组织。
Perens 曾希望 OSI 可以向普通人(非黑客)介绍自由软件的原则,但是 Richard Stallman 不这样认为,他觉得 OSI 在理念上和自己有很大不同,认为 OSI 太过实用化,而不是像 FSF 这样强调自由。
不过,在我看来,两者可能强调的方面不一样,但效果是类同的。开源软件和自由软件的差别不大,并没有本质上的不同。后面我们会看到这一点。
02
“源码可得”就是开源吗?
对于完全不懂开源的人,他们只能从字面上去理解,他们认为,源码放出来了就是开源软件。
当然不是这样了。
一个软件,它的源码可以在互联网上免费得到,不代表他就是开源软件或者自由软件,这种只能叫 source available ,可翻译为“源码可得”、“源码可用”、“有源软件”1等等。
一个源码可得的软件,究竟是什么性质,要看它的许可证是怎样的。
许可证就是一个书面协议,软件作者(或所有者)通过许可证,规定用户可以或不可以做哪些事,比如用户能否复制、能否修改、能够再次发布该软件等等。
Black Duck 统计过,对于源码可得软件,目前有大约2600多种许可证。这些许可证的绝大多数都不符合“开源”的定义2,然而,20个最常用的许可证覆盖了98%的源码可得软件,所以,我们只需要了解那些常用的许可证即可。
被使用最多的许可证是下面这9个( OSI 统计3),其中又以前6个为最甚。
1、Apache License 2.0 (Apache-2.0) 2、3-clause BSD license (BSD-3-Clause) 3、2-clause BSD license (BSD-2-Clause) 4、GNU General Public License (GPL) 5、GNU Lesser General Public License (LGPL) 6、MIT license (MIT) 7、Mozilla Public License 2.0 (MPL-2.0) 8、Common Development and Distribution License 1.0 (CDDL-1.0) 9、Eclipse Public License 2.0 (EPL-2.0)
03
定义!定义!
OSI对开源软件的定义放在这里:https://opensource.org/docs/definition.php ,里面有十个标准,这里不一一列举,简单地说,开源软件,就是必须提供源代码,允许修改和再发布,允许别人销售或者免费送出,不区别对待任何人和任何领域,不以各种不一致的方法限制他人使用、复制、修改和再发布。
FSF对自由软件的定义放在这里:https://www.gnu.org/philosophy/free-sw.html , FSF 提出4项自由,如果一个软件提供了下面这4项自由,它就是自由软件。
自由度0:用户可以按照自己的意愿,自由地运行该软件,而不论出自何种目的。
自由度1:用户可以自由地学习该软件,可以按照自己的意愿修改该软件。
自由度2:用户可以自由地分发该软件的拷贝,这样就可以帮助他人。
自由度3:用户可以自由地分发该软件修改后的拷贝,这样,他人可以从中受益。
当然,因为涉及修改,自由度1和自由度3都暗含了对开放源代码的要求。
定义中所谓“自由”,意味着这些行为(运行、学习、修改、分发)不必事先征得任何人的许可,也不必为此额外支付任何费用。
FSF 还强调,自由软件允许商业用户、商业开发和商业发布。商业和自由并不矛盾,钱可以收,但用户的自由不可剥夺。由于源码是开放的,许可证又给予了他人种种自由,所以并不存在那种因商业秘密或专利保护所带来的暴利,自由软件的商业收费主要是复制软件的成本费、对软件提供维护的维保费、培训费等服务性费用,挣不了什么大钱。
但某些开源软件的企业版就不一样了,企业版通常并不开源,它们不是开源软件也不是自由软件,它们用的是商业许可证,即便给你源码,也会有很多限制。
你还可以在 SPDX 这个网站获取分类信息7,它维护了一个有接近400个许可证的列表,里面列出了哪些是 FSF 认可的,哪些是 OSI 认可的。 此外,还可以维基百科的“ Comparison of free and open-source software licences ”词条中查看。8
04
什么是copyleft
现在我们知道,使用 Apache 许可证的软件是自由软件,那它是 copyleft 软件吗?
答案:不是。
copyleft 不好翻译,目前有“版权开放”、“版权属左”、“左版”、“著佐权”、“版权左派”,“版责”等多种翻译,但并没有被普遍接受和采纳的。
先说一下什么是 copyrigh 。
copyright即版权,亦称著作权,是指作者对其作品的权利。从字面上看, copyright 尤其关注copy的权利( right ),一个软件卖给某用户后,除非作者同意,用户是不能随意复制(比如说让你在这个机器上用,你就不能在另外一台机器上再装一套)的,除此之外,除非作者许可,也不能修改、不能对外发布等等。
所以,传统上,一般我们都能看到这样的表述:Copyright © 2004 XXXX. All rights reserved . 此即“版权所有”,就是说版权拥有者对其作品的权利都是保留的,仅仅开放他所许可的内容。
下面是一个版权声明的样例。
“1984或1985年, DonHopkins (一个很有想像力的家伙) 给我写了一封信。在信封上他写了一些逗趣的话, 其中包括:copyleft —all rights reversed(copyleft-反转所有权利)。于是,我就用 copyleft 一词以命名当时我正考虑的软件发行概念。” 9
Copyleft is a general method for making a program free software and requiring all modified and extended versions of the program to be free software as well.
FSF 还专门说明为什么不直接把软件放到公共领域中(版权人完全放弃了版权及一切权利,作品就进入公共领域即 public domain ), FSF 认为,把软件放在公共领域内,会有人通过修改部分或极少量的方式,将衍生品私有化,从而减少了人们应有的自由。
05
一些copyleft许可证
06
为什么不支持自由呢!
SCOPE OF LICENSE. The software is licensed, not sold. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to): 1.work around any technical limitations in the software that only allow you to use it in certain ways; 2.reverse engineer, decompile or disassemble the software; 3.remove, minimize, block, or modify any notices of Microsoft or its suppliers in the software; 4.use the software in any way that is against the law or to create or propagate malware; or 5.share, publish, distribute, or lend the software, provide the software as a stand-alone hosted solution for others to use, or transfer the software or this agreement to any third party.
许可范围。 本软件授予使用许可,而非出售给使用者。Microsoft 保留本协议未明确授予的所有权利,除非适用法律赋予您权利,否则您不得(也无权)做以下这些事: 1.不得绕过本软件的技术限制,你只能按照本软件所允许的方式使用本软件; 2.不得实施反向工程,不得反编译、反汇编本软件; 3.不得删除、最小化、阻拦、修改 Microsoft 或其供应商在软件中的任何声明; 4.不得以任何违法的方式使用该软件;不得创建或传播恶意软件; 5.不得共享、发布、分发或出租本软件;不得将本软件单独作为托管方案提供给他人使用;不得将本软件或本协议转让给任何第三方。
看到没有,即便只是一个二进制文件,专有软件都要设置设种种限制,目的是保护其盈利的能力。
而自由软件不仅给你源代码,还赋予你种种自由,目的是促进整个人类的自由。
有什么理由不去珍视和支持这种自由呢!
文末奉上这张图,一图看懂不同类型软件之间的关系,来自 FSF 。13
现在,你的心里是不是亮堂多了。
开源软件、自由软件其实差不多的, copyleft 则有着更强烈的理想信念。
不管怎样,选一个你喜欢的许可证,开干吧!
https://zhuanlan.zhihu.com/p/20784520
https://www.synopsys.com/content/dam/synopsys/sig-assets/reports/2020-ossra-report.pdf
https://opensource.org/licenses/category
https://www.gnu.org/philosophy/categories.html.en
https://opensource.org/licenses/category
https://www.gnu.org/licenses/license-list.html
https://spdx.org/licenses/
https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licences
https://www.gnu.org/gnu/thegnuproject.html
https://www.gnu.org/licenses/copyleft.en.html
http://www.ruanyifeng.com/blog/2008/04/copyleft_and_gfdl.html
https://support.microsoft.com/en-us/office/microsoft-software-license-terms-5476247d-05e5-4ac7-b77c-1b8cd229e91a
https://www.gnu.org/philosophy/categories.zh-cn.html
扫描下方二维码通过活动行报名填写信息,添加小编微信号:chatbot-yuan,回复OS,进入“源”来如此粉丝群。相信你可以在这里和志同道合的伙伴们愉快交流!
8月9日14:00-16:00,我们不见不散!
开源社简介
开源社是由国内外支持开源的企业,社区及个人,依“贡献,共识,共治”原则,所组织的厂商中立、纯志愿者、非营利的开源联盟,旨在共创健康可持续发展的开源生态体系,并推动中国开源社区成为全球开源软件的积极参与及贡献者。我们专注于开源治理、国际接轨、社区发展和开源项目。
相关阅读 | Related Reading
重磅推荐 | SkyWalking未来初探(文末有福利哦)
GitHub 标星 10,000+,Apache 顶级项目 ShardingSphere 的开源之路
“源”来如此第一期 带你走进开放式协作
喜欢本篇内容请给我们点个在看