Skip to contentSkip to conversation

GPLv2 or not GPLv2? (no license bashing)

PATCH New Rolf Eike Beer 5 participants 11 messages Mar 4, 2004 – Mar 9, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi all,

just digging a bit in the kernel and found some funny things:

-there is a tag only for "GPL v2" but there are some drivers claiming to be v2 and not using this (patch will follow)
-there are some drivers with the comment ", either version 2 of the License." in the header. s/either // ? If so, there are some more files where someone should change MODULE_LICENSE("GPL") to "GPL v2".
-there are some files that have the long warranty warning in the header. This brings up the question if we should see the mainline kernel as one piece of software. If we do so we need this warning only once and this copy should be in the main kernel directory and we should kill the others. The other question is: when I only write down the names of the authors in the header and then add MODULE_LICENSE("GPL") or "GPL v2" is this enough licensing information or is always the long comment needed (would be another nice trick to shrink tons of files)?
-the LINUX_VERSION_CODE line in drivers/message/fusion/isense.c looks bogus, the comment says it is for <2.5.0, but the line itself is for <2.3.0. Is this wanted (fix the comment), bogus (fix the line) or crap (kill it alltogether).

This are the files where I found "either version 2 of the License.":

arch/arm/mach-integrator/integrator_cp.c
drivers/serial/8250_pnp.c
drivers/serial/8250_pci.c
drivers/input/serio/pcips2.c
drivers/input/serio/sa1111ps2.c

These are some files (there are surely tons of others) with the long warning:

drivers/scsi/3w-xxxx.[ch]
drivers/message/fusion/mptctl.c
drivers/message/fusion/mptbase.[ch]
drivers/message/fusion/mptscsih.c
drivers/message/fusion/isense.c (*)
drivers/message/fusion/mptlan.[ch]
drivers/message/fusion/mptctl.[ch]
drivers/message/fusion/mptscsih.[ch]

Eike

#1 lore raw

PATCH 1/1 Change "GPL" to "GPL v2" where files are GPLv2

Quoted 2 lines

-there is a tag only for "GPL v2" but there are some drivers claiming to be v2 and not using this (patch will follow)

And here it is.

diff -aur linux-2.6.3/drivers/message/fusion/isense.c linux-2.6.3-eike/drivers/message/fusion/isense.c
--- linux-2.6.3/drivers/message/fusion/isense.c 2004-02-18 04:57:56.000000000
+0100
+++ linux-2.6.3-eike/drivers/message/fusion/isense.c 2004-03-04
08:04:14.000000000 +0100
@@ -91,7 +91,7 @@

MODULE_AUTHOR(MODULEAUTHOR);
MODULE_DESCRIPTION(my_NAME);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ int __init isense_init(void)
diff -aur linux-2.6.3/drivers/message/fusion/mptbase.c linux-2.6.3-eike/drivers/message/fusion/mptbase.c
--- linux-2.6.3/drivers/message/fusion/mptbase.c 2004-03-04
08:19:02.000000000 +0100
+++ linux-2.6.3-eike/drivers/message/fusion/mptbase.c 2004-03-04
08:02:32.000000000 +0100
@@ -118,7 +118,7 @@

MODULE_AUTHOR(MODULEAUTHOR);
MODULE_DESCRIPTION(my_NAME);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/*
* cmd line parameters
diff -aur linux-2.6.3/drivers/message/fusion/mptctl.c linux-2.6.3-eike/drivers/message/fusion/mptctl.c
--- linux-2.6.3/drivers/message/fusion/mptctl.c 2004-02-18 04:57:13.000000000
+0100
+++ linux-2.6.3-eike/drivers/message/fusion/mptctl.c 2004-03-04
08:01:39.000000000 +0100
@@ -106,7 +106,7 @@
#endif
MODULE_AUTHOR(MODULEAUTHOR); MODULE_DESCRIPTION(my_NAME);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/

diff -aur linux-2.6.3/drivers/message/fusion/mptlan.c linux-2.6.3-eike/drivers/message/fusion/mptlan.c
--- linux-2.6.3/drivers/message/fusion/mptlan.c 2004-03-04 08:19:02.000000000
+0100
+++ linux-2.6.3-eike/drivers/message/fusion/mptlan.c 2004-03-04
08:05:00.000000000 +0100
@@ -80,7 +80,7 @@

#define MYNAM "mptlan"

-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ /*
diff -aur linux-2.6.3/drivers/message/fusion/mptscsih.c linux-2.6.3-eike/drivers/message/fusion/mptscsih.c
--- linux-2.6.3/drivers/message/fusion/mptscsih.c 2004-03-04
08:19:02.000000000 +0100
+++ linux-2.6.3-eike/drivers/message/fusion/mptscsih.c 2004-03-04
08:03:05.000000000 +0100
@@ -89,7 +89,7 @@

MODULE_AUTHOR(MODULEAUTHOR);
MODULE_DESCRIPTION(my_NAME);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

/* Set string for command line args from insmod */ #ifdef MODULE
diff -aur linux-2.6.3/drivers/pci/hotplug/fakephp.c linux-2.6.3-eike/drivers/pci/hotplug/fakephp.c
--- linux-2.6.3/drivers/pci/hotplug/fakephp.c 2004-02-18 04:58:36.000000000
+0100
+++ linux-2.6.3-eike/drivers/pci/hotplug/fakephp.c 2004-03-04
07:49:33.000000000 +0100
@@ -226,7 +226,7 @@

MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_DESCRIPTION(DRIVER_DESC);
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");
MODULE_PARM(debug, "i");
MODULE_PARM_DESC(debug, "Debugging mode enabled or not");

diff -aur linux-2.6.3/drivers/scsi/3w-xxxx.c linux-2.6.3-eike/drivers/scsi/3w-xxxx.c
--- linux-2.6.3/drivers/scsi/3w-xxxx.c 2004-02-18 04:59:31.000000000 +0100
+++ linux-2.6.3-eike/drivers/scsi/3w-xxxx.c 2004-03-04 07:59:08.000000000
+0100
@@ -189,7 +189,7 @@
#else
MODULE_DESCRIPTION ("3ware Storage Controller Linux Driver"); #endif
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

#include <linux/kernel.h>
#include <linux/pci.h>
diff -aur linux-2.6.3/drivers/usb/serial/usb-serial.c linux-2.6.3-eike/drivers/usb/serial/usb-serial.c
--- linux-2.6.3/drivers/usb/serial/usb-serial.c 2004-02-18 04:57:31.000000000
+0100
+++ linux-2.6.3-eike/drivers/usb/serial/usb-serial.c 2004-03-02
09:54:22.000000000 +0100
@@ -1468,7 +1468,7 @@
/* Module information */
MODULE_AUTHOR( DRIVER_AUTHOR ); MODULE_DESCRIPTION( DRIVER_DESC );
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");

MODULE_PARM(debug, "i");
MODULE_PARM_DESC(debug, "Debug enabled or not");

#2 lore raw

PATCH 1/1 Add missing "GPL"

Without this safe_serial taints the kernel, but it is GPL.

Eike

drivers/usb/serial/safe_serial.c +1 -0
diff -aur linux-2.6.3/drivers/usb/serial/safe_serial.c linux-2.6.3-eike/drivers/usb/serial/safe_serial.c
@@ -93,6 +93,7 @@
 
 MODULE_AUTHOR (DRIVER_AUTHOR);
 MODULE_DESCRIPTION (DRIVER_DESC);
+MODULE_LICENSE("GPL");
 
 #if defined(CONFIG_USBD_SAFE_SERIAL_VENDOR) && !defined(CONFIG_USBD_SAFE_SERIAL_PRODUCT)
 #abort "SAFE_SERIAL_VENDOR defined without SAFE_SERIAL_PRODUCT"
#3 lore raw
In reply to Rolf Eike Beer
Quoted 9 lines · Rolf Eike Beer

Hi all,

just digging a bit in the kernel and found some funny things:

-there is a tag only for "GPL v2" but there are some drivers claiming to be v2 and not using this (patch will follow)
-there are some drivers with the comment ", either version 2 of the License." in the header. s/either // ? If so, there are some more files where someone should change MODULE_LICENSE("GPL") to "GPL v2".

I don't think anybody, but the original author, can change the licensing or its symbology. In other words, if there is a MODULE_LICENSE("ZORK"), that stays until it is changed by the author that inserted it initially.

In fact, a review of Linux history by a first-year law student may show that somebody, not the original author, added the MODULE_LICENSE() macro to a lot of modules that didn't have any such macro, and thereby assigned some license that did not previously exist! Such an implied license may not be valid because the original author of the work did not perform that assignment.

I think you need to be vigilant and not fall into the RMS trap where anything that is "found" anywhere, automatically becomes the property of GPL. It will invalidate the original spirit and nature of GPL and, likely throw all such works into the public domain. Caution is necessary, especially now that there is a Wind River-Red Hat connection, and other such connections being established in the future. Wind River was the company that "bought" BSD/OS. I don't know how you do that --

Anyway, be very careful about changing what might have been the original author's intent.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips).
Note 96.31% of all statistics are fiction.

#4 lore raw
Quoted 24 lines · Richard B. Johnson
Quoted 9 lines · Rolf Eike Beer

Hi all,

just digging a bit in the kernel and found some funny things:

-there is a tag only for "GPL v2" but there are some drivers claiming to be v2 and not using this (patch will follow)
-there are some drivers with the comment ", either version 2 of the License." in the header. s/either // ? If so, there are some more files where someone should change MODULE_LICENSE("GPL") to "GPL v2".

I don't think anybody, but the original author, can change the licensing or its symbology. In other words, if there is a MODULE_LICENSE("ZORK"), that stays until it is changed by the author that inserted it initially.

