Introduction

For the software I write, I prefer the BSD/MIT Licenses, but I use the Apache 2.0 License for software where it is important to me that it be used in industry and commercial applications.

I never use the GPL license because it restricts the freedom to use my software too severely. The GPL license is good for projects like the Linux Kernel, but it is not always the right choice.

Overview

Patent rights

Apache 2.0 explicitly grants patent rights from contributors to users. BSD/MIT say nothing about patents, leaving users exposed to potential patent claims.

Attribution requirements

Apache 2.0 requires including a copy of the license, preserving NOTICE files, and marking changes. BSD requires keeping the copyright notice in source and binary distributions. MIT is similar to BSD.

Patent retaliation

Apache 2.0 includes a clause that terminates your license if you patent something and sue the project for patent infringement. BSD/MIT have no such protection.

Compatibility

Both are permissive and generally compatible with most projects. Apache 2.0 is GPL-3.0 compatible, while BSD/MIT are GPL-2.0+ compatible.

Legal detail

Apache 2.0 is longer and more legally detailed, which can be better for large projects with multiple contributors. BSD/MIT licenses are short and simple.

Bottom line

Apache 2.0 is stronger on patent protection. BSD/MIT are simpler and more straightforward. For most small projects, MIT is sufficient. For corporate projects or projects with multiple contributors, Apache 2.0’s patent protections are valuable.

Links

Comments