GPL no local de trabalho?


12

Certa vez, entrevistei uma empresa de consultoria em que surgiram na conversa que eles usam produtos de código aberto (o que é ótimo, usei extensivamente o Hibernate, JBoss etc.). Uma coisa que me surpreendeu foi quando perguntei se eles usaram o OSS licenciado pela GPL ao escrever aplicativos para clientes, disseram "Claro, o tempo todo! Contanto que o cliente consiga o que deseja e seja feliz". Agora, não sou advogado nem grande fã de licenças, mas fiquei com a impressão de que, usando o código GPL (digamos que você inclua alguma biblioteca), é necessário que você libere todo o aplicativo sob a mesma licença. Quando indiquei isso, recebi uma resposta rápida de "Bem, damos aos clientes todo o código-fonte quando terminamos, então isso realmente não é um problema".

Não querendo aprofundar a questão (entrevistas não são o lugar para argumentos como esse), deixei para lá. No entanto, isso ainda me preocupa com essa prática específica do negócio. Qual é a palavra oficial no código licenciado pela GPL e quão "aberto" ele precisa ser? Você precisa publicá-lo e dizer "Minha empresa usou esta biblioteca, então aqui é o site onde você pode baixar nosso aplicativo de sistema de atendimento de pedidos e compras que gastamos milhões de dólares para construir". Nessa situação, a empresa está certa em usar o código GPL sem o conhecimento do cliente? É suficiente apenas "dar-lhes a fonte"?

Respostas:


15

Isenções de responsabilidade padrão se aplicam: eu não sou advogado e você também não.

A GPL, em sua essência, é proteger os direitos daqueles que usam o programa para obter e usar a fonte também. Ele não exige que você publique a fonte de qualquer programa que escreva que use código GPL, apenas que, se você publicar um programa desse tipo, também deverá fornecer a fonte.

Posso escrever qualquer número de aplicativos para meu uso pessoal, inserir código da GPL e nunca fornecer a fonte disso a ninguém. Posso escrever esses aplicativos para uso interno da minha empresa e só preciso fornecer a fonte para aqueles da minha empresa que usam o programa (na prática, eu precisaria fazer isso de qualquer maneira se eles tivessem algum bom motivo para solicitá-lo). Se eu escrever um programa para alguma outra entidade, eu simplesmente tem que dar -lhes o código (e deixar claro que o programa está licenciado sob GPL) - se eles vão para distribuí-lo, eles também devem, em seguida, fazer a fonte disponível, mas estou fora de cena.

Portanto, a única preocupação que sua empresa de consultoria pode ter é que eles não conseguiram informar seus clientes sobre a licença em que o código fornecido se enquadrava. Na verdade, eu minto - se eles tivessem negociado uma licença diferente com seus clientes (o cliente possui todos os direitos de código ...), então eles também poderiam estar em água quente ... Mas isso é verdade para qualquer código de terceiros : a menos que seja de domínio público, você deve cumprir a licença e não a deve licenciá-la novamente, a menos que esse direito tenha sido concedido a você pelo detentor dos direitos autorais.


1
Você está certo, a AGPL, no entanto, é mais rigorosa quanto a isso #

@Pierre: correto, no sentido de que você não pode deixar de fornecer origem aos seus usuários aderindo aos aplicativos do servidor.
— Shog9

1
Interessante. Portanto, na GPL padrão, se você escreve um aplicativo SaaS, não precisa fornecer a fonte, pois não está tecnicamente "distribuindo" o próprio aplicativo?
— Ryan Hayes

2
@ Ryan: certo. Bem, você não precisa dar aos seus usuários . Quem obtém o código compilado ainda obtém a fonte.
— Shog9

7

Como consultor, faço questão de levantar os problemas de licença mais cedo com meu cliente para que eles possam fazer uma escolha informada. Se a melhor tecnologia a ser aplicada ao problema deles estiver sob a GPL, mas eles não puderem cumprir a licença, não posso usá-la. Na prática, isso teve dois efeitos.

Primeiro, muitos estão felizes em pagar por um produto comercial especificamente para evitar esse problema. Isso é especialmente comum no mundo dos sistemas embarcados, onde a conformidade com a GPL exigiria efetivamente a publicação do projeto completo de hardware e a documentação de como tudo funciona para atender ao espírito da GPL, que é uma tentativa de tornar possível para um usuário final alterar o produto. . Embora seja possível criar produtos abertos, isso exige muito comprometimento em todos os níveis da empresa. O maior problema é que muitos componentes de um design são documentados para nós por seus fabricantes no NDA e é efetivamente impossível criar código compatível com GPL que usa a documentação liberada no NDA.

Segundo, agora temos uma preferência pela licença do MIT e seus muitos parentes (que deixam claro que o uso comercial é aceitável) sobre a GPL em qualquer revisão. Eu não tive nenhum objeto de cliente para liberar correções e melhorias feitas nas comunidades de produtos relevantes. Como a licença é permissiva, posso cumprir minhas obrigações com a NDA, manter meu cliente satisfeito e contribuir com as comunidades relevantes.


2

Código aberto não significa necessariamente livre.

