Question for GNU-GPL experts

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Dann Corbit, Harvey Williamson

User avatar
F.Huber
Posts: 853
Joined: Thu Mar 09, 2006 4:50 pm
Location: Austria

Question for GNU-GPL experts

Post by F.Huber »

Hi,

although the problem I´m describing here arised in one of my other
hobbies (astronomy), it could well happen exactly the same way in
computer chess, so I´ll just translate it 1:1 into a chess scenario to
make it on-topic here:

Let´s assume that there exists a chess engine, which is released under
the GNU-GPL license, including the full source code (of course) and an
´Engine.dll´.
I´ve written a GUI especially for this engine with all usual features like
e.g. a graphical chess board, some functions for analyzing etc...

Now consider the following 4 facts:
1) I release my GUI program as FREEWARE (like all my other programs)
but WITHOUT my source-code (what I never do)
2) my GUI is working only for (and with) this special ´Engine.dll´, i.e. if
it doesn´t find this DLL in the current folder the program just quits with
an error message (about the missing DLL)
3) my released program package does NOT include this ´Engine.dll´ (or
any other file of the original GNU-GPL engine distribution) - instead of it
the included readme-file says that this DLL is required, and gives the link
from where this DLL can be downloaded
4) my GUI program does NOT include a SINGLE line of the original code of
the engine (or any other files of its package) - it´s just using function calls
to this ´Engine.dll´ (i.e. names of some of its functions or procedures)
and using the results of these calls for further processing

And finally now my question:
Is the release of my GUI program under the above conditions in any way
violating the GNU-GPL license or any other copyright law?

Well, my common sense would definitely answer: NO - no problem at all,
because it´s just a free addon to this engine, which is not directly using
any code of it (see point 3+4 above).
But since legislation doesn´t always (or should I better say: never :wink: )
correspond with the common sense, I would really like to see qualified
answers of GNU-GPL experts for this special case that I´ve described.

Regards,
Franz.
User avatar
rhollay
Posts: 150
Joined: Wed Mar 08, 2006 8:26 pm

Re: Question for GNU-GPL experts

Post by rhollay »

F.Huber wrote:Hi,

although the problem I´m describing here arised in one of my other
hobbies (astronomy), it could well happen exactly the same way in
computer chess, so I´ll just translate it 1:1 into a chess scenario to
make it on-topic here:

Let´s assume that there exists a chess engine, which is released under
the GNU-GPL license, including the full source code (of course) and an
´Engine.dll´.
I´ve written a GUI especially for this engine with all usual features like
e.g. a graphical chess board, some functions for analyzing etc...

Now consider the following 4 facts:
1) I release my GUI program as FREEWARE (like all my other programs)
but WITHOUT my source-code (what I never do)
2) my GUI is working only for (and with) this special ´Engine.dll´, i.e. if
it doesn´t find this DLL in the current folder the program just quits with
an error message (about the missing DLL)
3) my released program package does NOT include this ´Engine.dll´ (or
any other file of the original GNU-GPL engine distribution) - instead of it
the included readme-file says that this DLL is required, and gives the link
from where this DLL can be downloaded
4) my GUI program does NOT include a SINGLE line of the original code of
the engine (or any other files of its package) - it´s just using function calls
to this ´Engine.dll´ (i.e. names of some of its functions or procedures)
and using the results of these calls for further processing

And finally now my question:
Is the release of my GUI program under the above conditions in any way
violating the GNU-GPL license or any other copyright law?

Well, my common sense would definitely answer: NO - no problem at all,
because it´s just a free addon to this engine, which is not directly using
any code of it (see point 3+4 above).
But since legislation doesn´t always (or should I better say: never :wink: )
correspond with the common sense, I would really like to see qualified
answers of GNU-GPL experts for this special case that I´ve described.

