附件 1:源码提供要约
从实践指南到 GPL 合规指导⑩
许多分发者在分发二进制代码时只会附随源码提供要约,而不是直接提供完整的源码包。如果分发源码的成本是按件计费,这种做法可带来价值。例如,对于永久性存储器因过小而无法容纳源码的嵌入式产品,或者如果产品发货时没有随附 CD,而只有手册或其他印刷材料,这不失为明智之举。
但这么做实际上明显延长了您履行义务的持续时间。要约的有效期必须为完整的三年,自最后一次分发二进制代码(按照 GPLv2 的规定)或者二进制代码或备件(按照 GPLv3 的规定)计起。源码请求和提供系统的有效期必须比产品生命周期持续更久。
此外,如需合规 GPLv2 的条款,那么您无法通过网络来提供源码。GPLv2 规定只能通过物理介质提供源码。这通常意味着您必须在产品生命周期结束后的很多年继续制作最新版本的“源码 CD”。
除了利用物理介质外,提供网络链接以供下载源码的方式也可接受。此方法可让能够快速上网的人更快地获取源码,而且通常能够减少物理介质分发请求数。(GPLv3 §6(b) 允许仅通过公共网络分发源码,完全不需要物理介质分发。我们会在本节的最后详细讨论这一点。)
以下是一份符合 GPLv2 和 GPLv3 的合规要约建议模板,此要约可随附在印刷材料中随二进制代码分发:
The software included in this product contains copyrighted software that is licensed under the GPL. A copy of that license is included in this document on page X . You may obtain the complete Corresponding Source code from us for a period of three years after our last shipment of this product, which will be no earlier than 2011-08-01, by sending a money order or check for $5 to:
GPL Compliance Division
Our Company
Any Town, US 99999
Please write “source for product Y ” in the memo line of your payment.
You may also find a copy of the source at
http://www.example.com/sources/Y/.
This offer is valid to anyone in receipt of this information.
有一些关于此要约的重要细节:首先,分发者要求收取复印费。GPLv2 允许“收取费用,但不得超过通过物理媒介分配原始码所产生的费用”,此费用必须合理。如果复印费和 CD 邮费超过 10 美元,则应寻找较便宜的 CD 储存和邮寄方法,没有必要向社区收取过多费用。滥用此条款在源码分发上获取利益很可能会产生维权行动。
第二,最后一行明确此要约对请求源码的所有人均有效。这是因为 v2 §3(b) 规定要约应“向任何第三方”提供对应源码的副本。GPLv3 也包含类似规定,指明此要约必须对“拥有目标代码的所有人”有效。v2 §3(c) 和 v3 §6(c) 中指出了这些要求,以便非盈利性分发者可将这些要约随附
⑩http://softwarefreedom.org/resources/2008/complianceguide.html。
于分发包一起传递。因此,这些要约不仅对您的客户有效,而且适用于收到客户二进制代码分发包副本的所有人。许多分发者会忽视此规定,以为自己只需理会直接客户的请求。
选择随附源码提供要约而不是直接提供源码的做法对于能够处理合规履行流程的公司而言特别有用。为了避免非盈利性分发者承担履行合规请求的义务,GPLv2 §3(c) 和 GPLv3 §6(c) 允许其仅传递自己收到的要约。
请注意商业分发者无法利用选项 (c) 的例外情况;因此,尽管源码提供要约必须对收到此要约(按照 v2 的规定)或目标代码(按照 v3 的规定)的所有人有效,但不会免除任何商业再分发产品者的合规义务。许可条款适用于分发 GPL 软件的所有人,不管其是否是原始分发者。以供应商 V 为例,其使用 GPL 源码开发了一个适用于嵌入式设备的软件平台。制造商 M 与 V 签署合同,将此软件作为固件安装在自己的设备中。V 向 M 提供软件,并在其中随附合规源码提供要约。在此情况下,M 不能仅直接将 V 的源码提供要约交付给自己的客户。由于 M 也是以盈利为目的 GPL 软件,因此也须合规 GPL 并向自己的客户提供源码(或 M 自己的源码提供要约)。
这一情况说明对于客户可能会再分发的产品,源码提供要约的做法并不可取。如果产品中已随附源码,则您向自己客户的分发符合规定,而且您的客户再向其客户分发(未修改的)产品也是合规的,因为两者的产品中都已包含源码。而如果您选择随附源码提供要约,则您的分发符合规定,但您的客户再分发时若没有附随自己的源码提供要约,则不会“继承”您的合规性。
按照 GPLv3 的规定分发产品时适用的条款具有较大差异。按照 v3,您只需通过网络服务器提供源码即可,前提是公众可获得源码且源码自产品或相关备件最后分发日起三年有效。所以,仅通过网络分发便可履行义务。这简化了仅按 v3 分发产品时的“源码提供要约”流程,减轻了商业分发者的合规负担。但是,在改为仅以网络为基础的履行流程前,必须先确认您是否确实可依据 GPLv3 分发所有软件。某些程序确实适用“GPLv2 或任何后续版本”(英文通常简写为“GPLv2-or-later”)许可。此类许可让您可按照 GPLv3 再分发产品。但是,一些热门程序只适用 GPLv2 许可,无法进行“任何后续版本”许可(英文通常简写为“GPLv2-only”)。对于后者,您不能仅通过网络履行义务。
如果确定整个产品中的所有 GPL 作品都支持升级到 GPLv3(或者一开始时便已采用 GPLv3),则只需随附如下简单源码提供要约:
The software included in this product contains copyrighted software that is licensed under the GPLv3. A copy of that license is included in this document on page X . You may obtain the complete Corresponding Source code from us for a period of three years after our last shipment of this product and/or spare parts therefor, which will be no earlier than 2011-08-01, on our website at http://www.example.com/sources/productnum/.
按照 GPLv2 和 GPLv3 规定,每次分发产品时,源码提供要约必须附随于许可证文本一起提供,电子版或打印版形式均可。