Has anyone considered upping the GPLv2+?

For source port maintainers, has anyone considered upping the GPLv2+ to GPLv3+?

What did you think about it, and what conclusion did you come to?

Share this post


Link to post
GhostlyDeath said:

For source port maintainers, has anyone considered upping the GPLv2+ to GPLv3+?

What did you think about it, and what conclusion did you come to?

Considered, certainly, mainly due to the protection it offers from TiVoization and having DRM schemes slapped on top of the software I work hard to develop.

But, in my opinion, there is still too much useful code which states GPL v2 only, and you can't link v2-only code with GPLv3 code. A major failure on the part of the FSF IMHO.

Share this post


Link to post
Quasar said:

Considered, certainly, mainly due to the protection it offers from TiVoization and having DRM schemes slapped on top of the software I work hard to develop.

But, in my opinion, there is still too much useful code which states GPL v2 only, and you can't link v2-only code with GPLv3 code. A major failure on the part of the FSF IMHO.


Well, the monopoly library practically every open source port uses (SDL) is LGPLv2 which IS compatible. Also many library are upgrading to LGPLv3/GPLv3 which means NEITHER of them can be used at all in GPLv2 programs, not even dynamic linking.

Share this post


Link to post

Where's Maes? I'm sure that Mocha Doom is GPLv3...

Share this post


Link to post

I thought the GPL licenses had a license update clause in them.

GPL v1 boilerplate:

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 1, or (at your option)
    any later version.
GPLv2 boilerplate:
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
GPLv3 boilerplate:
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

Based on that, moving stuff (especially libraries) from v2 to v3 is kind of a dick move, as you break licensing compatibility with v2-licensed programs without changing anything for the rest.

Share this post


Link to post

Fork 'em then. :D Or look for equivalent lib, or BSD lib, or something.

Share this post


Link to post
Gez said:

Based on that, moving stuff (especially libraries) from v2 to v3 is kind of a dick move, as you break licensing compatibility with v2-licensed programs without changing anything for the rest.



The FSF are dicks. It's quite obvious that their licenses are designed to make the GPL v2 obsolete because it doesn't offer the level of 'protection' they deem necessary so whatever helps to make it go, would be good for their agenda.

Share this post


Link to post
Quasar said:

But, in my opinion, there is still too much useful code which states GPL v2 only, and you can't link v2-only code with GPLv3 code

Yeah same here. The extra protections of the GPLv3 are not that compelling for me personally.

A major failure on the part of the FSF IMHO.

I was going to agree with you, but on second thought it was probably unavoidable (to combine "v2 only" code with v3) since anything new in the GPLv3 would be an extra restriction which the GPLv2 explicitly forbids.

Share this post


Link to post

This is probably really stupid and I don't know what I'm talking about, but if you wanted v2 only code to interact with v3 code, would it be possible to create some "proxy" code that is licensed under v2, but not exclusive to v2, so that it could legally interact with the v3 code?

Share this post


Link to post

You could always break up your code into separate processes, and have them communicate via pipes, sockets, shared memory, or whatever. Then only the process that's linked with GPLv3 lib is contaminated. Isolate and contain all the bad shit and keep it to a minimum, that's one way OpenBSD deals with security, and GPL is just a different kind of virus. ;)

Share this post


Link to post

GPLv3 has no issues with BSD-licensed code, that kind of software wouldn't be contaminated :P

Share this post


Link to post
Quasar said:

Considered, certainly, mainly due to the protection it offers from TiVoization and having DRM schemes slapped on top of the software I work hard to develop.

I can't see any real risk of that in a Doom source port.

Share this post


Link to post
finnw said:

I can't see any real risk of that in a Doom source port.

The risk primarily comes from platforms such as iOS where development is licensed and restricted.

Share this post


Link to post
Sodaholic said:

This is probably really stupid and I don't know what I'm talking about, but if you wanted v2 only code to interact with v3 code, would it be possible to create some "proxy" code that is licensed under v2, but not exclusive to v2, so that it could legally interact with the v3 code?

hex11 said:

You could always break up your code into separate processes, and have them communicate via pipes, sockets, shared memory, or whatever. Then only the process that's linked with GPLv3 lib is contaminated. Isolate and contain all the bad shit and keep it to a minimum, that's one way OpenBSD deals with security, and GPL is just a different kind of virus. ;)


