The USS Quad Damage

Rethinking the GPL

An idea has come to me over time and all at once: We've been thinking the GPL backwards this entire time. I will try and go through what the problems are and where the solutions lie.

GPL software should then focus on creating a holistic end user experience with that GPL guarantee

Unlike MIT-style licenses which are very permissive, the GPL attempts to secure guarantees for the end user. However, such guarantees are often very hard to deliver, and can be of limited value. Further, the license, when at the “source code” level, is too far removed from an end user for them to consider it valuable. In addition, the “viral” nature of the GPL makes it difficult for business to co-operate in the creation of more software.

My proposal is in a couple of parts, and comes from some observations in history:

  1. Write library code in a permissive license like BSD / MIT. This allows industry to participate, and doesn’t hurt the Libre movement. Instead, use a “guarantee” or branding to re-assure a user that all the binaries are in fact direct from the source, and the source is available. In the early days of BSD / GPL, a lot of people thought it was OK to re-license BSD code as GPL, since GPL is extra guarantees “on top of” BSD. Obviously, this was naive. However, the intent here was to show the user that their code was not tampered with, and present in its full form.
  2. Write end-user code in a GPL style license, and again add that branding as end-user guarantee. The GPL will need to be modified so that linked libraries need only be “guaranteed” (i.e. are formed with BSD style licenses and are not encumbered and the source code is included) as opposed to being fully viral. This will also remove the requirement for an “LGPL”. The thing the user is looking for is the guarantee of the software as presented, not that the software cannot be encumbered in future. It will also be impossible to encumber GPL software, even though it will potentially be linked against non-GPL software, because the guarantee ensures that the source code is available.

GPL software should then focus on creating a holistic end user experience with that GPL guarantee, using either GPL or BSD style licenses for libraries. The guarantee pushes the deliverable of “freedom” front and center to the user’s faces. It also makes the GPL less viral, since it can be linked against BSD-style licenses. However, none of the guarantee is weakened: The software is completely free-as-in-speech. Any use of proprietary software will taint the guarantee at the library layers, thus disallowing its use for the GPLed end user software.

The GPL is clearly not working, and the reason is that it is too onerous on developers, and does not clearly outline the benefit to users. Branding user software with a GPL “guarantee” will more clearly communicate the benefit. Making the GPL “connect” to BSD style licenses (with the guarantee) will reduce the fear of the license for business and individual developers, and will also engender greater co-operation and leverage more BSD licensed software.