LWN.net Logo

BusyBox settles another lawsuit

BusyBox settles another lawsuit

Posted Mar 6, 2008 22:39 UTC (Thu) by landley (subscriber, #6789)
In reply to: BusyBox settles another lawsuit by macson_g
Parent article: BusyBox settles another lawsuit

Compliance is actually pretty easy once you understand what your 
responsibilities actually are.  To comply with the license, you need to do 
at least the following three things:

1) State the base version explicitly.  (Yes I already have this code, but 
I don't _know_ that this is the specific code you used unless you tell me.  
For all I know you grabbed some random svn snapshot and did who knows what 
with it.  "I used busybox" covers 10 years of development at this point, 
you need to be more specific.)

2) If you didn't modify it, SAY SO.  ("This is vanilla 1.2.1, with no 
changes" is a perfectly acceptable answer to me, as long as you're telling 
the truth.)

3) If you modified it, post a patch (preferably diff -u) against the base 
version you identified in step 1.  (I actually _prefer_ this to you 
posting a complete tarball I then have to extract my own patch from to see 
what you changed, but I can work with a tarball.  Obviously a full source 
tarball is compliant, it's just overkill most of the time.)

The first problem companies get in is they don't _identify_ the source 
they use sufficiently for others to reproduce their binaries.  You have no 
idea how many people don't realize that steps #1 and #2 above are actually 
_requirements_, so they go into a "what do they want from us" panic when 
approached about it.  Sometimes we just want clarification.  "We're 
using busybox" isn't good enough, but "We're using busybox 1.0.0-pre3 with 
this patch" usually is.  Even if they're using plain vanilla with no 
patches, they have to _say_ "This is vanilla version X with no patches".  
I can't just assume you didn't make any changes, and it's a huge amount of 
work to prove a negative (takes a lot of examination, you have to look at 
_everything_ to make sure you recognize all of it).

The other problem some companies have (I can't comment on any specific 
case) is that they loose track.  After it's shipped and the development 
team moved on, they can't reproduce it either.  They don't know what the 
base version was, they don't know what (if any) patches they applied, so 
when we ask these questions, they can't answer them.  We're generally 
happy to work with 'em out of court to track down this info (which can be 
a _lot_ of work after the fact, by the way), but if they panic and stop 
talking to us in hopes we go away, the SFLC will sue.

Often the patch turns out to be small and uninteresting and it _is_ mostly 
vanilla code with trivial tweaks that they can't _possibly_ be interested 
in trying to extract some kind of proprietary advantage out of.  But we 
care about proving there _isn't_ something interesting.  Please don't make 
us do a lot of work to confirm this, the license says you owe us this info 
up front.  It's your responsibility to track this, not ours.

The "host a mirror or don't host a mirror" issue is a red herring, and one 
I don't particularly care about.  I don't need another copy of the bits I 
already have, and OSL is already providing us a high bandwidth mirror for 
all the historical versions.  But I _do_ need you to tell me where to 
_find_ the source you used if I want to reproduce your binaries.  If you 
can't tell us that, you're not complying with the license.

The real issue is third party reproducibility of the code.  If you give me 
a binary and don't explicitly say "this is version X and I did not patch 
this" (or "this is version X with this patch"), then how do I know?  I 
have to do extensive forensic analysis to see what changes you may or may 
not have made, and having to do that for 100 different product releases 
gets old fast.

Rob


(Log in to post comments)

BusyBox settles another lawsuit

Posted Mar 6, 2008 23:35 UTC (Thu) by sepreece (subscriber, #19270) [Link]

One could hope that Rob's requirements would be a model for everyone - they're reasonable,
simple, and should be straightforward for anyone to comply with (at essentially zero cost).
They are much less stringent that the letter of the GPL, but nicely satisfy its spirit.

scott

Rob, your directions are just wrong

Posted Mar 7, 2008 0:03 UTC (Fri) by JoeBuck (subscriber, #2330) [Link]

If you ship GPL'ed binaries, you have to be prepared to provide the source.

It doesn't suffice to say what the version is (though that's nice), or to supply patches.

You don't have to host the full source, but you do have to include a written offer, good for three years, to provide the full source. You can charge what it costs you for doing this. It can be done offline, you can mail CDs to people who request it. You can't stop them from posting that CD online.

Don't tell people that they just need to supply patches; that is incorrect.

BusyBox settles another lawsuit

Posted Mar 7, 2008 3:17 UTC (Fri) by njs (subscriber, #40338) [Link]

Rob's note is thoughtful, and makes good points, but it should be noted that it is *not*
actually describing the requirements of the GPL; it's describing how close you have to get to
the GPL's requirements before Rob stops caring about suing you.  Anyone in the position of
distributing GPL software in a device would be smart to follow his advice, and the community
will surely appreciate it... but they should *also* read the actual legal requirements set out
by the GPL, and follow those too, to avoid liability from all the other authors of GPL
software who aren't Rob.

BusyBox settles another lawsuit

Posted Mar 7, 2008 13:08 UTC (Fri) by jeff@uclinux.org (subscriber, #8024) [Link]

   "Compliance is actually pretty easy once you understand what your 
   responsibilities actually are.  To comply with the license, you need to do 
   at least the following three things:

Post the sources.  Or offer to deliver them, as per the license.

   1) State the base version explicitly.  (Yes I already have this code, but 
   I don't _know_ that this is the specific code you used unless you tell me.  
   For all I know you grabbed some random svn snapshot and did who knows what 
   with it.  "I used busybox" covers 10 years of development at this point, 
   you need to be more specific.)

This is not a part of the license, at all.  It's nice though!

   2) If you didn't modify it, SAY SO.  ("This is vanilla 1.2.1, with no 
   changes" is a perfectly acceptable answer to me, as long as you're telling 
   the truth.)

