Free software - or copyleft - licensing seems to have got off on the wrong foot with business, which is surprising given its many commercial benefits.
For a variety of reasons business is often seen as antipathetic to copyleft licensing. The GPL - the GNU General Public License - the most popular copyleft licence, sometimes gets a hostile press, often for reasons that don't reflect its real and positive effects.
Arguments about the pros and cons of copyleft and permissive licensing go back a long way. A permissive licence is as it says, and allows the user to copy, repackage, sell, or change the code in any way the user likes, as long as some form of attribution is given.
A copyleft licence, such as the GPL, gives similar rights but ensures reciprocity by obliging those who distribute the code to pass on the same rights to others, unimpaired, which by definition includes giving access to the source code and to any changes that have been made to it.
The software can be used for any purpose the user pleases, and can be repackaged and sold, or given away free. Verbatim copies can be made of the program, but must be accompanied by the GPL and any notices referring to the GPL, including the copyright and disclaimers of warranty for the software. All changes to the code must be noted, with notice of the changes and who made them.
A permissive licence puts its faith in the better side of human nature and is often said to be friendlier to business, because users can do as they wish with the code and have no obligation to pass on alterations to the software.
For their part, advocates of the GPL argue that copyleft not only guarantees the freedom of the code but also helps build reciprocity and community. Copyleft helps ensure open standards and the continuity of the code, which are vital if people are going to interoperate in a networked world, and this philosophy has worked to the advantage of users and developers alike.
Free software licences' range of emphasis
There are varying shades of emphasis and no two licences are completely alike, so the Apache License v2, which is classed as permissive, offers some level of patent cover, and weaker copyleft licences such as the LGPL or Mozilla Public Licence are more flexible than the GPL.
Contrary to myth neither the GPL nor the LGPL are viral, in the sense of forcing any software linked to them to adopt the licence. GPL code can be dynamically linked to binary proprietary code, and the LGPL allows static linking to proprietary binaries. Relationships between the GPL licences and other software are carefully explained in the GPL FAQ.
The choice of licence comes down to personal preference, and both approaches can have good or bad effects, depending on the user's perspective. When it comes to business, the choice of licence is pragmatic and should be swayed by the aims of the project.
While, for instance, Google has aimed to remove all GPLed software from Android's userland, and Apple won't allow GPLed software to be sold through its App Store, it is indisputably the case that both personal and business users of projects such as the Linux kernel and GCC have gained from the provisions of a licence that makes it easy to share code for mutual advantage, and hard to fork code for individual or corporate gain.
Beneficial effects of GPL for commerce
GCC, the ultimate portable compiler, is a good example of the beneficial effects of the GPL to commerce and industry. When the GNU Compiler Collection (GCC) first came on the scene, compilers were an expensive commodity. GCC made it cheap and affordable for software vendors and OEMs to port software across a wide range of operating systems and computer architectures.
A side effect of this approach was that devices became cheaper, and open-source operating systems such as Linux and BSD could be ported more cheaply to routers, mobile and embedded devices, which spread the usefulness and reduced the cost of these devices.
Because GCC became ubiquitous and used the GPL, it became the path of least resistance for companies to add the code to compile languages and proprietary architectures into GCC, which in turn made the languages and architectures accessible to others.
If chip manufacturers or the designers of proprietary languages kept their changes to themselves, the languages and the architectures would be less useful to software vendors and OEMs and to the manufacturers themselves. The portability of GCC played a big part in making it possible to port Linux to many devices.
A permissive licence would not have prohibited this effect, but would have made it less likely - if only because the GPL enforces reciprocity and in doing so encourages some level of commonality.
Reciprocity's positive impact on software
This effect is even truer of the Linux kernel. Reciprocity has been a positive asset for Linux because copyleft ensures a company that contributes to the Linux kernel has the assurance that it will also benefit from the contribution of others.
In a recent BBC interview, Linus Torvalds commented on this effect: "If you're a person who is interested in operating systems, you don't want to get involved if you feel like your contributions would be somehow taken advantage of, but with the GPLv2, that simply was never an issue."
He said the fundamental property of the GPLv2 is its mutually beneficial nature: "I'll give you my improvements, if you promise to give your improvements back. It isn't just fair on an individual scale, it's fair on a company scale and it's fair on a global scale."
Torvalds said if competitors fail to put in the same effort that you do, they can't reap the rewards you can: "If they don't contribute, they don't get to control the direction of the project, and they won't have the same kind of knowledge and understanding of it that you do. So there really are big advantages to being actively involved - you can't just coast along on somebody else's work."
GPL's assurance of freedom and commonality
A company may fork, strip or enhance the Linux kernel according to the strengths and weaknesses of the company's hardware, but its enhancements must be made available to others. And the GPL, which gives assurance of the continued freedom and commonality of the code, is the driver behind this impulse.
From a business perspective, the primary advantage of a permissive licence over a copyleft licence is that it grants the user the right to fork and reuse the code in a proprietary setting, or to add value with proprietary add-ons. This effect has worked very well for some companies, which have benefited from the ability to reuse the code.
But the ability to fork code in a proprietary setting can also discourage others from contributing to a project, knowing that a competitor can add value to their contribution and profit from a one-sided transaction.
The ability to fork code in a proprietary setting can retract some of the advantages of being open source, yet many companies take the view that the ability to fork is an advantage as long as it is a choice that's open to them. It is a matter of opinion whether this is a beneficial aspect of permissive licensing, or a sub-optimal use of free software.
A permissive licence offers real freedom to end users, who can do as they wish with the software, and works in the interests of companies with a pressing need to share code and guard their intellectual property.
But the GPL has also proved its value as a collaborative tool - because community, commonality, interoperability and continuity of the software are useful side-effects of the licence, and increase the advantages of being open source and free.