一个人如何逃离GPL?


24

免责声明我不假装对许可一无所知。实际上,我在下面说的所有内容可能都是错误的!

幕后故事:

最近,我一直在寻找一款不错的游戏引擎,并且我想我已经找到了我真正喜欢的游戏引擎Cafu Engine

但是,他们有双重许可计划,在这种情况下,除非您为商业许可付费,否则使用GPL强制执行您使用引擎进行的所有操作。我并不是说这是一个糟糕的引擎,他们甚至说他们对许可费非常放松。但是,它甚至涉及GPL的事实使我感到恐惧。

所以我的问题基本上是,一个人如何逃离GPL。

这是一个示例:id Tech引擎(也称为Quake引擎或Doom引擎)是流行Source引擎的基础。但是,id Tech引擎已根据GPL发布,并且Source引擎是专有的。Valve是否获得了其他许可?还是他们为逃避GPL做些什么?有没有办法摆脱GPL?或者,如果您将GPL的源代码用作另一个项目的基础,则必须使用GPL,并使您的源代码对全世界可用。某些随机人士可以使用id Tech引擎,对其进行修改,使其超出识别的范围,然后将其用作商业产品的专有引擎吗?还是要求它们使其开源。

最后一件事,我通常对开源没有任何问题。但是我觉得开源有它的用,但是在世界的泥泞中却没有。


3
您用提供的报价回答了自己的问题。此外,Source(HL2)也不基于Quake。您正在考虑GoldSrc(HL1)。
贾斯汀·斯基尔斯

遗憾的是,这个问题被否决了,因为该问题显然可以回答并且有几个准确的答案。
2012年

1
询问您的律师,然后询问制造引擎的公司,但据我了解,对于游戏引擎,GPL可能仅适用于代码及其所作的任何修改,不适用于您的其他资产(例如地图) ,声音,艺术等等)。为什么您不接受呢?
2012年

1
您还可能会问,如何从Microsoft窃取源代码并摆脱它。您有两个选择,只有两个选择:遵守规则,由代码所有者使用其许可证和/或费用规定,或者使用其他东西。
肖恩·米德迪奇

1
“但是我觉得开源有它的用,但是这不是在繁琐的世界中。” 但是您认为仅使用某人的代码,既不支付商业许可费用,也不接受替代者的条款在商业世界中占有一席之地吗?这不只是偷窃。并不是说这在商业世界中没有发生得足够频繁……– 从程序员的角度看来,您确实确实想要(可以理解)开源,但是从金钱的角度来看,却对此颇有教条式的厌恶。好吧,这些视图不兼容。
左右左转

Answers:


