public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Non-standard MODULE_LICENSEs in 2.4.13-ac2
@ 2001-10-27  3:31 Keith Owens
  2001-10-27  7:20 ` Andreas Dilger
  0 siblings, 1 reply; 8+ messages in thread
From: Keith Owens @ 2001-10-27  3:31 UTC (permalink / raw)
  To: linux-kernel

These are the non-standard MODULE_LICENSEs in 2.4.13-ac2, compiling
these as modules will result in a tainted kernel.  "BSD without
advertising clause" is not quite good enough for the kernel, that
licence allows for binary only modules.  Kernel debuggers insist on
general source availability.

Since the source is already in the kernel which is distributed as a GPL
work, these sources are effectively dual BSD/GPL.  Could the owners
please convert them to "Dual BSD/GPL"?

net/ipv4/netfilter/ipchains_core.c:MODULE_LICENSE("BSD without advertisement clause");
fs/nls/nls_cp874.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp869.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp866.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp865.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp864.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp863.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp862.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp861.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp860.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp857.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp855.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp852.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp850.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp775.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp737.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp437.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp1255.c:MODULE_LICENSE("BSD without advertising clause");
fs/nls/nls_cp1251.c:MODULE_LICENSE("BSD without advertising clause");
drivers/scsi/pci2220i.c:MODULE_LICENSE("BSD without advertising clause");
drivers/scsi/u14-34f.c:MODULE_LICENSE("BSD without advertisement clause");
drivers/scsi/pci2000.c:MODULE_LICENSE("BSD without advertisement clause");
drivers/scsi/eata.c:MODULE_LICENSE("BSD");
drivers/scsi/advansys.c:MODULE_LICENSE("BSD without advertising clause");
drivers/net/pcmcia/wavelan_cs.c:MODULE_LICENSE("BSD without advertisement clause");
drivers/net/ppp_deflate.c:MODULE_LICENSE("BSD without advertisement clause");
drivers/net/bsd_comp.c:MODULE_LICENSE("BSD without advertising clause");
drivers/net/strip.c:MODULE_LICENSE("BSD without advertisement clause");
drivers/net/slhc.c:MODULE_LICENSE("BSD without advertising clause");


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Non-standard MODULE_LICENSEs in 2.4.13-ac2
  2001-10-27  3:31 Non-standard MODULE_LICENSEs in 2.4.13-ac2 Keith Owens
@ 2001-10-27  7:20 ` Andreas Dilger
  2001-10-27  9:10   ` Kai Henningsen
  2001-10-27 15:43   ` Alan Cox
  0 siblings, 2 replies; 8+ messages in thread
From: Andreas Dilger @ 2001-10-27  7:20 UTC (permalink / raw)
  To: Keith Owens; +Cc: linux-kernel

On Oct 27, 2001  13:31 +1000, Keith Owens wrote:
> These are the non-standard MODULE_LICENSEs in 2.4.13-ac2, compiling
> these as modules will result in a tainted kernel.  "BSD without
> advertising clause" is not quite good enough for the kernel, that
> licence allows for binary only modules.  Kernel debuggers insist on
> general source availability.
> 
> Since the source is already in the kernel which is distributed as a GPL
> work, these sources are effectively dual BSD/GPL.  Could the owners
> please convert them to "Dual BSD/GPL"?

Ah, so Keith has become (self) nominated license God for the kernel?
Being included in the kernel source isn't "general source availability"?

I can see that you want to make this whole tainted-kernel mess work,
but I think you are confusing intent with implementation.  The intent
(AFAICS) is to mark the kernel tainted ONLY if a closed-source module
is loaded, rather than to be a "license police" mechanism, especially
for sources that have been included in the kernel for a long time.

Rather than make the MODULE_LICENSE() a string that people just fill in
(which as your example shows also has problems with spelling and such)
you could have a few pre-defined values to make things easier:

#define LICENSE_STRING_GPL          "GPL"
#define LICENSE_STRING_DUAL_BSD_GPL "Dual BSD/GPL"
#define LICENSE_STRING_DUAL_MPL_GPL "Dual MPL/GPL"
#define LICENSE_STRING_BSD_KERNEL   "BSD without advertising clause, kernel source"

This not only means we avoid problems with spelling (which will mark a 
kernel as tainted, even if it says "GNU GPL" or similar, and makes keeping
the values consistent between user-space and kernel space easier.  A
NON-TAINTING license string needs to be added for BSD sources that are
part of the kernel.

I totally disagree with the assertion that a module has to be "GPL" in
order to be "OSS free" especially for sources already in the kernel,
so lets not go on a witch hunt for non-GPL licenses in the kernel just
to make this tainted stuff work without adding a new license.  There is
enough animosity between the Linux and GPL camps without more fire for
the "GPL is viral, BSD is free" flamewars.

Cheers, Andreas
--
Andreas Dilger  \ "If a man ate a pound of pasta and a pound of antipasto,
                 \  would they cancel out, leaving him still hungry?"
http://www-mddsp.enel.ucalgary.ca/People/adilger/               -- Dogbert


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Non-standard MODULE_LICENSEs in 2.4.13-ac2
  2001-10-27  7:20 ` Andreas Dilger
@ 2001-10-27  9:10   ` Kai Henningsen
  2001-10-27 15:43   ` Alan Cox
  1 sibling, 0 replies; 8+ messages in thread
From: Kai Henningsen @ 2001-10-27  9:10 UTC (permalink / raw)
  To: linux-kernel

adilger@turbolabs.com (Andreas Dilger)  wrote on 27.10.01 in <20011027012016.F23590@turbolinux.com>:

> On Oct 27, 2001  13:31 +1000, Keith Owens wrote:
> > These are the non-standard MODULE_LICENSEs in 2.4.13-ac2, compiling
> > these as modules will result in a tainted kernel.  "BSD without
> > advertising clause" is not quite good enough for the kernel, that
> > licence allows for binary only modules.  Kernel debuggers insist on
> > general source availability.
> >
> > Since the source is already in the kernel which is distributed as a GPL
> > work, these sources are effectively dual BSD/GPL.  Could the owners
> > please convert them to "Dual BSD/GPL"?
>
> Ah, so Keith has become (self) nominated license God for the kernel?
> Being included in the kernel source isn't "general source availability"?
>
> I can see that you want to make this whole tainted-kernel mess work,
> but I think you are confusing intent with implementation.  The intent

No, you are. Keith is asking module owners to change their part of the  
*implementation*, not any *intent*. He says that if a BSD/noadv module  
source is in the kernel, the correct tag is GPL/BSD, not BSD/noadv.

> I totally disagree with the assertion that a module has to be "GPL" in
> order to be "OSS free" especially for sources already in the kernel,

Sure. What it needs to be, when included with the kernel and distributed  
(and the inclusion and distribution are the critical points here, not OSS- 
freeness) is GPL-compatible; that means that the combination *will* be  
GPL. That is the famous "viral clause" in the GPL.

That doesn't mean that non-GPL-compatible stuff isn't OSS, just that it  
cannot be distributed with the kernel, because the kernel *is* GPL. It's a  
consequence of the GPL, not of the OSS rules.

> so lets not go on a witch hunt for non-GPL licenses in the kernel just

As far as I can see, nobody is.

> to make this tainted stuff work without adding a new license.  There is
> enough animosity between the Linux and GPL camps without more fire for
> the "GPL is viral, BSD is free" flamewars.

Aah, so it seems *you* are on a witch hunt against the GPL!

I have no idea why someone using the BSD license - which, after all,  
allows for relicensing under any proprietary scheme you care to dream up -  
should have any problem whatsoever with relicensing under the GPL. Nor do  
I have any idea why someone using the GPL should have any problem with  
anything else also available under the GPL.

There's no conflict here. We're not talking about who is more free.

MfG Kai

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Non-standard MODULE_LICENSEs in 2.4.13-ac2
  2001-10-27  7:20 ` Andreas Dilger
  2001-10-27  9:10   ` Kai Henningsen
@ 2001-10-27 15:43   ` Alan Cox
  2001-10-28  8:06     ` H. Peter Anvin
  2001-10-29 10:16     ` David Woodhouse
  1 sibling, 2 replies; 8+ messages in thread
From: Alan Cox @ 2001-10-27 15:43 UTC (permalink / raw)
  To: Andreas Dilger; +Cc: Keith Owens, linux-kernel

> but I think you are confusing intent with implementation.  The intent
> (AFAICS) is to mark the kernel tainted ONLY if a closed-source module
> is loaded, rather than to be a "license police" mechanism, especially
> for sources that have been included in the kernel for a long time.

"BSD" can indicate totally closed source material as well as other stuff

Also Keith is right - if it is GPL compatible BSD code linked with the
kernel then its correct to describe it as Dual BSD/GPL anyway

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Non-standard MODULE_LICENSEs in 2.4.13-ac2
  2001-10-27 15:43   ` Alan Cox
@ 2001-10-28  8:06     ` H. Peter Anvin
  2001-10-28 11:15       ` [PATCH] " Riley Williams
  2001-10-29 10:16     ` David Woodhouse
  1 sibling, 1 reply; 8+ messages in thread
From: H. Peter Anvin @ 2001-10-28  8:06 UTC (permalink / raw)
  To: linux-kernel

Followup to:  <E15xVcA-0003bG-00@the-village.bc.nu>
By author:    Alan Cox <alan@lxorguk.ukuu.org.uk>
In newsgroup: linux.dev.kernel
>
> > but I think you are confusing intent with implementation.  The intent
> > (AFAICS) is to mark the kernel tainted ONLY if a closed-source module
> > is loaded, rather than to be a "license police" mechanism, especially
> > for sources that have been included in the kernel for a long time.
> 
> "BSD" can indicate totally closed source material as well as other stuff
> 

I was thinking about that, and that doesn't seem right to me -- you
can make closed-source derivative works based on BSD but I would
typically not refer to them as "BSD" license (think SunOS 4.1 here...)

> 
> Also Keith is right - if it is GPL compatible BSD code linked with the
> kernel then its correct to describe it as Dual BSD/GPL anyway
> 

I think the idea of making a standard set of macros available is a
good idea for two reasons:

a) It avoids mispellings;

