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

Doom License & GPL confusing & loopholes...

Recommended Posts

I've been reading the 10 Years article written by James 'Quasar' Haley (http://www.doomworld.com/10years/ports/ports02_1.php). I've got a couple of queries about some flaws or loopholes.

Some quotes:

Carmack gave permission for the DOOM source to have its terms of distribution changed to the GNU General Public License, which is the most- used open-source, free-software license in the world.

Ok. So they re-released the code with a different license.

While source ports currently in progress could not be retroactively forced to convert to the GPL license, any new ports basing themselves off the relicensed source would have to obey its terms.

I guess some developers just replaced the license file with the GPL and could see it "as if" they started off with the GPL version of Doom in the first place (if it was a small project).

Let's have a scenario.

Source Port A, originally based off original Doom 1.10 source code for linux, uses the Doom License which means the authors could keep it closed-source, but release their code open-source anyway.

Then another Source Port B comes along, takes their code and replaces the license with GPL.

Then another Source Port C comes along and takes Source Port B's code and changes it back to Doom License.

Is this allowed?

NB: read my research continuation down below:
http://www.doomworld.com/vb/source-ports/44358-doom-license-gpl-confusing-loopholes#post744877

Share this post


Link to post
kristus said:

No.


Please expand. The developers (or Source Port C) can easily say... "oh.. we dropped Source Port B and went back to Source Port A... but took some files from Source Port B..."

The Doom License was a stupid rule anyway. It's either open source or proprietory.

Share this post


Link to post

Changing the license on any piece of software requires permission from all the authors (the copyright holders).

but took some files from Source Port B

Those files were new code written by new people and released under the Source Port B license, so you would not have permission to change the license on those files.

Share this post


Link to post
andrewwan1980 said:

Source Port A, originally based off original Doom 1.10 source code for linux, uses the Doom License which means the authors could keep it closed-source, but release their code open-source anyway.

Then another Source Port B comes along, takes their code and replaces the license with GPL.


Stop right there, criminal scum.</Oblivion guard>

At no point in this scenario did you say B's team had A's team okay for relicensing their code changes and additions, so what B is doing here is not okay.

See for example how Odamex sought (and got) Randy Heit's agreement for relicensing some parts of ZDoom 1.22 as GPL.

andrewwan1980 said:

Then another Source Port C comes along and takes Source Port B's code and changes it back to Doom License.


Not allowed at all. You do not have the right to relicense someone else's work, no matter what. "Hai guyz I got a leaked version of Windows Vista's source code so I'm going to relicense it as GPL lol! What no I'm not Microsoft, but I've got the source on my computer so I have the legal right to change its license to whatever I want, right?"

Yeah, well, no. No you don't.

andrewwan1980 said:

Please expand. The developers (or Source Port C) can easily say... "oh.. we dropped Source Port B and went back to Source Port A... but took some files from Source Port B..."

And they don't have the right to take these files from B and change their license. They have to actually go back to A and drop everything from B, or get B's author to relicense it for them.

andrewwan1980 said:

The Doom License was a stupid rule anyway. It's either open source or proprietary.

"I'm not paying my taxes because the President is stupid anyway."

Oh wait, law doesn't work like this. A license might be stupid, but that has no impact at all on whether infringing them is illegal or not. (And the answer to this is "illegal" for those keeping score at home.)

Share this post


Link to post

Gez said:
<snip>
And they don't have the right to take these files from B and change their license. They have to actually go back to A and drop everything from B, or get B's author to relicense it for them.
<snip><snip>


Wow, looks like you know a lot on the legal system.

Well, I remember reading that Skulltag was based off csDoom & ZDaemon was based off ZDoom 1.23. But other wikis had conflicting info.

So I was curious and downloaded

  • csdoom-0.7-src.tar.gz (last old csDoom release)
  • zdoom-1.23b33-src.zip (last ZDoom 1.x release)
  • st091-src.zip (some early version of Skulltag)
  • zdaemon105rc5_win32_src.zip (some early version of ZDaemon)
(well, actually I downloaded every single ZDoom source release)

I used Beyond Compare (file/folder comparsion tool, but any diff/merge tool will do) and try to find the closest match for ZDaemon & Skulltag. (Closest match: by analysing all diffing files to look for smallest changes, and using intuition.. and lowest diffing files count).

ZDaemon 1.05 does closest match ZDoom 1.23b33.
Skulltag 0.91 does closest match csDoom 0.7.

