Pergunta

Tanto quanto eu sei, quando eu construir um aplicativo de desktop / servidor usando qualquer código GPL como MySQL eu terei que liberar o código-fonte do meu software sob a GPL.

Se eu quiser desenvolver um app web usando o MySQL, o meu código vai ligar com as bibliotecas do MySQL. Devo liberar o código fonte do meu webapp nesta situação para estar em conformidade com a GPL?

Foi útil?

Solução

Desde que você mantê-lo somente de servidor (e, portanto, "privado"), você não tem que liberá-lo como GPL. Mas assim que ele atinge desktops públicos, já não pode ser considerado uma compilação interna e, portanto, o código-fonte é necessária.

Então você pode:

  • Solte o código como GPL
  • Comprar a versão comercial do MySQL
  • Mantenha-o somente de servidor.

Outras dicas

Você deve liberar a fonte (sob GPL), ou pagar por uma licença proprietária para MySQL para que você ganha o direito de distribuir os binários do MySQL sob uma licença que é mais receptivo ao que produtos proprietários usar. É melhor tomar esse tipo de pergunta para o seu advogado, no entanto.

ETA : Só para esclarecer um pouco; se você escrever sua própria biblioteca, que fala com MySQL usando seu protocolo wire-line, então você vai ser sempre 100% em claro. Da mesma forma, se você usar uma biblioteca que fez exatamente isso, mas é BSD licenciado (como exemplo), então você também estar em claro, porque você só está falando com MySQL através de uma conexão socket, e não realmente chamando em código GPL. Eu não sou imediatamente ciente de quaisquer BSD licenciado interfaces para o protocolo MySQL, mas é certamente possível que haja um lá fora em algum lugar.

Se você estiver executando o aplicativo da web mesmo, e não distribuí-lo como um aplicativo, então você não tem que liberar a fonte. Permitindo o acesso a uma aplicação web não é considerado distribuição.

Edit: se interessado que você pode olhar para o Affero General Public License , que exige que fonte ser disponibilizado aos usuários da rede de software AGPL (por exemplo, seria aplicável para aplicações web).

Você não necessariamente tem que ligar contra bibliotecas MySQL, a fim de usar o MySQL na sua aplicação. Tudo que você tem a fazer é "falar" a um servidor MySQL usando o protocolo MySQL; nesse caso, você está se conectando ao servidor MySQL como um cliente, ou seja, como um usuário, e então você não precisa liberar o software sob a licença GNU GPL.

A pergunta é, como pode o seu programa de falar o protocolo MySQL? Uma possibilidade é usar a biblioteca oficial cliente MySQL (conector), que é GPL. Se você fizer isso, você está estaticamente vinculando seu programa para uma biblioteca GPL, e, portanto, você precisa liberar seu software sob a GPL.

Como alternativa, você pode ligar contra uma terceira biblioteca cliente partido, com uma licença diferente. Por exemplo, você pode usar o Client Library MariaDB , que é LGPL'd (e é, portanto, compatível com software proprietário) e oferece a mesma API da biblioteca cliente do MySQL originais. Veja a MariaDB licenciamento FAQ , o que também se aplica a MySQL, para mais informações e conselhos.

Pode ser complicado para distribuir o servidor MySQL, juntamente com o seu software:. Você poderia simplesmente exigir que seus clientes para fazer o download e instalar o MySQL por conta própria, ou desenvolver um downloader simples de ser distribuído com o seu software

MySQL usa dual licenciamento. Como eles colocá-lo - se você estiver livre, nós estamos livres

.

Então, se você usar, tanto quanto eu sei, MySQL JDBC conector única -. Você deve ter licença ou GPL o código

A menos que você derivar de e / ou distribuir o software GPL, você deve ser seguro.

A ligação com a biblioteca cliente do MySQL não é nem um trabalho derivado, nem distribuição.

UPDATE: Venha para pensar sobre isso, como você link (dinâmico ou estático) contra as bibliotecas vão fazer a diferença. vinculação estática é a distribuição, mas se você ligar de forma dinâmica e seus clientes baixar os próprios conectores, isso não é de distribuição e você deve ser seguro.

Oh, e IANAL.

Se eu quiser desenvolver um app web usando o MySQL, o meu código vai ligar com as bibliotecas do MySQL. Devo liberar o código fonte do meu webapp nesta situação para estar em conformidade com a GPL?

  1. Como já foi dito, se você não está distribuindo o aplicativo para outros não há nenhum problema em tudo.

  2. Normalmente, você iria desenvolver contra uma API de banco de dados padrão e deixar o usuário decidir qual banco de dados para se conectar ao aplicativo. Neste caso, não há nenhum problema. “Seu código” não seria ligando para libmysqlclient, mas poderia potencialmente ser combinado com um módulo de acesso de banco de dados que faz ligação com libmysqlclient.

  3. Se você quiser distribuir um instalador que configura a sua aplicação e libmysqlclient juntos, que provavelmente não contam como “mera agregação”, por isso seria necessário que você distribuir seu aplicativo sob uma licença de código aberto. Isso não precisa, no entanto, ser necessariamente GPL - veja a MySQL FOSS Exceção de Licença .

  4. Se você quiser distribuir um instalador que configura a sua aplicação eo servidor MySQL em si, a exceção não se aplica, portanto, você está limitado a GPL somente.

Naturalmente IANAL, e certamente há ainda alguma incerteza sobre o que conta como derivação especialmente em relação à ligação dinâmica. No entanto, o acima é a minha compreensão da posição tradicional da MySQL AB em licenciamento, e eu não ouvi falar de qualquer alteração pós-Sun-aquisição.

Infelizmente, não é quase corte tão limpo: O GPL proíbe distribuição , sem dar a fonte de cada "produto derivado". A distribuição é legalmente definido como o ato de transferência de fonte de um computador para um ou mais computadores para uso oficial.

Infelizmente, que também pode incluir o uso em clusters de servidores, caixas de controle de qualidade, caixas de dev, etc. Na loja moderna dev, apenas liberar o código para vários frontend / caixas de back-end é tecnicamente distribuição (em os olhos da lei).

Não importa o que a Free Software Foundation pensa, importa o que alguns juízes pensam quando alguém / a corporação é processado por fazer exatamente isso.

Isso é apenas mais uma razão para principais clientes do GPL nos dias de hoje são empresas que desejam manter concorrentes de bifurcação seu código . Todo mundo deve considerar muito menos onerar licenças como o MIT ou licenças Creative Commons Attribution.

Em primeiro lugar, eu não sou um advogado. Fale com um antes de tomar qualquer conselho aqui.

Além disso, se você não distribuir sua aplicação web, você provavelmente não precisa liberar as alterações. Você ainda pode fazer seu aplicativo web disponível para ser usado por outras pessoas se você hospedar o aplicativo web.

Se a sua distribuição inclui e instala MySql no mesmo pacote, que exige uma licença comercial.

Mas se você só distribuir o seu código, com um mero "requer MySql" aviso e um script de instalação (para criar / preencher as tabelas), não deve haver nenhum problema, AFAIK.

IANAL, é claro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top