É possível reescrever cada linha de um projeto de código aberto de uma maneira ligeiramente diferente, e usá-lo em um projeto de código fechado?

119

Existe algum código que é GPL ou LGPL que estou pensando em usar para um projeto do iPhone.

Se eu pegasse esse código (JavaScript) e o reescrevesse em um idioma diferente para uso no iPhone, isso seria uma questão legal?

Em teoria, o processo que aconteceu é que passei por cada linha do projeto, aprendi o que está fazendo e reimplementamos as idéias em um novo idioma.

Para mim, parece que é como aprender a implementar algo, mas depois reimplementá-lo separadamente da licença original. Portanto, você copiou apenas o algoritmo, que, sem dúvida, você poderia ter aprendido em algum outro lugar além do projeto original.

A licença cobre a implementação específica ou o algoritmo também?

EDITAR ------

Realmente feliz por ver este tópico criar uma boa conversa. Para dar um pouco mais de apoio ao projeto, o código envolvido faz algum tipo de análise de áudio. Acredito que não seja trivial aprender ou implementar, embora eu estivesse preparado para embarcar nessa tarefa (estou no nível em que posso implementar um FFT , e isso iria além disso.) É um LOC razoavelmente baixo. script, então eu não achei que seria muito difícil fazer uma porta reta.

Gosto muito da ideia de relançar minha porta e usá-la no aplicativo. Eu não vejo nenhum problema com isso, e seria uma ótima maneira de dar algo de volta à comunidade.

Eu ia acrescentar uma linha sobre não querer discutir as questões morais, mas estou muito feliz por não ter, já que parece ter disparado o debate um pouco.

Ainda me sinto um pouco estranho em usar o código-fonte aberto para aprender. Isso significa que qualquer coisa que se aprende com um projeto de código aberto não pode ser usada em um projeto de código fechado? E quanto tempo depois ou diferente uma implementação tem que ser para não ser considerada violação da licença? Murky!

EDIT 2 --------

Pergunta de acompanhamento

    
por Chris Barry 24.06.2011 / 15:41
fonte

14 respostas

255

Eu não sou advogado. Isto não é um conselho legal.

Dito isso, tirar todas as linhas de um aplicativo e alterá-lo ligeiramente com o único objetivo de contornar a lei de direitos autorais é óbvio criar um trabalho derivado sem qualquer defesa plausível. Até mesmo o juiz e o júri mais requisitados definitivamente o encontrarão se você for arrastado para o tribunal.

Apenas como comparação: empresas que precisam reescrever algo para interoperabilidade geralmente contratam diferentes grupos de pessoas para entender a fonte e criar a porta ("implementação de sala limpa"), para que ninguém possa acusá-las de criando um trabalho derivado. O que você propõe é exatamente o oposto.

    
por 24.06.2011 / 16:16
fonte
70

De acordo com Betsy Rosenblatt, do Princípios básicos sobre direitos autorais :

da Harvard Law School

What constitutes copyright infringement?

Subject to certain defenses, it is copyright infringement for someone other than the author to do the following without the author's permission:

  1. copy or reproduce the work
  2. create a new work derived from the original work (for example, by translating the work into a new language, by copying and distorting the image, or by transferring the work into a new medium of expression)
  3. sell or give away the work, or a copy of the work, for the first time (but once the author has done so, the right to sell or give away the item is transferred to the new owner. This is known as the "first sale" doctrine: once a copyright owner has sold or given away the work or a copy of it, the recipient or purchaser may do as she pleases with what she posesses.) 17 U.S.C. §109(a).
  4. perform or display the work in public (this right does not apply to visual art) without permission from the copyright owner. 17 U.S.C. §106. It is also copyright infringement to violate the "moral rights" of an author as defined by 17 U.S.C. 106A. Moral rights are discussed at this location.

Parece-me que você estaria violando o item 2 acima.

No entanto, acho que a terminologia é um grande problema aqui. Você disse: "Se eu pegasse esse código (javascript) e reescrevesse em um idioma diferente para uso no iPhone, isso seria uma questão legal?" (ênfase minha). Reescrever algo pode ou não ser diferente de copiar. Por exemplo, se você olhasse para a Mona Lisa, entrasse no seu próprio estúdio e pintasse o que você lembra, então parece-me que você está criando um trabalho original que é a sua expressão de como você percebeu o original. Se, no entanto, você tivesse uma cópia da Mona Lisa em seu estúdio, e você pintasse uma cópia dela, em vez do que você lembra, então eu acho que você está definitivamente copiando.

