Réécriture du code GNU GPL v2 dans une autre langue: puis-je changer une licence?

11

J'ai réécrit certaines parties de Mercurial (qui est sous licence GNU GPL v2) en C #. Naturellement, j'ai beaucoup regardé le code Python original et certaines parties sont des traductions directes de Python en C #.

Est-il possible que "mon code" soit autorisé sous différentes conditions ou même de faire partie d'une application commerciale de source fermée? Sinon, puis-je renouveler la licence de "mon-code" sous LGPL, l'open source et ensuite utiliser cette bibliothèque C # open source dans mon application commerciale open source?

Anton Gogolev
la source
3
Si vous avez travaillé à partir du code d'origine (plutôt que de réimplémenter à partir des protocoles et des documents), cela peut tomber dans le domaine du "travail dérivé", auquel cas il peut toujours relever de la licence d'origine. Parlez à un avocat.
@MichaelT L'utilisation de documents et de protocoles de rétro-ingénierie ne serait-elle pas également un "travail dérivé"?
Anton Gogolev
3
pas nécessairement. L'œuvre dérivée prend l'original et le transforme en une autre forme. Avec les médias plus traditionnels, une peinture est protégée par le droit d'auteur, une photographie de la peinture est une œuvre dérivée. Une fois fait correctement, une salle blanche d' ingénierie inverse évite cela. Voir aussi Quels sont les problèmes de droits d'auteur et de licence liés au portage de code? de SO.
INAL, mais AFAIK seule la traduction automatique de code est couverte par le droit d'auteur.
vartec
1
@vartec Des preuves pour ça?
Anton Gogolev

Réponses:

17

Le texte de la licence couvre spécifiquement les traductions, donc non, vous ne pourrez pas la redistribuer.

Le «programme» ci-dessous fait référence à un tel programme ou travail, et un «travail basé sur le programme» désigne soit le programme, soit tout travail dérivé en vertu du droit d'auteur: c'est-à-dire un travail contenant le programme ou une partie de il, soit textuellement ou avec des modifications et / ou traduit dans une autre langue.

Mason Wheeler
la source
1
IANAL mais je suppose que "Traduit dans une autre langue" dans ce contexte ne fait pas référence à un langage de programmation différent. La loi sur le droit d'auteur ne protège que l' expression exacte d'une idée - pas l'idée elle-même.
Onorio Catenacci
2
@Onorio: GPL n'est pas un droit d'auteur, c'est une licence.
Mason Wheeler
5
@OnorioCatenacci c'est un de ces cas où le "langage" devient un peu collant. La phrase clé est «travail dérivé», que le PO a certainement créé. La GPL autorise expressément la création d'œuvres dérivées (c'est-à-dire qu'elles sont "gratuites ..."), mais les restrictions de licence d'origine s'appliquent toujours aux dérivées. La GPL permet une nouvelle licence (plug sans vergogne, voir ma réponse). Il s'agit plus d'une question de licence que de droit d'auteur.
@MasonWheeler "signifie soit le Programme soit tout travail dérivé en vertu de la loi sur le droit d'auteur" - encore une fois, pas un avocat, mais cela semble dire que le droit d'auteur serait impliqué d'une manière ou d'une autre.
Onorio Catenacci
1
@MasonWheeler "GPL n'est pas un droit d'auteur, c'est une licence." Pourriez-vous expliquer cela? Une licence ne peut que vous accorder certains droits sur une œuvre protégée par le droit d'auteur. Si (gros si) le droit d'auteur sur la nouvelle œuvre ne peut pas être revendiqué par les titulaires des droits d'auteur d'origine, la licence ne s'applique pas.
Jaydee
3

Basé sur:
http://www.gnu.org/licenses/gpl-faq.html#AllCompatibility

Vous devriez être d'accord avec le deuxième scénario que vous avez décrit.

Les parties que vous avez copiées restent sous GPLv2, mais votre bibliothèque entière peut être publiée en tant que LGPL v2.1 ou ultérieure. Vous pouvez ensuite lier votre code source fermé à cette bibliothèque selon les termes de la LGPL.

Comme toujours, faites quelques recherches et assurez-vous de bien comprendre les restrictions.


la source
4
Définitivement pas. Pensez-y: la GPL n'aurait aucun sens si c'était comme ça. Vous pouvez simplement prendre n'importe quel code GPL v2 et le passer à LGPL. Cela rendrait la GPL superflue. Jetez un coup d'œil à l'original: "LGPLv2.1 vous donne la permission de reclasser le code sous n'importe quelle version de la GPL (pas LGPL) depuis GPLv2. Si vous pouvez changer le code LGPLed dans ce cas pour utiliser une version appropriée de la GPL à la place (comme indiqué dans le tableau), vous pouvez faire cette combinaison. " Cela signifie seulement qu'il est légal de basculer votre bibliothèque LGPL vers GPL, mais pas l'inverse. Ce qui a encore du sens.
Quandary