Re: WTF? Re: [PATCH] License cleanup: add SPDX GPL-2.0 license identifier to files with no license

From: Pavel Machek
Date: Wed Nov 22 2017 - 12:07:24 EST



Hi!
> Christoph:
>
> I am not speaking for Greg but let me highlight some issues and
> benefits as I chipped in a bit to help:
>
> Some data points in the 4.14.rc7 kernel:
> - there are 64,742 distinct license statements
> ... in 114,597 blocks of text
> ... in 42,602 files
> - license statements represent 480,455 lines of text
> - licenses are worded in 1,015 different ways
> - there are about 85 distinct licenses, the bulk being the GPL
>
> NB: All of these tallies were computed with scancode-toolkit [1]
>
> License text lines represent about 14.7% of all source comments.
> (using a CLOC to count comment lines)
>
> >From an engineering perspective this feels to me as pure madness,
> unless everyone in kernel land is in love with legalese!
>
> I like to think of it this way:
>
> Licensing is important but repetitive long boilerplate in patches and
> in every file is just a noisy distraction from the code substance.
>
> Imagine if the kernel had 500 versions of a printf() function?
> Maintainers would refactor the hell of it to use a few functions.
>
> Replacing the boilerplate with licensing ids is exactly the same:
> a sane refactoring to remove duplicated boilerplate.
>
> In the end and ideally there should be no more than one line of
> licensing info per file, so no more than 70Kish: so there are
> about 400K lines of boilerplate to remove.
>
> The benefits now and later:
> - no distraction with licensing boilerplate cr*p in patches and files

Well... No distraction you say?

> Note also that beside the kernel, U-Boot has adopted the same
> approach for quite a while, and in the application world the Eclipse

Yes, it works nicely for U-Boot.

But someone actually _added_ distraction. Top-level Makefile had no
distraction there and boom, here it is, totally uninteresting and just
at line one.

Lets look at random file in usb:

// SPDX-License-Identifier: GPL-2.0+
/*
* Driver for SMSC USB3503 USB 2.0 hub controller driver
*
* Copyright (c) 2012-2013 Dongjin Kim (tobetter@xxxxxxxxx)
*/
...
MODULE_LICENSE("GPL");

...do we agree that this is nowhere near distration-free? Ugly //
comment that screams for attention, away from other copyright info, it
hurts your eyes...

This would be improvement:

/*
* Driver for SMSC USB3503 USB 2.0 hub controller driver
*
* Copyright (c) 2012-2013 Dongjin Kim (tobetter@xxxxxxxxx)
*
* SPDX-License-Identifier: GPL-2.0+
*/

...but what is above is just uuuugly.

...as is MODULE_LICENSE having completely different tags from SPDX.

This would be even better:

/*
* Driver for SMSC USB3503 USB 2.0 hub controller driver
*
* Copyright (c) 2012-2013 Dongjin Kim (tobetter@xxxxxxxxx)
*/
...
SPDX_MODULE_LICENSE("GPL-2.0+")

So yes, SPDX can be improvement. But in current implementation it is
not.

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature