Copyleft是一种让程序或其它作品保持自由(是言论自由的自由,而不是“零价格”)的通用方法,并要求对Copyleft程序的任何修改和扩展都保持自由。
让程序成为自由软件最简单的方法是放弃对它的版权并把它放到公共领域中。这使得他人在需要的时候可以共享这个软件及其对它的改进。但这也使得其它一些不愿合作的人把它们转变成专有软件。他们可以或多或少的进行修改,并把成果作为商业产品发布。这些修改过的程序不再像它们的原始作者所期望的那样允许用户自由的使用,这种自由被中间商剥夺了。
在GNU工程中,我们的目标是让所有的用户可以自由地重新发布或修改GNU软件。如果允许中间商剥夺这种自由,我们也许会以此“获得很多的用户”,但这些用户便不再拥有自由。所以我们并不把GNU软件发布到公共领域,我们对它保留“Copyleft”。所谓Copyleft是指任何人都可以重新分发软件,不管有没有进行修改,但必须同时保留软件所具有的自由特性。Copyleft是为了保证所有用户都拥有自由。
Copyleft同时也鼓励了其它的程序员加入自由软件开发的行列。像GNU C++编译器这样的重要的软件之所以存在,也是为了这一点。
除此之外,Copyleft也帮助那些希望对完善自由软件作出贡献的程序员得到贡献的许可。这些程序员通常是为那些一心想挣钱的公司或大学工作。程序员可能希望把她的努力贡献到自由软件社区,但其老板可能希望把这些工作变成商业软件产品。
当我们向老板解释说如果不把这些改进的版本作为自由软件发布是非法的时候,他们往往会决定把它们作为自由软件发布而不是把它们抛弃。
一个程序遵循Copyleft,我们首先声明它是有版权的;然后,我们给它加上发布条款,这个条款就是一个法律声明,它赋予所有人有使用、修改和重新发布程序的代码及其衍生作品的权利,但要求在这个过程中保持发布规则不变。这样的话,代码和自由权利在法律上就不可分割了。
商业软件开发人员通过版权剥夺了用户的自由,我们使用版权来给予他它自由。这就是为什么我们把“版权(Copyright)”改称为“Copyleft”。
Copyleft是一种对程序进行版权保护的方法。它并不是放弃版权,因为这样会使Copyleft变得不可操作。“Copyleft”中的“left”,并不使用它在英语中“保留”的意思,而是指它(left,左)与通常的“版权(Copyright)”中的“right(右)”具有镜像的关系。
Copyleft是一种抽象的概念,抽象的概念是无法直接使用的。只有实现这个抽象概念,人们才能使用它。在GNU项目中,我们对大多数软件使用的一种实现Copyleft的法律文件是GNU通用公共许可证。GNU通用公共许可证通常被简写为GNU GPL。这里有一个有关它的常见问题页面。你也可以参考为什么FSF从软件作者处获得版权转让。
另一种实现Copyleft的法律文件,是Affero通用公共许可证(AGPL)。这个许可证的目标用户是针对服务器的软件。如果一个以AGPL授权的软件被运行在向公众提供服务的服务器上,那么对该软件的任何修改也必须要以源代码的形式对外发布。
除此以外,还有一种比较保守的Copyleft的许可证:GNU宽通用公共许可证(LGPL),它被应用于一部分(不是所有的)GNU函数库。 这个许可证以前被称为“函数库GPL”,我们修改了许可证的名字,原因是它原来的名字鼓励了开发人员过多地使用这个许可证。对于这个名字改变的必要性,请参考这篇文章:为什么你不应该对你的下一个函数库应用LGPL。
GNU自由文档许可证(FDL)是一种面向手册、教科书和各种文档的Copyleft许可证,它保证了所有人都可以自由的复制和重新发布这些文档,不管是否进了修改,也不管是商业的还是非商业的。
相应的许可证应当与所有的GNU软件源代码和手册一同发布。
假如你是版权所有人,所有这些许可证都被设计成很容易运用到你的作品中。你不用去修改许可证,你只需要在你的作品中包含这样一份许可证文本,并在源代码文件中适当的表明引用这个许可证就可以了。
对很多不同的程序使用相同的发布条款可以使得在这些程序中相互复制代码变得容易。因为它们都具有相同的发布条款,你就不需要去考虑这些条款是否相互兼容。LGPL第二版许可证允许你把发布条款改为标准的GPL许可证,所以你可以把LGPL的代码应用到其它GPL的程序中去。LGPL第三版是做为一个特例加入到GPL第三版中,所以它们也是相互兼容的。
如果你希望对你的程序通过应用GNU GPL或GNU LGPL保留Copyleft,请参考许可证指南 页面上的内容。请注意,许可证是一个整体,你在使用时只能整体引用,只引用其中的一部分是不允许的。
如果你希望对你撰写的手册通过应用GNU FDL保留Copyleft,请参考FDL结尾部分的内容以及GFDL指南页面上的内容。与GNU GPL一样,你必须使用整个许可证,而不能是其中的一部分。
经常会看到一些Copyleft的作品使用一个用圆圈套起来的反着的字母C来表明该作品是Copyleft的。这样做在法律上是个常见错误。Copyleft的作品实际也是被版权法保护的,因此即便是Copyleft的作品,也应该使用版权标志(一个被圆圈套起来的字母C),或者标明“版权所有”
如前所述,圆圈里套着一个开口向左的C,这个符号经常被用来表明Copyleft。但是这个符号并没有任何法律效力,也无法取代版权符号。它也许可以出于娱乐的目的,使用在图书封面,海报或者类似的材料上。但若要用在网页上,还需谨慎。