Forum général.général Question sur les licences

Posté par . Licence CC by-sa
Tags :
4
15
juin
2015

Bonjour, un physicien a écrit un code qui permet de reproduire des observations liées à la fission nucléaire. Ce code est écrit en FreeBASIC et est publié sous licence GPLv3. Ce physicien a également écrit un traducteur qui permet de générer du code Fortran à partir du code FreeBASIC. Ce programme en Fortran est lui aussi publié sous licence GPLv3.
On envisage d'intégrer ce code de physique dans un logiciel de simulation plus général, GEANT4. Or ce logiciel utilise une licence particulière qui lui empêche d'accepter du code sous GPL sous peine que tout son code devienne également sous GPL (ce que les développeurs de GEANT4 ne souhaitent pas).
Du coup, sachant que le code sous FreeBASIC devra être converti en c++, est-il possible de publier le code c++ sous licence GEANT4 tandis que les codes équivalents en FreeBASIC et Fortran sont disponibles sous GPLv3 ? Cela nécessite-t-il l'accord de l'auteur du code sous FreeBASIC ?
Existe-t-il d'autres alternatives ?
Merci d'avance pour vos éclaircissements.

  • # ça dépend

    Posté par (page perso) . Évalué à 3. Dernière modification le 15/06/15 à 20:43.

    qui lui empêche d'accepter du code sous GPL

    qui aurait indiqué cela ?

    sous peine que tout son code devienne également sous GPL

    o_O !?
    Cela dépend comment cela est organisé, mais si l'outil reste "à côté", ses sources séparées dans des fichiers différents de ceux de GEANT4, chaque source peut garder sa licence. En revanche pour le binaire, si à l'édition de liens, le binaire contient le résultat de la compilation provenant de code GPLv3, le binaire sera distribué sous licence GPLv3 effectivement.

    En gros, ce serait les fichiers contenant du source des deux projets pour lesquels il faut être attentif : à distribuer en GPLv3 effectivement.

    J'ai regardé en diagonal la licence de GEANT4, cela ressemble à une BSD avec la clause de publicité, cela a des chances d'être compatible avec la GPL (mais mieux vaut demander à un juriste).

    Le plus simple reste tout de même de demander à l'auteur initial s'il souhaite fournir son code sous celle de GEANT4 ou une licence MIT qui permettra de lier plus facilement le code, sans impact sur la licence de distribution du binaire.

    J'imagine que le code en question est celui de GEF/2015 : http://www.khs-erzhausen.de et http://www.cenbg.in2p3.fr/GEF ?

    • [^] # Re: ça dépend

      Posté par . Évalué à 2.

      En fait GEANT4 est un « framework ». Du coup il ne fournit pas de binaire en tant que tel mais fournit plutôt un ensemble de bibliothèques cohérentes permettant, nécessitant l'écriture d'un code, la simulation d'une expérience de physique. Du coup, je dirai que toutes les bibliothèques vivent leur vie les unes à côté des autres (bien qu'ils puissent y avoir de fortes interactions entre elles).

      Donc si je comprends bien ton explication, le simple fait de modifier le langage ne permet pas d'attribuer une licence différente (ça se tient). Et oui, il s'agit bien du code GEF. Je ne connais pas, encore, ce que va envisager l'auteur mais un changement de licence pour une inclusion dans GEANT4 implique-t-il forcément un changement de licence pour les version FreeBASIC et Fortran ?

      Enfin concernant le premier point concernant le fait que GEANT4 ne peut accepter du code sous licence GPLv3, le développeur GEANT a indiqué la chose suivante : « including GPL within Geant4 compromises the Geant4 license (or so the lawyers tell us). ». Donc apparemment, il ne se rappelle plus la discussion précise mais ils ont consultés un avocat.

      • [^] # Re: ça dépend

        Posté par (page perso) . Évalué à 3. Dernière modification le 15/06/15 à 22:42.

        Du coup, je dirai que toutes les bibliothèques vivent leur vie les unes à côté des autres (bien qu'ils puissent y avoir de fortes interactions entre elles).

        Des fichiers source distincts peuvent avoir des licences différentes.
        Si l'on distribue sous forme d'un tar.gz le tout, là la GPL pourrait s'appliquer au fichier résultant et prendre le pas sur une licence permissive, même si j'ai un doute…

        Il doit être possible de faire des paquets distincts ?

        un changement de licence pour une inclusion dans GEANT4 implique-t-il forcément un changement de licence pour les version FreeBASIC et Fortran ?

        S'il est l'unique auteur, c'est lui qui choisit sa licence pour distribuer. Il peut tout à fait faire une version permettant l'intégration dans GEANT4 avec une licence permissive à sélectionner (la MIT est souvent un bon choix) et il pourra aussi continuer de distribuer sous licence GPLv3 sur son site (simplement, c'est aux développeurs de GEANT4 de garder une trace : mail archivé sur mailing-list publique de préférence… sinon papier scanné puis mis en ligne…).

        « including GPL within Geant4 compromises the Geant4 license (or so the lawyers tell us). »

        Selon le choix de constitution du paquet pour distribuer, il pourrait y avoir une partie sous licence de Geant4 et une autre en GPLv3.
        Arg : je viens de voir https://wiki.debian.org/DebianScience/Geant4 et notamment "Since release 8.1, Geant4 has been available under a new Geant4 Software License that looks similar to the new (positive-advertising-clause) XFree86 license, plus an anti-patent clause. This makes it non-free by Debian standards, as well as GPL-incompatible."

        C'est ballot, Geant3 était en GPL… là, ça "complique" la distribution de binaires qui seraient basés sur Geant4 mixant la partie GPL si elle le reste, vu que la licence résultante serait "indécidable" (donc illégale :/)… la voie la plus "simple" reste de demander à l'auteur de GEF s'il veut bien s'intégrer à Geant4 au prix d'un changement de licence ou envisager de revenir à la GPLv3 (ou la LGPLv3) pour Geant4 :D

      • [^] # Re: ça dépend

        Posté par (page perso) . Évalué à 3.

        Donc si je comprends bien ton explication, le simple fait de modifier le langage ne permet pas d'attribuer une licence différente (ça se tient).

        C'est plus compliqué que cela. Cela fait intervenir la notion de travaux dérivés. A partir de quel moment un travail est-il ou n'est-il pas le dérivé d'un autre ?

        Une licence ne peut que protéger une implémentation d'un algorithme, pas l'algorithme lui-même. Pour reprendre ton exemple, le code Fortran est généré automatiquement via un outil. Il s'agira donc d'un travail dérivé d'un autre. Il devra donc être publié sous GPL.

        Maintenant, concernant l'implémentation en C++ cela se corse. Tu ne précises pas comment cela sera fait. Automatiquement ? Manuellement ? Même si c'est manuellement, si c'est une traduction pure et simple en C++, alors il est fort à parier que là aussi, il faudra publier le code sous GPL.

        Par contre, si le code est seulement étudié pour l'analyser et en tirer l'algorithme, puis ensuite réimplémenter cet algorithme, alors on ne peut plus réellement considérer qu'il s'agit d'une oeuvre dérivée. Il est donc possible d'utiliser la licence que tu souhaites.

        Maintenant, on pourra toujours objecter que ton écriture de code sera influencée par le code que tu as lu. Et là, ce sera beaucoup plus difficile de dire qu'il s'agit d'un travail propre et non d'un travail dérivé. C'est pourquoi dans de telles situations, il est recommandé d'avoir 2 acteurs :
        - un qui lit le code, l'étudie, et écrit une spécification fonctionnelle ;
        - un qui n'a pas lu le code, et qui implémente la spécification fonctionnelle.

        Maintenant, il est très certainement plus simple de contacter l'auteur pour essayer d'obtenir la concession d'une licence spécifique.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.