This weekend's witch-hunt
Bruce Perens bruce at perens.com 
Tue Sep 19 01:34:54 UTC 2006 

Dear Busybox folks,

Last week, I obejcted to Rob Landley changing the license statement on 
portions of the busybox code that I wrote. After some (acrimonious, on 
his part) discussion, I left him a final directive: note that Busybox 
contains some of code copyrighted by me, and that it my code should be 
licensable under the GPL, irrespective of version. This corresponds to 
the license preference on my original release of the software.

The sensible action for Rob to have taken, at that point, would have 
been to insert a two-sentence note into the Busybox license that would 
have looked like this:

    Portions of this program are copyrighed by Bruce Perens. Those 
portions may be used under the GNU General Public License, irrespective 
of version.

That declaration would have respected my rights as a copyright holder, 
and would have allowed Rob to make the license change to GPL2 only for 
the overall program that he wished.

Having added that declaration, Rob could have gone on with his life as a 
productive coder. Instead, Rob embarked on a days-long forensic 
analysis, his log of which is visible at

http://busybox.net/~landley/notes.html
and
http://busybox.net/~landley/forensics.txt

It appears that he's putting in a great deal of work to remove all 
traces of Bruce Perens from the Busybox software. He's missed pieces, 
but I feel little motivation to assist him by naming them.

I think it would be fair to classify his behavior as "over the top". I 
don't believe my correspondence here has been sufficient cause for this 
extremely nonlinear response. However, it's free software, and Rob has 
the right to do what he did. You, however, might want to think twice 
before you go along with this strangeness.

I've been guilty of "over the top" behavior in my time, and can 
sympathize with Rob while at the same time I don't want to leave him in 
charge of the only development version of Busybox. I have respect for 
Rob as a coder and great respect for Erik who put in a tremendous lot of 
work on this program.
I do not feel a need to be the major coder of Busybox, but feel that a 
fork is necessary and will put in the work to make one.

I once was very successful in distributing the Debian base system 
development to many separate package maintainers, having got it as one 
monolithic package. Perhaps this is possible. I see some new technical 
directions that are possible.

    Thanks

    Bruce

This weekend's witch-hunt
Rob Landley rob at landley.net 
Tue Sep 19 03:34:44 UTC 2006 

Sigh.  I composed a big long response to him on Friday, and then saved it in 
my drafts folder rather than sending it, because I just didn't want to 
continue the flamewar.  But apparently, he does...

On Monday 18 September 2006 9:34 pm, Bruce Perens wrote:
> Dear Busybox folks,
> 
> Last week, I obejcted to Rob Landley changing the license statement on 
> portions of the busybox code that I wrote. After some (acrimonious, on 
> his part) discussion, I left him a final directive:

Ultimatum, actually.

>     Portions of this program are copyrighed by Bruce Perens. Those 
> portions may be used under the GNU General Public License, irrespective 
> of version.

