Daniel and I have been investigating a way forward for the project to overcome the various GPL / non-commerical / use of official binaries / IP problems.
We think we have a solution by moving the source code to a different license based on the BSD 3 Clause license license (
https://opensource.org/licenses/BSD-3-Clause) with the addition of an additional non commercial clause.
We are fairly certain that the BSD license is flexible and is able to have additional clauses, and our non-commercial clause will be :
4. Use of this source code or binary releases for commercial purposes is strictly forbidden. This includes, without limitation,
incorporation in a commercial product or incorporation into a product or project which allows commercial use.
I will put the entire text of the license at the end of this post
To change the license on the firmware requires that all copyright holders agree to the change; so we have undertaken some analysis of all contributors to to Github, and have decided to split separate the User Guide from the source code, so that contributors to the User Guide to are not counted as contributors to the programming of the actual firmware.
Some of you may have notice my post about the new location of the User Guide.
https://github.com/LibreDMR/OpenGD77_UserGuide
which occurred nearly 3 weeks ago.
Additionally we know that there are a number of contributors who the core development team want as contributors to the code, so Daniel has written all contributions by KC7RBW.
I have rewritten code written by the anonymous author of "mbelib", which was just 1 function used as part of the DMR audio decode process, because its impossible to get approval from an anonymous author to use their code under a different license.
The other external source code contribution was code I ported from MMDVMHost for use in Hotspot mode, which I thought was written entirely by G4KLX. However, on closer inspection, I found that the MMDVMHost code we actually use for Hotspot mode, was not originally written by G4KLX, but that his code is based on code written by Ian Wraith, and Ian's code is based on code written by another anonymous author who created the DSD project.
So I have been rewriting the sections of Hotspot mode which decode and encode raw DMR frames from first principals, using data from the ETSI standard and othe sources, so that this becomes an original work by me, and hence does not have legacy license issues.
We have also analysed all other submissions, and the majority of small submissions have already been rewitten by Daniel over the last 6 months or more, as part of a general reorganistion and rewrite of a lot of the user interface.
Additionally, I have contacted Kai DG4KLU and Alex and Colin and other remaining contributors to ask for their agreement to change the license to BSD + Non-commericial and all have agreed to this change.
So Daniel and I feel fairly confident now that we are close to being able to change the license on the source code.
The other major problem, is the incorporation of the sections of the official firmware into the OpenGD77 firmware, although this is not a problem when using the BSD License, it is still technically a IP problem, becuase we don't have written authority by Radioddity to use their binary sections, and there are other potential problems with distributing their binary sections from servers outside of China, becuase they contain the DMR codec whose license is unknown.
So we will to follow the MD380 tools method of distribution, where the OpenGD77 firmware no longer contains the official firmware sections, and the firmware loader, in the CPS needs to merge the OpenGD77 firmare sections into the official firmware.
For this to work, people will need to download the official firmware from Radioddity's website and extact the firmware file (.sgl) from their official fimware zip package, and select this in the CPS as part of the firmware loading process.
Additionally, we also need to comply with the licensing requirements for the use of the CPU manufacturers Software Development Kit, Application Programming Interface (SDK API), as well as the FreeRTOS multitasking operating system which the firmware uses.
Hence the firmware will need to be distributed as part of a zip package which also needs to contain a license document containg the copyright statements from NXP/ Freescale Semiconductor Inc, and Amazon.com (for FreeRTOS), as well as our own license document, and a readme and a contributors list.
So I'm afriad that the installation process can't ever be as slick and easy as it used to be, but we have no real choice in this matter as rewriteing all the SDK / API and FreeRTOS components is not a viable option.
Anyway, we are hoping it won't be too long before we are able to resolve the ramaining legal and technical issues and I will post again when there is any major progress to report.
And for the record, the new proposed software license is....
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
4. Use of this source code or binary releases for commercial purposes is strictly forbidden. This includes, without limitation,
incorporation in a commercial product or incorporation into a product or project which allows commercial use.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.