Reports on the Death of the GPL …

… are greatly exaggerated.

It’s funny, from my small corner of the world it seems like the GPL is under attack of late. First, back in March, esr questioned the usefulness of the license. And now a lot of discussion has built up around a post by Benjamin Black comparing the GPL to DRM. Since I am nothing if not fashionable, I felt I should throw my opinion into the mix.

I have to disagree with Mr. Black’s premise that

it [the GPL] acts as a virus to force the release of ever more source. the gpl serves to rigidly control what you can and cannot do with software covered by it, and is thus the license equivalent of digital rights management

The GPL is a rather simple license, and I don’t view its requirement that changes to GPL’d code must also be GPL’d as “rigidly controlling” what one does with it. I can run GPL’d code on any device I want. I can modify GPL’d code any way I want. I am free to do whatever I want with GPL’d code as long as any changes I make are given to whomever I share the code. Heck, if I don’t share the code the license doesn’t apply, since it is based on the making of copies (copyright) and not possession.

DRM, on the other hand, exists to lock digital works to a particular device, or to limit the number of copies one can make, or to otherwise limit what one can do with the code.

Mr. Black’s viewpoint seems to be that the GPL should exist to empower users and that it is wrong for developers to have much, if any, control over their work. He states “the license intended to protect the rights of users is instead being optimized for the rights of developers”.

Huh? This seems a little insane to me. Software licenses in general are designed for the developers (publishers) of software, not the users of software. As far as I know the GPL puts no restrictions on “use”. As the creator of a piece of work, shouldn’t I have some control over it? If I wish to share it with others, don’t I get to create the rules by which this sharing occurs?

The problems he raises are not licensing problems, but management issues, specifically community management issues.

I visit a large number of companies each year. Some clients have serious limitations on internet access, whereas others are very wide open. I was at one client where I was talking with the director of the management group, and I pointed out that I was very surprised at how open their internet policy was. He pointed out that if there was a employee spending time surfing for porn or playing World of Warcraft, that wasn’t a technology problem but a management problem. It wasn’t necessary to limit the technology. I should point out that he had an amazing group of productive people working for him.

The same thing applies to the GPL. The GPL is not flawed nor is it overly controlling. It is just one set of rules that the creators of software can adopt. Don’t like it? Don’t use GPL’d code. As a contributor to an open source project, you can choose whether or not to contribute. It is a management issue to insure that your community it happy with what you do with the code. It is them you have to satisfy and no others. A license doesn’t help you do that.

There is a lot of discussion that the Apache license is better for open source projects. That most certainly is not the case with OpenNMS. We have built an amazing platform that is highly scalable, and all we need now is a small amount of investment in order to work on the webUI and make it easier to use and more attractive. If we were under a permissive license there would be nothing preventing a company with a couple of million in VC from taking our work, finishing it, and making a huge profit. Heck, they wouldn’t even need to release their final product under an OSI-approved license at all. Is that fair to the developers? Is that even fair to the users?

In my very first post on the subject of open source in business, I went over a number of business models, including the dual-license model. To me, the dual-license model is a great compromise – as long as 100% of the code is available under an open license, it should not be considered wrong for a company to also generate revenue from another license, like MySQL used to do. The only caveat I had was that some developers would not be happy with that arrangement, and thus it might reduce the amount of contribution.

MySQL used to require that any contribution they accepted also include the copyright. We found that to be a little restrictive – what if you contribute a cool algorithm you came up with but you also want to use that in another program? Shouldn’t you be able to own your code?

So we were happy to discover the Sun Contributor Agreement which implements the idea of dual copyright – the project gets the copyright to the contribution and the author retains the copyright to their work. This was acceptable to our team – it may not work for everyone.

Since the copyright to OpenNMS is now wholly owned by The OpenNMS Group, we are considering offering a commercial license for the platform to other companies who wish to build a custom management solution. Any code we write, however, will also be published under the GPL. This is a promise we have made to our community as well as the governing body of that community, the Order of the Green Polo. They trust us to use any revenue we make to better the product, and a dual-license may be the best way to accomplish this quickly.

But while the GPL works for OpenNMS, sometimes a more permissive license is better. In fact, some of the work we are doing with another project will be published under the Apache license. As the developers of the code we wish to have some say in how it is used, and our choice of license allows us to do that.

Mr. Black seems to take issue with this. It seems like he wishes to be able to commercialize others work so that he can decide “who gets paid” versus those that create the software. Since the GPL makes this difficult, it must be wrong and we can compare it to DRM. His definition of free is close to public domain, and anything else is too restrictive. I have to disagree and insist that there are shades of grey from commercial software with content under DRM to the public domain, and that the GPL is much closer to the latter than the former.