common.loading

GPL 2.0 vs GPL 3.0: Complete Comparison

Analysis of GNU General Public License evolution

articles.categories.versionsarticles.difficulty.intermediate
👤LicenseHub Team
📅1/10/2024
⏱️12 articles.content.minutesRead
#gpl#copyleft#history

GPL 2.0 vs GPL 3.0: Complete Comparison

The GNU General Public License (GPL) is one of the most important copyleft open source licenses. The release of GPL 3.0 marked a significant advancement in open source licensing.

Version Timeline

  • GPL 1.0: Released in 1989
  • GPL 2.0: Released in 1991
  • GPL 3.0: Released in 2007 (after 3 years of public discussion)

Major Changes Overview

1. Patent Protection Clauses

GPL 2.0:

  • No explicit patent protection clauses
  • Relied on implied patent licensing

GPL 3.0:

  • Explicit patent protection clauses
  • Patent retaliation provisions
  • Protection against patent trolling

2. Anti-Tivoization Clauses

GPL 2.0:

  • Only required source code provision
  • Allowed hardware locking of modifications

GPL 3.0:

  • Requires "Installation Information"
  • Users must be able to run modified versions on the device
  • Prevents TiVo-ization phenomenon

3. Compatibility Improvements

GPL 2.0:

  • Strict compatibility requirements
  • Difficult to combine with other licenses

GPL 3.0:

  • More flexible compatibility mechanisms
  • Allows "additional terms"
  • Compatible with Apache 2.0 and other licenses

Detailed Change Analysis

Patent Protection

GPL 3.0 Section 11 introduces patent protection:

Each contributor grants you a non-exclusive, worldwide, royalty-free patent license...

This addresses the patent protection gap in GPL 2.0.

DRM and Anti-Tivoization

GPL 3.0 Section 6 requires:

A "User Product" is either... a consumer product designed or sold for personal, family, or household use

For User Products, "Installation Information" must be provided.

Internationalization Improvements

  • Better international legal adaptation
  • Clear termination and restoration clauses
  • Improved definitions and terminology

Real-World Impact

Adoption Status

Notable Projects Still Using GPL 2.0:

  • Linux Kernel
  • Git
  • MySQL

Projects That Migrated to GPL 3.0:

  • GCC
  • Bash
  • GRUB

Compatibility Considerations

Combination ScenarioGPL 2.0GPL 3.0
With Apache 2.0❌ Incompatible✅ One-way Compatible
With BSD✅ Compatible✅ Compatible
With Proprietary❌ Incompatible❌ Incompatible

Migration Guide

Migrating from GPL 2.0 to GPL 3.0

  1. Assess Project Needs

    • Do you need stronger patent protection?
    • Do you care about hardware locking issues?
    • Are dependencies compatible?
  2. Check Dependency Compatibility

    • Ensure all dependencies are GPL 3.0 compatible
    • Pay special attention to "GPL 2.0 only" components
  3. Update License Files

    • Replace license text
    • Update file headers
    • Update documentation

Migration Example

GPL 2.0 File Header:

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

GPL 3.0 File Header:

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Selection Recommendations

Choose GPL 2.0 When

  • Need compatibility with GPL 2.0 only projects
  • Project has long history with high migration costs
  • Don't care about patent and hardware locking issues

Choose GPL 3.0 When

  • Starting new projects
  • Need stronger patent protection
  • Care about anti-tivoization issues
  • Want compatibility with more licenses

Conclusion

GPL 3.0 represents significant progress over GPL 2.0, addressing many issues in modern software development. While migration requires careful compatibility consideration, GPL 3.0 is usually the better choice for new projects.

Consider balancing:

  • Technical needs vs compatibility requirements
  • Legal protection vs project flexibility
  • Long-term development vs short-term convenience