Le code source publié sous GPL doit-il être lisible par l'homme?


Réponses:


37

La GPL requiert que ce soit la version préférée pour l'édition. Si vous écrivez normalement dans du code obscurci et y apportez des modifications directement, c'est la source de GPL. Si vous travaillez sur une version lisible, puis l'exécutez à travers n'importe quel type d'obfuscateur, la version lisible est ce que la GPL considère comme la source.

La "lisibilité" est subjective et non définie. Il est légal de publier du code vraiment mauvais, difficile à comprendre sous la GPL. Il n'est pas légal de prendre la version dans laquelle vous apportez des modifications, de supprimer les espaces ou de le rendre autrement moins lisible, et d'appeler cela la source sous la GPL.


1
très intéressant, merci. Y a-t-il une partie particulière de la licence qui l'indique?
Armand

12
GPLv2, Termes et Conditions, de la clause 3: "Le code source d'une œuvre signifie la forme préférée de l'œuvre pour y apporter des modifications.".
David Thornley

4
Cette restriction s'applique uniquement aux titulaires de licence. Pour votre propre code (pas de code GPL externe dessiné), vous pouvez masquer autant que vous le souhaitez et toujours mettre l'autocollant GPL dessus (pour accorder les droits à d'autres). nVidia l'a fait avec le code du conducteur à l'époque (1998 environ)
Patrick Georgi

2
Cela dit, il est inutile de "gifler un autocollant GPL" sur une œuvre où vous ne fournissez pas de code source utilisable, comme dans l'exemple nVidia. Vous pouvez également avoir utilisé une licence propriétaire. Il est clair que nVidia voulait être considéré comme partageant son code sans réellement partager son code.
thomasrutter

1
Juste par curiosité. Que faire si vous travaillez dans un éditeur propriétaire qui enregistre la source sous une forme chiffrée? Théoriquement, vous avez le code dans la façon dont vous travaillez avec, cependant, personne d'autre ne pourrait travailler avec lui car c'est un outil propriétaire auquel personne n'a accès.
Aidiakapi

6

En prenant la GPL v3, dans la section 1, vous avez:

La «source correspondante» pour un travail sous forme de code objet signifie tout le code source nécessaire pour générer, installer et (pour un travail exécutable) exécuter le code objet et modifier le travail, y compris les scripts pour contrôler ces activités.

Si les commentaires et les espaces blancs étaient supprimés, ainsi que les noms de fonction et de variable changés, vous ne seriez pas en mesure de modifier raisonnablement le travail.

En plus:

La source correspondante pour un travail sous forme de code source est ce même travail.

Ce même travail, pas un travail modifié.

Donc, pour clarifier mon point précédent, le code source doit être inchangé, je suppose que l'écriture humaine == lisible par l'homme. Mais oui, vous pourriez écrire directement dans ce qui pourrait être considéré comme non lisible par l'homme.


4

La question ne contient pas d'informations essentielles. Si vous êtes le seul auteur, vous pouvez publier votre propre code sous la licence que vous souhaitez (y compris la GPL) sans nécessairement suivre toutes ses règles. Ainsi, vous pouvez envoyer du code sous une forme qui n'est pas préférée pour le modifier et ne violer aucune loi sur le droit d'auteur. Si d'autres pourraient ensuite étendre votre code dans l'esprit qu'il soit sous une licence de logiciel libre, il est peu probable que peu de gens essaient.

Cependant, la plupart du temps, vous ne serez pas le seul auteur d'une œuvre. Vous tirerez parti du code existant, créant un travail dérivé. Un tel travail doit suivre les règles combinées de sa lignée ou vous n'aurez pas la permission de le distribuer sans violer le droit d'auteur.

Pour rendre cela plus clair, voici quelques exemples (IANAL):

  • Si vous utilisez une bibliothèque GPL dans votre code, vous ne seriez pas autorisé à expédier votre propre code source uniquement sous forme obscurcie sauf (comme l'écrit David Thornley) qui est en fait le formulaire dans lequel vous l'écrivez et le modifiez.
  • Si vous utilisez une bibliothèque LGPL dans votre code, vous serez autorisé à expédier votre propre code source uniquement sous forme obscurcie. En effet, la LGPL requiert uniquement que vous puissiez utiliser le travail qui utilise la bibliothèque avec une version plus récente de la bibliothèque.
  • Si vous étendez une bibliothèque LGPL, ce serait comme le cas GPL, et vous devrez expédier du code non obscurci (à nouveau, sauf si c'est ainsi que vous l'éditez réellement).

1
vous devez suivre toutes les règles d'une licence, quel que soit le titulaire du droit d'auteur. Si vous décidez d'utiliser votre bibliothèque JS sur votre propre site Web et de la publier sous GPL, vous pouvez le faire séparément. Cette question ne concerne pas la LGPL, bien que si des restrictions similaires s'appliquent à la LGPL car la GPL concerne la lisibilité du code, il serait utile de le mentionner ici.
Armand

@Alison: Les conditions de licence s'appliquent à celui qui utilise (et redistribue, dans ce cas) les œuvres, pas à celui qui l'a créé à l'origine et qui vous a concédé une licence.
Paŭlo Ebermann

1
@Alison en désaccord. Si vous êtes l'unique propriétaire de l'ouvrage, vous pouvez le redistribuer à volonté. Par conséquent, vous pouvez le distribuer sous les termes de (licence magique non spécifiée ici) et autoriser les autres à le redistribuer sous les termes de la GPL - la GPL ajoute uniquement des droits pour permettre aux autres de redistribuer les œuvres dérivées des vôtres. Bien sûr, ce n'est pas un scénario probable, car si vous ne croyiez pas à la GPL et en étiez le seul propriétaire, vous ne l'utiliseriez pas.
Michael Urman

Vous n'avez pas à expédier votre propre code source qui utilise une bibliothèque LGPL, à condition que la langue autorise les binaires. Vous devez expédier ce qui permettrait à un utilisateur de modifier la partie LGPLed et de reconstruire l'application (bien que la GPLv2 vous permette d'empêcher l'utilisateur d'installer la version modifiée). Si vous expédiez la source, soit par nécessité, soit par commodité, elle peut être obscurcie.
David Thornley

Bon point. Je vais modifier mon article pour ne plus dire que la LGPL n'impose aucune exigence au travail qui l'utilise.
Michael Urman
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.