b) It makes it possible to apply standard definitions to the codified
   strings.

	-hpa

-- 
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt	<amsp@zytor.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] Re: Non-standard MODULE_LICENSEs in 2.4.13-ac2
  2001-10-28  8:06     ` H. Peter Anvin
@ 2001-10-28 11:15       ` Riley Williams
  2001-10-28 11:34         ` Jeff Garzik
  0 siblings, 1 reply; 8+ messages in thread
From: Riley Williams @ 2001-10-28 11:15 UTC (permalink / raw)
  To: H Peter Anvin; +Cc: Linus Torvalds, Alan Cox, Linux Kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1712 bytes --]

Hi Peter.

> I think the idea of making a standard set of macros available is a
> good idea for two reasons:
> 
> a) It avoids mispellings;
> 
> b) It makes it possible to apply standard definitions to the
>    codified strings.

For reference, here's a summary of the strings in the 2.4.13 kernel
tarball as distributed, counted using `sort | uniq -c` to avoid spam:

     6	MODULE_LICENSE("BSD without advertisement clause")
    22	MODULE_LICENSE("BSD without advertising clause")
     1	MODULE_LICENSE("BSD")
     8	MODULE_LICENSE("Dual BSD/GPL")
    15	MODULE_LICENSE("Dual MPL/GPL")
     2	MODULE_LICENSE("GPL and additional rights")
     1	MODULE_LICENSE("GPL v2")
   912	MODULE_LICENSE("GPL")

Note particularly the line...

     1	MODULE_LICENSE("GPL v2")

...which indicates that drivers/net/pcmcia/xircom_tulip_cb.c is regarded
as tainting the kernel - this string is NOT one of the ones that are
accepted as untainted. Is this reasonable?

The enclosed patch first moves the license definitions to a new header
file linux/license.h and then defines standard macros (with the ML_
prefix) for each of the above strings in standardised form, with dual
licenses listed in alphabetical order. It does NOT change any of the
uses of the MODULE_LICENSE macro, but if I get confirmation that this
patch is accepted into the kernel source tree, I'll go through the
kernel and tweak them all to match it.

Here's the definitions used for the above, in the same order.

	ML_BSD_NO_AD
	ML_BSD_NO_AD
	ML_BSD
	ML_BSD_GPL
	ML_GPL_MPL
	ML_GPL_PLUS
	ML_GPL_V2
	ML_GPL

You will note that the first two have been merged into a single
definition, as they are reasonably clearly the same license.

Best wishes from Riley.

[-- Attachment #2: Standardise module licenses --]
[-- Type: TEXT/PLAIN, Size: 3231 bytes --]

--- linux-2.4.13/include/linux/license.h~	Thu Jan  1 00:00:00 1970
+++ linux-2.4.13/include/linux/license.h	Sun Oct 28 10:58:21 2001
@@ -0,0 +1,49 @@
+/*
+ * Module license declarations.
+ *
+ * Rewritten by Riley Williams <rhw@MemAlpha.cx> Oct 2001
+ */
+
+#ifndef _LINUX_MODULE_LICENSE_H
+#define _LINUX_MODULE_LICENSE_H
+
+/*
+ * The following standard license identities are defined.
+ */
+
+#define ML_BSD		"BSD"
+#define ML_BSD_NO_AD	"BSD without advertisement clause"
+#define ML_BSD_GPL	"BSD/GPL"
+#define ML_GPL		"GPL"
+#define ML_GPL_MPL	"GPL/MPL"
+#define ML_GPL_PLUS	"GPL and additional rights"
+#define ML_GPL_V2	"GPL version 2 only"
+
+#define ML_PROPRIETARY	"Proprietary"
+
+/*
+ * Of these, the following are currently accepted as indicating free software
+ * modules.
+ *
+ *	ML_BSD_GPL
+ *	ML_GPL
+ *	ML_GPL_MPL
+ *	ML_GPL_PLUS
+ *	ML_GPL_V2		(Should be, but currently isn't)
+ *
+ * There are dual licensed components, but when running with Linux it is the
+ * GPL that is relevant so this is a non issue. Similarly LGPL linked with
+ * GPL is a GPL combined work.
+ *
+ * This exists for several reasons
+ * 1.	So modinfo can show license info for users wanting to vet their setup 
+ *	is free
+ * 2.	So the community can ignore bug reports including proprietary modules
+ * 3.	So vendors can do likewise based on their own policies
+ */
+
+#define MODULE_LICENSE(license) 	\
+static const char __module_license[] __attribute__((section(".modinfo"))) =   \
+"license=" license
+
+#endif /* _LINUX_MODULE_H */
--- linux-2.4.13/include/linux/module.h~	Sat Oct 27 20:42:32 2001
+++ linux-2.4.13/include/linux/module.h	Sun Oct 28 10:59:38 2001
@@ -24,6 +24,8 @@
 
 #include <asm/atomic.h>
 
+#include <linux/license.h>
+
 /* Don't need to bring in all of uaccess.h just for this decl.  */
 struct exception_table_entry;
 
@@ -259,34 +261,6 @@
   __attribute__ ((unused)) = name
 #define MODULE_DEVICE_TABLE(type,name)		\
   MODULE_GENERIC_TABLE(type##_device,name)
-
-/*
- * The following license idents are currently accepted as indicating free
- * software modules
- *
- *	"GPL"				[GNU Public License v2 or later]
- *	"GPL and additional rights"	[GNU Public License v2 rights and more]
- *	"Dual BSD/GPL"			[GNU Public License v2 or BSD license choice]
- *	"Dual MPL/GPL"			[GNU Public License v2 or Mozilla license choice]
- *
- * The following other idents are available
- *
- *	"Proprietary"			[Non free products]
- *
- * There are dual licensed components, but when running with Linux it is the
- * GPL that is relevant so this is a non issue. Similarly LGPL linked with GPL
- * is a GPL combined work.
- *
- * This exists for several reasons
- * 1.	So modinfo can show license info for users wanting to vet their setup 
- *	is free
- * 2.	So the community can ignore bug reports including proprietary modules
- * 3.	So vendors can do likewise based on their own policies
- */
- 
-#define MODULE_LICENSE(license) 	\
-static const char __module_license[] __attribute__((section(".modinfo"))) =   \
-"license=" license
 
 /* Define the module variable, and usage macros.  */
 extern struct module __this_module;

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Re: Non-standard MODULE_LICENSEs in 2.4.13-ac2
  2001-10-28 11:15       ` [PATCH] " Riley Williams
