Loading...
  OR  Zero-K Name:    Password:   

GNU GPL v2 vs v3

13 posts, 786 views
Post comment
Filter:    Player:  
sort
19 months ago
ZK has some widgets under "GNU GPL v2" and some under "GNU GPL v3". Is it illegal to offer a download that bundles them together such as it is currently done?

I doubt that the advantages of making the GNU GPL v3 were worth the length and incompatibility. I think it would make sense to use "GNU GPL v2 or v3 but not later" for widgets. Unfortunately, this case is not considered by the GPL.

Using "GNU GPL v2 or later" or "GNU GPL v3 or later" is clearly the worst of all because you loose control about a potential GPL v4. Recently, I had a nightmare where Facebook bought the Free Software Foundation to "support free software" and then wrote a GPL v4 with legal tricks such that all software that uses the "or later" statement belongs to Mark Zuckerberg.
+0 / -0
19 months ago
I doubt "or later" would hold up in any court. You can't agree to a future contract that doesn't exist yet.
+0 / -0

19 months ago
quote:
Is it illegal to offer a download that bundles them together such as it is currently done?

It depends, and I don't think anyone can give you a clear answer. https://www.gnu.org/licenses/gpl-faq.html#MereAggregation

In general the GPLv3 is a better choice than GPLv2 because it's more compatible with other licenses and offers a chance to remedy violations instead of just permanently stripping you of all rights.

quote:
"or later" statement belongs to Mark Zuckerberg

Luckily that is quite unlikely, since FSF is a charity, not a publicly traded company.
The recent adoption of a Code of Ethics most likely prohibits any such activity, so that would have to be abolished first as well.
+0 / -0
https://www.gnu.org/licenses/gpl-faq.html#VersionThreeOrLater

quote:
Suppose a program says “Version 3 of the GPL or any later version” and a new version of the GPL is released. If the new GPL version gives additional permission, that permission will be available immediately to all the users of the program. But if the new GPL version has a tighter requirement, it will not restrict use of the current version of the program, because it can still be used under GPL version 3. When a program says “Version 3 of the GPL or any later version”, users will always be permitted to use it, and even change it, according to the terms of GPL version 3—even after later versions of the GPL are available.

So even if GPL v4 says "Mark Zuckerberg owns this program" he can go suck a fat one because everybody is still permitted to use this stuff under GPL v3.

I think that if anything was strictly GPL v2 we would have a problem:

https://www.gnu.org/licenses/gpl-faq.html#v2v3Compatibility
quote:
...if you tried to combine code released under GPLv2 with code under GPLv3, you would violate section 6 of GPLv2.

but combining "GPL v2 or later" with "GPL v3 or later" is fine: https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility

A quick file search did not find anything which was obviously "GPL, v2" as opposed to "GPL, v2 or later", though I didn't try super hard and it's a bit annoying to filter for. I seem to recall that somebody has thought about this issue before now. Probably AUrankAdminGoogleFrog.

(In fact there seems to be very little in the ZK repository which is GPL v3 and not GPL v2.)
+2 / -0
19 months ago
quote:
I doubt "or later" would hold up in any court. You can't agree to a future contract that doesn't exist yet.
I would like it if you were right. Unfortunately, some people think differently. Some jurisdictions also don't treat a license as a contract. Many companies use clauses that allow them to change their terms and conditions only by announcing it before, some even at any time. A recent court case in Germany has rendered this practise invalid at least for bank contracts, probably more. But companies except banks continue to use those clauses as if nothing had happened.
Now if a developer has published a program under "GNU GPL v2 or later" and then forgot about it, then the GPL v4 appears and then a user installs the program while already knowing the GPL v4, things can again be different. That user might want to publish a changed version under GPL v4.
quote:
But if the new GPL version has a tighter requirement, it will not restrict use of the current version of the program, because it can still be used under GPL version 3.
Yes, but then the whole idea of applying to future versions of the program is lost: GPL v3 says that later GPL versions may not impose additional obligations on the author. People often switch the meanings of permission and obligation depending on whether they like open source or not. Some people see the requirement to publish source code not as a permission but as an obligation. And in fact, it is an obligation for the author and a permission for the user (who may also be an author, though). You could write a GPL v4 that removes the need to publish source code for a case that is artificially constructed to appear like a problem that needs to be solved to fulfil GNU GPL v3 Nr. 14 sentence 2, then take a program under "GNU GPL v3 or later" and publish your changed version of it under "GPL v4" without publishing the source code. GPL v2 does not even have the obligation restriction for new GPL versions.

quote:
In general the GPLv3 is a better choice than GPLv2 because it's more compatible with other licenses and [...]
"GPL v2 or v3 but not later" would be even more compatible than "GPL v3". For ZK, compatibility with GPL v2 also matters more than with an Apache license.

quote:
I think that if anything was strictly GPL v2 we would have a problem
quote:
but combining "GPL v2 or later" with "GPL v3 or later" is fine
Yes, of course. And most ZK code is under "GNU GPL v2 or later". But as I said
quote:
ZK has some widgets under "GNU GPL v2" (only) and some under "GNU GPL v3" (only).
+0 / -0
quote:
ZK has some widgets under "GNU GPL v2" (only) and some under "GNU GPL v3" (only)

Can you link them then? Because I looked and did not find them.

edit: Found a few by searching for "GPL v2" without the comma.
+0 / -0
19 months ago
I found the following widgets with potentially incompatible licenses:

"GPLv2":
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/api_preselection.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/api_chili.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/api_game_analytics.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/api_i18n.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/api_lag_monitor.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/api_lobby_battle_status.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/dbg_ceg_spawner.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/dbg_chili_inspector.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/dbg_chili_profiler.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/dbg_devcommands.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/dbg_img_preload.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gfx_deferred_rendering.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gfx_projectile_lights.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gui_antinuke_coverage.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gui_blastRadius.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gui_defenseRange.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gui_easyFacing.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gui_nukeButton.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gui_pauseScreen.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/missilesilo_range.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/unit_decloak_range.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/unit_ghostSite.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/unit_marker.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/unit_show_selected_range.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/unit_waypoint_dragger_2.lua

"GPL v3 or later":
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/cmd_stop_selfd.lua
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gfx_dynamic_metal.lua

"push button magic":
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/dbg_animator.lua

"dfgh":
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/dbg_fpslog.lua

"stackable":
https://github.com/ZeroK-RTS/Zero-K/blob/master/LuaUI/Widgets/gui_replay_controls.lua

Can anybody say what the strange licenses are?

We have 3 options:

1. Do nothing. Hope that neither the GPLv2 widget authors nor the GPL v3 or later widget authors nor the strange license widget authors nor their heirs will sue you. The open source license is one of ZK's main selling points. Now people can say that it's illegal. Tell those people that it's not clearly illegal because it's an aggregate which is probably wrong.

2. Accept that ZK is "GNU GPL v2 only" on the whole even though most of its parts are "GNU GPL v2 or later". Ask the GPL v3 or later (and maybe the strange license) widget authors if they want to relicense their widgets.

3. Also accept that ZK is "GNU GPL v2 only" on the whole even though most of its parts are "GNU GPL v2 or later". Remove the GPL v3 or later (and maybe the strange license) widgets from the main game. Maybe provide the removed GPL v3 or later widgets as a separate widget package download from the website under "GNU GPL v3" or "GNU GPL v3 or later". Maybe replace the removed widgets by other widgets in the main game.

I think we should first try option 2 and then if necessary option 3.
+0 / -0


19 months ago
I don't think any of this is necessary, but you can do whatever you like as long as it doesn't affect anything. The people releasing widgets for ZK or Spring know what they are doing in the important sense - they are contributing to an open source project. I expect almost all of the licenses in widgets are copypasta, with most of the exception being people writing nonsense to poke fun at the idea that the license matters. I seriously doubt anyone is going to sue anyone else or there are going to be any other legal ramifications. I also expect very few people to care about the minutia of different GPL versions. I don't even think ZK being open source is a selling point for players. The most a license within Spring has done is give some indication of how the creator of something would like their creation to be used. This isn't even particularly useful for widgets though, as the license of Spring itself requires widgets to be GPL compatible, so even if widget authors paid any attention to licenses, there wouldn't be much scope for them to pick one.
+1 / -0

19 months ago
Sometimes people from weird Linux distros want to include ZK in their packages but can't due to license woes. So there is a marginal benefit in fixing licenses in that we get a bit of free distribution.
+1 / -0
19 months ago
Why are licenses included inside "widget" headers at all?
+1 / -0
quote:
Why are licenses included inside "widget" headers at all?


Widgets are essentially helper programs, that are usually easily transferable between Spring games and thus are often distributed by themselves.
+1 / -0

19 months ago
quote:
We have 3 options:

Well, you don't actually need to declare a particular license for a whole package. That's just something you do to be nice to people.
Since ZK is based on Spring, it might simply be enough to say so.
It would be nice to at some point get all the licenses cleaned up, but that's more effort (I'm looking at you, crabe).
+0 / -0
quote:
Sometimes people from weird Linux distros want to include ZK in their packages but can't due to license woes. So there is a marginal benefit in fixing licenses in that we get a bit of free distribution.

I have only ever heard them complain about some variant of slightly too restrictive CC license, not anything in the GPL area. And we can't "fix" the CCs. But if the GPLs are the sticking point, then sure, fix them.
+0 / -0