Nous sommes le Jeu 28 Mars, 2024 12:11
Supprimer les cookies

[GPL] Fournir une lib ou un binaire dans un projet?

Image Libérer les logiciels et tout autre contenu, comment adopter une Licence Libre ? (GNU GPL, Art Libre et Creative Commons).
Un forum en collaboration directe avec le site Veni Vidi Libri.

Lun 06 Juil, 2009 11:02

Bonjour,

Je développe une application en Lua, destinée à simuler sur un PC/Mac le comportement d'une version Nintendo DS de l'interpréteur Lua (infos ici).

Jusqu'ici, je développais cette appli dans mon coin, et fournissais une archive pour chaque OS, contenant uniquement la version "compilée", accompagnée de l'exécutable de Lua 5.1 (+ sa lib .dll/.so) ainsi que la lib wxWidgets (idem) utilisée pour la partie GUI/graphique.

Je voudrais sortir ma prochaine version en tant que logiciel libre. Je me suis renseigné, ai lu quelques infos, et je pense passer en GPL, mais il me reste des questions:

  1. pour ce type de logiciel, y a-t-il une raison d'opter pour la GPLv2 plutôt que la v3 ? Si j'ai bien compris, la v3 ajoute principalement des clauses concernant la "tivoisation" (hardware) et les DRM.
  2. Dans mon propre code, je vais inclure un fichier contenant la licence complète, et dans chaque fichier source la notice de copyright (années etc.) ainsi que la mention que le code est sous licence GPL (url + indication que la licence est incluse avec l'appli) et la clause "no warranty". Ce code sera sans doute placé sur un site genre GitHub, afin que les sources soient disponibles. Y a-t-il d'autres étapes que j'aurais oubliées ?
  3. Mon "problème" concerne surtout l'exécutable Lua+lib et la lib wxWidgets, qui étaient fournis dans les archives "binaires seuls" de mes anciennes versions; maintenant si mon code devient GPL, je devrais m'assurer que:
    1. les dépendances de mon appli sont également compatibles GPL. C'est apparemment le cas, Lua étant en MIT (ici), et wxWidgets en LGPL avec clause supplémentaire plus permissive (ici). J'aurais tout de même une question à ce sujet: dans le cas où la licence de l'interpréteur Lua eut été non compatible GPL, étant donné son statut d'interpréteur, est-ce que j'avais tout de même l'autorisation de le fournir dans la même archive binaire que mon application (elle aussi sous forme compilée, l'archive source étant séparée) ?
    2. Malgré le fait que les licences des dépendances semblent ok pour mon projet GPL, reste la question de la présence des binaires seuls dans mon archive "version compilée", mais surtout dans ce cas, de la mise à disposition des sources: je ne dois tout de même pas inclure les sources de l'interpréteur Lua + sa lib, ainsi que les sources de la lib wxWidgets, dans mon archive "version source" ? Si la réponse est non, est-ce que je dois mentionner quelque part (fichier texte séparé ? fichiers source de l'application ?) l'url de ces projets, et donc de leur source ? Et quid de leurs licences, dois-je également les citer quelque part, sous forme d'URL, ou carrément les inclure en entier (fichier texte) ?

J'ai cherché sur le forum avec les mots clés "librairie" ou "compilé", pour cette question de packaging, mais je n'ai pas vraiment trouvé de réponse (désolé si j'ai raté qq chose).

Merci
Ced-le-pingouin

Messages : 4

Lun 06 Juil, 2009 12:56

Ced-le-pingouin a écrit:
  1. pour ce type de logiciel, y a-t-il une raison d'opter pour la GPLv2 plutôt que la v3 ? Si j'ai bien compris, la v3 ajoute principalement des clauses concernant la "tivoisation" (hardware) et les DRM.



Cela ne change pas grand chose de la passer sous GPLv3, si ton code n'interfère pas avec des DRM ou du hardware !!

Ced-le-pingouin a écrit:
  • Dans mon propre code, je vais inclure un fichier contenant la licence complète, et dans chaque fichier source la notice de copyright (années etc.) ainsi que la mention que le code est sous licence GPL (url + indication que la licence est incluse avec l'appli) et la clause "no warranty". Ce code sera sans doute placé sur un site genre GitHub, afin que les sources soient disponibles. Y a-t-il d'autres étapes que j'aurais oubliées ?


  • Je ne crois pas que tu ai oublié des étapes.

    Ced-le-pingouin a écrit:
  • Mon "problème" concerne surtout l'exécutable Lua+lib et la lib wxWidgets, qui étaient fournis dans les archives "binaires seuls" de mes anciennes versions; maintenant si mon code devient GPL, je devrais m'assurer que:
    1. les dépendances de mon appli sont également compatibles GPL. C'est apparemment le cas, Lua étant en MIT (ici), et wxWidgets en LGPL avec clause supplémentaire plus permissive (ici). J'aurais tout de même une question à ce sujet: dans le cas où la licence de l'interpréteur Lua eut été non compatible GPL, étant donné son statut d'interpréteur, est-ce que j'avais tout de même l'autorisation de le fournir dans la même archive binaire que mon application (elle aussi sous forme compilée, l'archive source étant séparée) ?
    2. Malgré le fait que les licences des dépendances semblent ok pour mon projet GPL, reste la question de la présence des binaires seuls dans mon archive "version compilée", mais surtout dans ce cas, de la mise à disposition des sources: je ne dois tout de même pas inclure les sources de l'interpréteur Lua + sa lib, ainsi que les sources de la lib wxWidgets, dans mon archive "version source" ? Si la réponse est non, est-ce que je dois mentionner quelque part (fichier texte séparé ? fichiers source de l'application ?) l'url de ces projets, et donc de leur source ? Et quid de leurs licences, dois-je également les citer quelque part, sous forme d'URL, ou carrément les inclure en entier (fichier texte) ?


  • Je dirais, que seul le code source de ton produit doit être fourni, tu dois juste indiqué où trouver les librairies et le code source de ces dernière.
    cheval_boiteux

    Avatar de l’utilisateur
    Messages : 1531
    Géo : Dole (39) - Strasbourg (67)

    Mar 07 Juil, 2009 10:32

    cheval_boiteux a écrit:Cela ne change pas grand chose de la passer sous GPLv3, si ton code n'interfère pas avec des DRM ou du hardware !!


    C'est ce que je me dis aussi. Je vais sans doute opter pour la v3.

    cheval_boiteux a écrit:Je dirais, que seul le code source de ton produit doit être fourni, tu dois juste indiqué où trouver les librairies et le code source de ces dernière.


    Ok, merci pour ta réponse.

    Est-ce que d'autres spécialistes auraient un avis également ?
    Ced-le-pingouin

    Messages : 4

    Lun 24 Août, 2009 23:01

    Bonjour Ced-le-pingouin,

    Ced-le-pingouin a écrit:
    1. pour ce type de logiciel, y a-t-il une raison d'opter pour la GPLv2 plutôt que la v3 ? Si j'ai bien compris, la v3 ajoute principalement des clauses concernant la "tivoisation" (hardware) et les DRM.

    C'est bien ça. Tu trouveras une analyse de la v3 sur le blog de VVL pour plus de détails. Après, la logique voudrait que tu utilises la dernière version en date (c'est un peu comme mettre à jour sa distribution Linux :) ). Une autre solution : jouer avec la possibilité de version ultérieure (licencier en « v2 et ultérieures » par exemple), qui permet une compatibilité maximale (mais avec un risque si les futures versions de la licence partent dans une direction qui ne te convient pas).

    Ced-le-pingouin a écrit:
    1. Dans mon propre code, je vais inclure un fichier contenant la licence complète, et dans chaque fichier source la notice de copyright (années etc.) ainsi que la mention que le code est sous licence GPL (url + indication que la licence est incluse avec l'appli) et la clause "no warranty". Ce code sera sans doute placé sur un site genre GitHub, afin que les sources soient disponibles. Y a-t-il d'autres étapes que j'aurais oubliées ?

    Je rejoins cheval_boiteux : tout est bon !

    Ced-le-pingouin a écrit:
    1. Mon "problème" concerne surtout l'exécutable Lua+lib et la lib wxWidgets, qui étaient fournis dans les archives "binaires seuls" de mes anciennes versions; maintenant si mon code devient GPL, je devrais m'assurer que:
      1. les dépendances de mon appli sont également compatibles GPL. C'est apparemment le cas, Lua étant en MIT (ici), et wxWidgets en LGPL avec clause supplémentaire plus permissive (ici). J'aurais tout de même une question à ce sujet: dans le cas où la licence de l'interpréteur Lua eut été non compatible GPL, étant donné son statut d'interpréteur, est-ce que j'avais tout de même l'autorisation de le fournir dans la même archive binaire que mon application (elle aussi sous forme compilée, l'archive source étant séparée) ?
      2. Malgré le fait que les licences des dépendances semblent ok pour mon projet GPL, reste la question de la présence des binaires seuls dans mon archive "version compilée", mais surtout dans ce cas, de la mise à disposition des sources: je ne dois tout de même pas inclure les sources de l'interpréteur Lua + sa lib, ainsi que les sources de la lib wxWidgets, dans mon archive "version source" ? Si la réponse est non, est-ce que je dois mentionner quelque part (fichier texte séparé ? fichiers source de l'application ?) l'url de ces projets, et donc de leur source ? Et quid de leurs licences, dois-je également les citer quelque part, sous forme d'URL, ou carrément les inclure en entier (fichier texte) ?

    À mon sens : si tu redistribues, tu dois redistribuer les sources également. La réponse doit être par là :

    I downloaded just the binary from the net. If I distribute copies, do I have to get the source and distribute that too?

    Yes. The general rule is, if you distribute binaries, you must distribute the complete corresponding source code too. The exception for the case where you received a written offer for source code is quite limited.
    Veni, Vidi, Libri - Diffuseurs de Licences Libres
    http://venividilibri.org
    Maps

    Avatar de l’utilisateur
    Messages : 1691
    Géo : Québec

    Mar 25 Août, 2009 08:54

    Maps a écrit:À mon sens : si tu redistribues, tu dois redistribuer les sources également. La réponse doit être par là :

    I downloaded just the binary from the net. If I distribute copies, do I have to get the source and distribute that too?

    Yes. The general rule is, if you distribute binaries, you must distribute the complete corresponding source code too. The exception for the case where you received a written offer for source code is quite limited.


    Bonjour,

    Merci pour la réponse.

    Aïe, je craignais un peu ce point. En effet, je trouve que créer une archive avec mes sources, en y incluant en plus les sources complètes de plusieurs projets dont je dépends, gonfle énormément la taille de mon archive source. Vu que le but est quand même de voir les sources de mon appli, et qu'en plus Lua et wxWidgets (auxquels je pourrais ajouter OpenGL et SDL dans mes développements récents) sont 2 projets très visibles sur le net, dont toutes les versions sont dispos sous forme de source, je pensais que je pourrais m'en passer...

    D'autant que des projets comme wxWidgets sont énormes... Et que bien entendu je ne modifie pas leurs sources pour faire tourner mon appli, et que je me sers souvent d'un seul fichier final (la lib, pas les exécutables, utilitaires etc.).
    Ced-le-pingouin

    Messages : 4

    Jeu 27 Août, 2009 23:02

    Réflexion faite, je me demande si je n'ai pas pris le problème à l'envers. On se fiche pas mal de la GPL, puisque c'est la licence que tu veux appliquer à l'ensemble, et pas la licence des briques utilisées. Si je résumé ces briques, on a :

    - Lua : licence MIT (X11), pas de souci, tu en fais ce que tu veux tant que tu gardes la mention du copyright. Tu peux donc l'inclure sans problème dans un tout sous GPL, quelles que soient les liaisons entre les deux. La licence ne dit d'ailleurs rien sur la redistribution du code source.

    - wxWidgets : licence LGPL (v2) modifiée. Là, c'est plus compliqué, mais l'étendue de la licence est limitée aux modifications de wxWidgets, pas de ton application. Et comme tu modifies rien, ça simplifie. La LGPL dit à sa section 5 :

    5. A program that contains no derivative of any portion of the
    Library, but is designed to work with the Library by being
    compiled or linked with it, is called a "work that uses the
    Library". Such a work, in isolation, is not a derivative work
    of the Library, and therefore falls outside the scope of this
    License.


    Je suis une bille en programmation, mais ça me semble coller à ton cas. Donc tu peux encore faire ce que tu veux avec ta licence, du moment que tu ne touches pas à la LGPL (modifiée) de wxWidgets. Là où ça se complique, c'est pour la licence du tout (ton appli + wxWidgets), et c'est juste à la suite dans la LGPL :

    However, linking a "work that uses the Library" with the Library
    creates an executable that is a derivative of the Library
    (because it contains portions of the Library), rather than a
    "work that uses the library". The executable is therefore
    covered by this License. Section 6 states terms for distribution
    of such executables.


    Il faudrait donc que l'ensemble soit sous LGPL (ou GPL puisque c'est permis), et ça tombe bien, vu que c'est ton choix. Et de toute façon, l'exception de la licence modifiée de wxWidgets t'exonérait même de cette contrainte :

    The wxWindows Licence is essentially the L-GPL (Library General Public Licence), with an exception stating that derived works in binary form may be distributed on the user's own terms. This is a solution that satisfies those who wish to produce GPL'ed software using wxWidgets, and also those producing proprietary software.


    Ce qui fait que tu peux même décider de distribuer ton logiciel sous licence propriétaire ! (remarque bien que ce n'est absolument pas une incitation :wink: ).
    Au final pour les sources de ton application, tu peux les garder indépendantes des libraires, et un lien ou une indication de comment retrouver les sources de ces librairies annexes pourrait suffire (ne serait-ce que par courtoisie).

    Bon, j'espère ne pas avoir trop dit de bêtises là-dedans cette fois-ci, il commence à se faire tard pour moi...
    Veni, Vidi, Libri - Diffuseurs de Licences Libres
    http://venividilibri.org
    Maps

    Avatar de l’utilisateur
    Messages : 1691
    Géo : Québec

    Ven 28 Août, 2009 10:22

    Merci encore pour cette réponse.

    N'étant pas très calé en "lecture du droit", je ne suis pas trop capable de déceler les nuances dans les phrases de toutes ces licences, donc merci d'avoir un peu débroussaillé tout ça.

    Je vais donc juste rappeler les licences des composants que j'utilise.
    Ced-le-pingouin

    Messages : 4

    Qui est en ligne ?

    Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit