Eu estou com dúvidas em relação as aplicações GPL.
Por exemplo, eu quero pegar uma aplicação comercial dentro da licença GPL e quero modificar ele de acordo com minhas necessidades (mudar o nome e o logo, e colocar requisitos do cliente). Com essas modificações eu vou enviá-las para aplicação que eu baseei para ajudar o software livre (porque eu sou um entusiasta, :P). Com essas modificações irei criar um produto pronto e de acordo com o cliente quer. Como eu faço para vender para o cliente sem que quebre a licença GPL, como também eu contribua com o projeto?
O cliente precisa saber que a aplicação que ele desenvolveu baseou em uma aplicação livre? Tem que estar no contrato isso?
[quote=entanglement]Uma aplicação derivada de uma aplicação GPL continua sendo GPL e, portanto, você não pode vender a aplicação e sim o serviço de consultoria.
Você pode, entretanto, usar uma aplicação com outra licença. Olhe os termos da licença da aplicação que você for usar. [/quote]
É lógico que pode vender. A única exigência é que o código da aplicação seja disponibilizado para o cliente. Apenas isso.
O problema é que esse cliente agora pode contratar outro para trabalhar nesse código.
bom eu faço isso.
O q diz a gpl e:
1 você não pode vender os fontes
2 não remova os autores e os termos da gpl dos fontes
3 distribua uma cópia da licença junto ao software
4 distribua 1 cópia dos fontes junto ao sistema, ou um local onde o cliente possa baixa-los se quiser
Acho que é isso o principal, e como ganhamos dinheiro? Cobrando pela “implantação” do sistema.
No nosso caso ainda cobramos mensalidade pela manutenção do mesmo.
Mas se o cliente resolver contratar um programador para dar manutenção nada o impede.
E se eu usar só os binários de componentes GPL junto com a minha aplicação?
Posso empacotar tudo numa coisa só, fechar o código que eu escrevi (código novo, que está separado dos componentes GPL) e vender?
mas eu não estaria “fechando as coisas”… estou apenas usando (via chamada de libs, como um jar no classpath) um componente já compilado, sem nenhuma alteração.
e mesmo assim não poderia fechar apenas o meu código?
pq se fosse assim, nao existiria nenhum software comercial fechado pra linux, pois usam o kernel que é GPL.
De qualquer maneira, se você não vai modificar o tal software, mas no máximo desenvolver algum plugin ou usá-lo como biblioteca (nesse caso a licença adequada seria LGPL, não a GPL pura), então você está dentro da GPL se quiser vender os seus serviços sobre o tal software.
[quote=danielbadawi]mas eu não estaria “fechando as coisas”… estou apenas usando (via chamada de libs, como um jar no classpath) um componente já compilado, sem nenhuma alteração.
e mesmo assim não poderia fechar apenas o meu código?
pq se fosse assim, nao existiria nenhum software comercial fechado pra linux, pois usam o kernel que é GPL.[/quote]
Nao pode, é como o colega acima disse a GPL é contagiosa, se tu adicionar qualquer pedaço GPL o teu tambem tem que virar GPL, por isso muitos preferem LGPL, que parece menos contagiosa.
No caso de modificar totalmente o sistema e enviar o código normalmente e dentro da licença, creio que isso não impede de vender o sistema e com ele a fonte. O Cliente pode pegar a fonte e contratar um programador se quiser, mas isso é de programa para programa de negócio para negócio. Ou seja, aplicação comercial é dificil algum dono de comercio contratar alguem para trabalhar na fonte, com isso pode-se respeitar a licença GPL e ter lucro com isso.
Mas como existem, por exemplo, banco de dados comerciais fechados pra Linux, como Sybase, Oracle, etc?
Eles foram compilados pra Linux, com certeza fazem uso do Kernel ou das libs da GNU e continuam fechados. Ou seja, a GPL pra eles não se propagou.
E outra se fosse assim não existiria nenhum software pra Linux que não fosse GPL.
Pois mesmo se não importar o linux-headers diretamente, importaria alguma outra lib que fatalmente (n-1) vai usar o código do Linux e seria obrigado a usar a GPL.
Pergunto isso porque estou desenvolvendo um produto que roda e usa o Linux e vários programas do GNU que vem instalado nas distros e são GPL.
Neste produto tem regras de negócio do meu cliente e eu e muito menos ele, vamos querer que este produto seja open-source.
Uso coisas simples do tipo “lspci”, “ps” e etc do Linux. Além de outros mais complexos. Todos GPL.
Ainda sim sou obrigado a manter meu código como GPL?
Outra, no contrato com meu cliente eu o autorizo a revender alguns módulos do meu produto. Assim como o autorizo a desenvolver e vender novos módulos que usarão minha API (que por sua vez usa o Linux).
Estes módulos são específicos por cliente, contendo regras de negócios específicas. Além de não interessar a ninguém, nenhum dos clientes vai querer que o código seja aberto.
Ainda sim sou obrigado a manter meu código como GPL?
Como posso proceder nesse caso? Usar (não alterar) softwares GPL e ter que fechar o novo software? Lembrando que eu não vou distribuí-lo junto com os software GPL (pois eles já estarão instalados no servidor do cliente).
[quote=danielbadawi]Mas como existem, por exemplo, banco de dados comerciais fechados pra Linux, como Sybase, Oracle, etc?
Abraços![/quote]
Nao sou o mais experiente pra responder esta, mas diria que nao é bem por ai! Esta libs que voce fala que eles precisam diz eles precisam pra rodar no linux estao mais para o SO que para o produto em si, como o Oracle por exemplo. Posso estar falando merda mas acho que vai por ai.
Um exemplo, nem sei se é valido: Meu jogo necessita que o SO esteja rodando o Directx 10, eae? preciso seguir a licença do Directx 10??? O Directx esta para o SO, meu sistema apenas foi implementado em cima desta versao.
Os experientes que nos auxiliem agora, mas a questão é boa, esse foi meu ponto de vista!
[quote=http://www.fsf.org/licensing/licenses/gpl-faq.html] If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL or a GPL-compatible license?
Yes, because the program as it is actually run includes the library.[/quote]
Vou tomar como exemplo bancos de dados proprietários compilados para linux novamente: Quer dizer então que o Oracle não usa NENHUMA lib GPL? não pode nem importar stdio.h ou stdlib.h? pois suas implementações já estão no SO e são GPL?
Ele faz acesso ao disco sem usar as libs do linux?
É impossível programar pra linux sem usar o linux… se o linux é GPL, então tenho que ser GPL.
Seguindo essa lógica (errada, lógico, mas onde?), então tudo para linux deve ser GPL.
E tudo que é GPL não pode ser fechado.
Então não posso desenvolver um produto para meu cliente específico e não fechar as regras de negócio dele para o mundo (pq usa roda no linux, que usa o linux e que por trás usa as libs do libs e bla bla bla…)
No primeiro o Torvalds responde que programas do usuário não são trabalhos derivados do kernel, portanto a GPL não se aplica a eles.
No segundo link há uma pergunta sobre programas compilados com o GCC. O GCC, assim como o Java, são programas e bibliotecas em GPL, porém com uma exceção de linking ou classpath. Essa exceção do GPL diz que você pode produzir programas não-GPL usando estes softwares, ao fazer referências à suas funções, classes, etc.
Aliás, poucos frameworks/bibliotecas para propósito mais geral usam GPL puro.
Esse assunto de licenças é um pouco delicado de tratar. Já bati muito a cabeça nisso tentando achar libs e afins para uma aplicação comercial que tenho.
Como até hoje eu não consegui entender 100% da GPL e LGPL, até porque não sou advogado e algumas expressoes do inglês podem gerar dúvidas, na escolha de cada framework do projeto optei por aquelas que tinham licença MIT ou Apache. Obviamente eu não fiz trabalho derivado de nenhum framework, eu apenas usei a lib em sí, mas nada derivado. Pelas pesquisas que fiz as licenças MIT e Apache não conflitam com licença comercial, sendo assim eu posso empacotar minha aplicação e vender a vontade sem disponibilizar o fonte ao cliente e nem a ninguém.
Aproveitando, o Oracle XE você pode distribuir junto com sua aplicação sem problema algum, conforme você pode ler no faq da Oracle.
[quote=fredferrao][quote=danielbadawi]mas eu não estaria “fechando as coisas”… estou apenas usando (via chamada de libs, como um jar no classpath) um componente já compilado, sem nenhuma alteração.
e mesmo assim não poderia fechar apenas o meu código?
pq se fosse assim, nao existiria nenhum software comercial fechado pra linux, pois usam o kernel que é GPL.[/quote]
Nao pode, é como o colega acima disse a GPL é contagiosa, se tu adicionar qualquer pedaço GPL o teu tambem tem que virar GPL, por isso muitos preferem LGPL, que parece menos contagiosa.[/quote]
Na verdade a GPL se aplica apenas aos fontes, se você usa binários derivados de código GPL só precisa distribuir o código desses binários.