I am often asked to explain the reasoning behind the ownCloud licensing, the ownCloud Enterprise Modules, as well as any derivative work. However, this is not that easy to explain, so I will try to be as clear as possible in this blog post, but I also expect a couple of comments and questions from contributors around the world and I will surely incorporate updates and/or corrections as needed.
ownCloud is Open Source Software and is licensed under the Affero GNU Public License Version 3 (AGPLv3). For clarity’s sake, I will concentrate on ownCloud Core, where source code is distributed and worked on in the ownCloud Github repository. This repo is covered by the ownCloud Contributor License Agreement (CLA), which essentially assures that every developer gives all rights under copyright law to the ownCloud legal entity, and in return includes a pledge that such code will always be released as Open Source.
AGPLv3 is a copyleft license, which means that any modification of the code is automatically licensed under AGPLv3. This is true for any distribution or – and that is the speciality about the Affero license – if the software is just made available for somebody to communicate with. As the Free Software Foundation explains, „if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there.“ In the case of ownCloud, this means that whenever you make ownCloud available for any usage on your server via the Internet you are required to provide any modified source code.
ownCloud has an integrated apps concept. This means that it can easily be extented with ownCloud Apps. In fact, when you download ownCloud Server or ownCloud Community Edition you already get several included apps and via apps.owncloud.com you have access to 150+ additional ownCloud applications from the ownCloud Community.
How does the AGPLv3 apply to those apps and any apps you write as extensions?
Very easily; every ownCloud app is treated as modified work because the code from the ownCloud core is always running in parallel of any such extensions.
From the beginning, when founding ownCloud as a company, we expected people, particullary from large organizations aka enterprises, to expect something different. They want to keep modifications private, particullary as they often happen in the context of IT integration and would reveal other software and data center structures to the public. They also want to develop extensions (ownCloud apps) that they can keep to themselves and 3rd parties to be enabled to deliver additional ownCloud apps, which can be kept private or can be sold using commercial licenses.
Our Enterprise Subscriptions provide to all customers the same ownCloud Core AGPLv3 code licensed under the ownCloud Commercial License. This is commonly called „dual-licensing“.
Since 2012 the ownCloud Commercial License has allowed this all to happen, and all of our customers customers and partners continue to have full access to all of our Source Code and Any modifications they make, can be kept private – if they choose so.
All of our Enterprise only modules are also shipped using this license, which means that full Source Code is available and can be freely modified without the need to publish. This gives our customers, partners and users across the globe the possibility to choose to either publish any and all modifications and extensions to the original ownCloud Core, or purchase a Commercial License which means that this requirement is omitted!