Those would be the 1.2.1 and earlier versions.  I'd planned to have the actual 
announcement (which goes up on the website like the other things I want 
people who don't read the list to see) would have stated that 1.2.1 and 
earlier are still available under the license they've always been under.  
(Eventually they may move to the Legacy directory along with the other really 
old releases.)

I was already planning on doing this.  It takes serious effort to ask somebody 
to do something they're already doing in such a way that they don't say yes.  
You have a positive talent for this.

> That declaration would have respected my rights as a copyright holder, 
> and would have allowed Rob to make the license change to GPL2 only for 
> the overall program that he wished.
> 
> Having added that declaration,

If you hadn't done the whole Schlamiel thing and had simply asked with a 
little less condescension and bluster, I was already planning to do something 
very similar to that.

However, I take objection to being treated like hired help.  I have now worked 
on this project twice as long as you ever did, and Erik's put in a half-dozen 
times as much work as you even if you'd written all the applets in BusyBox 
0.25 (which was maintained by two other people after you abandoned it before 
it got to Erik).  I _did_ ask Erik.  I warned Erik I was thinking about this 
months ago, and listened to what he had to say.  (Hint: walking in off the 
street and making demands after ten years was _stupid_.  Despite that, I 
responded politely the first few times.  You used up my strategic reserves of 
politeness.)

I decline the opportunity to be your Schlamazel.  Or at the very least, I'm 
washing the soup off.

> Rob could have gone on with his life as a  
> productive coder. Instead, Rob embarked on a days-long forensic 
> analysis, his log of which is visible at

Yup, it's only about half done though.

As a computer historian, it's an interesting learning experience.  And it was 
my weekend.

> http://busybox.net/~landley/notes.html
> and
> http://busybox.net/~landley/forensics.txt
>
> It appears that he's putting in a great deal of work to remove all 
> traces of Bruce Perens from the Busybox software.

Nope, just removing any leverage you may still have to fling soup on a list 
you never posted on in the entire seven years of Eric's tenure, over a 
project you abandoned ten years ago, over a license simplification that only 
applies to new releases and which someone who isn't even the maintainer could 
legally make to their own fork.

> He's missed pieces,

Remember when I called it a snapshot?

Sheesh, you're trying to make it sound like I'm hiding something.  How exactly 
does one hide something by posting it in their blog?  (And mentioning it on 
the #uclibc irc channel on sunday.)

I am _proud_ to prove that you have had no input into this project for almost 
a full decade, and yes I honestly believe that's _WHY_ the project has been 
successful.

> but I feel little motivation to assist him by naming them.

As I said, it's only about half done, but I have yet to find much that 
comparator (a legal grade forensic analysis tool) missed.  A few of the 
shorter help messages are the same.  Still about 70 files to look through.

But that's why I haven't announced it yet.  That's a snapshot of the current 
(unfinished) state.  I thought my blog made that clear, but making stuff 
clear to you is obviously a hit-or-miss proposition.

> I think it would be fair to classify his behavior as "over the top".

Pot, kettle.  Kettle, pot.

> I  
> don't believe my correspondence here has been sufficient cause for this 
> extremely nonlinear response.

You get that a lot, I take it?

http://old.lwn.net/lwn/1998/0319/resign.html
http://slashdot.org/articles/99/02/18/0927202.shtml
http://lists.debian.org/debian-devel/1999/04/msg00197.html
http://www.computerworld.com.au/index.php/id;708563949;fp;16;fpid;0

How'd the presidency of Linux Capital Group work out for you?  Is the Bruce 
Perens book series with Prentice Hall selling well?  How are you doing with 
Open Source Risk Management?

Did you accomplish a single concrete thing in your entire time at HP between  
http://www.linuxtoday.com/news_story.php3?ltsn=2001-03-04-002-20-OS-BZ and 
http://news.zdnet.com/2100-3513_22-957065.html ?

News Flash: you have a knack for pissing people off, alienating your own base, 
and working against your own objectives.  "Messing your nest" is how I've 
heard it described.  You would appear to me to be a classic example of 
a "Schlameil".  (I'm not jewish, but my favorite wireless coffee shop's very 
kosher.)

Sure, plenty of people in the community are hard to get along with, from Theo 
De Raadt to Al Viro.  The thing is, they're constantly putting in a lot of 
hard work to offset this.  And they do it themselves, they don't order other 
people to do it for them.

I don't care what you _used_ to do, or what you've done elsewhere.  I 
requested that if you want a version of BusyBox under GPLv3, you either use 
any of the existing releases or you fork the project and maintain it 
yourself.  I was not joking, that was a serious suggestion.  If you don't 
like the way I'm maintaining the project, FORK IT.  (Go contact a guy named 
Vladimir Oleynik, the two of you would be perfect together.)

> However, it's free software, and Rob has  
> the right to do what he did.

Then why the public melodrama, on a list you have never previously been a 
member of?

> You, however, might want to think twice  
> before you go along with this strangeness.

I hope whoever you're referring to does.  I certainly never asked anybody to 
blindly follow me anywhere.

I put out the best versions of BusyBox I know how to do, and I do it because I 
love it.  That's the most I can manage.  I never claimed to be perfect, and 
I've never forced anybody else to use the versions I put out.  (Lots of 
people are still happy with the 0.6x releases.  I have no interest in 
supporting them, but they're up for download on the site, and will remain 
so.)

I have no problem with people disagreeing with me either.  I expect that, and 
respect it.  I disagreed with Erik about a few things when he was maintainer.  
(For example, "count" was a way better name than "pipe-progress". :)  But 
when Erik made a decision, acknowledging my concerns but continuing to 
disagree with them... he was the maintainer.

I never even tried to become maintainer, I was just the one doing the 
shoveling after Erik got busy with other things.  I wanted Erik to come back, 
and would _still_ give it back to him in a second if he had the 
time/inclination/energy to do it.  But he's still having trouble keeping up 
with his existing projects.  (The embedded world's getting big.  Keeping up 
with it's a lot of work.  I keep poking him about a 0.9.29 release of uClibc 
because I want to use it, but I try not to be annoying about it.  With mixed 
success, I suspect.  And the only help I can offer in that area is testing 
and bug reports...)

I want what is best for BusyBox.  And in my best judgement, after nine months 
of public debate on this list _before_ you showed up, that's GPLv2.

> I've been guilty of "over the top" behavior in my time, and can 
> sympathize with Rob while at the same time I don't want to leave him in 
> charge of the only development version of Busybox.

Please please please say you're forking the project.  Please.

> I have respect for  
> Rob as a coder and great respect for Erik who put in a tremendous lot of 
> work on this program.
> I do not feel a need to be the major coder of Busybox, but feel that a 
> fork is necessary and will put in the work to make one.

