Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Open source 一种不使用';除非用户';你买了吗?_Open Source_Licensing - Fatal编程技术网

Open source 一种不使用';除非用户';你买了吗?

Open source 一种不使用';除非用户';你买了吗?,open-source,licensing,Open Source,Licensing,我多年来一直在开发GPL'd软件,但现在我需要一个更严格的许可证 这是一个商业应用程序,我想与全世界分享我的源代码,不管他们是否从我这里购买了应用程序。我也想允许人们创作衍生作品,但我想禁止我的原创作品和任何衍生作品的二进制发行 基本上,如果有人已经购买了原始作品,他/她可以编译并使用原始源代码或任何衍生作品。否则,他们只能研究我的源代码,或是衍生作品的源代码 有人知道适合我需要的许可证吗,还是我需要自己写 谢谢 更新: 首先,谢谢大家的回答 让我澄清几件事: 此应用程序尚未发布。因此,我不是采

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

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

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

有人知道适合我需要的许可证吗,还是我需要自己写

谢谢

更新:

首先,谢谢大家的回答

让我澄清几件事:

  • 此应用程序尚未发布。因此,我不是采用像XFree86这样的新许可证,而是尝试为新应用程序选择一个许可证

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

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

  • 我真的不在乎有人违反许可证。我不会为此起诉任何人,除非他们在卖我的软件

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


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

    这不是开源许可证。但是,您当然可以拥有一个专有许可证,该许可证确切地说明了您的意图。许多销售零部件的公司都完全按照你所说的去做,只是在你付钱之前他们通常不会提供货源


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

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

    我认为这不符合《版权法》规定的“开源”许可

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

    如果这是一个伟大的程序,人们可能会偷走它。对此你无能为力,除非以后起诉他们(如果你抓到了的话)。一般来说,在不公开源代码的情况下展示您的源代码听起来不是一个好主意。

    不是,这听起来像是共享源代码。具体来说,它很像RSL女士

    发件人:

    Microsoft参考源许可证(Ms RSL)

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

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


    但是你可以看看微软参考源代码许可证——它允许查看源代码,但禁止发布:

    这有点黑客,但我已经看到了:将代码作为一系列屏幕截图发布

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


    但是,要抓住问题的核心,在不允许人们编译的情况下分发源代码显然不是FLOSS-y。

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

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


    (我与atlassian没有任何关系,只是作为他们某些产品的用户)

    顺便说一句,要阻止人们维护您发布的上一个GPL版本是完全不可能的。如果有足够多的人想要使用你的软件,那么你应该带着这样的期望进入这个项目:一个社区将建立在GPL版本的基础上,它的新维护者将为你提供一个又一个的功能,而你将被认为是那些圈子里的贱民

    我的意思不是说这是一种威胁,而是我在过去看到的围绕这些行为发展的模式。XFree86采用了更严格的许可证,许多贡献者将其转移到了X.org,而XFree86现在只不过是旧版本的影子。cdrecord产生了CDR工具。SSH产生了OpenSSH。基本上,该公司的业绩记录中充斥着死气沉沉的商业项目。你确定这就是你想要的吗

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

    Pl