From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 0/3] Support for out-of-tree Buildroot customization
Date: Sun, 15 Sep 2013 00:16:13 +0200 [thread overview]
Message-ID: <20130914221613.GA3444@free.fr> (raw)
In-Reply-To: <523388B6.7090305@mind.be>
Arnout, All,
Once again, I am not a lawyer, and the below is not legal advice.
Anyone sane would consult a lawyer for a definitive legal counsel.
On 2013-09-13 23:50 +0200, Arnout Vandecappelle spake thusly:
> On 13/09/13 00:12, Yann E. MORIN wrote:
> >On 2013-09-13 00:04 +0200, Arnout Vandecappelle spake thusly:
> [snip]
> >>but the GPL is pretty
> >>clear on this:
> >>
> >>"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."
> >>
> >> i.e. you can distribute the source of buildroot itself separately from your
> >>external directory.
> >
> >Yes, but I believe BR2_EXTERNAL *is* a derived work of Buildroot, so as
> >such should be licensed under a license compatible with Buildroot's.
> >
> >> As long as your external stuff merely aggregates with the GPL'd stuff under
> >>buildroot, there shouldn't be an issue.
> >
> >But that's not aggregation in my opinion, since it does leverage all or
> >parts of the Buildroot infrastrucutre, and was clearly written with this
> >intent, and as such can not be considered mere aggregation.
> >
> >Of course, all this only applies _if and when_ BR2_EXTERNAL gets
> >distributed to a third party.
>
> The more I think about it, the more confused I get :-) Although your other
> reply to Andy sums things up pretty clearly.
>
> Let me try out a few scenarios (I'm making things up as I go here).
>
> I have made some changes to buildroot, and I have also made an external
> tree.
>
>
> 1. I want to distribute the modified buildroot tree to someone. Do I also
> have to make the external one available?
>
> => No, because the buildroot tree in fact doesn't refer to the external
> tree. You run "BR2_EXTERNAL=... make".
Agreed, I think.
> 2. I distribute a rootfs which contains a GPL program (bash). Do I have to
> make the buildroot tree available?
>
> => Yes, because I have to make the build scripts for bash available, and
> buildroot is the build script that I've used.
Yes, because of section 3 of the GPL this program is licensed under.
Although strict compliance does not _require_ you to distribute your
Buildroot tree (since by giving the 'make' commands would be enough),
giving your Buildroot tree makes this so much easy that you would
probably want to do that rather than extract the commands run by
Buildroot.
> 3. I use buildroot to build lua. I copy the lua executable out of the
> target/ tree and distribute it. Do I have to make the buildroot tree
> available?
>
> => No, because lua is MIT licensed.
Indeed, no. But that does not preclude any other reason why you would
have to distribute your Buildroot tree (eg. case 2, above).
> 4. I distribute a rootfs which contains a GPL program (bash). It also
> contains a proprietary program (foo). I have added a foo.mk file to the
> buildroot tree to build my proprietary program. Do I have to make the
> modified buildroot tree available?
>
> => Probably not. I have to make the build script for bash available, but
> the original buildroot tree already does the job.
>
> I believe that this reasoning holds regardless of whether the foo.mk is
> added directly in the buildroot tree or through BR2_EXTERNAL (or through
> override.mk).
These are muddy waters.
If the unmodified Buildroot tree is enough to rebuild the GPL program,
then I would not see any valid reason to object.
But you'd have to have a *very good* process that ensures that your
Buildroot modifications do *not* impact the build of the GPL program.
A very good process, indeed, as soon as your team is more than a (very)
few people.
> 5. I add a proprietary binary to the default skeleton and distribute the
> rootfs built by buildroot. Do I have to make the modified buildroot with the
> proprietary binary available?
>
> => I don't think so, because the proprietary binary is merely aggregated
> with the rest of the buildroot-generated stuff.
Same answer as case 4, above. Be sure to have a very good process.
> 6. Can I give the buildroot tree + the external tree to someone else?
>
> => Yes, but only under the GPL - the GPL applies to the external tree as
> well.
(Note: when I say 'BR2_EXTERNAL', I'm speaking about the content of the
directory pointed to by the value of the variable BR2_EXTERNAL, unless
otherwise stated.)
That's all I was arguing about: BR2_EXTERNAL is a derived work of
Buildroot, so is bound to the same licensing terms as Buildroot is.
Since Buildroot's license is the GPLv2, BR2_EXTERNAL is covered by the
GPLv2.
Since the GPLv2 is a license which terms apply at the time of
distribution, as long as you do not distribute BR2_EXTERNAL, you are
free to do whatever you want with BR2_EXTERNAL. But as soon as you
distribute BR2_EXTERNAL (either because you decide to do so on your own
will, or because you are required to, as in case 2, above), you are
bound to distribute it under the terms of the GPLv2 (or arguably under a
license that is compatible with the GPLv2, eg. BSD).
Now let me add a few more cases:
7. I add a new package to Buildroot, for a GPL program, but do so in
BR2_EXTERNAL.
Do I have to distribute my BR2_EXTERNAL?
Do I have to distribute my Buildroot tree?
=> Yes to both questions, for the same reasons as case 2, above.
8. My BR2_EXTERNAL contains the package described in case 7, above, plus
a package for a proprietary program.
Can I expunge the package for the proprietary program from BR2_EXTERNAL
before I distribute it?
=> Yes, this is the same as cases 4 and 5, above.
====
Also, I was wondering if we could not have BR2_EXTERNAL (the variable)
be a list of external directories (colon-separated, a-la PATH)?
I would use it that way:
BR2_EXTERNAL="/path/to/my/local/GPL/packages"
BR2_EXTERNAL+=":/path/to/my/proprietary/packages"
export BR2_EXTERNAL
make ....
This would even make it much easier to separate proprietary packages, so
they do not leak, while making it easy to comply for GPL-like packages.
Thoughts?
====
> After thinking about it this much, it looks like the buildroot license is a
> lot more lenient than I first thought. But of course, I don't really now.
I don't believe you could call the GPLv2 'lenient'. In fact I would call
it anything but lenient: anything that is a derived work of Buildroot is
covered by its license.
Note: the target rootfs is *not* a derived work of Buildroot.
> Maybe we should organize a discussion about this in the legal track at
> FOSDEM.
Yes, that would make for a very good case on the (L)GPL.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2013-09-14 22:16 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-08 13:15 [Buildroot] [PATCH 0/3] Support for out-of-tree Buildroot customization Thomas Petazzoni
2013-09-08 13:15 ` [Buildroot] [PATCH 1/3] Makefile: factorize *config dependencies Thomas Petazzoni
2013-09-11 2:06 ` rjbarnet at rockwellcollins.com
2013-09-11 17:39 ` Yann E. MORIN
2013-09-08 13:15 ` [Buildroot] [PATCH 2/3] Add support for BR2_EXTERNAL Thomas Petazzoni
2013-09-11 2:03 ` rjbarnet at rockwellcollins.com
2013-09-11 17:03 ` Yann E. MORIN
2013-09-11 17:12 ` Ryan Barnett
2013-09-12 21:05 ` Arnout Vandecappelle
2013-09-12 21:30 ` Ryan Barnett
2013-09-12 21:41 ` Arnout Vandecappelle
2013-09-12 21:51 ` Ryan Barnett
2013-09-12 21:57 ` Arnout Vandecappelle
2013-09-12 22:11 ` Ryan Barnett
2013-09-13 20:56 ` Arnout Vandecappelle
2013-09-14 5:29 ` Thomas Petazzoni
2013-09-11 2:07 ` rjbarnet at rockwellcollins.com
2013-09-12 21:04 ` Arnout Vandecappelle
2013-09-13 3:48 ` Thomas Petazzoni
2013-09-13 6:43 ` Tzu-Jung Lee
2013-09-13 7:10 ` Thomas Petazzoni
2013-09-13 7:47 ` Tzu-Jung Lee
[not found] ` <CAC2S8kiHUwNFprvvYd85UEGjDJhEX0Jgtb4e7Pd1vwwFGF7m_w@mail.gmail.com>
2013-09-12 21:53 ` [Buildroot] Fwd: " Ryan Barnett
2013-09-08 13:15 ` [Buildroot] [PATCH 3/3] docs/manual: add explanations about BR2_EXTERNAL Thomas Petazzoni
2013-09-11 2:09 ` rjbarnet at rockwellcollins.com
2013-09-12 21:46 ` Arnout Vandecappelle
2013-09-13 6:53 ` Thomas Petazzoni
2013-09-11 1:32 ` [Buildroot] [PATCH 0/3] Support for out-of-tree Buildroot customization rjbarnet at rockwellcollins.com
2013-09-11 7:17 ` Thomas Petazzoni
2013-09-11 15:55 ` Ryan Barnett
2013-09-11 17:27 ` Yann E. MORIN
2013-09-12 7:54 ` Thomas De Schampheleire
2013-09-12 18:21 ` Thomas Petazzoni
2013-09-12 18:25 ` ANDY KENNEDY
2013-09-12 18:33 ` Thomas Petazzoni
2013-09-12 18:44 ` ANDY KENNEDY
2013-09-12 22:04 ` Arnout Vandecappelle
2013-09-12 22:12 ` Yann E. MORIN
2013-09-13 21:50 ` Arnout Vandecappelle
2013-09-14 22:16 ` Yann E. MORIN [this message]
2013-09-16 15:43 ` ANDY KENNEDY
2013-09-16 17:30 ` Yann E. MORIN
2013-09-16 18:26 ` Thomas Petazzoni
2013-09-16 18:58 ` ANDY KENNEDY
2013-09-16 16:21 ` [Buildroot] Is GPLv2 the right license for Buildroot? Thomas Petazzoni
2013-09-16 17:08 ` Yann E. MORIN
2013-09-16 17:45 ` ANDY KENNEDY
2013-09-16 18:01 ` Thomas Petazzoni
2013-09-16 18:16 ` Yann E. MORIN
2013-09-16 21:17 ` Peter Korsgaard
2013-09-18 1:50 ` Jason Rennie
2013-09-18 7:22 ` Peter Korsgaard
2013-09-18 22:09 ` Yann E. MORIN
2013-09-19 0:25 ` Jason Rennie
2013-09-19 17:54 ` Yann E. MORIN
2013-09-16 17:58 ` Thomas Petazzoni
2013-09-16 18:15 ` Yann E. MORIN
2013-09-16 18:24 ` Thomas Petazzoni
2013-09-16 18:56 ` ANDY KENNEDY
2013-09-16 20:04 ` Yann E. MORIN
2013-09-17 4:17 ` Thomas Petazzoni
2013-09-16 19:50 ` Grant Edwards
2013-09-16 20:15 ` Yann E. MORIN
2013-09-18 1:52 ` Jason Rennie
2013-09-16 19:53 ` Arnout Vandecappelle
2013-09-16 21:13 ` Peter Korsgaard
2013-09-16 21:12 ` Peter Korsgaard
2013-09-17 4:44 ` Thomas Petazzoni
2013-09-17 14:53 ` Grant Edwards
2013-09-17 15:17 ` Jeremy Rosen
2013-09-17 15:22 ` Grant Edwards
2013-09-17 15:29 ` Peter Korsgaard
2013-09-16 18:56 ` [Buildroot] [PATCH 0/3] Support for out-of-tree Buildroot customization Arnout Vandecappelle
2013-09-12 22:07 ` Yann E. MORIN
2013-09-12 22:28 ` ANDY KENNEDY
2013-09-12 22:47 ` Yann E. MORIN
2013-09-15 13:18 ` Thomas De Schampheleire
2013-09-12 21:51 ` Yann E. MORIN
2013-09-13 7:35 ` Thomas De Schampheleire
2013-09-13 15:55 ` Ryan Barnett
2013-09-12 21:50 ` Yann E. MORIN
2013-09-12 18:18 ` Thomas Petazzoni
2013-09-12 22:24 ` Yann E. MORIN
2013-09-11 5:00 ` Baruch Siach
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130914221613.GA3444@free.fr \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox