linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>
Cc: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com,
	bp@alien8.de, linux@arm.linux.org.uk, mhiramat@kernel.org,
	masami.hiramatsu.pt@hitachi.com, jbaron@akamai.com,
	heiko.carstens@de.ibm.com, ananth@linux.vnet.ibm.com,
	anil.s.keshavamurthy@intel.com, davem@davemloft.net,
	realmz6@gmail.com, x86@kernel.org, luto@amacapital.net,
	keescook@chromium.org, torvalds@linux-foundation.org,
	gregkh@linuxfoundation.org, rusty@rustcorp.com.au,
	alan@linux.intel.com, dwmw2@infradead.org, arnd@arndb.de,
	ming.lei@canonical.com, linux-arch@vger.kernel.org,
	benh@kernel.crashing.org, ananth@in.ibm.com, pebolle@tiscali.nl,
	fontana@sharpeleven.org, ciaran.farrell@suse.com,
	christopher.denicolo@suse.com, david.vrabel@citrix.com,
	konrad.wilk@oracle.com, mcb30@ipxe.org, jgross@suse.com,
	andrew.cooper3@citrix.com, andriy.shevchenko@linux.intel.com,
	paul.gortmaker@windriver.com, xen-devel@lists.xen
Subject: Re: [RFC v3 00/13] linux: generalize sections, ranges and linker tables
Date: Tue, 09 Aug 2016 09:09:07 -0700	[thread overview]
Message-ID: <1470758947.2299.47.camel@HansenPartnership.com> (raw)
In-Reply-To: <20160809152429.5bb1c077@lxorguk.ukuu.org.uk>

On Tue, 2016-08-09 at 15:24 +0100, One Thousand Gnomes wrote:
> > table development go under copyleft-next, Rusty recently asked for 
> > code to go in prior to the license tag being added denoting this 
> > license as GPL-compatible [3] -- I had noted in the patch 
> > submission which annotated copyleft-next's compatibility to GPLv2 
> > that copyleft-next is the license of choice for ongoing kernel 
> > development on my end [4]. If this is objectionable I'm happy to 
> > change it to GPLv2 however I'd like a reason provided as I've gone 
> > through all possible channels to ensure this is kosher, including
> > vetting by 3 attorneys now, 2 at SUSE.
> 
> You don't need a new tag, you can use "GPL" or "GPL and additional
> rights". In fact you don't want any other tag because when combined
>  with the kernel it is GPLv2 anyway because the only way the two are 
> fully compatible is for the kernel community to license the derived 
> work under the GPL.

This is the module tag ... it says what licence the module is under,
not the licence for the module combined with the kernel, which is
always GPLv2 because the stricter licence rules.

> The second reason you must use the GPL or GPL with additional tag is
> clause 8. We don't want anyone to create a module under your licence,
> claim it is "open source" then fifteen years later release the module 
> in binary only form still with a tag saying "copyleft-next" which we
> treat as GPL compatible. It's the same reason we don't have a BSD tag 
> but use "GPL with additional rights" to stop abuse of the module
> tags.

I don't follow you here.  We do have separate Dual licence tags. Dual
BSD/GPL allows me to do this today, without waiting fifteen years.  I
think you're conflating two issues:

   1. The licence of the actual module, which must be compatible with the
      kernel to do an insmod.  This is actually what MODULE_LICENSE
      declares
   2. The conditions the creation of the combined work imposes on me

It's the latter, even in the case of Dual BSD/GPL which still requires
me to release source code, so the combination with the kernel forces
GPL conditions even in the case of a BSD module (which is otherwise
compatible) and even after 15 years of this copyleft-next.

The point is: I can create a pure BSD module.  You can pick it up and
put it into the kernel source as Dual BSD/GPL, because BSD allows this,
but I'm still free to create binary only versions under BSD (as long as
they're for something other than inserting into Linux).  However, if I
want my binary only modules to be combined with Linux, I have to follow
GPLv2 compliance because GPLv2 becomes the ruling licence of the
combination.  The same would apply to this copyleft-next, even after 15
years.

> However you need to clarify the licence first I think. Linux is 
> GPLv2, your document only allows use of GPL with "GPL" works - not 
> GPL v2 works ?

A reasonable person would take GPL to mean any version of GPL.

> As PS: btw your licence is kind of weird. I can combine it with GPL 
> work, make it GPL therefore, and then use the GPL rights to remove 
> the bits I added thereby meaning I have your exact original work 
> under the GPL. Not sure how it's intended to work ?

What you describe is how it's always worked.  You may always distribute
a compatibly licensed piece of code under the stricter licence. 
 Additional permissions are always strippable in GPLv3 terms.

> It would also be good if someone clarified whether 6 and 7 are 
> intended to combine so you can take contributed patches and put them 
> in your own proprietary version. As a non-lawyer the intent is not
> clear at all.

The US copyright office defines a copyright work as anything which is
"an original work of authorship fixed in any tangible medium of
expression".  That means any change to an existing work (i.e. by a
patch) which contains enough originality to make the changed work
distinct from the old work is ipso facto a new work.  under copyright
-next this new work has a sunset 15 years from its creation by
combination, not 15 years from the original.  This means a constantly
updated work never sunsets.  Sure, you can go back 15 years and claim
the code at that time has passed into the public domain but you can't
do that if you also want the benefit of later changes.

James


WARNING: multiple messages have this Message-ID (diff)
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>
Cc: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com,
	bp@alien8.de, linux@arm.linux.org.uk, mhiramat@kernel.org,
	masami.hiramatsu.pt@hitachi.com, jbaron@akamai.com,
	heiko.carstens@de.ibm.com, ananth@linux.vnet.ibm.com,
	anil.s.keshavamurthy@intel.com, davem@davemloft.net,
	realmz6@gmail.com, x86@kernel.org, luto@amacapital.net,
	keescook@chromium.org, torvalds@linux-foundation.org,
	gregkh@linuxfoundation.org, rusty@rustcorp.com.au,
	alan@linux.intel.com, dwmw2@infradead.org, arnd@arndb.de,
	ming.lei@canonical.com, linux-arch@vger.kernel.org,
	benh@kernel.crashing.org, ananth@in.ibm.com, pebolle@tiscali.nl,
	fontana@sharpeleven.org, ciaran.farrell@suse.com,
	christopher.denicolo@suse.com, david.vrabel@citrix.com,
	konrad.wilk@oracle.com, mcb30@ipxe.org, jgross@suse.com,
	andrew.cooper3@citrix.com, andriy.shevchenko@linux.intel.com,
	paul.gortmaker@windriver.com, xen-devel@lists.xensource.com,
	ak@linux.intel.com, pali.rohar@gmail.com, dvhart@infradead.org,
	platform-driver-x86@vger.kernel.org, mmarek@suse.com,
	linux@rasmusvillemoes.dk, jkosina@suse.cz, korea.drzix@gmail.com,
	linux-kbuild@vger.kernel.org, tony.luck@intel.com,
	akpm@linux-foundation.org, linux-ia64@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-sh@vger.kernel.org,
	sparclinux@vger.kernel.org, catalin.marinas@arm.com,
	will.deacon@arm.com, rostedt@goodmis.org, jpoimboe@redhat.com
Subject: Re: [RFC v3 00/13] linux: generalize sections, ranges and linker tables
Date: Tue, 09 Aug 2016 09:09:07 -0700	[thread overview]
Message-ID: <1470758947.2299.47.camel@HansenPartnership.com> (raw)
Message-ID: <20160809160907.ZcAg5r6C8r0eRmEcPog_q7JruhG8HEPnYSRxHRKL7fc@z> (raw)
In-Reply-To: <20160809152429.5bb1c077@lxorguk.ukuu.org.uk>

On Tue, 2016-08-09 at 15:24 +0100, One Thousand Gnomes wrote:
> > table development go under copyleft-next, Rusty recently asked for 
> > code to go in prior to the license tag being added denoting this 
> > license as GPL-compatible [3] -- I had noted in the patch 
> > submission which annotated copyleft-next's compatibility to GPLv2 
> > that copyleft-next is the license of choice for ongoing kernel 
> > development on my end [4]. If this is objectionable I'm happy to 
> > change it to GPLv2 however I'd like a reason provided as I've gone 
> > through all possible channels to ensure this is kosher, including
> > vetting by 3 attorneys now, 2 at SUSE.
> 
> You don't need a new tag, you can use "GPL" or "GPL and additional
> rights". In fact you don't want any other tag because when combined
>  with the kernel it is GPLv2 anyway because the only way the two are 
> fully compatible is for the kernel community to license the derived 
> work under the GPL.

This is the module tag ... it says what licence the module is under,
not the licence for the module combined with the kernel, which is
always GPLv2 because the stricter licence rules.

> The second reason you must use the GPL or GPL with additional tag is
> clause 8. We don't want anyone to create a module under your licence,
> claim it is "open source" then fifteen years later release the module 
> in binary only form still with a tag saying "copyleft-next" which we
> treat as GPL compatible. It's the same reason we don't have a BSD tag 
> but use "GPL with additional rights" to stop abuse of the module
> tags.

I don't follow you here.  We do have separate Dual licence tags. Dual
BSD/GPL allows me to do this today, without waiting fifteen years.  I
think you're conflating two issues:

   1. The licence of the actual module, which must be compatible with the
      kernel to do an insmod.  This is actually what MODULE_LICENSE
      declares
   2. The conditions the creation of the combined work imposes on me

