IsmAvatar
|
|
Reply #15 Posted on: June 21, 2013, 10:49:18 am |
|
|
LateralGM Developer
Location: Pennsylvania/USA Joined: Apr 2008
Posts: 877
|
As our administration advances in life, persons like myself and Josh gain more finanial power, meaning we have more capability to actually start a lawsuit if we wanted to. When we were earlier in this project and were licensing it, we were much too young and powerless for that to be a real concern. That said, while we "can" be trusted not to sue, it should not be a matter of trust - basically everything josh just said.
So I agree that a license exception is absolutely necessary to ensure that our game developers can closed source their games (even if we may not feel it is completely necessary, it is still common practice and we would like to cater to those persons still) without having to worry about us potentially suing them.
That the exception must only apply to an "official" ENIGMA has never been something I feel is necessary. I see nothing wrong with a $49.99 AMGINE springing up, since its code would have to be GPL, meaning that we (or anyone) could easily copy their changes or fork their product and distribute it for free (once we get our hands on a copy, that is).
That said, while I do not feel the "official" route is necessary, I still don't object to it. I understand Josh feels it is necessary, and as this product is Josh's brain-child, I'm cool with signing off on an exception with that condition.
But that's also why I'm not jumping at the opportunity to write up the legalese, even though I am pretty well known for a good understanding of legalese. Without a concrete desire to add such a restriction, I don't understand the restriction well enough to have any ideas how to write it.
|
|
|
Logged
|
|
|
|
Josh @ Dreamland
|
|
Reply #16 Posted on: June 21, 2013, 11:12:15 am |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
That the exception must only apply to an "official" ENIGMA has never been something I feel is necessary. I see nothing wrong with a $49.99 AMGINE springing up, since its code would have to be GPL, meaning that we (or anyone) could easily copy their changes or fork their product and distribute it for free (once we get our hands on a copy, that is). My concern isn't that we'll have a $50 GPL AMGINE; it's that we'll have a $50 closed-source AMGINE + exempted-GPL ENIGMA. Our exception, without that clause, lets you link e-GPL code (the ENIGMA engine) against proprietary code (the user's game). This exception does not in any way discriminate the user's game from team AMGINE's improvements. So, let's say that the instance system has a gaping fault in it that causes segfaults in some common (but intended) case. Team AMGINE writes a replacement instance system, which is either (A) completely original and not licensed as GPL, or (B) based on the old system, and therefore still licensed as exempt GPL. (A) Original and not licensed as GPL: Their fix is legally indiscernible from user code; we can not (or at least, do not) prevent linking against it while allowing linking against popular third-party libraries and user code. They can distribute their semi-proprietary fixed ENIGMA with the current version of ENIGMA's code, and continue leeching off of us until we rethink our license (after which they'll have to maintain the engine themselves). We'll never have our hands on their fix. (B) based on the old system, and therefore still licensed as exempt GPL: This case is the easier case for us to leverage. Their code is exempt GPL, but they may have already linked it against proprietary code to create a module; the trick is that their module does not necessarily count as an executable per the conditions of our exception, so they may need to distribute the code as GPL or e-GPL. However, it is their option to distribute it as GPL with a license that excludes us. Basically, they'd do the thing that you don't want me to do. Their exception would allow their users to link against their code, and our exception would allow their users to link against ours. We lose. So, is what I'm doing a fairly dickish? Yes. But I believe that it's all right to be fairly dickish when granting the right to take rights away, rather than being fairly dickish when granting regular rights.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
Goombert
|
|
Reply #17 Posted on: June 21, 2013, 08:22:13 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Josh I do not like the idea of any IDE having to be officially endorsed by us >:
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
Josh @ Dreamland
|
|
Reply #18 Posted on: June 21, 2013, 08:28:47 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
...
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
Goombert
|
|
Reply #19 Posted on: June 22, 2013, 08:09:34 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Any "interface" I do not know why, I just don't think it is a good idea. If anything make that term a little more ambiguous, such as "supported" i.e., we keep a list of IDE's that are compatible with ENIGMA somewhere on the site, but they should not have to be "endorsed", I mean such vocabulary puts our reputation on the line. I support Ubuntu, but I do not endorse it.
|
|
« Last Edit: February 23, 2014, 07:11:43 pm by Robert B Colton »
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
Josh @ Dreamland
|
|
Reply #20 Posted on: June 22, 2013, 10:23:48 am |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
The point of a technical definition is to define what is meant by an endorsement. In our case, we would specify that by "endorse," we just mean "permit" or "acknowledge," and then we have to define how we endorse it, eg, by keeping it in a list of endorsed IDEs.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
time-killer-games
|
|
Reply #21 Posted on: June 22, 2013, 03:52:40 pm |
|
|
"Guest"
|
Here's what I am not understanding out of this, am I allowed to sell my games compiled with enigma? Am I or am I not being forced by you guys to release my every enigma compiled game as freeware and open source? Because honestly, I'm cool with it either way, but I'd strongly prefer being able to sell my Linux games (Linux especially, but also anything else I compiled with enigma)...
In any case, LONG LIVE ENIGMA! :-)
|
|
|
Logged
|
|
|
|
|
Goombert
|
|
Reply #23 Posted on: June 22, 2013, 09:28:43 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Harri I have a problem with that as well though, because who ultimately gets that power? Every single person that ever contributes to the project even in the slightest bit?
@TKG, we are doing our best to ensure your closed source rights to sell your game, while not letting someone come and steal ENIGMA from us
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
forthevin
|
|
Reply #24 Posted on: June 25, 2013, 02:59:43 pm |
|
|
Joined: Jun 2012
Posts: 167
|
So, to summarize, if I understand things correctly there are two main issues that we need to handle: - The user should always have the choice of whether a given game they create is released as open-source or closed-source.
- Any extensions or modifications to the engine should be open-source.
While I would prefer a solution that does not rely on having an organization to control which interfaces and the like are endorsed/approved or not, I think Josh is right that the clause is necessary. I have thought about potential alternative clauses that would avoid such an organization, for instance by only letting code in EDL be excepted; but then you have the issue of defining EDL, and if you want to make changes or additions to EDL, then you would need an organization to control that, which brings us back to where we started. And if we have to have an organization, I think Josh's proposed exception is a good starting point (as Josh says, we will need to define the concepts more precisely). I do think it would be a good idea to ask others about this, given that none of us are lawyers. There are some websites that deal with open-source games and game development, and I believe there would be people there that would be happy to advise us about this: http://opengameart.org/ and http://freegamer.blogspot.com. Unless we figure something else out, I will post there at some point and ask if anyone has some advice for us. In regards to who would control the organization, I wouldn't mind it if Josh, IsmAvatar and Gary decides which interface and fork is endorsed/approved. However, if we later decide that it would be a good idea to create a proper organization, we might be forced to change the exception to accommodate that change in who endorses/approves the interface, and that would probably entail asking everyone who have contributed to the engine code to approve a new license. That could become problematic, especially if people have disappeared or otherwise are hard to get in contact with, or do not wish to approve of a new exception. I therefore think that it would be a good idea if we either create a proper organization now, or we change the license in such a way that we can create a proper organization later on without having to ask everyone who have contributed to the engine code.
|
|
|
Logged
|
|
|
|
Josh @ Dreamland
|
|
Reply #25 Posted on: June 27, 2013, 09:48:20 am |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
You have the jist of it, yes.
Ism and I talked about this for a while, but we ultimately didn't get anywhere. It comes down to a simple choice between three unattractive options:
1) Let no one link closed-source: No users can release proprietary games. 2) Let everyone link closed-source: We'll be the next WINE → Crossover Office 3) Explicitly decide who links closed-source: This list can change at any time, so who would trust us? We'd need legal bodies out the wazoo. And then we'd look like the assholes.
I looked into creating an organization for us, but it seems to be exactly what we don't need—in some states, an LLC fizzles with the founder. The point of the legal body was to avoid exactly that. I need to make sure that in the event of mine and Ism's inexplicable disappearance, that someone can pick up the torch and continue carrying this project (and all its resources) forward. Canonical would be unharmed if Shuttleworth vanished (I might argue it'd be better off). ENIGMA needs to be roughly the same with respect to Ism and myself.
A simple solution to the "We have too many code-holding contributors!" problem is to allow multiple licenses in ENIGMA. The standard GPL, for full-blooded Stallman contributors; the X11 license for people who want to write some small and very isolated code and wash their hands of it; the GPL + exemption Ism is proposing, for people who like granting just enough rights for other people to make assholes of themselves; and finally, the GPL + exemption I am proposing, which lets only users of a trusted few IDEs build games closed-source.
The idea is that all the licenses except GPL and my exemption allow linking with closed-source code in all cases. The vanilla GPL doesn't use any, which is why we will try to avoid it in the engine (and warn people when they include code under that license). But if they are using shitloads of Ism's extremely-loosely-exempted GPL code, with only a dash of my strictly-exempted code (which is largely too important to exclude—I would be licensing the resource and instance management systems under such a license), they'd still be forced to use the most strict of all licenses.
The hierarchy of that is, again, GPL → Josh's Exception → Ism's Exception → X11.
|
|
« Last Edit: June 27, 2013, 09:58:26 am by Josh @ Dreamland »
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
The 11th plague of Egypt
|
|
Reply #26 Posted on: June 28, 2013, 05:04:54 am |
|
|
Joined: Dec 2009
Posts: 274
|
Glad you decided to face this topic early. It's the most responsible thing to do. I recently took a course about those topics at my University, and I had the opportunity to examine a lot of licenses. I'm fully aware of the differences between the Free Software movement (Stallman) and the Open Source movement (BSD, Apache, etc). First of all, WINE uses LGPL 2.1, not MIT http://www.winehq.org/licenseThe LGPL (Lesser GPL) lets you keep you code closed as long as you only link against the LGPL code. If you take pieces of LGPL code and put it in your code, then you have to open up your new code as well. If you distributed a modified version of the LGPL code, you have to open up the changes you made to that code. So, what do the CrossOver guys really do? They built a proprietary GUI frontend that all fancy and easy to use. They use the WINE core by linking against it. They improve the WINE core and contribute their improvements back to the community. If WINE was covered by the X11 (MIT) license, or by the BSD, or even by the Apache license, then they could have made their own proprietary WINE version without contributing back. But with the LGPL they do contribute back, they just have a closed proprietary frontend. Want to look for a good source of exceptions? The new LGPL 3 is built as an exception to the GPL 3, might be worth reading. Also, v3 > v2, because it also covers patents. Now, what about patents? You could release your code as open source, but then sue me for using it because you hold a patent on a concept it implements. By licesing your code under the (L)GPL3 you also license a grant for patents that you hold and that may be necessary to: - distribute the program - install the program - run the code You do not need to give a grant on any other patents that you may hold and that are not releated to the code you licensed. People that decide to fork your code will give you a right to use their patents (and will not sue you). https://fsfe.org/campaigns/gplv3/patents-and-gplv3.en.html#Explicit-patent-grantSimilar grants are given by many modern licenses (both free and open source). However, old licenses do not give any such protection. Among those: - X11 (MIT) - the various BSD (2, 3 and 4 clauses) - Apache 1 (which was based on BSD) I would therefore suggest using Apache 2.0 if you want a "I let your close my code" license. At least it has a "don't sue me for patents" clause. Apache 2 is a modern license that does a good job covering a lot of new and old topics (patents, copyright, moral rights and trademarks). Also, what about the Mozilla Public License? It's like the LGPL but it works "on each file". You can add a proprietary file of your own that links to a file covered by the MPL, and keep it proprietary. If you create a new file that uses code taken from a file covered by the MPL, you have to release the code of your new file as MPL. If you modify a file covered by the MPL, you have to release the changes to that file under the MPL. It was created specifically to open source a codebase that had the code of many authors in it. Namely, the Netscape codebase. So, you can have proprietary files mixed with open source files. And they can't steal from each other. Here is a good source of explanations (for Mozilla 1, Mozilla 2 is very similar) http://www.rosenlaw.com/pdf-files/Rosen_Ch07.pdf
|
|
« Last Edit: June 28, 2013, 05:47:10 am by The 11th plague of Egypt »
|
Logged
|
|
|
|
Josh @ Dreamland
|
|
Reply #27 Posted on: June 28, 2013, 07:30:23 am |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
First of all, WINE uses LGPL 2.1, not MIT http://www.winehq.org/license They switched some time after they got fucked in the ass. They are the inspiration for this preemptive wave. I am ecstatic that their switch caused the CrossOver team to reconsider their position. I was furious a few years back when I discovered the license rape. The Wine project originally released Wine under the same MIT License as the X Window System, but owing to concern about proprietary versions of Wine not contributing their changes back to the core project,[16] work as of March 2002 has used the LGPL for its licensing. I will be sore about that for the rest of my life. To the point of being offended that you would imply it never happened. The LGPL will let you link against proprietary code given only the stipulation that it be possible to dynamically replace the LGPL code with other code. In other words, it must be linked. We could use LGPL, but then we'd still need the exception, and then people could have proprietary versions of ENIGMA wherein the only disadvantage is that the user's game has a bunch of DLLs lying around. As game size approaches infinity, the number of fucks given about DLL count approaches zero. Now, what about patents? You could release your code as open source, but then sue me for using it because you hold a patent on a concept it implements. The GPL is inherently anti-patent; not only would this be against the spirit of GPL, it would also be against the license. The GPL was written specifically to prevent patents. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. The GPL isn't just a contract for its users; it is a contract for its developers. I warn each and every prospective contributor of the magnitude of their agreement to this license, before I offer them any help in developing. If you wish to participate in the GPL community, you must relinquish control of your patents on GPL code. Your other license suggestions have merit, but they are not without risks—we are subject to the changes of the licenses by the controlling parties, which may be more tailored to the needs of Apache or Mozilla than to the needs of ENIGMA. The GPL is not tailored to the needs of ENIGMA, but it is guaranteed to be more strict. We can always grant more rights; we can't take them away. The point of this exception is to be extremely cautious with granting rights.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
The 11th plague of Egypt
|
|
Reply #28 Posted on: June 28, 2013, 08:17:26 am |
|
|
Joined: Dec 2009
Posts: 274
|
Sorry, I didn't know the full history of the WINE project. I do remember that they decided not to switch to the LGPLv3 because "nobody sued us yet, so why should they do so in the future?" Yeah, they have this kind of "wait until it's too late" approach. Now, about patents. The GPL2 only had a "Liberty or Death" covering the topic quite implicitly. Like, grant all the rights the user needs to use the software you distribute under the GPL, or don't distribute your software under the GPL at all. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason [...] If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. https://fsfe.org/campaigns/gplv3/patents-and-gplv3.en.html#Liberty-or-DeathOnly the (L)GPL3 has an axplicit grant (the part of clause 10 you quoted and the whole clause 11), which is much better IMHO. The Apache and MPL licenses are not suited just for the respective foundations. Especially Apache 2.0 is used for many different projects, such as the Android AOSP project http://source.android.com/source/licenses.htmlEDIT: Also, I don't think you are obliged to adopt Apache 2.1 or Mozilla 2.1 automatically if they ever come out. Maybe you are thinking about contributing code to the Apache or Mozilla foundation directly. In that case, you have to sign an additional contract to adopt their future licenses. That's to make their work easier if they have to relicense the code of a big project (like Apache server) without asking every single contributor. EDIT2: However, you can release your own software under the Apache license without any need to sign that additional contract. You only need to sign it if you are contributing your code to the foundation, like a patch for the Apache server. If you are making a project of your own, and want to use the Apache license, then you are not giving your code to the foundation. GPL itself has an optional saying you can add to license your program under GPLvX and "any later version"...or not. It's optional. Linux for example was covered by the GPL2, without the "any later version" thing, so it's stuck with GPL2. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. Writing an exception to the GPLv3 is quite a task, it's even more complicated than GPLv2. Have you considered asking for the help at the Software Freedom Law Center? Maybe they can give you some advice for free (as in beer). https://www.softwarefreedom.org/about/contact/
|
|
« Last Edit: June 28, 2013, 08:38:40 am by The 11th plague of Egypt »
|
Logged
|
|
|
|
Josh @ Dreamland
|
|
Reply #29 Posted on: June 28, 2013, 08:35:12 am |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
You're still assuming I could obtain a patent on any part of ENIGMA. Part of the requirements for obtaining a patent is that you actually have something unique. ENIGMA is a compiler, in the most generic sense. It wouldn't be very patent-worthy even if GM didn't exist.
We've been throwing around the idea of calling in some third-party help for writing this exception, but I'd want to try to request that help in a way that doesn't make this problem look completely petty. To an outside observer, it'd just look like me being a selfish child. A lot of this discussion is myself trying to figure out if that's in fact what I am being.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|