YES!

You'll want to talk to Vladimir Oleynik.  I don't think his email address has 
changed.  Last I heard, he was vowing to maintain his own tree.  He's a 
very... prolific coder.

> I once was very successful in distributing the Debian base system 
> development to many separate package maintainers, having got it as one 
> monolithic package. Perhaps this is possible. I see some new technical 
> directions that are possible.

Good luck.

>     Thanks
> 
>     Bruce

Rob
-- 
Never bet against the cheap plastic solution.

This weekend's witch-hunt
Bruce Perens bruce at perens.com 
Tue Sep 19 04:51:20 UTC 2006 

Rob Landley wrote:
> Ultimatum, actually.
>   
My right, darn it, an entirely reasonable request, and it would not have
done you the slightest bit of harm. Com'on, Rob, you're being stubborn.
> I was already planning on doing this.
You would then have had no reason to go filtering out code-lines. Now
you're going to insert some number of bugs in the code for a silly reason.
> If you hadn't done the whole Schlamiel thing and had simply asked with a 
> little less condescension and bluster, I was already planning to do something 
> very similar to that.
>   
Your actions communicated the opposite. Rather than assure me that my
rights would be respected, you attempted to prove with amateur lawyering
that I didn't have any rights. And then you embarked on this forensic thing.
> However, I take objection to being treated like hired help.
I do not think of you as hired help. But before you cast that stone,
think of how you're treating other folks on this project.
> How'd the presidency of Linux Capital Group work out for you?
OK. If you insist. It's your mailing list.

You probably can't blame me for the stock market crash. When we saw that
the market was not going to come up for a while, we decided to close
down operations /before/ we used up our investors money, rather than
drag the company into bankruptcy for the sake of saving our own jobs for
a few more months. We paid all of our bills and closed with money still
left in the bank. The management (two other guys and me) took some of
our personal stock in Progeny Linux Systems Inc., one of the companies
we created, and /doubled /the holding of our investors. Without being
asked. Progeny has been around for 6 years, and has employed a number of
the Debian developers. That company might not make it, but all of the
Debian stuff we've paid for has done enough good.
> Is the Bruce Perens book series with Prentice Hall selling well?
We just put out a new book on Ajax. All of our texts become Open Source
and are distributed in unencrypted PDF 90 days after they hit store
shelves. I think there are 25 books now. I suspect that we have made
more Open Source documentation than the Linux Documentation Project. One
book of the 25 was a commercial failure. None of them sell like Steven
King. But technical books don't.
> How are you doing with  Open Source Risk Management?
>   
Their business didn't take off. I moved on. You win some, and lose some.
> Did you accomplish a single concrete thing in your entire time at HP between  
> http://www.linuxtoday.com/news_story.php3?ltsn=2001-03-04-002-20-OS-BZ and 
> http://news.zdnet.com/2100-3513_22-957065.html ?
>   
At the moment I am wondering if they were snooping my telephone records,
because they certainly were doing that to all of the reporters that it
was my job to talk to. But if you want just one concrete achievement,
there is the reversal of W3C's decision to put royalty-bearing patents
in web standards. IMO that is a pretty big deal.

Hopefully that is enough of "What good are you, Bruce Perens" and we can
return to talking about Busybox now.
>> However, it's free software, and Rob has  
>> the right to do what he did.
>>     
>
> Then why the public melodrama, on a list you have never previously been a 
> member of?
>   
It takes both fuel and oxidizer to make a flame.

    Thanks

    Bruce

This weekend's witch-hunt
Rob Landley rob at landley.net 
Tue Sep 19 20:31:55 UTC 2006 

On Tuesday 19 September 2006 12:51 am, Bruce Perens wrote:
> Rob Landley wrote:
> > Ultimatum, actually.
> >   
> My right, darn it, an entirely reasonable request, and it would not have
> done you the slightest bit of harm. Com'on, Rob, you're being stubborn.

All the new code I'm adding to BusyBox for the next release will be GPLv2 
only.  This is both the code I'm adding, and the license I'm accepting 
patches under.

Some of this code is already available under other licenses elsewhere.  That's 
always been the case, and I couldn't change that even if I wanted to (which I 
don't).  For example, we've accepted BSD code into the project on many 
occasions, but you've never been able to build a BSD-licensed version of 
BusyBox.  In the case of older BusyBox code, anything that may be cleanly 
sourced from the existing 1.2.1 and earlier releases is under "GPLv2 or 
later" and remains so.  Any code that _cannot_ be sourced from those is 
dubious at best, and was most likely added under the new license, so the easy 
and safe thing to do is grab 1.2.1 if you're looking for code to add to a 
GPLv3 project.  That is the course of action I recommended in that case, back 
in my first reply to you.

