Journal Utilité des CLA quand on fait du libre et que du libre

Posté par (page perso) . Licence CC by-sa.
30
20
mar.
2018

Les CLA sont décriés. On accuse parfois les entités demandant un CLA de vouloir faire du non libre "sur le dos" des libristes en faisant une version non libre d'un produit, dans le présent ou dans un hypothétique futur.

C'est certes possible. Mais les CLA ne servent pas qu'à ça. Voyons un cas pratique (réel, même si ça peut paraître surréaliste).

Dans le cadre d'un appel à projet, nous avons proposé de réutiliser du libre pour ne pas réinventer la roue. Mais notre proposition initiale s'est vue critiquée, car nous avions proposé une solution compatible GPLv3+/MPLv2+, mais pas une solution exactement GPLv3+/MPLv2+ comme demandé par le cahier des charges. Voyez plus loin qu'une guéguerre copyleft contre copyfree (permissif), car si on avait proposé une solution basée sur des bibliothèques GPLv3+ ça aurait été sans doute pareil.

On aurait donc dû recoder quelque chose qui existe déjà en libre et compatible (point de tentative à la CDDL de mettre des bâtons dans les roues). Mais voilà, on a un CLA. Et il nous a permit de "relicencier" (changer la licence et faire comme si la nouvelle licence est celle qui a toujours été proposée) ce qui existe déjà et dont on possède les droit (merci le CLA), et on a pu finalement proposer notre solution technique initiale en nous forkant nous-mêmes avec un seul changement (chercher et remplacer toute occurrence de "BSD" par "GPLv3+/MPLv2+"). Sans le CLA, nous n'aurions pas pu le faire, car la BSD est "compatible" mais ne permet pas de changer la licence (il y a eu déjà quelques batailles sur ce sujet avec du code BSD dans le noyau Linux et des tentative de marquer le fichier GPLv2).

Alors réfléchissez-y à deux fois avant de refuser un CLA : ça peut certes permettre de "mauvaises choses" de votre point de vue, mais ça peut aussi éviter des galères quand il y a des blocages sur les licences libres, et ce pour faire du libre. Les gens derrière une demande de CLA ne le font pas forcément pour "faire le mal".

Pour l’anecdote, j'ai refusé de relicencier zlib (on peut le faire car la licence permet "tout") comme fortement suggéré en expliquant la raison (je n'ai pas touchée à la lib, par respect pour l'auteur je ne me voyais pas forker pour juste relicencier en GPLv3+/MPL2+) et le rapport final des scrutateurs a donné un point négatif à notre livraison pour cette raison.

Ce n'est pas obligatoire (un inconvénient des CLA où on donne les clés à l’entité qui reçoit le CLA et uniquement lui), mais comme nous avons pour principe d'éviter d'utiliser des droits que nous ne donnons pas, nous avons changé notre licence pour autoriser à relicencier dans certaines licences libres.

