Short answer
MIT is a permissive licence: you can use, modify, and redistribute the code under almost any terms. GPL is a copyleft licence: if you distribute a modified version, you must release your modifications under the GPL as well.
Detailed explanation
MIT places two requirements on recipients: preserve the copyright notice and the licence text. Everything else — including incorporating the code into a proprietary product — is allowed.
GPL (v2 and v3) adds the copyleft condition. Any software that incorporates GPL code and is distributed to others must itself be released under the GPL, with source code available. This condition propagates to the whole combined work, which is why GPL is sometimes called “viral”.
Key practical differences:
| MIT | GPL v3 | |
|---|---|---|
| Use in proprietary software | ✅ | ❌ (triggers copyleft) |
| Must share source on distribution | ❌ | ✅ |
| Patent grant | ❌ | ✅ (explicit) |
| Compatible with Apache 2.0 | ✅ | ✅ (one-way) |
# Quick mental model
MIT → "do what you want, just keep the notice"
GPL → "do what you want, but keep it open"
Common pitfalls
- Internal use is not distribution. Running GPL software inside a company or on a server you control does not trigger the copyleft obligation — only distributing to third parties does.
- LGPL is a middle ground. The Lesser GPL allows linking from proprietary code without triggering copyleft, as long as the LGPL component itself remains modifiable by the end user.
- GPL v2 and v3 are not compatible. You cannot combine code under GPLv2-only with code under GPLv3 in the same binary.