当公司要求您转让版权
开发自由软件并以 GNU GPL 发布的的公司有时会以其他方式分发一些代码副本。如果他们以不同的许可向某些为此付费的用户分发完全相同的代码,通常允许将代码包含在专有程序中,我们称之为“出售例外”。如果他们仅以专有方式分发某些版本的代码,我们称之为发布该程序的纯专有版本。
“出售 GNU GPL 的例外”解释了为什么出售例外是可接受的,尽管只是勉强接受。相比之下,发布纯专有版本是完全错误的,就像任何其他专有软件一样。
公司通常使用他们开发的代码来完成这些事情。由于他们拥有该代码的版权,他们可以合法地以任何方式分发它,甚至可以并行以多种方式分发。但是,当您发布该自由程序的修改版本,而公司希望将其更改包含在其版本中时,会发生什么情况?
由于您是从 GPL 获得该程序的,因此当您分发修改版本时,您必须以 GPL 许可它。如果公司收到副本,它将能够根据 GPL 使用这些更改;它将不允许将您的更改包含在该程序中并为此出售例外。它也无法发布包含您代码的纯专有版本。如果这是您想要的结果,您将默认获得它。但是,如果公司打算出售例外,它可能会决定不使用您的更改。
但是,假设您不反对出售例外,并且您愿意让公司在将您的更改包含在程序中的同时这样做。您可以同意这一点,但您需要小心签署的内容,否则您可能会对结果感到惊讶。
公司可能会邀请您通过签署版权转让合同或贡献者许可协议,将您的版权转让或许可给该公司。这本身并不是本质上的坏事;例如,许多 GNU 软件开发人员已将版权转让给 FSF。但是,FSF 从不出售例外,并且其转让合同包括仅分发贡献者的代码并仅允许重新分发的承诺。
该公司的拟议合同可能不包括这样的承诺。它可能反而让公司以任何方式使用您的更改。如果您签署该合同,该公司可能会对您的代码执行各种操作。它可以继续出售包含您代码的程序的例外。它可以发布包含您代码的纯专有修改或扩展版本。它甚至可以仅在专有版本中包含您的代码。您的代码贡献最终可能会成为对专有软件的捐赠。
您可以自行决定允许哪些活动,但以下是 FSF 的建议。如果您计划对该项目做出重大贡献,请坚持要求贡献协议规定包含您贡献的软件版本必须在自由软件许可下向公众提供。这将允许开发人员出售例外,但阻止其在仅在专有许可下可用的软件中使用您的贡献。
如果您的贡献较小,您可以接受较弱的条件,即公司在自由软件版本中以及可能在非自由程序中提供您的贡献。这将允许公司在仅在专有许可下可用的修改软件中使用您的贡献。发布专有软件从来都不是一件好事,但如果您的更改较小,那么改进自由版本可能比抵制非自由版本更重要。
您可以通过在合同中坚持适当的条件来控制这些结果。要允许出售包含您代码的程序的例外,但拒绝让公司发布包含您代码的纯专有版本,您可以坚持类似于这样的条件
FOO 分发的任何基于(如 GNU 通用公共许可证第 3 版中定义)Hacker 代码的程序应由 FOO 在(a)“GNU 通用公共许可证 (GPL) 版本 2 或更高版本”,或 (b) 上述 (a) 中的许可下提供,但将“2”替换为任何更高的现有 GPL 版本号。如果 FOO 以这种方式免费向公众提供程序的源代码,它也可以在允许他们将程序代码与非自由代码链接并在他们自己选择的许可下以二进制形式发布组合的条款下,向其某些用户分发相同的程序。
或者,如果您反对的是您的代码的某些变体可能仅在专有版本中发布,您可以坚持类似于这样的条件
FOO 分发的任何基于(如 GNU 通用公共许可证第 3 版中定义)Hacker 代码的程序应由 FOO 在(a)“GNU 通用公共许可证 (GPL) 版本 2 或更高版本”,或 (b) 上述 (a) 中的许可下提供,但将“2”替换为任何更高的现有 GPL 版本号。如果 FOO 以这种方式免费向公众提供程序的源代码,它也可以在他们自己选择的其他许可下分发的其他程序中分发相同版本的 Hacker 代码。
如果该程序在 GNU Affero GPL 下发布,则在“通用”之前添加“Affero”,将“GPL”更改为“AGPL”,将“2 或”更改为“3 或”,并且将“FOO 分发的”替换为“FOO 分发的或部署在 FOO 以外的用户可访问的服务器上”可能是有意义的。
FSF 已让律师审查过这些文本,但在使用它们之前,您应该获得自己的法律建议。
当一家公司说它将接受哪些条件时,这将向您展示它计划在多大程度上背离自由软件的原则。然后您可以做出回应,以确保您的工作将为自由软件社区做出贡献,而不是被转移到专有软件中。