About us Expertises Offer References Contact us Blog
FR EN

Qt Open Source pour système embarqué – Licence LGPL

Développer un système embarqué avec Qt peut revenir très cher. L’offre Qt for Device Creation implique le paiement de coûteuses licences de distribution. Pourtant, il est possible d’économiser avec Qt open source, utilisable gratuitement.

10/01/2023

Nathanaël Landais

image blog Qt Open Source pour système embarqué

Qt pour des systèmes embarqués modernes

Je ne vais surprendre personne en disant que Qt est aujourd’hui la référence dans le développement de systèmes embarqués équipé d’interface utilisateur. Ce framework permet de développer des interfaces utilisateurs modernes et fluides sur des systèmes à la puissance limitée.

Ainsi, beaucoup de mes clients me contactent pour développer leur système avec en tête d’utiliser Qt pour leur UI.
Ils visent souvent des marchés très ciblés et ne comptent pas vendre des dizaines de milliers d’exemplaires de leur produit chaque année mais plutôt quelques dizaines ou centaines d’exemplaires.

Seulement voilà, Qt for Device Creation, l’offre mise en avant sur le site officiel de Qt, mais également celle qui vous sera proposée par leurs commerciaux si vous les contacter directement, est bien trop cher pour ce type de projet.

La tarification de Qt for Device Creation

L’utilisation de Qt for Device Creation implique l’acquisition de plusieurs types de licences avec des frais récurrents :

Les licences de distribution sont vendues en lots de plusieurs centaines à dizaines de milliers, avec un prix commençant très haut (avec un package minimum de 2000 unités vendu 15,000 euros), mais dégressif rapidement sur la quantité (environ 3 euros / unité pour un lot de 20 000 licences).

Ce dernier point est celui qui est souvent bloquant, développer avec Qt dans ces conditions n’est pas rentable sur des projets vendus en trop peu d’exemplaires.Qt refuse de vendre moins que son package minimum.

Alors on fait comment ?

Si développer avec Qt dans ces conditions n’est pas envisageable pour vous, il vous reste deux possibilités :

Vous vous en doutez au vu du titre de cet article, c’est de cette dernière possibilité dont je veux parler aujourd’hui.

Qt Open Source

Il est très probable que vous ne pensiez même pas possible de développer votre système embarqué avec Qt Open Source. Après tout, le site de Qt fait systématiquement référence à l’offre commerciale Qt for Device Creation dès qu’il s’agit de systèmes embarqués. Et ce n’est certainement pas le commercial de Qt qui vous aura proposé cette possibilité non plus.
C’est pourtant tout à fait possible. En effet, Qt est disponible en licence LGPL (Plus précisément LGPLv3), qui est une licence open source et vous permet d’utiliser Qt gratuitement pour votre projet IoT. Rien ne vous oblige donc à partir sur une licence commerciale, même si vous créez un produit à but commercial !

Les contraintes

Il y a plusieurs contraintes à partir dans cette direction qu’il est bon de lister.

Ce qui n’est pas disponible en open source

Déjà, les outils développés par The Qt Company (l’entreprise derrière Qt) ne sont pas tous disponibles sous cette licence LGPL. Ainsi, certains modules de Qt ne pourront pas être utilisés dans un projet open source.
Heureusement, ces modules sont peu nombreux et il est tout à fait possible de faire sans.

Qt a également développé des outils pour simplifier le développement pour systèmes embarqués, ces outils font partie de l’offre Qt for Device Creation et vous seront donc inaccessible. Je veux parler notamment de Boot2Qt, qui permet d’avoir un système linux embarqué prêt à faire fonctionner votre application Qt en seulement quelques heures, pourvu que vous utilisiez une plateforme supportée par l’outil. Ce second point est selon moi le plus important, faire fonctionner Qt au sein de votre projet embarqué peut être difficile et sa mise en place (au sein d’un système Yocto ou Buildroot) prend un certain temps.

Pour visualiser ce qui est disponible en open source, Qt met à disposition un outil.
Pour l’utiliser :

Selectionnez le type de licence que vous souhaitez (Pour de l’open source, essayez avec LGPLv3 pour les modules,  GPL3 et GPL2 pour les outils.).
Vous pouvez ignorer le champ « Qt Packages » qui se met automatiquement sur « Qt for Application Development » :
Cette distinction n’a pas de sens en dehors de la licence commerciale.

Les contraintes de la licence LGPLv3

Enfin, distribuer un système utilisant des composants open source sous licence commerciale implique également certaines contraintes.
La licence LGPLv3 est assez ouverte sur ce genre d’utilisation et vous permet de distribuer votre système sans en ouvrir les sources à certaines conditions :

Toutes ces contraintes mènent à un résultat évident, le coût de l’effort initial sera plus important si vous souhaitez utiliser Qt en open source. Cependant, le surcoût récurrent des licences de distribution Qt for Device Creation peut très rapidement dépasser ce montant.

Alors, Qt Open Source ou pas ?

Vous l’aurez compris, vous pouvez développer votre produit avec Qt Open Source et ainsi économiser sur le prix des licences commerciales. C’est un choix qui vient avec certaines contraintes, qui sont à mes yeux assez limitées.

Il y aura un coût de développement initial plus élevé, car vous n’aurez pas certains outils facilitant le démarrage et que vous devrez mettre en place certains systèmes pour être en règle avec les exigences de la licence LGPLv3.

Mais alors est-ce que ce surcoût a du sens ? Tout dépend du contexte et l’échelle de votre projet, dans certains cas le coût récurrent des licences de distribution sera moins problématique, si vous comptez vendre de très grandes quantités de votre produit, le prix des licences peut chuter. À vous de faire vos calculs.

Vous êtes décidé à développer votre système avec Qt Open Source ? Ce qui est sûr, c’est que c’est un choix qui ne s’improvise pas, vous devez absolument être en règle avec la licence que vous choisirez.

Ne vous lancez pas seul, contactez-moi directement pour discuter de la meilleure solution pour votre projet. J’ai moi-même développé de nombreux systèmes embarqués à succès utilisant Qt sous licence LGPL.

Article précédent

Choisir entre Qt 5 et Qt 6 pour votre application Linux embarqué

Article suivant

Flutter peut-il remplacer Qt sur Linux embarqué ?