Problème de licence pour un script Python
Le
Thomas Paviot
Bonjour,
Je développe une série de scripts prenant le contrôle, via le module
win32com, d'une application tournant sous Windows .
Je souhaite redistribuer ces scripts, sous licence libre GNU GPL. Ai-je
le droit de le faire? En d'autres termes, doit-on s'acquitter de
royalties si on utilise la connexion au serveur COM d'une application
Win32 pour laquelle on a une licence d'utilisation valable? A défaut de
royalties, une licence spécifique est-elle liée à ces serveur COM? Ai-je
le droit de mettre dans mon script des appels à ces fonctions?
Excusez-moi pour le caractère un peu "hors sujet" de la question, mais
je sais que certains d'entre vous sur ce groupe utilisent également
win32com et on peut-être été confrontés aux mêmes interrogations.
Thomas Paviot
Je développe une série de scripts prenant le contrôle, via le module
win32com, d'une application tournant sous Windows .
Je souhaite redistribuer ces scripts, sous licence libre GNU GPL. Ai-je
le droit de le faire? En d'autres termes, doit-on s'acquitter de
royalties si on utilise la connexion au serveur COM d'une application
Win32 pour laquelle on a une licence d'utilisation valable? A défaut de
royalties, une licence spécifique est-elle liée à ces serveur COM? Ai-je
le droit de mettre dans mon script des appels à ces fonctions?
Excusez-moi pour le caractère un peu "hors sujet" de la question, mais
je sais que certains d'entre vous sur ce groupe utilisent également
win32com et on peut-être été confrontés aux mêmes interrogations.
Thomas Paviot

Poser une question


Pour autant que je sache, l'utilisation de la technologie COM elle-même
n'est pas soumise à licence.
Donc, tant que tu ne fournis pas un composant qui serait lui-même
soumis à une licence, pas de problème.
De toutes façons, pour utiliser tes scripts, les utilisateurs auront
forcément besoin de composants ou logiciels qui ont leur propre
licence.
--
@-salutations
Michel Claveau
A priori, c'est interdit. Tout au moins litigieux.
Voici ce que nous dit la GPL :
http://www.gnu.org/licenses/gpl-faq...ggregation
"Si les modules sont conçus pour être exécutés par édition de liens dans un
même espace mémoire partagé, cela signifie presque à coup sûr une
combinaison en un seul programme."
Donc, si c'est un composant COM « in-process » la GPL n'est pas utilisable.
Si c'est du "out-of-process » c'est surement jouable.
Attention aussi à la licence du composant COM. C'est que ca peut aussi être
pervers ce genre de composant proprio ;-)
composants COM eux-même.
fonctions/méthodes, réalisés dynamiquement à l'exécution.
multi-hôtes. C'est à dire que le même plug-in peut être utilisé/appelé
depuis des applications/logiciels différents.
Dès lors, comment déterminer si c'est "in-process", ou "out-process" ?
Pour l'utilisation des composants COM : dans la mesure où cette
technologie est une partie intégrante du système d'exploitation, je ne
vois pas où est le mal.
En pratique, on pourrait dire que l'utilisationc est similaire aux
appels API de l'OS. Il n'y a pas de grosses différences, entre afficher
une boîte de dialogue système (API), et afficher une boîte de dialogue
du WSH.filesystem (COM).
Litigieux, peut-être. Je dirais plutôt ambigüe. Mais c'est le cas de
TOUTES les licences, dès qu'elles sont confrontées à d'autres (types
de) licences. Les interactions de licences, c'est quasi insoluble ; au
moins dans certains cas.
l'utilisateur, et non au développeur d'un script qui ne réalise que des
appels au composant, et ne fournit pas le compoasant. En clair, si un
script réalise des appels (pilote) Word, il n'est pas fourni avec Word,
et c'est donc l'utilisateur qui doit avoir Word, avec les problèmes de
licences associés.
Les composant COM peuvent être propriétaires ou non-propriétaires. Ce
n'est pas COM qui impose la classification, mais le développeur du
composant qui décide.
--
@-salutations
Michel Claveau
un composant "in-process" est un composant COM qui lorsqu'il est appelé, est
chargé dans le même espace d'adressage que le processus appelant.
En gris, c'est une DLL améliorée.
un composant "out-process" est un composant qui crée une application qui
communiquera avec le process appelant en utilisant les fonctions de
sérialization COM (marshalling)
La GPL autorise le second cas, mais interdit le premier.
Il n'y a pas de mal :-) D'ailleurs, la GPL autorise les liens avec les
fonctions de l'OS. Après, là ou ca se corse, c'est de déterminé ce qu'est
l'OS.
Je suis bien d'accord. La solution en général est de choisir une licence
plus permissive pour ce genre de cas, BSD-like. voir LGPL, et le problème
est résolu :-)
Oui, mon commentaire était un peu trollesque ;-)
Ok, mais, dans le cas d'un composant COM qui peut être appelé dans le
même espace OU dans un process externe (voire partagé), c'est
l'utilisation qui va déterminer la classement. Il faudrait que la
licence soit variable a posteriori, alors qu'elle est figée a priori.
A mon avis, c'est sans solution...
Tiens, un autre truc que je n'ai jamais solutionné. J'écrit un logiciel
gratuit, que je met à disposition du public, sans autre mention de
licence que "vous pouvez l'utiliser librement". ATA, quel est le statut
de ce logiciel ?
--
@-salutations
Michel Claveau