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.