Quelle est la bonne façon de bifurquer / réutiliser du code à partir d'un projet open source?

22

Supposons que je travaille sur un projet open source et que je souhaite réutiliser une fonction utilitaire triviale d'un autre projet open source (par exemple, une fonction de recherche / remplacement de fichier). Est-il légal de copier la fonction et d'écrire simplement une petite notice de copyright en haut du fichier? Dois-je inclure leur nom en tant que détenteurs des droits d'auteur de l'ensemble du projet dans la licence?

De même, disons que je bifurque un projet open source. Où et comment puis-je spécifier que le droit d'auteur est partagé entre le titulaire du droit d'auteur d'origine et moi-même?

Je suppose que la réponse doit varier quelque peu en fonction de la licence open source, mais je voudrais autant que possible une réponse générale.

PS: Je suis principalement préoccupé par l'aspect juridique, mais n'hésitez pas à inclure votre point de vue éthique.

Olivier Lalonde
la source
1
Quelle est la licence du projet en question et du projet que vous publiez? Oui, vous pouvez utiliser le code, mais veuillez être plus précis afin que nous puissions mieux vous informer de vos besoins sous la licence utilisée.
Tim Post
1
@Tim Post: C'est principalement une question théorique, mais si cela peut aider, supposons que les deux projets aient une licence GPL car elle est très courante.
Olivier Lalonde

Réponses:

25

J'essaie de rendre cette réponse aussi méta que possible.

Utilisation d'extraits / bits d'autres projets

Marquez clairement le code avec le copyright de l'auteur d'origine. Assurez-vous que la licence de votre choix est entièrement compatible avec la licence du code que vous utilisez. Vous aurez besoin de la permission de l'auteur pour déplacer le code vers une licence différente (à moins qu'ils ne vous autorisent spécifiquement à le faire, c'est-à-dire "GPL 2 ou toute version ultérieure")

Votre programme devrait avoir un fichier AUTHORS (ou similaire), où vous listez tous les contributeurs et les choses que vous avez utilisés dans d'autres projets.

Forker un projet

Pour chaque module que vous modifiez substantiellement , ajoutez vos droits d'auteur sous ceux de l'auteur d'origine. La même chose vaut pour les licences, vous êtes lié par les termes de la licence qui était en vigueur lorsque vous l'avez fourchue. Si le projet dit "GPL2 uniquement", vous devez respecter cela, vous ne pouvez pas accéder à GPL3 sans leur autorisation.

Cela varie considérablement en fonction de la licence disponible. Le QPL indique que vous ne pouvez distribuer que les modifications au format correctif, par exemple, alors assurez-vous de comprendre les termes qui vous permettent de distribuer des versions modifiées du logiciel.

Au-delà de cela, préservez toujours le droit d'auteur. Si vous ajoutez votre propre droit d'auteur à ce qui existe, assurez-vous d'indiquer clairement ce que vous revendiquez.

Tim Post
la source
Vous pouvez parfois ajouter des licences. Supposons que vous vouliez utiliser une fonction BSD dans un projet GPL: vous ne pouvez pas supprimer la licence BSD, mais elle est compatible avec la GPL, vous pouvez donc émettre l'ensemble du projet sous GPL et notez que la fonction est également sous BSD Licence. Il serait poli de publier toutes les modifications que vous apportez au code sous licence BSD sous BSD.
David Thornley
@David - L'OP voulait une réponse générique (d'où mon envie de rechercher les licences). Vous avez tout à fait raison. TOUTEFOIS, il est «agréable» de double licence toutes les modifications que vous avez apportées au code BSD, de sorte que les auteurs originaux peuvent réellement l'utiliser s'ils le souhaitent.
Tim Post
1
À quel moment le fichier de licence principal devrait-il avoir votre avis de droit d'auteur au-dessus de celui des auteurs originaux? Lorsque vos SLOC dépassent 200% des SLOC du projet d'origine? 300%? Si le projet que vous avez forké finit par être l'un des nombreux bibliothèques ou modules de votre projet?
plaques
@hobs imo, l'ordre de l'avis de droit d'auteur n'est pas une indication de l'ampleur de la contribution, mais détaille plutôt chronologiquement les origines.
@TechnikEmpire L'ordre chronologique est logique, mais pour une liste de contributeurs plutôt que pour un avis de droit d'auteur? Je pensais que les avis de droits d'auteur pourraient être mieux organisés en fonction des sections de code auxquelles ils s'appliquent et de la valeur / quantité de ces sections dans le package. Il est utile d'avoir une liste des personnes que vous devez contacter, par ordre de priorité, si vous souhaitez modifier quelque chose au sujet de la licence. Donc, si vous obtenez l'autorisation des premiers, mais pas du dernier, vous avez une plus petite quantité de code à recréer si vous êtes déterminé à effectuer le changement. Je me demande ce que fait Linus?
plaques