Oculus Developer Forums

Rift SDK and GPL

A forum to discuss development for the Oculus Rift.

Rift SDK and GPL

Postby Eli2 » Tue Apr 16, 2013 1:55 pm

Is the Rift SDK license compatible with sofware licensed under GPL ?

I am not a lawyer nor is english my first language, so i was not able to reach a conclusion.
Eli2
 
Posts: 4
Joined: Sat Mar 30, 2013 4:27 pm

Re: Rift SDK and GPL

Postby cybereality » Tue Apr 16, 2013 6:05 pm

From what I understand, the SDK is not compatible with GPL. However, I believe LGPL should be OK.
Oculus VR - Community Manager
User avatar
cybereality
Team Oculus Team Oculus
 
Posts: 3379
Joined: Thu Feb 14, 2013 2:54 pm
Location: Irvine, California

Re: Rift SDK and GPL

Postby Eli2 » Tue Apr 16, 2013 9:12 pm

The problem is, the license can not be changed.
The only solution is to implement a GPL compatible SDK from scratch.
Thanks for the reply.
Eli2
 
Posts: 4
Joined: Sat Mar 30, 2013 4:27 pm

Re: Rift SDK and GPL

Postby kojack » Tue Apr 16, 2013 11:21 pm

That raises a good point. Linking the oculus sdk with the released source code for any of the Quake or Doom series would be a gpl violation.
(Not that I wanted to, I avoid touching GPL code, but I'm sure some people might want to try)

Other games that are open source but incompatible due to gpl:
- flightgear
- oolite
- arx fatalis
- duke nukem 3d
- penumbra overture
- jedi outcast
- jedi academy
plus more.
(many more, but I only listed the ones that I thought would be good in vr)

Until making this list I didn't know arx fatalis had it's source released 2 years ago. It's one of the best first person rpgs, a spiritual successor to the Ultima Underworld series. It also uses a magic system where you write runes in the air with your hand, that would be awesome with a rift and a wiimote!
User avatar
kojack
 
Posts: 453
Joined: Fri Mar 29, 2013 12:46 pm
Location: Brisbane, Australia

Re: Rift SDK and GPL

Postby nesqi » Wed Apr 17, 2013 4:25 am

Oh my, this is really bad.

Someone needs to create a driver/sdk that's open source.

I wounder if some parts of the SDK are binary only. For example, is the interface code for the tracker open or will it have to be reverse engineered? Maybe the sdk fiddles with it's firmware, that might be a problem.
nesqi
 
Posts: 4
Joined: Fri Mar 29, 2013 1:04 pm

Re: Rift SDK and GPL

Postby kojack » Wed Apr 17, 2013 7:57 am

Then again, this could be a good way to make games companies do open source releases under a good license like MIT, BSD, ZLIB, LGPL etc. Too many of them use GPL, then we are blocked from adding support for things like havok animation, physx particles, fmod 3d geometry audio occulsion, oculus rift sdk, or any other "free but closed source" or gpl incompatible licensed components.

I wounder if some parts of the SDK are binary only. For example, is the interface code for the tracker open or will it have to be reverse engineered? Maybe the sdk fiddles with it's firmware, that might be a problem.

There's no binary parts, it's all open source.
User avatar
kojack
 
Posts: 453
Joined: Fri Mar 29, 2013 12:46 pm
Location: Brisbane, Australia

Re: Rift SDK and GPL

Postby Eli2 » Wed Apr 17, 2013 2:59 pm

Another option would be to create a LGPLv3 licensed proxy library that could be used in the GPL game.
Would that be a legal option ?
Eli2
 
Posts: 4
Joined: Sat Mar 30, 2013 4:27 pm

Re: Rift SDK and GPL

Postby msat » Wed Apr 17, 2013 5:15 pm

What's pretty annoying is when people fixate on the letter of the law rather than the spirit (of course, the letter isn't perfectly defined anyway). The Rift SDK source is open with only minor restrictions on it's use and distribution, and I have a hard time seeing how using it with GPL'd software would really restrict the latter's software. Is it really any worse than the closed-source "blob modules" such as nVidia and and ATI GPU drivers under linux? GPL is mainly established to prevent people from profiteering from free software by incorporating or interfacing with it in their own closed proprietary software. The Rift SDK does not do this.

