J'ai vu de nombreuses licences pour tout type de logiciel tel que GNU GPL, BSD License, MIT License et LGPL. Quel est le processus de création d'une nouvelle licence logicielle, telle que "la licence générique de John Doe"?
J'ai vu de nombreuses licences pour tout type de logiciel tel que GNU GPL, BSD License, MIT License et LGPL. Quel est le processus de création d'une nouvelle licence logicielle, telle que "la licence générique de John Doe"?
Réponses:
De manière générale, c'est tout ce qu'il y a à faire. Sérieusement.
Tu ne me crois pas? Découvrez la licence Don't Be A Dick de Phil Sturgeon (ainsi que le WTFPL qui l'a inspiré).
Cela dit, il est difficile de savoir si les licences de logiciels sont juridiquement exécutoires , même si un avocat les a écrites (au moins aux États-Unis, et cela dépend presque entièrement du caprice du juge ou de l'autorité en charge des droits d'auteur). Plus généralement, cependant, en tant qu'auteur du logiciel, vous êtes déjà couvert par les lois sur le droit d'auteur de votre pays (en supposant que vous avez pris les mesures nécessaires pour que votre travail soit protégé par le droit d'auteur; aux États-Unis, c'est simplement en fait le travail).
Cela se résume à ce que vous voulez accomplir avec votre licence, au-delà (ou à la place) des lois sur le droit d'auteur. Dans le cas de licences telles que la licence DBaD de Phil, c'est en grande partie une question de principe d'honneur et de respect mutuel.
Si vous voulez qu'il soit juridiquement exécutoire (ou au moins avez une chance de le faire), comme la libération d'un produit de source fermée, alors vous voudrez très probablement parler à un avocat. De cette façon, vous pouvez vous assurer qu'il n'y a pas d'échappatoires flagrantes et le faire écrire de telle manière qu'un juge / parti au pouvoir soit plus susceptible de se prononcer en votre faveur dans le cas où quelqu'un le violerait.
EllisLab (la société derrière CodeIgniter) a une excellente explication des licences de logiciels (et une semaine entière de blogs sur le sujet, en fait), à la fois d'un point de vue juridique et du point de vue d'un développeur FLOSS et du principe d'honneur que j'ai mentionné ci-dessus.
(Avertissement: je ne suis pas un avocat, ce ne sont pas des conseils juridiquement contraignants, bla, bla, bla. Je suis juste un développeur qui a dû s'informer sur le champ de mines légal qu'est le développement de logiciels et l'octroi de licences. En cas de doute , parlez à quelqu'un qui est en fait un avocat, idéalement dans le domaine du droit d'auteur, des brevets et / ou des licences.)
Répondez aux questions suivantes pour l'utilisateur de votre logiciel:
Votre produit est-il open source, c'est-à-dire que je peux obtenir une copie du code source?
Que puis-je faire avec votre produit? Puis-je l'utiliser sur un seul ordinateur? Puis-je l'utiliser sur plusieurs ordinateurs? Puis-je le redistribuer ou le revendre?
Si j'utilise votre produit dans le cadre d'une autre application que j'écris, dois-je également être open-source?
Comment garantissez-vous votre produit? Êtes-vous légalement responsable si j'ai des problèmes?
Quelles sont vos conditions de redistribution? Puis-je redistribuer votre produit dans le cadre d'un produit que j'écris? Si vous fournissez la source, puis-je modifier votre bibliothèque et redistribuer les modifications, et si oui, quelles conditions dois-je remplir?
Étudiez d'autres licences et voyez comment elles ont répondu à ces questions.
Il est en fait étonnamment similaire à ce que font les développeurs:
Vous donnez à un avocat (ou au service juridique dans un grand groupe) une liste d'exigences pour ce que la licence permet et ce qu'elle ne permet pas (par exemple, la licence est pour un seul utilisateur, elle est temporaire, vous ne pouvez pas utiliser le logiciel à certaines fins , etc.) et ils "traduisent" cela en langage juridique, un peu comme nous traduisons les exigences en code.
Par exemple, "la licence est pour un seul utilisateur" est généralement traduite par quelque chose de similaire à ceci: "FooCorp Inc. vous accorde une licence unique, non exclusive et non transférable pour installer et utiliser FooSoftware pour ...".
Vous pourriez penser que cela ne s'applique pas aux licences F / OSS, mais c'est plus ou moins la même chose, sauf que les exigences sont différentes: vous pouvez trouver la version la plus simple de ces exigences sur http://opensource.org/docs/OSD .
Mais la partie avocat est essentielle et il ne sert à rien d'essayer de rédiger une licence par vous-même (sauf si vous êtes un avocat avec beaucoup d'expérience en droit de la propriété intellectuelle et international). Quelqu'un trouvera simplement une échappatoire pratique, qui lui permettra d'utiliser votre produit d'une manière qui lui plaît (j'irais jusqu'à comparer cela à des exploits).
Bien sûr, je ne prétends pas que cette explication soit complète ou même correcte, mais c'est une ébauche du processus, en ce qui concerne les développeurs de logiciels (je la compare donc au travail d'un programmeur).
Pour répondre à votre question, n'importe qui peut écrire une licence - et ça se voit!
Ceux d'entre nous qui utilisent des logiciels pour construire des choses et qui essaient réellement de respecter chaque licence sont prêts à creuser nos propres globes oculaires avec un poker chaud chaque fois que quelqu'un parle d'en créer un nouveau. Il existe déjà un nombre incalculable de licences logicielles dans le monde. 99% d'entre eux sont presque des doublons de licences existantes et plus populaires, sauf qu'ils ne sont pas aussi bien pensés.
Un site auquel je contribue a une licence de type d'attribution non commerciale Creative-commons maison, sauf qu'il ne dit rien sur les œuvres dérivées. Sont-ils autorisés? Peuvent-ils être distribués sous la même licence? Me bat!
Si d'autres personnes contribuent à un projet et que vous souhaitez ou devez modifier la licence, vous devez les amener tous à accepter de modifier la licence, ou vous êtes plus ou moins coincé avec elle pour toujours. Certains d'entre eux pourraient devenir inaccessibles ou même mourir. Je ne suis pas avocat, mais si vous ne disposez pas d'un accord de contribution signé par tout le monde qui vous permet de prendre des décisions concernant votre licence, je pense que vous êtes SOL.
C'est vraiment difficile d'écrire une bonne licence. Même les meilleures licences de logiciels sont pleines de trous. Il existe régulièrement de nouvelles versions des licences Apache et GPL. Veuillez voir si vous pouvez trouver une licence qui répond à 90% de vos besoins et l'utiliser. L' exception de liaison GPL ou «exception Classpath» en est un excellent exemple. Je suis un peu inquiet de la déclaration que les gens d'Hibernate ont eu sur leur site quelques années, interprétant fondamentalement mal la GPLv2 pour la faire sonner comme si elle comprenait l'exception Classpath. Est-ce l'exception de chemin de classe? Nous ne le saurons que si quelqu'un les poursuit.
Il me semble qu'être poursuivi est le moyen le plus douloureux de déboguer votre licence. Si vous utilisez une licence que les gens ont déjà intentée, il y a une certaine assurance qu'elle fonctionne, et aussi une idée de son fonctionnement. Mieux encore, choisissez une licence qui a été portée devant les tribunaux dans différents pays. Avez-vous pensé à la façon dont votre licence serait interprétée dans d'autres parties du monde?
Si vous basez votre licence sur une licence existante, les personnes soucieuses de respecter les termes de votre licence n'auront peut-être pas à l'étudier pendant des années pour comprendre exactement ce que cela signifie.
Dans la mesure du possible, je vous encourage à consacrer vos énergies et vos talents à l'amélioration d'une licence existante plutôt qu'à la rédaction d'une nouvelle.
Désolé d'être une telle joie de tuer. Si je suis amer, c'est parce que j'ai vraiment lu et essayé de respecter les licences des gens avant d'utiliser leurs œuvres.
Notez les termes, publiez-les avec votre logiciel. C'est ça.
Une question, cependant, est pourquoi voulez-vous? Il n'est pas improbable que les conditions que vous souhaitez ajouter soient déjà présentes dans une autre licence couramment utilisée.
Cela ajoute une étape préliminaire - vérifiez si vous devez réellement créer une licence.
Il est également probable que certaines des conditions que vous souhaitez appliquer sont fausses d'une manière ou d'une autre; ajouter une autre étape préliminaire - lisez les conditions "uniques" que vous souhaitez appliquer. Quelqu'un d'autre a probablement essayé de tels termes et les a trouvés inapplicables ou contre-productifs d'une manière ou d'une autre.