Is it legal to link GZDoom to Steamworks API?

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
User avatar
fakemai
Posts: 342
Joined: Mon Feb 12, 2018 12:26 am
Graphics Processor: Intel (Legacy GZDoom)
Location: Australia

Re: Is it legal to link GZDoom to Steamworks API?

Post by fakemai »

Just want to mention, isn't this an issue jDoom had to work around in a messy way when Heretic and Hexen were under that crappy Raven license and not the GPL? GNU also has an FAQ about what is considered "linking". Take this with a grain of salt since that was a long time ago (around when Risen3D was being taken down for. GPL violation) and I may be misremembering a few details. And as others have said, the only real check is with a real lawyer.
Gez
 
 
Posts: 17833
Joined: Fri Jul 06, 2007 3:22 pm

Re: Is it legal to link GZDoom to Steamworks API?

Post by Gez »

Doomsday worked around it by making each game's code into a separate plugin. Also as far as I know, the Risen3D stuff was just public pressure from the community; I don't think it was actually taken to court.
User avatar
fakemai
Posts: 342
Joined: Mon Feb 12, 2018 12:26 am
Graphics Processor: Intel (Legacy GZDoom)
Location: Australia

Re: Is it legal to link GZDoom to Steamworks API?

Post by fakemai »

Gez wrote:Also as far as I know, the Risen3D stuff was just public pressure from the community; I don't think it was actually taken to court.
Can't actually remember if Risen3D used to base there like jDoom (now Doomsday) but it was definitely on Newdoom where the main drama happened. If I remember right it was a release thread for Risen3D, where the main jDoom developer politely asked them to uphold their obligation to release source, followed by drama and the Risen3D dev having a meltdown, then threats of action, then the project getting taken down. Not too long after the dev decided to just do the right thing and release source.

Anyway that was a blatant GPL violation, I only mentioned it because I think that's where the whole plugin design for jDoom was brought up to me, and for time frame purposes.

EDIT: This was the article I was thinking of. As before, not legal advice.
EDIT2: The thread I was thinking of might be gone forever, but I managed to find part of a follow-up one. It really was a total waste of everyone's time.
User avatar
fraggle
Posts: 5
Joined: Sun Jan 19, 2014 1:43 am
Contact:

Re: Is it legal to link GZDoom to Steamworks API?

Post by fraggle »

Just a quick note that I also think the text on the wiki is misleading. I basically gave my blessing and the "operating system component" part was an analogy for why I was okay with it. I'm not a lawyer and was not offering legal advice.

The following is what I told Quasar:
For my part, I don't mind if you link against this Steam library. I doubt Id do either because I think the BFG Edition version of the code probably links against it as well. While it might *technically* be violating the GPL I don't feel like this is a violation of the spirit of the GPL. One way of thinking about this is that if you were making this for Steam OS, the Steamworks library would be like an operating system component - and the GPL has an explicit exception that lets you link against non-free components if they're part of the underlying OS.

That's all just my contrived rationalisation of course but that's kind of how I think of it - why it doesn't really violate the spirit of the GPL.
User avatar
wolfmanfp
Posts: 80
Joined: Mon May 08, 2017 11:44 am
Graphics Processor: nVidia (Modern GZDoom)
Location: Hungary
Contact:

Re: Is it legal to link GZDoom to Steamworks API?

Post by wolfmanfp »

Just found out about Steamshim, some GPL-licensed games (for example CaesarIA) already use it.
https://hg.icculus.org/icculus/steamshi ... README.txt
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Is it legal to link GZDoom to Steamworks API?

Post by Graf Zahl »

Way to go to violate the spirit of the GPL without violating its phrasing... :?
Korshun
Posts: 52
Joined: Thu Dec 13, 2012 1:32 pm

Re: Is it legal to link GZDoom to Steamworks API?

Post by Korshun »

Amazing find. I searched far and wide for something like this and found absolutely nothing.

The spirit of the GPL is to prevent companies from incorporating GPL code into commercial software without giving back, not to cripple free software by preventing it from using proprietary libraries. The only reason GPL software may not link against proprietary libraries is to prevent easy circumvention of GPL restrictions by a commercial company incorporating GPL code they want to use into their proprietary program by linking it to a huge proprietary "library" that is, in fact, their whole proprietary program.

But the same inter-process communication exploit can be used by proprietary programs to actually violate the spirit of the GPL, unless a court case happens where it's ruled that such inter-process communication is effectively the same as dynamic linking and therefore forbidden.
User avatar
Chris
Posts: 2940
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Is it legal to link GZDoom to Steamworks API?

Post by Chris »

Korshun wrote:The spirit of the GPL is to prevent companies from incorporating GPL code into commercial software without giving back, not to cripple free software by preventing it from using proprietary libraries. The only reason GPL software may not link against proprietary libraries is to prevent easy circumvention of GPL restrictions by a commercial company incorporating GPL code they want to use into their proprietary program by linking it to a huge proprietary "library" that is, in fact, their whole proprietary program.
The Foundations of the GPL

Nobody should be restricted by the software they use. There are four freedoms that every user should have:

the freedom to use the software for any purpose,
the freedom to change the software to suit your needs,
the freedom to share the software with your friends and neighbors, and
the freedom to share the changes you make.
- https://www.gnu.org/licenses/quick-guide-gplv3.html

Using a loophole to link to proprietary libraries is very much against the spirit of the GPL, as it prevents being able to freely share it or change it for your needs, as intended. One of the reasons Stallman started the free software movement decades ago was because of an instance where he ran into a bug with some device driver, and when he asked for the driver's source code so he could fix the bug and continue his work, he was refused and thus couldn't fix the bug. So if you run into an issue with the closed source/proprietary Steam API, you run into the very issue the free software movement is intended to fight against.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Is it legal to link GZDoom to Steamworks API?

