Group: Hardware/Advocacy strategies
Source code quality
When the code derived from other code under a copyleft license like the GPLv2 or GPLv3, the hardware manufacturers are required to publish the source code to the people they distribute the hardware or binaries.
However that's not always the case, which push us to re-implement the nonfree software under a free software license, or pressure vendors to publish the source code.
As hardware vendors often rush to release their hardware (this is called time to market in economics), the code quality is often very bad.
It's also a common practice in free software projects to do hardware bringup in a way that doesn't have the best code quality and cleanup the code later.
Unfortunately some companies use the excuse of having bad code quality to not publish their work under a free software license.
Examples of bad quality code preventing release under free software licenses
- "Once the code is cleaned up, we will publish it in open-source. It's just a matter of our resources to tidy everything up.": https://github.com/xtrx-sdr/images/issues/44
- The ath9k_htc firmware liberation process required someone to step up to clean the code.
Examples of bad quality code that gave good quality code
In the other hand there are also some bad quality code having been released under a free software license that was used to get very high quality code:
- All the drivers that went into the staging area of the linux kernel and that later made it into the main area of Linux.
It would be best to advocate for people not to insist on code quality too much but instead to insist in releasing the work under a free software license, or doing other things that results in a free implementation (like publishing documentation, etc).
It would also be a good idea to point at examples where in the long run, releasing the code as free software was also beneficial for the company or the code quality, to counter the fact that companies don't release because of the code quality.
- Find and add more examples
- Investigate the relationship between bad code quality, and companies's reputation.