ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Jeremy Allison <jra@samba.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: ksummit-discuss@lists.linuxfoundation.org
Subject: Re: [Ksummit-discuss] [CORE TOPIC] GPL defense issues
Date: Fri, 26 Aug 2016 18:30:15 -0700	[thread overview]
Message-ID: <20160827013015.GA21071@jeremy-acer> (raw)
In-Reply-To: <CA+55aFys2c7ts_qoojZANfk2PmPqwOSuN3j1L-Eb_75NYZOP_A@mail.gmail.com>

On Fri, Aug 26, 2016 at 05:19:55PM -0700, Linus Torvalds wrote:
> On Fri, Aug 26, 2016 at 4:58 PM, Jeremy Allison <jra@samba.org> wrote:
> > Can you describe the conditions you personally would feel justify
> > filing a lawsuit over GPL non-compliance ?
> 
> You asked Ted, but I'll answer for one of the conditions for me: that
> it is not some gray area. It has to be a pretty damn clear violation.
> 
> Quite frankly, I've seen a lot of people be confused about what the
> GPLv2 actually says over the years. The most common confusion is the
> whole thing about "linking". It gets mentioned a lot.
> 
> Not only is "linking" not something that has any legal meaning, but
> the GPLv2 doesn't even mention it.  Yet people _continually_ talk
> about linking.
> 
> I think the confusion actually comes from the FSF itself, and the
> original LGPL discussions, where the FSF at some point tried to
> convince people that linking against a GPL library somehow meant that
> the end result was a "derived work" in a very different way than "mere
> aggregation". It comes from some GPL maximalist argument, and it's
> where the whole LGPL came from, after all.
> 
> So a *lot* of people think that "linking" means that the GPLv2 is
> automatically in effect.
> 
> But what the license says - and more importantly, what copyright law
> itself actually is all about - is not linking, but "derived work".
> 
> And there's a _lot_ of gray areas there, and no, technical measures
> does not make something derived or not.
> 
> In the kernel, we have tried to kind of clarify our thinking with the
> whole module interface, and the EXPORT_SYMBOL_GPL() distinction - the
> argument being one of both intent (which does have some legal weight,
> although the key word there is "some") and just to clarify that some
> parts are so clearly "internal Linux implementation" that if you need
> them, you're clearly not an independent module.
> 
> But everybody should know that that is not necessarily black and white
> either. Are GPL'd shim modules that use that EXPORT_SYMBOL_GPL() and
> thjen export something else (non-GPL'd) that uses them legal? They
> certainly fail the _smell_ test. A technical trick doesn't really have
> any legal meaning. If I were a judge (and I'm not, not even a lawyer),
> I'd certainly frown on it, but I might not take the initial
> EXPORT_SYMBOL_GPL() distinction all that seriously _either_.
> 
> Anyway, end result is that there's a lot of very murky "what is
> actually a derived work" issues.
> 
> I'd not be interested in ever having a lawsuit to "clarify" such an
> issue. I don't think it would really clarify anything anyway (it will
> just set one boundary in one case for one specific thing).
> 
> So it has to be a pretty damn obvious violation.

So it's a "I know it when I see it" boundary, like porn or
indecency :-).

Actually, that was pretty damn helpful. At least it shows there
is a "this far and no further" line beyond which you think a
lawsuit can be appropriate. I was getting worried that there
was no violation so egregious that you'd think was worth legal
action.

That way lies BSD-land.. (and the mountains of Madness :-).

Actually, your feelings are pretty similar to mine (other than
the harsh words about the FSF, but then again they did kill
your dog :-).

I try and set a similar set of boundaries when it comes to
Samba - which can load the equivalent of kernel modules via
our pluggable VFS interface.

My rules are:

1). In kernel - not my business (unless you're crazy enough
to try and put the entirety of Samba in-kernel) - go forth
with my blessings.

2). In kernel-but with "special“ system calls used by Samba
VFS modules. Here I want the source code for the Samba VFS
module released, but what's in the kernel is your business.