With GPL, there's not even a clear-cut line when it comes to libraries. My understanding is that a closed application should not be able to rely on, or make calls to a GPL'd library. But what about the other way around, as would sort of be the case with the Rift SDK? The application is making the call to the Rift library, so the application relies on it, rather than the other way around. I don't think this violates the GPL

Regardless, considering that the GPL is constantly being violated and in much worse ways, if there actually is one due to interfacing with the Rift SDK, I think only the most insufferable of GPL supporters would raise a stink.
msat
 
Posts: 59
Joined: Fri Mar 29, 2013 12:42 pm

Re: Rift SDK and GPL

Postby Eli2 » Thu Apr 18, 2013 3:52 am

msat wrote:What's pretty annoying is when people fixate on the letter of the law rather than the spirit ...

I hope you understand that not everyone is satisfied to operate without legal security.
I do not think it is unreasonable to ask for clarifications.
Eli2
 
Posts: 4
Joined: Sat Mar 30, 2013 4:27 pm

Re: Rift SDK and GPL

Postby kojack » Thu Apr 18, 2013 5:57 am

msat wrote:Regardless, considering that the GPL is constantly being violated and in much worse ways, if there actually is one due to interfacing with the Rift SDK, I think only the most insufferable of GPL supporters would raise a stink.

Saying that it's ok to break a copyright license because other people are doing it already isn't exactly the smartest legal strategy.

msat wrote:The application is making the call to the Rift library, so the application relies on it, rather than the other way around. I don't think this violates the GPL

The official GPL faq disagrees with you:
If you want your program to link against a library not covered by the system library exception, you need to provide permission to do that. Below are two example license notices that you can use to do that; one for GPLv3, and the other for GPLv2. In either case, you should put this text in each file to which you are granting this permission.

Only the copyright holders for the program can legally release their software under these terms. If you wrote the whole program yourself, then assuming your employer or school does not claim the copyright, you are the copyright holder—so you can authorize the exception. But if you want to use parts of other GPL-covered programs by other authors in your code, you cannot authorize the exception for them. You have to get the approval of the copyright holders of those programs.

So you can link Doom 3 with the rift sdk only if you can modify the version of the GPL license Doom 3 was released under. But only id software can do that. Same for all the other GPL games around, only their authors can add a rift sdk exception.
User avatar
kojack
 
Posts: 453
Joined: Fri Mar 29, 2013 12:46 pm
Location: Brisbane, Australia

Re: Rift SDK and GPL

Postby ChrisJD » Thu Apr 18, 2013 9:11 pm

kojack wrote:So you can link Doom 3 with the rift sdk only if you can modify the version of the GPL license Doom 3 was released under. But only id software can do that. Same for all the other GPL games around, only their authors can add a rift sdk exception.


As I understand it this is even more problematic for GPL software that has had a community of developers working on it. No one entity/person can add an exception, you need the agreement of every developer who has contributed code to the project because all developers retain the copyright to code they contributed.
ChrisJD
 
Posts: 15
Joined: Fri Mar 29, 2013 2:50 pm

Re: Rift SDK and GPL

Postby kojack » Thu Apr 18, 2013 11:36 pm

Yep.
When Ogre3D changed it's license from LGPL (which is already much more relaxed than the GPL) to MIT, Sinbad (the creator) had to get permission from every contributor to the codebase, and rewrite the code from anybody he couldn't reach or didn't agree.



Since Oculus aren't trying to hide anything and have given out all the code already, there shouldn't be any harm in changing to a GPL compatible license (but not to GPL itself, I'd cancel my order right now if they crippled it like that). Except then they couldn't have the license clause that we can't use the sdk code with any other brand of vr headset. (That goes against one of the GPL's clauses on imposing extra restrictions)
(There's other incompatible bits, that's just one of the more obvious ones)
User avatar
kojack
 
Posts: 453
Joined: Fri Mar 29, 2013 12:46 pm
Location: Brisbane, Australia

Re: Rift SDK and GPL

Postby 2EyeGuy » Fri Apr 19, 2013 11:11 pm

MSat is right. For example, obviously John Carmack and Palmer Luckey intended their code to be usable together. And Cybereality and Cybereality intended their code to be used together. There's no reason to obey the letter of the law in those cases, when the spirit of it is so obvious.

Also, games like Doom 3 BFG are linking to lots of other proprietry libraries and code in order to be compiled and to run on Windows, as there's a specific exception in the GPL for that purpose.
Eli2 wrote:I hope you understand that not everyone is satisfied to operate without legal security.
I do not think it is unreasonable to ask for clarifications.

