Je ne suis pas avocat .
Cependant, vous êtes absolument libre d'utiliser les 3 lignes de code suivantes dans tout ce que vous écrivez:
for (i = 0; i < 5; i++) {
printf("I am not a lawyer!\n");
}
.... C'est du code purement fonctionnel (pas fonctionnel dans le sens que vous pourriez penser, mais fonctionnel par ce qu'il fait). Il n'accomplit en fait rien; il exerce simplement les constructions du langage. Il prend en charge les éléments qui fonctionnent réellement, vous les tapez assez souvent pour avoir une macro pour les produire. Mais ce dont vous parlez n'est pas une «utilisation équitable», est-ce même un droit d'auteur ou une licence en premier lieu?
La seule bonne réponse ici est de demander à un avocat. Dix lignes de code de quoi ? Un algorithme de tri hautement spécialisé? Une sorte de firmware? L'un des millions d'analyseurs de fichiers de configuration qui flottent depuis l'aube d'Usenet? Code généré par un autre programme qui génère des classes de base de données basées sur votre schéma de base de données?
Mais, prouvez-moi que vous avez écrit cela pour boucle, ou instruction switch, et que vous n'avez pas simplement copié le mien. Au moment où les assertions cessent de paraître absurdes, vous êtes probablement au point où vous devriez parler à un avocat, ou au moins à votre directeur technique / PM / etc.
Je participe à plusieurs projets libres / open source, certains d'entre eux nécessitent une cession de droits d'auteur pour tout ce qui n'est pas «trivial». Tous ceux qui ont cette exigence définissent «trivial» comme dix lignes de code ajoutées ou modifiées. Mais ce n'est qu'un test décisif arbitraire pour établir une sorte de norme; une ligne de comparaison d'octets hallucinante est beaucoup plus susceptible d'être soumise au droit d'auteur qu'un commutateur de 10 lignes.
Ma galerie d'extraits se compose de centaines de fonctions, toutes contiennent les informations de l'auteur d'origine dans des commentaires de style doxygen, ainsi que des informations sur la licence (le cas échéant, la plupart sont simplement du domaine public).
À moins que ce soit clairement trivial (comme dans mon exemple humoristique), je ne réutiliserais pas le code à moins que je sache que j'en ai la permission. Je respecte également toujours les règles de la licence applicable. Et pour aider mon futur moi-même (ou les futurs mainteneurs), j'aime laisser un lien vers où j'ai trouvé des trucs dans un commentaire, même si c'est le nom d'une boule de goudron que je remets sur une clé USB si je quitte l'entreprise.