一个开源许可证,除非他们购买了应用程序,否则不允许用户编译应用程序?



我已经开发GPL软件多年了,但现在我需要更严格的许可证。

这是针对商业应用程序的,我想与全世界分享我的源代码,无论他们是否从我这里购买了该应用程序。我也想允许人们制作衍生作品,但我想禁止我的原创作品和任何衍生作品的二进制分发。

基本上,如果有人已经购买了原作,他/她可以编译和使用原版源代码或任何衍生作品。否则,他们只能研究我的源代码或衍生作品的源代码。

有谁知道适合我需求的许可证,或者我需要编写自己的许可证?

谢谢

更新:

首先,感谢大家的回答。

让我澄清几件事:

  1. 此应用程序尚未发布。所以我没有采用像 XFree86 这样的新许可证,而是尝试为新应用程序选择许可证。

  2. 我通常使用术语
  3. "自由软件"而不是开源,所以这就是为什么我在这里使用术语开源。源确实是"开放的",只是不是OSI定义它的方式。

  4. 完全支持GPL,我以前编写的几乎所有软件都是在GNU GPL v2下发布的。但这一个必须是一个例外。

  5. 我真的不在乎人们是否违反了许可证。我不会梦想为此起诉任何人,除非他们出售我的软件。

现在我并不是说我写了一个非常特殊的软件,但我只是不希望人们通过窃取我的代码来赚钱。但我也希望精通技术的用户能够修改他们认为合适的软件。

哦,最后,应用程序是用编译语言编写的(Objective-C,准确地说

是*咳嗽*iPhone*咳嗽*)。
这不是

操作系统,听起来像是共享源代码。 具体来说,它很像Ms-RSL。

来自维基百科:

Microsoft 参考源许可证 (Ms-RSL)

这是Microsoft共享源许可证中限制性最强的许可证。源代码仅供参考。[14] 开发者不得出于商业或非商业目的分发或修改代码。

顺便说一下,完全不可能阻止人们维护你发布的最后一个GPL版本。 如果有足够多的人想要使用你的软件,你应该带着期望一个社区在GPL版本后面建立,它的新维护者将逐个功能地匹配你,你会被认为是这些圈子里的贱民。

的意思不是威胁,而是我过去看到的围绕这些行动的模式。 XFree86 采用了更严格的许可证,许多贡献者将其分叉为 X.org,而 XFree86 现在只不过是其旧自我的影子。 CD记录产生了CDRTOOLS。 SSH begat OpenSSH. 基本上,自由软件切换到限制性许可证的记录充斥着死的商业项目。 你确定这是你想要的吗?

替代方案:允许用户购买请求的功能并根据 GPL 发布它们。 提供安装和配置服务。 销售支持合同。 销售培训。 其中任何一个都比你提议的更有可能成功。

那不会是开源许可证。 但是,您当然可以拥有一个专有许可证,该许可证可以准确地说明您的意图。 许多销售组件的服装完全符合您所说的,除了在您付款之前它们通常不提供来源。

没有什么能阻止你这样做,但我认为现实情况是,一旦你的源代码可用,就会有人编译它(可能是很多人)。 防止重新分发二进制文件是多么容易...???

您不能随许可证一起交付代码,然后告诉人们您不会强制执行许可证。 这要求他们承担不可接受的法律风险。什么可以阻止你改变主意?您应该提前了解许可代码的条款。

问题是,一旦你让源代码离开,就很难跟踪它的位置。 无论您如何许可它,不道德的人都可能不会按照您的意愿使用它。

一种方法是在合适的符合 OSI 的许可证下提供大部分(但不是全部)代码(有关当前 OSI 批准的许可证的列表,请参阅 opensource.org)。 一些低级库或内核,你以目标代码形式交付并出售它或其他任何东西。 如果没有编译的内核,代码将无法运行。 用户仍然可以查看代码中有趣的部分,他们可以根据需要对其进行修改。 他们甚至可以重新分发它,但如果没有编译的低级内核,它将无法工作。 风险是有人可能会对你的内核进行逆向工程,但只要有一点聪明,你就可以做到这一点。 您还可以使用禁止逆向工程的 EULA 交付内核。 因此,您可以对这样做的人采取法律行动。 我认为这为您提供了您正在寻找的东西 - 共享代码的能力,但不允许其他人将其变成待售产品。

仅供参考:IANAL,这些只是我个人对此事的看法。

我认为这不符合开源定义下的"开源"许可证。

不过,一般来说,您应该能够向人们展示您的源代码,而无需自动允许他们编译它。只要您明确表示您仍然保留所有权利,编译版本可能会被视为"衍生作品"。

如果这是一个很棒的程序,人们可能会窃取它。除了稍后起诉他们(如果你抓住了它)之外,你几乎无能为力。一般来说,展示你的源代码而不将其作为开源发布听起来不是一个好主意。

其他人已经告诉你,你所描述的不是通常理解的"开源"。没有什么可以禁止使用商业许可证分发源代码。

事实上(作为另一个例子),Jira、Confluence 和其他 gem 的制造商 atlassian 会在您购买其商业产品的许可证后提供他们的源代码。您可以更改、修补和使用它,但不能重新分发。

(除了是他们某些产品的用户之外,我与 Atlassian 没有关联)

IANAL,但我建议为这类事情编写自己的许可证。 我从未遇到过您提到的特定于编译的许可证。 查看一些许可证作为可用作模板的起点。 如果你真的很想在法庭上站得住脚,那么在发布之前你需要一些法律建议。

开源许可证(根据定义)不符合您的要求。

但是你可以看看Microsoft参考源许可证 - 它允许查看源代码,但禁止分发:http://www.microsoft.com/resources/sharedsource/referencesourcelicensing.mspx

这很黑客,但我已经看到它完成了:将你的代码作为一系列屏幕截图分发。

它是"已发布"的,但不可编译。

但是要抓住你问题的核心,分发源代码而不允许人们编译它显然不是 FLOSS-y

请注意,您的源代码的可运行版本可能被视为衍生作品

源代码和可执行版本之间的差异甚至消失了,如果你用Perl,Ruby,Python等语言编写你的应用程序。

尽管如此,您正在寻找的许可证不是开源许可证,在我看来,您希望共享算法和实现提示,而不是产品的完整源代码。在这种情况下,只需这样做并发布算法以及示例源代码即可。

这样,没有人可以在未经您许可的情况下重新编译您的产品(意思是:完整源代码的副本),感兴趣的开发人员仍然可以使用您的算法并在此基础上进行构建。

你可以实现一些专有的构建过程,因此即使它们有源代码,如果没有专有的"构建器",也无法编译它。

现在我不是建议我已经写了 一个非常特殊的软件,但是 我只是不想让人们赚钱 通过窃取我的代码。但我也想要 精通技术的用户能够 无论如何修改他们看到的软件 适合。

所以你想允许更改,但你不想允许商业用途?

也许

您正在寻找诸如知识共享非商业性的东西,也许还有NoDerivs许可证?

在随后的编辑中,您写道:

我真的不在乎人们是否违反了许可证。我不会梦想为此起诉任何人,除非他们出售我的软件。

如果您不在乎人们是否违反了许可证中的限制,显然这意味着您的新限制无关紧要。未经修改的 GNU GPL 应该和以前一样适合您的目的。

最新更新