10

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

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

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

有谁知道适合我需要的许可证,还是我需要自己编写?

谢谢,

更新:

首先感谢大家的解答。

让我澄清一些事情:

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

  2. 我通常使用术语“自由软件”而不是开源,所以这就是我在这里使用术语开源的原因。源确实是“开放的”,而不是 OSI 定义它的方式。

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

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

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

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

4

13 回答 13

19

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

来自维基百科

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

这是最严格的 Microsoft 共享源许可证。源代码仅供参考。[14] 开发人员不得出于商业或非商业目的分发或修改代码。

于 2008-10-07T18:41:10.263 回答
11

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

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

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

于 2008-10-07T19:01:54.777 回答
2

那不会是开源许可证。但是,您当然可以拥有一个专有许可证,该许可证准确地说明了您的意图。许多销售组件的机构完全按照您的要求行事,但他们通常在您付款之前不提供货源。

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

于 2008-10-07T18:35:47.293 回答
2

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

问题是,一旦您将源代码放出大门,就很难跟踪它的位置。无论您如何许可它,肆无忌惮的人可能不会按照您的喜好使用它。

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

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

于 2008-10-15T07:23:47.477 回答
1

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

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

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

于 2008-10-07T18:39:06.040 回答
1

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

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

(除了是他们某些产品的用户之外,我与 atlassian 没有任何关系)

于 2008-10-07T18:46:08.223 回答
0

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

于 2008-10-07T18:37:55.247 回答
0

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

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

于 2008-10-07T18:43:22.800 回答
0

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

它已“发布”,但不可编译。

但是要解决您问题的核心,在不让人们编译的情况下分发源代码显然不是FLOSS-y。

于 2008-10-07T18:44:48.460 回答
0

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

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

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

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

于 2008-10-07T19:32:45.337 回答
0

您可以实现一些适当的构建过程,因此即使他们有源代码,如果没有适当的“构建器”,它也无法编译。

于 2008-10-15T07:33:49.580 回答
0

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

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

也许您正在寻找诸如知识共享非商业许可之类的东西,或者可能是 NoDerivs 许可?

于 2008-10-15T07:36:16.377 回答
0

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

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

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

于 2009-04-30T03:54:35.360 回答