Une version de cette histoire avec plus de détails mais en anglais est aussi disponible : Why we changed MediaConch's license.

  • # C'est pas moi qui le dit !

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

    Sinon tu prends la licence BSD modifiée (celle qui est finalement la plus courante quand on parle de licence BSD) et c'est 100% compatible GPLv3 sans avoir a demander de CLA : https://www.gnu.org/licenses/license-list.fr.html#ModifiedBSD

    Pour moi le CLA est obligatoire justement pour les logiciels avec une licence restrictive comme la GPL car il devient impossible de faire le moindre changement sans l'accord de tous.

    • [^] # Re: C'est pas moi qui le dit !

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

      c'est 100% compatible GPLv3 sans avoir a demander de CLA

      Tout à fait.
      Et c'est bien le problème : elle n'est que compatible.

      Je t'invite à relire le journal, car être compatible n'est pas suffisant, c'est toute la difficulté et le sujet du journal.

      Pour moi le CLA est obligatoire justement pour les logiciels avec une licence restrictive comme la GPL car il devient impossible de faire le moindre changement sans l'accord de tous.

      Je t'invite à relire le journal, il parle d'une bibliothèque sous licence BSD qui a eu un gros problème (en fait : qui aurait eu un gros problème sans CLA).
      quelqu'un qui aurait pensé que parce que c'est Copyfree il n'y a pas besoin de CLA n'aurait pas pu réutiliser sa bibliothèque pour ce projet (compatible mais pas relicenciable donc refusé).

      Bon, du coup je me demande ce que j'ai loupé dans l'explication pour que le fait d'être BSD sans CLA aurait été un problème n'a pas été vu du premier coup. Gloups.

  • # Multi-licences pour plaire à tout le monde, c'est possible ?

    Posté par . Évalué à 3.

    Quand j'ai découvert le logiciel libre il y a bien longtemps je me suis vite aperçu que tout n'était pas aussi rose que je l'avais cru au départ. Et rapidement j'ai trouvé pénible ces histoires d'incompatibilité de licences parce que d'une façon ou d'une autre, il fallait choisir un camp.

    Mais là je vois ça :

    MediaConch (as well as MediaInfo) are now available as your choice:
    under a BSD 2-Clause license (the "default" license),
    and/or Apache License,
    and/or GNU Lesser General Public License 2.1 or later (which can be transformed to nearly any modern GNU license),
    and/or GNU General Public License 2.0 or later,
    and/or Mozilla Public License 2.0 and/or later.

    Est-ce que c'est vraiment aussi simple pour ne plus avoir à se poser des questions "administratives/juridiques" et pour se concentrer sur le code ?

    • [^] # Re: Multi-licences pour plaire à tout le monde, c'est possible ?

      Posté par . Évalué à 4.

      Oui, c'est pas mal. Je crois que c'est mozila qui avait commencé avec les double ou triple licence.

      "La première sécurité est la liberté"

    • [^] # Re: Multi-licences pour plaire à tout le monde, c'est possible ?

      Posté par (page perso) . Évalué à 10. Dernière modification le 20/03/18 à 20:44.

      il fallait choisir un camp.

      C'est un peu ça, en effet. Et c'est parfois violent, en effet. J'ai choisi un "camp" (en fait je suis passé de l'un à l'autre), mais sans insulter l'autre pour son choix (les deux vues sont libristes, que le meilleur gagne), mais en face on a parfois des quasi-insultes "vous permettez de fermer, vous être pas libriste du coup" (pour la version gentille). C'est chiant, surtout quand on permet à l'autre camp d'utiliser son code dans la licence souhaitée (l'inverse n'étant pas possible).

      Est-ce que c'est vraiment aussi simple pour ne plus avoir à se poser des questions "administratives/juridiques" et pour se concentrer sur le code ?

      Perso j'avais déjà éliminé le copyleft pour justement ne pas me prendre la tête avec les cas spéciaux "bon explique moi, j'ai le droit ou pas?", je me permet de mettre un lien vers un journal dessus (que j'ai écrit) : Mon évolution vis à vis du copyleft. Mais le cas cité dans le journal a montré que choisir du copyfree n'est pas suffisant, alors j'adapte en fonction de ce que je rencontre : j'ai viré le copyleft quand j'ai rencontré trop de problèmes avec, et maintenant suite à un problème sur "pas la bonne licence" je multi-licencie pour régler cet autre problème.
      Rendez-vous à la prochaine problématique.

      A noter que si je faisais du CC0 ça serait sans doute encore plus simple, mais je n'en suis pas encore là (j'essaye d'utiliser le nom dans les autres logiciels qui embarquent mes libs comme moyen de vendre mes prestations futures, marchera ou pas, l'avenir nous le dira)

  • # waouh

    Posté par . Évalué à 10.

    Pour l’anecdote, j'ai refusé de relicencier zlib (on peut le faire car la licence permet "tout") comme fortement suggéré en expliquant la raison (je n'ai pas touchée à la lib, par respect pour l'auteur je ne me voyais pas forker pour juste relicencier en GPLv3+/MPL2+) et le rapport final des scrutateurs a donné un point négatif à notre livraison pour cette raison.

    Waouh. Tu pourrais leur demander ce qu'ils fument, j'ai envie d'essayer.

    • [^] # Re: waouh

      Posté par . Évalué à 10.

      Waouh. Tu pourrais leur demander ce qu'ils fument, j'ai envie d'essayer.

      Au risque de me tromper, ça ressemble fort à une procédure de marchés publics. Un service ayant besoin du logiciel (ou de service autour) a formulé un cahier des charges. Avec l'aide de ses spécialistes en MP (voire uniquement par ces spécialistes), une grille d'analyse a été conçue à partir de ce cahier des charges. Et de là, la notation des réponses à l'appel d'offre se fait exclusivement par rapport à la grille.

      Dans le meilleur des cas, le service demandeur s'occupe de noter (et utilise son bon sens pour nuancer un peu l'aspect rigide de la grille). Dans le pire, c'est le service MP qui s'en charge, et qui note point à point. "Licence machin? check". "Licence truc? pas check". Sans aucune connaissance métier, parfois.

      • [^] # Re: waouh

        Posté par . Évalué à 3.

        Au risque de me tromper, ça ressemble fort à une procédure de marchés publics.

        C'est rigolo, je me disais la même chose :)
        Et du coup, je suis étonné que le Code des Marchés Publics permette de spécifier nommément une licence particulière (GPLv3+/MPLv2+) et pas seulement les caractéristiques attendues de ladite licence (la licence de votre produit doit permettre de -liste à la Prévert-).

        • [^] # Re: waouh

          Posté par (page perso) . Évalué à 3. Dernière modification le 21/03/18 à 15:27.

          "Code des Marchés Publics" est un truc franco-français, dans le cas cité on s'en fout.
          Ce n'était pas un marché public non plus, même si "public" est proche.
          Si vous cherchez bien, le "tender" est toujours sur le site du projet.
          (ne pas mettre le nom du projet est ici volontaire, LinuxFr ayant un haut score sur Google et même si je n'ai pas honte les désaccords n'ont pas forcément besoin d'être en premier sur Google, mais c'est rapide à trouver en suivant les liens)

  • # Relicencier zlib

    Posté par . Évalué à 5.

    j'ai refusé de relicencier zlib (on peut le faire car la licence permet "tout")

    Moui en droit anglo saxon je sais pas mais en droit français certains droits sont inaliénables. Du coup c’est pas parce que la licence permet « tout » que tu peux céder ces droits là … et même la cessation des droits cédables est soumise a des obligations légales : http://www.jurizine.net/2005/09/02/13-la-cession-des-droits-patrimoniaux-d-auteur

    La licence permet tout … ce qu’il est possible de faire légalement. En particulier l’objectif de la licence est de fixer dans quel mesure le signataire de la licence a le droit d’exploiter l’oeuvre. Mais ce n’est pas un contrat de transferts des droits patrimoniaux qui sont « exclusifs » ( http://www.jurizine.net/2005/09/02/11-les-droits-patrimoniaux-de-l-auteur-sur-son-oeuvre ) et restent donc la propriété de l’auteur, je pense. Et seule la possession de ces droits permet de fixer les conditions d’exploitation, donc de licencier …

    • [^] # Re: Relicencier zlib

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

      Je ne parlais pas de virer le nom de l'auteur (impossible même si l'auteur le souhaite).
      Je ne vois rien dans la partie "droits patrimoniaux" qui interdirait de changer la licence, et c'est aussi ce que je comprend des lectures diverses (zlib permet même de cacher le fait qu'on l'utilise, contrairement à BSD par exemple). Je suis preneur de la partie des droits patrimoniaux qui te font penser que changer la licence n'est pas possible légalement sans accord explicite de l'auteur. Surtout que pour moi, je peux le faire avec mon code donc je ne vois pas pourquoi d'autres ne pourraient pas le faire (pour le nom par exemple, eux et moi ne pouvons le faire).

      • [^] # Re: Relicencier zlib

        Posté par . Évalué à 0.

        Euh… c'est moi, ou les droits patrimoniaux sont uniquement liés aux oeuvres artistiques?

      • [^] # Re: Relicencier zlib

        Posté par . Évalué à 0.

        Tu prends le problème a l’envers. Lequel des droits patrimoniaux sur lequel l’auteur a le droit de jouer dans la licence permet au signataire de la licence d’obtenir les droits de licencier ? Aucun.

        Seule la cession des droits (le CLA) est un transfert explicite de ces droits, qui permet au détenteur des droits de décider à sa guise des condition de « reproduction », « d’adaptation » et de « représentation » (3 des 4 libertés du libres). Le droit de licencier n’en fait pas partie, seule la détention de ces droits (et pas leur exercice) le permet.

        • [^] # Re: Relicencier zlib

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

          Je ne comprend pas la différence que tu fais entre licence et CLA : les deux sont un accord entre 2 parties. Tu dis que dans le CLA on peut permettre, mais ne dit pas pourquoi dans un autre document on ne pourrait pas permettre.
          Par exemple il y a débat sur le "sublicence" de MIT.

          transfert explicite

          Un "faites ce que vous voulez" (par exemple) est un transfert explicite, non?

          (3 des 4 libertés du libres)

          Je ne comprend pas ce que ça vient faire la, on parle de licences et non de libre.


          Reste qu'en fait, perso je m'en fou un peu de cette partie, je n'ai pas l'intention de relicencier.

          • [^] # Re: Relicencier zlib

            Posté par . Évalué à 2.

            Pour moi un transfert explicite c’est « je vous transfère mes droits ».

            « Faites ce que vous voulez » c’est en tant que détenteur du copyright, je vous permet d’exercer les droits sur lequel j’ai le contrôle, à savoir la « reproduction », « l’adaptation » et la « représentation » de l’œuvre comme vous le voulez. Mais ce n’est pas un transfert explicite de tes droits.

            Du coup j’ai cherché un peu, et trouvé ça : https://www.captaincontrat.com/articles-gestion-entreprise/difference-cession-droit-licence les deux notions sont bien distinctes.

    • [^] # Re: Relicencier zlib

      Posté par . Évalué à 3.

      D’autant plus qu’il ne faut pas 15 lectures pour se rendre compte que la licence zlib ne permet certainement pas de toucher à la licence : https://www.zlib.net/zlib_license.html

      1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
      2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
      3. This notice may not be removed or altered from any source distribution.

      Elle permet juste de ne pas mentionner qu’elle est utilisée dans un binaire.

      • [^] # Re: Relicencier zlib

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

        Après relecture "il faut relicencier ce qui est possible", il semble que je me sois trompé dans l'exemple (trop de licences…), et l'exemple devrait plutôt être SQLite (domaine public).

        • [^] # Re: Relicencier zlib

          Posté par . Évalué à 4.

          Ah mais le domaine public aussi… C'est le mal absolu ! Comment voulez-vous que l'on gagne sa vie si on publie ses œuvres dans le domaine public ?

          (Ce commentaire est un commentaire sans aucun intérêt. Néanmoins, je le publie dans le domaine public.)

        • [^] # Re: Relicencier zlib

          Posté par . Évalué à 2.

          Là c’est différent. C’est que les auteurs renoncent complètement à un quelconque droit (ce qui est impossible en droit français).

          Le truc c’est qu’ensuite, il n’y a plus besoin de licence pour faire quoi que ce soit avec le code, on peut le copier et le redistribuer comme si le droit d’auteur n’existait pas. Après est-ce que ça signifie qu’on peut le « re-licencier » ? Je suis pas certain, disons que faudrait « faire revivre » des droits d’auteur sur ce code pour pouvoir avoir le droit de le licensier. Donc faire un truc qui démontre qu’on en est l’auteur. Si j’en crois « Anyone can use a public domain work without obtaining permission, but no one can ever own it. » https://fairuse.stanford.edu/overview/public-domain/welcome/ ben non, tu n’as pas le droit de relicensier car plus personne ne peut réclamer ce qui permet de licensier, parce que c’est « l’ownership » qui permet de le faire …

          En tout cas sur l’original, si tu dérives tu peux toujours faire valoir la paternité des modifs.

          • [^] # Re: Relicencier zlib

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

            On ne peut pas relicencier, mais il suffit de faire de petites modifications pour récupérer des droits d'auteur, voire faire un travail dérivé. Un exemple concret: le journal d'Anne Frank qui aurait du entrer dans le domaine public, mais c'est le père qui conserve des droits en raison de certaines modifications faite sur la version publiée. Et chaque traduction ajoute de nouveaux droits d'auteur… (je ne sais pas ce qu'il en est aujourd'hui de cette histoire).

            Un LUG en Lorraine : https://enunclic-cappel.fr

  • # Ça montre plutôt la stupidité des gestionnaires de projets européens

    Posté par . Évalué à 4.

    Moi aussi j'ai bossé pour un projet FP7 où il était demandé, pour ce cas, de rajouter une mention de copyright à tous les fichiers des softs réutilisés (plein de softs libres GPL et/ou BSD), même si dans mon cas on ne changeait pas la licence. Ce n'est pas moi qui ait fait ça, du coup je n'ai pas pu trop juger de la légalité du truc, mais c'était une « obligation » du financeur (l'Union Européenne) et même si c'était débile, il « fallait » le faire.

    Bref, oui les projets européens sont gérés par des ignorants des spécificités du droit de la propriété intellectuelle concernant le Libre, et il faudrait les éduquer un peu là-dessus. Mais en arriver à conclure qu'il faut plutôt changer la manière de faire du Libre en général et de généraliser les CLA… je trouve que tu vas dans le mauvais sens.

    Sans bien sûr parler du fait que ce projet a été fait sans jamais pouvoir remonter les changements upstream pendant 4 ans, parce que les questions de licences n'ont été résolues qu'à la fin (personne ne veut s'occuper d'une telle « connerie ») et que du coup le code contribué n'a servi à rien puisque bien trop éloigné du projet originel qui avait avancé sans nous.

    Donc oui, il faut éduquer l'UE sur la bonne manière de faire des contributions libres, et ça ne passe pas forcément par se plier à leurs règles débiles en profitant de l'opportunité des CLA.

Suivre le flux des commentaires

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