If there is one thing which I have learned since I started working on DotNetNuke, it is the fact that intellectual property law is confusing - but having a firm grasp on the fundamentals is essential to the long term viability of any open source project. Ever since we launched the Sub-Project initiative for DotNetNuke, it has become obvious to me that most software developers do not understand the basic principles of intellectual property ( IP ) - so I thought it would be useful to share some information.
There are two main contributing factors when it comes to software IP - Copyright and Licensing.
The Copyright holder is the person who owns the rights to the IP. Normally this is the creator; however, copyright can also be transferred to other individuals or companies. The Copyright holder has the right to decide how their IP can be used by others. When it comes to software, these usage details are generally published as a License agreement. License agreements can vary a great deal depending on the environment but they generally resemble a standard legal contract - explicitly outlining the rights and responsibilities of each party. The Copyright holder also has the right to change the License at their discretion.
For DotNetNuke®, Perpetual Motion Interactive Systems Inc. ( PMI ) is the Copyright holder. As Copyright holder, PMI has stipulated that DotNetNuke is available for usage under a standard BSD License. The BSD is one of the most mature and least restrictive open source licenses available. Basically, there are no restrictions on usage other than the fact that you need to retain the copyright and permission notice in the application source code. PMI's role is to ensure that the official DotNetNuke software distribution is offered under the BSD License in perpetuity.
DotNetNuke® - http://www.dotnetnuke.com
Copyright (c) 2002-2005
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.
Anybody who contributes source code to the DotNetNuke project must submit a signed Contributor License Agreement to PMI. This document ensures that the individual has the right to contribute IP to the project without any type of encumbrance. It also transfers copyright for any contributed IP to PMI. This is important because PMI needs to be able to ensure all of the IP is licensed consistently throughout the entire application. Basically this protects the community from a situation where an individual Copyright holder could change the license restrictions for a specific piece of IP they contributed to the project.
When it comes to the DotNetNuke Sub-Projects, we have a number of projects which were developed as part of the Core offering and have now been seperated to allow for more active community participation. The Copyright for these projects is still maintained by PMI, and they are offered under an identical BSD License as the Core.
Sometimes we reach out to external parties to determine if they would like to join the DotNetNuke project and contribute their IP. In these cases, the IP rights are owned by the external party. We can not adopt the IP under this scenario because it would mean that we would have no control over its licensing. So even if the contributor agreed to license the IP under the BSD initially, they would have the ability to change the license at any time in the future - which would put all users of the IP in jeopardy. To mitigate this risk, DotNetNuke must have rights to the IP so that the community is adequately protected. However we do not feel it would be fair to force a contributor to release all of the rights to their IP. Therefore, we have a Sub-Project Software Grant agreement - a contract that provides both parties with full Copyright to the IP in question. Essentially this means that the IP has been split into two independent versions. The contributor owns one version and is allowed to license it as they see fit. PMI owns the other version and licenses it under the standard BSD License. The end result is a win-win for both parties as well as the community.