In addition, all of my contributions to BusyBox (code I myself wrote) since I 
made the announcement have been licensed GPLv2 only, and my future 
contributions will all be licensed GPLv2 only.  My  compliation copyright on 
the next release will be licensed GPLv2 only, so I'm _adding_ code GPLv2, and 
the license I'm accepting contributions under is GPLv2.  An announcement to 
this effect goes on the website in the next few days, I'm prettymuch waiting 
until I have time to get together 1.2.2.  (Which will still be "GPLv2 or 
later", by the way.  That was _always_ the plan, and despite your tantrum I'm 
still doing it because I'm not petty.  You being out of the loop with BusyBox 
development is not my problem.)

I also plan to merge existing GPLv2 only code from outside the project (such 
as from kernel developers).  This is not "mere aggregation", this is part of 
the project, the whole of which must be under the same license.  I could not 
merge things like DietHotplug (which Erik ported to BusyBox, not me) and 
still keep the license on the project "GPLv2 or later".  You cannot merge 
GPLv2 only code into a project and then distribute the result as GPLv3.

I also talked to Erik, who said:

>  Re: Going GPLv2 only for BusyBox.
>  From: Erik Andersen <andersen at codepoet.org>
>  To: Rob Landley <rob at landley.net>
>
> Message was signed on 2006-09-13 11:11 pm with unknown key
> 0x5F9B643E30D39057. The validity of the signature cannot be verified.
> Status: No public key to verify the signature
>
>   On Wed Sep 13, 2006 at 11:07:51PM -0400, Rob Landley wrote:
> > I'm planning to simplify the BusyBox license to GPLv2 only tomorrow, so
> > that BusyBox 1.3.0 will be GPLv2 only when it ships.
> >
> > Are you ok with that?
>
> Sure, works for me.
>
> I, Erik Andersen, being of sound mind and body, do hereby declare
> that all code I have contributed to BusyBox that may at present
> be licensed GPLv2 or later, is hereby licensed GPLv2 only.
>
>  -Erik

I.E. he was being a bit silly, but I'd call that a "yes" on the question of 
marking all of his code GPLv2 in the next release.  (This was not legally 
required, since GPLv2 only is a valid subset of GPLv2 or later.  This was a 
courtesy to a man I greatly respect.)

I've been policing and simplifying the license terms ever since I became 
maintainer.  I'm the one who went out and found the SFLC (ok, I asked PJ of 
Groklaw, who recommended a really cool group of guys) to enforce the license.  
This is because the previous license enforcement mechanisms (the Hall of 
Shame and spare time from Erik's Dad's lawfirm) did'n't scale.  The current 
license simplification is a logical extension of previous moves 
like "http://busybox.net/downloads/patches/svn-15073.patch", and we discussed 
it on the list on and off for nine months before acting on it.

As part of my license policing, I've already found instances where we merged 
kernel code into BusyBox (for example, in libbb/loop.c), and instances of 
entire applets written by kernel developers (like Linus Torvalds) where we 
just assumed their license and our license was the same.  Linus announced six 
years ago (the Linux 2.4.0-pre8 announcement I linked to in a previous 
message was from 2000) that they were not the same, that his code was (and 
always had been) GPLv2 only.  Where does that leave our Torvalds-written 
applets?  In legal limbo, possibly.  GPL clause 9 vs the author's stated 
intentions, 6 years after the fact...  Tough call, ask a judge.  Recently, 
Erik stripped down diethotplug and submitted it to me for inclusion in 
BusyBox without ever noticing that it was GPLv2 only (I'm the one who spotted 
that, and only because I was looking).  It's a very, very easy mistake to 
make, because "GPLv2" vs "GPLv2 or later" is just too darn subtle a 
distinction to notice unless you're explicitly looking for it.  Did anything 
else slip in on his watch?  Did anything else slip in on my watch?  I 
honestly don't know.

In order to be sure that we haven't _already_ sucked in GPLv2 only code (and 
remove it if we did), I would have to audit the codebase.  You're complaining 
about me auditing an old version of BusyBox with 87 files totalling 322,259 
bytes (over half of which is in the two files "gzip.c" and "zcat.c", which I 
could simply compare with the old external version they came from).  The 
current version of BusyBox has 889 files totalling 5,543,620 bytes.  That's 
an order of magnitude more work, and I ain't doin' it.

Working on BusyBox requires a strong drive to simplify and remove unnecessary 
duplication.  We spend more time cleaning up and optimizing existing code 
than writing new code, and most of the new code we write is _rewrites_ to 
replace stuff we've already got with smaller versions.  After a while, this 
naturally extends itself to things like the license.  I realize that you 
don't have this drive.  You also haven't touched BusyBox in a decade.  I 
believe these to be related.

After you explicitly objected to "your code" being licensed GPLv2 only, I 
started doing some checking.  And I found two things:

The first thing I found is that the license statement in BusyBox 0.25 said 
only (at the end of LICENSE):

