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: Marie Piolot <mariepiolot AT gmail.com>
  • To: Basile Starynkevitch <basile AT starynkevitch.net>
  • Cc: Sébastien Dinot <sdinot AT april.org>, juridique AT april.org, technique AT april.org
  • Subject: Re: [TECH] question sur la STL C++ Linux
  • Date: Thu, 28 Mar 2013 09:52:47 +0100

Merci à tous, c'est très clair et très précis. Je ne m'attendais pas à un tel déluge d'information ! Mais je suis un peu rassurée car jusqu'à présent j'utilisais la libstdc++ sans me poser de questions et j'ai eu un doute.
Puis-je me permettre une autre question ? Celle-ci porte sur Python. Est-ce que comme Python est un langage libre, tous les logiciels développés en Python sont libres ? Est-ce que les logiciels développés en Python sont automatiquement sous GNU GPL ou sous une autre licence ?
Cordialement,
Marie Piolot


Le 28 mars 2013 07:34, Basile Starynkevitch <basile AT starynkevitch.net> a écrit :
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