View Full Version : questions about the GPL


stax76
10th November 2004, 00:36
the GPL is not a easy topic therefore I would like to hear your opinion on the following points:

can a closed source application use the name of a GPL application to gain popularity?

is the author of a closed source application allowed to study the implementations and concepts of a GPL application by reading the source code and then apply the gained knowledge in a closed source application?

can the author of a closed source application bundle, distribute and utilize GPL components that load in the same process space like AviSynth, DirectShow filters etc.

note: a lot applications possibly could be concerned by one or the other point so please don't start a flamewar and call any application by name. A discovered GPL violations should first tried to be solved privately.

stax

dragongodz
10th November 2004, 05:50
can a closed source application use the name of a GPL application to gain popularity?
depends. if for example you called a program avisynth-script-maker and it made scripts for avisynth then there is no problem. if you were to call a program avisynth-isizer and it had nothing to do with avisynth then dont expect any respect from a lot of open source developers and/or users.

is the author of a closed source application allowed to study the implementations and concepts of a GPL application by reading the source code and then apply the gained knowledge in a closed source application?
if you study it to understand how a formula works for example but dont use any of the lines or 1 character changed versions therof, except where unaviodable such as a=b+c; , then you are probably ok.

can the author of a closed source application bundle, distribute and utilize GPL components that load in the same process space like AviSynth, DirectShow filters etc.
this is more thornier. closed source programs can call GPL programs though there is mention in the GPL about how that should be done. this has been discussed before so do a bit of searching for a more complete answer.
as for distribution, well yes GPL programs can be distributed by anyone but it should be made clear that they are GPL and free. certain lowlife companies rip people off by decieving them in to thinking they are buying these programs when they are not but instead a crappy guide(for example). :angry:

its also curtious if you ask the GPL's author first. :)