> This program suite may be distributed under the GNU General Public License.

No version number.  The GPL itself says this about permission grants with no 
version number:

>   9. The Free Software Foundation may publish revised and/or new versions
> of the General Public License from time to time.  Such new versions will
> be similar in spirit to the present version, but may differ in detail to
> address new problems or concerns.
>
> Each version is given a distinguishing version number.  If the Program
> specifies a version number of this License which applies to it and "any
> later version", you have the option of following the terms and conditions
> either of that version or of any later version published by the Free
> Software Foundation.  If the Program does not specify a version number of
> this License, you may choose any version ever published by the Free
> Software Foundation.

The last sentence is relevant here.  I may choose the version.  And I'm 
choosing GPLv2.  Now according to the _original_ permission grant (on a 
project where you weren't the only copyright holder), we could technically 
have choosen GPLv1.  Erik dropped GPLv1 when he moved the project to an 
explicit GPLv2 or later (http://busybox.net/downloads/svn-49.patch), and you 
haven't expressed outrage over that yet.  I am now performing the 
corresponding action of dropping versions _after_ GPLv2 (which don't even 
_exist_ yet), and sticking with the only version of the license that has ever 
mattered for this project.

The second thing I found when I started checking is that there's very little 
code left from 0.25.  In the course of writing the email I didn't send on 
friday, I did what are now phases 1 and 2 of the still incomplete forensic 
analysis.  (It took about 15 minutes, most of which was doing something else 
while "svn annotate" ran on each file.)

The initial reason I did this was to find out exactly what we were arguing 
about.  If I _did_ put in a sheepdip.txt, what specific code would I list 
as "once touched by Bruce"?  When the answer came back "almost nothing", it 
turned into a deeper investigation to see if I'd missed anything.

Initially, I started looking at the gzip and gunzip files (far and away the 
biggest source of old code) since I've had a todo item to do a security audit 
of that stuff for ages.  The zlib code has had a dozen bugfix releases in the 
past decade, some of which I thought might apply to BusyBox.  In June of last 
last year I asked Mark Adler to put up the old zlib versions so I could do 
this comparison, and he was nice enough to do so (it's got a big "do not use 
this old code, it has security problems" warning but it's 
up "http://zlib.net/fossils/"), and I've been too busy to actually do the 
comparison ever since.  Seemed like a good opportunity, but imagine my 
surprise when I find out we're not even _using_ the zlib code, but a fork off 
a version of gzip released in _1993_.  And that the only modifications in the 
0.25 version was for the purpose of code removal.  That was something I 
needed to know anyway, as maintainer of the project, not just for license 
compliance reasons but potentially for security auditing.

By the time I was done comparing gzip.c and zlib.c, I'd already worked through 
about 2/5 of the old tree.  Doing the rest seemed like the obvious move 
(although it's still a to-do item rather than something I've actually 
bothered to finish yet), and since I hadn't yet found any significant code 
tracing back to Bruce a possible way to permanently end Bruce's nagging 
suggested itself.

By the way, trying out comparator is something I've been meaning to do since 
Eric (not Erik) wrote it, since he consulted me on its development (I was 
hanging out in pennsylvania at the time; my father and brother live less than 
an hour away from his house) but I'd never actually had an opportunity to try 
out the finished product.

Yes, this isn't too far from the kind of thing I do for fun anyway.  I believe 
I mentioned the whole "computer historian" thing? 
http://landley.net/history/mirror

Putting it all together, by the time I got to a good stopping point I had a 
pretty good idea that your leverage over the code is purely a matter of 
reputation, and that the number of lines of your old code that we're actually 
still _using_ was at the very least small enough we wouldn't miss it, and 
quite possibly nonexistent.

The approach I take to any code in the tree that has sufficient license 
concerns is to rip it out and write a new one.  If you'd been following the 
list, you'd know this.   This isn't anything _new_.  Now that you've 
explicitly said "However, it's free software, and Rob has the right to do 
what he did." I consider that part of it resolved, although I may complete 
the forensic analysis just because we have everything else in the svn 
history, and it's good for future license enforcement efforts to know where 
everything we're still using but which we _don't_ have in the SVN history 
came from.  (Again, part of the reason I was motivated to do it.  You merely 
annoyed me into doing it _now_, rather than putting it on the endless todo 
list.)

> > However, I take objection to being treated like hired help.
> I do not think of you as hired help. But before you cast that stone,
> think of how you're treating other folks on this project.

I'm treating everybody equally.  You're mad I'm not treating you specially.

> > How'd the presidency of Linux Capital Group work out for you?
> OK. If you insist. It's your mailing list.

I'm sorry, I shouldn't have gone there.  I should have held my tongue, the way 
I did on Friday.

This isn't about you or me, it's about BusyBox.  We differ on what's best for 
the project.  The only reason our difference of opinion matters is that I'm 
maintaining a version undergoing a lot of volunteer development and regular 
releases.  You are not.  I have repeatedly and consistently encouraged you to 
start your own fork (from any current release version, or any svn version up 
through 16112) if you disagree with me that strongly.  Instead, you want to 
change what I'm doing with the new versions I'm releasing, despite having 
failed to convince me through rational debate.  You want to direct my work.

I will, however, warn you that maintaining BusyBox requires a huge amount of 
work.  Enough so that Erik didn't have time to keep up with it, and I spend 
most evenings and weekends working on it even though I selected my current 
job because they were cool enough to let me spend half my time working on 
BusyBox.  Half-time is not enough.  I've been doing this "a lot" (not 
necessarily full time but a very prominent hobby) for three years already, 
and A) my to-do list for the project is longer than ever, and still growing, 
B) I find myself regularly cleaning up my own past mistakes as I learn more 
and figure out better ways to do stuff, C) I feel I could do a better job if 
I had more time and energy.

