Our copyright licences
The HRE codebase licence – GNU AGPL
As we want HRE to be as open as possible, we have decided to license the software under one of the GNU General Public Licences, often shortened to ‘GPL’.
GPLs are well-established dedicated software licences under which the initial copyright owners (the individual developers) voluntarily release the rights they have under their copyright to everyone, to the greatest extent possible, while reserving only such rights as are needed to prevent others from grabbing the code for themselves and then undermining those freedoms.
While it might seem odd that a copyright licence is, in some way, ‘more free’ than simply releasing all the code into the public domain, without any copyright protection whatsoever, the problem is that public domain code can be re-used by anyone in any way, even in ways that may not be very ethical. For example, a commercial company would be perfectly entitled to re-use public domain code within their own commercial product without payment and without any obligation to give anything back to the software community. They could use our free code to make their own (enhanced) product, potentially taking all our users with them. Using a GPL prevents commercial companies from making use of free code while at the same time keeping their own improvements confidential and proprietary.
All GPLs enforce the four freedoms of ‘free software’:
- the freedom to use the software for any purpose,
- the freedom to change the software to suit your needs,
- the freedom to share the software with your friends and neighbours, and
- the freedom to share the changes you make.
The GPL explicitly disclaims all warranties, to protect the software writers.
Anyone attempting to use the software in a way which is incompatible with those freedoms falls foul of the GPL, and can be stopped. Software licensed under a GPL is free software, and no re-user is allowed to do anything that prevents it from remaining free software, even if they make improvements or distribute it bundled with other software.
This approach is called copyleft: the software is copyrighted, but instead of using those rights to restrict users, like proprietary software does, the rights are used to ensure that every user has freedom.
The licence we have adopted is called the GNU Affero General Public Licence or any later version (‘GNU AGPL‘). This is very similar to the better-known GNU General Public Licence, but provides additional protection to ensure cooperation with the community in the case of network server use. The licence provides us with some measure of protection from any commercial organisation who might be tempted to take our code, add their own proprietary enhancements, and sell the ‘improved’ version as an online service without providing anything back to the open source HRE community.
Under the GNU AGPL, developers release the code under an irrevocable licence which allows anyone to make use of the four freedoms. Anyone can use or re-distribute the code as-is, for any purpose, but a re-user wanting to re-distribute a modified version has to comply with the following:
- The full source code (including modifications) must be included;
- All modifications must be released under a GPL, so that the community gets free access to all improvements;
- No contract or other terms may be imposed which are incompatible with the four freedoms;
- The program can’t be supplied in such a way that it runs only on a platform that the re-user controls;
- All downstream recipients automatically receive a licence to run, modify and propagate the program in the form that they receive it; and
- [The special Affero GPL clause] Anyone who modifies the program and then runs it as a service across the internet must agree to provide free of charge access to a full copy of the modified source code. That source code must be freely licensed in the same way, so that the modifications can be incorporated back into the community version if desired.
Note that there’s nothing in the licence to stop re-users for charging for their versions, or from incorporating the code into a commercial product. But if they do that, they have to re-license all improvements back, which means that the community could if it wishes make those same improvements available without charge.
Any chosen licence will inevitably introduce restrictions on the inclusion into the HRE codebase of pre-written components which might have been released under some other licence. The GNU AGPL is compliant with GPLv3, so (subject to the agreement of HRE Ltd) we could accept GPLv3 code (but not GPLv2). The GNU AGPL is also compatible with a number of other common licences including Apache v2.
The Software Freedom Law Centre has useful advice on the legal aspects of combining various types of licence: http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html
We intend to provide a clear API to encourage the creation of third party plug-ins. Plug-ins are not an integral part of HRE, and could be privately distributed under any licence. They must access HRE via the published API.
The documentation licence – CC BY-SA 4.0
The HRE documentation will be released under a Creative Commons Attribution-ShareAlike 4.0 International licence (CC BY-SA 4.0). This allows anyone to use, change and share the content for any purpose, including commercial, provided that any modifications are re-licensed under the same terms (similar to copyleft).