当一家公司要求你的版权时

开发自由软件并根据GNU GPL发布的公司有时以其他方式分发一些代码副本。如果他们在不同的许可证下将完全相同的代码分发给某些为此付费的用户,通常允许在专有程序,我们称之为“销售例外”。如果他们仅以专有方式分发代码的某些版本,我们称之为发布程序的纯专有版本。

销售例外到GNU GPL“解释了原因销售例外情况是可以接受的,尽管只是勉强可以接受。相比之下,发布纯专有版本是完全错误的,比如任何其他专有软件。

公司通常使用代码来做这些事情发达的。由于他们拥有该代码的版权,他们可以以任何方式合法分发,即使是以多种方式平行。但是当您发布的修改版本这个免费的程序,公司希望将您的更改包括在它的版本?

由于您在GPL下获得了该程序,当您发布修改后的版本必须根据GPL进行许可。如果公司收到副本后,它将能够根据GPL使用这些更改;不允许将您的更改包含在该程序中并进行销售它也不能完全释放包含代码的专有版本。如果这是你的结果想要的话,你默认会得到它。然而,如果公司打算出售例外情况下,它可能会决定不使用您的更改。

不过,假设您不反对销售例外,并且你愿意让公司这样做,同时包括你的改变在程序中。你可以同意,但你需要小心或者你可能会对结果感到惊讶。

公司可能会邀请您分配或许可您的公司版权,通过签署版权转让合同或贡献者许可协议。这本身并不坏;对于例如,许多GNU软件开发人员已经分配了版权至FSF。然而,FSF从不出售例外情况派遣合同包括分配贡献者的代码只包含源代码并且只允许再分配。

公司拟定的合同可能不包括此类承诺。相反,可能会让公司随意使用您的更改。如果如果你签字,公司可以用你的代码做各种事情。可以继续销售包含代码的程序的异常。可以发布纯专有的修改或扩展版本包括您的代码。它甚至可以包含您的代码只有在里面专有版本。你对代码的贡献可能是,实际上,这是对专有软件的捐赠。

这取决于您允许哪些活动,但以下是FSF的建议。如果您计划为项目,坚持出资协议要求软件包括您的贡献在内的版本可通过以下方式向公众提供免费软件许可证。这将允许开发商出售例外,但要防止它在软件中使用您的贡献只有在专有许可证下才能使用。

如果你的贡献较小,你可以接受较弱的条件是,公司在自由软件版本以及可能的非自由程序。这将允许公司使用您的捐款只有在专有许可证下才能使用的修改过的软件。发布专有软件从来都不是一件好事,但如果您的变化较小,可能更重要的是改进免费版本,而不是抵抗非免费版本。

你可以通过坚持适当的条件来控制这些结果在合同中。允许以下程序的销售例外包含您的代码,但拒绝让公司纯粹发布包含您的代码的专有版本,您可以坚持情况大致如下:

任何基于(如GNU通用公共许可证中所定义)的程序版本3)制作FOO分发的黑客代码FOO可在以下位置获取(a)“GNU通用公共许可证(GPL),版本2或更高版本,”或(b)上述(a)中的许可,但带有“2”替换为任何更高的现有GPL版本号。提供的FOO使程序作为源代码免费提供给公众这样,它还可以将相同的程序分发给它的用户根据允许他们链接程序代码的条款使用非自由代码,并在他们自己选择的许可证。

或者,如果你反对的是某个变体代码的可能仅以专有版本发布,您可以坚持情况大致如下:

任何基于(如GNU通用公共许可证中定义的)的程序版本3)制作FOO分发的黑客代码FOO可在以下位置获取(a)“GNU通用公共许可证(GPL),版本2或更高版本,“或(b)上述(a)中的许可,但带有“2”替换为任何更高的现有GPL版本号。提供的FOO使程序作为源代码免费提供给公众这样,它也可以发布相同版本的黑客代码在根据自己选择的其他许可证发布的其他程序中。

如果程序是在GNU Affero GPL下发布的,则添加“Affero”在“通用”之前,将“GPL”改为“AGPL”,将“2”或“改为“3或”,以及将“FOO分配”替换为“FOO分发或部署到除FOO。”

FSF已经让律师审查了这些文本,但你应该在使用之前,您自己的法律建议。

当一家公司说它会接受这些条件中的哪一个时将向你展示它计划在多大程度上偏离自由原则软件。然后你可以做出回应,确保你的工作将有助于自由软件社区,而不是被转移到专有软件社区软件。