Da mesma forma, se você usa o MS Word, e talvez até mesmo se você olhar para algum código, e então você escreve seu próprio processador de texto que tem semelhanças funcionais, eu acredito que há casos em que foi decidido esse "look & feel" não é protegido por direitos autorais. (Isso não diz nada de patentes, é claro).

Você provavelmente deve perguntar a um advogado (já que eu não sou um).

Minha opinião pessoal é de que uma "porta" é um trabalho derivado e assim você tem que liberar o código portado na mesma licença.

    
por 24.06.2011 / 15:59
fonte
54

Eu não sou advogado, isso não é um conselho legal, e se você confia no que eu digo em qualquer tipo de empreendimento duvidoso (1) você é um idiota, e (2) eu nego toda a responsabilidade. Isso é o que ouvi e li ao longo dos anos de pessoas que parecem saber.

Os juízes não jogam jogos "em teoria". Eles não gostam de pessoas que inventem formas de distorcer a lei que talvez sejam aceitáveis em termos de análise lógica, mas que são contrárias à intenção óbvia e como os juízes decidiram no passado. Nunca tente ser esperto demais com a lei se houver alguma chance de você acabar em um tribunal defendendo sua interpretação.

É geralmente aceito que pegar um romance e fazer um filme a partir dele ou traduzi-lo para outro idioma é criar obras derivadas, e essas são transformações muito maiores do que você está falando, e exigem uma criatividade muito maior. Olhe para aqueles como exemplos; um juiz certamente irá.

Nos EUA, houve casos em que copiar um programa mais livremente do que você está falando foi considerado infração. Nos EUA, espere que esses sejam usados como precedentes.

Em outras palavras, você estará iniciando uma empresa comercial em uma base que será considerada ilegal se alguém se incomodar em procurar. Não é uma boa ideia.

Além disso, se você tem algum respeito pela idéia de direitos autorais, ou qualquer controle que um autor possa ter sobre o que ele ou ela publica, você está sendo hipócrita. O código fonte foi disponibilizado para seu uso sob certas condições. Você está violando a lei e a intenção expressa do autor.

Agora, os algoritmos não podem ser protegidos por direitos autorais. Nos EUA, os tribunais decidiram que é impossível fazer o copyright de uma ideia, e qualquer coisa que normalmente possa ser protegida por direitos autorais é a única maneira de expressar algo que não é protegido por direitos autorais. Portanto, você certamente pode usar o algoritmo.

Existe uma maneira de copiar um algoritmo que é à prova de direitos autorais: a abordagem de "sala limpa", em que uma pessoa ou grupo estuda o código-fonte e cria uma descrição do algoritmo (com o mínimo de detalhes de implementação); outra pessoa ou grupo escreve um novo código sem qualquer referência à fonte original. Quanto mais você se aproximar disso, mais seguro você estará.

Você também pode querer considerar que, publicando a pergunta aqui, publicou uma possível intenção de violar direitos autorais, de uma forma que provavelmente pode ser rastreada até você se alguém tiver o direito legal de fazê-lo (como como descoberta em um caso civil, ou simples investigação policial se isso for um caso criminal).

    
por 24.06.2011 / 16:42
fonte
16

Por que você não apenas abriria o código-fonte da sua porta e deixaria o resto do seu projeto ser fechado?

Para citar outra resposta :

Open source works, because it is a community. Because it is mutual. You do not get money by writing open source code. You get money by consuming open source code. So why do you write open source code? To give something back.

Mas de um ponto de vista mais pragmático:
Se o código que você portou é realmente tão útil que você acha que deveria protegê-lo para manter uma vantagem (o que você não tem, porque as pessoas que usam o Appcelerator pode usá-lo imediatamente), haverá uma porta de código aberto, mais cedo ou mais tarde. Ele será mantido por um número de pessoas, ele será usado e, assim, testado por um número ainda maior de pessoas, e será aprimorado ainda mais para incorporar os princípios promovidos pelo idioma de destino e para melhor interface com as estruturas predominantes em sua plataforma. Mais cedo ou mais tarde, seu código parecerá uma porcaria se comparado a ele. O sourcing aberto é, de fato, sua chance de permanecer no topo do caminho. É ganha-ganha. Se tiver sorte, você até conseguirá mantenedores para esse código e poderá focar na sua lógica de aplicação, que é o que realmente torna seu produto único.

    
por 24.06.2011 / 17:02
fonte
8

