Ruby, GPL et logiciels propriétaires

King Kadelfek Message lu Posté le 20 Fév 2009 à 15:42 Bulle
Explorateur

Messages : 44
GCPoints : 37244
Bonjour,
Je ne suis pas sûr qu'il s'agisse du meilleur endroit pour poster ça, mais je ne voulais pas donner l'impression de vouloir créer une polémique en le faisant dans "Débats".

Je développe en ce moment un logiciel en Ruby que je souhaite commercialiser.
Je n'utilise que Ruby (pas de librairies spécifiques, si ce n'est les habituels Fileutils et autres).

Ruby étant sous licence LGPL (en plus de GPL), je peux donc vendre un programme en Ruby ?
Suis-je obligé de rendre le code source accessible ?


Autre chose : si j'utilise une librairie sous licence GPL, pourrai-je toujours commercialiser mon programme ?
Je pense qu'il faudra que je fournisse le code de la librairie que j'utilise, mais qu'en est-il du reste du programme ?
Des parties que j'ai entièrement développées moi-même en pur Ruby ?
Des parties de mon code qui utilisent la librairie GPL ?

Mon programme devra-t-il obligatoirement passer sous licence GPL ?

Qu'en est-il, si, au lieu de vendre le programme, je vends une licence d'utilisation ?
Et que j'interdis la redistribution du programme que je fournis lorsque je vends la dite licence ?

Et si ce n'est pas une librairie, mais un simple code annexe sous licence GPL ?
Que j'utilise sans le modifier ?


-------------------------

Je me pose pas mal de questions à ce sujet, et même si j'ai lu beaucoup de définitions sur le net, je peine à trouver des exemples correspondant à mon cas...

Je tombe souvent sur ce genre de discussions sans que ça m'apporte grand chose :
http://forum.framasoft.org/viewtopic.php?f=22&t=30648


D'avance, merci pour vos réponses.


------------------------------------------------

EDIT : j'ai trouvé ça, qui semble indiquer qu'il y a un cas spécial :


Citation :

Can I release a non-free program that's designed to load a GPL-covered plug-in?

It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.

If the program dynamically links plug-ins, but the communication between them is limited to invoking the `main' function of the plug-in with some options and waiting for it to return, that is a borderline case.



Notamment la dernière phrase :


Citation :

If the program dynamically links plug-ins, but the communication between them is limited to invoking the `main' function of the plug-in with some options and waiting for it to return, that is a borderline case.



Donc si je charge un plug-in séparé du reste de mon code (un .exe compilé par exemple), et après que j'utilise une fonction du plug-in pour récupérer le traitement des données, c'est un cas limite ?
Qu'en est-il si le code se trouve dans le .exe ? Je suppose que ce n'est plus un plug-in ?

The 'main' function, c'est par exemple une ligne de code tapée comme en console de code Windows ?


Citation :

If the program uses fork and exec to invoke plug-ins


Quel est l'équivalent Ruby de ces actions ?
Dernière édition le 20 Fév 2009 à 16:03
Gulix Message lu Posté le 20 Fév 2009 à 16:55 Bulle
Avatar de Gulix
Membre Confirmé

Messages : 184
GCPoints : 8860
D'après ce que j'avais récolté un jour où j'étais dans le même cas que toi :

Si tu utilises des sources en GPL dans ton programme (même une simple fonction), tu dois distribuer ton programme avec une licence compatible GPL.
La LGPL permet d'utiliser des bibliothèques sans forcément rendre compatible GPL ton programme. Mais il faut utiliser le binaire (une dll par exemple), ou au moins ne pas modifier du tout le code de la bibliothèque. Souvent, les bibliothèques sont LGPL pour qu'on puisse les utiliser même dans un programme fermé, mais pour qu'on soit obligés de distribuer toute modification.

Après, je ne pense pas que le fait que Ruby soit GPL nécessite que ton programme le soit. Tu n'as pas modifié Ruby ? C'est comme pour les fichiers faits sous Notepad++ : le programme les créant est sous GPL, mais pas les fichiers.

Pour terminer, tu peux commercialiser un programme sous GPL. Sans problème. Après, ton premier client disposera des sources. Mais tu peux très bien fournir un package d'installation, une documentation, une aide, ... qui eux ne seront pas redistribuables. C'est ainsi que fonctionnent certaines distributions Linux proprio.
"Bien souvent, l'école représente votre meilleure chance. Non pas d'apprendre quoi que ce soit, bien sûr, mais de survivre à une attaque de morts-vivants".
Max Brooks - Guide de survie en territoire zombie

Mon Blog, mélange de prog' et de culture
Blind Shark - Pull N' Bounce
Mod Message lu Posté le 20 Fév 2009 à 17:21 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
Gulix a déjà bien résumé la situation.

La GPL est héréditaire, dès lors, si tu utilises du code ou un composant sous GPL, ton programme l'utilisant doit l'être également, et tout programme utilisant de travail devra l'être à son tour.
Si certains éléments indépendants de ton programme principal n'utilisent pas de code GPL, a priori pas de raison de divulguer les sources. Tu peux très bien construire un logiciel comme un ensemble de modules avec certains sous GPL et d'autres non.



Citation :

The 'main' function, c'est par exemple une ligne de code tapée comme en console de code Windows ?



Là, c'est juste une référence à la fonctionnalité principale du plugin, pas tout à fait une histoire de code. On parle d'appel du plugin plus que d'autre chose.



Citation :

Quel est l'équivalent Ruby de ces actions ?



Aucune idée, mais ça revient ici à effectuer une exécution de programme, contrairement à la remarque précédente, qui parlait plutôt d'appel.
Là on parle d'appel
King Kadelfek Message lu Posté le 20 Fév 2009 à 18:52 Bulle
Explorateur

Messages : 44
GCPoints : 37244

Citation :

Après, je ne pense pas que le fait que Ruby soit GPL nécessite que ton programme le soit. Tu n'as pas modifié Ruby ? C'est comme pour les fichiers faits sous Notepad++ : le programme les créant est sous GPL, mais pas les fichiers.


D'après Wikipedia, Ruby est sous licence GPL et LGPL.
Donc, je ne peux pas modifier Ruby ?

Enfin, là, je pense que ce n'est pas tout à fait pareil que Notepad++, parce que mon programme contiendra des parties complètes de Ruby.


Citation :

Pour terminer, tu peux commercialiser un programme sous GPL. Sans problème. Après, ton premier client disposera des sources. Mais tu peux très bien fournir un package d'installation, une documentation, une aide, ... qui eux ne seront pas redistribuables. C'est ainsi que fonctionnent certaines distributions Linux proprio.


Je peux vendre un programme GPL.
Mais la personne qui l'achètera pourra librement le redistribuer.



Citation :

Tu peux très bien construire un logiciel comme un ensemble de modules avec certains sous GPL et d'autres non.


En fait, pour mon utilitaire d'extraction de texte, je voulais pouvoir utiliser un spell checker.
Même si je sépare la partie du programme s'occupant de ça, les relations entre la partie GPL (avec le spell checker) et le reste seront trop importantes, tout le programme devra être GPL.

Mod Message lu Posté le 20 Fév 2009 à 19:25 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823

Citation :

Enfin, là, je pense que ce n'est pas tout à fait pareil que Notepad++, parce que mon programme contiendra des parties complètes de Ruby.



Alors effectivement, dans ce cas là, ton logiciel devra être sous licence GPL. En revanche, si tu ne fais qu'utiliser le logiciel ou l'interpréteur complet, je ne pense pas que cela poserait problème. Cf RPG Maker XP/VX, qui sont bien closed source.



Citation :

Je peux vendre un programme GPL.
Mais la personne qui l'achètera pourra librement le redistribuer.



Oui, c'est tout à fait ça. En fait les distributions propriétaires auxquelles fait référence Gulix, par exemple Mandriva, sont basé sur un principe simple : on n'achète pas l'OS en lui-même, qui est sous GPL, mais les mises à jour et le support technique. Tout le monde peut télécharger Mandriva, l'utiliser, le compiler, etc.
L'entreprise gagne son pain grâce à tous les à-côtés que peut représenter le produit, à savoir fournir les mises à jour, la documentation, de nouveaux logiciels compatibles, des services divers liées à l'OS, de la formation, etc. Certes, pas forcément très adapté dans ton cas - je n'ai d'ailleurs aucun exemple en tête de développeur indépendant basé sur ce système.



Citation :

Même si je sépare la partie du programme s'occupant de ça, les relations entre la partie GPL (avec le spell checker) et le reste seront trop importantes, tout le programme devra être GPL.



A ce moment là, c'est peut-être simplement le fait de le vendre ton logiciel qui peut être utile d'être réfléchi à nouveau. Les attentes dans le domaine sont souvent fortes, le résultat pas forcément à la hauteur. Et ça peut nuire fortement à la popularité du logiciel.
Tu peux également très bien recoder toi-même toutes les fonctions une à une, c'est faisable. Créer un équivalent à Ruby sera peut-être compliqué, à ce moment, il est peut-être judicieux de passer par un système de scripting... Tout dépend du point jusqu'auquel ton logiciel est ancré avec des codes GPL.
Dernière édition le 20 Fév 2009 à 19:25
Répondre
GameCorp - Site d'apprentissage et d'entraide à la création de jeux vidéo.
XHTML Valid 1.1 - Page générée en 0.0264 secondes