On Donnerstag, 23. November 2017 16:43:29 CET Andrew Lunn wrote: [...]
I just looked at Linus's current master branch:
~/linux/include/uapi$ grep -hr SPDX * | sort | uniq -c 14 /* SPDX-License-Identifier: GPL-1.0+ WITH Linux-syscall-note */ 541 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 113 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) AND MIT) */ 21 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ 17 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ 4 /* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) */ 3 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR MIT) */ 3 /* SPDX-License-Identifier: LGPL-2.0+ WITH Linux-syscall-note */ 3 /* SPDX-License-Identifier: LGPL-2.1 WITH Linux-syscall-note */ 15 /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
We are in the region of "Lies, damn lies, and statistics", but everything with an SPDX tag has some form of GPL/LGPL. Now, adding SPDX tags is a new activity, and adding the GPLs tags have been done first, since they are easier to do. So it could be there are a lot of UAPI header files which are not {L}GPL. Also, given this small sample, it seems BSD is more popular over MIT.
Problem here is how the most SPDX stuff was added (until now). Mostly things got an SPDX tag which either didn't contain any license information or which used a rather obscure way of informing the user about the license. If I search for some (not perfect) markers of the ISC then I can find 471 files (including the nl80211.h which was the original reason to chose the ISC). And I find 3154 for MIT and 2371 for BSD (no idea which version is more popular here). I cannot be really sure about the results until the proper SPDX tags were added.
$ git grep -l 'Permission to use, copy, modify, and/or '|wc -l 471 $ git grep -l 'Permission is hereby granted, free of charge'|wc -l 3154 $ git grep -l 'Redistributions of source code must'|wc -l 2371
I understand the reasons for ISC to MIT, so
Acked-by: Andrew Lunn andrew@lunn.ch
Thanks
However, i wounder if GPL-2.0 WITH Linux-syscall-note OR one of the BSD variants would be more consistent with the rest of the kernel?
From a popularity contest perspective, the BSD licenses seem to lose (I could be wrong here). But some of the BSD license variants are also under the LICENSES/preferred/ folder in Thomas Gleixner's latest patchset (which was prepared with Linus & Co. [1]). So technically, the BSD-2 would also work.
To the "GPL-2.0 WITH Linux-syscall-note" part - we have currently the problem that this file usually doesn't exist in a packaged form on Linux systems (yet).
Usually, people are just building the external kernel module when they want the latest features and then build their software *not* against the headers of the external module. And this means that people tend to integrate the file in their software (even we do that) to be able to access it when compiling it. And I would like to avoid that people are scared of using netlink (with batman_adv.h) because they would have to package a GPL-2.0 (+some extra stuff) licensed file.
It seemed to be the easiest/cleanest move to have the file under a permissive license. Especially because this file only contains the IDs used when communicating with batman-adv over netlink and some (brief) documentation.
That said, I personally don't know of any closed-source software which uses the batman-adv netlink interface.
Kind regards, Sven
[1] at least I've read more than once that a this or that decision cannot be changed because Linus said so :)