Interestingly enough there have been some vendors who tried
to argue they could keep their system calls secret by hiding
the Samba VFS code - but we ended up with a successful outcome
(in one case by getting them to commit next release to a
fully specified syscall interface as the one they were using
was too ugly to support long term).

3). In a separate process - but Samba talks to it via IPC.
Still not my code, but it's getting closer depending on how
closely tied the IPC is. If your daemon simply won't do anything
without Samba talking to it, then I'd argue this is probably
a derived work. But it depends. This is the most difficult
case, similar to your "independent module" question above.

I usually say if the IPC interface has other uses than just
Samba (i.e. the NFS server uses it too), then it's not a
derived work. I've successfully gotten several companies
to architect their solutions this way to avoid any possible
violation questions. It usually gets them to create a better
solution as well, as thinking about an interface having to
be used by multiple consumers almost always ends up in a better
design.

4). Code modifications to Samba itself. You code is *mine*.
Unless you're Amazon of course, who run Samba4 Active Directory
in their cloud and never ship to their customers :-). Even then
they're slowly but surely getting their changes upstream by
contracting with one of the vendors who employ Samba Team
members.

There are many other grey areas, but the main thing I try
and do by enumerating these rules is to give clarity to
corporations wanting to use the code.

The only time we've ever come close to a lawsuit was a long
time ago with a company that just renamed the source code
files, added a license manager and tried to sell us as a
proprietary solution ! Even then it was only after we contacted
their main purchaser to let them know what they were buying
that these guys went back to stealing car radios, or whatever
previous petty criminality they used to make a living doing.

Having said that these are just my opinions, and I know there
are differing opinions within the Samba Team developers.

The main thing is that we all reach consensus before asking
Conservancy to take any action on our behalf. The other Team
developers trust Conservancy to act in a responsible way.

The way to ensure that happens is to join the Conservancy
"GPL Compliance Project For Linux Developers" so your
individual voice is heard. I'm sure they'd love to have
you ! :-).

  reply	other threads:[~2016-08-27  1:30 UTC|newest]

Thread overview: 173+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-26 19:33 Jeremy Allison
2016-08-26 21:19 ` David Woodhouse
2016-08-26 21:51 ` Linus Torvalds
2016-08-26 22:42   ` Jeremy Allison
2016-08-26 23:02     ` Theodore Ts'o
2016-08-26 23:58       ` Jeremy Allison
2016-08-27  0:19         ` Linus Torvalds
2016-08-27  1:30           ` Jeremy Allison [this message]
2016-08-27  7:00           ` David Woodhouse
2016-08-26 23:54   ` Bradley M. Kuhn
2016-08-27 16:26     ` Greg KH
2016-08-27 21:18       ` Bradley M. Kuhn
2016-08-28  1:43         ` James Bottomley
2016-08-28  2:02           ` Bradley M. Kuhn
2016-08-28  3:10             ` James Bottomley
2016-08-28  4:42               ` Bradley M. Kuhn
2016-08-28 20:51                 ` James Bottomley
2016-08-28  4:24           ` Jeremy Allison
2016-08-28 12:55             ` Theodore Ts'o
2016-08-28 14:06               ` David Woodhouse
2016-08-29  6:26                 ` Greg KH
2016-08-29 11:10                   ` Harald Welte
2016-08-30 17:38                   ` Mark Brown
2016-08-30 18:04                     ` Luis R. Rodriguez
2016-08-30 18:36                       ` Josh Triplett
2016-08-28 15:43               ` Jeremy Allison
2016-08-28 19:36                 ` Theodore Ts'o
2016-08-28 20:36                   ` Linus Torvalds
2016-08-29 15:35                     ` Steven Rostedt
2016-08-29 15:51                       ` Jiri Kosina
2016-08-29 19:45                         ` Karen Sandler
2016-08-29 16:26                     ` Jeremy Allison
2016-08-30 17:13                     ` Luis R. Rodriguez
2016-08-28 16:26               ` Bradley M. Kuhn
2016-08-28 19:58                 ` Theodore Ts'o
2016-08-28 22:54                   ` Bradley M. Kuhn
2016-08-29  9:01                     ` Harald Welte
2016-08-30 16:15               ` Luis R. Rodriguez
2016-08-30 16:45                 ` Greg KH
2016-08-30 17:20                   ` Luis R. Rodriguez
2016-08-30 18:15                     ` Greg KH
2016-08-30 19:17                       ` Luis R. Rodriguez
2016-08-31  2:58                         ` Theodore Ts'o
2016-08-31 18:51                           ` Luis R. Rodriguez
2016-08-31  8:37                         ` Greg KH
2016-08-31 18:53                           ` Luis R. Rodriguez
2016-08-30 23:19                       ` Luis R. Rodriguez
2016-08-30 17:49                   ` Jeremy Allison
2016-08-30 18:17                     ` Greg KH
2016-08-30 18:28                       ` Jeremy Allison
2016-08-30 17:10                 ` James Bottomley
2016-08-30 17:16                   ` Luck, Tony
2016-08-30 17:40                     ` Luis R. Rodriguez
2016-08-30 17:37                   ` Luis R. Rodriguez
2016-08-28 15:37             ` James Bottomley
2016-08-28  5:09           ` Jeremy Allison
2016-08-27 23:02       ` Jeremy Allison
2016-08-27 23:13         ` Linus Torvalds
2016-08-27 23:29           ` Jeremy Allison
     [not found]           ` <CAPeXnHsTskZhwS6Ckp=xRzxbwax9FrMc5gRFmFmySY-Pq3KexA@mail.gmail.com>
     [not found]             ` <CAPeXnHtqc5fYUV89H2E4g-SQmFNmc=3bj1NiCRVAWg=WoP0R7g@mail.gmail.com>
