Fog Creek Software
Discussion Board




How Does GPL Work with Commercial Linux Distros?

Here is what I mean.

I was under the impression that the presence of any GPL (not LGPL) code linked into a program "tainted" that program with "open sourceness" and that the program's source *must* be made available to the product's purchasers (presumably in a form that would allow the exact same commercial application to be built from that source).

I have rather neurotically pursued this issue on two different contracts simply to assure my client and myself that we weren't turning a commercial product that I was helping to develop into a piece of freeware by adopting some GPLd code.

So, I see that the "Xandros" distribution is only available commercially; same with SuSe. There appears to be no free ISO download version of SuSe, etc source code available.

So how do these commercial vendors stay within the obligations of the GPL without giving away their own IP? Do they retain a semblance of "control" by simply making it difficult to obtain the source or the make files and by restricting the distribution of source to purchasers?

I've always wondered how this works...

Bored Bystander
Wednesday, January 21, 2004

As I understand it, "Free" doesn't mean "No cost". It means you get the source. But I'm not a lawyer...

http://www.opensource.org/licenses/gpl-license.php

"When we speak of free software, we are referring to freedom, not price."

Tom H
Wednesday, January 21, 2004

Does it work?
Only Redhat makes profit, yet RH Linux was always fully downloadable for free.

El Macho
Wednesday, January 21, 2004

On suse's ftp server at ftp://ftp.suse.com/pub/suse/i386/9.0/suse/src you can find the rpms for that build, including the kernel.

Simon Lucy
Wednesday, January 21, 2004

"Only Redhat makes profit, yet RH Linux was always fully downloadable for free."

A paranoid might think that Redhat intentionally releases their distros on the most god awful, underpowered servers imaginable to convince someone just to give up and pick up a copy at Best Buy.

Having said that, RedHat convey(ed/s) a "big business" image, and for large corporations that want to feel that they have a vendor who's balls they can bust it's important that they're "bought" someone. Hence Redhat making money.

Dennis Forbes
Wednesday, January 21, 2004

It was my understanding that you only had to give the source to those who have purchased it from you, and then only if they request the source.

Dan G
Wednesday, January 21, 2004

Go to:

http://www.cheapbytes.com

There you can download a CD set of virtually any Linux distribution (including Red Hat and Suse) for $5 to $10.  These aren't the "Official" release versions, which may also include some non-gpl'd stuff, but they do include all of the gpl'd stuff in each distribution.

The price paid for programs that are licensed under the gpl is never paid for the license itself (which is always free), but only for the cost of distribution, or warranty or support provided by the distributor.  Companies are free to charge whatever they want for their distribution, but no part of the charge may be a cost of licensing a program that is published under the GPL. 

Herbert Sitz
Wednesday, January 21, 2004

...but what about the obligation to provide access to the source code? As the original poster mentioned, Xandros doesn't seem to provide access to the source code despite being derived from GPL code.

SC
Wednesday, January 21, 2004

The thing is that the GPL is per-product. So SuSE, who's installer is closed, if I recall correctly, are obligated to provide the source code to the kernel, the compiler, system libraries, and the various open parts of the system. But their tools, such as YaST (and that godawful bicapitilization) are a seperate product, under a seperate license. The fact that it shares a CD with the kernel is irrelevant and immaterial. Each package in the distribution is licensed seperately.

Mike Swieton
Wednesday, January 21, 2004

"I have rather neurotically pursued this issue on two different contracts simply to assure my client and myself that we weren't turning a commercial product that I was helping to develop into a piece of freeware by adopting some GPLd code."

This is common misunderstanding.  If you mistakenly have GPL code in your product, it does not automatically make your product GPL'd (free for the taking).  Essentially it would be a straight forward copyright violation (distributing the GPL code without a license) and the authors could sue you.  Your main recourse would be to simply remove the offending code from your product.

At no point would you be forced to open source your product.

Almost Anonymous
Wednesday, January 21, 2004

You have the right to sell GPLed programs for as much as you want, and GNU encourages it: http://www.gnu.org/philosophy/selling.html

If you distribute binaries without source, this will be interesting to you: http://www.gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValid

The original post wasn't clear (to me); should we understand that Xandros either refuses to either package GPLed binaries together with sourcecode, or doesn't honor a 3yr written offer?  They get to choose between GPL section 3a or 3b, but as I understand not 3c since they're not commercial.

Tayssir John Gabbour
Wednesday, January 21, 2004

What about the following line in the GPL licence?

"b)  You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License."

Can somebody explain to mean the ramifications of this clause? Does this mean that, if I develop a program that makes use of GPL'ed code, I will have to make that program "licensed as a whole at no charge to all third parties under the terms of this License."?

BTW, though it sounds like I'm trolling, I'm not and I genuinely wish to find clarification. Cheers.

SC
Wednesday, January 21, 2004

The rules are simple really:

If you link to GPL code, your program must have a GPL compatable license. These include the GPL (duh), the BSD license, the LGPL license, and several others.

If you just happen to distribute a GPL program with your product (eg you build a program to run on top of Linux, but you want to distribute the Linux kernel as a convenience to your users), then your program can have whatever license you please. You must abide by the terms of the GPL for the GPL components you distribute, of course.

If you distribute GPL binaries, you must allow anyone access to the source. This doesn't mean you have to give them the source up front. It also doesn't mean you have to make the source publically available. Your only responsibility is that, if someone asks, you provide them with the source, and charge no more than the cost of the media and shipping. Remember if your program is forced under the GPL due to linking GPL code, you'll need to include your modifications too!

You can sell a product covered under the GPL for any cost the market is willing to bear. Of course, since the first person you sell it to can go and give it away for free to as many people as they like, there is a practical limitation to selling programs that are released under the GPL. However, there is no legal limitation.

IANAL, blah blah blah.

Sum Dum Gai
Wednesday, January 21, 2004

Is the following correct then (Forgive my poor examples:-))?

If the GPL code is, say, a pdf generation program called GPdf, if I produce a program, called MyProg,  that passes data to GPdf for processing which it then uses, then I can use whatever licence I like for MyProg.

If say, GPdf is a dll then if I use it in MyProg, then MyProg needs to be GPL'ed.

If I incorporate some of GPdf's code say the pdf reading function in MyProg, then MyProg needs to be GPL'ed.

SC
Wednesday, January 21, 2004

There was a discussion about this on the Linux Kernel mailing list last year concerning the Monta Vista distribution

http://www.cs.helsinki.fi/linux/linux-kernel/2003-05/0633.html

_
Wednesday, January 21, 2004

The issue of whether a non-gpl program can link to a gpl program without violating the gpl is a disputed one.  Richard Stallman claims that even dynamic linking of a gpl'd dll by a non-gpl program implicates the gpl.  In my opinion, a saner view is described here by Lawrence Rosen, general counsel for the Open Source Initiative:

http://www.nusphere.com/products/library/gpl_0401openmag.pdf

Rosen advocates an interpretation of the GPL in which static linking of a gpl'd library by a non-gpl program violates the gpl, but dynamic linking does not.

Herbert Sitz
Wednesday, January 21, 2004

> Is the following correct then (Forgive my poor examples:-))?

Yes.

_
Wednesday, January 21, 2004

Herbert,

If dynamic linking was allowed than all apps would dynamically and the GPL would be useless.  In which case, a future release would just explicitly include dynamic linking.

The issue is NOT dynamic vs. static linking.  The type of linking is relevant.  It's a question of derivative works.  A derivative work is not a GPL concept it's a copyright concept.  It keeps me from publishing my own startrek episodes.  If your work is the derivative work of some GPL code, then your usage of that code is under the license.

This is exactly why non GPL programs can run on Linux.  In a sense, any Linux application is dynamically linked to the kernel.  That doesn't make them derivative works of the kernel.

However, if you write some application that "wraps" a DLL then that's a derivative work, literally, of that DLL.

Almost Anonymous
Thursday, January 22, 2004

so if I write an invoice program that generates a PDF by calling into a GPL'd DLL, is that a derivative work?

how about if it calls 'lpr' or whatever it's called now days to write it to a printer?

mb
Thursday, January 22, 2004

Why are people so paranoid about any GPL code, yet  happliy use proprietory code that works under the same copyright laws.

How many people have been sued by the Open Software Foundation?

How many disputed patents is MS distributing?

Stephen Jones
Thursday, January 22, 2004

mb, Calling a GPL'ed DLL creates a combined work; your work must be GPL'ed

If you use the standard Unix mechanism (pipes, sockets etc) for communicating between programs then you're not required to GPL your work (at least that's the theory).

Most of this stuff is covered in the GPL FAQ
http://www.gnu.org/licenses/gpl-faq.html

_
Thursday, January 22, 2004

oh, i've heard that distinction before, and the workarounds (create a stub command-line program).

my question is, how is one a derivative work and the other not? i understand how modifying source is derivative, but not how calling a program with LoadModule() is (inherently, obviously it could be.)

mb
Thursday, January 22, 2004

The real answer is that nobody can be sure what does and doesn't qualify as a derivative work, because it's never been tested in court. We're just relying on the best guesses of the lawyers.

However, if the holder of the copyright says that calling it from the command line is OK, then they're going to have a pretty hard time convincing a judge if they later turn around and say it's not OK. So the fact that the FSF say it's allowed makes it a pretty safe bet to assume that it is indeed allowed.

Sum Dum Gai
Thursday, January 22, 2004

"Why are people so paranoid about any GPL code, yet  happliy use proprietory code that works under the same copyright laws."

Are there many proprietary code licences that ask you to publish your code and let it be republished by anyone for free?

I guess if someone really wants to know what the GPL means the only way to get some sort of idea is take it to court.