Secure from whom? Who are you worried will sue or punish you?

kojack wrote:Saying that it's ok to break a copyright license because other people are doing it already isn't exactly the smartest legal strategy.

It is a smart legal strategy. It works well, and not just for copyright. True rule of law doesn't actually exist anywhere, everywhere really has "rule of what most other people do and think is acceptable". If everybody does it, then nobody will question it, no matter how explicitly the law disallows it.

kojack wrote:The official GPL faq disagrees with you:
If you want your program to link against a library not covered by the system library exception,

What makes you think it's not covered by the system library exception? It is basically a system library for the Rift platform. Specifically, I'd say it's a "Window System", since that's one that's explicitly mentioned in the GPL, and it is basically fulfilling the role of a very simple window system.

But if people really want, I can try and write my own open-source version of their SDK. It's not really that complicated, mostly just enumerating a specific HID device, reading reports from it, and doing some sensor fusion. Nothing I haven't done before. I haven't checked how they get the display parameters, but that shouldn't be too hard either. The main problem is that I don't have a dev kit yet.

Also I don't particularly like doing a lot of work that's probably going to be used for killing or oppressing real people, unless I'm very confident they need killing or oppressing, and this has rather obvious military applications. But since they can already do that anyway with the Oculus SDK, I guess I wouldn't really be doing much to enable that by making a GPL version. So I might as well.
2EyeGuy
 
Posts: 219
Joined: Fri Mar 29, 2013 11:43 am
Location: Adelaide, Australia

Re: Rift SDK and GPL

Postby kojack » Sat Apr 20, 2013 12:49 am

2EyeGuy wrote:
kojack wrote:The official GPL faq disagrees with you:
If you want your program to link against a library not covered by the system library exception,

What makes you think it's not covered by the system library exception? It is basically a system library for the Rift platform. Specifically, I'd say it's a "Window System", since that's one that's explicitly mentioned in the GPL, and it is basically fulfilling the role of a very simple window system.

GPL license:
means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

The libovr is not a compiler, not a code interpreter, and not an essential component of a specific operating system. No, it's obviously not a windowing system. It's not even a driver.

Rather than writing your own library (at least talk to the anti-c++ people first, they want a new library as well and you might as well team up to save effort) it would be easier for Oculus to change their license to a simplier one like MIT. I'm sure since Doom3 and the rift are apparently so destined to be together that wouldn't be a problem. Very simple change, the code is still copyrighted and there's no longer any ambiguity or arguments. We can add rift support to any gpl compatible open source game without fear of running into someone who takes the license they chose seriously. Win for us, win for oculus, win for game devs.

Instead of telling people it's fine to break license agreements if we think two guys like each other's products, we should be asking one of those guys to change it so we don't have to. I've seen other open source libraries change their license after people pointed out how they were limiting themselves.

It's not like any other current vr headset will benefit from this sdk. They don't require the same distortion. There's no secret techniques in the sensor reading. There's nothing in there that couldn't be recreated fairly easily with a specs of the sensor board output. It's not like natural point, the makers of trackir, who require a copyrighted and trademarked haiku poem to communicate with their cameras, which gives them more legal ammunition against competitors.
User avatar
kojack
 
Posts: 453
Joined: Fri Mar 29, 2013 12:46 pm
Location: Brisbane, Australia

Re: Rift SDK and GPL

Postby msat » Sat Apr 20, 2013 5:48 am

It's not surprising that the various number of interpretations of the GPL license is almost equal to the amount of people that know anything about it. I've even seen what appears to be contradictory statements in the GNU FAQ itself regarding using proprietary libraries in a GPLd application. So the question remains, how does the Oculus license restrict a GPL application using the ovrlib? The restriction of the Oculus license is on the use of unofficial hardware which the GPL does not cover or even mention at all. GPL is strictly concerned with modification and distribution of software and code. Otherwise, the Oculus license appears to be quite similar to GPL in regards to distribution of code. With no explicit mention of hardware rights in the GPL, can you argue that it's truly incompatible with the Oculus license based on that one point?


I understand why Oculus doesn't want to release their code under a more permissive license. Besides for protecting their interest in terms of hardware, a lot of time and money is going to be invested in software. It may not seem like much right now, but the SDK is going to become a hell of a lot more complex in the near future as they start implementing a lot of new features and capabilities. Actually, I wouldn't be surprised if they eventually closed their source.
msat
 
