限制较少的GPL许可证

时间:2009-11-17 03:21:28

标签: open-source licensing gpl

场合:

我想为开源项目选择许可证。

考虑过GPL与BSD / MIT之后,我更喜欢GPL,因为它保护了软件的开源性。但是,我更喜欢限制性较小的东西。

我对于不同版本的GPL不兼容这一事实感到特别高兴!!

我希望该软件能够保留FOSS,但我不希望许可证问题妨碍将源代码合并到其他FOSS项目中。

要求:

  1. FOSS(自由/开源)
  2. 防止纳入闭源软件
  3. 不阻止合并到具有其他许可的开源软件
  4. 是否有这样的许可证?

    潜在问题:

    我知道#3和#2可能看起来很矛盾,但我认为有很多方法可以解决它,例如,说出许可证,以便:

    • 如果您加入使用gpl-like *许可证的FOSS软件,您可以重新许可该许可证
    • 否则,您可能无法更改许可证

    gpl-like是任何需要整个项目都在同一许可下的FOSS许可证。

    请注意:

    这个问题是关于是否有这样的许可证。这不是尝试创建一个。

6 个答案:

答案 0 :(得分:5)

为天堂的缘故,请不要创造新的许可证(或做任何可能创造新许可证的事物);我们已经有足够的许可证扩散。 GPL或多或少是copyleft自由软件许可证的标准,然后有许多(主要是BSD / MIT)许可的自由软件许可证。你的要求(2)将它们排除在外,只留下了Copyleft:那就是GPL。

在重要使用中没有其他“类似GPL”的许可证,您需要担心允许使用您的代码,因此您正在尝试解决不存在的问题。

如果问题 存在,并且有另一个许可证下的项目想要使用您的代码,您可以让所有代码的贡献者明确允许(“双许可证”)无论如何,这种用法。

答案 1 :(得分:4)

你应该在你认为适合发布它的任何许可证下使用双重(或三重或n元组)许可。双重许可证是指用户可以选择使用该程序的许可证。

GPL经常在双重许可下使用;大多数程序都是在“GPLv2或更高版本”下获得许可,此时这意味着GPLv2或GPLv3。还有很多软件根据GPL和MPL或类似的许可证(实际上通常是多种许可证)进行双重许可,因为所涉及的所有许可证通常都有“或更晚”。 / p>

当然,MPL是一个弱的Copyleft许可证(如LGPL),而不是像GPL那样强大的Copyleft。因此,如果您在MPL下获得双重许可,则您的代码可能会用于其他专有程序,但必须释放对代码本身的修改。

你在问题​​中建议的问题,“如果你加入使用类似gpl *许可证的FOSS软件,你可以重新许可该许可证。否则,你可能不会更改许可证,在哪里gpl-like是否需要整个项目在同一许可下的任何FOSS许可证“大多数许可证冲突都不是像GPL那样的许可证(除了GPL之外还有其他强大的Copyleft免费软件许可证),而是与MPL一样的许可证;也就是说,GPL要求整个程序根据GPL条款进行分发,而MPL要求该部分在MPL下分发而不受额外限制,从而导致冲突。如果你允许它在MPL下发布,那么只要MPL许可部分仍然免费,人们就可以在专有程序中使用它。

所以,你必须问自己你感兴趣的是什么。你对自己的程序或图书馆感兴趣只是在自由软件中使用过吗?然后使用GPLv2或更高版本以获得最大兼容性。您是否对您的库始终保持免费感兴趣,但希望它能够链接到GPL不兼容的程序(包括可能的专有程序)?然后使用LGPL,MPL或类似许可证,或双重或三重许可证(例如GPLv2或更高版本,MPL v1.1或更高版本,或LGPL v2.1或更高版本,如大多数Mozilla源代码获得许可)。你想让任何人能够做他们想要的任何事吗?然后使用X11/MIT许可证(比BSD更短更简单)或WTFPLv2(我见过的最短,最清晰的许可证)。

如果你感觉非常慷慨,你可以将代码发布到公共领域,如SQLite,在每个文件中带有祝福而不是许可证:

  

愿你做得好而不是做坏事   愿你为自己找到宽恕并原谅别人   愿你自由分享,永远不要超过你的贡献。

我总觉得比大多数许可证中涉及的漫长,乏味和可怕的法律声明更令人愉快。

答案 2 :(得分:1)

使用一个许可证无法实现您想要的功能,因为阻止某人将其重新许可为专有许可证的任何内容都将对开源许可证执行相同的操作。我建议在多个许可证下发布,然后添加一个部分,告诉人们如果他们想要使用未列出的许可证下的代码,请与他们联系。

编辑:顺便说一下,GPL与quite a few licenses兼容。此外,(我认为)如果有人想根据你的代码发布一些内容,他们需要在GPL下发布他们的更改,但是没有什么可以阻止他们进行双重许可。因此,例如,如果我使用了您的源代码,我将不得不在GPL下发布我的更改,但我也可以在BSD许可下发布我的更改(不更改您的代码的许可)。

答案 3 :(得分:1)

你可以看看CeCILL是如何做到的,基本上是强制执行自己的许可证,并允许你改用GPL。

您可以查看各种与GPL兼容的许可证here并选择一个(如果您可以使用它),或选择一个不兼容的许可证和双重许可证,但这似乎不太有用,因为您无法使用在这种情况下,项目中的其他GPL软件。

如果你正在写一些严肃的东西,除非得到合格的法律建议,否则不要试图自己动手。这个东西很复杂,很多隐藏的陷阱已经与GPL很好地合作。

答案 4 :(得分:1)

  

阻止合并到闭源软件中

     

不阻止合并到具有其他许可的开源软件

您在考虑哪个其他许可证,即Copyleft而非GPL?

无论是什么,在许可证 GPL下双重许可您的项目。

你是一个试图制作元许可证的失败者,其中软件可以根据“与GPL类似的一些许可证”自动重新许可。相反,立即在多个可能的开源许可下发布它,允许下游项目选择他们想要的与他们自己的许可方案相匹配的项目。

答案 5 :(得分:0)

Artistic License 2.0也许可以满足您的需求。如果您愿意,它可以让您自由地根据不同的协议重新授权软件,并且您可以控制软件的正式版本。