Is GPL 3.0 compatible with Apache 2.0?
GPL 3.0-licensed code is not compatible with a Apache 2.0 project. Here is what that means for your obligations, conflicts, and distribution.
The license of the code you want to use.
The license you are applying to your project.
The short answer
GPL 3.0 is a copyleft license — any combined work must keep that copyleft license, so you cannot wrap it in a permissive license like Apache 2.0.
Key obligations
Adopt GPL 3.0 for the whole project to use this code.
Potential conflicts
Copyleft requires derivative works to be released under the same terms.
Distribution notes
Prohibited under Apache 2.0.
Deep-dive resources
Stop guessing. Start automating.
Modern applications pull in hundreds of transitive dependencies. A manual check can't keep up.
Disclaimer: This tool offers general guidance based on widely accepted open source community norms and does not constitute legal advice. For commercial use, always consult legal counsel or use a dedicated compliance platform like FOSSA to analyze your specific dependency graph.
What this means in practice
GNU GPL v3.0 is a strong copyleft license and Apache License 2.0 is a permissive (+ patent grant) license. Combining them in a single distributed work is not permitted because their terms conflict. You can often still use the GPL 3.0 component if you keep it at arm's length — behind a separate process or network boundary — or by choosing an alternatively-licensed dependency.
Compliance checklist for GPL 3.0 → Apache 2.0
- Do not combine GPL 3.0 and Apache 2.0 code in the same distributed binary.
- Isolate the GPL 3.0 component behind a process or network boundary if you must use it.
- Evaluate an alternatively-licensed library, or re-license your project to resolve the conflict.
- Get legal sign-off before shipping anything that links the two.
About these licenses
GNU GPL v3.0
LibraryStrong copyleft with patent and anti-tivoization protections. Designed to be compatible with Apache 2.0.
- Type
- Strong copyleft
- Patent grant
- Express
- Source sharing
- Entire combined work
Apache License 2.0
ProjectPermissive, with an express patent grant and a NOTICE-file requirement. Its patent terms make it incompatible with GPL v2.0.
- Type
- Permissive (+ patent grant)
- Patent grant
- Express
- Source sharing
- Not required
GPL 3.0 and Apache 2.0: frequently asked questions
Common questions about combining GNU GPL v3.0 and Apache License 2.0.
Is GPL 3.0 compatible with Apache 2.0?
GPL 3.0 is a copyleft license — any combined work must keep that copyleft license, so you cannot wrap it in a permissive license like Apache 2.0.
Can I use GPL 3.0 code in a Apache 2.0 SaaS or cloud application?
Over SaaS, traditional copyleft licenses like GPL 3.0 often do not trigger their share-alike requirements (the "SaaS loophole"). This is legally complex and only conditionally compatible.
What are my obligations when combining GPL 3.0 and Apache 2.0?
Adopt GPL 3.0 for the whole project to use this code. Prohibited under Apache 2.0.