ZDoom 1.x has always been Doom License.
csDoom 0.7 has a GPL license.
Skulltag 0.91 source release didn't even come with a license (but closest match is csDoom 0.7).

Assume Sergey "Fly" Makovkin (csDoom) got permission to change the license to GPL from Randy Heit (ZDoom). That means Brad "Carnevil" Carney (Skulltag) should've got permission from Sergey to change GPL back to Doom License. Weirdzzz. (or Skulltag could easily say, "ooh, we dropped csDoom and went with ZDoom 1.22"...



PS: Yeah I heard that ZDaemon rewrote the client/server netcode away from csDoom's QW netcode. And Skulltag replaced csDoom's QW netcode with Quake 2 netcode.... (which I thought Q2 was GPL??)

Share this post


Link to post

Since Skull tag and ZDaemon keep their sources closed it's hard to tell whether they have any GPL specific code, but if they do, it's a problem in the ports, and not the licenses themselves.

andrewwan1980 said:
It's either open source or proprietory.

The Doom license is indeed proprietary (it's not a free license), and is not open source except in the sense that the source itself was made available, although it does not stop authors from keeping their sources consistently open by personal choice, like in ZDoom's example.

Note that "open source" and "free software" are not the same thing. The GPL is both, but open means it has been released to the public while free means you can do almost anything with it. You can open sources and yet keep them under proprietary restrictions.

Share this post


Link to post
andrewwan1980 said:

csDoom 0.7 has a GPL license.

Assume Sergey "Fly" Makovkin (csDoom) got permission to change the license to GPL from Randy Heit (ZDoom). That means Brad "Carnevil" Carney (Skulltag) should've got permission from Sergey to change GPL back to Doom License. Weirdzzz.[/b] (or Skulltag could easily say, "ooh, we dropped csDoom and went with ZDoom 1.22"...


Unfortunately, Fly did not have the right to make it GPL since it was based on code that wasn't GPL itself. And no, he didn't seek that permission (nor obtained it).

The Skulltag guys went with the Doom license since it was what csDoom should have officially been anyway (and also because it was convenient for them).


Contemporary releases of Skulltag are based on ZDoom 2.1.7 r622. As for the netcode, I have no way of knowing how it is now, whether it's still based on csDoom or whether it has been rewritten since.

Share this post


Link to post
Gez said:

Unfortunately, Fly did not have the right to make it GPL since it was based on code that wasn't GPL itself. And no, he didn't seek that permission (nor obtained it).

The Skulltag guys went with the Doom license since it was what csDoom should have officially been anyway (and also because it was convenient for them).<snip>


Yeah, if that's the case, then my confusion is cleared up then. Shame.

Now... seeing if all those wikis are accurate..

Share this post


Link to post

Gez said:
Unfortunately, Fly did not have the right to make it GPL since it was based on code that wasn't GPL itself. And no, he didn't seek that permission (nor obtained it).

Without removing the GPLed code he was also forced to comply with the GPL (Carmack himself called him on that though an email). The code from 0.7 is simply illegal as it is. Legally speaking it must be changed or removed from circulation. The two alternatives for it are to remove anything in the ZDoom base that does not comply with the GPL (what the Odamex team did), or to remove the QW-based sources (presumably what the ZDaemon team did).

One thing though, since Fly did choose to license 0.7 under the GPL, it was nominally (however brokenly) under it, and only he could do anything about that.

Also, when NightFang rewrote a lot of the netcode, he willingly retained the GPL license for his new code (check the ZDaemon v1.0 sources), but still conflictlingly. When he quit the ZDaemon team took advantage of that to say that the GPL license wasn't valid, although they didn't personally have a right to do so unless NightFang explicitly gave the okay and they made sure any and all GPLed code was gone.

Likewise, the Skull tag team could have no right to relicense any csDoom 0.7 sources, only to remove all its code altogether.

Share this post


Link to post
myk said:

<snip>
Likewise, the Skull tag team could have no right to relicense any csDoom 0.7 sources, only to remove all its code altogether.


Which is why ZDaemon & Skulltag went the easy option to close-source their code (and because of the security cheating issues too).

Anyone can easily say, "oh, we removed all that Fly guys GPL added QW netcode & our Q2 netcode, but our next release will be closed-source coz it's Doom License.. teehee, they'll never know!!!"

I actually like both ZDaemon & Skulltag, but don't like them closed-sourced.

Btw, where did you get the ZDaemon 1.00 source code from? Can't google it...

Share this post


Link to post

If there is code from QW or Q2 in ZDaemon or Skulltag, keeping it closed source does infringe the license under which Q2 and QW were released. If they have relicensed it, it's an even more severe offense.

Share this post


Link to post
Gez said:

If there is code from QW or Q2 in ZDaemon or Skulltag, keeping it closed source does infringe the license under which Q2 and QW were released. If they have relicensed it, it's an even more severe offense.


That's exactly what most of the community & fan base of ZDaemon & Skulltag don't like... after ZDaemon & Skulltag turned closed-source. It's like taking GPL code, stealing it and close sourcing it.

Share this post


Link to post

andrewwan1980 said:
Btw, where did you get the ZDaemon 1.00 source code from? Can't google it...

I found v1.0.2, which should do. Not sure when they removed the GPL notice, maybe 1.0.5?

Share this post


Link to post
andrewwan1980 said:

ZDaemon 1.05 does closest match ZDoom 1.23b33.
Skulltag 0.91 does closest match csDoom 0.7.

ZDoom 1.x has always been Doom License.
csDoom 0.7 has a GPL license.
Skulltag 0.91 source release didn't even come with a license (but closest match is csDoom 0.7).

Assume Sergey "Fly" Makovkin (csDoom) got permission to change the license to GPL from Randy Heit (ZDoom). That means Brad "Carnevil" Carney (Skulltag) should've got permission from Sergey to change GPL back to Doom License. Weirdzzz. (or Skulltag could easily say, "ooh, we dropped csDoom and went with ZDoom 1.22"...



PS: Yeah I heard that ZDaemon rewrote the client/server netcode away from csDoom's QW netcode. And Skulltag replaced csDoom's QW netcode with Quake 2 netcode.... (which I thought Q2 was GPL??)

It's all one huge mess. To understand what's going on, you need to understand the historical events that lead to this, and yes, there is lots of license violating all over the place. I'll try to explain as best I can.

csDoom was based off ZDoom, and could not have been GPLed because it contained Raven code. Hence, csDoom was under the Doom Source License. In fact, I'm not even sure that Fly even bothered including a license. He was never one to care about any of that stuff.

Fly was a bit of a ... character, shall we say? I forget the exact details of the associated drama, but at a certain point he decided that he was going to stop releasing the source code to his port. There was lots of flaming over this, IRC channels taken over, etc. It was a big issue because csDoom was the first (and at the time, only) authoritative client-server multiplayer port. Eventually, someone complained to John Carmack about the fact that Fly wasn't releasing his source code. Carmack contacted Fly and told him that although he couldn't force him to release his source code, it would be good if he did. Fly listened to Carmack, and released the source code.

Now, the interesting thing is that John Carmack told Fly that he could release it under the GPL. I think Carmack probably didn't completely understand the situation or any of the associated licensing spaghetti (in all likelihood, I doubt he cared, and just wanted it sorted out). Anyway, the end result was that Fly followed Carmack's suggestion and released it under the GPL. Whether Carmack's blessing was actually enough for him to legitimately do this or not, I'm not certain. But that's what happened.

Later on, Skulltag and ZDaemon were derived from csDoom. ZDaemon was GPL for a long time, but a change of management lead to the source code being made secret. The same happened with Skulltag. I'm not going to drag up the flamewar over that because it's been done a thousand times over already.

In the end, it depends on Fly and Nightfang. If neither of them care, the Skulltag and ZDaemon teams can legally do what they want (although whether the source code being secret is a good thing is an entirely different debate).

EDIT: The Quake code thing is another matter that I forgot about. The csDoom source code did seem to be "inspired" by the Quake networking code, if not lifted entirely. I seem to remember Fly even said at one point that the code was taken from Quake. Like I said, he never really cared much about licenses. Another meatball for the licensing spaghetti.

Share this post


Link to post

fraggle said:
It's all one huge mess. To understand what's going on, you need to understand the historical events that lead to this, and yes, there is lots of license violating all over the place. I'll try to explain as best I can.

I take it you were there.

csDoom was based off ZDoom, and could not have been GPLed because it contained Raven code. Hence, csDoom was under the Doom Source License. In fact, I'm not even sure that Fly even bothered including a license. He was never one to care about any of that stuff.

He included the GPL license file with the 0.7 (last) official release.

Fly was a bit of a ... character, shall we say? I forget the exact details of the associated drama, but at a certain point he decided that he was going to stop releasing the source code to his port. There was lots of flaming over this, IRC channels taken over, etc.<snip>

Sounds like an old hacker friend I knew... stop releasing code... because Fly had secret backdoors... which he forgot to temporary remove from his releases. Channel takeovers? Yeah I miss those old IRC days... with netsplits and nick collides to drop channel ops and then quickly take over the channel. Lol, Smoke-mIRC + war scripts made by Sage.

<snip>

Later on, Skulltag and ZDaemon were derived from csDoom. ZDaemon was GPL for a long time, but a change of management lead to the source code being made secret. The same happened with Skulltag. I'm not going to drag up the flamewar over that because it's been done a thousand times over already.

Damn, any notable threads still archived somewhere?

In the end, it depends on Fly and Nightfang. If neither of them care, the Skulltag and ZDaemon teams can legally do what they want (although whether the source code being secret is a good thing is an entirely different debate).

I doubt even if did care... that they could do something. I haven't heard a legal case regarding open-source or proprietary licenses being broken and sorted out. I read about open source code stolen and discovered by disassembling the program (TrustyFiles, etc.) Then the culprits encrypt their programs, etc. Later their might be monopolising and domination.. which everybody hates.

EDIT: The Quake code thing is another matter that I forgot about. The csDoom source code did seem to be "inspired" by the Quake networking code, if not lifted entirely. I seem to remember Fly even said at one point that the code was taken from Quake. Like I said, he never really cared much about licenses. Another meatball for the licensing spaghetti.

I diff/compared csDoom 0.7 code with QW and could not get a match. Maybe Fly renamed the server/client files? Am not sure, but I'll analyse further again soon.

But yeah, in the end, if Fly or NightFang don't care then ST and ZD can do anything they like and keep it closed source.

Luckly I posted this to an unbiased discussion forum. Who knows what erruption this thread may have caused in ST or ZD forums....

Share this post


Link to post
andrewwan1980 said:

I take it you were there.He included the GPL license file with the 0.7 (last) official release.Sounds like an old hacker friend I knew... stop releasing code... because Fly had secret backdoors...

Tom Robinson, perhaps? He took over Fly's IRC channel, but his intention was to try to force Fly to release his source code.

Tom is a childhood friend of mine, by the way :-)