Eu não sou advogada, nem sequer interpreto uma na TV.

Mas acho que a questão aqui é derivação. Se o seu novo trabalho é derivado do trabalho GPL ou LGPL, então esse trabalho deve aderir aos requisitos da GPL ou da LGPL. Seu trabalho será claramente derivado, mesmo se você reescrevê-lo completamente linha por linha em outro idioma.

    
por 24.06.2011 / 15:45
fonte
5

Como outros dizem, é provável que isso seja trabalho derivado e, portanto, infringir diretamente os termos da GPL se você optar por fazê-lo "separado da licença original" (suponho que isso significa que você removeria a GPL e usaria outra coisa, mesmo fonte fechada).

Mesmo que seja considerado "legal", é claramente imoral . O autor de um software GPL escolheu tal licença que estende as liberdades para obras derivadas. Seja uma coisa boa ou ruim, é a intenção do autor , e você deve respeitar isso . Eles lhe deram o código para ler e modificar, garfo e tudo o mais, apenas perguntando em troca que você não mudaria as condições. Também é provável que você não tenha que pagar pelo software em si.

Eu sei que o dinheiro é difícil, mas desta forma você pinta a sua ideia, é roubar. Claro, você poderia ter aprendido esse algoritmo ou qualquer detalhe de implementação de outra fonte, mas você não o fez, como você mesmo disse.

Se a moralidade não lhe diz respeito, então lembre-se de que, dada a natureza cinzenta da legalidade do que você está fazendo (ou prestes a fazer), é muito possível que os autores originais entrem em contato com a Apple por causa de violação de direitos autorais. Até agora, a Apple foi rápida em remover esse software que infringia a GPL. Outra possibilidade é um processo.

Se eu fosse você, consideraria o meu próprio trabalho GPL (que não é tão ruim assim!) ou obter o conhecimento por outros meios.

    
por 24.06.2011 / 16:39
fonte
5

Que tal tentar fazer a coisa certa e não roubar as ideias de alguém? Você pode simplesmente enviar um e-mail ao criador do código e perguntar se você pode basear partes do seu projeto fora delas. Muitas pessoas não teriam problema com isso. Se eles têm um problema com isso, então, mesmo deixando de lado as questões legais, por que você quer manchar sua reputação como profissional na comunidade? O fato de que esta pergunta como formulada mais ou menos como "O que eu posso fugir com?", Ao contrário de "O que devo fazer?" é um pouco preocupante.

Resumindo, pergunte à pessoa (ou pessoas) que escreveu o código .

    
por 24.06.2011 / 17:02
fonte
5

Eu também não sou advogado. Se você está preocupado se isso é uma questão legal, então você provavelmente não deveria estar fazendo essa pergunta e apenas escrevendo o seu próprio.

Minha opinião pessoal sobre o assunto:

Se você está pegando o código javascript e reescrevendo-o em um idioma diferente, isso é chamado de portabilidade e é considerado um trabalho derivado. Se você está escrevendo sua própria versão do software e usando o código javascript como referência para aprender como certos algoritmos funcionam, provavelmente você está bem.

Eu iria errar do lado de pedir um advogado.

Como um adendo , a lei de direitos autorais permite que você basicamente faça NOTHING [*] com o código-fonte publicado diferente de lê-lo. A licença sob a qual o proprietário dos direitos autorais a liberou permite a você certos privilégios adicionais não fornecidos pela lei de direitos autorais. Adquirir e usar o código de outras maneiras que não sejam permitidas na licença não é diferente de usar e usar quaisquer obras protegidas por direitos autorais protegidas pela lei de direitos autorais sem garantir a permissão do autor.

[*] Com exceções para uso justo.

    
por 24.06.2011 / 16:05
fonte
4

Não. Não é ético. É quase certamente ilegal. E se eu revi um aplicativo de emprego de alguém que fez isso, seria arquivado com extremo preconceito.

    
por 24.06.2011 / 18:53
fonte
2

Sempre codifique como se o cara que acaba mantendo seu código seja um psicopata violento que sabe onde você mora. ~ Martin Golding

Eu não sou advogado, então não vou responder como um. Além disso, muitas outras pessoas não-jurídicas já ofereceram seus pensamentos sobre as ramificações legais de sua ideia. E vou pular o debate moralização / ética.