> >> However, it's free software, and Rob has  
> >> the right to do what he did.
> >>     
> >
> > Then why the public melodrama, on a list you have never previously been a 
> > member of?
> >   
> It takes both fuel and oxidizer to make a flame.

You're the one who came here.  I didn't go to you.  You're also the one who 
chose to do this on a public mailing list instead of in private email.

>     Thanks
> 
>     Bruce


Thank you for expressing your opinion.  I continue to disagree with you.

The next major version of BusyBox that I package and ship will be licensed 
GPLv2 only, because I believe it to be in the best interests of the project's 
future development and I'm the one maintaining it.  The older versions remain 
licensed under "GPLv2 or later", which are the licenses they were released 
under.  I plan to release one more bugfix release to the existing code 
(1.2.2) which will also be licensed "GPLv2 or later", but that's probably it 
under the old dual license.

Now that we've recapitulated phylogeny for this argument, I'm going to go do 
something else now.

Rob
-- 
Never bet against the cheap plastic solution.

This weekend's witch-hunt
Bruce Perens bruce at perens.com 
Wed Sep 20 06:17:54 UTC 2006 

Rob Landley wrote:
> All the new code I'm adding to BusyBox for the next release will be GPLv2 only.  
> This is both the code I'm adding, and the license I'm accepting patches under.
>   
This is your choice. I think it's unfortunate, but I do not see much
point in attempting to change your mind at this time. I think it's
important to keep other options open, and I'll make sure they are kept
open in my version of the program. I am betting that this will be
important someday, even to you.
> This was not legally required, since GPLv2 only is a valid subset of GPLv2 or later.
>   
IMO you may choose to combine pieces in a way that makes the GPL2 the
only valid license for the combined work, but - and this is where we
differ - you may not remove the "and any later version" from the various
individual contributions without the permission of their copyright
holders. Their declaration of the applicable license has all of the
legal weight of the license text itself, and nothing in the GPL or the
declaration gives anyone but the copyright holder the right to remove it.
> Linus announced six 
> years ago (the Linux 2.4.0-pre8 announcement I linked to in a previous 
> message was from 2000) that they were not the same, that his code was (and 
> always had been) GPLv2 only.  Where does that leave our Torvalds-written 
> applets?
We write down this stuff BECAUSE people can change their minds or even
just their interpretations. The "and any later version" is there in
writing, in the designation of applicable license for that version of
the kernel, and Linus can be held to it in court unambiguously. The GPL
section 9 is not necessary to make this so. That said, I'm not sure that
the minix filesystem is so important any longer.
> Did anything else slip in on his watch?  Did anything else slip in on my watch? I honestly don't know.
>   
This could be dealt with through a public notice process. Publish the
code and license with a call for objection by copyright holders. The
only gotcha is that SCO and its ilk could choose to make a false claim.
> I realize that you don't have this drive.
Some races can be won by taking a different route, rather than by being
faster or stronger. I think a much more distributed effort is possible.
I do not intend to work on this every evening, nor do I intend for
anyone else to have to do that. As VP of Sourcelabs I may be able to
make some new partnerships with companies that embed Busybox. Some of
them are already our customers. Not all of them are putting in what they
could.
> The last sentence is relevant here.  I may choose the version.
Yes, for the overall work. But you seem to believe that you have the
right to remove someone else's right to choose a different GPL version
to use with a particular fragment of code, where the copyright holder
has made the right to use that version available.
> I'm treating everybody equally.  You're mad I'm not treating you specially.
>   
Sorry, but I have to reject this. What I have asked for everyone should
have.
> I'm sorry, I shouldn't have gone there.  I should have held my tongue, the way 
> I did on Friday.
>   
OK, thank you for realizing that.

    Bruce

This weekend's witch-hunt
Rob Landley rob at landley.net 
Wed Sep 20 16:56:39 UTC 2006 

On Wednesday 20 September 2006 2:17 am, Bruce Perens wrote:
> Their declaration of the applicable license has all of the 
> legal weight of the license text itself,

The GPL has an anti-severability clause.  Their license declaration does not.  
(And if it did, you couldn't drop support for GPLv2 at some point in future, 
plus it would raise interesting questions of having to satisfy the conditions 
of _both_ licenses, when GPLv2 and GPLv3 aren't compatible.)

The copy that went through  _me_ had other redundant permission grants 
stripped off of it.  There are clean sources elsewhere (in the same 
directory, even) that have additional license grants, but that's not my 
problem.

And I did ask lawyers.  Would you like to go talk to the SFLC directly?  
Their email address is on their website.  I'm running out of patience to try 
to educate you with.

> > Linus announced six 
> > years ago (the Linux 2.4.0-pre8 announcement I linked to in a previous 
> > message was from 2000) that they were not the same, that his code was (and 
> > always had been) GPLv2 only.  Where does that leave our Torvalds-written 
> > applets?
> We write down this stuff BECAUSE people can change their minds or even
> just their interpretations. The "and any later version" is there in
> writing,

No, it is not.  You keep mouthing off about things you didn't check.  From 
BusyBox 0.25:

/*
 * mkswap.c - set up a linux swap device
 *
 * (C) 1991 Linus Torvalds. This file may be redistributed as per
 * the Linux copyright.
 */

Now let's take another of Linus's files: util-linux/mkfs_minix.c from current:

39   andersen /*
39   andersen  * mkfs.c - make a linux (minix) file-system.
39   andersen  *
39   andersen  * (C) 1991 Linus Torvalds. This file may be redistributed as 
per
39   andersen  * the Linux copyright.
39   andersen  */

And svn 39 was a looooong time ago.

Now if Linus _had_ said it could be used under GPL without citing any specific 
version --AS ALL YOUR CODE DID-- then according to clause 9 of GPLv2 we 
could have chosen _ANY_ version of GPL, including GPLv1.  So when Erik 
tightened the license to GPLv2 or later, all he was doing was dropping GPLv1.  
By your arguments, he's wasn't allowed to do that in the first place, all 
those years ago.  Your arguments do not match the current facts.

You're not arguing any coherent legal theory, you're merely repeating what you 
_want_ over and over.

I objected to your lack of any coherent legal theory earlier, when I pointed 
out that your position is not internally consistent.  You brushed it off, but 
the fact remains that you haven't even got logic on your side.  Just a 
burning need to be right.

> This could be dealt with through a public notice process.

It could be dealt with by throwing stuffed animals at it.  You're still 
arguing what you want, not a legal position.

> Publish the 
> code and license with a call for objection by copyright holders. The
> only gotcha is that SCO and its ilk could choose to make a false claim.

No, the gotcha is that it doesn't prove anything.  If a copyright holder in 
another country doesn't hear about the call, their copyright is not 
invalidated, and we haven't got the right to grant new licenses on their 
code.  By your logic my old "calculate internal rate of return" code (which I 
haven't touched since the late 90's but I vaguely remember sending to the 
gnucash project once upon a time) could be ripped out of GPL and put into BSD 
(and from there a proprietary product) simply because I didn't hear about the 
relicensing until afterwards and didn't object at the time (well I don't 
follow gnucash anymore).  This would _not_ stop me from filing a lawsuit.

Remember the guy who suddenly started enforcing his copyrights on "happy 
birthday" in the 1980's?  After _decades_ of not enforcing it?  Copyright 
doesn't have to be defended ot remain valid, you're confusing it with 
trademark law.  (Linux 0.12 was young enough with a small enough number of 
contributors that Linus _could_ contact them 
all.  BusyBox is not.)

You are a positive _fountain_ of bad legal advice.

> > I realize that you don't have this drive.
> Some races can be won by taking a different route, rather than by being
> faster or stronger.

Then do so.  I repeat for the...  5th time?  Fork the darn project if you care 
this much.  But GO AWAY.

> I think a much more distributed effort is possible.  
> I do not intend to work on this every evening, nor do I intend for
> anyone else to have to do that. As VP of Sourcelabs I may be able to
> make some new partnerships with companies that embed Busybox. Some of
> them are already our customers. Not all of them are putting in what they
> could.

Sounds like you're in an _excellent_ position to maintain a GPLv3 fork of the 
project then.  But I'm not doing it anymore.

> > The last sentence is relevant here.  I may choose the version.
> Yes, for the overall work. But you seem to believe that you have the
> right to remove someone else's right to choose a different GPL version
> to use with a particular fragment of code, where the copyright holder
> has made the right to use that version available.

If I merge a GPLv2 only patch in with a file, that file is GPLv2 only.  We 
touch every file in the tree an average of about twice a year with global 
function renames and such.

