This post is more in the tone of thinking-out-loud and asking for opinions and comments than my usual discourse. As for why this post is here and now, I’ll leave that for later, when some ideas are more mature.
- the freedom to run the program, for any purpose.
- the freedom to study how the program works, and modify it. (Access to the source code is a precondition for this)
- the freedom to redistribute copies.
- the freedom to improve the program, and release the improvements to the public. (Access to the source code is a precondition for this)
In a commercial environment, such freedoms more often than not do not allow making money out of a GPL-ed venture. The traditional sell, hold Intellectual Property (IP), and ensure market dominance strategy does not work out because any client can excercise eir freedom and release your work to the public. While customers can hold you to an NDA, the reverse is never true. Your intellectual property can be squandered with disdain, and this is in a sense, understandable, because GPL and its ideology precludes “ownership” of information, and hence does not understand that term.
I am not a GPL guy (and never will be) – the BSD/MIT license is more my personal taste – but I respect the safety-net provisions in the GPL and understand why those provisions are in place. In any coding community – Drupal for instance being a small microcosm – there are developers who work long and hard at their code. They do have a right to expect somebody else using their code to contribute something back. [Digression: the point I contend is that such a contribution should be enforced – I strongly believe that people when left alone, are essentially good-at-heart and will contribute back anything that they can, and any perceived shortcomings of the BSD/MIT license for not including this clause does not stand up to even evil corporates: the most elegantly designed OS ever (perhaps) is built on a free license, and it contributes something back too]. But since I understand the reason behind the clauses, when I do business with GPL-ed software, I would like to respect its provisions, and still find a way to make money.
Supposing my company is asked to make an accounting solution for a client, and I use an opensource software as the base, but add in my own customizations. My customizations do not stand alone, and therefore, can’t be licensed under a separate, more constricting license. Taking into consideration the IP issues mentioned above, what is the best business model for me to pursue in this instance? How do I make money off GPL? Read , , , and , analyze, ponder, brainstorm and decide.
How does a totally hosted-solution figure into the picture? Supposing my product is a totally internally hosted solution, like say, Basecamp (but of course, based on opensource technologies), am I violating the GPL by making my customizations “available” to my clients without providing the source? Specifically, I’d like a clear distinction between “using” a program and distributing it – the GPL (at least, version 2) does not seem to give a clear picture regarding hosted web services.
It’s interesting to note what the GPL FAQ says about the issue: (Is making and using multiple copies within one organization or company “distribution”?)
No, in that case the organization is just making the copies for itself. As a consequence, a company or other organization can develop a modified version and install that version through its own facilities, without giving the staff permission to release that modified version to outsiders.
However, when the organization transfers copies to other organizations or individuals, that is distribution. In particular, providing copies to contractors for use off-site is distribution.
Note that, for a hosted solution, there is no transfer of copies of the program, it remains under internal control. So, in this case, is it both legal and ethical to customize a GPL-ed program without releasing the source?
If it doesn’t violate the letter of the GPL, it certainly seems to violate the spirit. There is no way to know the “inner workings” of the program, neither is there a way to tweak it.
- As an addition to 1 above, find out how companies on Opensource models survive. From Redhat, to the near and dear Linuxense.
Conclusion: I definitely do want to use GPL (and even BSD) to do business, but I’m still deciding how exactly to go about it, and what constitutes a sustainable revenue model.