Accéder au contenu.
Menu Sympa

technique - Re: [TECH] question sur la STL C++ Linux

Objet : Liste pour les discussions techniques (liste à inscription publique)

Archives de la liste

Re: [TECH] question sur la STL C++ Linux


Chronologique Discussions 
  • From: Basile Starynkevitch <basile AT starynkevitch.net>
  • To: Sébastien Dinot <sdinot AT april.org>, Marie Piolot <mariepiolot AT gmail.com>, juridique AT april.org, technique AT april.org
  • Subject: Re: [TECH] question sur la STL C++ Linux
  • Date: Thu, 28 Mar 2013 07:34:00 +0100

On Wed, Mar 27, 2013 at 10:50:40PM +0100, Sébastien Dinot wrote:
> Bonsoir,
>
> Marie Piolot a écrit :
> > J'ai une question : est-ce qu'utiliser la STL C++ Linux, qui est sous
> > licence GNU GPL, dans un programme que je développe, rend ce programme
> > sous licence GNU GPL aussi ?
>
> Si la bibliothèque libstdc++ était diffusée sous licence GNU GPL pure,
> ce serait effectivement le cas. Mais cette bibliothèque est en réalité
> diffusée sous licence GNU GPL v3 augmentée de la « GCC Runtime Library
> Exception 3.1 » comme cela est indiqué dans le référentiel de sources de
> GCC (la bibliothèque libstdc++ en est issue) et la page ci-dessous :
>
> http://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html
>
> L'objet de la « GCC Rutime Library Exception » est très clair :
>
> /When you use GCC to compile a program, GCC may combine portions of
> certain GCC header files and runtime libraries with the compiled
> program. The purpose of this Exception is to allow compilation of
> non-GPL (including proprietary) programs to use, in this way, the
> header files and runtime libraries covered by this Exception./


La même GCC runtime library exception permet (et a été modifiée pour)
l'utilisation
de greffons (ou plugins) dans le compilateur GCC. Les compilateurs GCC
récents (depuis 4.5 en théorie,
sachant que 4.8 est sorti il y a quelque jours) sont extensibles par des
greffons,
par exemple MELT http://gcc-melt.org/ (je dis GCC 4.5 en théorie, mais le
support des
greffons dans GCC 4.5 est techniquement insuffisant; il est préférable
d'utiliser
au moins 4.6, et plutôt 4.7 ou 4.8 avec un greffon de GCC). En principe un
greffon
ne fonctionne qu'avec une version spécifique de GCC (ainsi, un greffon pour
GCC 4.6
ne fonctionnera probablement pas pour GCC 4.8)

De ce que j'ai compris des greffons de GCC et licenses:

Techniquement http://gcc.gnu.org/onlinedocs/gccint/Plugins.html et
http://gcc.gnu.org/onlinedocs/gccint/Plugin-API.html un greffon devrait
être sous
licence libre GPL compatible.

Un programme binaire compilé par GCC étendu par un (ou des) greffon[s] de GCC
peut être non-libre (cad non GPLv3 compatible) seulement si le (ou les)
greffon[s]
utilisés pour le compiler sont libres et GPLv3 compatible. Je pense (sans en
être sûr)
qu'il est préferable (peut-être légalement nécessaire?) que le greffon de GCC
utilisé
pour compiler un programme binaire propriétaire doit non seulement être libre
GPLv3 compatible
mais devrait probablement être publié....

Il semblerait qu'un greffon propriétaire de GCC puisse (plus ou moins
légalement)
être utilisé pour compiler un logiciel libre GPLv3; à ma connaissance ça ne
s'est
jamais produit en pratique (je n'ai pas entendu parlé de greffon propriétaire
de GCC).

Un greffon propriétiare de GCC ne peut légalement pas être utilisé pour
compiler du code
propriétaire par le procédé légal suivant: si le greffon n'est pas libre, la
librarie libgcc.a
(ou libstdc++.a) perd son status de GCC runtime library exception et devient
GPLv3.
Comme tout programme compilé par GCC est linké à cette petite libgcc.a le
programme total obtenu
est tenu, car linké à une librarie GPLv3 qu'est devenue libgcc.a, de
respecter la licence GPLv3.

Par contre, une entreprise développant un logiciel propriétaire pourrait
développer un
greffon propriétaire de GCC pour les tâches de développements en ne
l'utilisant pas
pour compiler le binaire vendu, mais en utilisant ce greffon seulement en
interne
pour le développement (par exemple ce greffon pourrait forcer un style de
codage,
ou faire une analyse statique du code).


Moralement les greffons de GCC devraient tous être libres sous licence GPLv3
compatible.
L'obligation légale pour un greffon de GCC d'être GPLv3 compatible s'impose
pour un binaire propriétaire.

A mon avis, il n'y a pas assez de greffons de GCC. Les entreprises ont
peut-être peur
d'en développer (ou d'en sous-traiter le développement à ceux qui sauraient
le faire).

Attention, je ne suis pas juriste mais informaticien. J'ai peut-être écrit
ici des bêtises.

Librement.
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***



Archives gérées par MHonArc 2.6.16.

Haut de le page