2016-08-27 23:30               ` Matthew Garrett
2016-08-27 23:49                 ` Linus Torvalds
2016-08-28  0:02                   ` Matthew Garrett
2016-08-28  0:16                     ` Linus Torvalds
2016-08-29 16:57                       ` Matthew Garrett
2016-08-27 23:35           ` Jeremy Allison
2016-08-28  4:47             ` Theodore Ts'o
2016-08-28  5:17               ` Jeremy Allison
2016-08-28  5:38               ` Bradley M. Kuhn
2016-08-28  2:58         ` Steven Rostedt
2016-08-28  4:34           ` Jeremy Allison
2016-08-28  8:04             ` Greg KH
2016-08-28 15:58               ` Jeremy Allison
2016-08-28  3:18         ` James Bottomley
2016-08-28  4:40           ` Jeremy Allison
2016-08-28  6:25             ` David Woodhouse
2016-08-29 11:24       ` Maxime Ripard
2016-08-29 11:50         ` Greg KH
2016-08-30  9:57           ` Maxime Ripard
2016-08-30 15:33             ` Arnd Bergmann
2016-08-30 16:04               ` Guenter Roeck
2016-08-30 19:44                 ` Arnd Bergmann
2016-08-31  8:24                   ` Geert Uytterhoeven
2016-08-31  9:28                   ` Maxime Ripard
2016-08-30 16:55               ` Mark Brown
  -- strict thread matches above, loose matches on Subject: below --
2016-08-26  2:46 Linus Torvalds
2016-08-26  3:07 ` Matthew Garrett
2016-08-26  4:25   ` Linus Torvalds
2016-08-26  4:48     ` Matthew Garrett
2016-08-26  5:24       ` Linus Torvalds
2016-08-26  5:35         ` Matthew Garrett
2016-08-26 15:28         ` Rik van Riel
2016-08-26 16:34           ` Linus Torvalds
2016-08-26 16:48             ` Rik van Riel
2016-08-26 17:21               ` Linus Torvalds
2016-08-26 17:49                 ` Matthew Garrett
2016-08-26 19:03                   ` Linus Torvalds
2016-08-26 19:29                     ` Rik van Riel
2016-08-26 19:45                     ` Matthew Garrett
2016-08-26 19:53                       ` James Bottomley
2016-08-26 19:55                         ` Matthew Garrett
2016-08-26 19:58                           ` James Bottomley
2016-08-26 21:41                         ` Theodore Ts'o
2016-08-26 23:04                           ` Luis R. Rodriguez
2016-08-26 23:34                             ` Theodore Ts'o
2016-08-27  0:03                               ` Luis R. Rodriguez
2016-08-27  4:00                           ` Josh Triplett
2016-08-26 19:59                       ` Linus Torvalds
2016-08-26 16:52             ` Linus Torvalds
2016-08-26 19:36             ` Bradley M. Kuhn
2016-08-26 20:09               ` Jeremy Allison
2016-08-26 15:23 ` Karen Sandler
2016-08-26 16:37   ` James Bottomley
2016-08-26 17:19     ` Karen Sandler
2016-08-27 15:43       ` Greg KH
2016-08-27 17:14         ` Bradley M. Kuhn
2016-08-27 18:47           ` Julia Lawall
2016-08-27 18:35 ` Wolfram Sang
2016-08-27 22:50   ` Linus Torvalds
2016-08-28  7:47   ` Greg KH
2016-08-28  9:54     ` David Woodhouse
2016-08-29 17:42     ` Rik van Riel
2016-08-29 18:49       ` Linus Torvalds
2016-08-29 19:04         ` James Bottomley
2016-08-30 18:00           ` Luis R. Rodriguez
2016-08-30 18:25             ` James Bottomley
2016-08-30 19:31               ` Luis R. Rodriguez
2016-08-29 20:19         ` Wolfram Sang
2016-08-29 21:31       ` Theodore Ts'o
2016-08-29 21:52         ` Matthew Garrett
2016-08-29 21:59         ` Linus Torvalds
2016-08-29 23:05           ` Guenter Roeck
2016-08-30  4:32           ` Bradley M. Kuhn
2016-08-24  5:30 Karen Sandler
2016-08-24 13:08 ` Greg KH
2016-08-24 14:25   ` Karen Sandler
2016-08-24 14:39     ` Josh Triplett
2016-08-24 15:21       ` Mark Brown
2016-08-24 16:54       ` Randy Dunlap
2016-08-24 17:39       ` Greg KH
2016-08-24 17:54         ` Luis R. Rodriguez
2016-08-24 18:30         ` Wolfram Sang
2016-08-24 19:57           ` Greg KH
2016-08-24 20:19             ` James Bottomley
2016-08-24 21:13             ` Karen Sandler
2016-08-24 22:01               ` Theodore Ts'o
2016-08-24 17:38     ` Greg KH
2016-08-24 14:38   ` Daniel Vetter
2016-08-24 14:44     ` Josh Triplett
2016-08-24 15:29   ` David Woodhouse
2016-08-24 17:47     ` Greg KH
2016-08-24 18:24       ` James Bottomley
2016-08-24 20:41         ` Greg KH
2016-08-24 21:09           ` Jiri Kosina
2016-08-24 21:21             ` James Bottomley
2016-08-24 21:33               ` Jiri Kosina
2016-08-24 21:42                 ` James Bottomley
2016-08-24 21:46                   ` Jiri Kosina
2016-08-25 16:27               ` Rik van Riel
2016-08-24 20:50       ` Bradley M. Kuhn
2016-08-24 21:54         ` Greg KH
2016-08-25  4:06           ` Bradley M. Kuhn
2016-08-25  6:37             ` Theodore Ts'o
2016-08-25  7:03               ` Josh Triplett
2016-08-25 20:03                 ` Dave Airlie
2016-08-25 20:20                   ` James Bottomley
2016-08-25 20:28                     ` Dave Airlie
2016-08-26  0:59             ` Greg KH
2016-08-26  2:30               ` Matthew Garrett
2016-08-26 16:34                 ` Luck, Tony
2016-08-26 11:49               ` James Bottomley
2016-08-28  7:48                 ` Wolfram Sang
2016-08-26 12:03             ` James Bottomley
2016-08-26 12:33               ` Christoph Hellwig

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=20160827013015.GA21071@jeremy-acer \
    --to=jra@samba.org \
    --cc=ksummit-discuss@lists.linuxfoundation.org \
    --cc=torvalds@linux-foundation.org \
    /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