web-dev-qa-db-fra.com

Mettre la licence dans chaque fichier de code?

Je le trouve inutilement dupliqué pour l'avoir dans chaque fichier de code, mais je le vois sur la plupart des projets open source. Dois-je faire de même ou simplement inclure une seule licence en dehors du code?

89
Joan Venge

Un seul en dehors du code, s'il vous plaît! Je ne sais pas pour les autres, mais je déteste voir la même chose au-dessus de chaque fichier.

Je pense que je l'ai lu plusieurs fois, juste en le parcourant.

71
Rook

CLUF est le mauvais terme ici, car les personnes qui consultent le code source ne sont généralement pas des utilisateurs finaux.

Juridiquement, cela ne fait aucune différence non plus; le droit d'auteur n'a pas besoin d'être déclaré explicitement.

Fondamentalement, tout ce que vous réalisez est un risque plus faible de personnes accidentellement violant vos conditions de licence. Vous devrez décider à quel point cela est important pour vous.

Je dirais que le meilleur compromis est de mettre un en-tête très court contenant un lien (URL absolue ainsi que relative dans le projet) vers le texte de licence complet dans chaque fichier de code source. De cette façon, quiconque se soucie de la licence sait où la trouver (idéalement, les personnes qui sont disposées à payer des frais de licence massifs; vous voulez certainement ces personnes pour pouvoir vous contacter!)

24

Non, vous n'avez pas besoin de mettre la licence dans chaque fichier de code source.

Si vous regardez de plus près, la plupart des applications FOSS ne le font pas non plus. Ils ont mis une déclaration de copyright en haut de chaque fichier et une courte phrase vous indiquant sous quelle licence se trouve le fichier et où vous pouvez trouver le texte intégral de la licence. Ils vous dirigent généralement vers le fichier COPYING ou LICENSE contenant le texte intégral de la licence et/ou vers un site Web qui contient le texte intégral (au cas où le fichier COPYING n'existe plus).

Comme Michael Borgwardt l'a dit dans ses réponses, légalement, vous n'êtes pas obligé de le faire. Mais il est conseillé pour le code source que vous avez l'intention de distribuer, car les gens peuvent immédiatement voir qui détient le droit d'auteur et quelle est la licence.

14
Sander Marechal

Cela peut dépendre de la licence. La GPL fait la distinction entre preamble et license. Il indique clairement que le préambule (ennuyeux) doit faire partie du code :

Puis-je omettre le préambule de la GPL, ou les instructions pour l'utiliser sur vos propres programmes, pour économiser de l'espace?

Le préambule et les instructions font partie intégrante de la GPL GNU et ne peuvent être omis. En fait, la GPL est protégée par le droit d'auteur et sa licence autorise uniquement la copie textuelle de la GPL entière. (Vous pouvez utiliser les termes légaux pour faire une autre licence mais ce ne sera pas la GNU GPL.) (1)

Source: 1) http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble

Voir aussi http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html

A ebook gratuit d'ifrOSS explique et commente la GPL 2 en langue allemande. Il y a n autre pour GPL

Pour une réponse bien fondée, vous devriez demander un avis juridique qui n'est pas disponible sur sx. Si vous ne trouvez pas d'avocat pour votre projet (open source), consultez le Réseau juridique FSFE .

12
Jonas Stein

Je pense que le raisonnement derrière la mise dans chaque dossier est légal. Si l'accord est dans chaque fichier, il n'y a aucune chance que quelqu'un tombe sur un morceau de code sans être exposé à la licence.

Ce n'est peut-être pas bon, mais tous les grands garçons l'utilisent donc si c'est juste une douleur visuelle, je chercherais une meilleure raison de ne pas faire de même.

Si vous utilisez GPL, c'est plus un problème, mais si vous utilisez des licences du domaine public comme BSD ou MIT, je ne pense pas que vous vous souciez vraiment de ce que les gens font avec le code de toute façon. Je suppose que cela dépend de la sévérité de votre licence.

7
Kekoa

IANAL,

En supposant que vous parlez de licence, pas d'un CLUF, vous pouvez mettre la licence à l'extérieur. Cela se fait presque toujours avec des licences très longues telles que la GPL. Il serait stupide de mettre l'intégralité de la licence GPL dans chaque fichier. Habituellement, vous auriez simplement un certain type d'avis indiquant où vous pouvez trouver la licence réelle. C'est parfaitement légal. Cependant, avec des licences très courtes telles que BSD/Apache/MIT/quoi que ce soit, il est plus simple de simplement inclure la licence dans chaque fichier, car l'avis indiquant où trouver la licence serait presque aussi long que la licence elle-même.

3
Zifre

Cela dépend de ce que la licence dicte. La GPL, par exemple, vous demande de mettre un court préavis dans chaque fichier source, d'inclure l'intégralité de la licence quelque part dans votre distribution source et de rendre votre distribution source accessible à toute personne qui obtient une copie de la distribution binaire.

Si vous n'êtes pas d'accord avec cela et qu'il s'agit de VOTRE code, vous êtes libre de choisir une licence plus agréable ou de créer la vôtre.

2
Mark Jones

Ce que je fais est de mettre un commentaire de deux lignes en haut du fichier, indiquant le nom de mon entreprise, la dernière date de révision et le nom de la licence du fichier source, puis tout en bas du fichier une version courte du Licence.

Bien sûr, la licence complète (toutes en cas de licences multiples) est toujours incluse dans le fichier source et les répertoires de version.

1
GaiusSensei

Si votre code va être compilé de façon à ce que vous distribuiez simplement un binaire, alors cela n'a vraiment pas d'importance. Parce que lorsque vous créez un binaire, les commentaires sont supprimés avant le processus de compilation. Cela n'a d'importance que si vous distribuerez le code source réel, soit open source, soit fermé. Cela est important si vous distribuez une application dans un langage de script qui ne se compile pas.

1
adimitri

Vous n'en avez pas besoin pour la licence, un seul fichier externe fera aussi longtemps qu'il saura quels fichiers il couvre.

Cependant pour Copyright vous devriez avoir l'avis de copyright sur chaque morceau de texte.

1
James Anderson