GPL for Internal Software Development
The majority of software developed today is not for commerical markets but for company internal use. A company will have its own developers or contracted developers write the software for some specific internal purpose. Quite often the software has little if any other commerical value. However, such programs sometimes contain various “trade secrets” or other information, techniques, or methods which the company would rather hold confidential. This is where using the GPL may not be a great idea.
The GPL requires that you give all users of the software the same rights that you have of the software, meaning that users can redistribute, modify, and otherwise do as they will just as much as you can. It doesn’t really matter if these users happen to be your employees.
At the same time, most companies have policies and contracts which specifically prohibit such behavior. Employees often cannot redistribute internal software to anyone, in or out of the company. These policies conflict with the requirements of the GPL and I doubt many companies are interested in rewriting said policies.
Imagine if you will a disgruntled employee who decides to burn a CD of your GPL’d internal software and mail it to your competitor. Now you’ve got an interesting situation on your hands. While this very well may have violated the employee’s contract (thus giving ample grounds for termination and/or legal actions) it also exposes your company’s software practices. If you do not allow the users (your employees) to redistribute the software then you are violating the GPL and cannot use GPL’d works. This means you’ll need to rewrite the software or in the case of something like QT purchase a commerical license. Alternatively you could continue adoption of the GPL and potentially foreit any software or information you wished to keep internal. I’m not quite sure what this might mean for any “trade secrets” or other proprietary information which may have been embedded in the software, but I imagine there is a risk of losing rights to them completely.
So, long story short, while one might be able to “get away” with using the GPL for internal software development, unless you have no problems with giving the software away to the world, I for one would advise against it. Note that this problem does not necessarily arise for other open source licenses such as the ASL.
Update: Someone pointed out the following in the GPL FAQ:
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.
So apparently some of my conclusions are incorrect. However, I’m still leery of using GPL’d software for internal development. Additionally, doesn’t this through a bit of a wrench into the business plans of someone like Trolltech or MySQL?




§Commentary