web-dev-qa-db-fra.com

Comment puis-je créer ma propre licence logicielle?

J'ai vu de nombreuses licences pour tout type de logiciel tel que la GNU GPL, BSD License, MIT License, et LGPL. Quel est le processus pour créer un nouvelle licence logicielle, telle que "licence générique de John Doe"?

16
Rrjrjtlokrthjji
  1. Ouvrez un éditeur.
  2. Rédiger les conditions de licence.
  3. Enregistrez le fichier.
  4. Inclure dans le projet.

De manière générale, c'est tout ce qu'il y a à faire. Sérieusement.

Tu ne me crois pas? Découvrez 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 pour que votre travail soit protégé par le droit d'auteur; aux États-Unis, c'est tout simplement en fait faisant l'œuvre).

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 telles licences comme la licence DBaD de Phil, c'est largement 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 ne excellente explication des licences logicielles (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 le 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 avec un accent sur le droit d'auteur, les brevets et/ou les licences.)

28
Shauna

Répondez aux questions suivantes pour l'utilisateur de votre logiciel:

  1. Votre produit est-il open source, c'est-à-dire que je peux obtenir une copie du code source?

    • Comment puis-je utiliser votre code source? Puis-je le copier librement dans mes propres applications, ou dois-je créer un lien vers votre binaire? Si j'utilise votre code dans ma propre application, y a-t-il une limite à la quantité de votre code que je peux utiliser? Dois-je inclure votre en-tête de licence ou d'attribution en haut de tout fichier source que je redistribue et qui contient votre code, ou dans la zone Aide/À propos de mon binaire?
  2. 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?

  3. Si j'utilise votre produit dans le cadre d'une autre application que j'écris, dois-je également être open-source?

  4. Comment garantissez-vous votre produit? Êtes-vous légalement responsable si j'ai des problèmes?

  5. 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.

16
Robert Harvey

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).

6
K.Steff

Pour répondre à votre question, n'importe qui peut écrire une licence - et ça se voit!

Ceux d'entre nous qui utilisent un logiciel pour construire des choses et qui essaient réellement de respecter chaque licence sont prêts à nous creuser les yeux 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 possède une licence de type d'attribution non commerciale Creative-commons, sauf qu'elle 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 tous les faire 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. GPL Linking Exception ou "Classpath Exception" 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, fondamentalement mal interprété publiquement la GPLv2 pour donner l'impression qu'elle incluait 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 que cela fonctionne, et aussi une idée de comment cela fonctionne. 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.

4
GlenPeterson

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.

3
Paul Butcher