I'd just like to say I have no axe to grind, I am not a programmer, and I'd dearly love to have a legitimate software update that lets me underclock my locked bitmain hardware. However I understand the logic of what is being asked, and I spent all of 5 seconds finding the actual answers rather than just posting a link to the license text. Everywhere I can see in the GPL FAQ it says you have to provide the source code.
I understand also that bitmain hasn't provided the source code so anyone offering modified firmware can't do it either.
Its a similar scenario to handling stolen goods, just beecause the person who you got the goods from "stole" them first, doesn't mean you can resell or give out the "stolen" goods as legit, especially seeing as you
know that they were stolen goods in the first place.
I also get that there isn't really much that anyone can do about it, ck doesn't care, and kano doesn't have the resources to fight a multi-billion dollar company like bitmain, but that doesn't mean that kano doesn't have the right to point out that distributing cgminer in a software package without the source code is wrong.
Things you can find doing a quick serach of the FAQ using the word "source"
Does the GPL require that source code of modified versions be posted to the public?The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.
But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.
Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.
What does “written offer valid for any third party” mean in GPLv2? Does that mean everyone in the world can get the source to any GPLed program no matter what?If you choose to provide source through a written offer, then anybody who requests the source from you is entitled to receive it.
If you commercially distribute binaries not accompanied with source code, the GPL says you must provide a written offer to distribute the source code later. When users non-commercially redistribute the binaries they received from you, they must pass along a copy of this written offer. This means that people who did not get the binaries directly from you can still receive copies of the source code, along with the written offer.
The reason we require the offer to be valid for any third party is so that people who receive the binaries indirectly in that way can order the source code from you.
Can I release a modified version of a GPL-covered program in binary form only?No. The whole point of the GPL is that all modified versions must be free software—which means, in particular, that the source code of the modified version is available to the users.
I downloaded just the binary from the net. If I distribute copies, do I have to get the source and distribute that too?Yes. The general rule is, if you distribute binaries, you must distribute the complete corresponding source code too. The exception for the case where you received a written offer for source code is quite limited.
I want to distribute binaries, but distributing complete source is inconvenient. Is it ok if I give users the diffs from the “standard” version along with the binaries?This is a well-meaning request, but this method of providing the source doesn't really do the job.
A user that wants the source a year from now may be unable to get the proper version from another site at that time. The standard distribution site may have a newer version, but the same diffs probably won't work with that version.
So you need to provide complete sources, not just diffs, with the binaries.
I know I'm probably not aware enough of the technicalities "firmware" upgrade process, but can you not create a firmware that doesn't include bmminer? Just leave the one that's on the miner in place when the upgrade script runs? I'm assuming that you haven't modified and recompiled bmminer code because, well you don't have the code to modify (see above), so your just scripting around the voltage/frequency settings and maybe written a custom "optimization" app? No idea. But if you left out the bmminer (cgminer) executable from your firmware then you wouldn't need to provide the source code (that you haven't got anyway)