关注了就能看到更多这么棒的文章哦~
A license change for Nmap
By Jake Edge
January 13, 2021
DeepL assisted translation
https://lwn.net/Articles/842436/
在我们的社区中,license terms(许可条款)很重要,这是大家应该都已经深有体会的。哪怕是一两个错别字,对 license 来说也是严重的问题,因此人们希望尽量减少自由软件项目中的新增的许可证变种。在过去的几个月里,各种发行项目一直在讨论 Nmap 这个网络扫描工具中的 license 改动。这些改动似乎增加了限制,使得该软件不再是自由软件,尽管这个改动的本意不是这样。但是这一事件确实说明了 license clarity (许可证的清晰度)是非常重要的。
10 月 3 日,Nmap 7.90 发布了,它附带了一个改动过的 license,名为 Nmap Public Source License (NPSL)0.92 版。在一月中旬的时候 NPSL 更新到了 0.93 版本。以前的 Nmap 版本是按 GPLv2 发布的,只是在项目中 "derivative work (衍生作品)" 的定义上增加了一些额外的描述。
License 的改动在 Nmap 7.90 的发布公告和变更日志中都有公开描述。"把 Nmap 许可证从 GPLv2 的修改版本升级到一个更干净更好的版本 (仍然基于 GPLv2),命名为 Nmap 公共源代码许可证(Nmap Public SourceLicense)来避免混淆。" 没过多久,各个发行版提供商就开始注意到这一变化。在 10 月中旬 GNU Guix 发行版的开发邮件列表上,Marius Bakke 询问,新的 license 是否把 Nmap 变成了非自由软件。:
…其中规定:"专有厂商(Proprietary vensors):本 license 不允许您将 Nmap 源代码和可执行程序附带与您的软件一起发布 (无论是独立发布或在设备中提供)。
……我很确定这对 Guix 或一般的自由软件发行版来说是不可接受的许可证。所以我认为我们应该把 license 改回去,然后再重新更新一下 7.90 版本。
大家普遍认为这段文字(来自上面的引用,而非 license 本身)构成了对 "field-of-use (使用领域)" 的限制,这与 FSF 自由软件定义中的 "freedom 0" 相违背。仔细看进去之后,Bakke 注意到 license 本身的文字有问题。
重新阅读了原文(之前邮件中没有引用的部分),可以看出一点:专有软件公司(Proprietary software company)如果想在他们的程序中使用或合并本 license 所涵盖的软件,就必须联系许可人来购买一个单独的 license。开源开发者如果希望将本软件的部分内容纳入到与 license 有冲突的自由软件中,可以写信给许可证颁发者来申请豁免。
[…]所以一个 "专有软件公司" 不能在程序中使用或包含 nmap,哪怕该程序是自由软件?
这些信息导致了人们创建了一个 Bug 给 Debian,认为这个新的 license 不再是自由软件协议了。Gentoo 这里也创建了一个 bug。最终导致 12 月初在 Nmap 仓库中创建了一个 GitHub 问题,Nmap 的创始者 Gordon "Fyodor" Lyon 显然是在 GitHub 上看到了这个争议。
Lyon 说,他也认为这个 Section 0 部分的措辞不好,没有讲出出项目想要表达的内容:
我们的意图简单来说,由于 NPSL 条款不允许包含在专有软件中发布,所以"专有软件供应商"(跟其他任何人一样) 必须购买 Nmap OEM license 后,才可以将其包含在其专有软件中使用。如果 "专有软件供应商" 也在同时发布符合 NPSL 条款的自由软件,那就非常好了,我们当然不希望也不打算剥夺他们的权利。我们计划在下一个 Nmap 版本发布之前重写这一个 p 的措辞。
他也同意修改其他两个部分的措辞。在后来一封邮件中,Lyon 简单介绍了这些改动的初衷,表明这些改动是为了能改得对自由软件更加有友好:
我们改动 license 的主要目标是允许最终用户能毫无限制地自由使用 Nmap(包括使用在商业场景中),同时向那些想通过 Nmap OEM 计划基于 Nmap 来构建和销售商业产品的公司收费。我们的目标是避免近来越来越常见的那些提供功能受限的 "免费版本"、而针对收费的专业版来提供额外功能的做法。所以我们要么使用一个支持当前商业模式的许可证,要么切换到不同的商业模式,或者放弃商业模式并解雇目前全职改进 Nmap 的开发者。所以我们试图为大家找到最好的平衡点。
但在 GitHub issue 中,有几位评论者都对他的措辞感到不满意,因为他的说法听起来仍然是对 field-of-use 进行的限制,因为 "商业产品" 有可能可以是自由软件,它们不应该受到限制。正如 Micah Cowan 指出的那样,Lyon 可能表达错了意思,"实际上这里的意思应该是 '向那些想要构建和销售专有商业产品的公司收费' "。Lyon 在 12 月底表示赞同这个说法,接下来就来到了传统假期以及今年 1 月了。
1 月初,Fedora 发行版正式做出决定,无法接受 NPSL 0.92 license 的软件用在 Fedora 发行版中。Void Linux 也选择了回退到了更早的 Nmap 版本,也就是改动 license 之前的版本。但在 1 月 12 日,Lyon 宣布了一个新版本的许可证,旨在之前条款中的问题:
0.92 版本中包含如下说法:
>> 专有软件公司如果希望在其程序中使用或合并此 license 保护的软件,必须联系许可方购买单独的许可。
而 0.93 版则将这句话改写为:
>> 希望在自己的产品中使用或合并此 license 保护的软件的公司,可以看一下我们的 Nmap OEM 产品(https://nmap.org/oem/)是否更符合他们的需求。
我还更新了 Nmap Changelog,指出我们新版本的 NPSL 可以追溯涵盖之前的 Nmap 7.90 和 7.91 版本,所以用户和发行版提供商可以选择使用哪个 license 来使用 Nmap。
Lyon 也承认,NPSL 需要做更多的工作,"可能会完全取消,转为使用某个之前已经建立好的 license 上去",他希望这个修复能先缓解眼前的问题。是否能够实现这个目标还需要拭目以待,因为一些评论者对某些部分还是不完全满意。正如 Fedora 项目经理 Ben Cotton 所说:
谢谢你的响应。注释中的以下变化(我认为这是一个改动)仍然是 Fedora 所担心的:>> 这个许可证不允许重新发布 Nmap 或者直接使用于专有硬件中。包括独立发布软件或者包含在硬件设备、docker container、虚拟机等等中。
这个说法相当模糊,可以被各种解释,例如,不允许 Lenovo 在 Fedora Workstation 中预装 nmap。大多数硬件在某种程度上都是专有的,所以这是一个相当宽泛的限制。
虽然该文本并不是许可证的一部分,而只是一个注释,但它仍然会影响法院对 NPSL 的解读,这是 Cotton 的观点。很可能需要尽快发布一个 NPSL 0.94 来完全消除这个问题。在那之后,Nmap 可以得到更多的时间来清理其中的措辞,或完全更换一个 license。该项目确实得到了主要收费开发者的 copyright 授权,允许项目根据需要来更改 license。
事情发展到这个地步有点令人吃惊。根据 Nmap 7.90 的变更日志,这个项目早在 2006 年就开始了,之后一直运转得很好,直到 7.90 版本中突然引入了新的许可证。至少在 2006 年和 2013 年,Nmap 社区就讨论过这个问题,但显然发出来给更广泛的群体来进行 review。如果之前能让更多人了解到这个 license 变化的话,可能许多能立即出现的问题就已经解决掉了。
这个事件也许可以作为对其他自由软件项目的一个警醒。那些在考虑修改 license 的人当然应该尝试让更广泛的社区参与进来进行审查,也许可以使用 OSI 许可证讨论 mailing list 来进行讨论。此外,提议中的 license 改动的 "patch" 也可能从更多人的 review 中得到好处。除此以外,我们有充分的理由坚持使用已知的许可证。要找到一个与 NPSL 目标相同的现有许可证似乎并不难。使用这类 license 的话,这个工作就不会那么麻烦了。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~