This is not a part of the license, at all.  It's nice though!

   3) If you modified it, post a patch (preferably diff -u) against the base 
   version you identified in step 1.  (I actually _prefer_ this to you 
   posting a complete tarball I then have to extract my own patch from to see 
   what you changed, but I can work with a tarball.  Obviously a full source 
   tarball is compliant, it's just overkill most of the time.)

No, that's incorrect.  The full source & scrips... only way to be compliant. Posting
a patch is a way to create a misunderstanding and get sued by someone who
is on a crusade... and they are within their rights to do that even if they
contributed trivially to the project (no, I'm not saying you would).

   "The first problem companies get in is they don't _identify_ the source 
   they use sufficiently for others to reproduce their binaries.  You have no 
   idea how many people don't realize that steps #1 and #2 above are actually 
   _requirements_"

Right, because they aren't.  That is not what the license says.

Rob, Erik, this is really really scary.  You guys talk enforcement but seem intent on
shooting yourselves in the foot.  When starting the uClinux project where a lot of
these things (uClibc etc) came from I did so so that people could benefit, not be
afraid of what they need to do because of license uncertainty!  Threatening "SFLC
will sue [if you don't]" but posting misunderstandings like above is exactly the opposite
of what is needed here.

D. Jeff Dionne.
Jeff@uClinux.org

BusyBox settles another lawsuit

Posted Mar 7, 2008 14:33 UTC (Fri) by sepreece (subscriber, #19270) [Link]

What Rob posted were what he cares about as a rights holder. Anyone providing the information
he asked for should be trivially able to satisfy the letter of the license if anyone actually
asked them to do so. [I'd say that anyone capable of realistically doing anything useful with
the source would also be able to satisfy her needs with that information.]

The license terms are what they are. Most rights holders seem content with one or another
thing equivalent to the license terms. Offering downloads, for instance, does not satisfy the
license, but does satisfy most rights holders [and, I imagine, most people who want the
sources.]

However, you're right that anyone shipping GPLed code needs to be aware of the actual terms,
needs to meet at least the notification requirements, and needs to be prepared to provide
source if requested.

BusyBox settles another lawsuit

Posted Mar 7, 2008 15:04 UTC (Fri) by jeff@uclinux.org (subscriber, #8024) [Link]

While what Rob requests is nice to have (all of us prefer useful patches to a tarball of
garbage 
from a vendor), this is NOT compliance with the license.  Rob will take these reasonable
things 
and be happy... that's fine.  But those interested in having a legal framework for Valid,
Global, 
Running Business (which is what embedded is about, make no mistake) cannot rely upon what 
Rob would like to get.  Remember, we got into these discussions because the busybox project is

interested in "enforcement" of the License and has sued people over it.  That license is the
GPL... 
only.  Rob's post is suggesting people do things that don't amount to compliance when 
compared to the requirements of the license, and that's not good. There are others of us who
are 
copyright holders, many many in fact, and who knows what some others will do in that
situation.

The license language is clear, if one wants to  satisfy the legal requirements and get on with
the 
real work, that's where to look.  If one is  interested in wondering about the legality of
what one 
ships, posting some (perhaps perceived to be) random patches and version numbers seems to 
apply.

J.

BusyBox settles another lawsuit

Posted Mar 7, 2008 19:24 UTC (Fri) by landley (subscriber, #6789) [Link]

> Rob, Erik, this is really really scary.

I'm not speaking for Erik, nor for the SFLC either.  Never said I was.

I'm saying that a lot of people go into "deer caught in headlights" mode 
when the subject of GPLv2 compliance comes up because they think the 
source code being publicly available is sufficient, when they haven't 
identified it specifically enough for us to have a clue what they used 
(nor have they even _checked_ to see if their developers modified it).

If you understand a developer's motivations for approaching you, it's 
easier to satisfy them.  The core of GPLv2 is "show me the code".  How you 
go about this is details.

> You guys talk enforcement but seem intent on shooting yourselves in the
> foot.

*shrug*  Once you actually wind up in court, the full requirements of 
GPLv2 get enforced, including little details like clause 3c only applying 
to non-commercial distribution.  I'm talking about staying _out_ of court.  
My previous message is really about how far a small developer like the one 
who started this thread can usually stretch 3c before it breaks.

Many people just assume "the source is already on the web, that means I'm 
covered", which isn't quite sufficient and there are _reasons_ it isn't 
sufficient, which I attempted to explain.

> When starting the uClinux project where a lot of these things
> (uClibc etc) came from I did so so that people could benefit, not be
> afraid of what they need to do because of license uncertainty!

Obviously a full reading of the GPLv2 can tell you more about how to 
comply with that license than I can, and thus you're free to ignore 
anything I have to say about it.  Although who said "medium customarily 
used for software interchange" (a phrase from section 3a which predates 
the escape of web servers from CERN) does _not_ include "base tarball plus 
patch file"?  Isn't that what you customarily find in source RPMs?

Technically, GPLv2 probably still allows you to mail out a 9 track tape 
containing the source (since that's what was customarily used when the 
license was drafted in 1991, and what the FSF itself did for many years).  
Certainly you could charge people $5 to burn a CD and mail it to them 
under section 3b.  Heck, materials plus postage plus amortized 
depreciation on your equipment plus 15 minutes at your hourly consulting 
rate, you can probably get away with charging $50 or more.  Thus your 
written offer could include "mail a check to this address" as a 
precondition, and GPLv2 explicitly allows it.

Do you see any text in the license that _requires_ you to put up a web 
mirror?

Yes, I have actually thought about this before.  There are ways to not 
play nice while complying with the letter of GPLv2, and there are ways to 
not play nice while trying to enforce GPLv2.  I prefer to play nice.

> Threatening "SFLC will sue [if you don't]" but posting misunderstandings
> like above is exactly the opposite of what is needed here.

I'm not threatening anything.  (License complaints go straight to the SFLC 
these days via gpl@busybox.net.  I don't even see 'em until after the SFLC 
has investigated the issue, contacted the company, and already decided 
they're unable to resolve it out of court.  Thus I don't see most of 'em, 
which _are_ dealt with out of court, and if somebody does contact me 
directly I forward them to the laywers.  The exception is when I volunteer 
to analyze the resulting code they get to confirm that it's complete and 
corresponding, of which I have a half dozen backlogged that I haven't had 
time to look at properly yet.)

All I'm pointing out is that if you haven't identified a specific version, 
and identified your changes against that version (including explicitly 
stating "there were no changes" if that is indeed the case) sufficiently 
for us to reproduce what you did, then there's no way any GPLv2 project's 
developers can really be satisfied with your license compliance.  Not even 
under section 3c.  And that this is what motivates copyright holders (or 
their designated representatives) to take enforcement action in the first 
place.

No, I didn't go into "what constitutes complete and corresponding source 
code" and whether that includes your config files (which is a case by case 
judgement call as far as I'm concerned).

I'm also aware that the FSF browbeat Mepis (a tiny garage operation) into 
buying a high bandwidth web mirror for packages that were already in the 
Ubuntu repository, despite Mepis having partnered with Ubuntu (with a 
press release quoting Mark Shuttleworth and everything).  How Mepis can 
delegate an ISP to mirror the packages for them when they couldn't 
delegate Ubuntu to do it, I have no idea.  (What really seems to have 
happend is that Mepis didn't have the time/energy/expertise/money to 
defend itself in court when the FSF came trolling, but then I wasn't a 
party to any of that so I don't really know.  And I'll concede that a real 
troll could probably do a sco-style lawsuit and keep things tied up in 
court for a while as long as they had money to pay lawyers, but that's not 
specific to any particular license, and the FSF itself doesn't seem to 
care about GPLv2 anymore now that v3 is out.)

Is that what you wanted me to tell a developer who's already publishing a 
public SVN repository before we even _asked_?  "Be afraid of frivolous 
lawsuits, despite your existing show of good faith?"  Or maybe "beware the 
FSF trying to make an example of you?"  "Here's every fiddly corner case 
of copyright law that you may ever have to worry about if you ever use 
anybody else's code?"

Doesn't seem useful in this context.  "Here's how you can avoid motivating 
most developers to take action against you."  That seemed useful.

BusyBox settles another lawsuit

Posted Mar 27, 2008 0:49 UTC (Thu) by samroberts (subscriber, #46749) [Link]

Rob, do you work for the SFLC? Just wondering, because your statements 
don't seem to agree with those at

http://www.fsf.org/licensing/licenses/gpl-faq.html

My understanding of what the busybox lawsuits mean is that the 3 things 
you list above are NOT sufficient. In particular, not distributing the 
source because you didn't actually change it, and people can just go 
download it from where you got it is not good enough.

I don't believe we can just say "hey, its foozit v3.2.1, unmodified, get 
it over there". 

http://www.fsf.org/licensing/licenses/gpl-faq.html#Unchan...

And if you changed it I don't think you can provide just a patch, either.

http://www.fsf.org/licensing/licenses/gpl-faq.html#Distri...

Cheers.


Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds