AOP e a LGPL

30 respostas
louds

Tava dando uma olhada em como funciona AOP já que tanto se fala no forum e acabei percebendo uma coisa.

Usar aspectagem contra um programa LGPL implica em tornar os aspectos que o instrumentam LGPL também.

Isso porque, se não estou errado, arquivos .class são considerados pela licensa também como forma de arquivo fonte. Logo se for feita qualquer alteração no programa via aspectagem, o código fonte relacionado teria de ser distribuido como LGPL.

30 Respostas

cv1

Bom, eu sou péssimo nessas coisas de licensiamento de software (é free? o autor me deixa usar nesse caso específico? ótimo, eu não vou ler a licensa :))

Mas acredito que isso varia bastante da ferramenta de AOP que vc está usando. No caso do AspectWerkz, por exemplo, voce nao precisa necessariamente mexer no .class pra usar aspectos (ele pode fazer isso, ou pode interceptar o classloader e fazer as modificacoes ali). Ou entao, com o Nanning, voce nem mexe em bytecode, já que tudo é feito através de dynamic proxies.

louds

Ue, qual seria a diferença entre editar estaticamente o .class e em tempo real? Não vai tar modificando da mesma forma?

Rafael_Steil

Por isso que nao gosto da GPL e LPGL… elas enchem de limitacao o desenvolvedor. O stallman diz que eh para “proteger”, mas na hora em que voce precisa algo que esta sob essas licensas ( e outras, mas essas na grande maior parte dos casos ), aparecem trocentas limitacoes ou imposicoes, e muitas vezes voce eh obrigado a procurar outra solucao ou implantar do zero ( isso legalmente, mas na pratica todo mundo vai la e ripa o codigo na cada dura mesmo ).

Licensas no estilo BSD considero muito melhores, pois a grosso modo dizem “pode usar da forma que achar melhor, mas nao diz que o autor original eh voce e, se tiver problemas, nao culpe o criador do codigo”.

Mas cada um usa a que achar melhor, [b]nao[/code] quero abrir aqui uma discussao feroz e ideologica sobre licensiamento open source e afins. Apenas meus alguns cents.

Rafael

kuchma

“Rafael Steil”:
Por isso que nao gosto da GPL e LPGL… elas enchem de limitacao o desenvolvedor. O stallman diz que eh para “proteger”, mas na hora em que voce precisa algo que esta sob essas licensas ( e outras, mas essas na grande maior parte dos casos ), aparecem trocentas limitacoes ou imposicoes, e muitas vezes voce eh obrigado a procurar outra solucao ou implantar do zero ( isso legalmente, mas na pratica todo mundo vai la e ripa o codigo na cada dura mesmo ).

Licensas no estilo BSD considero muito melhores, pois a grosso modo dizem “pode usar da forma que achar melhor, mas nao diz que o autor original eh voce e, se tiver problemas, nao culpe o criador do codigo”.

Mas cada um usa a que achar melhor, [b]nao[/code] quero abrir aqui uma discussao feroz e ideologica sobre licensiamento open source e afins. Apenas meus alguns cents.

Entao - tudo eh uma questao de liberdade de escolha, como voce colocou…

Para quem quer praticidade, sem se importar se alguem vai estar usando o seu codigo ou nao em produtos fechados, BSD.

Para quem se importa com a ideologia do software livre (e o futuro do mesmo a longo-prazo), GPL.

A LGPL eh uma GPL mais “amena” - certo? Ela permite linkagem em determinadas situacoes de codigo “livre” (LGPL) com codigo proprietario. Entao acho que essa discussao deveria ser em relacao a AOP no tocante a codigo GPL (ja que a GPL eh que restringe utilizacao de codigo em produtos proprietarios). Se falei besteira, corrijam-me. :slight_smile:

Marcio Kuchma

louds

A GPL possui apenas uma restrição, se voce usar software GPL linkado junto de outro não-GPL voce tem que distribuir o não GPL como GPL. Não existe restrições comerciais algumas, senão empresar como IBM e Novell não poderiam estar faturando bilhões de dólares como estão com linux e software GPL. Ou pelo menos foi isso que o Evan Leibovitch falou na palestra dele em sampa 2 semanas atraz.

A GPL não te impoe restrições, as pessoas que assim enchergam a característica da licensa. Afinal, a escolha final é sempre do desenvolvedor, se escolheu usar algo GPL, aprenda a trabalhar com ela. Parafraseando algo que todos aqui devem lembrar:

Mas voltando ao assunto sobre AOP. Sera que isso não se extenderia a qualquer tipo de software que faz instrumentação de bytecode? Como pode exemplo JDO e outros.

cv1

Bom, deixando de lado a masturbação mental sobre licensas, e voltando ao assunto…

Cara, eu juro que eu li a LGPL, e eu nao vi absolutamente nada dizendo que .class é uma forma de código-fonte. Mesmo pq, não faz o menor sentido… me dá alguns links sobre onde vc achou isso?

dukejeffrie

Bom, eu nao to nem aih pros termos exatos da GPL. Termos exatos sao coisas que os advogados inventam pra fazer ora uma coisa, ora outra, usando o mesmo texto.

Na minha visao, assim como usar .c ou .o dá na mesma (em termos de “uso do código alheio”), usar .java ou .class dá na mesma. Aspectar ou construir em cima dá na mesma, em termos de uso.

A GPL foi concebida pra proteger direitos autorais. Daí vieram uns carinhas e enfiaram no meio o “vírus da abertura”, na esperanca de contaminar todo software do mundo. Só que com o vírus veio a doenca: ninguém quer usar GPL. Inventaram uma LGPL, pra abrir…

Um dia eu vou inventar uam “Licenca Tiago”, que vai requerer um arquivo authors.txt, com o nome de todo mundo que encostou no software e pronto.

[]s!!!

louds

Ei, de onde voce tirou essa ideia? A nao ser que eu e o Richard Stallman estejamos completamente enganados, mas a GPL foi criada como copyleft’ed desde sempre. Nao existe esse negocio de ‘enfiaram no meio’, a GPL, caso vc nao saiba, eh um dos pilares da FSF, que prega que todo software deve ser livre.

Enfim, revivi esse topico pq o Dave Turner, o CARA de licensas junto a FSF, disse que bibliotecas java LGPL possuem a propriedade ‘viral’ da GPL.

http://article.gmane.org/gmane.comp.jakarta.poi.devel/5900

Moral da historia, se vc conhece QUALQUER aplicacao java que seja distribuida com o driver jdbc da mysql.com, vc pode entrar na justica pq tao violando seu direito.
[/code]

Bani

O problema das licenças GPL é esse. Eles adoram fazer discursos, escrever páginas e páginas de “filosofia” do software livre, colocar prefácio contando historinha junto ao texto da licença, etc e aí quando chega o momento de realmente entender a licença as pessoas já estão com as “idéias embaralhadas”.

Bom, um dos muitos textos do Richard Stallman é o Why you shouldn’t use the Library GPL for your next library. Retirando toda a parte em que ele fica defendendo os princípios de free software e vendo apenas o primeiro parágrafo, temos:

Então, segundo o Stallman, é possível sim fazer aplicações Java proprietárias usando esse driver do MySQL.

Segundo o link passado o problema seria o item 6 da LGPL. Mas antes de ir diretamente ao 6 (que realmente restringe o desenvolvedor, apesar de não obrigá-lo a usar LGPL), devemos observar o item 5:

Ou seja, apenas se criar um executável contendo a lib ele vai para o item 6, mas em Java muitas vezes dá para deixar o jar como algo bem a parte.
Ainda no parágrafo 5, tem mais umas coisas meio obscuras, que eles mesmo não puderam definir, que tratam justamente da questão de headers, que seria um caso análogo ao dos imports:

The threshold for this to be true is not precisely defined by law.

E por fim o parágrafo termina com um:

Permitindo usar a lib mesmo no caso obscuro acima desde que “não use muito”, o que acho que ainda está dentro dos usos normais dessas libs LGPL que encontramos por aí.

Moral da história: ao usar alguma coisa LGPL para uma aplicação fechada, lembre-se bem dos “princípos de OO” e deixe tudo bem separado e indepentende no seu código. Na hora de entregar o produto, o jar das libs também deve estar separado do seu jar.

Claro que se eu estou contrariando pessoas importantes da comunidade, deve haver alguma falha no raciocínio, e quem decide isso no final teoricamente é a justiça, normalmente composta por pessoas que não fazem muita idéia do que é software livre. Com a falta de termos legais mais claros e precisos nessas licenças, acaba ficando impossível argumentar qualquer coisa, então eu não me preocuparia em usar LGPL.

P.S.: não tenho nada contra a filosofia do software livre, acho até bem interessante e apóio o movimento, mas em certos casos acho que eles deveriam lembrar que nem todo mundo que está utilizando software livre é por causa da “liberdade”, e deveriam ir mais direto ao ponto para essas pessoas entenderem quais são suas obrigações em relação ao movimento.

louds

A LGPL ate hoje nunca foi colocada em prova, diferente da GPL, que ja foi algumas vezes, como as licensas sao muito semelhantes, principalmente no que diz respeito da questao `viral’ delas eu acredito que a LGPL seja legal.

Quando ao usar os drivers da mysql.com, existe sim problema pq eles sao GPL, o antigo mm.mysql que era LGPL.

Rafael_Steil

Ano passado a Ximian mudou o licenciamento de alguns produtos de GPL para a atual licensa deles. Na ocasiao mandei um email pro Stallman perguntando se essa troca de licensa era permitida, se nao estaria infringindo alguma regra ou algo assim.

Nao tenho mais o email original, mas lembro que ele disse que, como todo o codigo tinha sido feito pela Ximian, eles poderiam mudar a licensa da aplicacao como bem quisessem, pois o codigo era deles.
Ainda no mesmo email, ele comentou que, caso o core do programa fizesse uso de bibliotecas GPL externas, somente as partes de codigo diretamente ligadas as libs deveria ser GPL, o resto poderia ser na licensa original do sistema. Ou seja, o programa nao precsaria ser transformado em GPL so por causa que usa alguns codigos GPL…

Bom, no final das contas eh uma confusao soh isso :?

Rafael

louds

Rafael, o proprio Stallman em varias ocasiões falou que a GPL implicava em tornar todo o programa GPL e não só ‘partes’ dele. Mas vou procurar isso a fundo e se não achar nada conclusivo, vou mandar um email para FSF perguntando a respeito.

Ahh, se voce pensar em um sistema unix comum, que é formado de varios processos se comunicando via pipes e arquivos, somente o programa que usou codigo GPL teria de ser GPL, não o sistema todo.

Ate onde eu sei, no caso de incorporação de código GPL, depende muito da interface usada para que a ‘clausula viral’ tenha efeito. Pipes, sockets e arquivos são ‘vacinados’ contra GPL.

Rafael_Steil

Bom, no final das contas o que acaba acontecendo eh que o pessoal ta com uma tendencia muito grande de fugir de programas GPL… Ou seja, “… ah, o teu soft eh GPL? que pena, mas nao posso usar ao menos que voce mude a licensa…”.

Imagine empresas de desenvolvimento de software ( e nao programadores ocasionais ), que ate querem usar mysql ( apenas para ilustrar um exemplo ), mas devido ao fato do driver ser GPL, somado a confusao e complexidade de tal licensa, acabam partindo para outro banco de dados ou algo do genero ( claro, nao eh facil imaginar uma situacao que chegue nesse ponto, mas eh suscetível de ocorrer, de qualquer maneira ).

Do meu ponto de vista radical, GPL soh serve para codigos sem finalidade de uso no mundo real, ou seja, demonstracoes de codigo ou sisteminhas mais simples. Usar GPL soa como “olha que legal o meu programa, mas eh soh para contemplar… se quiser usar ele no teu sistema, eh melhor procurar outra solucao…”.

Rafael

dukejeffrie

“louds”:
“dukejeffrie”:


A GPL foi concebida pra proteger direitos autorais. Daí vieram uns carinhas e enfiaram no meio o “vírus da abertura”, na esperanca de contaminar todo software do mundo. Só que com o vírus veio a doenca: ninguém quer usar GPL. Inventaram uma LGPL, pra abrir…


Ei, de onde voce tirou essa ideia? A nao ser que eu e o Richard Stallman estejamos completamente enganados, mas a GPL foi criada como copyleft’ed desde sempre.

Verdade, verdade, falei besteira!! O que eu disse nao é o que eu queria dizer.

De qq forma, a idéia inicial era manter o código livre livre, nada a ver com seus autores. Mas era pra impedir que fosse usado por “vampiros”. O “vírus” veio da discussao sobre como fazer isso…

Eu tb evito a GPL. Usei a LGPL no Shob, justamente pra deixar que fosse usada como biblioteca pra produtos comerciais, assim mais gente poderia testar. Como disse a Bani, em Java vc consegue separar muito bem as libs, nao sei como funciona pra usar um JAR que é GPL num programa comercial.

Por mim, tudo o que eu fizesse seria livre, acho que é como a humanidade consegue evoluir mais rápido.

Bom, meus 3,1415629 cents… 8)

louds

“Rafael Steil”:

Do meu ponto de vista radical, GPL soh serve para codigos sem finalidade de uso no mundo real, ou seja, demonstracoes de codigo ou sisteminhas mais simples. Usar GPL soa como “olha que legal o meu programa, mas eh soh para contemplar… se quiser usar ele no teu sistema, eh melhor procurar outra solucao…”.
Rafael

Hmm, se quiser depois eu te apresento alguns softwares que são GPL (Linux) e são usados no ‘mundo real’ com bastante sucesso por empresas conhecidas (IBM, Novell, Oracle) que estão tendo lucros gigantes.

O problema da GPL é que ela exige um modelo de negocios completamente diferente do clássico, onde se cobra 1 zilhão pelo software e obriga o cliente a estar atrelado a sua solução por falta de escolha e não vontade propria.

Rafael_Steil

Sim, eu sei que existe, nao sou cego. Mas ainda assim nao mudo a minha opiniao.

Usar soft GPL eh uma coisa, agregar conteudo GPL a um sistema nao-gpl eh outra totalmetne diferente.

Rafael

louds

“Rafael Steil”:

Sim, eu sei que existe, nao sou cego. Mas ainda assim nao mudo a minha opiniao.

Usar soft GPL eh uma coisa, agregar conteudo GPL a um sistema nao-gpl eh outra totalmetne diferente.

Rafael

Bom, a IBM, assim como a Novell, tão investindo 1 puta grana em desenvolvimento de software GPL, o kernel do linux é 1 ótimo exemplo disso, o changelog nunca teve tantas referencias ao pessoas da ibm como agora.

Outra empresa que fez algo semelhante foi a SGI, que portou uma das coisas mais animais do IRIX, o XFS, pro linux. Abrindo mão de toda IP em volta dele.

A IBM mesmo já fez isso muito, o gcc, por exemplo, usa IP dela com permissão, coisa que vendedores pagaram MUITO para pode usar.

Rafael_Steil

Blz, agora tente pegar um pedaco do kernel do Linux e colocar no teu sistema, que nao eh GPL ( exemplificando )… o que vc vai fazer?? mudar o teu programa pra GPL? Procurar outra solucao ( e correr o risco de nao encontrar; de encontrar mas ser pior… )? Desenvolver voce mesmo?? ou pior, simplesmente colocar e nao avisar ninguem ( aka, roubar o codigo )…

Mais uma vez, usar sistemas GPL eh uma coisa, usar partes de sistemas GPL para desenvolver novas coisas eh completamente diferente.
Eu e qualquer um pode ganhar milhoes em cima de programas GPL, pois afinal posso cobrar por ele, cobrar por suporte, consultaria etc etc, desde eh claro que o source code esteja liberado para quem quiser. Nao ha problema nisso, perfeitamente cabivel.

Os problemas comecam quando voce nao quer a solucao por inteiro, mas sim apenas partes, ideias dela… Ai, nesse ponto, GPL te enche de porrada.

Rafael

louds

Que a GPL não te da as mesmas liberdades que as licensas da Apache, BSD e outras tantas, quanto ao uso do fonte isso é fato.

Porem, acho que reclamar disso é aquela velha historia, “te estendo a mão, voce logo quer o braço todo”, o software tá ai a custo ZERO pra voce usar a abusar dele, com um pequeno detalhe, o autor usou GPL, então voce tem que tornar livre seu software também.

O crux disso é uma coisa chamada escolha, voce tem toda a liberdade de escolher. Quer usar ele? perfeito, siga as regras que estará tudo ok. Não quer? Tudo bem, se é oque voce quer.

Agora vai fazer isso em outras situações. Por exemplo, gostou da implementação de PKCS da Sun, porem ai de voce se usar o fonte do jdk para qualquer coisa que não seja olhar, OLHAR. Quer entender como um SO embedded opera? Olha o embedded linux, voce não vai ter que assinar um acordo que te deixa refem de uma empresa, como a microsoft faz se voce quiser olhar o fonte do WinCE.

E o outro lado da moeda, desenvolver software livre significa não fazer dinheiro? Pergunta para essa empresa aqui www.ximian.com. Eles vivem de desenvolver software GPL. Se quiser entender esse ‘milagre’ pergunte pro Miguel, ele é um cara extremamente acessivel.

Rafael_Steil

Se voce ler direito o site da Ximian, vai ver la que eles declaram que “grande parte do nosso codigo eh GPL ou LGPL”… viu… “grande PARTE”…

Depois, eu NUNCA disse que duvido do modelo de negocios da GPL, apenas disse que nao gosto. Basta ler as minhas mensagens anteriores direito.

Emr relacao ao fator “escolha”, muitas vezes voce nao tem pelo o que optar, pois a unica coisa que pode existir eh alguma em GPL ( e aquele papinho de “… entao vai na freshmeat/sourceforge e pegue outras implementacoes…” nao cola, pois a maior parte dos projetos GPL que existem por ai sao um LIXO… veja, a maior PARTE, e nao todos ( apenar para garantir que entendam direito o que eu disse).
Existem EXCELENTES, magnificos programas OpenSource, nas mais variadas licensas ( sim, e em GPL logicamente tambem ).

Mas falar se “opcoes”, “escolha” nesse mundo eh algo muito delicado, pois muitos projetos tem ideias boas, mas implementacoes terriveis ou inacabadas, o que nos restringe para escolher.
GPL “protege” o desenvolvedor, mas sacaneia o usuario, dependendo do caso de uso que o usuario deseja.

Rafael

kuchma

Ueh - essa eu nao entendi Rafael (sinceramente). Poderia dar um exemplo (do tipo “vou te fazer um desenho” :))?

Marcio Kuchma

Rafael_Steil

“kuchma”:

Ueh - essa eu nao entendi Rafael (sinceramente). Poderia dar um exemplo (do tipo “vou te fazer um desenho” :))?

Marcio Kuchma

Vamu la:

:arrow: “Protege” o desenvolvedor:
De uma maneira geral, os pontos aos quais me refiro sao os que dizem que voce precisa dar os creditos ao autor original; que voce esta usando o software por risco proprio; tem um discursozinho sobre liberdade e direitos etc etc…

:arrow: Sacaneia o usuario
Aqui o correto nao seria a palavra “usuario”, pois de fato quem usa algum programas GPL nao tem que arcar com nada em relacao ao codigo. Corrigindo meu erro de expressao, o que me referia era mais especificamente “sacaneia o desenvolvedor”, ou seja, aquela pessoa que achou o programa muito legal ( ou que precisa da funcionalidade proposta ), mas por causa das restricoes GPL’isticas ( “que toda e qualquer alteracao deve ser tornada de dominio publico sob GPL tambem)” - em uma livre interpretacao, acaba ficando sem muitas saidas.

Eh isso!!

Rafael

Rafael_Steil

Outro pronto que deve ficar claro em relacao a isso tudo:

Nao gostar de GPL nao significa nao gostar de OpenSource, muito menos desrespeitar os direitos do autor.
Considerem a seguinte situacao:

Fulano esta desenvolvendo - ou ja desenvolveu, nao importa - um programa qualquer, cujo qual esta sob a licensa BSD. Em determinado momento, surge a necessidade por uma funcionalidade da qual Fulano nao domina totalmente, ou que eh demorada demais para fazer do zero.
Qual a solucao mais obvia? logico, procurar por uma solucao pronta ja, desenvolvida por outra pessoa.

Depois de um tempo procurando, o Fulano finalmente encontrou tal solucao, mas… pera ai, ela eh GPL, e o programa do Fulano eh BSD. Segundo as regras GPL, a partir do momento em que o Fulano colocar o codigo GPL em seu sistema BSD, o mesmo deveria ser transofrmado em GPL tambem… nao eh isso que diz a licensa??

Ai tempos um fato no qual GPL esta contribuindo para a NAO propagacao e melhoramento de sistemas OpenSource, pois Fulano esta com as maos amarradas… vai ter que passar noites em claro para desenvolver a sua propria solucao.

Pensem bem: ambos programas sao OpenSource, ambos desenvolvedores tem boas intencoes perante a comunidade e o mundo, mas devido certas licensas, o aperfeicoamento de tais fica limitado.

Rafael

louds

A Ximian não usa 100% GPL, eles produzem software fechado também, porem muita coisa deles é GPL, veja o RedCarpet e o Evolution, que são softwares de primeira linha.

Rafael, nesse caso esse desenvolvedor poderia lançar uma versão paralela do software dele que tem o código GPL, assim ele atinge o objetivo de ter rapidamente a solução. Ai depois disso ele pode sem problema algum implementar uma versão não-GPL, se quiser.

Talvez uma confusão que muita gente faça é que ao incluir código GPL, somente aquela versão com tal código precisa ser software livre.
Se uma versão seguinte substrituir o código GPL, ela pode ser licenciada como GPL. E se ainda quiser, essa versão com código GPL pode ser distribuida com duas licensas quanto a parte original (a que foi ‘contaminada’).

Rafael_Steil

Eu estava pensando exatamente sobre isso ontem a noite… Versoes do programa com licensas para todos os gostos :slight_smile:

Claro que eh meio viajem, mas as vezes pode ser uma saida.

Rafael

kuchma

Viagem nada - veja os casos da biblioteca QT e do MySQL. :smiley:

Marcio Kuchma

bhleitao

Então se eu uso um jar GPL eu devo deixar meu código aberto? Meio Aberto? (como assim?) Fechado desde que não se comunique muito com o jar GPL?
Argh, não entendi direito isso… :frowning:

louds

Se você usar software GPL no seu sem ser por interfaces bem estabelecidas (arquivos, sockets, processos, etc) ele todo deve ser liberado como GPL.

L

Legal, entao o driver mysql pode ser usado da forma que eu quiser.
correto!?
Caso ele for lgpl, entao posso usar de qualquer forma, mesmo sem interfaces claras!?

Valeu
Leitao

sergiolopes

por causa da confusao criada aqui com o tal driver da mysql (GPL), entrei em contato com eles para saber como proceder.

perguntei o seguinte ao suporte deles:
“If I just use the MySQL Connector/J on my application, should my application be GPL?
I mean, I don’t distribute de connector with my application, I don’t modify nothing in connector’s source, I just use it like all other JDBC drivers.”

e a resposta:
“As long as you do not distribute the MySQL software in any ways (the same for our JDBC driver), you can use MySQL/driver for free under the GPL.”

ou seja, como era de se esperar, vc pode usar o driver JDBC da mysql em qualquer aplicacao (open source ou nao). mas, se quiser distribuir o driver junto, aí logicamente ela precisa ser gpl.

PS. nada de zuar o meu ingles hein! :stuck_out_tongue:

Criado 11 de julho de 2003
Ultima resposta 28 de fev. de 2005
Respostas 30
Participantes 9