28
  1. 如果您拥有源代码的版权,则可以随意发布该代码。根据GPL发行它并不排除根据另一个非限制性或更严格的许可进行发行。我不确定Source / id Tech的详细信息,但可以认为Valve协商了自己的许可。

  2. 如果您在项目中使用GPL代码,则需要向用户提供源代码。这并不意味着您需要运行网站或保留其副本以按需提供。这并不意味着您必须在进行所有更改后立即将其公开-仅在重新分发软件时,您所进行的代码和更改才会随之而来。(http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic

  3. 如果您在项目中甚至使用一行GPL代码,那么您现在都将受到GPL条款的约束。一种方法(尽管不是唯一的方法)也是在GPL下发布代码(或根本不发布代码)。
    如果您对它的修改超出了认可的范围并且不遵守条款,那么您可能会摆脱它(即您不会被起诉),但是仅仅因为您会摆脱它并不意味着您就没有了。 t违反许可,或使其正确。

  4. 要在没有GPL的情况下使用“ GPL代码”,则必须获得另一份许可,以使其不再是“ GPL代码”(通过向Cafu付费)。GPL是没有出路的-它是由发明人专门设计为病毒许可的,如果可能的话,其目的将被否定。

就是说,如果您想在程序中使用GPL代码,则可以创建应用程序利用的独立实体(动态链接是否满足这一点是值得商-的-但通常会接受的是,当结果是单个程序时,将调用GPL)。因此,例如,您可以创建一个包含GPL代码和您自己的项目的新项目,并与您的(专有)应用程序一起发布,并附带GPL和源代码。但是,您的应用程序通过CLI或RPC与之通信,因此可以保持不受GPL约束。

如今,许多开发人员都采用LGPL,它允许大多数形式的链接而无需将GPL转移到目标项目。(但是,如果您修改库本身,则仍必须提供库的代码。)

请注意,在第2点之后,不管许可如何,公开发布对开源代码所做的任何改进都是礼貌的。


9
如果您在项目中甚至使用一行GPL代码,那么您的项目现在都已获得GPL许可。否。如果您使用一行GPL代码,则您的项目将违反GPL许可证,并且撰写该行的任何人都可以起诉您。一种可能的补救方法是根据GPL发布项目,但这不会自动发生。
TRiG 2012年

3
(除了GPL之外,这仍然不能阻止您出售它或以较少限制的许可发布。)是的,它可以。如果我在GPL下发布代码,那么其他人将无法将相同的代码放到(例如)公共领域中。我仍然拥有该代码;我只是在GPL的条件下才提供给其他人。
埃文·哈珀

4
尽管存在一些细微的错误,但+1是因为它提到了最显而易见,最简单,最快和最易接近的解决方案:要在没有GPL的情况下使用“ GPL代码”,您必须获得另一份许可。与版权所有者联系,商定其他许可证。显然,这也适用于任何其他许可证。
马丁·索伊卡

11
这个答案和所有评论都遗漏了一个重要条件:GPL条件适用于发行而非使用。如果您在内部工具中使用了一千行GPL代码(您不分发),那么您仍然不受GPL条款的约束。
MSalters 2012年

1
“您可能会摆脱它”。嗯,我只是喜欢从这个答案中得到的那种温暖而模糊的感觉。
Trevor Boyd Smith

64

您可以通过向开发商支付商业许可来逃避GPL。


27
+1,我认为Obvious船长不知何故未在
stackexchange

1
+1,尽管更准确地说,您可以在没有GPL的情况下获得使用该代码的权限。这不一定意味着您必须付费(尽管经常会付费)。
2012年

并非如此,您是说这就像地球上每一个GPL许可总会有商业选择一样;这取决于该代码所有者的策略。
user827992 2012年

4
我会说:“您通过向开发商支付商业许可来逃避GPL,从而为他们提供了您希望赚取的足够份额的钱,作为他们在编写过程中付出的许多人年的报酬”。
DJClayworth

1
几乎,“您通过向开发人员支付不具有GPL负担的代码副本(例如MIT)来逃避GPL。”
乔纳森·迪金森

10

您基本上是在问“我该如何窃取别人的代码?” 如果要使用某人的受版权保护的代码,则必须从他们那里获得许可。如果您从他们那里获得使用其代码的唯一许可是GPL,则您必须遵守该许可,否则您将侵犯其版权。如果您可以让他们为您的代码提供不同的许可证,那很好,但是您不能逃避 GPL。


3
-1。您确实逃脱了GPL:因为它们为您提供了完全不同的许可证。您也不会窃取他们的代码-如果您按照他们要求您执行的步骤进行操作(例如,付款)。
乔纳森·迪金森

5
不,在这种情况下,您对他们代码的使用与GPL完全无关。逃避意味着被某种东西所困。
杰森·古玛

@JonathanDickinson我认为他的意思是OP似乎不想支付许可证费用。他想免费获得它,但没有GPL限制。
保罗

这使我对负担(而不是窃取)着迷,“但是,它甚至涉及GPL的事实使我感到恐惧。” 听起来(很有根据)担心GPL横幅会悬在代码上方。
乔纳森·迪金森

2
@乔纳森 OP表示zie对许可证一无所知,因此我怀疑您对GPL的恐惧不是“有充分根据的”。
TRiG 2012年

8

您实际上是否需要逃避GPL?GPL要求您要做的就是在GPL下发布自己的源代码。它不适用于游戏级别,艺术品资产等。您仍然可以出售游戏,并通过GPL将代码提供给愿意购买它的人,或者将其提供给所有人。

唯一的问题是,如果您要使用第三方非GPL库,那么您将无法将其与GPL引擎一起分发。

如果您确实需要逃避GPL,请查看其许可页面,它们听起来非常灵活,您应该能够达成协议。


我同意这个答案,尤其是因为大多数人在使用引擎时并没有真正增加那么多附加值。真正的价值在于其他资产。
保罗

5

关于GPL的实际含义和实际含义有很多误解,我在您的问题中发现了一个:

您使用引擎制作的所有产品都必须遵守GPL

实际上根本不是这样。引擎来源肯定仍在GPL之下,但是阅读GPL常见问题解答(特别是与GPL计划的输出相关的部分)是值得的,我认为这与此处有关:http:// www。GPL。 gnu.org/licenses/gpl-faq.html#GPLOutput

有什么方法可以使人们从使用我的程序中获得GPL?例如,如果我的程序用于开发硬件设计,我可以要求这些设计必须免费吗?

一般来说,从法律上讲这是不可能的。版权法在使用人们使用您的程序从其数据中输出的内容方面没有任何发言权。如果用户使用您的程序输入或转换自己的数据,则输出的版权归他所有,而不是您所有。更一般而言,当程序将其输入转换为其他形式时,输出的版权状态将继承其生成的输入的版权状态。

因此,使用输出的唯一方法是是否从程序中的文本复制(或多或少)输出的实质部分。例如,如果我们在此特定情况下没有例外,则Bison的部分输出(见上文)将由GNU GPL涵盖。

即使没有技术原因,您也可以人为地使程序将某些文本复制到其输出中。但是,如果复制的文本没有实际用途,则用户可以简单地从输出中删除该文本,而仅使用其余文本。这样,他就不必遵守复制文本重新分发的条件。

This changes your situation quite a bit. You're not actually in a position where any content you develop for or with this engine also falls under the GPL; that content is yours, you own the copyright for it, and you can license it as you wish.

IANAL, etc


2
I don't know anything about the specific engine, but the above is only true if the engine takes your game designs and produces a standalone game as a result. If the engine itself, or part of it gets distributed with the game, or linked into the code of the game, the GPL applies to the whole thing.
rjmunro

我认为引擎很有可能会成为GPL,但游戏内容就不可能成为GPL。游戏内容不是代码,并且不会以与代码相同的方式“链接”到引擎。地图,纹理,模型等不会以这种方式链接到引擎。不幸的是,关于GPL的常见问题尚不清楚(这是避免使用GPL的正当理由)。
Maximus Minimus 2012年

该答案详细说明了使用某些GPL工具生成的内容会发生什么情况。就像用GPL编写的文档一样,文本编辑器也不会被强制成为GPL。但这不能转换为游戏引擎。游戏引擎不需要代码,也不会产生与引擎无关的独立游戏-您将把所有引擎都包含在游戏中。
Matsemann

4

只有拥有代码的个人,人群或活动才能更改其自己的许可证。

如果您使用的是您自己的代码,则可以随时更改许可证,决定是否付款,您可以按照自己的意愿进行操作,但是如果您的代码不是您的代码,则为了避免麻烦,可以坚持使用许可证。大麻烦。

The owner can also refuse to accept to be payed, it's a situation like the one that you have with the patents, if you can prove that you own the code doesn't mean that you are putting it on the market for money, many many times the patent or the license is supposed to force the market or the user to stay in a confined space.

The answer is no and the only way to change the license is hoping that the owner will do that.


Quite good as a general answer - however in this case it's apparant that they do accept payment for copies of the code with a different license. +1 (I also give more general answers :) ).
Jonathan Dickinson

4

The idea is simple - if company wrote the code, it thus owns all the rights, and thus it can give it to some parties under GPL license, to others under commercial license, and to someone else they can give it as a gift, or rent, or whatever they want.

The fact that they provided the code to some party under GPL, places GPL restrictions on that party, but it can place no restrictions on code owner.

Only, if code owner used in their software some 3-rd party GPL code, written and owned by someone else, then their whole project is locked into GPL forever (or until they remove this 3-rd party GPL code or obtain a non-GPL license for it). Please note that that the same is equally true for no-GPL, 100% commercial engine - if they happen to include some GPL code, they violate GPL, have no right to sell commercial licenses and you have no right to buy such license.

Thus, if all the code in the "Cafu Engine" is written by Cafu staff, you have no problem with the GPL. If you get a commercial license from Cafu, then the GPL license does not apply to you at all.


This answer is all good, except it seems to assume that the original poster is part of the Cafu staff and owns the code, which does not appear to be the case.
Kylotan

I did not assume that. I wonder what made you think so.
Sandman4

Your last paragraph pretty much says that, because it equates "Cafu staff" to "You".
Kylotan

@Kylotan Edited the last paragraph to make it a bit more clear. Can't word it properly though, everybody is welcome to phrase it better.
Sandman4

This is the best answer by a long way. I've edited the last paragraph, but don't have edit privs on this site, so it will have to wait for approval.
rjmunro

2

There's one way to "escape" GPL or (practically) any other license. Make a clean-room implementation.

Hire two groups of people. The task of the first group is to study the original material in minute detail and describe it. The second group, who never, ever get to see the original material, will write a new implementation based on the description.

This is how BIOS on original PC clones was created; the BIOS was the only bit IBM didn't let other people copy.

This doesn't mean that you're safe from lawsuits.. patents and "look and feel" crap is still out there, and at least in the US, anyone can sue anyone for no particular reason (or at least it seems so..)


1

Regarding the question about the Quake engine: code can be released under GPL and also under other licenses. Valve licensed Quake by paying money to iD. Later, everyone in the world was granted a GPL License (sic) to use the Quake source code. When iD GPLed the engine, they didn't retroactively convert other licenses to GPL; that would be impossible. In fact, iD can still license the Quake engine under a different license if they wish, as they own the original copyright.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.