Nic
10th November 2004, 11:05
I like this thread :) The GPL can be quite tricky....(So can the LGPL, but that's a different story ;) )

can a closed source application use the name of a GPL application to gain popularity?

I believe With GPL apps, the name is actually still just copyright of the original author (and doesn't fall under the GPL), so using the name probably breaks copyright rather than the GPL. (Please correct me if I'm wrong, an example is: http://ffmpeg.sourceforge.net/legal.php where it says the name ffmpeg is a trademark)


is the author of a closed source application allowed to study the implementations and concepts of a GPL application by reading the source code and then apply the gained knowledge in a closed source application?

Sure, As long as no direct copying goes on, then that becomes reimplementation and that's fine AFAIK.

can the author of a closed source application bundle, distribute and utilize GPL components that load in the same process space like AviSynth, DirectShow filters etc.

As Dgz states, it does get tricky. On a different point some people say that DirectShow can never be used in any GPL sense (because of it's connections to Microsoft's headers which can never be licensed under the GPL). The difficulty comes down to deciding whether something is a derived work or not.

Here's an example I've never been sure of: Can a commercial proprietry application be bundled along with AviSynth and then that application create and load AviSynth scripts for encoding/viewing? Because that program then relies utterly on a GPL program doesn't that make the application a derived work and therefore also have to fall under the GPL?

It's a tricky one. I think so anyway.... :)

Cheers,
-Nic

jsoto
11th November 2004, 01:17
On a different point some people say that DirectShow can never be used in any GPL sense (because of it's connections to Microsoft's headers which can never be licensed under the GPL). Not sure if I understood well... Do you mean if someone develops a free and open source application using DirectShow it cannot be GPL? Why?

jsoto

Nic
11th November 2004, 10:19
@jsoto: It's only an opinion that I've heard. Thinking about it I heard it more in reference to making a directshow filter rather than using directshow. Because making a directshow filter strongly relies on the MS headers which you are then not allowed to re-license and are not compatible with the GPL.

I think it's too strict an interpretation of the GPL, but it is the reason the libmpeg2 project didn't want to make a DirectShow Filter....Thankfully Gabest did :)

I was just giving it as an example (of weird GPL issues/interpretations), you can probably find the posts about it archived at libmpeg2 on sourceforge.

Cheers,
-Nic

mpucoder
11th November 2004, 15:28
Is there something special about DirectShow licensing as compared to other Microsoft APIs? Nearly all Windows programs use Microsoft header files and Microsoft dll's (like mfc42 or commdlg).

UMP
11th November 2004, 20:21
There's another tricky point about the GPL :

it is well known that someone distributiong (in present case, please read "selling") a GPLed software has to make the source code available too. But who should have access to the source code ? Everyone or only people buying the software ?

Sample here : http://info.linspire.com/lphoto/

It is stated at the bottom of the page that "the source code is available to all Lphoto users on the product page". But there is not any download link around.

After reading the GPL again and again, my understanding is that the source code only has to be made available to people if they get the executable form of the software (see section 3 of the GPL), which in the case of lphoto means when they buy it ?

jsoto
12th November 2004, 01:52
Thinking about it I heard it more in reference to making a directshow filter rather than using directshow Ah!..... But IMHO mpucoder's question still has sense. MFCs are also Microsoft proprietary, and many applications are using them. Well, may be the headers are hidden and the sources can be published without the headers, but the application needs them to be compiled.

jsoto

dragongodz
12th November 2004, 03:05
i dont see it as a real concern personally. what are the SDK's for if not to be used ? ok technically the headers are of course copyrighted to MS and there is a EULA you have to agree to when installing them(though legality of such EULA has been questioned before) but it is in MS's interest to promote program development on its OS. they would do major PR damage if they suddenly started going after open source programs for their system.

After reading the GPL again and again, my understanding is that the source code only has to be made available to people if they get the executable form of the software (see section 3 of the GPL), which in the case of lphoto means when they buy it ?
basically yes. if you charge for access to the executable then the source must be available to the same people at the same time.

stax76
12th November 2004, 03:07
By dynamically linking to GPLd code, you are creating a derived work. The GPL does not allow you to distribute your derivative program together with the GPLd work.

From section 2 of the GPL
"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. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it."


how do I figure out if a application dynamicly links to a AviSynth plugin directly like GK links directly dynamicly to MPEG2Dec.dll, this would be a GPL violation then if the application and the GPL library are distributed together

DaveEL
12th November 2004, 11:57
See http://www.gnu.org/licenses/gpl-faq.html#GPLPluginsInNF

and http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs

DaveEL

mpucoder
12th November 2004, 13:17
Here's why I asked. When you distribute source code you do not include the header files for Microsoft (eg windows.h) or the C standard library (eg stdlib.h), it is assumed that anyone compiling your program has access to these files. Also Visual Studio, Visual C, Visual Basic, and the MSDN SDK's all include a license for redistribution (presumbably for staticly linked executables) that essentially says "please do to promote the widespread use of Windows". I was wondering if DirectX had a seperate license that differed.

Wilbert
12th November 2004, 16:19
@dragongodz,

UMP asks to *which* people the sourcecode should be available. Ie, can you request the sourcecode of some (GPL'd) program without buying the binary itself (assuming you have to pay for the binary)?

I'm a bit confused about this, because:


3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

So, this implies the following: If you distribute the program (including the source), you can ask as much as you want for the package. And you don't need to give the source to people who don't buy the program.

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
However, suppose you choose to not to include the source, but to include this written offer. This implies that you have to give the source to every third party for only a small fee.

Now, what is third party? Is that also people how didn't buy the program itself? In that case, (a) and (b) seem rather conflicting.

But if (a) is allowed, UMP just can sell FairUse for 100 euros (or whatever). If he includes the source, he doesn't need to give it to people who didn't buy FairUse. Is this correct?

I guess that's why you ask it UMP ? :(

Doom9
12th November 2004, 17:54
My interpretation of the source code section is that you can distribute the compiled version and charge whatever you like, but must provide the source code upon being asked for a fee that just covers your expenses. And you don't have the right to ask for a limitation of distribution for either compiled binaries nor the source code. So User #1 could buy both, then put them on a website where the rest of the world can download it for free. That's not much different from the way DVDx was distributed a while back (okay, there was definitely more than 1 labDV VIP member and some were quite vocal about the people who ended up sending me their version so that I could put it online).

As for the name thing that has come up.. I have never heard of a precedent and I don't recall a section in the GPL that would cover that.. so basically it would come down to a trademark issue, and since the name Gordian Knot was never registered (trademarks, unlike copyright, has to be registered), there's not really a problem. There could be a moral issue should the original author complain, but that has not happened so far.

As far as integrating other projects goes, does anybody remember the vidomi case? I'm afraid I don't recall the specifics anymore, but in the end they wrote a wrapper for the GPL software they used and released that wrapper under the GPL. But their proprietary software could use the wrapper with the blessing of the FSF.

About integrating MS headers.. doesn't the GPL work the other way round? You can't take a GPL project, link it into your own proprietary project and get away with it. But if you consume a non GPL software, that shouldn't be a problem. In fact, one of the links below goes to a section that outlines that for instance major parts of a proprietary OS can still be integrated into a GPL project. If not, open source development on the Windows platform would essentially be dead. Not that MS would not like that, but that'd be shooting yourself in the foot.

Doom9
12th November 2004, 18:23
looks like my memory failed me on the vidomi case: they put code from vdub, dvd2avi and flask into a bunch of dlls and dynamically linked them. AutoGK doesn't do that, does it? Writing and opening AviSynth scripts shouldn't be touched by the GPL.. if it would, every video editing and encoding tool that open AviSynth scripts and every text editor that can open and write avisynth scripts would have to be released under the GPL, and that's ludicrous.

So as long as AutoGK doesn't consume any GPL DLLs and does not contain GPL derived code (and nobody has brought any proof to that yet), I don't see a problem with the app.

An interesting related question is though what happens if your closed source program calls a GPL executable via exec(). There's no linking of any kind involved so I think while it's against the spirit of the license, it's not against the letter of it.

stax76
12th November 2004, 18:40
@Doom9

I didn't mention AutoGK here, however since you already come up with it, no there is no indication it links directly to A GPL library, using something like like a command line is allowed, it's described in the FAQ at gnu.org

dragongodz
13th November 2004, 00:58
Wilbert,Doom9 - my interpretaion is actually pretty much what Wilbert said. that is -
if a person pays for access to the binary they must be able to access the source code aswell, no extra charge.
OR
if you dont want to provide the source for free to the people who pay for access to the binary(meaning you want to charge them seperatly for the source aswell) then you must make the source available to everyone for the same small charge.

once a person has the binary and/or the source they can distribute it in a similar fasion or for free etc etc etc.

There could be a moral issue should the original author complain, but that has not happened so far.
actually i did question 321studios of their choice of dvdxcopy name. since they used DVDx in their rippoff package they could not claim they had not heard of it. mr moore claimed it meant dvd-xcopy playing on the old xcopy software name, funny how everything else became dvdx-(such as dvdxrescue) though. when i asked if he could change it by even just putting the hyphen in (dvd-xcopy) he refused saying they had started to print the covers(actually it was a lot more talking than that where he showed exactly what sort of person he is). and people wonder why i am sad that backing up dvds didnt win in court but happy that prick was taken down.

An interesting related question is though what happens if your closed source program calls a GPL executable via exec(). There's no linking of any kind involved so I think while it's against the spirit of the license, it's not against the letter of i
to quote from the first link DaveEL gave
If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them. So you can use the GPL for a plug-in, and there are no special requirements.

UMP
14th November 2004, 13:29
Originally posted by Wilbert
Now, what is third party? Is that also people how didn't buy the program itself?

But if (a) is allowed, UMP just can sell FairUse for 100 euros (or whatever). If he includes the source, he doesn't need to give it to people who didn't buy FairUse. Is this correct?

I guess that's why you ask it UMP ? :(

Here is a quote from the section 3 of the GPL, which IMHO clarifies what 'third party' means : people getting the binary.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

This said, of course anyone with access to the source code or binary form of the software is free to redistribute it; provided that the GPL terms are respected which I am afraid is not the case on this forum, isn't it Wilbert ? :p
We already discussed this : feel free to redistribute your own compiled binary of FU, or the full "original" package if you like (it's pretty easy to find it and fully legal), but please redistribute/host the source code too. :thanks:

Regards,

ump

Wilbert
15th November 2004, 22:49
This said, of course anyone with access to the source code or binary form of the software is free to redistribute it; provided that the GPL terms are respected which I am afraid is not the case on this forum, isn't it Wilbert ?
My apologies! I will add the source of 0.9.3 to that thread in gen. disc.

Btw, I saw 1.0 is out? Perhaps you can update the sources on "your" webpage (or mail it to me) (I think the source on the webpage is 0.4.3). Then I will also send it to doom.

UMP
16th November 2004, 04:01
Originally posted by Wilbert
I saw 1.0 is out?
Well, it seems that - once again - I updated the history page while migrating the website. 1.0 is still under development, I uploaded the right history page.

I make this mistake on a regular basis, the best clue being that when this happens the history version does not match the "current version" status at the top of each page. :o

Regards,

ump

trbarry
11th December 2004, 18:16
An interesting related question is though what happens if your closed source program calls a GPL executable via exec(). There's no linking of any kind involved so I think while it's against the spirit of the license, it's not against the letter of it.

I've thought about this before, but maybe not correctly. It seems there are two different things that apply. The first is the GPL, and what it says.

But there is a second overriding issue in that copyright really only covers the act of distribution. So if you are not distributing any GPL code you would likely not have to comply with the GPL license at all. That is, if you just in any way invoke a M$ Windows or Avisynth function you assume is on site then you are not at all bound by by the terms of either license if you are not distriuting ANY of their code.

Of course most things may involve compiling with proper headers, etc. so it still can get tricky.

But I don't believe I need any sort of Virtualdub license to distribute a bat file that says run Virtualdub, no matter what the license might or might not claim. I've never seen a license that even tried to restrict something like that.

- Tom

dragongodz
12th December 2004, 01:10
I don't believe I need any sort of Virtualdub license to distribute a bat file that says run Virtualdub, no matter what the license might or might not claim. I've never seen a license that even tried to restrict something like that.
and of course the GPL does NOT try to do that either. so to quote again
If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them. So you can use the GPL for a plug-in, and there are no special requirements.
a bat file would be just as much a seperate entity and so falls outside the GPL.

So if you are not distributing any GPL code you would likely not have to comply with the GPL license at all.
correct so long as the program does not need the GPL component to actually run. loss of some functions because of a missing plugin, for example, does not make the program reliant on GPL. that is a different issue and where things really get tricky though. :)

ffmpeg
22nd December 2004, 11:47
I just like LGPL