Sign in to follow this  
Followers 0

Why Eternity is now GPLv3

I thought I'd take a moment out of the day to explain the various motivations behind the recent transition of the Eternity Engine codebase to the third version of the GPL license to the community at large and make a few things clear.

The primary motivations for the change are the following points, in no particular order of importance:

  • Increasing abuse of the GPLv2's tolerance for "tivoization" of products by compiling them for platforms such as iOS which require what I call a "developer tax" - a recurring $100 fee required in order to obtain a so-called developer key with which code must be signed in order to be executed on the platform. As you know, I am highly opposed to all forms of DRM, including code signing requirements and executable checksumming, and I am also opposed to the swing of the software industry toward "closed garden" models where corporate overlords choose who can develop software for their platform, and can revoke that privilege at any time and for any reason (including anti-competitive behavior). The GPLv2 no longer sufficiently protects the freedom of end-users to modify and then execute programs on such platforms. I would rather have my code unavailable on such a platform than to support that model of software market.
  • Occasional abuse of the GPLv2's "written request for the source code" provision, an outdated term from the 1980's before the advent of p2p, file sharing sites, relatively inexpensive web hosting, and nearly world-wide access to broadband. It is inexcusably onerous to require someone to send a written request to source code for a product which is being distributed digitally, when the source code can simply be uploaded side-by-side with the binary package on the same host.
  • Certain instances of Eternity code being taken without due credit, or with blatant misrepresentation of its origin. The GPLv3 allows me to insert "additional terms" (which are, though, legally removable) that express my desire against this. Always give credit where it is due - I always have and will always continue to do so.
Now, as to what this means for interoperability of Eternity's code with the still predominantly GPLv2 source port "cloud", I have made some provisions:
  • So long as your GPLv2+ codebase - the one you personally are working on - does not violate the core additional tenets of the GPLv3, you can freely back-adapt to your own project any beneficial (or non-beneficial, if you're strange) changes I make to code I borrow from your project without upgrading to GPLv3 via an additional permission clause. I am not trying to create a rift in the community nor give Eternity any sort of one-sided advantage by making this move at the time.

    The terms of this permission do not "survive" onto the code once you back-adapt it so you are not responsible if someone else then forks your project and abuses it against my wishes. They only apply at the time of the original back-adoption by your own team.

  • In addition, permission will more than likely be granted for use of any original Eternity code in GPLv2 projects if permission is requested where it's necessary. Just talk to me about it if it's a concern.
I hope this makes everything clear from the get-go.

Share this post


Link to post

Hope you don't mind me derailing your thread.

Quasar said:

Increasing abuse of the GPLv2's tolerance for "tivoization" of products by compiling them for platforms such as iOS which require what I call a "developer tax" - a recurring $100 fee required in order to obtain a so-called developer key with which code must be signed in order to be executed on the platform.

Personally I don't agree with the anti-tivoization clause: I broadly agree with Linus on the matter (the part about the GPL2 being a "tit-for-tat" license). But everyone's entitled to their own view on it. Considering some of Apple's recent changes regarding installation of unsigned apps I might even be tempted to change my mind.


So long as your GPLv2+ codebase - the one you personally are working on - does not violate the core additional tenets of the GPLv3, you can freely back-adapt to your own project any beneficial (or non-beneficial, if you're strange) changes I make to code I borrow from your project without upgrading to GPLv3 via an additional permission clause. I am not trying to create a rift in the community nor give Eternity any sort of one-sided advantage by making this move at the time.

That's good. Being able to share code between source ports is important. I'm staying with GPL2 because it doesn't restrict anybody: you can reuse Chocolate Doom's code in GPL2 ports or GPL3 ports (like Eternity). I grant exceptions to non-GPL ports as well, of course.

Quasar said:

Certain instances of Eternity code being taken without due credit, or with blatant misrepresentation of its origin. The GPLv3 allows me to insert "additional terms" (which are, though, legally removable) that express my desire against this. Always give credit where it is due - I always have and will always continue to do so.

I don't think that's what the "additional terms" mechanism is for: the GPL3 says that it's for "making exceptions" to terms of the GPL. That is, you grant exceptions from the restrictions that the GPL imposes, not additional restrictions.

Personally I think we should resist the urge to licensing as a blunt instrument: it's not the solution to every problem. Often it's easier to just ask people to give some credit where it's due.

Share this post


Link to post
fraggle said:

Hope you don't mind me derailing your thread.

Personally I don't agree with the anti-tivoization clause: I broadly agree with Linus on the matter (the part about the GPL2 being a "tit-for-tat" license). But everyone's entitled to their own view on it. Considering some of Apple's recent changes regarding installation of unsigned apps I might even be tempted to change my mind.

I'd like to see a reference to Apple's recent changes: are they for the better or worse?

Also some platforms kinda require GPLv3 if you're going GPL, namely Android, which itself and lots of third-party code is Apache 2, not working with GPLv2 [dunno how Linux is integrated with it, and yeah I know Android itself is system libraries, not so much the third-party codes on the Net]

I don't understand what "tit-for-tat" means. In this context, it just means copyleft/sharealike?

Share this post


Link to post
printz said:

I'd like to see a reference to Apple's recent changes: are they for the better or worse?

Do you seriously believe one of the big companies could introduce a change that isn't for the worse?

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0