which he forgot to temporary remove from his releases. Channel takeovers? Yeah I miss those old IRC days... with netsplits and nick collides to drop channel ops and then quickly take over the channel.

Yeah, that was the problem with running a channel on EFnet. Nowadays we use sensible IRC networks with services and that sort of thing doesn't happen. Even EFnet has a limited system of channel protection now.

I diff/compared csDoom 0.7 code with QW and could not get a match. Maybe Fly renamed the server/client files? Am not sure, but I'll analyse further again soon.

If code is copied, I doubt it's going to be huge Quakeworld files copied exactly into the csDoom source; more like chunks here and there. If you want to find code that's been copied in, you'll have to dive into the source, figure out its large-scale structure and hopefully things should start to match up (or not).

But yeah, in the end, if Fly or NightFang don't care then ST and ZD can do anything they like and keep it closed source.

Luckly I posted this to an unbiased discussion forum. Who knows what erruption this thread may have caused in ST or ZD forums....

In all likelihood, if you posted this on the ZDaemon forums you'd probably be banned by now.

Share this post


Link to post

fraggle said:
In the end, it depends on Fly and Nightfang. If neither of them care, the Skulltag and ZDaemon teams can legally do what they want (although whether the source code being secret is a good thing is an entirely different debate).

I'd say practically, rather than legally.

Share this post


Link to post
myk said:

I found v1.0.2, which should do. Not sure when they removed the GPL notice, maybe 1.0.5?


Nah, that's the binaries.

Don't worry coz I found ZDaemon 0.99 source:

http://www.atomicgamer.com/file.php?id=18630

which will go nicely with my ZDaemon 1.05 source:

http://www.fileplanet.com/57160/50000/fileinfo/

and Skulltag 0.91 here:

http://www.atomicgamer.com/file.php?id=14157

Solely for educational purposes. Use a diff/merge tool (Beyond Compare, KDiff3, WinMerge) for analysing folders.

ZDaemon 0.99 comes with GNU GPL license.
ZDaemon 1.05 comes with Doom license.
Skulltag 0.91 comes with NO license.


Lol, I think back then they were all confused as to which license should go with... Hence my first confusion & scenario of groups A, B, C changing between Doom to GPL back to Doom licenses.

ZDaemon 0.99 definitely resembles csDoom 0.7 (netcode and everything), not to mention Skulltag 0.91 too. It's ZDaemon 1.05 when it starts looking more like ZDoom 1.23 and the netcode half rewritten (I can still see matching codelines).

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
×