Just me (Sir to you)
Thursday, January 22, 2004

No, these licenses ask you to pay instead. You can refuse to pay, just as you can refuse to release source code, and the penalties will be the same.

What people are arguing about here is inadvertent copyright infringement, but this ocurrs equally with proprietory code (with the difference that "owners" of proprietory code do often send you solicitors letters threatening to sue).

So if you write a program using SQL server and MS is using code that is proprietory and has not paid the full license for it, then you can be sued for copyright breach.

---"I guess if someone really wants to know what the GPL means the only way to get some sort of idea is take it to court. "-----

Err, wrong way round! If you disagree with aspects of MS's license you don't take them to court! You do what you consider just and wait for them to take you to court. Exactly as with the GPL or any other license!

Stephen Jones
Thursday, January 22, 2004

The problem is that copyright law was not written with software in mind. The result is that the legal precedents are based on literature and music, and to a lesser extent the visual arts. The result is that there is not really yet any applicable case law.

Stephen Jones
Thursday, January 22, 2004

Herbert, there's a problem with Rosen's argument that dynamic linking isn't subject to the GPL.  It implies that anyone can make the trivial step to convert a static lib to a dynamic one -- a gaping loophole.  This probably even damages other licenses than just the GPL.

Am I missing some legal argument, or misunderstand some specific technical point?

Tayssir John Gabbour
Thursday, January 22, 2004

Stephen,

I was thinking more in terms of preemptive litigation.

Just me (Sir to you)
Thursday, January 22, 2004

"No, these licenses ask you to pay instead."

Yes, and I can haggle, and pay up. End of story.
They don't go: "All your codez are belong to us!"

Just me (Sir to you)
Thursday, January 22, 2004

"So if you write a program using SQL server and MS is using code that is proprietory and has not paid the full license for it, then you can be sued for copyright breach."

Call me naive. I rest assured MS would indemnify its clients.

Just me (Sir to you)
Thursday, January 22, 2004

Let's see, would MS indeminify - maybe, maybe not.  There was a relevant case  - but I don't know the outcome, and I couldn't bothered to look for any link beyond this one. Perhaps I should leave that as an exercise.
( http://www.theregister.co.uk/content/53/29419.html )

Dynamic linking - I think you'll find that's why the LGPL (originally the "Library" GPL now the "Lesser" GPL)was created.  If you avoid GPLed libraries you should be OK.  If you do make a cockup and someone yells then you need to replace the library with one not GPL. 

The actual question - well a distro is in the same position as a cd on the front of a magazine.  The precense of a GPLed application doesn't make all  the other applications on the disk GPL. So - if you get a Xandros disk any GPLed application they've customised is GPL and you can ask for the source code, any they've written themselves they can impose whatever licence they please.

A cynic writes
Thursday, January 22, 2004

memo to self - learn to spell ( "presence" not "precense" )

A cynic writes
Thursday, January 22, 2004

> "No, these licenses ask you to pay instead."
Yes, and I can haggle, and pay up. End of story.
They don't go: "All your codez are belong to us!"

So you remove the offending GPL code. End of story.

_
Thursday, January 22, 2004

The GPL is not a contract.  You don't sign it.  You don't agree to it.

However, nothing gives you the right to copy a GPL'd program, except the GPL.

Therefore, if you don't follow the terms of the GPL, it's copyright infringement, *not* a breach of contract.

What's the difference?  The difference is that you can't be *compelled* to open your source code, if found infringing.  However, it *is* a federal offense, punishable with hefty fines.

Therefore, relicensing one's code might well be the cheapest remedy, compared to either rewriting the code or paying the fines (plus treble damages for willful infringement, if you knew what you were doing) and/or jail time.

Of course, I view the best approach of all as being to simply avoid GPL and LGPL libraries altogether, and shop around for BSD-licensed alternatives.  However, since command-line programs are specifically excluded from "derivative work" issues, I don't have issues with using GPL development tools, command-line scripts, etc., or even using GPL applications for personal use.  I also don't have issues with contributing code to GPL projects that I actually use.  I just don't want any "commercial" work I do to be encumbered by
GPL terms.

Phillip J. Eby
Thursday, January 22, 2004

Late to the party, but what the hell--

"A paranoid might think that Redhat intentionally releases their distros on the most god awful, underpowered servers imaginable to convince someone just to give up and pick up a copy at Best Buy."

I happen to know the guy who runs RH's ftp servers and can assure you that it has more to do with the fact that RH is such a popular distro. God's own server would bow under the weight of ten million people trying to download three 650 MB .iso's the first day they're out. That's why He created .torrents. :-)

null fame
Friday, January 23, 2004

"That's why He created .torrents. :-)"

I thought they were created for porn & piracy, like most p2p apps. ;)

Sum Dum Gai
Friday, January 23, 2004

*  Recent Topics

*  Fog Creek Home