Se eu fosse você, estaria mais preocupado com as ramificações como desenvolvedor. É uma coisa de respeito. Auto-respeito, especialmente.

Claro, todos nós caçamos por "How d'ya {implementation} em {specification}?" de tempos em tempos. É daí que vem o Stack, amirite? E é assim que todos nós encontramos o caminho até aqui, certo? Não é disso que estou falando porque não é disso que você está falando.

Se eu combinasse o golpe de gênio + esforço heróico = resultado digno de ser apresentado à comunidade de desenvolvedores como uma oferta de código aberto, e as pessoas gostassem o suficiente para usá-lo, eu cairia de lisonja. Eu seria um grande momento. Como John Reisig ou Mark Story. Pouco ol eu. E então algum idiota veio e incluiu minha contribuição para que eles pudessem oferecê-la comercialmente ou nativo em seu aplicativo comercial? Caia morto.

O código é como manuscrito. Você não pode alterar um aplicativo maior do que uma caixa de fósforos de maneira suficientemente significativa para que outro dev legítimo não pudesse diferenciar os dois lado a lado e dizer "Espere um minuto ..." Como desenvolvedor, ficaria muito envergonhado com a possibilidade que meus colegas, meus colegas, pessoas que eu respeito e cujo respeito eu anseio, jamais descobririam que eu levantei o código de alguém. Eu seria motivo de riso. Cos que é alguma cópia épica roteiro de massa kiddie bs. Você realmente quer se desitimitar aos olhos de seus colegas? O código do Jacking é uma boa maneira de começar.

E, como desenvolvedor, considere isto: se esse era o meu aplicativo, e descobri que você o estimulou de tal modo que você ficaria preocupado em ser processado, e se eu decidir o diabo processando você, você está fazendo uma pilha de dinheiro graças ao meu código de qualquer maneira então por que eu não deveria bater em você onde dói, talvez pegar um pouco disso de volta? Como você sabe que eu não sou um adolescente ou possui um temperamento e um conjunto assustador de habilidades? Saia do meu caminho para pwn r00 [em ur b0xen, por assim dizer. Desde jacking meu aplicativo iria me mostrar que me > você (base: eu poderia escrever o que você só poderia jack). Não seria a primeira vez.

    
por 25.06.2011 / 22:43
fonte
0

Você não pode fazer um trabalho derivado de trabalho derivado de trabalho derivado ... e esperar que não seja um trabalho derivado. Pode tornar-se irreconhecível, mas isso é outra coisa. E você pode começar a partir de qualquer texto e por séries de alterações obter qualquer texto (por exemplo, remover primeiro, inserir um segundo), para que seu possível não significa que foi feito. Portanto, não é importante se algo é possível, mas se realmente aconteceu (apenas impossível, obviamente, não aconteceu)

Moraly falando: Aprender com qualquer coisa que você pode (legaly) chegar é OK, mas você deve reconhecer fontes. resto é legalidade.

IANAL, mas eu não acho que fiz algo errado, se: 1) Aprendi com a implementação de código aberto 2) Implemente o mesmo algoritmo (mesmo na mesma língua) fazendo isso, grandes porções tornar-se-ão naturalmente totalmente diferentes e alguns serão muito semelhantes. Se essas partes similares são coisas onde ambos os lados seguiram a mesma prática de codificação e assim não pode ser diferente, então essas partes não são protegidas por direitos autorais. Por exemplo. Se a classe tiver dois campos String privados e eles tiverem getters e setters, apenas uma coisa interessante é que essa classe tem duas propriedades de leitura / gravação, não implementações de getters e setters.

    
por 03.10.2011 / 13:52
fonte
0

Se você reescrever cada linha individualmente, poderá ou não estar "copiando" as linhas.

Mas você está copiando literalmente a ordenação, a estruturação geral e a inclusão das linhas. Em outras palavras, o tipo de coisa que faz do trabalho um "todo".

Você está copiando a parte que diz "esta linha deve ir aqui, essa linha deve ir até lá". Esta é uma grande parte do algoritmo geral.

Além disso, quando um projeto é iniciado, ninguém sabe o que incluir, quais coisas devem ser consideradas mais ou menos importantes, como estruturar e compor os algoritmos. Essa informação precisa ser produzida e projetada em algum momento. Mas você não precisaria, porque você estaria "copiando".

Como exemplo:

Se eu tiver um conjunto {a, b, c, d, e, f}.

