On peut éventuellement dire qu'il y a l'espace noyau et l'espace utilisateur. Mais pas vraiment de "code utilisateur" en tant que tel. Le code du noyau est "relativement" bien défini, mais si on ajoute tous les pilotes et tous les modules ça devient beaucoup plus flou.
La GPL concerne tous les codes, sinon je pourrais prendre le code du noyau et le passer dans la licence que je veux.
Un binaire GPL n'a aucune influence sur un autre binaire GPL
Un binaire GPL peut parfaitement avoir une influence sur la licence d'un autre binaire. Par exemple quand NVidia a voulu sortir des modules propriétaire qui utilisait certaines fonctionnalités de DMA exposées par le kernel, ils ont été invité à corriger leur code au plus vite ou à le rendre public sous la licence GPL. Ils ont corrigé.
Et une bibliothèque GPL userland peut parfaitement avoir une influence sur tous les logiciels qui l'utilisent, sinon on ne ce serait pas amusé à créer la LGPL.
La GPL est une licence héréditaire dont l'idée géniale est que si tu te link dessus (.so), alors ton code doit être libre
Et bien déjà dans l'immense majorité des cas il doit non seulement être libre, mais encore en GPL et de la même version que celle utilisé par la bibliothèque. Cependant :
1 - Tu contredis toi même en disant qu'un binaire GPL (un .so) a un impact sur la licence d'un autre binaire. C'est d'ailleurs parfaitement exact, dans la majorité des cas le fait de linker, même dynamiquement, une bibliothèque GPL oblige mon code à être GPL
2 - Il y a une exception pour les bibliothèques systèmes. Par exemple : personne ne s'attend à devoir recoder l'ensemble des libs qui vont bien à chaque programme qui tente de lire ou d'écrire un fichier. Pourtant le code sous-jacent qui est linké est bien (en finalité) un module noyau. Très probablement sous licence GPLv2 du coup.
En bref quand tu utilises du code GPL (celui du noyau) via un binaire GPL (le noyau compilé de ta distribution) pour faire une opération de base (lire un fichier sur un device formatté en EXT4 par exemple) ça ne t'oblige pas à changer la licence de ton code. Et heureusement d'ailleurs, sinon on ne pourrait faire tourner que du code GPL sous Linux.
Donc cela me fait rire ces peurs sur la GPL ;-)
Et bien ça ne fait rire ni Linus Torvalds, ni l'ensemble des projets BSD. Et cette absence de rigolade, venant de gens dont on peut légitimement estimer qu'ils s'y connaissent un peu en licences, dure depuis 14 ans.
[^] # Re: Obsolète
Posté par Kaane . En réponse à la dépêche FreeBSD 13.0. Évalué à 8.
On peut éventuellement dire qu'il y a l'espace noyau et l'espace utilisateur. Mais pas vraiment de "code utilisateur" en tant que tel. Le code du noyau est "relativement" bien défini, mais si on ajoute tous les pilotes et tous les modules ça devient beaucoup plus flou.
La GPL concerne tous les codes, sinon je pourrais prendre le code du noyau et le passer dans la licence que je veux.
Un binaire GPL peut parfaitement avoir une influence sur la licence d'un autre binaire. Par exemple quand NVidia a voulu sortir des modules propriétaire qui utilisait certaines fonctionnalités de DMA exposées par le kernel, ils ont été invité à corriger leur code au plus vite ou à le rendre public sous la licence GPL. Ils ont corrigé.
Et une bibliothèque GPL userland peut parfaitement avoir une influence sur tous les logiciels qui l'utilisent, sinon on ne ce serait pas amusé à créer la LGPL.
Et bien déjà dans l'immense majorité des cas il doit non seulement être libre, mais encore en GPL et de la même version que celle utilisé par la bibliothèque. Cependant :
1 - Tu contredis toi même en disant qu'un binaire GPL (un .so) a un impact sur la licence d'un autre binaire. C'est d'ailleurs parfaitement exact, dans la majorité des cas le fait de linker, même dynamiquement, une bibliothèque GPL oblige mon code à être GPL
2 - Il y a une exception pour les bibliothèques systèmes. Par exemple : personne ne s'attend à devoir recoder l'ensemble des libs qui vont bien à chaque programme qui tente de lire ou d'écrire un fichier. Pourtant le code sous-jacent qui est linké est bien (en finalité) un module noyau. Très probablement sous licence GPLv2 du coup.
En bref quand tu utilises du code GPL (celui du noyau) via un binaire GPL (le noyau compilé de ta distribution) pour faire une opération de base (lire un fichier sur un device formatté en EXT4 par exemple) ça ne t'oblige pas à changer la licence de ton code. Et heureusement d'ailleurs, sinon on ne pourrait faire tourner que du code GPL sous Linux.
Et bien ça ne fait rire ni Linus Torvalds, ni l'ensemble des projets BSD. Et cette absence de rigolade, venant de gens dont on peut légitimement estimer qu'ils s'y connaissent un peu en licences, dure depuis 14 ans.
Peut-être qu'il y a réellement un soucis non ?