Regards,
Franz.
In case that the answer is YES (so that you've violated GPL), then e.g. Arena should be open-source also,
because it also has interfaces to GPL'ed engines like Fruit, Glaurung, etc.
You could also add some changes to the GUI to be able to work with some other engines too,
so I don't think that it makes any difference if your GUI supports only GPL'ed engines or closed-source ones also.

You haven't used GPL'ed source (or program) in your GUI, just made an interface to it.

But maybe I'm wrong...
(just my 2c, I'm obviously not a GNU/GPL expert :) )
jdart
Posts: 4361
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Question for GNU-GPL experts

Post by jdart »

http://www.gnu.org/licenses/lgpl.html

Many open-source libraries are released under this license (LGPL) which avoids the problem you are anticipating. (despite the fact that RMS does not like LGPL).

Also see the part of GPL version 3 that discusses "System Libraries".

--Jon
Last edited by jdart on Sun Aug 24, 2008 3:45 pm, edited 1 time in total.
User avatar
F.Huber
Posts: 853
Joined: Thu Mar 09, 2006 4:50 pm
Location: Austria

Re: Question for GNU-GPL experts

Post by F.Huber »

rhollay wrote: In case that the answer is YES (so that you've violated GPL), then e.g. Arena should be open-source also,
because it also has interfaces to GPL'ed engines like Fruit, Glaurung, etc.
You could also add some changes to the GUI to be able to work with some other engines too,
so I don't think that it makes any difference if your GUI supports only GPL'ed engines or closed-source ones also.

You haven't used GPL'ed source (or program) in your GUI, just made an interface to it.

But maybe I'm wrong...
(just my 2c, I'm obviously not a GNU/GPL expert :) )
I see you´re also using your common sense (so you definitely can´t be a lawyer :wink: ).

Exactly the same example with Arena has come into my mind, and with this argumentation even ChessBase would have to release their source-code, because the also have an UCI interface being able to run many open-source UCI engines! 8-)

But since this problem happened in an astronomy forum (with an Eclipse program I´ve written for an astronomical library), I´ve used an other argument as example:
When I´m programming a MP3 player, then I also don´t have to take care about any licenses/copyrights of any MP3 songs (or songwriters or music companies), simply because I don´t directly use a single bit/byte of the MP3 file in my program - it´s nothing than just a player for such files, and it´s the problem of the user whether he has the right to play this file or not (i.e. is owning it legally).

And I could give thousand of such examples, most of them won´t even have to do anything with computers at all.
What if e.g. I would produce a car seat, which would only fit into a Mercedes Benz. I´m sure nobody would get the crazy idea that this would violate any licences or copyrights of Mercedes, or that I would need any permission from this company for making my car seat (as long as I don´t supply a Mercedes with it ... :wink: )
Aleks Peshkov
Posts: 892
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia

Re: Question for GNU-GPL experts

Post by Aleks Peshkov »

IMO it all depends whether 'Engine.dll' is an independent program or an utility library. Chess engine can be treated as separate program (like Rybka) or library (like Fritz).

As was noted, programs usually licensed under GPL and libraries under LGPL.
In a case the library was licensed under GPL you cannot legally use this library in your own non-GPL code.
Last edited by Aleks Peshkov on Sun Aug 24, 2008 4:19 pm, edited 1 time in total.
User avatar
F.Huber
Posts: 853
Joined: Thu Mar 09, 2006 4:50 pm
Location: Austria

Re: Question for GNU-GPL experts

Post by F.Huber »

jdart wrote:http://www.gnu.org/licenses/lgpl.html
Many open-source libraries are released under this license (LGPL) which avoids the problem you are anticipating. (despite the fact that RMS does not like LGPL).
Thanks, but unfortunately that doesn´t help here, because the mentioned program is released under GPL, not LGPL.
Also see the part of GPL version 3 that discusses "System Libraries".
Of course I already had a (short) look at those GPL documents, but you don´t really expect from a non-English-speaker AND a non-lawyer to understand more than 10% of it, do you? :wink:
jdart
Posts: 4361
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Question for GNU-GPL experts

Post by jdart »

I will add, if the library in question is not under LPGL or is not considered a system library, there is yet another approved mechanism for interfacing to it (but not all GPL programs, only those that allow it):

http://www.gnu.org/licenses/gpl-faq.htm ... dInterface

For code not falling under any of these exception categories, the position of FSF has been that even dynamic linking to a GPL program makes the linking program a derived work and subject to GPL. To my knowledge it has not been tested in court whether this provision is enforceable or not. Many people are dubious about it. But a lawyer would probably tell you not to do it - they get paid to think about the worst case scenario.

--Jon
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Question for GNU-GPL experts

Post by michiguel »

F.Huber wrote:
rhollay wrote: In case that the answer is YES (so that you've violated GPL), then e.g. Arena should be open-source also,
because it also has interfaces to GPL'ed engines like Fruit, Glaurung, etc.
You could also add some changes to the GUI to be able to work with some other engines too,
so I don't think that it makes any difference if your GUI supports only GPL'ed engines or closed-source ones also.

You haven't used GPL'ed source (or program) in your GUI, just made an interface to it.

But maybe I'm wrong...
(just my 2c, I'm obviously not a GNU/GPL expert :) )
I see you´re also using your common sense (so you definitely can´t be a lawyer :wink: ).

Exactly the same example with Arena has come into my mind, and with this argumentation even ChessBase would have to release their source-code, because the also have an UCI interface being able to run many open-source UCI engines! 8-)

But since this problem happened in an astronomy forum (with an Eclipse program I´ve written for an astronomical library), I´ve used an other argument as example:
When I´m programming a MP3 player, then I also don´t have to take care about any licenses/copyrights of any MP3 songs (or songwriters or music companies), simply because I don´t directly use a single bit/byte of the MP3 file in my program - it´s nothing than just a player for such files, and it´s the problem of the user whether he has the right to play this file or not (i.e. is owning it legally).

And I could give thousand of such examples, most of them won´t even have to do anything with computers at all.
What if e.g. I would produce a car seat, which would only fit into a Mercedes Benz. I´m sure nobody would get the crazy idea that this would violate any licences or copyrights of Mercedes, or that I would need any permission from this company for making my car seat (as long as I don´t supply a Mercedes with it ... :wink: )
I am not a lawyer but this may interest you:

If you do not prevent modification of the GPL'ed DLL you may be ok. In other words, if the interface between the GUI and the engine is clear without digital signatures of any kind there should be no problem, I guess. Otherwise, read this:
http://en.wikipedia.org/wiki/Tivoization

The spirit is that the GPL software could be freely modified without interferences.

Miguel
Last edited by michiguel on Sun Aug 24, 2008 4:36 pm, edited 1 time in total.
User avatar
F.Huber
Posts: 853
Joined: Thu Mar 09, 2006 4:50 pm
Location: Austria

Re: Question for GNU-GPL experts

Post by F.Huber »

Aleks Peshkov wrote: In a case the library was licensed under GPL you cannot legally distribute you own program that depends on this library without distributing your own source code under GPL (or compatible).
Why not? I really don´t understand this ...

Why should I be bound by any license of a program, from which I don´t use a single file or even a single byte of code neither?

What about the following argument:
My program is nothing else than a completely independent (from the DLL) piece of code, which simply doesn´t work/function correctly without this DLL (just displaying an error message without it)?
Who can forbid me to write such a non-working ´crap´ of program? :wink:
Aleks Peshkov
Posts: 892
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia

Re: Question for GNU-GPL experts

Post by Aleks Peshkov »

http://www.gnu.org/licenses/gpl-faq.htm ... tarySystem
A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all.
However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.