Various companies have been getting benefited from open source technologies while they build their product, but not all of them are doing enough to contribute back to the original open source project.
E.g. Meraki and Fonera created their firmware by modifying OpenWrt and building their custom code on it. They have also complied with GPL terms by releasing source of their code on their site. Note: I have never tried to use their provided code and build firmware, but people have reported various level of success (Indicating that the procedures are for Hard Core Geeks only - no muggles allowed, documentation is sketchy).
This also occurs with other technology such as GPS, where TomTom and Dash both have created GPS devices based on Linux. They have released open source portion of their code as downloads available from their site including modified Linux Kernel and various utilities.
Apple also did same when they used KHTML and created WebKit. They released occasional Code Bombs for modified KHTML.
So what is it that they don't do right now?
What they do not do is, they do not contribute the code to the original project. They release the modified source code, but it remains separate as it was forked. It does not get merged into original code. The issues it creates are listed here:
- It is left to open source community to explore the code bomb and extract, merge, retrofit the changes into original code.
- It is left to open source community to identify missing pieces as sometimes the code does not provide details into where the code was taken from, and what was changed.
- Sometimes open source community and the vendor who forked starts moving the code to two entirely opposite directions making it very difficult to merge the code.
- Software company gets an advantage as so they have visibility into Original Code, changes they have made and changes made to original code by open source community for their next release, but this does not get passed to community.
- They just make it harder for community to merge the code into main tree.
I wish that they would also make effort to merge their changes into original projects, there by keeping original projects relevant to real world applications and updated.