GPL en milieu de travail?

12

J'ai une fois interviewé dans une société de conseil où il est apparu dans la conversation qu'ils utilisent des produits open source (ce qui est génial, j'ai beaucoup utilisé Hibernate, JBoss, etc.). Une chose qui m'a surpris est que lorsque j'ai demandé si ils ont utilisé des logiciels libres sous licence GPL lors de l'écriture d'applications pour les clients, ils ont dit "Bien sûr, tout le temps! Tant que le client obtient ce qu'il veut et qu'il est heureux." Maintenant, je ne suis pas un avocat ou un gros amateur de licence, mais j'avais l'impression qu'en utilisant le code GPL (disons une bibliothèque que vous incluez), vous êtes alors obligé de publier l'intégralité de l'application sous la même licence. Lorsque je l'ai souligné, on m'a répondu rapidement: "Eh bien, nous donnons aux clients tout le code source lorsque nous avons terminé, donc ce n'est vraiment pas un problème."

Ne voulant pas pousser le problème plus loin (les interviews ne sont pas le lieu de tels arguments), je laisse glisser. Cependant, cela m'inquiète toujours de cette pratique particulière de l'entreprise. Quel est le mot officiel sur le code sous licence GPL et comment doit-il être "ouvert"? Devez-vous le publier et dire "Mon entreprise a utilisé cette bibliothèque, alors voici le site où vous pouvez télécharger notre application de système d'achat et de traitement des commandes que nous dépensons des millions de dollars pour construire."? Dans cette situation, l'entreprise a-t-elle raison d'utiliser le code GPL à l'insu du client? Est-ce suffisant de simplement "leur donner la source"?

Ryan Hayes
la source

Réponses:

15

Les clauses de non-responsabilité standard s'appliquent: je ne suis pas avocat et vous non plus.

La GPL, à la base, vise à protéger les droits de ceux qui utilisent le programme pour obtenir et utiliser la source également. Il ne requiert pas que vous publiez la source de tout programme que vous écrivez qui utilise du code GPL, mais simplement que si vous publiez un tel programme, vous devez également fournir la source.

Je peux écrire n'importe quel nombre d'applications pour mon usage personnel, extraire du code GPL et ne jamais donner la source de tout cela à personne. Je peux écrire de telles applications pour un usage interne par mon entreprise et je n'ai qu'à fournir la source à ceux de mon entreprise qui utilisent le programme (pratiquement, je devrais le faire de toute façon s'ils avaient une bonne raison de le demander). Si j'écris un tel programme pour une autre entité, je dois simplement donner leur code (et le rendre clair que le programme est sous licence GPL) - si elles continuent à distribuer, ils doivent alors faire la source disponible, mais je suis hors de l'image.

Ainsi, le seul souci que votre société de conseil pourrait avoir est de ne pas avoir informé ses clients de la licence sous laquelle le code qu'ils fournissaient. En fait, je mens - s'ils avaient négocié une licence différente avec leurs clients (le client possède tous les droits sur le code ...), ils pourraient également être dans l'eau chaude ... Mais cela est vrai pour tout code tiers : à moins qu'il ne soit du domaine public, vous devez vous conformer à la licence et ne pas la reconduire sauf si ce droit vous a été accordé par le détenteur du droit d'auteur.

Shog9
la source
1
Vous avez raison, AGPL est cependant plus strict à ce sujet
@Pierre: correct, dans le sens où vous ne pouvez pas vous passer de fournir des sources à vos utilisateurs en vous en tenant aux applications serveur.
Shog9
1
Intéressant. Donc, dans la GPL standard, si vous écrivez une application SaaS, vous n'êtes pas obligé de donner la source puisque vous ne "distribuez" pas techniquement l'application elle-même?
Ryan Hayes
2
@Ryan: c'est vrai. Eh bien, vous n'êtes pas obligé de le donner à vos utilisateurs . Quiconque obtient le code compilé obtient toujours la source.
Shog9
7

En tant que consultant, je tiens à soulever très tôt les problèmes de licence avec mon client afin qu'il puisse faire un choix éclairé. Si la meilleure technologie à appliquer à leur problème est sous GPL mais qu'ils ne peuvent pas se conformer à la licence, je ne peux pas l'utiliser. En pratique, cela a eu deux effets.

Tout d'abord, beaucoup sont heureux de payer un produit commercial spécifiquement pour éviter ce problème. Cela est particulièrement courant dans le monde des systèmes embarqués où la conformité à la GPL nécessiterait effectivement la publication de la conception matérielle complète et la documentation de son fonctionnement pour répondre à l'esprit de la GPL qui est une tentative de permettre à un utilisateur final de changer le produit. . S'il est possible de fabriquer des produits aussi ouverts, cela demande beaucoup d'engagement à tous les niveaux de l'entreprise. Le plus gros problème est que de nombreux composants d'une conception nous sont documentés par leurs concepteurs sous NDA et il est effectivement impossible de créer un code conforme à la GPL qui utilise la documentation publiée sous NDA.

Deuxièmement, nous avons maintenant une préférence pour la licence du MIT et ses nombreux parents (qui indiquent clairement que l'utilisation commerciale est acceptable) par rapport à la GPL à toute révision. Je n'ai eu aucun objet client à publier des corrections de bugs et des améliorations apportées aux communautés de produits concernées. Étant donné que la licence est facultative, je peux me conformer à mes obligations NDA, garder mon client heureux et contribuer aux communautés concernées.

RBerteig
la source
2

Open source ne signifie pas nécessairement gratuit.

IANAL non plus, mais d'une manière générale l'exigence de GPL est de fournir le code source de votre projet. Vous pouvez certainement vendre un produit à quelqu'un d'autre. Cependant, je pense que vous ne pouvez pas les empêcher de le donner. C'est probablement ce qui rend la plupart des logiciels sous GPL gratuits, comme dans la bière. Je suis assez certain que vous n'avez pas à publier votre code sur world + dog simplement parce qu'il est sous GPL.

Du préambule à la v3 de la GPL (c'est moi qui souligne):

Les licences pour la plupart des logiciels et autres travaux pratiques sont conçues pour vous priver de votre liberté de partager et de modifier les œuvres. En revanche, la licence publique générale GNU est destinée à garantir votre liberté de partager et de modifier toutes les versions d'un programme - pour vous assurer qu'il reste un logiciel gratuit pour tous ses utilisateurs. Nous, la Free Software Foundation, utilisons la licence publique générale GNU pour la plupart de nos logiciels; il s'applique également à tout autre travail publié de cette façon par ses auteurs. Vous pouvez également l'appliquer à vos programmes.

Quand nous parlons de logiciel libre, nous parlons de liberté, pas de prix. Nos licences publiques générales sont conçues pour vous assurer que vous avez la liberté de distribuer des copies de logiciels gratuits (et de les facturer si vous le souhaitez), que vous recevez le code source ou que vous pouvez l'obtenir si vous le souhaitez, que vous pouvez changer le logiciel ou en utiliser des morceaux dans de nouveaux programmes gratuits, et que vous savez que vous pouvez faire ces choses.

( source )

Dans cette situation, l'entreprise a-t-elle raison d'utiliser le code GPL à l'insu du client? Est-ce suffisant de simplement "leur donner la source"?

C'est une question légèrement différente. Si le client a une attente et que cette attente est dictée dans un contrat, l'entreprise peut avoir un problème. Sinon, c'est à eux de déterminer la meilleure façon de faire le travail. Cependant, ils sont censés inclure un avis dans le code source concernant la licence. Je ne sais pas s'ils doivent divulguer cela à leur client d'une autre manière.

George Marian
la source
2
La GPL n'exige pas que vous publiiez activement la source, mais elle exige que vous publiez à l'utilisateur le fait que le programme est GPL et que vous fournirez la source sur demande (éventuellement soumis à des frais de traitement justes et raisonnables). En pratique, cette dernière exigence est souvent gérée par une archive tar ou un zip à une URL qui peut être fournie sur demande. En tant que consultant, vous avez l'obligation de faire savoir à votre client quel sera son fardeau s'il distribue votre travail à d'autres, car il devient l'éditeur sous la GPL.
RBerteig
@RBerteig Merci pour la clarification. Cela fait un moment que je n'ai pas fouillé les termes de la licence.
George Marian
"Vous pouvez certainement vendre un produit à quelqu'un d'autre. Cependant, je pense que vous ne pouvez pas l'empêcher de le donner." Cela dépend si vous leur donnez quelque chose sous la GPL ou si vous êtes le détenteur du droit d'auteur d'origine et que vous leur redonnez une licence sous une licence différente.
endolith
-5

Non, tu as raison. Voici pourquoi:

Considérez si nous avons une application sous GPL. Maintenant, alors il ne peut pas être utilisé par du code propriétaire.

S'il suffisait juste d'ouvrir le code source qui utilise la GPL, je pourrais ouvrir un projet basé sur celui-ci comme BSD.

Ensuite, un logiciel propriétaire pourrait utiliser le produit GPL.

alternative
la source
4
Cela n'a aucun sens. La GPL n'indique pas que le code propriétaire ne peut pas l'utiliser. La GPL est une question de distribution, comme l'indique clairement la réponse de MC. En bref, vous n'êtes pas autorisé à distribuer un logiciel qui utilise le code GPL, sauf si vous distribuez également le code source de ce logiciel sous une licence compatible.
dash-tom-bang
1
Le code propriétaire ne peut pas utiliser le code GPL. Cela fait partie de la raison de l'existence de la licence.
alternative
Tout dépend de ce que vous entendez par «code propriétaire». Si vous voulez dire "code que vous possédez", cela n'a aucun sens - GPL ne peut pas retirer votre droit d'auteur, donc à moins que vous ne l'attribuiez à la FSF de votre propre gré, vous possédez toujours le code que vous écrivez . OTOH, si vous voulez dire "code que vous souhaitez distribuer sous une licence incompatible avec GPL", alors vous avez raison - tout comme vous avez pu obtenir et utiliser la source sur laquelle vous construisez, vous êtes obligé d'accorder ce droit à vos utilisateurs à votre source. Encore une fois, il s'agit de distribution - personne qui ne peut pas obtenir votre programme n'a de droits sur votre code.
Shog9
@Monsieur. C par code propriétaire, je veux dire du code incompatible avec la GPL. Et le code est distribué au client donc ... Mais oui, je ne suis pas avocat donc je peux me tromper.
alternative
2
-1, réponse trompeuse. Cela n'est vrai que pour certaines définitions des termes "utilisation" et "propriétaire". Par exemple, je pourrais créer un produit Linux embarqué et ne publier que le noyau Linux et le code qui sont directement liés au code du noyau, mais pas mon interface utilisateur ou d'autres applications qui se trouvent juste s'exécuter sur un noyau GPL. Beaucoup de ces relations existent. L'ambiguïté dans cette utilisation de «propriétaire» est déjà couverte. De plus, dans la plupart des juridictions, un «travail à louer» donné uniquement à la partie qui a engagé un développeur pour le coder n'est pas la même chose que la distribution. IANAL, etc.
HedgeMage