Intégrez de l’open source dans votre produit IoT commercial
Débloquez l’énorme potentiel des bibliothèques open source pour votre projet IoT. Gagnez en efficacité et économisez sur les licences commerciales.
05/01/2022
Nathanaël Landais
Souvent négligée en début de développement,
la question des licences sous lesquels sont distribués
les composants logiciels utilisés dans le développement
de votre produit est essentielle.
Il y a beaucoup de librairies pouvant faire gagner
du temps et de l’argent dans le développement qui sont distribuées
sous des licences open source. Si certaines le sont sous des licences
très permissives telles que MIT ou Apache, d’autres le sont sous LGPLv3
ou GPLv3. Ces dernières sont réputées difficilement compatibles avec un
produit embarqué et souvent considérées comme inutilisables dans le cadre
d’un produit commercial non open source.
Pourtant, vous pouvez intégrer des composants LGPLv3
et même GPLv3 dans votre système embarqué Linux. Si
certaines contraintes viennent avec l’utilisation de
composants sous ces licences, le temps qu’ils font gagner
peut valoir qu’ils soient considérés
Je vais vous expliquer quelles sont ces obligations et comment y répondre.
Je suis Nathanaël Landais , architecte en développement de logiciels embarqués IoT. J’ai conçu et développé des systèmes embarqués s’appuyant sur des composants open source aujourd’hui distribués en centaines de milliers d’exemplaires à travers le monde. Leur point commun, des interfaces utilisateur modernes et fluides.
Les obligations de la LGPLv3
La licence LGPLv3 est assez libre et vous permet de distribuer votre système sans en ouvrir les sources à certaines conditions :
- Dans le cadre d’un produit à destination des particuliers, le consommateur, doit avoir la possibilité de remplacer lui-même les composants LGPLv3 utilisés dans votre système. Concrètement, il doit pouvoir recompiler lui-même ces composants et les mettre sur votre système à la place de la version que vous avez fourni. Les informations sur comment procéder doivent être fournies par le vendeur.
- Vous devez mettre à disposition de vos clients les sources de ces composants, même si vous les avez modifiés. Vous devez garantir la disponibilité de ces sources, le plus simple pour s’en assurer est de les héberger sur votre propre serveur, mais un serveur tier peut aussi être utilisé.
- Les licences des composants LGPLv3 utilisés doivent être livrés avec l’application et ces composants doivent être nommés. Si votre application affiche des informations de copyright quelles quelles soient, le texte des licences et copyrights des composants externes doivent également être accessible.
- Les composants open source doivent rester séparés de votre logiciel. Ce que ça signifie pour une bibliothèque est que celle-ci ne doit pas être intégrée directement à l’exécutable de votre application. Une solution pour répondre à cette exigence est de distribuer le composant open source sous forme de librairie partagée (fichier .so sur Linux)
GPLv3 une version plus stricte
Le cas est plus complexe avec la licence GPLv3,
celle-ci partage les obligations listées pour la LGPLv3,
mais y ajoute l’obligation de placer tout logiciel qui intègre
un composant GPLv3 sous cette même licence.
Concrètement :
vous développez votre produit commercial, vous intégrez un
composant sous licence GPLv3, voilà que votre produit commercial
est lui-même sous licence GPLv3, c’est-à-dire open source et libre
d’utilisation et de redistribution.
Si c’est certainement limitant,
vous n’êtes pas condamné à placer la totalité de votre logiciel sous
cette licence. Une solution simple est de découper votre logiciel en
plusieurs parties. Vous pouvez gérer les interactions avec les composants
GPLv3 depuis un composant de votre logiciel dédié à cet usage. De cette manière
vous pouvez garder la partie stratégique de votre code sous licence privée tout
en bénéficiant des avantages d’éléments externes GPLv3.
Un premier pas vers l’open source
Vous souhaitez développer votre produit avec des composants open sources ?
Ce qui est sûr, c’est que ça ne s’improvise pas, vous devez faire le nécessaire
pour être en règle avec la licence que vous choisirez.
Ne vous lancez pas seul,
contactez-moi directement nous analyserons ensemble la compatibilité de votre
projet et les solutions adaptées. J’ai moi-même développé de nombreux systèmes
embarqués à succès utilisant des bibliothèques open sources.