Post by Graf Zahl »

In the end the legality depends on whether the proxy is needed to let the game run - if it is, it's illegal because then all the technicalities do not matter. Separate programs or not, if one needs the other to work it's a hard dependency that takes away rights granted by the GPL, e.g. the ability to commercially exploit it - can't do that if it needs Steam to work.
Korshun
Posts: 52
Joined: Thu Dec 13, 2012 1:32 pm

Re: Is it legal to link GZDoom to Steamworks API?

Post by Korshun »

Graf Zahl wrote:In the end the legality depends on whether the proxy is needed to let the game run - if it is, it's illegal because then all the technicalities do not matter. Separate programs or not, if one needs the other to work it's a hard dependency that takes away rights granted by the GPL, e.g. the ability to commercially exploit it - can't do that if it needs Steam to work.
Well, FMod got removed from GZDoom due to GPL despite GZDoom not needing FMod to work, yet I am not allowed to put the FMod code back into GZDoom and
distribute that unless I create an FMod wrapper that uses inter-process communication.

Steamworks API is not needed for games to work (unless you explicitly use the "Steamworks DRM" part) and many games work fine without it. Yet I am not allowed to release a GZDoom game on Steam that links to Steamworks API unless I use a wrapper that uses inter-process communication.
Gez
 
 
Posts: 17833
Joined: Fri Jul 06, 2007 3:22 pm

Re: Is it legal to link GZDoom to Steamworks API?

Post by Gez »

I figure the loophole would be more solid if you built an open-source, community-managed achievement tracking repository thingamabob and that the Steamshim library used that by default, but could be configured to use Steamworks too. Then the game that is linked to Steamshim becomes "meant" to be using the fully open replacement for Steamworks, but it can be using Steam at the user's preference. As long as no feature (such as achievement tracking) is lost when not using Steam, then it complies with the spirit of the GPL.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Is it legal to link GZDoom to Steamworks API?

Post by Graf Zahl »

Korshun wrote:
Graf Zahl wrote:In the end the legality depends on whether the proxy is needed to let the game run - if it is, it's illegal because then all the technicalities do not matter. Separate programs or not, if one needs the other to work it's a hard dependency that takes away rights granted by the GPL, e.g. the ability to commercially exploit it - can't do that if it needs Steam to work.
Well, FMod got removed from GZDoom due to GPL despite GZDoom not needing FMod to work, yet I am not allowed to put the FMod code back into GZDoom and
distribute that unless I create an FMod wrapper that uses inter-process communication.

Steamworks API is not needed for games to work (unless you explicitly use the "Steamworks DRM" part) and many games work fine without it. Yet I am not allowed to release a GZDoom game on Steam that links to Steamworks API unless I use a wrapper that uses inter-process communication.
You are not to link code to GPL'd code that restrict the license's permissions.
That means you cannot link code that forbids commercial use for the recipient and that means you cannot link code for which you cannot distribute the source.

It was for the same reason that ZDoom used Timidity++ as a separate process.

That last thing said, there's lots of code in GZDoom which was written by people who take the GPL a lot more seriously and who may come after you if you try to cheat yourself out of the license's requirements.
Korshun
Posts: 52
Joined: Thu Dec 13, 2012 1:32 pm

Re: Is it legal to link GZDoom to Steamworks API?

Post by Korshun »

the freedom to change the software to suit your needs,
the freedom to share the changes you make.
In this case, the GPL greatly reduces my "freedom to share the changes you make". It prevents me from sharing the changes to GPL software that use proprietary libraries, unless I use the inter-process communication loophole.
Graf Zahl wrote: You are not to link code to GPL'd code that restrict the license's permissions.
That means you cannot link code that forbids commercial use for the recipient and that means you cannot link code for which you cannot distribute the source.
"to link". So it comes down to technicalities, after all. Because creating a program binary that optionally links to a proprietary library with arbitrary usage restrictions (like non-commercial usage only) does not in any way encroach on the end-user's GPL freedoms regarding the GPL program. The user may have licensed the copy of the proprietary library himself and just enabled the switch in the GPL software to link to it. The real reason it's not allowed is because GPL forbids it, not because the other license takes away the freedoms provided by the GPL.
Skullnet
Posts: 1
Joined: Thu Jul 25, 2019 3:35 pm

Re: Is it legal to link GZDoom to Steamworks API?

Post by Skullnet »

Graf Zahl wrote:
Korshun wrote:
Graf Zahl wrote:
That last thing said, there's lots of code in GZDoom which was written by people who take the GPL a lot more seriously and who may come after you if you try to cheat yourself out of the license's requirements.
That's the problem of GPL. It doesn't mean "freedom" or "free to use". It means: "you should submit to OUR rules or we'll come for ya". However, it's a public license, you can look at the code. :)
Spoiler:
Last edited by Skullnet on Thu Jul 25, 2019 5:48 pm, edited 2 times in total.
User avatar
Chris
Posts: 2940
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Is it legal to link GZDoom to Steamworks API?

Post by Chris »

Korshun wrote:
the freedom to change the software to suit your needs,
the freedom to share the changes you make.
In this case, the GPL greatly reduces my "freedom to share the changes you make". It prevents me from sharing the changes to GPL software that use proprietary libraries
Except, as the recipient of your software, I can no longer change the software to suit my needs, so either way the spirit has been violated (also, that proprietary library can very likely have redistribution restrictions itself, so you couldn't share it anyway). You can make the changes and keep it private for your own use/enjoyment, but once you share it, the people who acquire your modified version must be afforded the same freedoms you had to make your version.
Post Reply

Return to “General”