It's the latter, even in the case of Dual BSD/GPL which still requires
me to release source code, so the combination with the kernel forces
GPL conditions even in the case of a BSD module (which is otherwise
compatible) and even after 15 years of this copyleft-next.

The point is: I can create a pure BSD module.  You can pick it up and
put it into the kernel source as Dual BSD/GPL, because BSD allows this,
but I'm still free to create binary only versions under BSD (as long as
they're for something other than inserting into Linux).  However, if I
want my binary only modules to be combined with Linux, I have to follow
GPLv2 compliance because GPLv2 becomes the ruling licence of the
combination.  The same would apply to this copyleft-next, even after 15
years.

> However you need to clarify the licence first I think. Linux is 
> GPLv2, your document only allows use of GPL with "GPL" works - not 
> GPL v2 works ?

A reasonable person would take GPL to mean any version of GPL.

> As PS: btw your licence is kind of weird. I can combine it with GPL 
> work, make it GPL therefore, and then use the GPL rights to remove 
> the bits I added thereby meaning I have your exact original work 
> under the GPL. Not sure how it's intended to work ?

What you describe is how it's always worked.  You may always distribute
a compatibly licensed piece of code under the stricter licence. 
 Additional permissions are always strippable in GPLv3 terms.

> It would also be good if someone clarified whether 6 and 7 are 
> intended to combine so you can take contributed patches and put them 
> in your own proprietary version. As a non-lawyer the intent is not
> clear at all.

The US copyright office defines a copyright work as anything which is
"an original work of authorship fixed in any tangible medium of
expression".  That means any change to an existing work (i.e. by a
patch) which contains enough originality to make the changed work
distinct from the old work is ipso facto a new work.  under copyright
-next this new work has a sunset 15 years from its creation by
combination, not 15 years from the original.  This means a constantly
updated work never sunsets.  Sure, you can go back 15 years and claim
the code at that time has passed into the public domain but you can't
do that if you also want the benefit of later changes.

