Slide 1

Slide 2

Google wouldn’t be around today without open source software.

Slide 4

Slide 5

For some projects like GFS, BigTable and MapReduce, we were able to publish papers describing the code and letting others implement it.

Slide 7

Early on, we ran very old kernels and made quick and dirty patches that were of no interest to the kernel community.

We were often the first ones to find and fix obscure bugs that only happened at our scale. For instance, one rare IDE corruption bug we found in 2003 took over 1 million dollars in hardware to pin down and fix.

Slide 10

We’ve contributed over 5,000 patches to the Linux kernel (the exact figure is hard to get as some developers use personal email addresses when submitting patches).

OSS at Google is a lot more than Android ...

... and Chrome

We have 6 people working on compliance covering use of open source software within Google and releasing our own code as open source.

We have countless engineers working on code that gets open-sourced, who work on external open source projects, who publish research papers to share with others, and who give talks like this one.

The Google org alone contains over 800 projects as of 2016/03, and we have more than 3,000 open source projects on Github across all of our orgs.

We ask employees to send patches using their Google email address when possible just to help spread the word about how much code Google releases and contributes as patches.

Some projects lack a license and as a result aren’t legally open source until their source tree is fixed. Usually we can get the external project owner to fix their source tree, but sometimes not.

We use open source just about everywhere. Being able to add features and fix bugs as quickly as we need them is a primary motivation, much more so than saving on licensing fees.

Akademy (KDE)

Partial list of 250+ events Google sponsors

Apache Software Foundation

Accurate distributed system tracing infrastructure at PolyMTL

When SourceForge was becoming questionable as a repository for open source software, we helped fill the gap with code.google.com.

Open source peer bonuses: We allow employees to nominate open source people outside of Google for a cash bonus for their work in open source.

We have programs to expose students to open source. These bring new contributors into open source, connects students with mentors, and gives students real-world software development experience.

Google Summer of Code: http://g.co/gsoc

Financial contributions to the Software Freedom Conservancy

Slide 29

We store all external open source code in a third_party hierarchy, along with the licenses for each project. We only allow the use of OSS under licenses we can comply with.

Big projects like Chrome OS, Chrome (the browser) and Android have specific code that compiles a list of all open source licenses and copyrights used by the project, and outputs a combined license file with all licenses and copyrights.

On the flip side, GPL software requires you to display the GPL license text in a way that can be shared amongst all packages that use it.

Slide 33

Apache 2: This is our default license, offers explicit patent license to the user.

Some licenses like Apache2 clearly give a patent grant http://en.swpat.org/wiki/Patent_clauses_in_software_licences#Apache_License_2.0

WTFPL is a poorly written license not reviewed by lawyers.

Similar to WTFPL, Unlicense is another attempt at removing necessary legalese, making the license non-binding in many cases.

Section 2 of CC0 includes a waiver which has contributors give up all rights to their code.

Public domain is not an open source license. It offers no protections to us or disclaimer of warranties.

AGPL is a proper open source license and is meant to prevent a company from using your code and building a proprietary product on top of it. That’s a reasonable intention.

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 finding an alternative or writing our own under a less restrictive license.

CLAs (Contributor License Agreements) are often seen as a dirty three letter acronym :)

Google also requires contributors to sign a CLA. It’s an unmodified copy of the Apache CLA that allows Google to relicense your code if need be as well as gives Google patent grants to the code you are contributing (contributing to an Apache 2 licensed project gives a patent grant to the project, too).

If you have legal questions...

Slide 45