Perhaps. But the point isn't to try and be an asshole; that's what commercial software companies are for. If you want to ignore some amateur developer's license, just ignore it; it's not like people will like you more for technically obeying it while stepping all over it, and he/she won't have the legal resources to pursue the matter either way.

Share this post


Link to post
Quasar said:

The risk primarily comes from platforms such as iOS where development is licensed and restricted.


And, for what concerns an iOS port of a preexisting multiplatform app, their additional restrictions are entirely unenforceable and therefore pointless.

Share this post


Link to post
Sodaholic said:

This is probably really stupid and I don't know what I'm talking about, but if you wanted v2 only code to interact with v3 code, would it be possible to create some "proxy" code that is licensed under v2, but not exclusive to v2, so that it could legally interact with the v3 code?

Lawyers are much more analog than that; the number of indirection layers or technical restrictions (like "EXPORT_SYMBOL_GPL" in the linux kernel) is not so important, but the end result is often. Quite likely you will have to establish that your proxy code is not solely tailored to one specific backends and the circumvention of its license. IANAL, ask yours - but a hint: the less toes you step on and willingly so, the less churn for everybody.

Share this post


Link to post

Sounds a little strange to me, that you read the GPLv2 as restricting what other libraries it can access and communicate with.
If you compile any of these ports for Windows, does it not communicate with a bunch of proprietary libraries.

My first reaction is that this is only a problem if you try to copy GPLv3 code and include it in your GPLv2 program.
(Which might be true if you are embedding some other library in your program, in which case you need to read the library GPL)

DoomLegacy does not embed any libraries, only links to them, so I think it would be moot if those libraries went GPLv3.

Share this post


Link to post
wesleyjohnson said:

Sounds a little strange to me, that you read the GPLv2 as restricting what other libraries it can access and communicate with.
If you compile any of these ports for Windows, does it not communicate with a bunch of proprietary libraries.

There is an exception clause in GPLv2, which covers most or all of the libraries you are probably thinking of:

Richard Beardman said:
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

wesleyjohnson said:

DoomLegacy does not embed any libraries, only links to them, so I think it would be moot if those libraries went GPLv3.


As always, you should consult your own lawyer before reaching any legal decision, but from what I've seen browsing the net, there's a widespread belief that the exact form of the connection (shared memory, dynamic link, static link, network, whatever) is not relevant. This is reflected in the license itself: There is no reference to specific forms of linking or communication, but there is language like this:

Richard Beardman said:
If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.


So the question is more about the relationship between these various pieces of code; are they "parts of a whole" or discrete individual programs?

I'm not meaning to stir anything up; I'd only emphasize that the situation is always complicated when dealing with copyright law, and there are rarely clear-cut answers.

Share this post


Link to post

Source port projects that have to start consulting lawyers could just as well shutdown now. Any GPL is going to be counter-productive if it drives all the projects to that.

For that reason, I argue that the follow is a reasonable working interpretation (that allows work to continue until such time that it is shown that the interpretation should be otherwise).
This working interpretation does not cover all the corner cases, but should allow us to continue work on ports without having to run for lawyers.

1) A project that requires a library (like SDL, OpenGL) but does not supply it, has no problem if that library uses GPLv3, or any other license.
Their binary is clear of this particular license restriction too.
This is because the library in question is distinct from any distribution of your project. Your project is not distributing it.

2) A project that supplies source code for a required library, does not have a problem with GPLv3 as long as the library is kept distinct in the source code, and they do not distribute compiled binaries.

3) A project that supplies a third party library embedded in their binary downloads, and the third party library uses GPLv3, then there is reason to believe that the whole work must be under GPLv3. Most any license used by the library is going to cause problems. (But this is the situation where the library should be using library GPL, which has more allowances.)

4) How a library is technically linked is irrelevant. The project supplying (copying, or any other term) a library in a way that makes it indistinct, and inseparable to the end user is critical.

5) When the end user cannot update or use the supplied GPLv3 library independently of your program/project (not GPLv3), then there is a potential problem, and the licenses in question should be read carefully.

If you have refinements to the above, that clarify or confirm the matter discussed, then please post such.

Moving existing code from GPLv2 to GPLv3 is pointless as existing released code packages with GPLv2 can be still be used by potential violators of GPLv3.
GPLv3 can give more protection to packages that were never released under a previous GPL. At least the updates and bug fixes will be protected by GPLv3.

Share this post


