Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Cyberbaron2

Why isn't Zdoom GPL?

Recommended Posts

Honestly why is ZDoom like the only port still using the awful doom source license instead of GPL like virtually all other ports out there? Doesn't it bother the developers that closed source loving ports such as Zdaemon are able to take their code without them having to give anything back? ZDoom really needs to fix this and soon. We need to stop allowing closed source ports to steal code.

Share this post


Link to post

GZDOOM is actually trying to be GPL, once the software code is removed, I think. That was the plan, anyway.

Share this post


Link to post

AFAIK there are three primary reasons why ZDoom is not GPL:

  • Code taken from the BUILD engine is not compatible with that license
  • The FMod sound library is not compatible with that license
  • The principle authors disagree or do not care for some of the central tenets of the GPL, such as "Share Alike", in so far as they do not believe it is necessary for others to share back modifications to the code they have personally written.
Either way, saying ZDoom is under the DSL is technically misleading. AFAIK it's under a mix of the BSD, BUILD, and Raven source licenses. Where the original authority for relicensing Doom under the BSD comes from I am not aware and frankly don't care to find out. The code is open, the non-BUILD parts of it are under GPL-compatible licenses, and the Raven portions can be grandfathered into the GPL due to the fact that code is now effectively dual-licensed. So there you go.

Share this post


Link to post

Basically that. It only isn't because it can't -- there are some remnants of Build code, and the use of FModEx kinda negates any sort of GPL tag at present.

There's sort of a move to build ZDoom with OpenAL, but it's not officially supported or fully-working yet.

[EDIT] Quasar-sniped!

Share this post


Link to post

Excellent, can't wait for it to happen. It'd be really great if ZDoom could force Zdaemon to remove all Zdoom related code. It really pisses me off that those closed source enthusiasts can take their code any time they want and don't share anything at all. The open source ports needs to realize that closed source ports are the enemy and should not be helped in anyway whatsoever, unless they open their source. Of course we all know that Zdaemon will never do such a thing.

Btw, any estimated time for when ZDoom will adopt these changes? I'd be willing to help out for this worthy cause.

Share this post


Link to post

The principle authors disagree or do not care for some of the central tenets of the GPL, such as "Share Alike", in so far as they do not believe it is necessary for others to share back modifications to the code they have personally written.

Wow that's too bad. ZDoom and the rest of the ports could really benefit from the netcode that Zdaemon has. I can't understand why anyone would allow someone to use their shared code if they aren't going to share code back with them.

Share this post


Link to post
Cyberbaron2 said:

It'd be really great if ZDoom could force Zdaemon to remove all Zdoom related code.

Wouldn't that cause ZDaemon to completely cease to exist? :P

Share this post


