Journal AGPL et GPLv2

Posté par  (site web personnel) .
Étiquettes :
5
10
fév.
2010
Bonjour,

Je me pose une petite question sur les licences d'un logiciel. Je compte importer la documentation d'un projet en GPLv2 (Nagios, logiciel de supervision) pour être la base de la documentation d'un projet en AGPL (Shinken, réécriture de Nagios en Python).

Je pense que cela ne pose pas problème (plus restrictive, donc respecte au minimum la GPLv2 non?), mais vu que ce n'est pas strictement la même licence, je me pose tout de même la question.

Merci pour votre aide :)


Nap
  • # Désolé pour le journal, je voulais écrire dans le forum....

    Posté par  (site web personnel) . Évalué à 7.

    Désolé du bruit, j'ai écrit avant de prendre mon café...

    Pour que ce journal ne soit pas totalement inutile, je vais en profiter pour parler de l'avancée de ce projet que j'ai déjà présenté dans un précédent journal.

    Shinken est une réécriture complète de Nagios en Python permettant d'avoir une supervision distribuée et hautement disponible. La 0.1 arrive sous peu, et possèdera environs 90% des fonctionnalités de Nagios, et 100% des fonctionnalités les plus utilisées.

    La partie distribuée et hautement disponible est déjà parfaitement utilisable. Le travail actuel se concentre sur les exports de données dans les différents format que supporte Nagios (comme Ndo/Oracle ou Merlin/MySQL).

    L'import de ce projet comme nouvelle branche de développement de Nagios n'a pas été possible (pour l'instant) à cause d'un refus catégorique des dev de Nagios de lâcher le C. Mais je ne perds par espoir car Nagios avance de moins en moins, et l'évidence leur sautera bien aux yeux un jour.

    Ceux qui veulent suivre ce projet peuvent se rendre sur son site [1] ou son trac [2].

    [1] http://www.shinken-monitoring.org
    [2] https://sourceforge.net/apps/trac/shinken/report/2
    • [^] # Re: Désolé pour le journal, je voulais écrire dans le forum....

      Posté par  . Évalué à 5.

      La 0.1 arrive sous peu, et possèdera environs 90% des fonctionnalités de Nagios,

      Alors pourquoi ne pas l'appeler 0.9 ?

      "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

      • [^] # Re: Désolé pour le journal, je voulais écrire dans le forum....

        Posté par  (site web personnel) . Évalué à 2.

        C'est juste qu'elle ne sera pas autant testé que Nagios, loin de là. Ensuite suivant son adoption et les retours de tests, on pourra la faire progresser rapidement ou pas vers la 1.0.
        • [^] # Re: Désolé pour le journal, je voulais écrire dans le forum....

          Posté par  . Évalué à 3.

          T'as pas compris sa blague => 90% ... 0.9
        • [^] # Re: Désolé pour le journal, je voulais écrire dans le forum....

          Posté par  . Évalué à 2.

          Je voulais voir l'autre jour où en était ton projet. Il me semble que tu n'était pas spécialement pour que tout ça reste en python, non ? (je me souviens peut être mal). C'est dommage que tu ne te sois pas fais entendre.

          Shinken est déjà utilisé en production ? Il a déjà géré quel types de réseaux ?

          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

          • [^] # Re: Désolé pour le journal, je voulais écrire dans le forum....

            Posté par  (site web personnel) . Évalué à 2.

            Je suis plus qu'attaché au Python.Sur la mailing liste de Nagios je me suis demandé s'il y avait encore moyen de tout refaire en C, mais c'est trop pour moi en tout cas. Donc comme je l'ai récemment dit dans cette même mailing liste, cela restera du Python, que cela plaise aux développeurs Nagios ou pas (et pour l'instant c'est surtout ou pas).

            Il n'est pas encore utilisé en production, mais je commence à le mettre en qualification sur mon infra (taille moyenne avec 7000 services, mais dispatchée sur 40 filiales dans le monde).
            • [^] # Re: Désolé pour le journal, je voulais écrire dans le forum....

              Posté par  . Évalué à 3.

              +1, Python se prête très bien à ce genre d'exercice, et s'interface très bien avec du code natif si nécessaire mais seul le profilage pourra le confirmer ou non.
              Il n'est pas rare de niveler une application : C pour les parties dont les performances sont critiques, Python pour le reste. Sans compter qu'on peut prototyper rapidement les parties critiques en Python pour valider son cahier des charges. Best of both worlds !
              • [^] # Re: Désolé pour le journal, je voulais écrire dans le forum....

                Posté par  . Évalué à 2.

                D'ailleurs, c'est peut-être déjà le cas ou prévu, mais tu peux utiliser Cython [http://www.cython.org/] pour ces parties critiques.
                La syntaxe y est très proche de Python et tu obtiens, parait-il, pour ainsi dire les performances du C.
                • [^] # Re: Désolé pour le journal, je voulais écrire dans le forum....

                  Posté par  (site web personnel) . Évalué à 1.

                  Merci pour la suggestion, mais en fait je n'ai pas de problème de performance particulier en restant en pure Python. Là où Nagios est limité par son architecture (lecture de fichiers plats) mon implémentation est plutôt limitée par les lancements de sondes (et là bah C ou Python, faut bien le faire le popen :) ).

                  Il y avait à un moment une grosse limitation sur le calcul de la date du prochain lancement des vérifications (les possibilités de périodes de temps dans Nagios sont vastes, et les calculs non triviaux) mais je l'ai fait disparaître avec un cache tout simple :)

                  Il y a encore des optimisations à faire dans le code (certaines opérations qui peuvent être mise en cache au lieu d'être effectuée à chaque lancement par exemple), mais déjà les performances permettent de gérer un très gros parc sur un seul serveur, donc le tuning attendra encore un peu.
  • # Probleme de licence

    Posté par  . Évalué à 5.

    Importer la documentation et la modifier sous GPLv2 ne posera aucun probleme, tant que tes modifications sont sous GPLv2 (ou licence compatible comme BSD).

    Les problemes potentiels:

    1 - Nagios me semble etre sous licence GPLv2 stricte, y compris la documentation.

    2 - Pour distribuer du code AGPL+GPL, il faut que les licences soient compatibles. Hors AGPL et GPLv2 ne sont pas compatibles entre elles, donc tu ne peux pas redistribuer une combinaison des deux.

    3 - Une solution est de distribuer en GPLv3 si la licence l'autorise, ce qui permet de lier a du code AGPLv3 (section 13). Tout cela sachant que l'ensemble resultant ne pourra plus etre redistribue sous GPLv2 (la licence initiale qui reste appliquee au code/documentation) sans retirer les parties rajoutees sous AGPLv3 (ca peut etre un effet de bord desire cela-dit). Mais vu le (1), tu ne peux pas distribuer sous licence GPLv3, donc tu ne pourra pas lier avec du code AGPLv3.

    4 - Si tu lies avec du code GPLv2 only ou tu adaptes du code existant (en transcrivant du code C vers du Python), tu ne peux absolument pas licencier en AGPL (ca reviendrait a relicencier le code de Nagios sous AGPL sans etre l'auteur du code...). Donc si une partie du code de Shinken derive de celui de Nagios, ou bien si tu lies directement avec des libs GPLv2 only, tu ne peux pas distribuer sous AGPL (v1 ou v3). Meme si c'est une reecriture, si tu a des parties directement transcrites du C, ca pose probleme, donc tu devras reecrire toutes ces parties differement si tu veux choisir une licence incompatible avec celle de Nagios.

    5 - Pour les plugins, ils sont sous GPLv3, donc tu peux rajouter des modules sous AGPLv3 et redistribuer l'ensemble sous AGPLv3. Mais le code GPLv3 reste sous cette licence et tu ne peux absolument pas imposer les restrictions de l'AGPLv3 dessus.

    6 - Dans tous les cas, il faut retenir que tu ne peux pas changer la licence du code/documentation que tu reprends. Tu peux redistribuer l'ensemble sous une licence compatible (comme la GPLv3+) si la licence initiale t'y autorise, mais en aucun cas relicencier le code existant sans autorisation.

    Pour resumer:
    - si tu veux reutiliser la documentation de Nagios, tu es oblige de garder une licence compatible (donc GPLv2 only et compatible, ce qui exclu l'AGPL). Comme c'est separe du programme lui-meme, ca n'aura pas d'impact sur le code du projet et sa licence.
    - si tu utilises ou derive du code du coeur de Nagios, tu es oblige de respecter la licence, donc GPLv2 only egalement.

    Tu n'as pas beaucoup donne de details, donc peut-etre que tu as deja identifie toutes ces problematiques (le deuxieme paragraphe de ton journal me fait un peu peur, mais les apparences sont souvent trompeuses!).

    En tant que fork d'un gros projet existant (avec un "desaccord" avec l'equipe principale) qui se pose directement en concurrent, avoir un probleme de licence pourrait t'etre fatal (surtout qu'il y a un business et des emplois autour, donc si tu fais n'importe quoi, ils vont pas se gener et ils auront bien raison). Je t'invites donc fortement a contacter la FSF qui pourra te renseigner ou t'orienter vers un de leur conseils (et dans le doute de consulter un avocat specialise).
    • [^] # Re: Probleme de licence

      Posté par  (site web personnel) . Évalué à 1.

      Merci beaucoup pour toutes ces remarques.

      1 : il semblerait bien oui
      2 : là ça va me poser un problème :(
      3 : problème avec le 1 en effet
      4 : en fait je n'ai fait que reprendre les idées, aucune ligne de code ni librairie. C'est une réécriture pure (d'où le fait que je me suis permis de prendre une nouvelle licence au passage).
      5: ah je n'avais pas pensé à cela.
      6: oui

      Ce qui m'intéresse dans Nagios est bien sa doc, et uniquement sa doc. L'objectif de mon projet est de réintégrer un jour le projet Nagios si ses développeurs l'acceptent. Je vais essayer de voir avec eux ce qui est possible de faire (on est en désaccord, mais pas fâchés tout de même).

      Passer en GPLv2 est possible, mais ça m'embête un peu de lâcher la partie Affero. Je vais en parler aux autres développeurs car après tout, il faut l'unanimité sur ce point.

      Merci en tout cas.
    • [^] # Re: Probleme de licence

      Posté par  (site web personnel) . Évalué à 2.

      Réponse très intéressante, j'en profite pour refourguer le lien du tableau de compatibilité entre licences GNU. Malheureusement il ne contient pas l'AGPL, mais je pense qu'on peut l'assimiler à une GPLv3 (en fait c'est une GPLv3 avec option supplémentaire) :

      http://www.gnu.org/licenses/gpl-faq.html#AllCompatibility
      • [^] # Re: Probleme de licence

        Posté par  (site web personnel) . Évalué à 2.

        Merci pour le lien, c'est très pratique.

        Une solution à mon problème pourrait être de passer en GPLv2 or later et à terme (une fois toute la doc réécrite en gros) et que l'inclusion dans Nagios (GPLv2 only) n'est pas faisable, je passe en GPLv3, voir plus.
        • [^] # Re: Probleme de licence

          Posté par  . Évalué à 1.

          Ou de passer directement de GPL v2 only à "GPL v3 only" ou" GPL v3 or later".
      • [^] # Re: Probleme de licence

        Posté par  (site web personnel) . Évalué à 2.

        J'ai fait une demande d'ajout de l'AGPL dans la matrice.
    • [^] # Re: Probleme de licence

      Posté par  (site web personnel) . Évalué à 4.

      Dans tous les cas, il faut retenir que tu ne peux pas changer la licence du code/documentation que tu reprends. Tu peux redistribuer l'ensemble sous une licence compatible

      Je n'ai jamais compris la différence entre relicencier et redistribuer sous une autre licence. De ce que j'en avais compris, la licence n'est pas intrinsèque au code, mais c'est un contrat passé entre deux entités.

      Si par exemple une entité A développe un logiciel, et le distribue à B sous licence WTFPL. Alors B peut le redistribuer à C sous licence GPL, parce que la redistribution sous une autre licence est autorisé par la WTFPL, et C ne pourra pas appliquer les droits conférés par la WTFPL mais seulement ceux de la GPL. Pour que C puisse avoir le code sous WTFPL, il faut qu'elle obtienne une copie donné par A sous licence WTFPL, même si la copie est identique.

      J'ai bon, ou j'ai rien compris ?
      • [^] # Re: Probleme de licence

        Posté par  (site web personnel) . Évalué à 2.

        Presque.... car si la seule différence entre la version GPL et WTFPL du soft c'est le fichier license.txt et qu'il n'y a aucun patch GPL dans la distrib GPL (excepté le fichier license), tu vires ce fichier et tu peux redistribuer le tout en WTFPL... le code a pas changé de licence juste parce qu'il a été redistribué sous GPL... pour avoir difficile à procéder de la sorte il suffit qu'il y ai un nombre conséquent d'ajout en GPL et ça devient le cauchemar d'enlever tout ça pour retrouver le truc upstream en WTFPL... dans ce cas mieux vaut partir du truc en WTFPL.
        • [^] # Re: Probleme de licence

          Posté par  . Évalué à 2.

          Je pense que légalement, pour que le contrat soit scellé, il faut que tu récupère le code de quelqu'un qui a récupéré le code en WTFPL (qui a lui même, ...). QUelqu'un qui a le droit d'en faire ce qu'il veut, quoi.

          Changer le fichier licence, tu peux pas. J'imagine que si plus personne n'a de version en WTFPL, cette version meure en théorie.

          La licence, c'est pas un contrat avec le reste du monde, c'est un contrat entre le destinataire et le détenteur des droits. Dans le cas des licences libres, le destinataire a le droit de redistribuer et refile ce droit aux destinataires secondaires.
          • [^] # Re: Probleme de licence

            Posté par  . Évalué à 2.

            En meme temps les fichiers source (si il y en a) ont la licence dans le header, ou tout du moins la distribution contient un fichier avec la licence originale (WTFPL).

            Le fait de recevoir le code sous une certaine licence te permet de profiter des droits donnes par la licence vis-a-vis du distributeur (ex: brevets pour la GPL). Mais en dehors de ca, absolument rien ne t'empeche de reprendre le tout et de le redistribuer sous la licence d'origine ou tout autre licence compatible si celle-ci le permet (dans l'hypothese ou aucune modification sous la nouvelle licence n'a ete apportee evidemment, sinon tu ne peux pas redistribuer ces parties la sous autre chose que la nouvelle licence).

            Bon, au final tout le monde aura compris que les doubles licences, c'est le gros bordel! Et quand les licences en question font plusieurs pages avec plein de cas limites pour couvrir le maximum, mais sans avoir d'effet de bords a la con (cas GPLv3), avec en plus des cas speciaux pour etre compatible avec les licences de la meme famille (mais pas "redistribuable" comme GPLv2+ => GPLv3 dans le cas de l'AGPLv3), on est pas sorti de l'auberge. Dans ces cas la, le plus simple n'est de pas toucher a la licence et de continuer a redistribuer sous la meme forme...
            • [^] # Re: Probleme de licence

              Posté par  . Évalué à 3.

              La double licence, c'est comme si tu avais une copie dans une des licence, et une copie dans une autre des licences. À condition que tu ais bien effectivement reçu les deux copies, bien sûr. Si c'est une double licence proprio / libre par exemple et que tu n'as que la version libre, tu ne peux certainement pas appliquer les droits de la licence proprio ou changer la licence du soft libre en proprio comme tu veux.

              absolument rien ne t'empeche de reprendre le tout et de le redistribuer sous la licence d'origine ou tout autre licence compatible si celle-ci le permet

              Bien sur que si, tu n'as pas le droit de changer la licence que tu reprends. Le seul truc que tu peux faire c'est mixer ton code (tes ajouts/modifs), sous ta licence, avec la licence du code que tu as repris, sachant que les morceaux originaux restent sous la licence originale.

              De fait la totalité du code est ensuite disponible sous les termes de la licence la plus restrictive (typiquement la reprise de code sous BSD dans des logiciels en GPL), mais les parties licenciées en BSD à l'origine et qui n'ont pas été modifiées par toi restent en BSD, et pourraient être reprises dans un programme en BSD.
              • [^] # Re: Probleme de licence

                Posté par  . Évalué à 2.

                Bien sur que si, tu n'as pas le droit de changer la licence que tu reprends.

                Bon, j'ai pas du bien expliciter. Je me placais dans l'optique de celui qui recoit un ensemble sous la licence B alors que le code est a l'origine sous A (avec possibilite de distribuer sous B - type GPLv2+) et qui veut redistribuer sous la licence d'origine A (en dehors des modifications eventuelles uniquement sous la licence B).

                Au final, on est bien d'accord, le code reste toujours sous la (ou les) licences d'origine, et personne ne peut le changer sauf les auteurs.
                • [^] # Re: Probleme de licence

                  Posté par  . Évalué à 3.

                  Oui, c'est moi qui ait mal compris à l'origine je pense.

                  À mon avis la confusion potentielle vient de là : un ensemble sous la licence B :

                  Il n'y a pas vraiment d'ensemble sous licence B. Il n'y a qu'un mélange de code sous A et de code sous B (voire de code sous C, D, ... )

                  Au final, pour redistribuer l'ensemble du code, tu dois respecter l'ensemble des licences, donc au final ce sera la licence la plus restrictive qui "prendra l'ascendant" on peut dire. T'es sûr de pas être embêté si tu la respecte. Ou éventuellement tu devras respecter l'ensemble des clauses de toutes les licences du code en même temps.

                  * code sous double licence A et B : la licence c'est ( soit les clauses de A soit les clauses de B).
                  * Un mix de code sous licences A et sous licences B : à la fois les clauses de A et les clauses de B. (du coup si A contient toutes les clauses de B plus d'autres, ça change rien par rapport à A seul, et inversement)


                  Si tu veux distribuer des sous ensembles du code, tu distribues dans les termes qui concernent ce code spécifiquement.
              • [^] # Re: Probleme de licence

                Posté par  (site web personnel) . Évalué à 2.

                Bien sur que si, tu n'as pas le droit de changer la licence que tu reprends. Le seul truc que tu peux faire c'est mixer ton code (tes ajouts/modifs), sous ta licence, avec la licence du code que tu as repris, sachant que les morceaux originaux restent sous la licence originale.

                Et pourquoi ? Je passe un contrat avec une entité A (la licence). Si ce contrat m'autorise à redistribuer sous un autre contrat, lorsque que je passe un contrat plus restrictif avec C sur ce code, pourquoi aurait-il le droit d'appliquer le contrat que j'ai passé avec A ?
                • [^] # Re: Probleme de licence

                  Posté par  . Évalué à 2.

                  C'est vrai qu'il y a déja au moins une précondition à ce que je raconte: que la licence initiale permette la redistribution.

                  T'as raison, j'ai un peu confondu avec la BSD qui t'impose de garder la licence avec le code licencié en cas de redistribution, la WTFPL est sûrement moins regardante.
                • [^] # Re: Probleme de licence

                  Posté par  . Évalué à 3.

                  Dans l'absolu oui, mais a la base on parle de GPLv2/GPLv3/AGPL/AGPLv3. A force de faire dans l'abstrait on perd de vue le probleme (et c'est aussi ma faute, j'aurais du continuer a parler de GPL/AGPL et pas de licence abstraite).

                  Dans nos derniers commentaires, on parle de licences A, B, C mais une partie des exemples ne prend son sens que si l'on prend le cas de la GPLv2+ avec redistribution sous v3.

                  Donc pour ton exemple:

                  Contrat avec A sous GPLv2+, tu choisis de distribuer l'ensemble sous v3 comme la licence t'y autorise (ca rajoute des restrictions supplementaires pour toi qui redistribue par exemple). C recoit l'ensemble sous v3, mais le code est toujours sous GPLv2+ (la licence n'a pas change!). C reprend alors le code (eventuellement le repackage et vire les parties v3 only si tu as fait des ajouts) et redistribue sous la licence initiale (GPLv2+). Donc voila, C applique le contrat passe avec A, parce que la licence du code l'autorise a le faire!

                  Apres evidemment ca marche pas dans le cas par exemple d'une boite proprio qui vent un framework/lib avec une licence de redistribution pour le developpeur, mais uniquement une licence d'utilisation pour les utilisateurs finaux. Mais c'est un peu hors de propos ici et c'est clairement pas le probleme auquel est confronte Jean avec Shinken et Nagios.
                  • [^] # Re: Probleme de licence

                    Posté par  (site web personnel) . Évalué à 1.

                    C recoit l'ensemble sous v3, mais le code est toujours sous GPLv2+ (la licence n'a pas change!). C reprend alors le code (eventuellement le repackage et vire les parties v3 only si tu as fait des ajouts) et redistribue sous la licence initiale (GPLv2+).

                    Tout à fait, c'est ce que je pensais avoir expliqué plus haut... mais j'ai dû être pas clair ;)
                  • [^] # Re: Probleme de licence

                    Posté par  (site web personnel) . Évalué à 2.

                    Contrat avec A sous GPLv2+, tu choisis de distribuer l'ensemble sous v3 comme la licence t'y autorise (ca rajoute des restrictions supplementaires pour toi qui redistribue par exemple). C recoit l'ensemble sous v3, mais le code est toujours sous GPLv2+ (la licence n'a pas change!).

                    Pourquoi ? Le contrat que passe C avec moi, c'est la GPLv3. Si C n'obtient pas une copie du code de A, pourquoi aurait-il le droit d'appliquer un contrat qu'il n'a pas passé ?

                    C reprend alors le code (eventuellement le repackage et vire les parties v3 only si tu as fait des ajouts) et redistribue sous la licence initiale (GPLv2+). Donc voila, C applique le contrat passe avec A, parce que la licence du code l'autorise a le faire!

                    De ce que je comprends, si A ne distribue plus le code (ni personne sous GPLv2+), C ne peut pas faire ça. La licence qu'il a eu, c'est la GPLv3, et elle ne l'autorise pas à redistribuer le code en GPLv2.
                    • [^] # Re: Probleme de licence

                      Posté par  (site web personnel) . Évalué à 1.

                      Si C n'obtient pas une copie du code de A, pourquoi aurait-il le droit d'appliquer un contrat qu'il n'a pas passé ?

                      Il obtient du code qui est licencié en GPLv2+ et redistribué en GPLv3, le fait que tu le redistribue en v3 ne change pas que le code que tu distribues avec (hors patch GPLv3 ajouté par toi lors de la redistribution) est en GPLv2+... donc je peux *prendre* ce code et le redistribuer en GPLv2+ (vu qu'il *est* en GPLv2+) malgré que tu l'ai distribué en v3... ta distribution n'a pas changé la licence du code, le seul moyen d'obliger la redistribution est de rajouter du code v3 avec... alors pour pouvoir faire la manip il faut impérativement enlever ces ajouts v3 pour pouvoir de nouveau redistribuer en v2+.

                      Puis tu reçois un code avec une licence (sur ce code) pas un contrat avec une entité.
                      • [^] # Re: Probleme de licence

                        Posté par  (site web personnel) . Évalué à 2.

                        Il obtient du code qui est licencié en GPLv2+ et redistribué en GPLv3, le fait que tu le redistribue en v3 ne change pas que le code que tu distribues avec (hors patch GPLv3 ajouté par toi lors de la redistribution) est en GPLv2+...

                        Et tu tiens ça d'où ? C'est en contradiction avec ce que je croyais : une licence est un contrat entre deux entités.
                        • [^] # Re: Probleme de licence

                          Posté par  (site web personnel) . Évalué à 2.

                          D'ailleurs wikipédia me dit : « en droit, une licence est un type de contrat (exemple : licence libre) ».
                        • [^] # Re: Probleme de licence

                          Posté par  (site web personnel) . Évalué à 1.

                          Et tu tiens ça d'où ?

                          Je tiens ça du fait que seul l'auteur du code peut en changer la licence... que tu redistribue sous une autre licence car la licence courante te le permet *ne change pas* la licence du dit code (sauf si tu en es l'auteur et que tu la changes explicitement).

                          une licence est un contrat entre deux entités.

                          Oui et ce contrat c'est entre toi et *l'auteur* du dit code...
                          • [^] # Re: Probleme de licence

                            Posté par  . Évalué à 2.

                            Non, c'est plutôt un contrat entre toi et le (un ?) détenteur des droits sur l'oeuvre.

                            Il est tout a fait possible que l'auteur puisse te céder certains droits dans la licences sur son code (pas les droits moraux, mais les droits patrimoniaux) ...
                          • [^] # Re: Probleme de licence

                            Posté par  (site web personnel) . Évalué à 2.

                            Je tiens ça du fait que seul l'auteur du code peut en changer la licence...

                            Je vais répéter ma question, mais ça vient d'où ça ?

                            Oui et ce contrat c'est entre toi et *l'auteur* du dit code...

                            Ça veut dire que l'auteur peut passer un contrat avec quelqu'un sans en avoir connaissance ? (A passe un contrat avec B, B redistribue à C, donc A passe un contrat avec C).
                            • [^] # Re: Probleme de licence

                              Posté par  (site web personnel) . Évalué à 1.

                              Je vais répéter ma question, mais ça vient d'où ça ?

                              Ça vient qu'il est le seul à détenir le droit qui lui permet de le faire...

                              Redistribuer du gplv2+ en gplv3 concerne le tout, le bundle, la distribution. Chaque fichier source a individuellement une licence mise par son auteur... tant que tu n'as pas mis de modification en v3 (ce qui est permis) dans un de ces fichiers, la licence des fichiers est gplv2+, si tu rajoutes du v3 dedans, les fichiers auront une partie du code en gplv2+ (le code initial) + du code en gplv3 (tes modifs), tu ne peux redistribuer le tout qu'en gplv3... si tu vires les modifs gplv3, rien ne t'empêche de redistribuer le code résultant en v2+ vu qu'il est en v2+.
                              • [^] # Re: Probleme de licence

                                Posté par  (site web personnel) . Évalué à 3.

                                J'ai bien compris ce que tu veux dire, mais ce n'est pas parce que tu le ré-expliques de trois manières différentes que c'est vrai.

                                Alors je vais reposer ma question autrement : qu'est-ce qui dans les textes de lois, te permet de dire ça ?

                                Parce que si je comprends bien ce que tu dis, alors toujours dans l'exemple où A, l'auteur d'un logiciel, distribue à B un logiciel sous GPLv2+, et B rediffuse le logiciel à C sous GPLv3, alors C passe en fait un contrat GPLv3 avec A pour le tout, plus un contrat GPLv2+ par fichier avec A ?

                                En particulier, il est possible, en acceptant la GPLv3 que B distribue, que C passe des contrats dont il n'a pas connaissance des clauses (GPLv2+).
                                • [^] # Re: Probleme de licence

                                  Posté par  (site web personnel) . Évalué à 1.

                                  que C passe des contrats dont il n'a pas connaissance des clauses (GPLv2+).

                                  Il en a connaissance, chaque fichier source doit contenir un entête avec explicitement la licence de celui-ci.

                                  Tant que tu n'as fait aucun ajout v3 à un de ces fichiers, je ne vois pas ce qui l'aurait fait changer de licence. Si tu as fait des ajouts, il n'y a que tes ajouts qui sont v3, rendant la distribution du fichier complet (c'est à dire avec tes modifs) uniquement possible en v3, mais tes ajouts n'ont aucunement changé la licence du code déjà présent dont tu n'es pas l'auteur (qui t'en donne le droit ? la GPL ne concerne que la distribution).
                                  • [^] # Re: Probleme de licence

                                    Posté par  (site web personnel) . Évalué à 2.

                                    Il en a connaissance, chaque fichier source doit contenir un entête avec explicitement la licence de celui-ci.

                                    Je vais encore me répéter, mais c'est écrit où dans la loi que chaque fichier source doit contenir une en-tête avec la licence ?

                                    Mais tes ajouts n'ont aucunement changé la licence du code déjà présent dont tu n'es pas l'auteur (qui t'en donne le droit ? la GPL ne concerne que la distribution).

                                    Ce que j'avais compris, mais c'est peut-être faux, c'est que la licence c'est le contrat que tu passes avec la personne qui te le distribue. Donc sous cette hypothèse, autoriser la redistribution sous une autre licence, c'est autoriser à changer la licence du code.
                                    • [^] # Re: Probleme de licence

                                      Posté par  (site web personnel) . Évalué à 1.

                                      Je vais encore me répéter, mais c'est écrit où dans la loi que chaque fichier source doit contenir une en-tête avec la licence ?

                                      Dans la loi je sais pas, mais dans la GPL :

                                      To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

                                      Alors oui ce n'est pas une obligation que chaque fichier ai dans son entête la licence (ce qui fait que si il n'a pas d'entête c'est la licence de la distribution qui s'applique, donc dans le cas hypothétique dont nous parlons la GPLv3) mais dans la vrai vie d'ici, je connais pas/peu de projets opensource ou ce n'est pas le cas.

                                      Alors donc on repart avec les gants, si les entêtes sont toujours là, la licence est celle indiquée dans l'entête... si cet entête est présent dans un fichier dont tu n'es pas l'auteur, tu n'as pas le droit de le retirer.

                                      Donc dans le cas hypothétique ou tu fais un fork GPLv3 d'un projet GPLv2+ qui n'a mis aucune licence par fichier alors oui c'est impossible de relicencier ce que tu as distribuer en GPLv3 de nouveau en GPLv2+ (car tout est dans ce cas en v3). Mais dans la vrai vie, je connais pas de projet de ce type.
                                      • [^] # Re: Probleme de licence

                                        Posté par  . Évalué à 2.

                                        Donc dans le cas hypothétique ou tu fais un fork GPLv3 d'un projet GPLv2+ qui n'a mis aucune licence par fichier alors oui c'est impossible de relicencier ce que tu as distribuer en GPLv3 de nouveau en GPLv2+ (car tout est dans ce cas en v3). Mais dans la vrai vie, je connais pas de projet de ce type.

                                        Sauf que tu est oblige d'indiquer que c'est du GPLv2+ en distribuant aussi la licence v2 avec [1], sinon ca revient a virer la licence originale et a relicencier en GPLv3. Et les auteurs du code original, ils vont peut-etre pas etre tres contents et venir te demander des explications.

                                        [1] Si les en-tetes pointent vers un fichier LICENCE (la gplv2) et que tu le remplace par la GPLv3, ca va pas le faire. Tu peux renommer en LICENCE.v2 & LICENCE.v3 et redistribuer le resultat sous v3 par contre (c'est pas la seule solution, c'est juste un cas pratique qui marche).

                                        Et de toute facon, tu es oblige de marquer de facon claire sous quelle licence est le code a la base (et signaler que tu as fait des modifications si c'est le cas!). Section 2 a & b
                                        • [^] # Re: Probleme de licence

                                          Posté par  . Évalué à 1.

                                          « Sauf que tu est oblige d'indiquer que c'est du GPLv2+ en distribuant aussi la licence v2 avec [1], sinon ca revient a virer la licence originale et a relicencier en GPLv3. »

                                          Non.

                                          « If each program lacked the [“or-any-later”] indirect pointer, we would be forced to discuss the change [of the distribution terms] at length with numerous copyright holders, which would be a virtual impossibility. In practice, the chance of having uniform distribution terms for GNU software would be nil. » http://www.gnu.org/licenses/gpl-faq.html#VersionThreeOrLater

                                          Encore un fois je le dis et le répète GPLv2+ n’est pas une licence! mais un double licenciement.
                                    • [^] # Re: Probleme de licence

                                      Posté par  . Évalué à 2.

                                      > c'est écrit où dans la loi que chaque fichier source doit contenir une en-tête avec la licence ?

                                      L'insertion d'un entête rappelant la licence et le copyright pour chaque fichier est une pratique vivement recommandée. C'est pas comme si il n'y avait pas eu de précédents judiciaires dont le célèbre USL vs BSDi.

                                      > Ce que j'avais compris, mais c'est peut-être faux, c'est que la licence c'est le contrat que tu passes avec la personne qui te le distribue. Donc sous cette hypothèse, autoriser la redistribution sous une autre licence, c'est autoriser à changer la licence du code.

                                      Le distributeur est lié par le contrat original, il ne peut redistribuer que selon les termes de la licence originale. Si la GPL impose que le distributeur redistribue le code selon les mêmes termes, ce n'est pas pour faire joli, c'est pour éviter les "intermédiaires" qui pourraient restreindre les droits sur le code. Tu ne peux rien rajouter/supprimer à la GPL sans l'accord de l'auteur.

                                      Par exemple, avec la licence BSD, un intermédiaire pourrait très bien fermer le code parce que la BSD l'autorise, néanmoins, rien ne t'interdit de récupérer le même code sous la licence originale puisque la BSD n'implique pas la cession des droits d'auteurs.

                                      En revanche, si il y a eu cession totale ou partielle des droits, c'est discutable.

                                      Tu dois toujours tenir compte du contrat original, de la modalité d'acquisition (directe, indirecte), et de qui détient les droits d'auteurs.
                                      • [^] # Re: Probleme de licence

                                        Posté par  (site web personnel) . Évalué à 1.

                                        Bon vu les débats, finalement un journal c'était pas mal. Après avoir lu cela, j'ai beaucoup plus de respect pour les juristes qui s'occupent de la propriété intellectuelle, car mine de rien, ce n'est pas si simple.
  • # Le problème n'est pas là

    Posté par  . Évalué à 2.

    Tu peux très bien distribuer ton application et la documentation sous deux licences différentes si les deux projets sont bien distincts. C'est le cas pour la plupart des projets GNU (GPLv2 + GFDL pour la documentation)
    À priori, c'est le cas de Nagios, la documentation vit dans un répertoire distinct et n'est pas généré à partir des commentaires. En attendant de réécrire la documentation, tu peux très distribuer la documentation sous une licence différente (même si il y a compatibilité) de l'application.

    Pour la distribution, ça ne pose pas de problème, le code étant sous AGPLv3+ et la documentation en GPLv2, même si pour des raisons pratiques, tu préfereras sans doute les distribuer séparément.

    En revanche, il n'est explicitement mention nulle part de la licence sous laquelle la documentation est distribué Nagios (pas de headers dans les sources, pas de fichier LICENSE, etc ...). Même si il est probable qu'elle soit distribué sous licence GPLv2 only, je te recommande de demander une permission écrite de la société éditrice de Nagios pour éviter tout conflit potentiel à l'avenir.
    • [^] # Re: Le problème n'est pas là

      Posté par  (site web personnel) . Évalué à 2.

      Merci de cette explication.

      En fait la doc va être mise en docbook, ce qui sera distribué sur le site sera le pdf ou HTML généré à partir de cela. La source du docbook étant le HTML de Nagios, il prend la même licence.

      Question pratique, si j'arrive à obtenir le fait que la doc de Nagios est GPLv2, je peux tout mettre dans un même repository git?

      J'avoue que le mix de licences a toujours été un peu flou dans mon esprit.
      • [^] # Re: Le problème n'est pas là

        Posté par  . Évalué à 2.

        Les licences ne devraient pas poser d'obstacles, pense à rajouter un fichier LICENSE dans le répertoire dédié à la documentation et les entêtes sur les fichiers sources.
        La décision de partager un même dépôt ou non, dépendra principalement de ton workflow, si avoir des historiques distincts présentent un intérêt ou non, etc ...
        • [^] # Re: Le problème n'est pas là

          Posté par  (site web personnel) . Évalué à 2.

          Reçu. Le même dépôt peut être pratique car je compte inclure dans la doc de nouvelles pages (sur les architectures distribuées qui sont la réelle avancée du projet en fait) avec de jolis diagrammes tout pleins (moi si je n'ai pas un dessin, j'ai tout de suite beaucoup à plus de mal à comprendre). Je vais faire référence dans les commentaires du code à ces diagrammes afin qu'un lecteur puisse se représenter facilement où il est, et quels sont les points importants du code (ce qui est le vrai cœur, de ce qui ne l'est pas).

          Encore merci pour tous ses conseils.
  • # Et puisque tu y es

    Posté par  . Évalué à 2.

    Ajoute le support de XMMP, ca fera du taff, et donc plaisir au consultants es XMMP, qui trainent sur linuxfr.

    Depending on the time of day, the French go either way.

Suivre le flux des commentaires

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