In fact, a review of Linux history by a first-year law student may show that somebody, not the original author, added the MODULE_LICENSE() macro to a lot of modules that didn't have any such macro, and thereby assigned some license that did not previously exist! Such an implied license may not be valid because the original author of the work did not perform that assignment.

Quoted 3 lines

I think you need to be vigilant and not fall into the RMS trap where anything that is "found" anywhere, automatically becomes the property of GPL.

Well, Linux kernel is GPLed. If one adds his/hers code to the kernel (s)he is automatically agrees to the terms of GPL.

Because "adds code" is actually incorrect here.
"modifies existing GPLed code" is more accurate.

Or so I see it.
--
vda

#5 lore raw
Quoted 5 lines · vda

Well, Linux kernel is GPLed. If one adds his/hers code to the kernel (s)he is automatically agrees to the terms of GPL.

Because "adds code" is actually incorrect here. "modifies existing GPLed code" is more accurate.

Suppose I write a new kernel module, without touching any existing code, and this module gets included in the kernel tree. Have I added code? Yes. Have I modified GPLed code? I think not.

Signature · 2 lines
Måns Rullgård
[email protected]
#6 lore raw
Quoted 10 lines · Måns Rullgård
Quoted 5 lines · vda

Well, Linux kernel is GPLed. If one adds his/hers code to the kernel (s)he is automatically agrees to the terms of GPL.

Because "adds code" is actually incorrect here. "modifies existing GPLed code" is more accurate.

Suppose I write a new kernel module, without touching any existing code, and this module gets included in the kernel tree. Have I added code? Yes. Have I modified GPLed code? I think not.

I believe Linus said so too wrt out-of-tree modules.

I think modules included in 'official' tree better be GPLed or else phrase 'Linux kernel is GPLed' becomes meaningless.

Signature · 1 line
vda
#7 lore raw
Quoted 8 lines · vda
Quoted 7 lines · Måns Rullgård
Quoted 5 lines · vda

Well, Linux kernel is GPLed. If one adds his/hers code to the kernel (s)he is automatically agrees to the terms of GPL.

Because "adds code" is actually incorrect here. "modifies existing GPLed code" is more accurate.

Quoted 8 lines
Quoted 3 lines

Suppose I write a new kernel module, without touching any existing code, and this module gets included in the kernel tree. Have I added code? Yes. Have I modified GPLed code? I think not.

I believe Linus said so too wrt out-of-tree modules.

I think modules included in 'official' tree better be GPLed or else phrase 'Linux kernel is GPLed' becomes meaningless.

That is true, but it doesn't necessarily make my code derived from anything at all.

Signature · 2 lines
Måns Rullgård
[email protected]
#8 lore raw
In reply to Måns Rullgård
Quoted 10 lines · M�ns Rullg�rd
Quoted 5 lines · vda

Well, Linux kernel is GPLed. If one adds his/hers code to the kernel (s)he is automatically agrees to the terms of GPL.

Because "adds code" is actually incorrect here. "modifies existing GPLed code" is more accurate.

Suppose I write a new kernel module, without touching any existing code, and this module gets included in the kernel tree. Have I added code? Yes. Have I modified GPLed code? I think not.

But you did incorporate GPL interfaces, likely some inline functions...

#9 lore raw
Quoted 5 lines · Jesse Pollard
Quoted 4 lines · Måns Rullgård
Quoted 3 lines · vda

Well, Linux kernel is GPLed. If one adds his/hers code to the kernel (s)he is automatically agrees to the terms of GPL.

Quoted 8 lines
Quoted 6 lines
Quoted 2 lines

Because "adds code" is actually incorrect here. "modifies existing GPLed code" is more accurate.

Suppose I write a new kernel module, without touching any existing code, and this module gets included in the kernel tree. Have I added code? Yes. Have I modified GPLed code? I think not.

But you did incorporate GPL interfaces, likely some inline functions...

Suppose for the sake of argument that I didn't. Besides, simply including header files doesn't count.

Signature · 2 lines
Måns Rullgård
[email protected]
#10 lore raw
Quoted 9 lines · M�ns Rullg�rd
Quoted 8 lines · Jesse Pollard
Quoted 7 lines · M�ns Rullg�rd
Quoted 5 lines · vda

Well, Linux kernel is GPLed. If one adds his/hers code to the kernel (s)he is automatically agrees to the terms of GPL.

Because "adds code" is actually incorrect here. "modifies existing GPLed code" is more accurate.

Quoted 8 lines
Quoted 5 lines
Quoted 3 lines

Suppose I write a new kernel module, without touching any existing code, and this module gets included in the kernel tree. Have I added code? Yes. Have I modified GPLed code? I think not.

But you did incorporate GPL interfaces, likely some inline functions...

Suppose for the sake of argument that I didn't. Besides, simply including header files doesn't count.

Then your binary module is good to go... until the next patch or update.