我想要一个我开始开放的软件?,我已经看到 GPL 可以为我工作。我知道 GPL 许可证迫使程序员分发源代码,并且在该代码上工作的许可证必须具有相同或更少限制的许可证,而且这也是免费和衍生作品。
目前我知道有许可证的第 3 版,但是关于这个许可证还有一些我不明白的问题,比如它与软件专利的关系(以及欧洲与美国的整个问题)以及与GPLv2 。
所以我有这个疑问。如果 GPLv3 基于 GPLv2 并且兼容,那有什么区别呢?如果您能解释完整的许可证,那就太好了?
我想要一个我开始开放的软件?,我已经看到 GPL 可以为我工作。我知道 GPL 许可证迫使程序员分发源代码,并且在该代码上工作的许可证必须具有相同或更少限制的许可证,而且这也是免费和衍生作品。
目前我知道有许可证的第 3 版,但是关于这个许可证还有一些我不明白的问题,比如它与软件专利的关系(以及欧洲与美国的整个问题)以及与GPLv2 。
所以我有这个疑问。如果 GPLv3 基于 GPLv2 并且兼容,那有什么区别呢?如果您能解释完整的许可证,那就太好了?
GPL 许可证的第三版 (GPLv3) 的最终文本由自由软件基金会于 2007 年 6 月 29 日发布。
如果我们考虑到 GPLv2 的最后一次修订是 1991 年,并且与自由软件相关的法律和技术场景在这些年中发生了很大变化,那么这是一个重要的变化。
在2006 年 4 月 21 日的第二届国际 GPLv3 大会上, Richard Stallman 用口语解释了 GPLv3 的主要变化。
一点历史
GNU 项目由 Richard M. Stallman 于 1983 年创立,旨在构建一个完全免费的计算环境。用来获得这种征服的“武器”不是计算机程序,而是一段法律文本,一种软件许可证,它已经成为一种叫做“copyleft”的运动的基本构成,因为这一切的主力是所有著名的版权(作者的权利)。实际上,所有软件从发布之日起就拥有版权。自由软件也不例外。软件是免费的,因为拥有版权的人决定根据使其免费的许可证发布它。因此,这是一个法律问题,而不是编程问题。
这就是 GNU 通用公共许可证存在的理由,该许可证旨在授予出于任何目的使用程序的自由,研究它们如何工作,使它们适应自己的需要,无限制地复制它们,改进它们并分发改进。许可证的唯一基本条件是,当您重新分发程序或其衍生作品时,它仍然是免费的。今天,这个 copyleft 许可不仅在软件领域产生影响,而且已经有许多音乐作品、著作、视频、网站甚至大学论文以类似条款出版的许可经验。
1991 年,自由软件基金会发布了 GPLv2,该许可证伴随大部分自由软件运动超过 16 年。使软件免费的是这本书,而不是任何程序员的代码或美德。这个问题是法律上的,而不是技术上的。
不首先承认 GPLv2 对我们今天所知的自由软件的巨大优点和贡献而谈论 GPLv3 是不公平的。这个许可证,特别是它是 copyleft 的事实,使得围绕计算机程序培养坚实的社区成为可能,因为知道有法律支持可以保证我们发布的所有软件无论如何都将继续免费.它通过谁或谁修改了它。
为什么要有新的 GPL 版本?
主要原因是今天存在一系列威胁自由的威胁,这些威胁在 GPLv2 发布时不存在或非常初期,因此不在其中。另一方面,自早期以来,自由软件社区发展迅速。
GPLv3 的使命与其前身相同:维护自由。
在本次修订中,FSF 没有提出任何其他任务,只是继续实现这一目标,没有其他任务。事实上,从一个许可证更改为另一个许可证并不是一项义务,并且那些在以前版本下继续分发的程序也不会有问题。GPLv2 和 GPLv3 彼此不兼容(就像所有的 copyleft 许可证一样)这一事实并不能阻止具有这些不同许可证的多个程序一起分发。GPLv2 将像以前一样保持最新状态。但现在社区将拥有版本 3 来防御近年来出现的一系列威胁。
主要变化
根据 Stallman 本人的说法,在 GPLv3中有三个主要的变化领域(参见上面的链接)。一个是指Tivoization,另一个与软件专利有关,另一个与与其他自由软件许可证的兼容性有关。
1.避免tivoization
Tivoization 是 GPL 的创造者创造的一个术语。Tivo 是一个数字电视录制系统,在 GPL 下运行软件 - 当然,免费。 - Tivo 符合许可证规范,但是,即使没有违反许可证,它也设法阻止了某些自由的行使。这就是所谓的tivoization。
也就是说,一种合法的技巧,其中忠实地遵守 GPL,实现了一个系统,该系统实际上可以防止人们修改程序并在该硬件上再次运行它。这是通过确保机器只执行“签名”软件的数字签名来实现的。当有人行使修改程序的自由时,硬件不会验证它并使其无法执行。
从讨论开始,GPLv3 就主要关注解决 DRM 问题,数字限制管理系统旨在限制人们可以在其计算环境中做些什么。这些系统正变得越来越流行,几乎不可能获得不包含它们的数字音乐播放器、移动电话或数字录音系统。另一方面,跳过它们正在成为许多国家的非法行为(美国数字千年版权法案是该领域的旗舰立法)。
新版本的许可证确保人们可以在没有法律风险的情况下消除这些限制。GPL v3 不禁止 DRM 或任何其他具有这种性质的应用程序的开发。它只是通过一种从字面上限制“tivoization”的法律机制来确保删除它们的自由。
GPL 的第 3 版旨在禁止 tivoization。它不禁止代码的恶意功能。它不禁止修改代码,以便软件报告用户所做的事情。它不禁止更改软件以使其拒绝复制或根本没有复制功能。它确实禁止的是阻止用户进行其他修改。
当人们分发包含 GPLv3 下软件的用户产品时,第 6 节要求他们向您提供修改该软件所需的信息。“用户产品”是在许可证中以特定方式定义的表达方式;用户产品的例子有便携式音乐播放器、数字录像机和家庭安全系统。
不禁止 DRM
该许可证允许您使用在 GPLv3 下发布的软件来开发您喜欢的任何类型的 DRM 技术。但是,如果确实如此,第 3 节说该系统不能被视为有效的技术“保护”措施,这意味着如果一个人删除 DRM,他们也可以自由分发他们的软件,而无需 DCMA 或类似法律构成任何障碍。
像往常一样,GNU GPL 不限制用户可以使用该软件做什么,它只是防止他们对他人施加限制。
2. 专利和许可
GPLv3 解决的另一个大问题是软件专利。计算机程序在全世界都受版权保护,但是在一些国家,特别是日本和美国,已经可以在专利制度下注册在软件中实现的想法。因此,在这些国家发现有关双击或某些特定数学算法的专利也就不足为奇了。
从这个意义上说,软件专利对程序的准备和分发是一种威胁。它们可能是软件开发和创新的雷区。
GPLv3 通过考虑确保自由的唯一方法是废除已经实施的软件专利并阻止它们在尚不存在该问题的国家实施,从而解决了这个问题。
软件许可证无法解决此问题。但是,您可以尝试进行一些损坏控制。因此,GPLv3 在其第 10 条中有一项明确的专利保护,称为“专利报复条款”,以确保用户和/或再分发者在使用、修改和再分发自由软件时不会受到起诉。如果有人决定以专利为由提起诉讼,第 8 节解释说,他们将失去他们的许可以及与之相关的任何专利许可。
与 GPLv2 不同,GPLv3 包含一个明确的专利许可,试图保护用户免受专利持有人和 GPL 被许可人之间协议的后果。
许可硬件
任何可能受版权保护的物质商品都可以根据 GPL 获得许可。GPLv3 也可用于许可其他类似于版权的法律所涵盖的材料;例如,半导体掩模。因此,例如,您可以在 GPL 下发布物理对象或电路的图形设计。
在许多情况下,版权不涵盖从图形设计中制造硬件的材料。在这种情况下,您的图形设计许可不会对硬件的制造或销售进行任何控制,无论您使用哪种许可。在版权确实涵盖硬件制造的情况下,例如 IC 皮肤,GPL 很有用。
3. 许可证之间的兼容性
让我们考虑一下这种情况:我们有两个程序都已发布,我们希望将它们组合起来。组合版本将如何分发?好吧,一个程序说它的原始文件和修改文件必须分发,但另一个程序说它必须以相同的方式分发。两者不可能同时成为新发行版中的“原始”。这在许多情况下会造成许可证不兼容。
使用 GPLv3,您可以将在其他许可下发布的代码与在 GNU GPL 下发布的代码组合成一个更大的程序。
所有版本的 GNU GPL 都允许私下进行这种组合;只要它们是在 GNU GPL 下发布的,它们还允许分发此类组合。另一个许可证与 GPL 兼容,如果它也允许的话。
GPLv3 支持比 GPLv2 更多的许可证;允许您与 GPLv3 本身未列出的具有某些附加要求的代码结合使用。第 7 节提供了有关此的更多信息,并包括附加允许要求的列表。
其他重要变化
由于 GPLv2 是在点对点分发(bitorrent)流行之前编写的,因此以这种方式共享代码很难满足其要求。在 GPLv2 下分发目标代码时确保许可证合规性的最佳方法是将所有相应的代码包含在同一个 torrent 中,这非常昂贵。
GPLv3 以两种方式解决了这个问题。首先,作为该过程的一部分下载种子并将数据发送给其他人的人不需要做任何特别的事情。之所以如此,是因为第 9 条规定“仅因用户之间为获取副本而进行传输而产生的受保护作品的传播也不需要接受。[许可证]。” (英文:“仅由于使用对等传输接收副本而发生的涵盖作品的辅助传播同样不需要接受[许可]。”)。
其次,GPLv3 第 6(e) 节旨在为最初播种种子的分发者提供一种清晰直接的源代码交付方式,将接收者指向可用的公共服务器。这确保了任何想要获得源代码的人都可以这样做,而不会给分销商带来不便。
其他更改包括修改终止条款以提供机会来扭转可能的无意违规行为、P2P 和 BitTorrent 系统的使用和推广,以及与其他许可证(例如 Apache)的兼容性。
GPLv3 的另一项基本创新在于许可证的设计。第 1 版和第 2 版是由 Richard Stallman 在亲密律师的帮助下自己编写的。GPLv3 的构建以全新的方式完成,公众参与、协商、会议、活动以及动员庞大的全球社区来确保自由软件保持免费。
这种方法没有出现在许可证的文本中,但它无疑将成为计算……和法律史上的一个里程碑。
如何从 GPLv2 升级到 GPLv3?
首先,它在其软件包中包含新版本的许可证。如果您在项目中使用 LGPLv3,请务必包含 GPLv3 和 LGPLv3 的副本,因为 LGPLv3 现在是作为 GPLv3 的附加权限集编写的。
其次,将所有 v2 许可声明(通常在每个文件的标题中)替换为新的推荐文本,可在 Using GNU licenses for your own software 中找到。它将更好地经受时间的考验,因为它不再包含 FSF 邮寄地址。
当然,任何涉及软件包许可证的描述性文本(例如自述文件)也应相应更新。
GPLv3 与 GPLv2 兼容吗?
不会。许多要求在 GPLv2 和 GPLv3 之间发生了变化,这意味着 GPLv2 的特定要求在 GPLv3 中不存在,反之亦然。例如,GPLv3 的 Undo 条件比 GPLv2 的宽松得多,因此与 GPLv2 的 Undo 条件不同。
由于这些差异,这两个许可证不兼容:如果您尝试将在 GPLv2 下发布的代码与在 GPLv3 下发布的代码结合起来,您将违反 GPLv2 的第 6 节。
但是,如果代码在 GPL 的“版本 2 或更高版本”下发布,它与 GPLv3 兼容,因为 GPLv3 是它支持的选项之一。
在 GPLv3 中,必须提供安装信息
GPLv3 明确要求在重新分发中包含所有必要的“安装信息”,而 GPLv2 不使用该表达式,但确实要求重新分发包含用于控制可执行文件的编译和安装的脚本,以及相应的完整源代码代码。这包括 GPLv3 所称的“安装信息”的一部分但不是全部。因此,GPLv3 对安装信息的要求更强。
链接