Page 1 of 6

Licence change?

Posted: Thu Mar 11, 2021 12:50 am
by VE3XEJ
I've been following OpenGD77 for a while, it's awesome for the amateur community to build and maintain open firmware.

The OpenGD77 project has been GPL-2.0 since before it was forked from hamdv, and rogerclarkmelbourne/OpenGD77 remains tagged as GPL-2.0 in GitHub. However, I noticed this change to README.md was made two days ago:

OpenGD77 - licence change.png
OpenGD77 - licence change.png (21.41 KiB) Viewed 6469 times

I also read an announcement by Roger posted the same day, March 8, which read, in part:

"Although the public source code does not contain the latest release sources, I am endeavoring to apply bug fixes to the public source code for serious bugs or bugs which I can easily correct."

This raises two questions:

1) Is a change being made to the project licensing? I am particularly concerned by the removal of the GPL-2.0 reference from the README.md file and the addition of terms that appear to conflict with the GPL.

2) My understanding of the GPL is that source code can not be withheld if the binary is distributed. In the words of the licence preamble, "For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights." If the "latest release sources" are not in the GitHub repo, where can I obtain them from?

Thanks,
Eric

Re: Licence change?

Posted: Thu Mar 11, 2021 2:07 am
by VK3KYY
VE3XEJ wrote:
Thu Mar 11, 2021 12:50 am

2) My understanding of the GPL is that source code can not be withheld if the binary is distributed. In the words of the licence preamble, "For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights." If the "latest release sources" are not in the GitHub repo, where can I obtain them from?

Thanks,
Eric
The License was never valid, because the project contains large sections of binary (almost have the binary size), for which there is no source code, because the firmware used sections of the official Radioddity firmware.


So to say that the binary can't be distributed without all the source code being available, means that the binary should never have been distributed.

Original conditions from the original author Kai DG4KLU, was always for "Non commercial" use only, but somehow that text got deleted, so I had to reinstate it.


Also, I"m only distributing the latest versions of the firmware via the repo, for easy of distribution.
The codebase I am now using is not the same as the codebase in the repo, it is copyright me and some other developers and not publicly available.

I gave up the public codebase some time ago, when I found that the clauses like non-commercial, where being ignored, and people were profiting from my work, and the work of the other developers.


I am endeavoring to do bug fixing on the public repo, but this is not done by copying files from my private codebase, I have to manually update the code separately, by hand.

I guess to save confusion, I should distribute the binaries some other way, but that a big headache for me, and anyone who downloads via the CPS, because I would need to completely change the distribution method.

I should probably also change the project firmware name, but that may also confuse a lot of people.

Or I may simply stop development if it becomes too much trouble.

Re: Licence change?

Posted: Thu Mar 11, 2021 5:42 pm
by VE3XEJ
Thank you very much for your response.

I'm sad and disappointed to hear that the latest firmware has become closed-source. I really enjoyed being able to build and tweak my own firmware. It was a strong step forward for amateur radio.

While it is certainly your right to write your own code and disseminate it as you see fit, I hope that you rename your closed-source version to avoid confusion with the open-source GPL-licenced code. Having an open-source project and a closed-source product both using the name OpenGD77 is going to result in ongoing confusion.

Re: Licence change?

Posted: Thu Mar 11, 2021 6:59 pm
by kd2lh
Roger, thank you again for your work and that of the rest of the team.

I think it's a very good move to protect your work from commercial exploitation.

Re: Licence change?

Posted: Sun Mar 14, 2021 10:01 am
by oh1fss
VK3KYY wrote:
Thu Mar 11, 2021 2:07 am
The License was never valid, because the project contains large sections of binary (almost have the binary size), for which there is no source code, because the firmware used sections of the official Radioddity firmware.
I'm a layman, not a lawman. But isn't the Radioddity binary just a non-free library? Is the following applicable here:

Can I write free software that uses nonfree libraries? (#FSWithNFLibs)
You may as well release the program as it stands, rather than not release it. But please mention in the README that the need for the nonfree library is a drawback, and suggest the task of changing the program so that it does the same job without the nonfree library.
73, OH1FSS

Re: Licence change?

Posted: Sun Mar 14, 2021 10:06 am
by F1RMB
Hi,

It's not a library, shared or static.


Cheers.
---
Daniel

Re: Licence change?

Posted: Sun Mar 14, 2021 10:26 am
by VK3KYY
Like Daniel says.

Its not a library.

Kai wrote some clever code, which allows the C linker to pour the compile C code around multiple blocks of unknown binary code, which are extracted from the original Radioddity firmware binary.

The Radioddity firmware binary is actually encrypted, but after several months of intensive work, Kai managed to "find" the 32k long encryption key, which allowed the entire 496k binary of the firmware to be investigated.

Kai and I then had to find the parts of the official firmware binary which contain the AMBE encoder, and this is in different parts of the binary file.

So the entire firmware memory map looks a bit like this

OOOOOOOOOOOOOORRROOOOOOOOOOOOOOOOORRRRRRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOOOOOOOUUUUU

Where
O = OpenGD77
R = Radioddity official firmware
U = Unused

Within the second block of RRRRR are 3 functions, which we call using an assembler wrapper, and then jump to specific addresses in the MCU ROM.
I suspect the lower smaller block of RR is probably normal library functions like memcpy , but we have no way to know.


We then have to re-encrypt the merged binary file to a form that the bootloader in the radio will accept, but we don't fully understand the bootloader format, so we just took a header from an official firmware, and patch the encrypted binary onto the header so that the bootloader thinks its an old version of the official firmware.


Basically its a miracle the firmware exits at all, and it would not have existed except that there is a cryptographic error in the encryption key, and only Kai knows what the crypt error in the key system is.

BTW.
Section of the binary from the official firmware, is not just not free, its not actually supposed to be available at all.

Re: Licence change?

Posted: Sun Mar 14, 2021 10:44 am
by oh1fss
Thanks for the explanation! Impressive detective work! Even achieving the memory map is impressive!

Well, the Radioddity binary is not a library. At least Radioddity did not release it as a library. I used the word "library", because with the wrappers it is used like a library. But as I said, I'm not a lawyer, just a programmer.

Complete Corresponding Source Code (GPLv2 Section 3)

Posted: Wed Apr 07, 2021 1:39 pm
by KC7RBW
Per Section 3 of the licence I am requesting the complete corresponding source code for every build of the firmware published to https://github.com/rogerclarkmelbourne/ ... 7/releases as of this day, for which complete corresponding source code was not previously provided.

There is abundant evidence in the Git repository that the copyright holders of the firmware source code include many more persons than those purported to have agreed to keep portions of the source code private. While I agree that it's very frustrating to see others profit from your work, the licence is a legally binding contract between the maintainers, contributors, and recipients of the firmware. The licence does not permit you to keep the source code, or portions of the source code, private to yourselves if you also publish builds of the firmware. Violations of the licence terms by others do not absolve you of your own obligations under the licence.

Please provide, and continue to provide, complete corresponding source code for firmware builds you publish.

Re: Complete Corresponding Source Code (GPLv2 Section 3)

Posted: Wed Apr 07, 2021 7:26 pm
by g0hww
Ouch. You may well be correct and within your rights to make such a demand, but I wish you hadn't actually done so. I fully support the nature and effect of the GPL in all of its incarnations. I also think that it is unfortunate that MMDVMHost etc. and OpenGD77 have fluffed up their licencing policies, but these are cases where I feel that it is best to let sleeping dogs lie and to not piss on your own chips.