common.loading

GPL 2.0 vs GPL 3.0 : Analyse détaillée des changements

Analyse de l'évolution de la Licence Publique Générale GNU

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

GPL 2.0 vs GPL 3.0 : Analyse détaillée des changements

La Licence Publique Générale GNU (GPL) est l'une des licences open source copyleft les plus importantes. La publication de GPL 3.0 a marqué un progrès significatif dans les licences open source.

Chronologie des versions

  • GPL 1.0 : Publiée en 1989
  • GPL 2.0 : Publiée en 1991
  • GPL 3.0 : Publiée en 2007 (après 3 ans de discussions publiques)

Aperçu des changements majeurs

1. Clauses de protection des brevets

GPL 2.0 :

  • Aucune clause explicite de protection des brevets
  • Dépendait de licences de brevets implicites

GPL 3.0 :

  • Clauses explicites de protection des brevets
  • Provisions de rétorsion de brevets (patent retaliation)
  • Protection contre le trolling de brevets

2. Clauses anti-tivoisation

GPL 2.0 :

  • Exigeait seulement la fourniture du code source
  • Permettait le verrouillage matériel des modifications

GPL 3.0 :

  • Exige la fourniture d'"informations d'installation"
  • Les utilisateurs doivent pouvoir exécuter des versions modifiées sur l'appareil
  • Prévient le phénomène de TiVo-isation

3. Améliorations de compatibilité

GPL 2.0 :

  • Exigences de compatibilité strictes
  • Difficile à combiner avec d'autres licences

GPL 3.0 :

  • Mécanismes de compatibilité plus flexibles
  • Permet les "termes additionnels"
  • Compatible avec Apache 2.0 et d'autres licences

Analyse détaillée des changements

Protection des brevets

La section 11 de GPL 3.0 introduit la protection des brevets :

Chaque contributeur vous accorde une licence de brevet non exclusive, mondiale et libre de redevances...

Cela résout le problème de protection insuffisante des brevets dans GPL 2.0.

DRM et anti-tivoisation

La section 6 de GPL 3.0 exige :

Un "Produit Utilisateur" est soit... un produit de consommation conçu ou vendu pour un usage personnel, familial ou domestique

Pour les Produits Utilisateur, les "Informations d'Installation" doivent être fournies.

Améliorations de l'internationalisation

  • Meilleure adaptation légale internationale
  • Clauses claires de terminaison et de restauration
  • Définitions et terminologie améliorées

Impact réel

Statut d'adoption

Projets notables utilisant encore GPL 2.0 :

  • Noyau Linux
  • Git
  • MySQL

Projets ayant migré vers GPL 3.0 :

  • GCC
  • Bash
  • GRUB

Considérations de compatibilité

Scénario de combinaisonGPL 2.0GPL 3.0
Avec Apache 2.0❌ Incompatible✅ Compatible unidirectionnel
Avec BSD✅ Compatible✅ Compatible
Avec propriétaire❌ Incompatible❌ Incompatible

Guide de migration

Migration de GPL 2.0 vers GPL 3.0

  1. Évaluer les besoins du projet

    • Avez-vous besoin d'une protection plus forte des brevets ?
    • Vous souciez-vous des problèmes de verrouillage matériel ?
    • Les dépendances sont-elles compatibles ?
  2. Vérifier la compatibilité des dépendances

    • S'assurer que toutes les dépendances sont compatibles GPL 3.0
    • Attention particulière aux composants "GPL 2.0 seulement"
  3. Mettre à jour les fichiers de licence

    • Remplacer le texte de licence
    • Mettre à jour les en-têtes de fichiers
    • Mettre à jour la documentation

Exemple de migration

En-tête de fichier GPL 2.0 :

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.

En-tête de fichier GPL 3.0 :

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.

Recommandations de sélection

Choisir GPL 2.0 quand

  • Compatibilité nécessaire avec des projets GPL 2.0 seulement
  • Projet avec une longue histoire et coûts de migration élevés
  • Pas de préoccupation pour les brevets et le verrouillage matériel

Choisir GPL 3.0 quand

  • Démarrage de nouveaux projets
  • Besoin d'une protection plus forte des brevets
  • Préoccupation pour les problèmes d'anti-tivoisation
  • Souhait de compatibilité avec plus de licences

Conclusion

GPL 3.0 représente un progrès significatif par rapport à GPL 2.0, résolvant de nombreux problèmes du développement logiciel moderne. Bien que la migration nécessite une considération attentive de la compatibilité, GPL 3.0 est généralement le meilleur choix pour les nouveaux projets.

Considérer l'équilibre entre :

  • Besoins techniques vs exigences de compatibilité
  • Protection légale vs flexibilité du projet
  • Développement à long terme vs commodité à court terme