I remember back in 1996, I wanted to improve the CRC algorithm in something I 
was doing for IBM.  Their CRC table calculation was a page full of code, and I 
knew a way to calculate the table in two lines, which I'd come up with by 
simplifying the info-zip code when I was porting it to Java (shortly before 
Java 1.1 came out with the deflate algorithm in the library, rendering the 
whole thing moot to the point where I never finished it).  IBM's lawyers 
objected to using the algorithm from that source, and urged me to try to find 
it in a book somewhere instead.  (Yes, they were objecting over _two_lines_.  
This is where I learned some of this caution.)  I wound up leaving the code 
alone instead.

I have coworkers who do clearances for the Gutenberg project, and one of the 
tricks they use is to find old serial magazine versions of stories that 
predate the book, and prove that the book may have had its copyright renewed 
(under the old pre-berne convention laws requiring renewal) but the magazine 
version didn't.  And then they OCR the magazine version.  It's 99.9% the same 
material, but it's from a different source.  (P.S.  They point out that the 
filing on Happy Birthday was 1936, but wasn't the first publication, and if 
they could find the book with the earlier copy they could show that it wasn't 
renewed, which is separate from being defended and no longer a requirement on 
copyrights after 1989 when the enabling legislation for the US being a 
signatory to the Berne convention took effect.)

The original author of the file can decide to grant permission to use their 
code under CDDL, or OSL, or who knows what.  They can do this retroactively, 
after I get the copy that just says "GPLv2 or later".  I don't have to _add_ 
a permission grant to my copy for  the other licenses.  I may not even 
_know_.  I'm only required to document the set of licenses I actually use to 
distribute the thing, to prove that I had the right to distribute it.  Having 
multiple licenses gives you multiple options, but you only need one.  And the 
license I'm using is GPLv2.  Deal with it.

> > I'm treating everybody equally.  You're mad I'm not treating you 
> > specially.
>
> Sorry, but I have to reject this. What I have asked for everyone should
> have.

Your god complex is not my problem.  You certainly don't speak for _me_, and 
I'm sure I could find a few others if I bothered.  But one more try.

The 1.2.1 version still exists.  Any source code in the next -devel release 
that can still be used under GPLv3 must exist, in its entirety, in 1.2.1.  So 
they do have this.

What you're asking for is the same thing packaged in a different way, and a 
stupid way at that.  Anyone trying to cherry-pick code under one license out 
of a project under another license is on pretty shaky legal ground to start 
out with and had better be able to show their work.  We _do_ edit this code, 
regularly, right in the middle of it where you won't notice it without doing 
svn annotate, and after svn 16112 those changes are NOT available under 
GPLv3.  Any laywer will tell you that if there's a clean source you can go to 
that _won't_ raise these kind of questions, you should use that clean source 
if at all possible.  What you're asking for would only _encourage_ license 
violations.

I realize how desparately you want to undermine the GPLv2 only state of the 
next release of BusyBox.  I realize that you want GPLv3 to become the only 
licensed anyone uses.  But neither is going to happen.  This discussion 
serves no further purpose.

If you have any other questions, please ask them of the Software Freedom Law 
Center.  If you send them to me, I'll forward them to the SFLC so they can 
answer them.

Rob
-- 
Never bet against the cheap plastic solution.

This weekend's witch-hunt
Bruce Perens bruce at perens.com 
Wed Sep 20 17:41:59 UTC 2006 

Rob Landley wrote:
> The GPL has an anti-severability clause.  Their license declaration does not.
Sorry, this is way out of left field. A court has the power to sever a
license term if and only if it finds the license term to be unlawful.
That is the only way it happens. Third parties like you and me do not
have the power to arbitrarily sever terms that copyright holders have
put on their own property.
> (And if it did, you couldn't drop support for GPLv2 at some point in future,
Technical support? I guess that's just unclear wording. Once you put
something out under GPLv2, everyone has the right to use GPLv2 on that
particular piece, forever. There is no termination. You can't withdraw
it. But you don't have to help them in any way, if that's what you mean
by support.
> plus it would raise interesting questions of having to satisfy the conditions 
> of _both_ licenses, when GPLv2 and GPLv3 aren't compatible.)
>   
A complete work would have to be licensable under one license or the
other, not the logical union of the terms of both.
> The copy that went through  _me_ had other redundant permission grants 
> stripped off of it.  There are clean sources elsewhere (in the same 
> directory, even) that have additional license grants, but that's not my 
> problem.
>   
I really don't think this is the case.
> Would you like to go talk to the SFLC directly?
>   
I know them, talk with Eben regularly, had lunch with the entire staff
sometime last year. Since you insist, I will inquire with them.

    Thanks

    Bruce

Copyright 2006 http://lists.busybox.net/pipermail/busybox/