Algum código JavaScript é usado apenas para sites, de código aberto?


12

Pergunta reescrita:

Não estou fazendo uma pergunta relacionada ao JavaScript, mas a todas as linguagens "cliente" usadas na Web (HTML5, JavaScript, CSS e assim por diante). Se eu colocar o código JavaScript (que é GPL) no meu site, e este site estiver acessível a qualquer pessoa na web, estou violando a GPL de alguma forma?

O que acontece se eu quiser vender o código do cliente (HTML, CSS, JavaScript) a alguém? Preciso de uma licença diferente neste caso?

O JavaScript (quando usado em sites) não é sempre open source? Quando você abre uma página da web, sempre pode ler a fonte.

Também preciso liberar meu código do servidor se estou vendendo um site que contém código JavaScript GPL?

O que acontece se este site estiver parcialmente acessível (uma parte é gratuita e a outra exige que você pague) mas o código GPL (a mesma parte) é usado nos dois lados do site?

E se o código GPL estiver apenas em uma parte do site que exige que você pague para acessá-lo?

Se estou vendendo um site para um cliente desta maneira:

  1. Estou vendendo a você (taxa única) todo o código relacionado ao cliente (JavaScript, HTML e CSS)
  2. Estou não vender-lhe o código do lado do servidor, você está alugando-lo (eu não quero deixar você reutilizar o meu código do lado do servidor)

Se estou usando algum código JavaScript GPL, estou violando alguma coisa? (O site pode ser acessado por qualquer pessoa na web.)

Edição 2:

Adicionada uma nova pergunta específica:

E se o site puder funcionar sem o código do servidor, o JavaScript está apenas chamando algumas páginas PHP que contêm dados no formato JSON. Outras pessoas podem criar um site com o lado do cliente, mas precisarão fornecer dados. Nesse caso, o JavaScript está chamando o código "PHP" (mas não o oposto), eu acho. Nesse caso, estou violando a GPL?


4
A capacidade de "ver" o código não tem nada a ver com o licenciamento, portanto o JavaScript não é diferente de qualquer outra coisa. Você seria melhor atendido consultando um advogado especialista nesta especialidade.
Sparky

Para o javascript em um site, é aí que você está falando especificamente sobre o código GPL? ou seja, o código está licenciado explicitamente sob a GPL?
26711 Philip

Bem, não estou vendendo nenhum produto, estou apenas perguntando isso, porque não entendo bem como ele funciona. Eu estou perguntando especificamente se algum idioma do cliente relacionados não são já todos "GPL" (você baixar a fonte de qualquer vez que você visita uma página web)
Fire-Dragon-DoL

Em um aplicativo não trivial, seu código-fonte não é apenas Javascript, é também o código do lado do servidor. Deseja divulgar tudo isso para o público? Porque é isso que a GPL diz. Não diz que você pode liberar algumas delas e ainda assim estar em conformidade com a licença.
Robert Harvey

Respostas:


3

Quando se trata de GPL, a unidade de lançamento é a unidade de licenciamento.

Se o seu site e seu javascript são uma coisa que funciona juntos, o conjunto possui uma licença eficaz. Se qualquer parte for GPL, a licença efetiva do todo é GPL. (Isso não é verdade para LGPL, MIT, etc.)

Se você está hospedando o site e seus clientes estão comprando acesso ao serviço, você não distribuiu ou transmitiu o código do servidor, portanto a GPL é irrelevante. (A AGPL altera isso e afirma que o Software como serviço deve ter sua fonte liberada.)

O Javascript que faz parte do seu aplicativo não é licenciado automaticamente de forma alguma. A rigor, fazer o download do javascript para executá-lo no navegador é uma violação de direitos autorais. Claro, isso é bobagem. Provavelmente existe uma licença implícita para executar o código, mas é tudo.

Se você usa uma biblioteca Javascript, precisa obedecer a licença dessa biblioteca. Se essa licença for GPL, entendo que isso significa que todo o seu aplicativo é GPL. É provavelmente por isso que o jQuery possui uma licença dupla - sua escolha, MIT ou GPL. Sem a opção de usar a licença MIT, ela só poderia ser usada por aplicativos GPL.


4

Primeiro: você tem todo o direito de usar o código-fonte aberto em projetos comerciais, desde que respeite as restrições de licença (principalmente porque você deixa todas as atribuições em vigor e disponibiliza as alterações sob uma licença semelhante).