Eu posso criar uma lista ordenada deles, [f, e, c, b, d, a]. Você deve dizer que incluí algumas informações na lista, conhecidas como ordem , que não estavam presentes no conjunto não-ordenado. Dependendo do tamanho da lista, essa informação pode ser muito específica e difícil de ser feita.

    
por 31.10.2013 / 11:33
fonte
-1

É como qualquer outra coisa - você não pode desaprender o que aprendeu, viu, leu ... mas o que você pode controlar é como você o usa ...

Duas coisas sobre este assunto -

  1. Como a maioria das estipulações de licenças para código aberto ... fazer um centavo nisso é totalmente legal, fazer com que seja "pseudo" - fechado é legal - mas a questão é "crédito". Eu comprei MUITOS scripts que têm 'créditos' dados (URL do blog, código do SO usado ..., etc.) mas o problema é que você está abertamente (não se escondendo) dando aos creds / Parabéns às criações de alguém (mais uma vez, as pessoas não se importam se você o fizer ... muitas vezes as pessoas NÃO dão crédito (violando assim as estipulações do tipo GPL) por medo de que as pessoas percebam que elas pode obtê-lo em outro lugar ... mas se o seu código está abertamente dando crédito e ainda pode ficar sozinho (se o seu código está fechado ou aberto) - então as pessoas não se importarão.

O que eu acho como desenvolvedor é que as pessoas não querem dar crédito, torná-lo fechado para imitar um grande desenvolvedor / codificador, sob o pretexto de ganhar dinheiro com os esforços de outra pessoa ...

então eu discordo para o número 2 ...

  1. "intenção" é quase (virtualmente) sempre o caso ... você pode ficar na frente de um juiz (digamos que você foi processado, levado a tribunal, ou solicitado a explicar suas ações para tal) e afirmar claramente sem murmurar, e com uma posição distinta sobre a questão - por que você tomou a decisão de ocultar / fechar a parte "código aberto" do seu código, isso não deve ser um problema.

meus 2 centavos. :)

O que é engraçado - a maioria das pessoas acha que inventou uma "ideia específica" - quando, na verdade, a "ideia" provavelmente (probabilidade extremamente alta) já foi lançada na forma de guardanapos, papel, codificação, internet , blog, etc ...

Então, embora possa ser novidade para você, especialmente desde que você a viu no sistema operacional de outra pessoa, ela provavelmente é usada em outros trabalhos do sistema operacional de que eles derivaram o trabalho do SO ... on-line ... isso não é nem mesmo com uma licença declarada / problema de direitos autorais em todos os casos ... nesse caso você pode copiar daquela fonte ... modificar, alterar, excluir, adicionar ... (o que eu copiaria / url para rastrear de volta onde você conseguiu mostrar que você conseguiu legitimamente) para o código que você quiser.

Eu acho que é incrível em 'code-land', especialmente quantas vezes eu descobri que meu código 'crafty' já estava escrito (tho não tão bem ... mente você - lol) em 2003 em alguma pessoa nerd , rank de pesquisa do Google # 1,239, site que eles fizeram quando estavam na faculdade, apenas criando funções para uso divertido e livre. :)

O ponto é ... dar crédito, não contornar o problema, e quando tudo mais falhar ... ou em caso de dúvida - ASK o OS'r original para direitos de uso ... yeesh ! quando nos tornamos tão arrogantes que não podemos simplesmente pedir a alguém para usar o weedwacker, tesoura, cortador de grama ... e - oh sim - uma função legal que eles fizeram!

Ok, foram 3 pence ...

    
por 24.06.2011 / 16:58
fonte
-4

Dê um tempo ao homem!

  1. Se uma queixa legal fosse apresentada a ele, isso significaria que alguém teria que realmente ter acesso ao código e LER. E se o software for compilado?

  2. Ele sempre poderá invocar sua ignorância no momento do momento dos fatos. Não é suposto ter boa fé antes de serem julgados culpados?

  3. O aprendizado não está sendo copiado. Encontrar inspiração em algum trabalho existente definitivamente não é copiar também. Então, se ele aprendeu com um software a função de cada linha de código e decidiu usar os princípios dos resultados para aperfeiçoá-lo e criar um software melhor, mais simples e mais enxuto. Não copiar IMHO.

Esses foram meus 2 centavos. Agora é a vez do primeiro sem pecado jogar a pedra ...;)

    
por 24.06.2011 / 20:46
fonte