Bonjour à tous,
Au travail, nous développons, entre autre, une application Electron propriétaire qu'on package pour Windows, Linux et Mac et des extensions de navigateur (Firefox et basés sur Chrome). Tout ce petit monde utilise l'écosystème Node et s'appuie sur de très (très) nombreuses librairies. Nous faisons attention à ne sélectionner que des bibliothèques sous licence non contaminantes, parmi elles, beaucoup sont sous licence MIT ou BSD ou des variantes.
Or ces licences demandent en général une redistribution de la mention de copyright et/ou des conditions de distributions en même temps que le binaire produit. Par exemple pour MIT :
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Ou pour BSD :
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution
Tel que je comprend ces licences, il faut que nous maintenions une liste de toutes les dépendances et de leurs dépendances, de façon récursive, puis que nous extrayons les fichiers de licence, pour les distribuer en même temps que le binaire. Et ensuite, que faire de cette collection de fichiers ? Faut-il les mettre sur le système de l'utilisateur ? Comment gérer le cas des extensions de navigateur ? Quelles sont les bonnes pratiques en la matière ?
On a tenté de mettre une fenêtres de remerciements qui listait les dépendances et renvoyait vers leurs licences. Mais on atteint les limites de ce système tant le nombre de dépendances liées est impressionnant : on tourne autour de 1200 dans notre projet !
Et vous comment gérer vous cette problématique ? Connaissez-vous des outils qui la solutionnent, même partiellement ?
Je vous remercie pour votre aide !
# Nintendo fait une énorme liste des licences dans une seul page
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 6.
Hello,
Je suis tombé hier soir sur la page d'informations de licence dans les menus de la Nintendo Switch suite à une mise à jour hier.
Eh ben, ils ont juste fait une immense page défilable avec toutes les mentions et licences.
J'ai commencé à lire le début (il y a curl, c'est peut-être pour ça la mise à jour ?), mais j'ai assez vite abandonné quand j'ai vu la taille de l'ascenseur de la scrollbar 😅
J'imagine que Nintendo a contrôlé que c'était une solution suffisante avant de le faire…
Après il serait peut être envisageable d'ajouter un index des projets ou un système de recherche par nom. Ça serait plus sympa pour rendre plus visible les projets (bon ça restera un index avec 1200 entrées 😬).
# à voire pour les sous dependances
Posté par NeoX . Évalué à 3.
si tu cites ta dependance à une librairie que tu utilises,
as-tu vraiment besoin de lister la dependance de cette librairie à une "sous librairie" que tu n 'utilises pas directement ?
par exemple, tu utilises openvpn dans ton logiciel, tu inclues donc la licence d'openvpn
mais tu n'as peut-etre pas besoin de lister la licence de Qt/GTK de l'interface graphique du produit, ni celle de openSSL
[^] # Re: à voire pour les sous dependances
Posté par aiolos . Évalué à 2.
Ben ça, c'est une question qu'on s'est posée aussi. Mais je dirais que si ta dépendance l'intègre, le code se retrouve in fine dans ton code…
[^] # Re: à voire pour les sous dependances
Posté par NeoX . Évalué à 4.
oui mais tu ne l'utilises pas directement,
c'est donc la licence de OpenVPN qui va s'appliquer, peu importe les librairies qui sont dedans (aujourd'hui openSSL, demain libreSSL, apres demain xxxSSL…)
[^] # Re: à voire pour les sous dependances
Posté par BAud (site web personnel) . Évalué à 3.
ça dépend si tu fais
# Pas de limites
Posté par Zenitram (site web personnel) . Évalué à 6. Dernière modification le 12 octobre 2023 à 15:58.
De quelles limites s'agit-il? si tu a toutes ces libs fournies, tu as de la place pour la petite licence… Mais sinon, voir par exemple la page de licence de Chrome pour une façon de faire (eux n'ont pas 1200 logiciels, certes…)
Vu la taille énorme que le binaire doit avoir avec 1200 dépendance, la page HTML que tu lances dans le navigateur ne va pas changer grand chose.
Je dois avouer que perso je liste ce que j'utilise directement puis renvoie à la page de licence des projets, leur laissant la charge des sous-dépendances.
Peut-être pas des plus carrés, mais franchement : à part si tu es Google sur 1 milliard de machines, tout le monde s'en fout de plus.
# attention au scope
Posté par vincent LECOQ (site web personnel) . Évalué à 2.
J'avais eu le coup pour le même genre de boulot avec maven
Tes 1200 dépendances sont elles pour le runtime ou aussi pour le build/test/packaging/… ?
[^] # Re: attention au scope
Posté par aiolos . Évalué à 2.
Il y en a une partie qui sont pour le build, effectivement. On a prévu de les enlever, mais en première approche, on les a laissées dans la liste.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.