Link to post
wesleyjohnson said:

Source port projects that have to start consulting lawyers could just as well shutdown now. Any GPL is going to be counter-productive if it drives all the projects to that.


Do whatever you want, but just know that you're never "right" until it's proven in court. Until then; it's all just suppositions. It doesn't matter how reasonable you think your interpretation is.

Share this post


Link to post
natt said:

Do whatever you want, but just know that you're never "right" until it's proven in court.

And even then, it can be appealed until you run out of higher magistracy. If both sides have a lot of money to sink in legal fees.


Which is generally not the case so you're more likely to settle out of court with an ad-hoc arrangement.

Share this post


Link to post

Uh, if SDL goes GPLv3, I'll just grab the linuxdoom source and update the Xlib stuff, and patch sndserver so it works with OpenBSD's sndio. That would be a lot more fun than dealing with overcomplicated license/lawyer bullshit. Hell, I might even learn something... :D

Share this post


Link to post
hex11 said:

Uh, if SDL goes GPLv3, I'll just grab the linuxdoom source and update the Xlib stuff, and patch sndserver so it works with OpenBSD's sndio. That would be a lot more fun than dealing with overcomplicated license/lawyer bullshit. Hell, I might even learn something... :D


Or you can use Allegro.

Share this post


Link to post

Based on my own personal experience with devoloping with Allegro, I can't really say that it's feature-rich, or even stable enough to replace SDL.

Share this post


Link to post
GhostlyDeath said:

For source port maintainers, has anyone considered upping the GPLv2+ to GPLv3+?

What did you think about it, and what conclusion did you come to?

It has some nice features like automatic license reinstatement once an infringer comes back into compliance with the license, however it can't be used with any port that uses Heretic or Hexen code from Raven, as that code is GPLv2 only.

Share this post


Link to post
Yagisan said:

however it can't be used with any port that uses Heretic or Hexen code from Raven, as that code is GPLv2 only.


However, that is still an iffy subject.

Share this post


Link to post

The interpretation that the Raven code is GPLv2 only is what is called into question.

James Monroe emailed me and asked me what license was best to use so as to be compatible with the existing DOOM ports. I wasn't able to get back to him in time before he did the release, so he chose GPL v2, but didn't add it to the source file headers probably out of lack of knowing it should be done.

The GPLv2 is included with the source code, but is not referenced elsewhere in the distribution. The GPL says you can use a later version unless the software names a specific version of the license, and it does not do this. It references the file COPYING without stating that the code can only be used under v2.

It's a bit gray area, but based on what I knew of James Monroe's intent and the above, my firm opinion is that the Heretic/Hexen code is GPLv2+.

Share this post


Link to post

I only base my opinion that it is GPLv2 only based on the statements included in the source releases.

SourceReadme.txt said:

Activision and Raven are releasing this code for people to learn from and play with.
This code is copyright Activision 1996-1998
[edit 2 Sep 2008] The code is release under GNU GPLv2 (see LICENSE)

Issues:
The DMX sound library is not included with the source due to license issues, so you won't be able to link until those sound calls are replaced or removed.


This is the only statement of intent I could find in the source release. I do concede that the referenced LICENSE file does mention GPLv2 or later - but the source code isn't marked as required. As a conservative interpretation, it is GPLv2 only, a more liberal one could read it as GPLv2+

Share this post


Link to post

My understanding is that having a reasonable working understanding is a valid legal defense. Generally, the court would tell you that your opinion was wrong and you have to go by such-and-such interpretation.

The courts are not out to destroy companies, groups, or individuals on every legal dispute. Trouble occurs if you want to defend an opinion against contrary accusations. The way to get in real trouble is to knowingly act in violation of a court interpretation (such as overt software piracy). Having a reasonable working interpretation has great value in defending yourself against cheap shots. Everyday, you have to be ready to explain why you thought you were not violating any rules, for where you park your car, or cutting articles out of the newspaper.

Companies do not go running to a lawyer for everything they do. They do not have the money nor patience for it. Most everyday decisions made by workers are reasonable working interpretations of some rights.

It does no good to worry that you cannot afford to go to court. Most of the discussion occurs outside of the court and costs nothing.
Only when both parties are in stubborn disagreement does it get costly. There generally must be something to be gained to justify costly court resolutions.

Most of what is in this forum, I would call generating a reasonable working interpretation, and it should be saved as such as a legal defense.

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