Linux 版 (精华区)
发信人: howdoit (教练让我上场!!!), 信区: Linux
标 题: 为什么要为你的下一个程序库使用GPL库呢?
发信站: 哈工大紫丁香 (Tue May 18 09:07:26 1999), 转信
《Linux公报》……让Linux更富魅力!
为什么要为你的下一个程序库使
用 GPL 库呢?
By Eric Kidd 翻译: Gump
GNU 项目的创建者 Richard Stallman 最近写了一篇题为"为什么
不为你的下一个库使用GPL库?"的文章。他认为把新的程序库置于GPL
之下将给自由软件的作者带来好处. 如果你还没有读过这篇文章,你
应该读一下. Stallman 对自由软件懂得很多, 并且在文中提出了几个
重要的观点。
[译者注: GNU: Gnu's Not Unix; GPL: General Public License]
但是我并不同意Stallman的观点. 他的文章漏掉了几个理由,可以
用来反对为程序库使用GPL, 而且其中的一些确实很重要. 首先, GPL
下的程序库并不能用于所有的自由软件. 其次, 美国的法律可能允许
专有软件以任何方式使用 GPL 下的软件. 再次, GPL下的程序库可能
阻碍人们使用GNU/Linux 系统.
GPL 保护下的程序库不能用于所有的自由软件
专有软件可能可以任何方式使用 GPL 下的软件
GPL 保护下的程序库可能阻碍人们使用 GNU/Linux 系统
那么,我是一个自由的软件作者吗?我该用什么许可证呢?
GPL 保护下的程序库不能用于所有的自由软
件
我真幸运 - 我以写自由软件为生. 当我决定停止编写专有软件
时, 我的报酬减少了一半.(别担心; 我会想办法把它全拿回来的.) 我
的新雇主付给我钱, 要我为几所大学公用的一个邮件服务器升级。我
也作一份顾问工作, 因为报酬可观. 我写的所有代码都可以用于使用
GPL的程序, 但是只有很少的一部分本身是在GPL下发行的.
虽然我写的全是自由软件, 我的程序并不能拒绝与 GPL 下的库连
接。一个使用GPL的程序库只能用于使用GPL的程序. 而使用 X11,
BSD, Netscape, Mozilla或Artistic 的许可证的程序不能使用GPL下
的程序库. (这些许可证协议中有的有缺陷,但这是另一个话题.)
我的雇主的邮件服务器使用的是BSD类型的许可证. 我没有足够的
影响力让他们使用GPL. 不幸的是,这意味着我无法使用GPL下的库来改
进程序. 我得花费时间来重新实现以前的程序库的断档版本,而不能
为自由软件社会多做点有益的事。我的时间本来可以更好的用于给那
个邮件服务器增加新功能,或者增强一个LGPL的库。
[译者注: LGPL: Library General Public License]
所以,在这种情况下,为程序库使用GPL的确伤害了自由软件。这
不是一个简单的问题。
消息更新:RMS 在 gnome-list 发表了以下的贴子:
这个例外是多余的,因为象 X11 和 BSD 这样的简单的
non-copyleft 许可证已经是与GPL兼容的。
所以如果你想要写一个 non-copylefted 应用程序,在 X11
许可证下发布,并且与一个 GPL 保护的库连接,这是允许的。
连接而成的可执行程序当然在GPL的约束下,但是程序的源代码
将仅仅在X11 的约束下。
因此,使用 XFree86 的许可证的代码可以使用 GPL 保护的库。
BSD 许可证则可能与 GPL 冲突,除非去掉其中的广告语,但不管怎样
这是件好事。然而,使用 NPL, MPL或类似的许可证的代码还是会有
问题。感谢 gsv 像我们指出这一点。
专有软件可能可以任何方式使用 GPL 下的
软件
GPL 是经过精心编写的,它的绝大部分都能在法庭上站的住脚。
(GPL 从未被测试过, 可能是因为Stallman的法律上的志愿者已经确信
使违背者们呆在了法庭外。) 不管这是好是坏,这对于专有软件来说
是一个好机会,可以使用 GPL 下的库, 即使许可证禁止了这样做。
GPL是通过版权法实施的,美国(以及其他的许多国家)的版权法
都对“合理使用”有例外。两种重要的合理使用包括相兼容,和逆向
工程。
设想你想要写一个Windows的程序,但是你需要使用一个未公开的
API。Microsoft 不会提供给你信息的,因此你不得不自己寻找。美国
法律通常允许你反汇编Windows的一部份和调用秘密函数,即使
Microsoft说你不能。类似的,Microsoft 不能阻止 Samba 小组对
Windows的文件共享作逆向工程。
设想你在销售 Linux 上的专有软件。如果用户的系统中有
Readline库,你将要使用它,但是Readline 库是使用 GPL的。因此你
决定不自带Readline库,相反,你修改了你的程序去查找Readline,
并且要求用户自己安装它。(例如,在RedHat 5.2 中,Readline 是
缺省就安装的。)
你这样违反了法律吗?你并没有为任何人复制Readline的拷贝,
GPL 并不阻止你拷贝自己的程序。你是自己使用Readline,而 GPL 并
不禁止这个。(即使GPL想禁止,它在“合理使用”的例外规定下也可
能无效。)你的用户可能不把你的程序与Readline连接,而美国的法
律允许他们这样做。(GPL 也不会阻止他们)
那么,有什么能阻止专有软件使用 Readline 呢?你的程序是
Readline的派生品?因而被GPL约束?这并不恰当,既然它没有包含任
何的Readline的代码。使用 #including Readline的头文件就使之受
GPL的约束?很可能不 -- 一个好的律师会说,这与“以内部兼容为目
的的逆向工程”是一样的。也许你不得不在一个干净的环境下重新键
入头文件,但这对小的库来说并不难。
那么,一个专有的应用程序可以动态连接到一个GPL的库上吗?也
许可以。但如果一个专有的应用程序不能动态连接到一个GPL的库,那
么Microsoft ?也许可以对 WINE 和 Samba 找麻烦。这是一把双刃
剑。
请记住:我不是律师。你不能把我说的任何话作为法律上的建
议。去雇一个专业的吧。
GPL'd libraries may discourage people
from using GNU/Linux
在过去的十二个月里,许多人开始注视Linux。它便宜,免费(不
是免费啤酒),并且可以运行他们所有的 UNIX 应用程序。的确,没
有什么理由拒绝使用 Linux。
但是,让我们假设所有的 Linux 应用程序都是 GPL 下的。
(??),你需要写GPL约束的程序,或者选择另一个操作系统。Unix
的厂商不会告诉你使用什么许可证,Microsoft 也不会告诉你为你的
软件应使用什么许可证。
象我这样的喜爱 Linux 的程度,选择很容易。我认识的每一个人
都会扔掉他们的Linux 服务器,迁移到Solaris 或 Windows NT。这并
不好。对人说,“要用我们的产品,必须用我们的许可证”是在强人
所难,不会有什么人同意的。
那么,我是一个自由的软件作者吗?我该用
什么许可证呢?
这是你的库。想一想这些问题,然后做你想做的。
关于 BSD 许可证的注释:BSD 许可证包括一段“广告”词,它
可能引起任何愚蠢的问题。如果一切正常,你的老板会很快从他们的
许可证中去掉这段话。
版权所有 (C) 1999 NJLUG
出版于第38期《Linux公报》1999年3月 中文版第五期
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.388毫秒