In contrast with a proprietary license, the source code of an open source
program is made available for review, modification and redistribution. The
difference between open source licenses is what we can and can't do with the
Open source licenses can be divided in two categories: permissive and copyleft.
Permissive examples include:
A copyleft example is the General Public License
Both categories have the purpose of establishing the copyright holder for the
software, granting users the right to copy, modify and redistribute it,
protecting the copyright holder from any potential guarantees that the software
may provide (software is provided as-is), and optionally imposing some
Permissive licenses let us modify a program, redistribute it, and even sell
it. We can embed or link code with other programs without restriction or
explicit permission by the copyright holder.
Copyleft licenses only allow us to link or distribute code with other code
that has the same license. It also forces modifications to be released under
the same license. Combining anything with the GPL makes it GPL.
Non-copyleft licenses do not enforce derivative works to also be open source.
Some software is released under a dual license: both a permissive and copyleft
license. This provides developers who use the dual licensed code to apply the
license that better suits their needs.
Most of the software we use has a permissive license:
- PostgreSQL, PostgreSQL License (BSD based)
- Redis, BSD
- Ruby (MRI), Ruby license (BSD based)
- Ruby on Rails, MIT
- jQuery, Dual MIT and GPL