Licensing and code consistency
Well, a little more careful reading of the license headers and Krazy’s license check explained to me why akode gets so many license complaints from our automatic tools: it has a cut-and-pasted spelling error (Franklin Street) everywhere, I’ve gone and fixed some of them. That reduces the noise to manageable proportions. Once that’s past, there’s much fewer problems. Focusing just on akode because that’s what I happen to be checking right now, we have:
- Missing license headers in all the files in mpc_decoder. There is a readme, which refers to LGPL.txt. Presumably that is LGPLv2.1, but it would have to be checked. The file LGPL.txt itself has been removed. This is a fairly straightforward thing to fix: hunt down the source of this code, check exactly which license it has, and add the headers to each file (and encourage the upstream to do the same as this example shows how software licenses in external files can quickly be lost).
- Unacceptable licenses. Well, this is what the license checker says, anyway, and I'm not sure I agree. The mpeg_decoder plugin is GPLv2+, and our library policy says LGPL (or BSD). But these are *plugins*, and there may be other rules that make sense for them. Something to ask the tame legal advisors, at any rate.
Looking briefly at other directories in kdesupport:
- chrpath is a utility program - I wonder why it's in there at all, really, although it's useful on Solaris as well - which is GPLv2 but none of the files have license headers. They do name copyright owners and how the code was derived, but for the license we need to check the COPYING file. Again, best to keep the license text in the source file.
- Eigen has a special exception applied to its template files, which are themselves GPLed. There's one missing license (quaternion.cpp) and the tests are GPLed -- this yields false positives which we should take out from the checker.
- kdewin-installer ships lots of third-party code in whole; this triggers zillions of warnings from our license checking tools. The installer itself is GPLv2 (only) which is problematic these days, given the bits it probably links to.
- qca is just wonderful (but I understand it's no longer developed in KDE SVN).
- qimageblitz tests are missing licenses.
- soprano has some GPL code that the checker complains about; this warrants a double-check to see if the GPLv2 is ok there (like in tests and standalone applications).
- Strigi has some tests that miss a license, some single files are GPL licensed (and this is a problem forlibs building on top of it).
- Taglib is LGPL 2.1, mostly, with the wrong address of the FSF.
- Finally, qt-telepathy has headers with no licenses, but the headers themselves seem to be auto-generated and trivial.
So all in all we can say that kdesupport is supposed to be LGPLv2.1+ and most of the module is, in fact, licensed that way; there are a few minor sticking points but nothing that one or two emails can’t massage away. So let’s do that massage (Aaron gives good one,s too, if you happen to be at a KDE event) so that we can pass our own license purity tests. We’re a Free Software project; the Free Software licenses we use are our most important tool in creating and maintaining that freedom.
[[ And as an addendum, I found GPLv3 license logos while wandering around on the FSF sites, which are one way of clearly advertising what the license is on the code you ship. Quite useful, also in reports when talking about licensing. ]]
This blog post is distributed under the following terms:
Copyright (C) 2008 by Adriaan de Groot <email@example.com>. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS BLOG POST IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS’’ AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. DANGER WILL ROBINSON. BAA MEANS NO.
The Wayback Machine ⏲ does not archive everything. Broken image links are marked with a 💔.