一个开源许可证,除非用户购买,否则不允许用户编译应用程序? [关闭]

StackOverflow https://stackoverflow.com/questions/179764

  •  05-07-2019
  •  | 
  •  

我多年来一直在开发GPL软件,但现在我需要更严格的许可证。

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

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

有没有人知道符合我需要的许可证,还是我需要自己编写?

谢谢,

<强>更新

首先,感谢大家的答案。

让我澄清一些事情:

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

  2. 我通常使用术语“自由软件”。而不是开源,这就是为什么我在这里使用术语开源。来源将是“开放的”。实际上,不是OSI定义它的方式。

  3. 我全都是GPL,我之前编写的几乎所有软件都是在GNU GPL v2下发布的。但这个必须是例外。

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

  5. 现在我并不是说我写了一篇非常特别的软件,但我不想让人们通过窃取我的代码赚钱。但我也希望技术娴熟的用户能够随时修改软件。

    哦,最后,应用程序是用编译语言编写的(Objective-C,确切地说是*咳嗽* iPhone *咳嗽*)。

有帮助吗?

解决方案

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

来自 WikiPedia

  

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

     

这是Microsoft Shared Source许可证中最严格的一项。源代码可供查看,仅供参考。[14]开发人员不得出于商业或非商业目的分发或修改代码。

其他提示

顺便说一下,完全不可能阻止人们维护你发布的最后一个GPL版本。如果有足够的人想要使用你的软件,你应该进入这个冒险,期望社区将在GPL版本背后构建,它的新维护者将匹配你的功能特性,你将被视为贱民在那些圈子里。

我并不是说这是一种威胁,但是我所看到的模式在过去围绕这些行为发展。 XFree86采用了更严格的许可证,许多贡献者将其分配到X.org,而XFree86现在只不过是它的旧自我的影子。 cdrecord生于cdrtools。 SSH生成OpenSSH。基本上,免费软件转换为限制性许可的记录遍布死的商业项目。你确定这是你想要的吗?

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

那不是开源许可证。但是,您当然可以拥有一个专有许可证,准确说明您的意图。许多出售组件的服装完全按照您的说法进行操作,但在您付款之前它们通常不提供来源。

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

您无法发送带有许可证的代码,然后告诉别人您不会强制执行许可证。这要求他们承担不可接受的法律风险。什么阻止你改变主意?您应该预先知道您授权代码的条款。

问题在于,一旦你将源代码放在门外,就很难跟踪其落地的位置。无论你如何许可,肆无忌惮的人都可能不喜欢你喜欢的东西。

一种方法是在合适的OSI兼容许可下提供 most ,但不是所有代码(参见 opensource.org 获取当前OSI批准的许可证列表。您以目标代码形式提供的某些低级库或内核,并将其出售或出售。没有编译的内核,代码将无法运行。用户仍然可以查看代码的有趣部分,他们可以根据需要进行修改。他们甚至可以重新分发它,但如果没有编译的低级内核,它将无法工作。风险是有人可以对你的内核进行逆向工程,但是有点聪明,你可以做到这一点。您还可以使用禁止逆向工程的EULA交付内核。因此,您可以对执行此操作的人采取法律行动。我认为这可以为您提供所需的内容 - 分享代码的能力,但不允许其他人将其转化为待售产品。

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

我认为这不符合“开源”的要求。 开源定义下的许可证。

一般情况下,您应该能够向人们展示您的来源,而不会自动允许他们编译它。只要您明确表示仍保留所有权利,编译后的版本可能会被视为“衍生作品”。

如果这是一个伟大的计划,人们可能会偷走它。你可以做的很少,除非他们稍后起诉(如果你抓住它)。一般来说,在不将其作为开源发布的情况下关闭源代码并不是一个好主意。

其他人已经告诉过你,你所描述的并不是“开源”。因为它通常被理解。没有任何东西禁止用商业许可证分发来源。

事实上(以及另一个例子), atlassian ,jira,confluence和其他宝石的制造商,提供一旦你购买了他们的商业产品许可证,他们的源代码。您可以更改,修补和使用它,但不能重新分发。

(除了作为他们某些产品的用户之外,我与atlassian没有联系)

IANAL,但我建议为这类事情编写自己的许可证。我从来没有遇到过像你提到的特定于编译的许可证。以一些许可证作为起点,您可以将其用作模板。如果你真的认真对待在法庭上站出来的东西,那么在出版之前你需要一些法律建议。

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

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

这是hackish,但我已经看到它完成了:将您的代码分发为一系列屏幕截图。

它已“发布”,但无法编译。

但是为了理解你的问题的核心,在不允许人们编译它的情况下分发源代码显然是 NOT FLOSS-y。

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

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

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

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

你可以实现一些专有的构建过程,因此即使它们有源代码,也不能在没有合适的“构建者”的情况下进行编译。

  

现在我并没有建议我写过   一个非常特殊的软件,但是   我只是不希望人们赚钱   通过窃取我的代码。但我也想要   精通技术的用户能够   无论如何他们都会修改软件   配合。

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

也许您正在寻找像Creative Commons NonCommercial这样的东西,也许是NoDerivs许可证?

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

  

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top