A secondary issue that was not addressed during the early stages of the project was licensing. The original IBuySpy Portal was released under a liberal Microsoft EULA license that allowed for unrestricted usage, modification, and distribution. However, the code base underwent such a major transformation that it could hardly be compared with its predecessor. Therefore, when the IBuySpy Workshop application was released, I did not include the original Microsoft EULA, nor did I include any copyright or license of my own. Essentially this meant that the application was in the public domain. This is certainly not the most accepted approach to an open source project and eventually some of the more legal-savvy community members brought the issue to a head. I was forced to take a hard look at open source licensing models to determine which license was most appropriate for the project.
In stark contrast to the spontaneous approach taken to finding a project identity, the licensing issue had much deeper ramifications. Had I not performed extensive research on this subject, I would have likely chosen a GPL license because it seemed to dominate the vast majority of open source projects in existence. However, digging beneath the surface, I quickly realized that the GPL did not seem to be a good candidate for my objectives of allowing DotNetNuke to be used in both commercial and non-commercial environments. Ultimately the selection of a license for an open source project is largely dependent upon your business model, your product architecture, and understanding who owns the intellectual property in your application. The combination of these factors prompted me to take a hard look at the open source licensing options available.
For those of you who have not researched open source software, you would be surprised at the major differences between the most popular open source licensing models. It is true that these licenses all meet the standards of the Open Source Definition, a set of guidelines managed by the Open Source Initiative (OSI) at www.open-source.org. These principles include the right to use open source software for any purpose, the right to make and distribute copies, the right to create and distribute derivative works, the right to access and use source code, and the right to combine open source and other software. With such fundamental rights shared between all open source licenses, it probably makes you wonder why there is need for more than one license at all. Well the reason is because each license has the ability to impose additional rights or restrictions on top of these base principles. The additional rights and restrictions have the effect of altering the license so that it meets the specific objectives of each project. Because it is generally bad practice to create brand new licenses (based on the fact that the existing licenses have gained industry acceptance as well as a proven track record), people generally gravitate toward either a GPL or BSD license.
The GPL (or GNU Public License) was created in 1989 by Richard Stallman, founder of the Free Software Foundation. The GPL is what is now known as a "copyleft" license, a term coined based on its contro-versial reciprocity clause. Essentially this clause stipulates that you are allowed to use the software on the condition that any derivative works that you create from it and distribute must be licensed to all under the same license. This is intended to ensure that the software and any enhancements to it remain in the public domain for everyone to share. Although this is a great humanitarian goal, it seriously restricts the use of the software in a commercial environment.
The BSD (or Berkeley Software Distribution) was created by the University of California and was designed to permit the free use, modification, and distribution of software without any return obligation on the part of the community. The BSD is essentially a "copyright" license, meaning that you are free to use the software on the condition that you retain the copyright notice in all copies or derivative works. The BSD is also known as an "academic" license because it provides the highest degree of intellectual property sharing.
Ultimately I settled on a standard BSD license for DotNetNuke; a license that allows the maximum licensing freedom in both commercial and non-commercial environments — with only minimal restrictions to preserve the copyright of the project. The change in license went widely unnoticed by the community because it did not impose any additional restrictions on usage or distribution. However, it was a fundamental milestone in establishing DotNetNuke as a true open source project:
DotNetNuke(r) - http://www.dotnetnuke.com Copyright (c) 2002-2006 by Perpetual Motion Interactive Systems Inc. (http://www.perpetualmotion.ca) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.