@ 2001-10-28 11:34         ` Jeff Garzik
  0 siblings, 0 replies; 8+ messages in thread
From: Jeff Garzik @ 2001-10-28 11:34 UTC (permalink / raw)
  To: Riley Williams; +Cc: H Peter Anvin, Linus Torvalds, Alan Cox, Linux Kernel

Riley Williams wrote:
> Note particularly the line...
> 
>      1  MODULE_LICENSE("GPL v2")
> 
> ...which indicates that drivers/net/pcmcia/xircom_tulip_cb.c is regarded
> as tainting the kernel - this string is NOT one of the ones that are
> accepted as untainted.

That's definitely a bug that needs fixing... "GPL v2" shouldn't taint.

-- 
Jeff Garzik      | Only so many songs can be sung
Building 1024    | with two lips, two lungs, and one tongue.
MandrakeSoft     |         - nomeansno


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Non-standard MODULE_LICENSEs in 2.4.13-ac2
  2001-10-27 15:43   ` Alan Cox
  2001-10-28  8:06     ` H. Peter Anvin
@ 2001-10-29 10:16     ` David Woodhouse
  1 sibling, 0 replies; 8+ messages in thread
From: David Woodhouse @ 2001-10-29 10:16 UTC (permalink / raw)
  To: Alan Cox; +Cc: Andreas Dilger, Keith Owens, linux-kernel


alan@lxorguk.ukuu.org.uk said:
>  "BSD" can indicate totally closed source material as well as other
> stuff 

"GPL" can indicate modules which are either for internal use only and not
distributed, or which are distributed only to paying customers and shipped
with source, but the source is not publicly available.

Should we make the licence string "GPL" taint the kernel too, unless it's
explicitly stated that the source is available?

--
dwmw2



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2001-10-29 19:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-27  3:31 Non-standard MODULE_LICENSEs in 2.4.13-ac2 Keith Owens
2001-10-27  7:20 ` Andreas Dilger
2001-10-27  9:10   ` Kai Henningsen
2001-10-27 15:43   ` Alan Cox
2001-10-28  8:06     ` H. Peter Anvin
2001-10-28 11:15       ` [PATCH] " Riley Williams
2001-10-28 11:34         ` Jeff Garzik
2001-10-29 10:16     ` David Woodhouse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox