Licence change?

Discussions related to the firmware code development
VE3XEJ
Posts: 11
Joined: Sun Jun 07, 2020 3:10 pm

Licence change?

Post by VE3XEJ » Thu Mar 11, 2021 12:50 am

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 6459 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

VK3KYY
Posts: 7484
Joined: Sat Nov 16, 2019 3:25 am
Location: Melbourne, Australia

Re: Licence change?

Post by VK3KYY » Thu Mar 11, 2021 2:07 am

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.

VE3XEJ
Posts: 11
Joined: Sun Jun 07, 2020 3:10 pm

Re: Licence change?

Post by VE3XEJ » Thu Mar 11, 2021 5:42 pm

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.

User avatar
kd2lh
Posts: 312
Joined: Mon Dec 02, 2019 2:44 pm

Re: Licence change?

Post by kd2lh » Thu Mar 11, 2021 6:59 pm

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.

oh1fss
Posts: 74
Joined: Mon May 04, 2020 11:53 am

Re: Licence change?

Post by oh1fss » Sun Mar 14, 2021 10:01 am

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

User avatar
F1RMB
Posts: 2518
Joined: Sat Nov 16, 2019 5:42 am
Location: Grenoble, France

Re: Licence change?

Post by F1RMB » Sun Mar 14, 2021 10:06 am

Hi,

It's not a library, shared or static.


Cheers.
---
Daniel

VK3KYY
Posts: 7484
Joined: Sat Nov 16, 2019 3:25 am
Location: Melbourne, Australia

Re: Licence change?

Post by VK3KYY » Sun Mar 14, 2021 10:26 am

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.

oh1fss
Posts: 74
Joined: Mon May 04, 2020 11:53 am

Re: Licence change?

Post by oh1fss » Sun Mar 14, 2021 10:44 am

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.

KC7RBW
Posts: 159
Joined: Wed Nov 20, 2019 1:23 am

Complete Corresponding Source Code (GPLv2 Section 3)

Post by KC7RBW » Wed Apr 07, 2021 1:39 pm

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.

g0hww
Posts: 19
Joined: Mon Aug 31, 2020 7:56 pm

Re: Complete Corresponding Source Code (GPLv2 Section 3)

Post by g0hww » Wed Apr 07, 2021 7:26 pm

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.

Post Reply