Copyleft和GNU通用公共许可证:全面教程和指南
Copyleft和GNU通用公共许可证:全面教程和指南
Copyright © 2018 Chestek Legal.
Copyright © 2003--2005, 2008, 2014--2015, 2018 Bradley M. Kuhn.
Copyright © 2014--2015 Anthony K. Sebro, Jr.
Copyright © 2014 Denver Gingerich.
Copyright © 2003--2007, 2014 Free Software Foundation, Inc.
Copyright © 2008, 2014 Software Freedom Law Center.
版权所有 © 2018 Chestek Legal。
版权所有 © 2003--2005,2008,2014--2015,2018 Bradley M. Kuhn。
版权所有 © 2014--2015 Anthony K. Sebro, Jr。
版权所有 © 2014 Denver Gingerich。
版权所有 © 2003--2007,2014自由软件基金会。
版权所有 © 2008,2014软件自由法律中心。
The copyright holders grant the freedom to copy, modify, convey, adapt, and/or redistribute this work (except Appendices [B][--E]
) under the terms of the Creative Commons Attribution Share Alike 4.0 International License. A copy of that license is available at (https://creativecommons.org/licenses/by-sa/4.0/legalcode.
版权持有者授予自由复制,修改,传播,适应和/或重新分发本作品(除附录B--E外),根据知识共享署名相同4.0国际许可协议的条款。该许可证的副本可在 https://creativecommons.org/licenses/by-sa/4.0/legalcode 找到。
Appendices [B--E] include copies of the texts of various licenses published by the FSF, and they are all licensed under the license, "Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.". However, those who seek to make modified versions of those licenses should note the explanation given in the GPL FAQ.
附录B--E包括由FSF发表的各种许可证的文本副本,它们都在许可证下许可,“每个人都被允许复制和分发本许可证文件的逐字副本,但不允许更改。”但是,那些试图制作修改版本的许可证的人应注意GPL FAQ中给出的解释。
As a public, collaborative project, this Guide is primarily composed of the many contributions received via its public contribution process. Please review its Git logs for full documentation of all contributions, and Appendix [A]
contains a list of third-party works from which some material herein was adapted.
作为公共协作项目,本指南主要由通过其公共贡献过程接收到的许多贡献组成。请查看其Git日志以获取所有贡献的完整文档,附录A包含了一些本文所述材料的第三方作品列表。
The most recent version is available online at https://copyleft.org/guide/. Patches are indeed welcome to this material. Sources can be found in the Git repository at https://k.copyleft.org/guide/.
最新版本可在线获取https://copyleft.org/guide/。欢迎为此材料提供补丁。源代码可以在Git存储库 https://k.copyleft.org/guide/ 中找到。
PREFACE
前言
This tutorial is the culmination of nearly a decade of studying and writing about software freedom licensing and the GPL. Each part of this tutorial is a course unto itself, educating the reader on a myriad of topics from the deep details of the GPLv2 and GPLv3, common business models in the copyleft licensing area (both the friendly and unfriendly kind), best practices for compliance with the GPL, for engineers, managers, and lawyers, as well as real-world case studies of GPL enforcement matters.
这篇教程是近十年来关于自由软件许可和GPL的研究和写作的总结。本教程的每一部分都是一个独立的课程,向读者介绍了许多主题,包括GPLv2和GPLv3的深入细节、copyleft许可证领域常见的商业模式(友好和不友好的类型)、工程师、经理和律师遵守GPL的最佳实践,以及GPL执法事项的实际案例研究。
It is unlikely that all the information herein is necessary to learn all at once, and therefore this tutorial likely serves best as a reference book. The material herein has been used as the basis for numerous live tutorials and discussion groups since 2002, and the materials have been periodically updated. They likely stand on their own as excellent reference material.
一次性学习所有的信息是不太可能的,因此本教程最好作为参考书使用。自2002年以来,这些材料已经被用作许多现场教程和讨论小组的基础,并且这些材料定期更新。它们可能作为优秀的参考材料独立存在。
However, if you are reading these course materials without attending a live tutorial session, please note that this material is merely a summary of the highlights of the various CLE and other tutorial courses based on this material. Please be aware that during the actual courses, class discussion and presentation supplements this printed curriculum. Simply reading this material is not equivalent to attending a course.
但是,如果你在没有参加现场教程的情况下阅读这些课程材料,请注意,这些材料仅是基于这些材料的各种CLE和其他教程课程的亮点摘要。请注意,在实际课程中,课堂讨论和演示会补充这个印刷课程。仅仅阅读这些材料是不能等同于参加课程的。
Part I: Detailed Analysis of the GNU GPL and Related Licenses
第一部分:GNU GPL 及相关许可证的详细分析
This part of the tutorial gives a comprehensive explanation of the most popular Free Software copyright license, the GNU General Public License ("GNU GPL", or sometimes just "GPL") -- both version 2 ("GPLv2") and version 3 ("GPLv3") -- and teaches lawyers, software developers, managers and business people how to use the GPL (and GPL'd software) successfully both as a community-building "Constitution" for a software project, and to incorporate copylefted software into a new Free Software business and in existing, successful enterprises.
本教程的这一部分对最流行的自由软件版权许可证,即GNU通用公共许可证(“GNU GPL”,有时简称为“GPL”)——第2版(“GPLv2”)和第3版(“GPLv3”)——进行了全面的解释,引导律师、软件开发人员、管理人员和业务人员如何成功地使用GPL(以及GPL软件),将其作为软件项目的社区建设“章程”,并将著佐权(copylefted)的软件合并到新的自由软件业务和现有的成功企业中。
To benefit from this part of the tutorial, readers should have a general familiarity with software development processes. A basic understanding of how copyright law applies to software is also helpful. The tutorial is of most interest to lawyers, software developers and managers who run or advise software businesses that modify and/or redistribute software under the terms of the GNU GPL (or who wish to do so in the future), and those who wish to make use of existing GPL'd software in their enterprise.
为了从教程的这一部分中受益,读者应该对软件开发过程有一个大致的了解。对版权法如何适用于软件的基本理解也很有帮助。本教程最感兴趣的是律师、软件开发人员和管理人员,他们经营软件业务,建议根据GNU GPL条款修改和/或重新分发软件(或希望在将来这样做),还有那些希望在他们的企业中使用已有的GPL软件的人。
Upon completion of this part of the tutorial, readers can expect to have learned the following:
看完本教程的这一部分后,读者可以期望学到以下内容:
-
The freedom-defending purpose of various terms in the GNU GPLv2 and GPLv3.
-
The differences between GPLv2 and GPLv3.
-
The redistribution options under the GPLv2 and GPLv3.
-
The obligations when modifying GPLv2'd or GPLv3'd software.
-
How to build a plan for proper and successful compliance with the GPL.
-
The business advantages that the GPL provides.
-
The most common business models used in conjunction with the GPL.
-
How existing GPL'd software can be used in existing enterprises.
-
The basics of LGPLv2.1 and LGPLv3, and how they differ from the GPLv2 and GPLv3, respectively.
-
The basics to begin understanding the complexities regarding derivative and combined works of software.
-
GNU GPLv2和GPLv3中各种术语,目的是捍卫自由;
-
GPLv2和GPLv3的区别;
-
基于GPLv2和GPLv3的再分发选项;
-
修改GPLv2或GPLv3软件时应遵循的义务;
-
如何制定计划以正确且成功地遵守GPL协议;
-
GPL提供的业务优势;
-
与GPL结合使用的最常见的商业模式;
-
企业如何使用已有的GPL软件;
-
LGPLv2.1和LGPLv3的基础知识,以及它们分别与GPLv2和GPLv3的区别;
-
开始了解有关软件的衍生和组合作品的复杂性的基础知识。
CHAPTER 1 WHAT IS SOFTWARE FREEDOM?
第一章 什么是软件自由?
Study of the GNU General Public License (herein, abbreviated as GNU GPL or just GPL) must begin by first considering the broader world of software freedom. The GPL was not created in a vacuum. Rather, it was created to embody and defend a set of principles that were set forth at the founding of the GNU Project and the Free Software Foundation (FSF) -- the preeminent organization that upholds, defends and promotes the philosophy of software freedom. A prerequisite for understanding both of the popular versions of the GPL (GPLv2 and GPLv3) and their terms and conditions is a basic understanding of the principles behind them. The GPL family of licenses are unlike nearly all other software licenses in that they are designed to defend and uphold these principles.
研究GNU通用公共许可证(此处缩写为GNU GPL或简称GPL)必须首先考虑更广泛的软件自由世界。 GPL不是凭空产生的,它是为了体现和捍卫在GNU项目和自由软件基金会 (FSF) 成立时提出的一系列原则而创建的,FSF是一个维护、捍卫和促进软件自由哲学的卓越组织。 理解GPL的两个流行版本(GPLv2 和 GPLv3)及其条款和条件的先决条件是对它们背后的原则有基本的理解。GPL系列许可证与几乎所有其他的软件许可证不同,因为它们旨在捍卫和维护这些原则。
1.1 The Free Software Definition
1.1 自由软件的定义
The Free Software Definition is set forth in full on FSF's website at http://fsf.org/philosophy/free-sw.html. This section presents an abbreviated version that will focus on the parts that are most pertinent to the GPL.
自由软件定义在FSF的网站 http://fsf.org/philosophy/free-sw.html 上有完整的阐述。 本节提供一个缩略版,将重点放在与GPL最密切的部分。
A particular user has software freedom with respect to a particular program if that user has the following freedoms:
如果某个特定用户具有以下自由,则这个用户就具有与特定程序相关的软件自由:
-
The freedom to run the program, for any purpose.
-
The freedom to study how the program works, and modify it
-
The freedom to redistribute copies.
-
The freedom to distribute copies of modified versions to others.
-
出于任何目的执行程序的自由;
-
了解程序的运行机制,可以随意修改的自由;
-
随意分发软件副本的自由;
-
将修改后的软件副本分发给他人的自由。
The focus on "a particular user" is particularly pertinent here. It is not uncommon for a subset of a specific program's user base to have these freedoms, while other users of the same version the program have none or only some of these freedoms. Section [12.2] talks in detail about how this can unfortunately happen even if a program is released under the GPL.
对“特定用户”的关注在这里尤为重要。某个特定程序的用户群的一部分人拥有这些自由的情况并不少见,而同一版本程序的其他用户则没有或只有其中的一部分自由。第 12.2 章节详细讨论了这种情况,即使程序是基于GPL发布的。
Many people refer to software with these freedoms as "Open Source." Besides having a different political focus from those who call such software by the name "Free Software"1, those who call the software "Open Source" are often focused on a side issue. Specifically, user access to the source code of a program is a prerequisite to make use of the freedom to modify. However, the important issue is what freedoms are granted in the license that applies to that source code.
许多人将具有这些自由的软件称为“开源”。除了与那些将此类软件称 为“自由软件” 1 的人有着不同的政治关注点之外,将软件称为“开源”的人通常关注的是一个次要问题。具体来说,用户访问程序的源代码是实现修改自由的先决条件。然而,重要的问题是在适用于该源代码的许可证中授予了哪些自由。
Software freedom is only complete when no restrictions are imposed on how these freedoms are exercised. Specifically, users and programmers can exercise these freedoms noncommercially or commercially. Licenses that grant these freedoms for noncommercial activities but prohibit them for commercial activities are considered non-free. The Open Source Initiative (OSI ) (the arbiter of what is considered "Open Source") also regards such licenses as inconsistent with its "Open Source Definition".
只有当如何行使这些自由没有任何限制时,软件自由才是完整的。具体而言,用户和程序员可以非商业或商业的方式行使这些自由。那些仅限于非商业活动的一些自由,但禁止商业活动自由的许可,被认为是非自由的。开源促进会(OSI)(被认为是“开源”的仲裁者)也认为此类许可证与其“开源定义”不一致。
In general, software for which any of these freedoms are restricted in any way is called "nonfree" software. Some use the term "proprietary software" more or less interchangeably with "nonfree software". The FSF published a useful explanation of various types of software and how they relate to one another.
一般来说,以任何方式限制自由的软件被称为“非自由”软件。有些人或多或少地将“专有软件”一词与“非自由软件”互换使用。 FSF发布了一份有用的对各种类型的软件以及它们之间的相互关系的解释
Keep in mind that none of the terms "software freedom", "open source" and "free software" are known to be trademarked or otherwise legally restricted by any organization in any jurisdiction. As such, it's quite common that these terms are abused and misused by parties who wish to bank on the popularity of software freedom. When one considers using, modifying or redistributing a software package that purports to be Open Source or Free Software, one must verify that the license grants software freedom.
请记住,“软件自由”、“开源”和“免费软件”等术语均未被任何司法管辖区的任何组织注册商标,或以其他方式限制使用。这些术语被某些机构滥用和误用是很常见的现象,因为他们希望扩大软件自由的普及度。当考虑使用、修改或重新分发声称是开源或自由软件的软件包时,必须验证许可证是否授予软件自由。
Furthermore, throughout this text, we generally prefer the term "software freedom", as this is the least ambiguous term available to describe software that meets the Free Software Definition. For example, it is well known and often discussed that the adjective "free" has two unrelated meanings in English: "free as in freedom" and "free as in price". Meanwhile, the term "open source" is even more confusing, because it appears to refer only to the "freedom to study", which is merely a subset of one of the four freedoms.
此外,在本文中,我们通常更喜欢“软件自由”一词,因为在那些描述符合自由软件定义的软件的一堆术语中,它的歧义最小。例如,大家经常讨论的英文中的形容词“自由”,它有两个不相关的含义:“使用的自由”和“价格的免费”。同时,“开源”一词更令人困惑,因为它似乎仅指“学习的自由”,这仅仅是四个自由中的一个。
The remainder of this section considers each of each component of software freedom in detail.
本节的其余部分将详细考虑软件自由的每个组成部分。
1.1.1 The Freedom to Run
1.1.1 执行程序的自由
The first tenet of software freedom is the user's fully unfettered right to run the program. The software's license must permit any conceivable use of the software. Perhaps, for example, the user has discovered an innovative use for a particular program, one that the programmer never could have predicted. Such a use must not be restricted.
软件自由的首要原则是用户拥有完全不受限制地执行该程序的权利。该软件的许可证必须允许用户以任意方式使用软件。例如,也许用户发现了针对一个特定场景的创新用途,这个场景可能是程序员从未预料到的。不得限制此类用途。
It was once rare that this freedom was restricted by even proprietary software; but such is quite common today. Most End User License Agreements (EULAs) that cover most proprietary software typically restrict some types of uses. Such restrictions of any kind are an unacceptable restriction on software freedom.
曾经很少有使用软件的自由受到限制的情况,在专有软件中也很少见;但现在却很普遍。 大多数基于最终用户许可协议(EULAs)的专有软件,通常限制某些类型的用途。任何这些形式的限制对软件自由来说,都是不可接受的。
1.1.2 The Freedom to Change and Modify
1.1.2 更改和修改程序的自由
Perhaps the most useful right of software freedom is the users' right to change, modify and adapt the software to suit their needs. Access to the source code and related build and installation scripts are an essential part of this freedom. Without the source code, and the ability to build and install the binary applications from that source, users cannot effectively exercise this freedom.
软件自由的最有用的权利也许是用户拥有根据自己的需求更改、修改和调整软件的权利。对源代码以及相关的构建和安装脚本的访问权限,是该自由的重要组成部分。如果没有源代码,以及基于该源码构建和安装二进制应用程序的脚本,用户就无法有效地行使这种自由。
Programmers directly benefit from this freedom. However, this freedom remains important to users who are not programmers. While it may seem counterintuitive at first, non-programmer users often exercise this freedom indirectly in both commercial and noncommercial settings. For example, users often seek noncommercial help with the software on email lists and in user groups. To make use of such help they must either have the freedom to recruit programmers who might altruistically assist them to modify their software, or to at least follow rote instructions to make basic modifications themselves.
程序员是这种自由的直接受益者。但是,这种自由对于非程序员的用户来说也很重要。虽然看起来似乎有点违反直觉,但非程序员用户通常在商业和非商业环境中,间接行使这种自由。例如,用户经常在电子邮件列表和用户群组中需求软件上的非商业性帮助。为了能够使用这种便利,必须允许他们自由地招募可能会免费帮助他们修改软件的程序员,或者允许他们按照使用说明可以自己进行基本的修改。
More commonly, users also exercise this freedom commercially. Each user, or group of users, may hire anyone they wish in a competitive free market to modify and change the software. This means that companies have a right to hire anyone they wish to modify their Free Software. Additionally, such companies may contract with other companies to commission software modifications.
更常见的是,用户还可以在商业上行使这种自由。每个用户或一组用户都可以在竞争激烈的自由市场中,雇用他们希望的任何人来修改和更改软件。这意味着公司有权雇用任何愿意修改其免费软件的人。此外,公司可以与其他公司签订合同,委托进行软件修改。