TORONTO — Marc Merlin has been working as an engineer at Google since 2002 and has seen (and done) a lot of open source and Linux work during that time. Speaking at the LinuxCon North America event this week, Merlin provided a standing room only audience with an overview how Google uses and contributes to open source.
"Google wouldn't be around today without open source software," Merlin said.
Merlin noted that in its early days Google had limited resources to contribute back to open source. Additionally the first generation of Google's software was all written to be for internal-use and wasn't originally designed to be open source. He added that it's not easy to open source software, after the fact. That said even for early components that Google didn't initially open source, Google wrote technical papers describing the methods used and the code in a way that let others implement the same approaches.
Across a broad landscape of open source technologies, Google's earliest contribution were often bug fixes.
"We were often the first one to find and fix obscure bugs that only happened at our scale," Merlin said.
To date, Merlin said that Google has contributed over 5,000 patches to the Linux kernel. The patches range from small fixes to full drivers and subsystems like containers as well.
When it comes to Google's own open source efforts, there are over 3,000 open source project on Github today. In order for Google to manage the whole process from a legal perspective, Merlin said that Google has six people working on compliance issue for using open-source within Google as well as releasing open source code.
In order to keep things legally aligned, Google stores all external open source code in a third party hierarchy. Merlin added that Google only allows the use of open source software with licences that Google is able to comply with. One license that Google will not work with is the AGPL (Affero General Public License), which is a reciprocal license that requires those that use the code to provide a link to the source
"The cost of ensuring that we don't have AGPL code involved in any way in one of our externally facing products is too high compared to the price of fining an alternative or writing our own under a less restrictive license," Merlin said.
For those that contribute code to Google projects, Google requires developers to agree to a Contributor License Agreement (CLA). The CLA basically enable Google to re-license contributed code and provides Google with a patent grant for the code.
"You retain ownership to your code, you are just granting a license to Google," Merlin said.
Marc Merlin at LinuxCon North America
Sean Michael Kerner is a senior editor at Datamation and InternetNews.com. Follow him on Twitter @TechJournalist