Link to post
Quasar said:

  • The principle authors disagree or do not care for some of the central tenets of the GPL, such as "Share Alike", in so far as they do not believe it is necessary for others to share back modifications to the code they have personally written.



  • That's nonsense. For me the only reason is the dependence on FModEx. Without that I would have already tried to get rid of the Build code but as long as ZDoom depends on a library that's GPL incompatible there's no point in doing so.

    Concerning the "Share alike" I openly admit that Skulltag bothers me. Can you imagine the pressure that comes from there to keep all code compatible with their secretive attitude? This, however, is something I unfortunately can't change because ZDoom is not my project.

    There was even an attempt to keep the FraggleScript code out because it'd create a compatibility rift between both ports - but in this case I refused. :D

    Share this post


    Link to post
    Cyberbaron2 said:

    Excellent, can't wait for it to happen. It'd be really great if ZDoom could force Zdaemon to remove all Zdoom related code


    Removing ZDoom from ZDaemon would be like removing Doom from ZDoom, and by that I mean stupid and pointless.

    Cyberbaron2 said:

    It really pisses me off that those closed source enthusiasts can take their code any time they want and don't share anything at all


    In the very specific case of ZDaemon, this is justified as an efficient mean of keeping cheaters and exploiters from ruining the game for everyone else.

    Cyberbaron2 said:

    The open source ports needs to realize that closed source ports are the enemy and should not be helped in anyway whatsoever, unless they open their source


    The real enemy here is ignorance, yours particularly.

    Share this post


    Link to post

    Wiki FTW

    One of the main points of the GPL is "thou shalt be able to sell and profit from the software". Now count all the stuff that's under a non-commercial license, that's incompatible with the GPL.

    Of course, the Build code can be "replaced" by EDuke32 code instead, since DN3D is GPL. And the OPL emulator can be replaced by the DOSBox emulator, the one used by ChocoDoom. So the major obstacle remains FMOD's license.

    All that for a silly technicality (since who is going to sell ZDoom anyway?)...

    Finally, it's not possible to retroactively change a license. You can relicense something, but it will not affect existing things. Wouldn't be fair otherwise; imagine releasing something for free, then changing the license to include a monthly fee and suing everybody who used it and didn't pay... And since ZDaemon does not keep up-to-date with ZDoom, nothing that happens here will affect them.

    Share this post


    Link to post

    To me the issue with ZDoom's license is that it doesn't have a mandatory source release clause. That's what enabled ZDaemon and Skulltag to close their source.

    Had such a clause been in existence most of the real issues would not exist now.

    As for the 'security through obscurity' argument, I'd like to challenge that. If obscurity is necessary to make something secure it isn't secure to begin with and needs redesign.

    Share this post


    Link to post

    Gez said:
    Of course, the Build code can be "replaced" by EDuke32 code instead, since DN3D is GPL.[/B]


    eDuke32 is only, uh, morally GPL... I guess? The Build code is still under buildlic.

    Share this post


    Link to post

    Yes, that's what the license states but that just won't fly. The Build license can't be mixed with the GPL so eizher all D3D ports are illegal or Ken Silverman implicitly allowed use of his code in a GPL project - which would make the code usable under the GPL.

    He can't have both.

    Share this post


    Link to post

    Like Graf & Swiss_Cheeseman said, if you download Duke Nukem 3D, you'll see that the build engine is totally separate from the rest of the code. Inside source/buildengine is BUILDLIC.TXT, which is the normal BUILD license we all know and love, except it contains this little foreword:

    (Note from Ryan: This is Ken's BUILD license. It is NOT GPL. Please respect
    his license, and also keep in mind that Ken does NOT work on the Linux port.
    Please don't harrass him for bug fixes and enhancements to the Linux version.
    He did the DOS version. --ryan.)


    Seriously, BUILD and anything based on BUILD is straight up not GPL, it never was and it never will be. Anything using BUILD code that says it's GPL is probably illegal.

    Gez said
    All that for a silly technicality (since who is going to sell ZDoom anyway?)...


    There have been ZDoom mods for sale haven't there? Plus I'm pretty sure making a ZDoom mod and hosting it on a site with tons of advertisements counts as commercial use, which a couple of sites do. Note that I'm going out of my way not to name names because that's not the point. I'm just trying to say that this stuff is both really not well-known and consequently a real issue.

    EDIT:

    It's also worth saying that the BUILD license says you can only distribute it and its derivatives via the internet. This isn't as much of a "real-world" concern, but it pretty lame that if I save Skulltag or ZDaemon to a flash drive and then give that flash drive away I've violated the license. Not cool.

    Share this post


    Link to post
    Ladna said:

    Seriously, BUILD and anything based on BUILD is straight up not GPL, it never was and it never will be. Anything using BUILD code that says it's GPL is probably illegal.



    ... and here lies the problem: The original DN3D source was released under the GPL - so where do we stand now?

    If one took the licenses seriously the code is play and simply unusable.

    Share this post


    Link to post
    Cyberbaron2 said:

    Excellent, can't wait for it to happen. It'd be really great if ZDoom could force Zdaemon to remove all Zdoom related code. It really pisses me off that those closed source enthusiasts can take their code any time they want and don't share anything at all. The open source ports needs to realize that closed source ports are the enemy and should not be helped in anyway whatsoever, unless they open their source. Of course we all know that Zdaemon will never do such a thing.


    ZDaemon doesn't follow mainline ZDoom, so the best you can hope for is that Kilgore retires and passes off the codebase to someone who is appreciates the shoulders of the giants he has stood on.

    As for Skulltag, since it follows ZDoom mainline semi-closely there actually is a way out...

    Share this post


    Link to post
    Graf Zahl said:

    Yes, that's what the license states but that just won't fly. The Build license can't be mixed with the GPL so eizher all D3D ports are illegal or Ken Silverman implicitly allowed use of his code in a GPL project - which would make the code usable under the GPL.

    He can't have both.


    He explicitly doesn't want Build sold (as specified in buildlic) which makes it GPL-incompatible, which is a shame.

    I have tried convincing Ken to release Build under GPL but he won't budge. He's doesn't seem to care about licenses much, he's OK with eDuke32/jfDuke3D containing buildlic code but if anyone actually tried enforcing the distribution allowances that the GPL contains then there would likely be problems.

    EDIT: The closest you're going to get to GPL Build code is the duke3dsource.zip release from 3D Realms. It contains the following text in the readme

    This is the complete source code for Duke Nukem 3D version 1.5,
    buildable as detailed in the next section.
    
    The code is licensed under the terms of the GPL (gnu public license).
    You should read the entire license (filename "GNU.TXT" in this archive),
    so you understand your rights and what you can and cannot do with 
    the source code from this release.
    
    The archive also contains the Build source code without buildlic.txt, however there are still references to it in the source files.

    Yeah, it's a stretch, but it's something. Note that this only applied to this specific release, eduke32 and jfduke3d contain code contributions from Ken and are taken from source code that was explicitly licensed as buildlic.

    EDIT: edited so as not to break forum layout - Quasar

    Share this post


    Link to post
    Swiss_Cheeseman said:

    I have tried convincing Ken to release Build under GPL but he won't budge. He's doesn't seem to care about licenses much, he's OK with eDuke32/jfDuke3D containing buildlic code but if anyone actually tried enforcing the distribution allowances that the GPL contains then there would likely be problems.


    He can twist it as he want but there's only 2 options:

    Either DN3D is GPL which makes the included Build code GPL or the whole thing is illegal and should be discontinued immediately.

    Share this post


    Link to post

    Or we could all put our fingers in our ears and sing loudly.

    Graf Zahl said:

    He can twist it as he want but there's only 2 options:

    Either DN3D is GPL which makes the included Build code GPL or the whole thing is illegal and should be discontinued immediately.

    The former is what I want to happen, the latter is highly unlikely to happen. All of the developers and contributors to eduke32 don't care enough about license enforcement to drop everything in protest.

    If you want to have a try at convincing Ken then go ahead.

    EDIT: Just making it clear that I am in no way defending Ken, he's being a stubborn fool.

    Share this post


    Link to post

    Surely this depends on the license between Ken and 3D Realms. If he licensed it to them under a restrictive license then it is they who have screwed up by "re-licensing" his Build code as GPL.

    Still, I'm pretty sure much water has passed under this particular bridge and a great deal of it we will likely never know about. It wouldn't surprise me if both parties have an informal "don't go there" pact.

    Share this post


    Link to post
    Swiss_Cheeseman said:

    The archive also contains the Build source code without buildlic.txt, however there are still references to it in the source files.


    The source release is extremely confusing, actually. There are three folders, extras, source and test data which seem to be what the 3D Realms team wrote, along with GNU.TXT and README.TXT. But there's the 2 .zip files AudioLib.zip and BuildEngine.zip. From what I can tell the source in /source won't compile on its own, it requires the code from AudioLib.zip and BuildEngine.zip. BuildEngine.zip contains BUILDLIC.txt. README.TXT says:

    Thanks also to Ken Silverman and Jim Dose for allowing us to include some of their source in this build, so we have it all in one archive.


    The way it looks is that 3D Realms released what the wrote in addition to the BUILD engine, and Ken Silverman allowed them to include a ZIP of BUILD in that distribution.

    Silverman references JonoF's BUILD port as the best BUILD port, and this also ships with the BUILD license.

    ===

    Regarding BUILD & Duke3D being distributed together, I don't think this violates either BUILD's license or the GPL. If you made some changes and distributed the modified binary then you'd be in violation of the GPL since you can't satisfy its conditions and also comply with BUILD's license But I think (and I could be wrong) that the release is legal and that compilation and use of the unmodified source is legal.

    Share this post


    Link to post
    Ladna said:

    Regarding BUILD & Duke3D being distributed together, I don't think this violates either BUILD's license or the GPL. If you made some changes and distributed the modified binary then you'd be in violation of the GPL since you can't satisfy its conditions and also comply with BUILD's license But I think (and I could be wrong) that the release is legal and that compilation and use of the unmodified source is legal.


    This is all correct, particularly the fact that the distribution of any executable compiled from this source is in violation of the accompanying licenses.

    I don't think this is much of an issue from both 3DRealms's or Ken Silverman's side but it may cause issues if, for example a webhost of such a port has issues with it and closes the site down.

    And of course it's all morally questionable.

    Share this post


    Link to post

    Basically the license is not legally valid. If it were challenged in court it would be voided and the parties would have to work out a different agreement, be it that no use is possible, or use under an alternate, legally valid license.

    Proprietary or commercial-use-restricted code *cannot* be combined with code under the GPL. Since BUILD is not compatible with the GPL, Duke3D cannot be placed under the GPL, period. That it ostensibly was doesn't change anything; it means the license is invalid and unenforceable, and that therefore any user of the code actually has no legal permission from the copyright owner on which to proceed (in the absence of license for use, copyright takes over, which states "all rights reserved except those explicitly granted").

    IANAL, of course, but to me this is dead obvious. The suggestion that code can be under the GPL but not allow redistribution of the source code or of any binary compiled from the source code is ridiculous. It clearly means that the code is simply not validly GPL at all.

    Share this post


    Link to post
    Graf Zahl said:

    That's nonsense. For me the only reason is the dependence on FModEx. Without that I would have already tried to get rid of the Build code but as long as ZDoom depends on a library that's GPL incompatible there's no point in doing so.

    Why not build a generic stub interface to the sound engine? In other words, let (G)ZDoom call the "stub DLL" that interfaces with an external library, which just happens to currently be FModEx. In this manner, there's no hard dependence on FModEx, or anything else. This would of course also allow sound engine "hot swapping", so to speak.

    The stub is the compatibility layer between (G)ZDoom and the sound engine.

    Naturally, you would want to put some serious thought into it, to make it robust enough to handle the various, now-and-later possible requirements for any given sound engine.

    You would want to get it right the first time - you don't want to have to deal with compatibility problems with the stub.

    But, back to the point, this is a (relatively) simple and quick way to remove a huge chunk of the GPL compatibility issues.

    Even MORE cool:
    This could provide a sound service mechanism that ALL doom ports could support! Imagine all doom ports being able to call a common service that could be configured in one place. Then I could make all my ports sound the same, and sound good, without having to mess with each port's settings.

    Share this post


    Link to post

    You wouldn't think that I have never considered it, would you?

    Unfortunately Randy thinks differently and 'did not want to jump through hoops' to implement sound. As a result it's basically unseparable from the main executable without a lot of added work.

    I managed to get it to the point that the low level sound code no longer accesses game data but it's still too interconnected to do this easily.

    Share this post


    Link to post

    Isn't that kinda what Chris is working on? The ALure interface thing to switch between FMOD and OpenAL freely?

    Share this post


    Link to post
    Graf Zahl said:

    ...Unfortunately Randy thinks differently...

    Yeah, that's a showstopper. Of course, if such a thing did exist, and all the *other* ports were using it, I think Randy might think differently.

    Graf Zahl said:

    ...it's basically unseparable from the main executable without a lot of added work.

    I managed to get it to the point that the low level sound code no longer accesses game data but it's still too interconnected to do this easily.

    A very valid point. Come to think of it, it's not so "simple" after all, especially concerning the data. It could probably be done, and work ok, though. I may go down this path one day - hell, I'm still using the MIDAS code from ZDoom 1.11 - heh! Been afraid to change it, but, it hasn't been supported in a LONG time, and, I'm sure will eventually quit. But, for now, it still works well (for Windows users, at least), which places it near the bottom of my stack, so to speak, for the time being.

    Essentially, this amounts to "DirectSound Lite", with a slant towards Doom's not-so-unique needs.

    Share this post


    Link to post
    Quasar said:

    Proprietary or commercial-use-restricted code *cannot* be combined with code under the GPL. Since BUILD is not compatible with the GPL, Duke3D cannot be placed under the GPL, period.

    Can't it be dual-licensed as both Build and GPL though? Sort of like how Doom is. Meaning in ZDoom it can be used under the Build license, while elsewhere it could be used under the GPL.

    Share this post


    Link to post
    Spleen said:

    Can't it be dual-licensed as both Build and GPL though? Sort of like how Doom is. Meaning in ZDoom it can be used under the Build license, while elsewhere it could be used under the GPL.

    It could but there is no indication that this is the case. I rather think Ken believes it can be under his non-commercial license without affecting the validity of Duke3D's license. In fact it cannot, and 3D Realms never should have released it under the GPL. They should have released it under the BUILD license, or a BSD-style license, in order to be compatible with their own rendering engine.

    Share this post


    Link to post
    Guest
    This topic is now closed to further replies.
    ×