Posts: 59
Joined: Fri Mar 29, 2013 12:42 pm

Re: Rift SDK and GPL

Postby ThibG » Wed Apr 24, 2013 11:11 pm

msat wrote:What's pretty annoying is when people fixate on the letter of the law rather than the spirit (of course, the letter isn't perfectly defined anyway). The Rift SDK source is open with only minor restrictions on it's use and distribution, and I have a hard time seeing how using it with GPL'd software would really restrict the latter's software.

Well, the Oculus SDK is not free software (or open source) by any stretch of the imagination (sure, it's more permissive than most proprietary licenses out there, but still). Which is a shame, especially since it was first advertised as an “open-source HMD”...

IANAL, but it is definitely incompatible with the GPL, and many free software licenses (and some build of a free software linking to the libOVR library can't really be called free software anymore anyway).

msat wrote:Is it really any worse than the closed-source "blob modules" such as nVidia and and ATI GPU drivers under linux?

Worse or not, I don't know, but it's a different issue... nVidia and ATI blobs provide an implementation of an API (OpenGL) that is available without them, and they do not require any modification, even at build time, of software using it. Running them is exclusively the end user's matter (and they are definitely are “system libs” anyway).

It would be really nice if the SDK could be free software, at least the “driver” parts of it... it would be even better for inclusion in different engines if it were released in a really permissive licence such as the BSD or MIT licence.
ThibG
 
Posts: 6
Joined: Fri Mar 29, 2013 12:00 pm

Re: Rift SDK and GPL

Postby gtrdrt » Fri Jun 21, 2013 12:02 am

Quoting "Hooray" on the FlightGear Forum:
The legal concerns voiced by some OR developers are not really justified, because these folks don't understand that linking apache/bsd code into GPL'ed code is no issue, vs. doing the same vice versa would be "viral" due to the GPL: http://www.apache.org/licenses/GPL-compatibility.html


I'm not a developer, and I know nothing about these legal matters, so I probably won't be able to answer any questions, but you could join a discussion about Oculus Rift support for FlightGear at http://www.flightgear.org/forums/viewtopic.php?f=24&t=20159 and speak to Hooray.

I'm just someone who very much wants to see Oculus Rift support for FlightGear, so please hurry and get this legal stuff sorted out, ok? :) Thanks...
gtrdrt
 
Posts: 19
Joined: Thu Jun 20, 2013 11:47 pm

Re: Rift SDK and GPL

Postby kojack » Fri Jun 21, 2013 12:39 am

gtrdrt wrote:Quoting "Hooray" on the FlightGear Forum:
The legal concerns voiced by some OR developers are not really justified, because these folks don't understand that linking apache/bsd code into GPL'ed code is no issue, vs. doing the same vice versa would be "viral" due to the GPL: http://www.apache.org/licenses/GPL-compatibility.html



The oculus sdk isn't apache/bsd so what is the point of him saying that we don't understand linking apache/bsd with gpl?

Only the oculus samples are apache licensed. The libovr library (that actual thing that would be integrated with flightgear in some way) is NOT apache.
User avatar
kojack
 
Posts: 453
Joined: Fri Mar 29, 2013 12:46 pm
Location: Brisbane, Australia

Re: Rift SDK and GPL

Postby gtrdrt » Fri Jun 21, 2013 2:09 am

kojack - someone has just posted to the FlightGear Forum discussion pretty much the same thing you're saying. Anyone can check for responses there by following the link I posted. I can't respond to your question myself, because I'm ignorant. :lol:
gtrdrt
 
Posts: 19
Joined: Thu Jun 20, 2013 11:47 pm

Re: Rift SDK and GPL

Postby gtrdrt » Fri Jun 21, 2013 8:43 pm

Looks like what I posted originally should have been posted to a different thread. Hooray's response on the FlightGear Forum:
I was specifically referring to this thread: viewtopic.php?f=42&t=362#p6497

We have people working with flight gear here and might look into rift support in the future. However, FlightGear is a GPL program and I'm pretty sure the Apache license that the SDK uses isn't compatible with GPL, so it might be "illegal" to use it...


and like I mentioned earlier, we do have a bunch of proprietary protocols and projects supported by FG, just by interfacing through a standalone application that no longer needs to be GPL then.
gtrdrt
 
Posts: 19
Joined: Thu Jun 20, 2013 11:47 pm

Next

Return to Oculus General Development

Who is online

Users browsing this forum: No registered users and 2 guests