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 combinaison | GPL 2.0 | GPL 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
-
É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 ?
-
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"
-
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