When it comes to the GPL wordpress front-persons Jane Wells or Matt Mullenweg do not get tired to underline the importance to spread the word about software freedom. That is generally a good thing if the information provided is correct which it normally is in the big picture and if you put personal sensitivities aside.
But it looks like that there is code of second class in WordPress which does not deserve to spread the word about or to get protection by it’s license. That is the code in WordPress that is under GPL’s little sister, the LGPL license. Asking to put the license text into the package, I was confronted with absurd and abstruse arguments over the last days. Stuff like:
- “License Files are bloat”
- “Components from elsewhere are not required to have copies of the license”
- “License Files irritate Users”
- “License Files are not needed because there is a link”
- “License Files are not needed at all because the license is so popular”
That was not by a snotty little scammer who wants to cheat customers, that was by a respected WordPress regular: Otto. Otto is really acting stupid when it comes to licensing, this deserves a special mention.
But it’s not only Otto who has some questionable attitude on free software licensing. There is as well Nacin. I was not surprised he jumped on the bandwagon for the bloat and the irritation argument – if there is some stupid argument that looks like it’s doing for his interests, he takes it, regardless how cheap it is. But he also noted some other detail where WordPress codebase has licensing/copyright issues with. And because there are more issues which will not get fixed (by his opinion), this LGPL issue is not to be fixed as well. About which issues was Nacin talking here? This needs some explanation:
The GPL How-To
The folks who made the LGPL and the GPL License, the Free Software Foundation, did not only create licenses that are pretty well aiming for the freedom of the software we share. They also provide additional information on how to apply the licenses to software, a.k.a. the GPL How-To, so that the freedom is properly enforced. A kind of guide how to deal with the licenses. For such things maybe: legal protection, probably with an eye on the international differences for the freedom of the software. Generally recommendations you should consider when you’re interested in free software. That’s done best early (as most things), but at least when your package has got a certain age and grade of distribution you should take a look in there. Even if you’re not using the GPL this might be a useful read for you.
You might now think that WordPress as it is using the GNU’s licenses is actually making use of these recommendations, right? Not really. Even the codebase has a 7+ years history, it feels quite young when you touch the legal part of it. And there are a multitude of recommendations in that How-To that are not yet done with the WordPress codebase. This is mostly Copyright related which looks like a pretty weak point in WordPress but that’s another topic amongst other topics. This post is about showing the license as my motivation is to improve the situation for everybody’s good.
Make an Educated Guess.
So what happens when you confront core developers with one of the recommendations: put the license file inside the package? – Make an educated guess.
Naturally they neglect that because those are recommendations “only”, so a “should” is not a “must”. This sort of mindless argumentation might be suitable for a boolean logic thinking programmer that has problems to properly read PHP statements, but does it fit on a larger scale? I strongly doubt. I mean, do we need to declare war on the code’s license for the sake of the difference between a should and a must? Undoubtedly not! We should protect and enforce the freedom of that code that ships with WordPress. Including the one that is under LGPL.
And one part of that is to ship the license with the package. Something I thought that would never be questioned in a FOSS project. WordPress steps out again – but in the wrong direction.
Anyway, to question having a license in the software package was not something new by Otto or Nacin. It is an opinion among more of the core developers that specifically license texts can be replaced with URLs to some third party website that most often even do not contain any concrete license text are enough to fulfill licensing requirements. That came first to my attention in Ticket #14703 which was about the BSD license.
The WordPress BSD Usage Rights Dilemma
The BSD License explicitly grants usage rights if the copyright statement, the license text and the disclaimer is shipping with the code. Was the license text and the disclaimer passed along with the code? Make an educated guess again. It somehow “naturally” was not. That “naturally” for a wordpress lead developer, that it was with any doubts for him to have a URL instead of the license. You think I’m kidding? Not at all, read yourself what Ryan Boren proposed: “The file […] links to the license […] clauses are met.”.
That was a bit of a shock. The BSD license is very short and very simple one. It clearly states, that you need to put the text into the software otherwise you loose rights to use the software. Does that mean a lead developer needs to consider to do so? Hell no! “clauses are met”. What happened?
The original author didn’t conform with his own BSD – the needed texts were not in the file (some friends and visitors could not even find any copy of the library licensed under BSD at all all over the internet). The author missed to put the license in the file. This might be his mistake, but it’s also the mistake of a user to not check if all conditions of the license are met. Gladly, the copyright holder Incutio Ltd. released an updated version with the BSD license then. This file got committed into trunk and the discussion at least for that ticket was over – with having the license in the package – at least for that library as BSD often has a modification of each license text (take this BSD text if you want to prevent that for your software).
How to Show License? – Retain it!
But WordPress is a project with zombies. Because there was such a confrontation about the topic of whether or not licenses needed to be part of the package and if so, if URLs are enough to provide the license I started to get in touch with other people of whom I thought they should actually know better. I mean persons who not only have some opinion but who know about what their are talking. The result was pretty clear:
Generally you need to include the license. This is to make sure that people getting the code know their rights.
I think this is a pretty good approach and should be the least common denominator.
And what does the LGPL itself states in specific?
And you must show them these terms so they know their rights.
I mean that’s all perfectly clear and obvious. Maybe some folks had just forgotten to take their medication or had sort of a bad day 😉