IANAL também, mas de um modo geral o requisito da GPL é fornecer o código-fonte para o seu projeto. Você certamente pode vender um produto para outra pessoa. No entanto, acredito que você não pode impedi-los de denunciá-lo. Provavelmente é isso que liberta a maioria dos softwares da GPL, como na cerveja. Estou bastante certo de que você não precisa publicar seu código no world + dog apenas porque é da GPL.

Do preâmbulo à v3 da GPL (grifo meu):

As licenças para a maioria dos softwares e outros trabalhos práticos foram projetadas para tirar sua liberdade de compartilhar e alterar os trabalhos. Por outro lado, a GNU General Public License destina-se a garantir sua liberdade de compartilhar e alterar todas as versões de um programa - para garantir que ele permaneça software livre para todos os seus usuários. Nós, a Free Software Foundation, usamos a GNU General Public License para a maioria de nosso software; aplica-se também a qualquer outro trabalho divulgado dessa maneira por seus autores. Você também pode aplicá-lo aos seus programas.

Quando falamos de software livre, estamos nos referindo à liberdade, não ao preço. Nossas Licenças Públicas Gerais são projetadas para garantir que você tenha a liberdade de distribuir cópias de software livre (e cobrar por elas, se desejar), de receber código-fonte ou de obtê-lo, se desejar, de poder alterar o software ou use partes dele em novos programas gratuitos e saiba que pode fazer essas coisas.

( fonte )

Nessa situação, a empresa está certa em usar o código GPL sem o conhecimento do cliente? É suficiente apenas "dar-lhes a fonte"?

Esta é uma pergunta um pouco diferente. Se o cliente tiver alguma expectativa e essa expectativa for ditada em um contrato, a empresa poderá ter um problema. Caso contrário, cabe a eles determinar a melhor forma de realizar o trabalho. No entanto, eles devem incluir um aviso no código-fonte referente à licença. Não tenho certeza se eles devem divulgar isso para seus clientes de qualquer outra maneira.


2
A GPL não exige que você publique ativamente a fonte, mas exige que você publique ao usuário o fato de que o programa é GPL e que você a entregará mediante solicitação (possivelmente sujeita a uma taxa de manuseio justa e razoável). Na prática, esse último requisito geralmente é tratado por um tarball ou zip em um URL que pode ser fornecido mediante solicitação. Como consultor, você tem a obrigação de informar ao seu cliente qual será o ônus dele se distribuir seu trabalho a outras pessoas, porque elas se tornam o editor da GPL.
— RBerteig 14/10/10

@RBerteig Obrigado pelo esclarecimento. Faz um tempo desde que eu examinei os termos da licença.
— George Marian

"Você certamente pode vender um produto para outra pessoa. No entanto, acredito que você não pode impedi-lo de entregá-lo". Depende de você estar dando a eles algo sob a GPL ou se você é o detentor dos direitos autorais original e o licenciando novamente sob uma licença diferente.
— Endolith

-5

Não, você está correto. Aqui está o porquê:

Considere se temos um aplicativo sob a GPL. Agora, não pode ser usado por código proprietário.

Se bastasse apenas abrir o código-fonte que usa GPL, eu poderia abrir um projeto de código-fonte baseado em BSD.

Em seguida, o software proprietário poderia usar o produto GPL.


4
Isso não faz sentido. A GPL não declara que o código proprietário não pode usá-lo. A GPL tem tudo a ver com distribuição, como a resposta do Sr. C afirma claramente. Em resumo, você não tem permissão para distribuir software que usa código GPL, a menos que você também distribua o código-fonte desse software sob uma licença compatível.
— traço-tom-bang

1
Código proprietário não pode usar código GPL. É parte do motivo da existência da licença.
— alternativa

Tudo depende do que você quer dizer com "código proprietário". Se você quer dizer "código que você possui", isso não faz sentido - a GPL não pode tirar seus direitos autorais, portanto, a menos que você o atribua à FSF por sua própria vontade, você ainda possui o código que escreve . OTOH, se você quer dizer "código que deseja distribuir sob uma licença incompatível com a GPL", está correto - assim como conseguiu obter e usar a fonte em que está construindo, é obrigado a conceder aos usuários esse direito à sua fonte. Novamente, trata-se de distribuição - ninguém que não pode obter seu programa tem direitos sobre seu código.
— Shog9

@Senhor. C por código proprietário Quero dizer código incompatível com a GPL. E o código é distribuído para o cliente, então ... Mas sim, eu não sou advogado, então posso estar errado.
— alternativa

2
-1, resposta enganosa. Isso é verdade apenas para algumas definições de "uso" e "proprietário". Por exemplo, eu poderia criar um produto Linux incorporado e liberar apenas o kernel do Linux e o código vinculado diretamente ao código do kernel, mas não a minha interface do usuário ou outros aplicativos que por acaso são executados em um kernel da GPL. Existem muitos desses relacionamentos. A ambiguidade neste uso de "proprietário" já está coberta. Além disso, na maioria das jurisdições, um "trabalho contratado" concedido apenas à parte que contratou um desenvolvedor para codificá-lo não é o mesmo que distribuição. IANAL, etc.
— HedgeMage
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.