关于Netscape公共许可证(原始版本)

这篇文章是1998年3月10日至12日写的,关于当时可用的NPL草案。


Netscape公共许可证或NPL代表了一种认真的尝试设计新的自由软件分发条款。这很有趣尝试,但它有需要纠正的重大缺陷。一个缺陷非常严重,我们应该将其视为使程序非免费。其他的有不同的后果:一个发送了一个糟糕的哲学消息,而另一个则为免费用户带来了重大的实际问题软件社区。

不良贷款仍为草案,仍在修改中;这件事的目的文章不是攻击和谴责,而是鼓励改进不良贷款。如果到那时这些问题中的一些已经纠正你读了这个,好多了,我们可以把那些过时的问题放在一边。

1.并非所有用户都是平等的

我在NPL中注意到的第一个问题是它没有给出Netscape和我们其他人享有同等权利,就像GNU GPL一样。低于NPL,我们只能使用NPL中指定的Netscape代码,但是Netscape可以以任何方式使用我们的更改软件的专有许可版本。

这里的问题很微妙,因为这并不能使程序非免费。它不会阻止我们重新发布程序,或者改变它;它并没有剥夺我们任何特定的自由。从纯粹务实的角度来看,它可能看起来不像根本没有问题。

问题在于这种情况所包含的深层次信息。否认平等合作的理念并表示,从事免费项目意味着为专有软件产品。接受这个条件的人是可能会被它改变,而这种改变不会加强我们的社区。

针对这种不对称性,一个建议的解决方案是对它可能会持续三到五年。那将是一个很大的改进,因为时间限制会否定有问题的更深入的信息。

这种情况的实际影响被另一种情况最小化不良贷款的缺点:它并没有被设计成完全的版权。换言之,它并没有尽力确保修改用户制作的是免费软件。

2.没有版权

不良贷款以版权形式存在;它明确表示用户所做的修改必须根据NPL发布。但是这个仅适用于对现有代码的修改-不添加子例程,如果它们放在单独的文件中。作为一种实践重要的是,这意味着如果您愿意,可以很容易地进行专有更改to:只需将大部分代码放入一个单独的文件中,然后调用收集较大的工作。只有添加到旧的文件必须根据NPL发布,而不会他们自己非常有用。

缺乏真正的版权并不是一场灾难;它不会使软件不免费。例如,XFree86分销条款没有尝试使用copyleft,但XFree86仍然是自由软件。BSD也是非版权自由软件(尽管BSD条款严重缺陷而且不应该被模仿——如果你想发布非版权自由软件,请改用XFree86术语)。Netscape软件还可以自由软件没有被抄袭。

然而,虽然这并不是灾难性的,但却是一个缺点。由于NPL看起来像一个版权所有者,一些用户可能会感到困惑并可能采用不良贷款,认为他们正在获得版权保留对他们的软件的好处,当这不是案例。为了避免这种结果,我们需要努力教育人们谈论一个不容易用几句话解释的问题。

3.不尊重隐私

NPL中的下一个问题是作秀:如果你做出改变,您需要发布它。您自己使用的私有更改包括不允许;只向几个朋友分发更改也是被禁止的。

当我们考虑自由软件的问题时,我们通常关注发布和修改的自由,因为这是什么软件开发人员最常尝试阻止。但自由不当你不想分发副本时,分发副本也很重要。对于例如,进行修改而不向任何人显示的自由是我们所谓的“隐私”的一部分将您的修改分发给几个朋友,但不要将其显示给公众(或者不展示)也很重要。(当然,如果该程序是免费的,您的朋友可以自由将其传递给其他人如果他们想要,但不需要。)

纠正不良贷款以尊重这一基本自由是绝对必要的至关重要,我们的社区必须坚定地坚持这一点。不是这样的值得为一个额外的程序牺牲一个至关重要的自由,不无论它是多么有用和令人兴奋。

4.与GPL不兼容

不良贷款还有另一个严重问题:它与GNU GPL。不可能将NPL覆盖的代码和GNU结合起来GPL将代码集中在一个程序中,甚至不通过链接单独的对象文件或库;不管怎么做,都必须违反一个或另一个许可证。

发生此冲突是因为GPL对copyleft很认真:它是旨在确保自由程序的所有更改和扩展必须是免费的。因此,它不会留下进行更改的漏洞通过将它们放入单独的文件中而获得所有权。要关闭此漏洞,GPL不允许将copyleft程序与具有其他限制或条件的代码,例如不良贷款。

与GPL不兼容并不意味着程序是非自由的;没有提出基本的道德问题。但它可能会创建一个将代码库分为两部分是我们社区面临的严重问题不能混合的集合。实际上,这个问题需要解决。

通过更改GPL解决此问题是可能的,但这需要放弃copyleft,弊大于利。但是它只需对不良贷款进行少量调整,就可以解决这个问题。(请参阅下面的具体方法。)

5.关于姓名的注释

NPL代表Netscape Public License,但GPL不代表GNU公共许可证。我们许可证的全名是GNU General公共许可证,缩写为GNU GPL。有时人们会忽略单词“GNU”,只写GPL。

结论

由于问题3和问题4最严重,我希望人们会礼貌合理地向Netscape解释解决问题的重要性他们。解决方案可用;他们只需要决定使用它们。有传言说网景公司已经决定纠正问题3,但是让他们知道这对你来说很重要,不会造成任何伤害。那里没有消息说他们计划纠正问题4。

以下是允许链接NPL覆盖的代码和GPL一起覆盖了代码。可以通过将这两项相加来实现NPL段落:

A.1、。您可以根据GNU的条款分发受保作品通用公共许可证,版本2或更新版本,由自由软件基金会,当它包含在一个较大的作品中时作为一个整体,按照相同的条款进行分配GNU通用公共许可证的版本。A.2、。如果您收到了一份根据版本或GNU General Public的版本选择许可,您可以修改一些NPL覆盖的部分在这个更大的作品中,你可以选择修改这些部分表示其分发条款为该版本或GNU通用公共许可证的版本选择。

这允许人们将NPL覆盖的代码与GPL覆盖的编码结合起来,并根据GNU的条款分发合并的工作GPL。

它允许人们发布对此类组合工程的修改根据GNU GPL的条款,但最简单的发布方式它们属于不良贷款。

当人们利用A.2时,他们的更改只会发布根据GNU GPL的条款;所以这些变化不会可供Netscape在专用版本中使用。这很有道理Netscape会认为这是不幸的。

然而,NPL为专有软件开发人员提供了一种简单的方法通过放置将它们的代码放入单独的文件中,并将组合调用为Larger工作。事实上,这对他们来说比A.2对GPL来说更容易用户。

如果Netscape认为它可以忍受(有效地)专有修改,当然涵盖了GPL的麻烦相比之下,修改是很小的。如果Netscape相信实际考虑将鼓励大多数专有软件世界将其更改发布回Netscape,而不会被迫这样做,同样的理由也应该适用于自由软件世界也是如此。Netscape应该认识到这一变化是接受并采用它,以避免面对自由软件面临严重困境的开发人员。