While there hasn’t been a huge amount of public discussion about it, we’ve been working on a license change for web2project. At present, web2project is available under the GNU Public License v2 (or GPLv2). While there’s quite a bit of fear, uncertainty, and doubt surrounding its use, there are a few concerns that result from the various interpretations and legal analyses:
- There are numerous conclusions on if there even can be non-GPL-compliant components that are wholly dependent on GPL’d software. The majority opinion – according to projects like WordPress, Drupal, and Joomla – is that these components are derivative works and therefore also must be GPL.
- To protect against this, there’s the concept of a “shim” which is a small piece of code that sits between the GPL application and your module that would allow more flexible licensing, but that concept is also an area of contention.
- On the plus side, including one line of GPL code in a non-GPL project is unlikely to cause a problem because Fair Use is still Fair Use. More specifically, one of the factors assessed in Fair Use determination is “the quantity or percentage of the original copyrighted work that has been imported into the new work. In general, the less that is used in relation to the whole, e.g., a few sentences of a text for a book review, the more likely that the sample will be considered fair use.” [Source: Wikipedia]
So what does this mean for Web2project?
Under this reasoning, all web2project modules would have to be and remain GPL. If this module interacts with or is wholly dependent on web2project and differently licensed systems, it has to be GPL.. but we’re not sure what that means for the other systems. What we know, as far as web2project is concerned, is that the license may place infeasible restrictions and rules on your code.
The GPL puts rules on the code of our contributors that are against our vision of Freedom and the spirit of Open Source. It attaches strings – both seen and understood and implied and unclear – that we aren’t willing to deal with any further. We won’t let our users to get tied down by the same unclear rules that have plagued other communities.
Therefore, to protect the integrity of the project, the work of our community, and the growing integrations being built on web2project, we’re changing from the current GPLv2 back to the original BSD license.
There are really only two ways to change licenses legitimately:
Get all contributors to agree to the change.
Remove the code of any contributor who doesn’t authorize the change.
For the past few months, we’ve been working on exactly that. Digging into the ancient past of web2project and dotProject, we found the details of something we all knew: dotProject itself changed from BSD to GPL between v1.0 and v2.0. Unfortunately, there are no records to who made this decision, how, when, or any discussion, etc, but based on SVN records, the license changed on March 10, 2005. From the beginning of dotProject through the date of our fork (November 2, 2007) and then into web2project, we have a total of 33 contributors:
- There are four individuals who contributed 4 lines of code or less, we’ve excluded them.
- There are seventeen individuals who contributed exclusively to dotProject 1.x (aka prior to March 10 2005). Since they were contributing to a BSD project, we assume that they agreed to the BSD license.
- Of the remaining twelve:
- One is contributing exclusively to web2project and agrees.
- Four individuals contributed to both dotProject 2.x and web2project and all agree.
- Three individuals contributed exclusively to dotProject and all agree.
- This leaves a total of four individuals, two of whom are unresponsive, two oppose.
Of the combined history of the projects, this gives us 888 SVN commits which are not approved. Of those, we’ve reviewed 365 commits which were merges of already approved code or code we’ve since deleted (not replaced, deleted). This leaves us a total of 523 commits that are still under review and/or need work. To put this in context, this is approximately 7% of the 7000 total commits between the two projects.
At our present rate, we will finalize the license change well in time for web2project v3.0.
Going forward, all web2project development should be considered licensed under the Modified or Clear BSD. Anyone contributing more than a line or three of code will be expected to agree to a simple Contributor License Agreement.