开源

情况:

我想选择一个开源项目的许可证。

考虑到GPL vs BSD / MIT,我更喜欢GPL,因为它保护了软件的开放源代码。 不过,我更喜欢少一些限制性的东西。

我特别喜欢不同版本的GPL不兼容的事实!

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

要求:

  • FOSS(免费/开源)
  • 阻止并入到闭源软件中
  • 不妨碍并入具有其他许可证的开源软件
  • 有这样的许可证吗?

    潜在问题:

    我知道#3和#2可能看起来是矛盾的,但我认为有办法绕过它,例如,说出许可证,以便:

  • 如果您将其纳入使用gpl-like *许可证的FOSS软件中,则您可以重新许可该许可证
  • 否则,您不得更改许可证
  • gpl-like是任何要求整个项目符合相同许可证的FOSS许可证。

    请注意:

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


    请看,看在老天的份上,不要创造新的许可证(或做任何可能会产生新许可证的事情); 我们已经有足够的许可证扩散。 GPL或多或少是copyleft自由软件许可证的标准,然后还有许多免费软件许可证(主要是BSD / MIT)。 您的要求(2)将它们排除在外,只留下copyleft:这就是GPL。

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

    如果问题确实存在,并且在另一个需要使用代码的许可证下有项目,则可以让所有代码的贡献者明确允许(“双许可”)该用法。


    您应该使用双倍(或三倍或n元组)许可证,根据您感觉舒适的许可证释放它。 双重许可证是指用户可以选择使用该程序的许可证。

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

    当然,MPL是一个较弱的版权左侧许可证(如LGPL),而不是像GPL那样强大的版权左派。 因此,如果您是MPL下的双重许可证,您的代码可能会用于其他专有程序,尽管必须修改您的代码本身。

    在你的问题中,你提出的问题是:“如果你将软件整合到使用类似gpl的许可证的软件中,你可以重新许可该许可证,否则你可能不会更改许可证,如果gpl-like是任何FOSS要求整个项目获得相同许可证的许可证“是,大多数许可证利益冲突都不适用于GPL类似许可证(除GPL以外是否还有其他任何强烈的不受版权保护约束的免费软件许可证),而是与MPL类似许可证; 也就是说,GPL要求整个程序按照GPL条款进行分发,而MPL要求将该部分分发到MPL下,而不受其他限制,导致冲突。 如果允许它在MPL下分发,那么只要MPL许可部分保持空闲,人们就可以在专有程序中使用它。

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

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

    愿你行善而不恶
    愿你为自己找到宽恕,原谅别人
    愿你分享自由,永远不会比你付出更多。

    我总是发现比大多数许可证涉及的漫长,乏味和可怕的法律通知更令人愉快。


    由于任何阻止某人将其重新授权给专有许可证的行为对于开放源代码许可证都是一样的,因此无法使用一个许可证执行您想要的操作。 我建议在多个许可证下发布,然后添加一个部分,告诉人们如果要使用未列出的许可证下的代码与您联系。

    编辑:顺便说一下,GPL与许多许可证兼容。 另外,(我认为)如果有人想根据你的代码发布一些东西,他们需要在GPL下发布他们的修改,但是也没有什么能够阻止他们从双重许可中获益。 举例来说,如果我使用了源代码,我将不得不在GPL下发布我的更改,但我也可以在BSD许可证下发布我的更改(无需更改代码的许可证)。

    链接地址: http://www.djcxy.com/p/13945.html

    上一篇: open source

    下一篇: geodjango + PostGIS = GPL?