Entendo que a GPL é uma das licenças mais restritivas quando se trata de tentar forçá-las em outras partes de um projeto. Acho que nunca foi testado em tribunal, mas geralmente a interpretação que sempre vi é que, se o código GPL é deixado em seus próprios módulos separados, que são apenas referenciados (ou seja, eles são tratados como produtos totalmente independentes) que você está usando), você deve ficar bem.

Se você não tiver certeza disso e / ou quiser ser mais seguro, existem outras licenças menos prescritivas.

Segundo: a capacidade de ver o código e os direitos de usá-lo são totalmente separados . Não consigo tirar o JavaScript de nenhum site e usá-lo apenas porque posso vê-lo. Se eu tiver acesso à fonte do Windows, mesmo legalmente, isso não a tornará minha. A web exige que muito código esteja visível; você ainda pode licenciá-lo como quiser.

Terceiro: em termos de licença sob o restante do site, é altamente improvável que seu cliente fique feliz em pagar por algo e depois em código aberto . Além do básico "por que pagamos por algo que você acabou de doar", provavelmente terá consequências para o design e a marca e permitirá que outra pessoa empreste elementos de sua identidade corporativa. Se você está vendendo para eles, eles querem que seja deles . Se você vai vendê-los, você precisa dizer a eles que existe OSS, pois não é possível vendê-lo, apenas outro código que o utiliza.

Quarto: Esse é um modelo muito estranho, vendendo um pedaço do código e alugando o outro . Eles pareceriam ser tão interdependentes que um é praticamente inútil sem o outro. Suponho que tecnicamente eles podem pegar o design de front-end que você fez e corrigi-lo em outra coisa, mas geralmente quando isso acontece, as pessoas começam de novo.

Dado que as duas partes não são realmente tão úteis uma para a outra, eu proponho que paguem pela personalização de um software como produto de serviço que você possui. Ou seja, você é o proprietário de todo o código, basta personalizá-lo de acordo com as especificações (que é a marca do front-end). Torna muito mais limpo e simples.


Ah, agora eu tenho uma dúvida: quando eu crio um site para um cliente, quem é o cliente: a pessoa a quem eu vendo meu site ou os usuários que acessarão? Se eu vender todo o site como um produto GPL (com fontes assim) para meu cliente, preciso liberar o código-fonte mesmo para todas as pessoas que navegam nesse site?
Fire-Dragon-DoL

@ Fire-Dragon-DoL - Seu cliente é a pessoa que paga suas contas. Se você GPL seu código, você precisa disponibilizá-lo publicamente a todos, em qualquer lugar , não apenas ao seu cliente e / ou usuários (e todos têm o direito de reutilizar esse código).
21711 Jon Hopkins

Na última parte (sua explicação é realmente inteligente, obrigado): Dado que as duas partes não são realmente tão úteis sem as outras : neste caso, se eu estiver usando código GPL, ainda devo liberar as fontes? Porque eu posso ler sua sentença como "Eu estou vendendo-lhe o serviço de personalização do software, não o próprio software que ainda meu é"
Fire-Dragon-DoL

Para responder ao seu último comentário: não tenho certeza, quero dizer que a GPL diz que você deve liberar o código com o seu software, mas se uma pessoa estiver navegando no meu site, eu não estou dando a ele o meu programa, ele está usando o meu programa Eu acho que é diferente. A GPL não diz que você precisa liberar seu programa.
Fire-Dragon-DoL

1
@ Jon Você só precisa dar a fonte para as pessoas que receberam o binário; não para quem pergunta. (Claro, que recebem o direito de dar à quem eles querem, mas você não é obrigado a fazê-lo.)
Sean McMillan

3

De um modo geral, se você estiver usando o código GPL em qualquer lugar do seu projeto e redistribuí- lo (por exemplo, vendê-lo ou entregá-lo a outras pessoas), deverá liberar o código-fonte do seu projeto para o público em sua totalidade , a fim de estar em conformidade com a licença GPL.

Se você estiver fornecendo seu próprio site voltado ao público como um serviço usando o código GPL do lado do servidor, poderá estar OK, pois isso não é considerado redistribuição.

O código Javascript no navegador parece uma área cinza para mim. Tecnicamente, você está redistribuindo o código GPL no navegador de todos, o que acionaria o requisito de liberar sua própria fonte.

Editar: Para provar meu argumento, agora incluirei o texto das Perguntas frequentes sobre licenciamento do site ExtJS. ExtJs é uma estrutura Javascript licenciada sob a GPL. Esta é a interpretação deles de como a licença funciona em relação à estrutura (em itálico):

Trabalhos derivados
Quando um programa de software chama código licenciado sob a GPLv3, esse programa se torna um trabalho derivado do código da GPL e, portanto, sujeito à licença de direitos autorais da GPLv3. Se o programa de software for "transmitido" a um usuário, a GPLv3 exigirá que o código fonte desse programa de software também seja "transmitido". A "transmissão" de um aplicativo Web é acionada quando um usuário fora da entidade legal que criou o aplicativo usa o aplicativo.

A definição de um programa de
software Para programas de software criados usando as arquiteturas da web atuais que usam interfaces de serviço remotas baseadas em rede para comunicação interna em vez de vinculação estática ou dinâmica tradicional, o programa de software relevante é a totalidade do código do aplicativo, incluindo o código executado no servidor e código executado no cliente, desde que o código do servidor seja parte integrante do aplicativo.

Exemplo
Digamos que o aplicativo tenha um front-end (que gera páginas da Web vinculadas ao Ext JS JavaScript) que se comunica sobre JSON / HTTP com um serviço de back-end. Este serviço de back-end contém lógica de aprovação e validação apenas para este aplicativo. Mesmo que apenas o front-end use o código Ext JS, considere que a combinação de front-end e back-ends constitui o aplicativo, e o código-fonte do back-end e front-end precisaria ser fornecido aos usuários finais do aplicativo sob a GPLv3 se o aplicativo é usado por um usuário final que não faz parte da mesma entidade legal que possui a licença GPLv3 para o código Ext JS.


2
Isso está errado, a GPL não funciona dessa maneira. A inclusão de um link para um arquivo JS da GPL na saída do seu código PHP não torna seu código PHP aberto.
user229044

@meager: Veja minha edição.
Robert Harvey

Isso parece totalmente errado. E se meu back-end direcionasse para um site de terceiros que usava arquivos JS da GPL? Preciso abrir o código fonte em todo o meu aplicativo? Eu não acho que isso se daria em nenhum tribunal. Desculpe.
Rob

1

Para um site com javascript do lado do cliente, eles ainda possuem o código. Se você simplesmente pegar esse código e usá-lo como seu, provavelmente seria uma violação de IP. Acho que não sei se eles não incluem uma licença. Também existem problemas de não obrigatoriedade. Converse com um advogado, eu acho, mas eles provavelmente não vão lhe dizer nada de útil.

Projetos com uma mistura de licenças são complicados. O código GPL que interage com outras bibliotecas, presumivelmente incluindo back-ends do lado do servidor, exige que eles também sejam GPL. Outras licenças de código aberto são menos rigorosas, como a LGPL e a licença BSD.

E não, se você não quer que ele reutilize seu código php, isso não se encaixa no modelo GPL. Se você liberar seu código na GPL, terá OBRIGAÇÃO de entregar o código-fonte.

Parece que você está criando um site para alguém e não deseja entregar seu código a ninguém. Por que você está olhando de código aberto? Se for de código aberto, você está dando o código.


Não estou vendendo nada no momento, estou apenas perguntando isso, porque acho que um site tem duas partes diferentes, o site do cliente e o servidor. A primeira parte é gratuita enquanto a segunda parte não é. Se um site é "opensource", você deve liberar o código-fonte do servidor? Acho um pouco difícil, isso criará desastres sobre a segurança!
Fire-Dragon-DoL

2
Isso não está certo. Se parte de um projeto for GPL, o projeto inteiro deverá ser liberado sob uma licença compatível com GPL (supondo que seja considerado o mesmo programa e não possa ser dividido em partes). E como a GPL não impede que você a venda, significa apenas que você deve fornecer à fonte todos os binários e não pode restringir mais redistribuição.
26411 KeithB

E se o site puder funcionar sem o código do servidor, o javascript está apenas chamando algumas páginas php que contêm dados no formato json. Outras pessoas podem criar um site com o lado do cliente, mas precisarão fornecer dados. Neste caso, o javascript está chamando o código "php" (mas não o oposto), eu acho. Nesse caso, estou violando a GPL?
Fire-Dragon-DoL

@KeithB ACK! Você está certo. Eu estava pensando no GTK e SDL, mas esses são LGPL. Obrigado.
26411 Philip

Sim LPGL é uma licença bom, eu gostaria de entender GPL pela forma porque ... bem, eu acho que é mais difícil de entender
Fire-Dragon-DoL
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.