PDA

View Full Version : Qt Open Source License :: Mixing GPL and closed-source license



Wan-Hi
20th March 2006, 04:20
Hello.

I plan to publish my Qt-based tool under Open Source. The tool uses an API which is under a BSD-style Open Source license and a closed-source API by MS. The Open Source version of Qt is published under the GPL. Does this raise any license problems? I'm asking because I think any software which uses GPL code must expose the COMPLETE source code, even of external APIs it uses. This would interfer with the closed-source license of the MS API.


Hope, someone can help.

Wan-Hi

jacek
20th March 2006, 16:17
This would interfer with the closed-source license of the MS API
Then use MinGW (http://www.mingw.org) and its version of windows API.

Wan-Hi
20th March 2006, 16:29
I haven't even thought about the Windows API. the API I use is the Windows Media Format SDK which only includes headers and libs for dynamic dll linking. No source code at all. But people can get it for free and it's a "stand-alone" API.

Under section 2 of the GPL is written: "...These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. ..."

Well, the sections of my code identifiably based on this Media SDK is distributed as separate work by MS itself. So would the GPL touch their royalty?

Sorry asking in a Qt forum, but I don't know any other forum which could give better answers.


Thanks.

Wan-Hi

jacek
20th March 2006, 17:41
Maybe you will find the answer in the GPL FAQ (http://www.fsf.org/licensing/licenses/gpl-faq.html).

Wan-Hi
21st March 2006, 00:39
Thank you for that fine link. Unfortunately I'm not allowed to let my tool link to closed-source APIs if I want to release my software under GPL...

Bojan
21st March 2006, 01:06
I am not sure, but I think you may be ok. I mean there are plenty of GPL'ed applications written in Win32 API, or MFC, which are very much closed source. With these, you indeed have to link against the respective libraries, which are again closed. Maybe I am not understanding the situation. And also i am no lawyer.

Bojan

Brandybuck
23rd March 2006, 04:16
I would consider the Media SDK to be an OS component. But regardless, it's still okay to do, because you cannot copyright an API. If all you do is link (runtime or dynamic) to an API, you are not creating a derivative work.

wysota
23rd March 2006, 12:56
AFAIK you can't link to a non-gpl compatible library from a gpl application. You need to find some GPL/LGPL alternative. Alternatively you make make an external library which links to that closed source library and make using it from your application an option -- meaning that your app has to be able to run without it (for example by using some GPL'd alternative).

Another option could be to dynamically load the closed source library using QLibrary and resolve its symbols manually. I don't know what does GPL consider such a situation -- you're not linking with the violating lib, but you still depend on it (unless you make it an option as stated before).

Wan-Hi
23rd March 2006, 17:45
Thanks for the infos. Well, probably it's okay to link to the closed-source libs in my case because every modern Windows ships with some sort of Windows Media Player, so the libs kind of ARE a de facto OS component.

I also have to ship some MS-implemented standard C++ libs because I strictly call Unicode versions of stdlib functions. MS says to ship them along with an application because they are not System-known yet. Technically it's the same problem again. GPL software using essential, but closed-source stdlib functions.

soul_rebel
23rd March 2006, 21:31
well you should not distribute the media sdl with your program if you license it under the gpl...
then again you could choose a different gpl-compatabile license for your program but i dont know if you want that...

wysota
23rd March 2006, 21:59
Thanks for the infos. Well, probably it's okay to link to the closed-source libs in my case because every modern Windows ships with some sort of Windows Media Player, so the libs kind of ARE a de facto OS component.
There are not Open Source as their sources are not available, so that already makes them GPL-incompatible, no matter if they are shipped with the system or not. Windows Media Player component is not a part of the system. And even if it was, it doesn't change anything, it's still GPL incompatible.

As for the media player itself, you could use it in a GPL'd app as an activeX component, provided that you make it possible to use some other component in its place.

Brandybuck
24th March 2006, 07:40
And even if it was, it doesn't change anything...
Yes it does! Otherwise you couldn't use win32 or any other standard Windows library. The GPL makes an explicit exception for system components. Specifically, the exception clause covers anything "distributed with" the system components. In other words, if it's on the Windows or Visual Studio CDs, you're probably covered.