L’une des premières applications à utiliser Qt fut KDE, un environnement de bureau — plutôt que des ensembles d’application, comme c’était monnaie courante en 1996. Cependant, Qt n’était pas exactement un logiciel libre : sa licence n’était pas compatible avec la GPL selon la Free Software Foundation ; si la société devait être rachetée, le projet KDE courait le risque de ne plus pouvoir utiliser Qt dans ses versions à venir. Cette crainte a mené à la création de la KDE Free Qt Foundation, qui matérialise un accord avec les différentes sociétés derrière Qt et son exploitation commerciale : si jamais Qt n’était plus développé ou libre, alors la dernière version libre serait disponible sous une licence très permissive comme la BSD, automatiquement.
Cet accord avait déjà été mis à jour, la dernière fois en 2014 lors de l’ajout de la LGPLv3 dans les licences : le premier accord ne faisait pas état d’un grand nombre de plateformes concernées — seulement X11 —, alors que toutes les plateformes avec lesquelles Qt est compatible sont concernées ; de même, suite aux changements de gouvernance et la création du Qt Project, les contributions, intégrées ou non aux sources de Qt, sont comprises dans ce texte juridique. Avec ce nouvel accord, la compatibilité avec Linux et Android ne pourra pas être abandonnée (contrairement aux autres plateformes, où Digia reste libre), à moins d’une révision ; la fondation s’est aussi arrogée le droit d’y inclure les successeurs de X11, comme Wayland, sans négociation.
La principale nouveauté concerne cependant les licences de la version libre de Qt, pour les aligner avec la « philosophie du logiciel libre ». En 2014, la licence LGPLv3 a été ajoutée pour mieux respecter cette philosophie. Par rapport à la version précédente (2.1), elle garantit non seulement le droit de l’utilisateur à modifier les sources, mais aussi à les compiler et à les exécuter — ce qui empêche directement de bloquer complètement des appareils, afin de forcer la création d’un environnement libre. Un autre apport important concerne la protection par rapport aux brevets, très importante outre-Atlantique.
Ce nouvel accord sera d’application dès Qt 5.7 et supprime la LGPLv2.1 à cause de ces limitations et impose que le nouveau code soit disponible sous LGPLv3 et GPLv3 (le code existant doit aussi être disponible sous GPLv2 pour rester compatible par rapport à d’autres projets libres). Les différentes parties de Qt et de son environnement de base seront alors disponibles sous des régimes différents (tous seront toujours disponibles dans une édition commerciale, plus flexible mais non libre) :
- pour les modules essentiels (Qt Core, GUI, Quick, Network, etc.) : LGPLv3 et GPLv2 ;
- pour les modules d’extension (Qt Android Extras, Bluetooth, Concurrent, OpenGL, etc.) : LGPLv3 et GPLv2, à l’exception de Qt WebEngine (à cause de Chromium, le code est également disponible sous LGPLv2.1) ;
- pour les outils et applications (Qt Creator, moc, lupdate, etc.) : GPLv3, avec deux exceptions pour que le code généré n’ait aucune restriction et que les liens avec du code tiers soit toujours possible.
De manière générale : tout Qt est disponible sous la GPLv3 ou une licence compatible ; de larges pans sont aussi disponibles sous la LGPL et la GPLv2. Ces changements arriveront dès Qt 5.7 : la 5.6 étant une version avec support à long terme, les projets devraient avoir le temps de s’adapter à ces changements au besoin.
En même temps, de nouveaux modules, anciennement uniquement commerciaux, seront disponibles sous une licence libre (GPLv3) : dès Qt 5.7, Qt Charts, Qt Data Visualization, Qt Virtual Keyboard, Qt Test Integration, Qt Quick 2D Renderer, QML Profiler et l’analyseur statique pour Clang. L’objectif est d’inclure le compilateur Qt Quick dans le module Qt QML (LGPLv3 et GPLv2), qui devrait arriver avec Qt 5.8. Le code de la plupart des modules est déjà disponible, les autres devraient arriver sous peu. Par contre, l’offre spécifique à l’embarqué (Qt for Device Creation) reste entièrement commercial.
Cette annonce confirme la volonté d’uniformiser l’écosystème Qt, lancée avec le site qt.io, commun aux éditions libres et commerciales. La stratégie reste de fournir des fonctionnalités spécifiques sous licence commerciale pour garantir un flux de liquidités et assurer la suite du développement de Qt, tout en offrant beaucoup dans l’offre libre pour que Qt rayonne. Cependant, elle semble s’axer de plus en plus vers le monde de l’embarqué.
Sources : New agreement with the KDE Free Qt Foundation and changes for the open source version, Qt is Guaranteed to Stay Free and Open – Legal Update
Voir aussi : le contrat.