[git commit master] tune2fs: new applet by Vladimir. Only supports -L LABEL
Rob Landley
rob at landley.net
Tue May 11 04:04:48 UTC 2010
On Saturday 08 May 2010 17:15:35 Denys Vlasenko wrote:
> > >+++ b/util-linux/tune2fs.c
> > >@@ -0,0 +1,71 @@
> > >+/* vi: set sw=4 ts=4: */
> > >+/*
> > >+ * tune2fs: utility to modify EXT2 filesystem
> > >+ *
> > >+ * Busybox'ed (2009) by Vladimir Dronnikov <dronnikov at gmail.com>
> > >+ *
> > >+ * Licensed under GPLv2, see file LICENSE in this tarball for details.
> >
> > will have to be reimplemented for anything that wants "or later". Bad.
> >
> > Can anyone explain, _in detail_ what's going on there? What's the theory
> > behind that?
>
> There seems to be no concensus on GPLv2 v "GPLv2 or later".
Actually I wrote about this fairly extensively in 2006. Random example:
http://lists.busybox.net/pipermail/busybox/2006-September/058649.html
> 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.
Fundamentally, BusyBox went GPLv2 only because it had sucked in code from
GPLv2 only projects (such as those writen by Linux kernel developers) for a
full decade. (Remember, Linus clarified the kernel license 10 years ago now.)
BusyBox as a whole has only been distributable under GPLv2 only for a long
time because of that, it was just a moot point until GPLv3 came out because
the "or later" didn't actually mean anything yet, there was no other license
it actually applied to, so there was no other license it could be distributed
under.
In 2006, we made it explicit: the project is only distributable under GPLv2,
thus the default license for busybox contributions is "GPLv2 only". (Some of
us are embedded developers, and like to simplify things. If the only license
the project can be distributed under is GPlv2 only, then my code is
contributed GPLv2 only.)
However, people who contribute code can license it however they want. (For
example, my initial bunzip2 rewrite from way back is under LGPLv2 at
http://landley.net/code/micro-bunzip.c.) But if one of those licenses isn't
GPlv2 then it's not compatible with BusyBox and we can't incorporate it. By
contributing it here, they implicitly license it under GPLv2.
Some of the code we incorporate has always been dual licensed. That dual
license does not apply to the project as a whole, only to some of the
component copyrights of the derived work. Think about how rather a lot of our
applets started out BSD licensed:
$ find . -name "*.c" | xargs grep Berkeley | wc -l
37
Does that mean you can copy out any changes we make to the busybox version of
those applets, and put them into a BSD licensed version? Not really, no: if
our changes are under GPLv2, the resulting derived work may only be
distributed under GPLv2. If the author hasn't explicitly stated what other
licenses the code might be under, the ONLY license you can be sure they've
issued is GPLv2 only.
You can ask the authors if they'll explicitly grant additional licenses so
that you use the changes under that other license, or if they're trivial
enough not to be copyrightable or fall under scenes a faire or some such, you
can go that route. But code must be under GPLv2 to be incorporated into
BusyBox and _any_ other license must be explicitly affirmed by every other
author who ever touches that file.
So basically, "GPLv2 or later" license notices on BusyBox code are about as
useful as the old BSD notices on some of the code. They're historical notices
that some of the components used to have another license, but that license has
probably bit-rotted. If you want to re-use this code under another license,
you have to do forensic analysis, go through source control to see who changed
what, and track down the authors to see if they're ok with the license you
want to use.
Essentially, you're sourcing non-GPLv2 code out of a GPLv2 project. If you
wouldn't do it out of the Linux kernel, why would you do it out of BusyBox?
And yes, some of files in the Linux kernel have the "or later" notice:
$ find linux -name "*.c" | \
xargs grep "or (at your option) any later version" | wc -l
1149
But the Linux kernel itself emphatically does not.
Rob
--
Latency is more important than throughput. It's that simple. - Linus Torvalds
More information about the busybox
mailing list