James


  parent reply	other threads:[~2016-08-09 16:09 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-22 21:24 [RFC v3 00/13] linux: generalize sections, ranges and linker tables Luis R. Rodriguez
2016-07-22 21:24 ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 01/13] x86: remove LTO_REFERENCE_INITCALL() Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 02/13] dell-smo8800: include uaccess.h Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:31   ` Pali Rohár
2016-07-22 21:31     ` Pali Rohár
2016-07-22 21:24 ` [RFC v3 03/13] scripts/module-common.lds: enable generation Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 04/13] sections.h: guard against asm and linker script Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 05/13] sections.h: add sections header to collect all section info Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:37   ` James Hogan
2016-07-22 21:37     ` James Hogan
2016-07-22 21:41     ` Luis R. Rodriguez
2016-07-22 21:41       ` Luis R. Rodriguez
2016-07-29 17:28     ` Steven Rostedt
2016-07-29 17:28       ` Steven Rostedt
2016-07-22 21:24 ` [RFC v3 06/13] ranges.h: add helpers to build and identify Linux section ranges Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 07/13] tables.h: add linker table support Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-25 15:30   ` Masami Hiramatsu
2016-07-25 15:30     ` Masami Hiramatsu
2016-07-27 23:02     ` Luis R. Rodriguez
2016-07-27 23:02       ` Luis R. Rodriguez
2016-07-28 17:08       ` H. Peter Anvin
2016-07-28 17:08       ` H. Peter Anvin
2016-07-29 10:06   ` Borislav Petkov
2016-07-29 10:06     ` Borislav Petkov
2016-08-08 15:05     ` Luis R. Rodriguez
2016-08-08 15:05       ` Luis R. Rodriguez
2016-08-09  3:55       ` Borislav Petkov
2016-08-09  3:55         ` Borislav Petkov
2016-08-12  3:51         ` Luis R. Rodriguez
2016-08-12  3:51           ` Luis R. Rodriguez
2016-08-12  5:23           ` Borislav Petkov
2016-08-12  5:23             ` Borislav Petkov
2016-08-12  6:50             ` Luis R. Rodriguez
2016-08-12  6:50               ` Luis R. Rodriguez
2016-08-12  7:25               ` Borislav Petkov
2016-08-12  7:25                 ` Borislav Petkov
2016-08-12 15:28                 ` Luis R. Rodriguez
2016-08-12 15:28                   ` Luis R. Rodriguez
2016-08-12 15:51                   ` Borislav Petkov
2016-08-12 15:51                     ` Borislav Petkov
2016-08-12 17:04                     ` Luis R. Rodriguez
2016-08-12 17:04                       ` Luis R. Rodriguez
2016-08-12 17:35                       ` Borislav Petkov
2016-08-12 17:35                         ` Borislav Petkov
2016-08-12 18:16                         ` Kees Cook
2016-08-12 20:23                       ` Greg KH
2016-08-12 20:23                         ` Greg KH
2016-08-12 20:46                         ` Jiri Kosina
2016-08-12 20:46                           ` Jiri Kosina
2016-08-12 22:00                         ` Luis R. Rodriguez
2016-08-12 22:00                           ` Luis R. Rodriguez
2016-08-13 10:46                           ` Greg KH
2016-08-13 10:46                             ` Greg KH
2016-08-13 17:54                             ` Luis R. Rodriguez
2016-08-13 17:54                               ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 08/13] firmware/Makefile: force recompilation if makefile changes Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 09/13] firmware: port built-in section to linker table Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 10/13] jump_label: port __jump_table to linker tables Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:49   ` Josh Poimboeuf
2016-07-22 21:49     ` Josh Poimboeuf
2016-07-22 22:26     ` Luis R. Rodriguez
2016-07-22 22:26       ` Luis R. Rodriguez
2016-07-22 22:55       ` Josh Poimboeuf
2016-07-22 22:55         ` Josh Poimboeuf
2016-07-27 22:55         ` Luis R. Rodriguez
2016-07-27 22:55           ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 11/13] dynamic_debug: port to use " Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 12/13] kprobes: port .kprobes.text to section range Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-25 15:19   ` Masami Hiramatsu
2016-07-25 15:19     ` Masami Hiramatsu
2016-07-27 22:40     ` Luis R. Rodriguez
2016-07-27 22:40       ` Luis R. Rodriguez
2016-07-22 21:24 ` [RFC v3 13/13] kprobes: port blacklist kprobes to linker table Luis R. Rodriguez
2016-07-22 21:24   ` Luis R. Rodriguez
2016-07-25 15:27   ` Masami Hiramatsu
2016-07-25 15:27     ` Masami Hiramatsu
2016-07-27 23:00     ` Luis R. Rodriguez
2016-07-27 23:00       ` Luis R. Rodriguez
2016-07-25 13:32 ` [RFC v3 00/13] linux: generalize sections, ranges and linker tables Masami Hiramatsu
2016-07-25 13:32   ` Masami Hiramatsu
2016-07-25 13:55   ` Richard Fontana
2016-07-25 13:55     ` Richard Fontana
2016-07-27 22:46   ` Luis R. Rodriguez
2016-07-27 22:46     ` Luis R. Rodriguez
2016-08-09 14:24 ` One Thousand Gnomes
2016-08-09 14:24   ` One Thousand Gnomes
2016-08-09 16:09   ` James Bottomley [this message]
2016-08-09 16:09     ` James Bottomley
2016-08-10  4:51     ` Andy Lutomirski
2016-08-10  4:51       ` Andy Lutomirski
2016-08-15 20:15       ` Alan Cox
2016-08-15 20:15         ` Alan Cox
2016-08-15 21:00         ` Steven Rostedt
2016-08-15 21:00           ` Steven Rostedt
2016-08-15 22:40         ` James Bottomley
2016-08-15 22:40           ` James Bottomley
2016-08-15 22:44       ` James Bottomley
2016-08-15 22:44         ` James Bottomley
2016-08-10 17:03     ` Luis R. Rodriguez
2016-08-10 17:03       ` Luis R. Rodriguez
2016-08-09 16:48   ` Richard Fontana
2016-08-09 16:48     ` Richard Fontana
2016-08-09 16:52   ` Richard Fontana
2016-08-09 16:52     ` Richard Fontana

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=1470758947.2299.47.camel@HansenPartnership.com \
    --to=james.bottomley@hansenpartnership.com \
    --cc=alan@linux.intel.com \
    --cc=ananth@in.ibm.com \
    --cc=ananth@linux.vnet.ibm.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=anil.s.keshavamurthy@intel.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=bp@alien8.de \
    --cc=christopher.denicolo@suse.com \
    --cc=ciaran.farrell@suse.com \
    --cc=davem@davemloft.net \
    --cc=david.vrabel@citrix.com \
    --cc=dwmw2@infradead.org \
    --cc=fontana@sharpeleven.org \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=gregkh@linuxfoundation.org \
    --cc=heiko.carstens@de.ibm.com \
    --cc=hpa@zytor.com \
    --cc=jbaron@akamai.com \
    --cc=jgross@suse.com \
    --cc=keescook@chromium.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=luto@amacapital.net \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mcb30@ipxe.org \
    --cc=mcgrof@kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=ming.lei@canonical.com \
    --cc=mingo@redhat.com \
    --cc=paul.gortmaker@windriver.com \
    --cc=pebolle@tiscali.nl \
    --cc=realmz6@gmail.com \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xen \
    /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;
as well as URLs for NNTP newsgroup(s).