Converting source files from traditional license headers to SPDX expressions maybe is explained best to be like visiting a dentist: Usually it is not the most appealing thing in the world, while being there it can be slightly unpleasant and tedious for both, but at the end you are quite happy that the work was done. This is quite similar to my experience with the KDE Framework sources. Since many of the files are older than 10 years and some even older then 20, you can find surprisingly different copyright statement styles. However, finally after quite some moths task T11550 is done \o/
This small task tracks all the work that was done in the ~80 frameworks repositories, which finalle state all copyright and license statements in machine readable, modern SPDX syntax. In total, my “grep -nr “SPDX-License-Identifier” |wc” command (not completely accurate, but easiest to get an general direction) tells about ~7400 files that were converted. At this point, I want to thank especially Christophe Giboudeaux, who did most of the reviews of these changes. Even if we could do most of the conversions with tooling (see licensedigger, which is now in SDK Playground by the way) the whole conversion was quite time consuming because every change must be reviewed carefully.
So, are we done? — Not yet! — Actually, this is just the first step, which now enables cool new things. One of them, which I am currently working on, is to get some unit testing functionality in place that will allow to check that the outbound license of a library/application actually is legally compatible to the license statements… Something like this is only now possible, because the license information are machine readable.
Moreover, the conversion tasks are only done for frameworks, but there is massively more code in KDE. It is great to see that Christophe already converted (Correction:
many) all of the monthly released PIM repositories and even the quite big KWin repository was converted recently. If anybody hits the limits of licensedigger and needs new feature, please drop a feature request at invent.kde.org and I will try to make it possible.